Lab
Experiments you can run: a live UI kit, StackBlitz and CodePen playgrounds, and the bugs I reported upstream.
I build my own UI libraries
No Material, no Bootstrap. I design custom component kits on design tokens, with multiple themes, dark mode, accessibility modes and Arabic RTL built in from day one. Try it below.
Palette
Mode
Accessibility
- 🎨 Design tokens: one source for web & mobile
- 🧩 40+ components: forms, tables, dialogs, toasts
- ♿ WCAG AA contrast in every theme
- 🌍 RTL-ready, Angular & React
- Token auditNew
- RTL reviewDone
- Dark theme QAReview
StackBlitz & CodePen
Small, runnable proofs: bug reproductions I sent upstream, component experiments and pure-CSS demos. Open any of them and play.
StackBlitz
All projects ↗- Angular Date PickerAngularCustom date picker with an input mask, opening from the field or a form-field trigger.443 views · 4 forks
- PrimeNG ContextMenuPrimeNGReproduction for my PrimeNG report #13468: swapping menu items at right-click time.Bug reproduction
- Angular + pdf.jspdf.jsIsolated the pdf.js rendering regression on newer iPhones (pdf.js #20306).Bug reproduction
- PrimeNG Tree CheckboxPrimeNGTree selection with checkboxes: partial states and selection sync.Component experiment
- Read-only editor tooltipVite · TSA tooltip that tells users why an editor is read-only.UX pattern
- PDF editorAngularIn-browser PDF viewing and annotation experiment in Angular.Experiment
CodePen
All pens ↗- Wheel GalleryCSS onlyA rotating image gallery in pure CSS, no JavaScript.
- Conic Gradient LoaderCSSA loader built with conic-gradient and masks.
- Custom Y-axis labelsHighchartsFormatted, localised axis labels for dashboards.
- Time-series demoHighchartsZoomable time-series chart for live data.
- Chart annotationsHighchartsAnnotating events directly on a chart.
- Numeric x-axis bugBug reportMinimal reproduction sent to a vendor’s support team.
Open-source radar
When a library breaks in production, I report it upstream with a reproducer instead of quietly working around it.
Mozilla pdf.js#20306Resolved
PDFs stopped rendering on iPhone 15 Pro after the 5.4 upgrade while iPhone 11 still worked. I isolated the device-specific regression.
PrimeNG#13468Resolved
ContextMenu items could no longer be swapped at right-click time after the processedItems internals changed.
PrimeNG#13479Resolved
Dialog drag broke when the cursor crossed into the body, so the handle disappeared mid-drag.
PrimeNG#13506Closed
Proposed server-side lazy loading for Dropdown virtual scroll (page index and size on scroll-to-end).