SLAB Design System
Living changelog — bugs, improvements, and new components across all audit rounds. Updated as the system evolves.
Full system audit: 7 bugs fixed, 6 improvements, 3 type definition updates, docs updated.
position: relative. Panel now anchors correctly to its trigger.translate(2px,2px) state was stuck until cursor left. Added onMouseUp to snap back.slab-skeleton-pulse. It's already in animations.css / styles.css. Comment replaced.#6CA0FF (actual: #6E8AED), coral was #FF5C5C (actual: #FF6B4A), neon was #39FF14 (actual: #2BFF88).overflow: hidden set on open and restored on close. Both effects clean up on unmount.<input type="checkbox">. Tab + Space now work natively. Screen readers see a proper checkbox role.base.css using --focus-ring-color token. Covers all interactive elements without conflicting with inline box-shadows.Input, Switch, Tabs, Select replaced raw --slab-black/--slab-white with semantic aliases (--text-strong, --text-body, --surface-card, --surface-sunken). Dark mode now renders correctly throughout.--z-dropdown: 200, --z-tooltip: 500, --z-modal: 1000, --z-toast: 2000, and --transition-lift shorthand to spacing.css. All four overlay components updated to use them.prefix prop. Useful for units (px, %, kg), clear buttons, and inline icons. Uses --surface-sunken for correct dark mode rendering.size="lg" now maps to 11px 22px padding and 17px font. Matches the sm/md/lg pattern of Button and IconButton.polygon() values produced lopsided off-center triangles. All four placements now use geometrically centered pointing triangles.Polish existing components — missing props, color gaps, API consistency.
teal color--slab-teal now mapped alongside blue/coral.teal + neon colorsviolet tonelabel propsm / md sizesstyle (wrapper) from inputStyle (inner field)<input> element itself.spacing.css--focus-ring, --focus-ring-offset, --focus-ring-color defined.shadow="lime" variant documentedCritical missing primitives — every real product UI needs these.
Custom ink-bordered dropdown. Keyboard nav (↑↓ Enter Esc), disabled options, click-outside close.
Ink-bordered overlay. Slam-in animation, real focus trap, body scroll lock, Esc/scrim close. sm/md/lg sizes.
Transient feedback stack. success/error/warning/info tones. Auto-dismiss with progress bar. useToast() hook.
Interactive filter chip. Toggleable, removable ×, 7 colors, pill option, slam press.
Square icon-only button. sm/md/lg, 6 variants, full snap motion. Enforces square constraint.
Ink-bordered hover label. 4 placements with centered arrow geometry. Pure CSS position.
Enrichment — fits SLAB's bold aesthetic + rounds out common UI patterns.
Ink-bordered track with colored fill. Linear + step variants. Indeterminate shimmer mode.
Bold mono number + label + optional trend arrow. SLAB's heavy numerics are purpose-built for this.
Standalone loading placeholder with pulse animation. Configurable width, height, radius.
Navigation trail. Mono text, chevron separators, last item in bold ink. Violet hover on links.
Light/dark mode switch. Animated sliding knob, mono label, localStorage persistence. Drop-in for any header.
Ported the design system into a real Next.js app at slab.clicker.id — component directory, guideline docs, and live UI kit demos, with the source locked down from public exposure.
Site chrome (header/footer) scoped to a (site) route group so /ui_kits/* renders full-viewport with no chrome leak, and every other route keeps its exact URL.
Searchable, filterable directory with 21 live component detail pages rendering the real @slab/components/** source.
All 9 guideline topics (colors, spacing, typography, motion, dark mode, integrations, forms, tables) ported to real routes.
Typography, Todo, Studio, and Studio Mobile ported from Babel-CDN HTML demos into real, dependency-backed Next.js routes with lucide-react icons.
Removed direct public access to the raw guidelines/**, ui_kits/**, tokens/**, SKILL.md, and README.md source, with redirects so legacy links still resolve.
Live on Vercel at slab.clicker.id, backed by a private GitHub repo, with Open Graph / Twitter card metadata for link previews.
Highest-value components and improvements not yet built. Prioritised by coverage gap.
slab-spin keyframe already exists in animations.css — no component wraps it yet.