@krizaka/tokens 3.34.0 → 3.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/BRAND.md CHANGED
@@ -114,68 +114,51 @@ copied. A mark is the same in both themes: its stops are chosen to read on dark
114
114
 
115
115
  ## 3. Icons — the signature
116
116
 
117
- `@krizaka/icons` (see its README): a 24 grid, a 1.75 stroke, round caps; **cut corners** (45° chamfers) where other
117
+ `@krizaka/icons` (see its README): a 24 grid, a 1.5 pen stroke with square caps and mitred joins (Cahier, ADR-004); **cut corners** (45° chamfers) where other
118
118
  sets round them — the angle of the hexagon; and on every product icon a **node**, the core of the marks, that can
119
119
  carry the brand accent (`nodeColor="var(--kz-accent)"`). Utility glyphs (arrows, close, plus, check, menu) stay bare.
120
120
 
121
- ## 4. Visual language for pages
122
-
123
- What M2/M3/M4 (the homes of Orochia, Orazaka and krizaka.com) apply. Restrained, premium: depth and light, not noise.
124
-
125
- - **Sections glide from one temperature to the next.** Each section's background is the brand's section gradient
126
- (`--kz-brand-gradient-from → via → to`), tinted at the top and ending on the page surface, so the next section starts
127
- where the previous one stopped. Alternate `direction="down"` / `"up"` and brands (`.brand-<id>` on krizaka.com) to
128
- give each part of a page its own temperature. Wide, soft gradients only — never a hard band.
129
- `SectionBackdrop` (`@krizaka/ui/section-backdrop`) does it.
130
- - **A light dome over the hero**: a blurred ellipse of the accent above the content (`dome`, on by default).
131
- - **Luminous isometric illustrations**, original: objects built from our own vocabulary — the icons' cut-corner
132
- shapes, the marks' hexagons and nodes, the chat bubble — extruded in isometric projection, lit from inside in the
133
- brand colour (a core that glows, edges in `accent-text`), standing on a **perspective grid** (`grid`) that fades
134
- into the page. One hero object per page, two or three satellites, no stock 3D. `@krizaka/ui/iso` draws them
135
- (`IsoHub` from data, or its primitives): stages that stack at the entrance, a dome that breathes, light that flows.
136
- - **Depth of field**: a foreground element blurred (`media`, 18 px) between the reader and the content; the subject
137
- stays sharp. Never blur text.
138
- - **Slow motion**: the light drifts over 40 s, marks turn over 30–35 s, reveals rise once (`[data-reveal]`). Nothing
139
- loops fast; everything stops under `prefers-reduced-motion`.
140
- - **Text on these backgrounds** uses the text roles (`text-fg`, `text-fg-secondary`, `text-fg-accent`): AA is tested
141
- on every gradient stop, in both themes.
142
-
143
- ## 5. Typography — three families, one voice
144
-
145
- `@krizaka/fonts` (2026-10, session TY) ships them, self-hosted; `@krizaka/tokens` names them (`--kz-font-display`,
146
- `--kz-font-text` = `--kz-font-sans`, `--kz-font-mono`) and sets the scale (`type.*` → `text-display-xl`, `text-body-md`…
147
- in `@krizaka/tailwind`, `typeScale` in `/native`). Only faces under the **SIL Open Font License 1.1**: redistributable,
148
- bundled in apps, subset by us (no Reserved Font Name on any of the three).
121
+ ## 4. Visual language for pages — the notebook (Cahier, ADR-004)
122
+
123
+ Since 2026-10-20 ([ADR-004](../../docs/adr/ADR-004-cahier.md), krizaka-ui#417) the language of Krizaka pages is a
124
+ **field notebook**: paper and ink, the French Seyès ruling, a red margin, captions and specimen tags. It replaces the
125
+ « depth and light » of the first identity (section washes, the dome, luminous isometric scenes on a perspective grid,
126
+ depth of field), which read as a generated template.
127
+
128
+ - **Paper, not light.** Light mode is cool paper with blue ink (`text-primary` is ink); dark mode is a slate with chalk.
129
+ No wash between sections (every brand's section gradient is the page surface), no dome, no grid floor, no blurred
130
+ photograph: a photograph behind a section is printed (desaturated, quiet).
131
+ - **The ruling is the grid.** `Page`/`Section` take `paper="ruled"` (Seyès: a strong line every 32 px, three fine lines,
132
+ the verticals) or `paper="lines"`; line heights land on the 8 px line. Opt-in: showcases, docs and canvases — never
133
+ under a dense app screen.
134
+ - **The margin carries the structure.** `margin` draws the red line; a section is numbered there (`number="§ 2"`), a
135
+ figure is captioned (`fig. 1`), a note hangs in it. No uppercase tracked overline above every heading.
136
+ - **The birds organise, they do not decorate.** A bird is a specimen: on a plate with its promise line, on the tag of
137
+ the product it carries. One bird per subject (REFERENCE-PERSONNAGES-ET-DISCOURS §5).
138
+ - **Motion is ink.** Blocks settle in place, a line is written left to right (`data-reveal="ink"`), a tag swings from its
139
+ hole, a stamp presses. Nothing rises, nothing blurs, nothing loops behind text; everything stops under
140
+ `prefers-reduced-motion`.
141
+ - **Text on paper** uses the text roles; AA is tested on every surface, in both themes.
142
+
143
+ ## 5. Typography — three families, one voice (Cahier, ADR-004)
144
+
145
+ `@krizaka/fonts` 0.3.0 ships them, self-hosted; `@krizaka/tokens` names them (`--kz-font-display`, `--kz-font-text` =
146
+ `--kz-font-sans`, `--kz-font-mono`) and sets the scale (`type.*`). Only **SIL Open Font License 1.1** faces, with no
147
+ Reserved Font Name (checked on each `OFL.txt`).
149
148
 
150
149
  | Role | Family | Why this one |
151
150
  | :-- | :-- | :-- |
152
- | **Display** — headlines, figures, names | **Plus Jakarta Sans** (500–800) | Already the headline face of krizaka.com — no gratuitous change to the parent brand. Compact, slightly squared bowls and flat terminals: it echoes the cut corners of the marks and icons, and stays dense and premium at 800. |
153
- | **Text** — reading and interface | **Inter** (400–700, cut at the text optical size) | Drawn for screens: tall x-height, open apertures, tabular figures for amounts. Already the default of the tokens and Orazaka's text; krizaka.com's body already asked for its character variants (`cv02`–`cv04`). |
154
- | **Mono** — code, identifiers, overlines | **JetBrains Mono** (400–700) | Already on every Krizaka surface. Unambiguous 0/O and 1/l/I at 12 px; rectangular forms that sit next to the chamfers. |
155
-
156
- What we weighed:
157
-
158
- - **Continuity first.** The inventory (krizaka.com: Jakarta + JetBrains Mono; Orochia: Jakarta text + Outfit display;
159
- Orazaka: Inter + Outfit as a stand-in "Krizaka Display" + JetBrains Mono; the tokens: Inter; the mobile apps: system
160
- faces) has three faces in common use. The decision keeps all three and gives each one job, so every surface moves by
161
- one role at most: krizaka.com changes its body (Jakarta → Inter), Orazaka its headlines (Outfit → Jakarta), Orochia its
162
- body (Jakarta → Inter) — and **keeps Outfit as its product display face**, a theme override of `--kz-font-display`
163
- like its violet.
164
- - **Outfit as the Krizaka display** was the alternative: rounder and friendlier, it reads as Orochia's voice, and moving
165
- the parent's headlines to it is the visible change we wanted to avoid.
166
- - **Screen and French.** Every file covers latin and latin-ext (é è à ç ô œ « » ’ — French is in the latin file; the
167
- browser fetches latin-ext only when a page needs it). Each family has a local fallback whose metrics are adjusted to
168
- it (`… Fallback`, size-adjust and ascent/descent overrides): the text does not move when the font arrives (CLS 0).
169
-
170
- **Signature.** The Krizaka signature in type is the **wordmark**, drawn, inside the logo (`KrizakaLogo`) — never the name
171
- set in a font. No typeface is drawn from scratch: a cut-corner stylistic set (a chamfered `K`, `z`, `a` as alternates
172
- of the display face, under the OFL as a modified version with its own name) is a foundry project for later, tracked as
173
- an issue, not a dependency of anything today.
174
-
175
- Rules (also `rules` of `@krizaka/fonts`, on ui.krizaka.com/foundations/typography): display speaks, text reads, mono labels;
176
- display from 20 px at 600–800, text from 12 px at 400–700; one display line per block; tabular figures for amounts; the
177
- scale, not one-off sizes; products may override the display role only.
151
+ | **Display** — titles, names, figures on a plate | **Young Serif** (400, one weight) | A heavy old-style serif with inked, rounded terminals: a title set in a notebook, not a software template. One weight on purpose — hierarchy comes from size and space; the browser never fakes a bold (`font-synthesis-weight: none`). |
152
+ | **Text** — reading and interface | **Atkinson Hyperlegible Next** (400–700) | Drawn by the Braille Institute so every letter is told apart (I l 1, O 0, b d p q): accessibility as a visible trait, for a kit that promises WCAG 2.2 AA. |
153
+ | **Mono** — tags, captions, footnotes, code | **Courier Prime** (400 · 700) | The typewriter of the notebook: a specimen tag, a caption under a plate, a page number in the margin; it sets code in lower case at reading size. |
178
154
 
155
+ What we left: Plus Jakarta Sans, Inter and JetBrains Mono — the trio of a thousand templates (#417). Their files stay in
156
+ the package as `legacyFonts` (out of `fonts.css`) so a pinned path keeps resolving while the apps move.
157
+
158
+ Rules (also `rules` of `@krizaka/fonts`, on ui.krizaka.com/foundations/typography): display names, text reads, mono types
159
+ the notes; display at its one weight, never bold, never uppercase; no tracked overline above every heading (number the
160
+ section in the margin, or nothing); one display line per block; tabular figures for amounts; the scale, not one-off
161
+ sizes; products may override the display role only. The Krizaka wordmark is drawn, inside the logo.
179
162
 
180
163
  ## 6. Surfaces & materials — the signature of the components
181
164
 
@@ -184,14 +167,14 @@ one idea, applied everywhere and always in tokens: **light comes from above.**
184
167
 
185
168
  | Lever | Rule | Tokens → utilities |
186
169
  | :-- | :-- | :-- |
187
- | **What you press rises** | A raised surface (button, card, chip, key, the active segment) carries a **sheen** — its top a little lighter — a **1-px edge of light** along its top, and an **ink-tinted shadow** in two or three layers. | `--kz-surface-sheen`, `--kz-edge-light`, `--kz-shadow-raised` → `bg-sheen inset-shadow-edge shadow-raised` |
170
+ | **What you press is a sheet** | Cahier (ADR-004): a raised surface is a sheet laid on another — a 1-px ink line under it and, when it floats, **a solid offset of paper** (`4px 5px 0 -2px`). No sheen, no edge of light, no blur (the tokens are kept, transparent). | `--kz-shadow-raised`, `--kz-shadow-floating` → `shadow-raised`, `shadow-floating` |
188
171
  | **What you fill sinks** | A field, a track, a checkbox is a **well**: an inner shade at its top. | `--kz-edge-well` → `inset-shadow-well` |
189
- | **What floats is glass** | Menus, popovers, tooltips, dialogs, toasts, the sticky header of a table: frosted glass at 88 % — the text stays AA over anything that passes under (tested against the page's own text). | `--kz-glass-*` → `glass shadow-floating` / `shadow-overlay` |
190
- | **Only what acts glows** | The accent fill is lit along its top edge and shaded at its bottom (on-accent stays ≥ 4.5:1 there, tested in every brand) and sits on the **brand's glow** — composed where it is used, so a `.brand-<id>` section has its own. Selection, the checked box, the current page glow too; nothing else. | `--kz-fill-shade`, `--kz-edge-on-fill` → `bg-fill-shade inset-shadow-edge-fill shadow-glow` |
172
+ | **What floats is a sheet** | Menus, popovers, tooltips, dialogs, toasts, the sticky header of a table, the bar: an **opaque** sheet (Cahier: no frosted glass, `--kz-glass-blur` is 0). | `--kz-glass-*` → `glass shadow-floating` / `shadow-overlay` |
173
+ | **Only what acts is inked** | The accent fill is the ink of the pen; `shadow-glow` is a 1 px line of the accent, `shadow-glow-lg` a solid offset of it — never a blurred glow (Cahier). | `--kz-fill-shade`, `--kz-edge-on-fill` → `bg-fill-shade shadow-glow` |
191
174
  | **The node marks a state** | The core of the marks, a small lit diamond: a badge's dot, the chosen radio, the switch's thumb when on, today in a calendar, an error's mark. | `node`, `node-lit` |
192
175
  | **The focus is the brand's ring** | A crisp ring of `--kz-ring`, 2 px off the element, in a halo of the same colour — it follows the corners, cut ones included. On a field it lies on the border. | `--kz-ring-*` → `focus-visible:focus-ring`, `focus-ring-inset` |
193
176
  | **Motion answers the hand** | A short spring (`ease-spring`), never more than 200 ms: a press compresses (0.97), a toggle springs across, a check pops in. Under `prefers-reduced-motion` every duration is 0 ms: instant, never absent. | `--kz-ease-spring`, `--kz-duration-*` |
194
- | **Type in three voices** | Display for titles (tracking tightened), text for reading, **mono for labels**: badges, table headers, menu labels, stat labels, weekdays. | `font-mono`, `tracking-[0.06em]` |
177
+ | **Type in three voices** | Display for titles (one weight), text for reading, the **typewriter for notes**: tags, captions, footnotes, table headers — lower case, untracked (Cahier). | `font-mono`, `text-overline` |
195
178
  | **Density** | Comfortable by default; `data-density="compact"` on a subtree tightens every control (a console, a dense table). | `--kz-control-*` |
196
179
  | **Status tints** | One tint per status, the primary text and the status text AA on it: badges, alerts, rows. A rail of the status colour that glows marks alerts and toasts. | `--kz-*-soft` |
197
180
 
package/README.md CHANGED
@@ -69,7 +69,7 @@ under every product override.
69
69
 
70
70
  | Token | Key | Usage | Dark | Light |
71
71
  | :-- | :-- | :-- | :-- | :-- |
72
- | `--kz-surface-0` | `surface0` | Page background | `hsl(240 6% 5%)` | `hsl(0 0% 98%)` |
72
+ | `--kz-surface-0` | `surface0` | Page background: the slate (dark), the paper (light) | `hsl(150 12% 9.5%)` | `hsl(100 14% 96%)` |
73
73
  | `--kz-surface-1` | `surface1` | Card, panel | `hsl(240 5% 9%)` | `hsl(0 0% 100%)` |
74
74
  | `--kz-surface-2` | `surface2` | Raised element, field, hover | `hsl(240 5% 13%)` | `hsl(240 6% 95%)` |
75
75
  | `--kz-surface-3` | `surface3` | Active element, chip, track | `hsl(240 4% 17%)` | `hsl(240 5% 90%)` |
@@ -77,7 +77,7 @@ under every product override.
77
77
  | `--kz-border-subtle` | `borderSubtle` | Quiet separator | `hsl(0 0% 100% / 0.06)` | `hsl(240 6% 0% / 0.06)` |
78
78
  | `--kz-border-default` | `borderDefault` | Card and field outline | `hsl(0 0% 100% / 0.10)` | `hsl(240 6% 0% / 0.10)` |
79
79
  | `--kz-border-strong` | `borderStrong` | Hover outline, non-keyboard focus | `hsl(0 0% 100% / 0.16)` | `hsl(240 6% 0% / 0.16)` |
80
- | `--kz-text-primary` | `textPrimary` | Headings, body text (≥ 4.5:1 on every surface) | `hsl(0 0% 96%)` | `hsl(240 6% 10%)` |
80
+ | `--kz-text-primary` | `textPrimary` | Headings, body text (≥ 4.5:1 on every surface): chalk, ink | `hsl(105 17% 93%)` | `hsl(212 49% 22%)` |
81
81
  | `--kz-text-secondary` | `textSecondary` | Supporting text, labels (≥ 4.5:1 on every surface) | `hsl(240 4% 64%)` | `hsl(240 4% 41%)` |
82
82
  | `--kz-text-muted` | `textMuted` | Metadata, placeholders, disabled (≥ 3:1 on every surface) | `hsl(240 4% 47%)` | `hsl(240 4% 52%)` |
83
83
  | `--kz-text-on-media` | `textOnMedia` | Text on an image or a video | `hsl(0 0% 100%)` | = dark |
@@ -88,7 +88,7 @@ under every product override.
88
88
  | `--kz-accent-2` | `accent2` | Second accent (gradients) | → `accent` | → `accent` |
89
89
  | `--kz-on-accent` | `onAccent` | Text and icon on the accent (≥ 4.5:1) | `hsl(0 0% 100%)` | = dark |
90
90
  | `--kz-ring` | `ring` | Keyboard focus ring | → `accent` | → `accent` |
91
- | `--kz-brand-gradient-from` / `-via` / `-to` | `brandGradientFrom`… | Section gradient of the brand (tinted → page surface); text reads at AA on every stop. `-to` is an alias of `surface-0`: an app that changes its page surface keeps a seamless section end | `hsl(222 45% 10%)` → `hsl(232 24% 7%)` → `surface-0` | `hsl(214 95% 93%)` → `hsl(220 60% 97%)` → `surface-0` |
91
+ | `--kz-brand-gradient-from` / `-via` / `-to` | `brandGradientFrom`… | Section gradient of the brand — flat since Cahier (ADR-004): the page surface; text reads at AA on every stop. `-to` is an alias of `surface-0`: an app that changes its page surface keeps a seamless section end | `hsl(222 45% 10%)` → `hsl(232 24% 7%)` → `surface-0` | `hsl(214 95% 93%)` → `hsl(220 60% 97%)` → `surface-0` |
92
92
  | `--kz-success` | `success` | Status: success — fills, borders, dots, icons (≥ 3:1) | `hsl(160 84% 39%)` | = dark |
93
93
  | `--kz-success-text` | `successText` | Success as small text: ≥ 4.5:1 on every surface | `hsl(158 64% 52%)` | `hsl(160 84% 24%)` |
94
94
  | `--kz-warning` | `warning` | Status: warning | `hsl(38 92% 50%)` | = dark |
@@ -105,24 +105,33 @@ under every product override.
105
105
 
106
106
  | Token | Key | Usage | Dark | Light |
107
107
  | :-- | :-- | :-- | :-- | :-- |
108
- | `--kz-radius-sm` | `radiusSm` | Field, chip | `8px` | = dark |
109
- | `--kz-radius-md` | `radiusMd` | Button, menu | `12px` | = dark |
110
- | `--kz-radius-lg` | `radiusLg` | Card | `16px` | = dark |
111
- | `--kz-radius-xl` | `radiusXl` | Dialog, sheet | `20px` | = dark |
108
+ | `--kz-radius-sm` | `radiusSm` | Field, chip | `2px` | = dark |
109
+ | `--kz-radius-md` | `radiusMd` | Button, menu | `2px` | = dark |
110
+ | `--kz-radius-lg` | `radiusLg` | Card (square paper) | `0px` | = dark |
111
+ | `--kz-radius-xl` | `radiusXl` | Dialog, sheet | `0px` | = dark |
112
112
  | `--kz-radius-full` | `radiusFull` | Pill, avatar | `9999px` | = dark |
113
- | `--kz-shadow-sm` | `shadowSm` | Field, button at rest (web only) | `0 1px 3px hsl(0 0% 0% / 0.12), 0 1px 2px hsl(0 0% 0% / 0.06)` | `0 1px 3px hsl(240 6% 0% / 0.06), 0 1px 2px hsl(240 6% 0% / 0.04)` |
114
- | `--kz-shadow-md` | `shadowMd` | Menu, popover, card on hover (web only) | `0 4px 12px hsl(0 0% 0% / 0.15), 0 2px 4px hsl(0 0% 0% / 0.08)` | `0 4px 12px hsl(240 6% 0% / 0.08), 0 2px 4px hsl(240 6% 0% / 0.04)` |
115
- | `--kz-shadow-lg` | `shadowLg` | Dialog, sheet (web only) | `0 8px 24px hsl(0 0% 0% / 0.18), 0 4px 8px hsl(0 0% 0% / 0.08)` | `0 8px 24px hsl(240 6% 0% / 0.10), 0 4px 8px hsl(240 6% 0% / 0.05)` |
116
- | `--kz-ease` | `ease` | Default curve of the motion signature | `cubic-bezier(0.16, 1, 0.3, 1)` | = dark |
117
- | `--kz-font-sans` | `fontSans` | Interface and running text | `Inter, system-ui, sans-serif` | = dark |
113
+ | `--kz-shadow-sm` | `shadowSm` | Field, button at rest (web only): a 1 px ink line, no blur | `0 1px 0 hsl(150 30% 3% / 0.6)` | `0 1px 0 hsl(212 49% 24% / 0.12)` |
114
+ | `--kz-shadow-md` | `shadowMd` | Menu, popover (web only): a sheet on a sheet | `0 1px 0 …, 4px 5px 0 -2px hsl(150 30% 4% / 0.55)` | `0 1px 0 …, 4px 5px 0 -2px hsl(212 40% 30% / 0.14)` |
115
+ | `--kz-shadow-lg` | `shadowLg` | Dialog, sheet (web only) | `0 1px 0 …, 6px 8px 0 -2px …` | `0 1px 0 …, 6px 8px 0 -2px …` |
116
+ | `--kz-ease` | `ease` | The ink stroke: the default curve (Cahier) | `cubic-bezier(0.45, 0, 0.2, 1)` | = dark |
117
+ | `--kz-font-sans` | `fontSans` | Interface and running text | `"Atkinson Hyperlegible Next", system-ui, sans-serif` | = dark |
118
118
  | `--kz-font-display` | `fontDisplay` | Headings; a product theme may override it | → `font-sans` | → `font-sans` |
119
- | `--kz-font-mono` | `fontMono` | Code, aligned amounts | `"JetBrains Mono", ui-monospace, monospace` | = dark |
119
+ | `--kz-font-mono` | `fontMono` | Tags, captions, footnotes, code | `"Courier Prime", "Courier New", monospace` | = dark |
120
+
121
+ ### The paper (Cahier, ADR-004)
122
+
123
+ | Token | Native | Role | Dark (slate) | Light (paper) |
124
+ | :-- | :-- | :-- | :-- | :-- |
125
+ | `--kz-paper-rule-major` / `-minor` | `paperRuleMajor`… | The Seyès ruling: a strong line every 32 px, three fine lines | chalk at 9 % / 4.5 % | ink blue at 24 % / 10 % |
126
+ | `--kz-paper-rule-margin` | `paperRuleMargin` | The red margin line, section numbers in the margin (≥ 3:1) | `hsl(8 64% 66%)` | `hsl(5 56% 47%)` |
127
+ | `--kz-paper-tag` / `-tag-edge` / `-tag-ink` | `paperTag`… | The specimen tag (manila), its edge and eyelet, its typed text (≥ 4.5:1) | slate tag, chalk ink | manila, near-black ink |
128
+ | `--kz-paper-module` / `--kz-paper-line` | — | The ruling's square and line | `32px` / `8px` | = dark |
120
129
 
121
130
  ### The material (BRAND.md §6)
122
131
 
123
132
  | Token | Key | Usage | Dark | Light |
124
133
  | :-- | :-- | :-- | :-- | :-- |
125
- | `--kz-radius-xs`, `--kz-radius-2xl` | `radiusXs`, `radius2xl` | Checkbox, key, cut badge · sheet | `6px`, `28px` | = dark |
134
+ | `--kz-radius-xs`, `--kz-radius-2xl` | `radiusXs`, `radius2xl` | Checkbox, key, cut badge · sheet | `2px`, `0px` | = dark |
126
135
  | `--kz-shadow-raised` · `-floating` · `-overlay` | `shadowRaised`… | Raised (button, card) · floating (menu, tooltip) · over the page (dialog, toast) — ink-tinted, 2–3 layers; native: `shadows.<theme>.raised` (`boxShadow`) | `hsl(240 30% 2% / …)` | `hsl(232 25% 25% / …)` |
127
136
  | `--kz-surface-sheen` | `surfaceSheen` | The top of a raised surface (`bg-sheen`) | `hsl(0 0% 100% / 0.045)` | `hsl(0 0% 100% / 0.7)` |
128
137
  | `--kz-fill-shade` | `fillShade` | The bottom of an accent or status fill (`bg-fill-shade`) | `hsl(0 0% 0% / 0.12)` | = dark |
@@ -12,8 +12,8 @@
12
12
  --kz-ring: var(--kz-accent);
13
13
  --kz-info: hsl(207 50% 58%);
14
14
  --kz-info-text: hsl(206 58% 72%);
15
- --kz-brand-gradient-from: hsl(140 28% 9%);
16
- --kz-brand-gradient-via: hsl(24 20% 8%);
15
+ --kz-brand-gradient-from: var(--kz-surface-0);
16
+ --kz-brand-gradient-via: var(--kz-surface-0);
17
17
  --kz-brand-gradient-to: var(--kz-surface-0);
18
18
  }
19
19
 
@@ -26,8 +26,6 @@ html.light {
26
26
  --kz-on-accent: hsl(0 0% 100%);
27
27
  --kz-info: hsl(208 54% 36%);
28
28
  --kz-info-text: hsl(208 54% 33%);
29
- --kz-brand-gradient-from: hsl(130 45% 94%);
30
- --kz-brand-gradient-via: hsl(26 60% 95%);
31
29
  }
32
30
 
33
31
  .theme-light {
@@ -40,7 +38,7 @@ html.light {
40
38
  --kz-ring: var(--kz-accent);
41
39
  --kz-info: hsl(208 54% 36%);
42
40
  --kz-info-text: hsl(208 54% 33%);
43
- --kz-brand-gradient-from: hsl(130 45% 94%);
44
- --kz-brand-gradient-via: hsl(26 60% 95%);
41
+ --kz-brand-gradient-from: var(--kz-surface-0);
42
+ --kz-brand-gradient-via: var(--kz-surface-0);
45
43
  --kz-brand-gradient-to: var(--kz-surface-0);
46
44
  }
@@ -12,8 +12,8 @@
12
12
  --kz-ring: hsl(48 96% 56%);
13
13
  --kz-info: hsl(207 50% 58%);
14
14
  --kz-info-text: hsl(206 58% 72%);
15
- --kz-brand-gradient-from: hsl(226 42% 11%);
16
- --kz-brand-gradient-via: hsl(232 26% 8%);
15
+ --kz-brand-gradient-from: var(--kz-surface-0);
16
+ --kz-brand-gradient-via: var(--kz-surface-0);
17
17
  --kz-brand-gradient-to: var(--kz-surface-0);
18
18
  }
19
19
 
@@ -27,8 +27,6 @@ html.light {
27
27
  --kz-ring: hsl(226 80% 46%);
28
28
  --kz-info: hsl(208 54% 36%);
29
29
  --kz-info-text: hsl(208 54% 33%);
30
- --kz-brand-gradient-from: hsl(226 80% 95%);
31
- --kz-brand-gradient-via: hsl(48 80% 95%);
32
30
  }
33
31
 
34
32
  .theme-light {
@@ -41,7 +39,7 @@ html.light {
41
39
  --kz-ring: hsl(226 80% 46%);
42
40
  --kz-info: hsl(208 54% 36%);
43
41
  --kz-info-text: hsl(208 54% 33%);
44
- --kz-brand-gradient-from: hsl(226 80% 95%);
45
- --kz-brand-gradient-via: hsl(48 80% 95%);
42
+ --kz-brand-gradient-from: var(--kz-surface-0);
43
+ --kz-brand-gradient-via: var(--kz-surface-0);
46
44
  --kz-brand-gradient-to: var(--kz-surface-0);
47
45
  }
@@ -12,8 +12,8 @@
12
12
  --kz-ring: var(--kz-accent);
13
13
  --kz-info: var(--kz-accent);
14
14
  --kz-info-text: var(--kz-accent-text);
15
- --kz-brand-gradient-from: hsl(210 30% 10%);
16
- --kz-brand-gradient-via: hsl(220 14% 7%);
15
+ --kz-brand-gradient-from: var(--kz-surface-0);
16
+ --kz-brand-gradient-via: var(--kz-surface-0);
17
17
  --kz-brand-gradient-to: var(--kz-surface-0);
18
18
  }
19
19
 
@@ -23,8 +23,6 @@ html.light {
23
23
  --kz-accent-soft: hsl(208 54% 36% / 0.08);
24
24
  --kz-accent-text: hsl(208 54% 33%);
25
25
  --kz-on-accent: hsl(0 0% 100%);
26
- --kz-brand-gradient-from: hsl(208 36% 93%);
27
- --kz-brand-gradient-via: hsl(210 30% 97%);
28
26
  }
29
27
 
30
28
  .theme-light {
@@ -37,7 +35,7 @@ html.light {
37
35
  --kz-ring: var(--kz-accent);
38
36
  --kz-info: var(--kz-accent);
39
37
  --kz-info-text: var(--kz-accent-text);
40
- --kz-brand-gradient-from: hsl(208 36% 93%);
41
- --kz-brand-gradient-via: hsl(210 30% 97%);
38
+ --kz-brand-gradient-from: var(--kz-surface-0);
39
+ --kz-brand-gradient-via: var(--kz-surface-0);
42
40
  --kz-brand-gradient-to: var(--kz-surface-0);
43
41
  }
@@ -12,8 +12,8 @@
12
12
  --kz-ring: var(--kz-accent);
13
13
  --kz-info: hsl(207 50% 58%);
14
14
  --kz-info-text: hsl(206 58% 72%);
15
- --kz-brand-gradient-from: hsl(24 55% 10%);
16
- --kz-brand-gradient-via: hsl(34 30% 7%);
15
+ --kz-brand-gradient-from: var(--kz-surface-0);
16
+ --kz-brand-gradient-via: var(--kz-surface-0);
17
17
  --kz-brand-gradient-to: var(--kz-surface-0);
18
18
  }
19
19
 
@@ -26,8 +26,6 @@ html.light {
26
26
  --kz-on-accent: hsl(0 0% 100%);
27
27
  --kz-info: hsl(208 54% 36%);
28
28
  --kz-info-text: hsl(208 54% 33%);
29
- --kz-brand-gradient-from: hsl(30 100% 92%);
30
- --kz-brand-gradient-via: hsl(38 80% 96%);
31
29
  }
32
30
 
33
31
  .theme-light {
@@ -40,7 +38,7 @@ html.light {
40
38
  --kz-ring: var(--kz-accent);
41
39
  --kz-info: hsl(208 54% 36%);
42
40
  --kz-info-text: hsl(208 54% 33%);
43
- --kz-brand-gradient-from: hsl(30 100% 92%);
44
- --kz-brand-gradient-via: hsl(38 80% 96%);
41
+ --kz-brand-gradient-from: var(--kz-surface-0);
42
+ --kz-brand-gradient-via: var(--kz-surface-0);
45
43
  --kz-brand-gradient-to: var(--kz-surface-0);
46
44
  }
@@ -12,8 +12,8 @@
12
12
  --kz-ring: hsl(255.1 91.7% 76.3%);
13
13
  --kz-info: var(--kz-accent);
14
14
  --kz-info-text: var(--kz-accent-text);
15
- --kz-brand-gradient-from: hsl(266 50% 11%);
16
- --kz-brand-gradient-via: hsl(320 35% 8%);
15
+ --kz-brand-gradient-from: var(--kz-surface-0);
16
+ --kz-brand-gradient-via: var(--kz-surface-0);
17
17
  --kz-brand-gradient-to: var(--kz-surface-0);
18
18
  }
19
19
 
@@ -25,8 +25,6 @@ html.light {
25
25
  --kz-accent-2: hsl(333.3 71.4% 50.6%);
26
26
  --kz-on-accent: hsl(0 0% 100%);
27
27
  --kz-ring: hsl(262.1 83.3% 57.8%);
28
- --kz-brand-gradient-from: hsl(262 90% 95%);
29
- --kz-brand-gradient-via: hsl(330 80% 96%);
30
28
  }
31
29
 
32
30
  .theme-light {
@@ -39,7 +37,7 @@ html.light {
39
37
  --kz-ring: hsl(262.1 83.3% 57.8%);
40
38
  --kz-info: var(--kz-accent);
41
39
  --kz-info-text: var(--kz-accent-text);
42
- --kz-brand-gradient-from: hsl(262 90% 95%);
43
- --kz-brand-gradient-via: hsl(330 80% 96%);
40
+ --kz-brand-gradient-from: var(--kz-surface-0);
41
+ --kz-brand-gradient-via: var(--kz-surface-0);
44
42
  --kz-brand-gradient-to: var(--kz-surface-0);
45
43
  }