jules 19a5d978a3 lib-theme-solarium: initial import (warm-consumer set, 2026-07)
Includes the 2026-07-07 UX sweep: neutral inline-code chips (accent
reserved for actions/links/focus), dark-mode card/popover lightness
lift for visible surface separation, 44px touch-target floor on
coarse pointers, card-title pinned to a named ramp role.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 22:35:56 +10:00

lib-theme-solarium

Botanical sunroom. Morning light through a glass room full of plants — humid air, leaf shadows, citrus on the table. Solarium is FRESH-warm, not baked-warm: surfaces are a pale green-amber leaf-light (hue ~120, never the cream/sand band), ink is deep green-charcoal, the primary is a deepened fern carrying warm-white labels at 7.5:1, and a single apricot accent supplies the consumer-warm note. Dark mode is the sunroom at night — deep green-charcoal (never blue-gray), a luminous fern primary with dark-ink labels, and the apricot dimmed to lamp glow. Organic-large radius (1.25rem), soft green-tinted daylight shadows, buoyant-but-calm motion (~300ms base, decelerating entries, gentle springs).

Fonts

Fonts are loaded by the consuming app, not by theme.css (see the Crema token contract). Add this at the very top of the app's entry CSS (app/app.css), before any other statement:

@import url("https://fonts.googleapis.com/css2?family=Gantari:wght@500;600;700&family=Figtree:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap");
Role Family Weights
--font-heading Gantari 500, 600, 700
--font-sans Figtree 400, 500, 600
--font-mono JetBrains Mono 400, 500

Usage

/* app/app.css — after the fonts @import, under CREMA:SOURCES conventions */
@import "../../lib-theme-solarium/theme.css";

Class-based .dark toggles dark mode (the app owns the toggle). No glass — the --glass-* tokens are inert stubs (0px / 100% / 1 / 1).

Contract

Token contract v1 (create-crema-app/TOKEN_CONTRACT.md). Validate with:

node ../create-crema-app/scripts/validate-theme.mjs theme.css

Passing as of 2026-07-07: all Tier-1 tokens present in both modes, all contrast floors met (foreground/background exceeds the 7:1 target in light and dark), no ban violations.

Palette notes

  • Primary oklch(0.42 0.11 145) — mid-L fern deepened until warm-white text clears 7:1; mid-lightness greens under white labels fail 4.5:1, so the brand green sinks rather than the label darkening.
  • Success shifts to emerald (h160, dark-ink label) so status green stays distinguishable from the fern primary (h145).
  • Accent is the one warm pop — apricot tint surface with a rust-apricot label in light; a deep apricot lamp-glow surface in dark.
  • Charts: fern / apricot / sky / orchid / citrus-gold, hues ≥60° apart with adjacent-index lightness variation.
Description
Crema theme — solarium (warm-consumer set, 2026-07)
Readme 35 KiB
Languages
CSS 100%