@krizaka/tokens 2.0.0 → 2.2.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 +6 -4
- package/README.md +1 -1
- package/dist/brands/orazaka.css +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +41 -4
- package/dist/native.d.ts +4 -0
- package/dist/native.js +43 -6
- package/package.json +1 -1
package/BRAND.md
CHANGED
|
@@ -10,7 +10,7 @@ overrides). A product never re-invents its values: it imports its brand.
|
|
|
10
10
|
| Brand | Identity | Why |
|
|
11
11
|
| :-- | :-- | :-- |
|
|
12
12
|
| **Krizaka** (parent) | **Ink + Krizaka blue.** The neutral surfaces and text of the platform carry the brand; one blue, the core of the Krizaka mark, is the only accent. | The parent frames its products without competing with them: ink is neutral next to orange and violet, and blue is the complement of the Orazaka orange. It is also the platform default (`tokens.css` = the Krizaka brand). |
|
|
13
|
-
| **Orazaka** (sovereign AI) | **Orange**,
|
|
13
|
+
| **Orazaka** (sovereign AI) | **Orange**, hue 26 — the accent and the mark share it. | Hue 38 (amber) is `--kz-warning`: a primary button, and since 2.1.0 the mark, must never read as a warning. The light theme's accent is the deep orange `#b45309`, also the first stop of the mark. `info` stays blue (an orange "info" would read as a warning). |
|
|
14
14
|
| **Orochia** (creators) | **Velvet violet → magenta**, the serpent of its mark (unchanged). | The values of `@krizaka/orochia-design-system`, already adjusted to AA. |
|
|
15
15
|
|
|
16
16
|
### Palette (the accent family)
|
|
@@ -24,7 +24,7 @@ overrides). A product never re-invents its values: it imports its brand.
|
|
|
24
24
|
| `accent-hover` | `hsl(217 88% 45%)` | `hsl(217 88% 42%)` | `hsl(26 92% 62%)` (lightens) | `hsl(26 90% 31%)` | #6d28d9 | #6d28d9 |
|
|
25
25
|
| `on-accent` | white (4.6:1) | white (5.1:1) | near-black `hsl(240 6% 5%)` (7.4:1) | white (5.1:1) | white (5.7:1) | white (5.7:1) |
|
|
26
26
|
| `accent-text` | `hsl(217 92% 68%)` #629cf8 | `hsl(217 92% 42%)` #0954ce | `hsl(26 92% 60%)` #f78c3b | `hsl(26 90% 32%)` #9b4808 | #a78bfa | #6d28d9 |
|
|
27
|
-
| `accent-2` | = accent | = accent | #f59e0b (the
|
|
27
|
+
| `accent-2` | = accent | = accent | #f59e0b (closes the buttons' gradient) | `hsl(32 95% 33%)` | #db2777 | #db2777 |
|
|
28
28
|
| `ring` | = accent | = accent | = accent | = accent | #a78bfa | #7c3aed |
|
|
29
29
|
| `info` | = accent | = accent | `hsl(217 92% 60%)` | `hsl(217 92% 50%)` | = accent | = accent |
|
|
30
30
|
|
|
@@ -67,12 +67,14 @@ after in Storybook, *Brand/Evolution*):
|
|
|
67
67
|
| Mark | Emblem | Change and reason |
|
|
68
68
|
| :-- | :-- | :-- |
|
|
69
69
|
| Krizaka | An **ink** hexagonal shield, open at its upper-right vertex where a **blue node** breaks out, around a blue core. | Before: hairline strokes and five hard-coded blues that vanished below 48 px and did not crop. Now the weight, crop and grammar of Orochia; ink + one blue, the brand palette. |
|
|
70
|
-
| Orazaka | Three **solid** hexagonal shards in the
|
|
70
|
+
| Orazaka | Three **solid** hexagonal shards in the brand's orange gradient, orbiting a core. | Before: two grey outlines and one amber, 3.5-unit strokes — the mark read grey and thin next to Orochia. Same idea, now solid, with the family's crop. **2.1.0:** amber (`#b45309 → #f59e0b`, hues 26 → 38) becomes the brand's orange — deep orange `hsl(26 90.5% 37.1%)` #b45309 → orange `hsl(26 92% 45%)` #dc6509, one hue: the old light stop was the warning's hue and read at 2:1 on a light page; every stop now reads ≥ 3:1 on surfaces 0–2 in dark and light (a test). |
|
|
71
71
|
| Orochia | The serpent coiled into an "O" around the flame. | Unchanged. |
|
|
72
72
|
|
|
73
73
|
Web: `KrizakaLogo`, `OrazakaLogo`, `OrochiaLogo`, `ProductLogo id` (`@krizaka/ui`). Native: `KrizakaMark`,
|
|
74
74
|
`OrazakaMark`, `OrochiaMark`, `ProductMark id` (`@krizaka/ui/native`). The geometry is shared
|
|
75
|
-
(`packages/ui/src/marks/*-geometry.ts`)
|
|
75
|
+
(`packages/ui/src/marks/*-geometry.ts`); the emblem gradients are **brand tokens** — `$extensions["com.krizaka"].mark` of
|
|
76
|
+
each `src/brands/<id>.brand.json`, exported as `marks.<id>` (`@krizaka/tokens`, `/native`) — read by the geometry, never
|
|
77
|
+
copied. A mark is the same in both themes: its stops are chosen to read on dark and light pages.
|
|
76
78
|
|
|
77
79
|
## 3. Icons — the signature
|
|
78
80
|
|
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@ npm install @krizaka/tokens
|
|
|
27
27
|
| :-- | :-- | :-- |
|
|
28
28
|
| `@krizaka/tokens/tokens.css` | Web (imported once, usually through `@krizaka/tailwind`) | The `--kz-*` custom properties. |
|
|
29
29
|
| `@krizaka/tokens` | TS / JS on the web (canvas, charts, e-mails, inline styles) | `tokens` (`var(--kz-…)` references, camelCase keys), `values.dark` / `values.light` (raw CSS, aliases resolved), `TokenName`. |
|
|
30
|
-
| `@krizaka/tokens/native` | React Native / Expo | `themes.dark` / `themes.light` (hex, `rgba()` when translucent), `radius` (dp), `typography`, `motion.ease`, type `Theme`; `brands.<id>` (ThemeProvider overrides). |
|
|
30
|
+
| `@krizaka/tokens/native` | React Native / Expo | `themes.dark` / `themes.light` (hex, `rgba()` when translucent), `radius` (dp), `typography`, `motion.ease`, type `Theme`; `brands.<id>` (ThemeProvider overrides); `marks.<id>` (the mark's emblem gradient, `[offset, #rrggbb]` stops). |
|
|
31
31
|
| `@krizaka/tokens/brands/<id>.css` | A product app (`krizaka`, `orazaka`, `orochia`), after the tokens | The brand's accent family and section gradient, dark and light. |
|
|
32
32
|
| `@krizaka/tokens/brands/scoped.css` | A page showing several brands | `.brand-krizaka`, `.brand-orazaka`, `.brand-orochia`. |
|
|
33
33
|
|
package/dist/brands/orazaka.css
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* @krizaka/tokens — GÉNÉRÉ depuis src/brands/orazaka.brand.json par scripts/build.mjs : ne pas éditer.
|
|
2
|
-
Orazaka — orange,
|
|
2
|
+
Orazaka — orange, teinte 26 (pas 38 : la teinte 38 est celle de --kz-warning, un bouton principal ne doit jamais lire comme un avertissement). Dark : orange clair sous texte quasi noir ; light : orange profond (#b45309) sous texte blanc. accent-2 prolonge le dégradé des boutons vers l'ambre. info reste bleu : un statut d'information orange se confondrait avec un avertissement. Le logo (mark) est un dégradé orange profond → orange sur la même teinte 26, identique dans les deux thèmes et ≥ 3:1 sur les surfaces 0–2 des deux thèmes.
|
|
3
3
|
Importé après tokens.css (ou @krizaka/tailwind) : l'identité orazaka sur toute l'app, dans les deux thèmes. */
|
|
4
4
|
|
|
5
5
|
:root, .theme-dark {
|
package/dist/index.d.ts
CHANGED
|
@@ -61,3 +61,7 @@ export type BrandId = "krizaka" | "orazaka" | "orochia";
|
|
|
61
61
|
export type BrandRole = "accent" | "accentHover" | "accentSoft" | "accentText" | "accent2" | "onAccent" | "ring" | "info" | "infoText" | "brandGradientFrom" | "brandGradientVia" | "brandGradientTo";
|
|
62
62
|
/** The brand themes: the accent family of each Krizaka brand, raw CSS per theme (aliases resolved). */
|
|
63
63
|
export declare const brands: { readonly [B in BrandId]: { readonly dark: { readonly [R in BrandRole]: string }; readonly light: { readonly [R in BrandRole]: string } } };
|
|
64
|
+
/** A gradient stop of a mark: [offset, colour]. */
|
|
65
|
+
export type MarkStop = readonly [offset: string, color: string];
|
|
66
|
+
/** The marks' emblem gradients: [offset, colour] stops, the same in both themes (raw CSS). */
|
|
67
|
+
export declare const marks: { readonly [B in BrandId]: readonly MarkStop[] };
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @krizaka/tokens — GÉNÉRÉ depuis src/tokens/*.tokens.json par scripts/build.mjs : ne pas éditer.
|
|
2
2
|
|
|
3
3
|
/** Every token as a CSS reference, `var(--kz-…)`: follows the active theme. */
|
|
4
|
-
export const tokens = Object.freeze({
|
|
4
|
+
export const tokens = /* @__PURE__ */ Object.freeze({
|
|
5
5
|
"surface0": "var(--kz-surface-0)",
|
|
6
6
|
"surface1": "var(--kz-surface-1)",
|
|
7
7
|
"surface2": "var(--kz-surface-2)",
|
|
@@ -50,7 +50,7 @@ export const tokens = Object.freeze({
|
|
|
50
50
|
});
|
|
51
51
|
|
|
52
52
|
/** The raw CSS values per theme (aliases resolved), for canvas, charts and e-mails. */
|
|
53
|
-
export const values = Object.freeze({ dark: Object.freeze({
|
|
53
|
+
export const values = /* @__PURE__ */ Object.freeze({ dark: /* @__PURE__ */ Object.freeze({
|
|
54
54
|
"surface0": "hsl(240 6% 5%)",
|
|
55
55
|
"surface1": "hsl(240 5% 9%)",
|
|
56
56
|
"surface2": "hsl(240 5% 13%)",
|
|
@@ -96,7 +96,7 @@ export const values = Object.freeze({ dark: Object.freeze({
|
|
|
96
96
|
"fontSans": "Inter, system-ui, sans-serif",
|
|
97
97
|
"fontDisplay": "Inter, system-ui, sans-serif",
|
|
98
98
|
"fontMono": "\"JetBrains Mono\", ui-monospace, monospace"
|
|
99
|
-
}), light: Object.freeze({
|
|
99
|
+
}), light: /* @__PURE__ */ Object.freeze({
|
|
100
100
|
"surface0": "hsl(0 0% 98%)",
|
|
101
101
|
"surface1": "hsl(0 0% 100%)",
|
|
102
102
|
"surface2": "hsl(240 6% 95%)",
|
|
@@ -145,7 +145,7 @@ export const values = Object.freeze({ dark: Object.freeze({
|
|
|
145
145
|
}) });
|
|
146
146
|
|
|
147
147
|
/** The brand themes: the accent family of each Krizaka brand, raw CSS per theme (aliases resolved). */
|
|
148
|
-
export const brands = Object.freeze({
|
|
148
|
+
export const brands = /* @__PURE__ */ Object.freeze({
|
|
149
149
|
"krizaka": {
|
|
150
150
|
"dark": {
|
|
151
151
|
"accent": "hsl(217 92% 53%)",
|
|
@@ -237,3 +237,40 @@ export const brands = Object.freeze({
|
|
|
237
237
|
}
|
|
238
238
|
}
|
|
239
239
|
});
|
|
240
|
+
/** The marks' emblem gradients: [offset, colour] stops, the same in both themes (raw CSS). */
|
|
241
|
+
export const marks = /* @__PURE__ */ Object.freeze({
|
|
242
|
+
"krizaka": [
|
|
243
|
+
[
|
|
244
|
+
"0%",
|
|
245
|
+
"hsl(217 92% 53%)"
|
|
246
|
+
],
|
|
247
|
+
[
|
|
248
|
+
"100%",
|
|
249
|
+
"hsl(217 92% 68%)"
|
|
250
|
+
]
|
|
251
|
+
],
|
|
252
|
+
"orazaka": [
|
|
253
|
+
[
|
|
254
|
+
"0%",
|
|
255
|
+
"hsl(26 90.5% 37.1%)"
|
|
256
|
+
],
|
|
257
|
+
[
|
|
258
|
+
"100%",
|
|
259
|
+
"hsl(26 92% 45%)"
|
|
260
|
+
]
|
|
261
|
+
],
|
|
262
|
+
"orochia": [
|
|
263
|
+
[
|
|
264
|
+
"0%",
|
|
265
|
+
"hsl(262.1 83.3% 57.8%)"
|
|
266
|
+
],
|
|
267
|
+
[
|
|
268
|
+
"55%",
|
|
269
|
+
"hsl(292.2 84.1% 60.6%)"
|
|
270
|
+
],
|
|
271
|
+
[
|
|
272
|
+
"100%",
|
|
273
|
+
"hsl(328.6 85.5% 70.2%)"
|
|
274
|
+
]
|
|
275
|
+
]
|
|
276
|
+
});
|
package/dist/native.d.ts
CHANGED
|
@@ -62,3 +62,7 @@ export type BrandId = "krizaka" | "orazaka" | "orochia";
|
|
|
62
62
|
export type BrandTheme = { readonly dark: { readonly [R in "accent" | "accentHover" | "accentSoft" | "accentText" | "accent2" | "onAccent" | "ring" | "info" | "infoText" | "brandGradientFrom" | "brandGradientVia" | "brandGradientTo"]: string }; readonly light: { readonly [R in "accent" | "accentHover" | "accentSoft" | "accentText" | "accent2" | "onAccent" | "ring" | "info" | "infoText" | "brandGradientFrom" | "brandGradientVia" | "brandGradientTo"]: string } };
|
|
63
63
|
/** The brand themes as ThemeProvider overrides (`overrides={brands.orazaka}`): the accent family per theme. */
|
|
64
64
|
export declare const brands: { readonly [B in BrandId]: BrandTheme };
|
|
65
|
+
/** A gradient stop of a mark: [offset, #rrggbb]. */
|
|
66
|
+
export type MarkStop = readonly [offset: string, color: string];
|
|
67
|
+
/** The marks' emblem gradients: [offset, #rrggbb] stops, the same in both themes. */
|
|
68
|
+
export declare const marks: { readonly [B in BrandId]: readonly MarkStop[] };
|
package/dist/native.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @krizaka/tokens — GÉNÉRÉ depuis src/tokens/*.tokens.json par scripts/build.mjs : ne pas éditer.
|
|
2
2
|
|
|
3
3
|
/** Colour roles per theme, resolved for React Native (`#rrggbb`, `rgba()` when translucent). */
|
|
4
|
-
export const themes = Object.freeze({ dark: Object.freeze({
|
|
4
|
+
export const themes = /* @__PURE__ */ Object.freeze({ dark: /* @__PURE__ */ Object.freeze({
|
|
5
5
|
"surface0": "#0c0c0e",
|
|
6
6
|
"surface1": "#161618",
|
|
7
7
|
"surface2": "#1f1f23",
|
|
@@ -35,7 +35,7 @@ export const themes = Object.freeze({ dark: Object.freeze({
|
|
|
35
35
|
"scrim": "rgba(0,0,0,0.6)",
|
|
36
36
|
"scrimStrong": "rgba(0,0,0,0.8)",
|
|
37
37
|
"overlay": "rgba(0,0,0,0.7)"
|
|
38
|
-
}), light: Object.freeze({
|
|
38
|
+
}), light: /* @__PURE__ */ Object.freeze({
|
|
39
39
|
"surface0": "#fafafa",
|
|
40
40
|
"surface1": "#ffffff",
|
|
41
41
|
"surface2": "#f1f1f3",
|
|
@@ -72,7 +72,7 @@ export const themes = Object.freeze({ dark: Object.freeze({
|
|
|
72
72
|
}) });
|
|
73
73
|
|
|
74
74
|
/** Corner radii, in dp. */
|
|
75
|
-
export const radius = Object.freeze({
|
|
75
|
+
export const radius = /* @__PURE__ */ Object.freeze({
|
|
76
76
|
"sm": 8,
|
|
77
77
|
"md": 12,
|
|
78
78
|
"lg": 16,
|
|
@@ -81,17 +81,17 @@ export const radius = Object.freeze({
|
|
|
81
81
|
});
|
|
82
82
|
|
|
83
83
|
/** Font families: the first family of each web stack (React Native takes a single name). */
|
|
84
|
-
export const typography = Object.freeze({
|
|
84
|
+
export const typography = /* @__PURE__ */ Object.freeze({
|
|
85
85
|
"sans": "Inter",
|
|
86
86
|
"display": "Inter",
|
|
87
87
|
"mono": "JetBrains Mono"
|
|
88
88
|
});
|
|
89
89
|
|
|
90
90
|
/** Motion: the cubic-bezier control points (`Easing.bezier(...motion.ease)`). */
|
|
91
|
-
export const motion = Object.freeze({ ease: Object.freeze([0.16,1,0.3,1]) });
|
|
91
|
+
export const motion = /* @__PURE__ */ Object.freeze({ ease: /* @__PURE__ */ Object.freeze([0.16,1,0.3,1]) });
|
|
92
92
|
|
|
93
93
|
/** The brand themes as ThemeProvider overrides (`overrides={brands.orazaka}`): the accent family per theme. */
|
|
94
|
-
export const brands = Object.freeze({
|
|
94
|
+
export const brands = /* @__PURE__ */ Object.freeze({
|
|
95
95
|
"krizaka": {
|
|
96
96
|
"dark": {
|
|
97
97
|
"accent": "#196df5",
|
|
@@ -183,3 +183,40 @@ export const brands = Object.freeze({
|
|
|
183
183
|
}
|
|
184
184
|
}
|
|
185
185
|
});
|
|
186
|
+
/** The marks' emblem gradients: [offset, #rrggbb] stops, the same in both themes. */
|
|
187
|
+
export const marks = /* @__PURE__ */ Object.freeze({
|
|
188
|
+
"krizaka": [
|
|
189
|
+
[
|
|
190
|
+
"0%",
|
|
191
|
+
"#196df5"
|
|
192
|
+
],
|
|
193
|
+
[
|
|
194
|
+
"100%",
|
|
195
|
+
"#629cf8"
|
|
196
|
+
]
|
|
197
|
+
],
|
|
198
|
+
"orazaka": [
|
|
199
|
+
[
|
|
200
|
+
"0%",
|
|
201
|
+
"#b45309"
|
|
202
|
+
],
|
|
203
|
+
[
|
|
204
|
+
"100%",
|
|
205
|
+
"#dc6509"
|
|
206
|
+
]
|
|
207
|
+
],
|
|
208
|
+
"orochia": [
|
|
209
|
+
[
|
|
210
|
+
"0%",
|
|
211
|
+
"#7c3aed"
|
|
212
|
+
],
|
|
213
|
+
[
|
|
214
|
+
"55%",
|
|
215
|
+
"#d946ef"
|
|
216
|
+
],
|
|
217
|
+
[
|
|
218
|
+
"100%",
|
|
219
|
+
"#f472b6"
|
|
220
|
+
]
|
|
221
|
+
]
|
|
222
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@krizaka/tokens",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "The Krizaka semantic design tokens (--kz-*) and the brand themes (Krizaka, Orazaka, Orochia): one DTCG source compiled to CSS (dark, light, media invariants), typed constants and React Native themes.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"krizaka",
|