v0.5.0
Minor Changes
-
#19
78746caThanks @MikeNotThePope! - Visual "pop" overhaul: neubrutalist hard shadows, real surface hierarchy, and press-down interactions across both themes.- New hard-shadow tokens:
--hard-shadow-color/--hard-shadow-sm|/|-lg|-amberexposed asshadow-hard-sm,shadow-hard,shadow-hard-lg, andshadow-hard-amberutilities. Light mode drops a warm near-black slab; dark mode extrudes with a border-toned slab (a dark drop is invisible on a near-black ground). Lava theme gets basalt equivalents. - Surface hierarchy: light mode background moves to
warm-100so cards (warm-white) and page surfaces (warm-50) genuinely separate; dark mode gains a deeperwarm-975ground beneathwarm-900page /warm-850card /warm-800popover. Same ladder for lava viabasalt-975. - Press mechanics: solid Button variants and interactive Cards now rest on a hard shadow, lift on hover, and sink flush on press (
prefers-reduced-motionrespected). - Token-driven amber: new
--primary-border,--secondary-fill-foreground, and--secondary-fill-bordertokens; the amber Button variant no longer needs per-componentdark:overrides (and now follows theme secondaries, e.g. sulfur under the lava theme). - Overlays: popovers, menus, dialogs, tooltips, and toasts swap soft
shadow-md/lgfor the hard-shadow treatment. - Light-mode
--secondary/--mutedstep up towarm-200;--surface-interactive*follow.
- New hard-shadow tokens:
-
#15
58e1f7aThanks @MikeNotThePope! - Addinfovariants to the components that consume status colors: Alert (variant="info"), Badge (variant="info"), and Toaster (toast.info()toasts are now styled with the info status tokens instead of falling back to default styling). -
#12
ec856c9Thanks @MikeNotThePope! - Add Lava theme: magma/sulfur/basalt OKLCH palette with light and dark semantic mappings, enabled viadata-theme="lava". Registered in the theme picker and the WCAG contrast audit (all pairings pass AA in both modes). -
#20
772ed03Thanks @MikeNotThePope! - Palette audit fixes for both themes (default + lava).- New mid-neutral steps:
warm-350/warm-450andbasalt-350/basalt-450close the 13–14% lightness gaps between the 300/400/500 steps — giving disabled text, tertiary text, and hover borders proper options.warm-350–warm-450are exposed as Tailwind utilities alongside the existing scale. - Ramp depth: new
amber-900andsulfur-900extend the yellow ramps to a true dark step for text-on-amber/sulfur surfaces. - De-duplicated warning:
--raw-warningis now an alias of--raw-amber-600(they were byte-identical values that could drift apart); light-mode--status-warning-textnow usesamber-800instead of a hand-rolled near-duplicate. - plum-50 reads as plum: chroma raised from 0.009 to 0.02 — it was within a just-noticeable difference of the warm neutrals.
- Sidebar fix: rail focus shadow used shadcn-upstream
hsl(var(--sidebar-border)), which wraps an OKLCH value inhsl()and silently produced invalid CSS; now uses the variable directly. - Docs tokens page updated to match the current ladders (post surface-hierarchy overhaul) and new steps.
- New mid-neutral steps:
-
#14
c34a073Thanks @MikeNotThePope! - Add--status-infotoken family (--status-info,--status-info-surface,--status-info-text) with light/dark values for both the default theme (new--raw-infoblue) and the lava theme (ijen blue), exposed asstatus-infoTailwind color utilities and covered by the WCAG contrast audit.
Patch Changes
-
#17
ee810dcThanks @MikeNotThePope! - Define the missingdestructive-foregroundtoken. Button and Badge referencedtext-destructive-foreground, but the token was never defined, so Tailwind v4 silently dropped the utility and destructive controls inherited the page text color (failing WCAG AA contrast in light mode). The token is now defined in all four theme blocks — white everywhere except Lava dark, whose lighter destructive fill needs near-black — mapped in@theme inline, and the contrast audit now checks the pair components actually use. -
#18
ce66fabThanks @MikeNotThePope! - Remove unuseddate-fnsdependency, re-exportuseDirectiondirectly from Radix, and simplify the library build config (esbuild resolves@/via tsconfig paths natively). -
#23
4709287Thanks @MikeNotThePope! - FormActions: replace physicalml-autowith logicalms-auto(RTL correctness) and allow the action bar and end-group to wrap on narrow viewports instead of overflowing. The direction audit now also bansml-auto/mr-auto, which it previously missed. -
#16
282bce1Thanks @MikeNotThePope! - Darken status border colors to meet WCAG 3:1 non-text contrast in light mode: success and warning in the default theme (amber-500 → amber-600), and success, warning (sulfur-500 → sulfur-700), and info in the Lava theme. The contrast audit now checks every status border against its surface and the page background, so regressions fail the build.