@akhil-saxena/design-system 1.5.0 → 1.6.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/README.md +4 -4
- package/dist/tokens.css +58 -58
- package/package.json +13 -4
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# @akhil-saxena/design-system
|
|
2
2
|
|
|
3
|
-
Accessible React primitives with semantic tokens. Full dark mode,
|
|
3
|
+
Accessible React primitives with semantic tokens. Full dark mode, neutral paper + ink + amber editorial design language.
|
|
4
4
|
|
|
5
|
-
**v1.
|
|
5
|
+
**v1.6.0 — 79 components across 9 categories.**
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/@akhil-saxena/design-system)
|
|
8
8
|
|
|
@@ -110,8 +110,8 @@ From `@akhil-saxena/design-system/hooks`:
|
|
|
110
110
|
|
|
111
111
|
CSS custom properties in `tokens.css`:
|
|
112
112
|
|
|
113
|
-
- **Color** -
|
|
114
|
-
- **Typography** - Inter (body), Archivo (display), JetBrains Mono (code/data)
|
|
113
|
+
- **Color** - neutral surface/ink ramps + amber accent + AAA-tuned blue/purple/green/red status colors
|
|
114
|
+
- **Typography** - Inter (body), Archivo (display), Newsreader (editorial serif), JetBrains Mono (code/data)
|
|
115
115
|
- **Spacing** - 4px base, 12-step scale (4..64px)
|
|
116
116
|
- **Radius** - sm / md / lg / xl / pill
|
|
117
117
|
- **Shadow** - 1 / 2 / 3
|
package/dist/tokens.css
CHANGED
|
@@ -17,6 +17,10 @@
|
|
|
17
17
|
@import "@fontsource/jetbrains-mono/500.css";
|
|
18
18
|
@import "@fontsource/jetbrains-mono/600.css";
|
|
19
19
|
@import "@fontsource/jetbrains-mono/700.css";
|
|
20
|
+
/* Newsreader (variable, optical-size) — editorial serif for display headings
|
|
21
|
+
(roman) + quiet italic captions. Consolidated from Cairn (--serif). */
|
|
22
|
+
@import "@fontsource-variable/newsreader/opsz.css";
|
|
23
|
+
@import "@fontsource-variable/newsreader/opsz-italic.css";
|
|
20
24
|
|
|
21
25
|
/* ─── Light mode tokens ─────────────────────────────────────────────── */
|
|
22
26
|
:root {
|
|
@@ -25,23 +29,24 @@
|
|
|
25
29
|
sans-serif;
|
|
26
30
|
--mono: "JetBrains Mono", "SF Mono", "Menlo", monospace;
|
|
27
31
|
--display: "Archivo", system-ui, sans-serif;
|
|
32
|
+
--serif: "Newsreader Variable", Georgia, serif;
|
|
28
33
|
|
|
29
|
-
/* Ink ramp (text + dark surfaces).
|
|
34
|
+
/* Ink ramp (text + dark surfaces). Sourced from Cairn. --ink-4/--ink-5 are
|
|
35
|
+
AA-tuned (darker than a pure tonal ramp) so muted text + decorative
|
|
36
|
+
separators clear WCAG AA (4.5:1) against the light surfaces. */
|
|
30
37
|
--ink: #1c1c1a;
|
|
31
38
|
--ink-2: #57534e;
|
|
32
39
|
--ink-3: #6b6560;
|
|
33
|
-
--ink-4: #
|
|
34
|
-
--ink-5: #
|
|
40
|
+
--ink-4: #6b6560;
|
|
41
|
+
--ink-5: #8e8782;
|
|
35
42
|
|
|
36
|
-
/*
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
--cream: #
|
|
43
|
-
--cream-2: #f7f5f1;
|
|
44
|
-
--cream-3: #efece5;
|
|
43
|
+
/* Surface ramp — neutral near-white (sourced from Cairn). The ramp reads as
|
|
44
|
+
clean paper rather than warm cream; warmth in the system is carried by the
|
|
45
|
+
amber accent alone, not the surfaces. (Token name kept as --cream for
|
|
46
|
+
backwards-compat across consumers.) */
|
|
47
|
+
--cream: #fcfcfc;
|
|
48
|
+
--cream-2: #f4f4f4;
|
|
49
|
+
--cream-3: #f0f0f0;
|
|
45
50
|
|
|
46
51
|
/* Amber accent */
|
|
47
52
|
--amber: #f59e0b;
|
|
@@ -64,21 +69,19 @@
|
|
|
64
69
|
--green-vivid: #22c55e;
|
|
65
70
|
--red-vivid: #ef4444;
|
|
66
71
|
|
|
67
|
-
/* ─── Editorial
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
--red are untouched). See docs/CAIRN-CONSOLIDATION.md for the 3
|
|
72
|
-
value-collisions (--ink / --green / --red) left to a follow-up decision. */
|
|
72
|
+
/* ─── Editorial paper surfaces (sourced from Cairn) ────────────────────
|
|
73
|
+
Paper/panel ramp + amber-ink/soft/warm accents + semantic tint
|
|
74
|
+
backgrounds + a soft secondary rule. The paper ramp is neutral
|
|
75
|
+
(matching the --cream ramp); only the amber + semantic tints carry hue. */
|
|
73
76
|
--page-bg: #ffffff;
|
|
74
|
-
--bg: #
|
|
77
|
+
--bg: #f7f7f7;
|
|
75
78
|
--panel: #ffffff;
|
|
76
|
-
--panel2: #
|
|
77
|
-
--paper: #
|
|
78
|
-
--paper-warm: #
|
|
79
|
-
--paper-deep: #
|
|
80
|
-
--pg: #
|
|
81
|
-
--rule-s: #
|
|
79
|
+
--panel2: #f1f1f1;
|
|
80
|
+
--paper: #fcfcfc;
|
|
81
|
+
--paper-warm: #f4f4f4;
|
|
82
|
+
--paper-deep: #ededed;
|
|
83
|
+
--pg: #e6e6e6;
|
|
84
|
+
--rule-s: #d4d4d4;
|
|
82
85
|
--amber-ink: #92400e;
|
|
83
86
|
--amber-soft: #fef3c7;
|
|
84
87
|
--amber-warm: #fdf6e3;
|
|
@@ -193,26 +196,24 @@
|
|
|
193
196
|
define the same values so var(--ink) etc resolve correctly on either. */
|
|
194
197
|
:root.dark,
|
|
195
198
|
.dark {
|
|
196
|
-
/*
|
|
197
|
-
- 3 distinct surface stops
|
|
198
|
-
|
|
199
|
-
- Text
|
|
200
|
-
|
|
201
|
-
- Rules
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
--ink: #
|
|
205
|
-
--ink-
|
|
206
|
-
--ink-
|
|
207
|
-
--ink-4: #5c554a;
|
|
208
|
-
--ink-5: #3a3530;
|
|
199
|
+
/* Dark-mode ramp — sourced from Cairn (neutral charcoal):
|
|
200
|
+
- 3 distinct surface stops so page / column / card don't collapse into
|
|
201
|
+
one slab.
|
|
202
|
+
- Text is a neutral light grey; the amber accent is the only warm signal,
|
|
203
|
+
so it lands cleanly against the neutral surfaces.
|
|
204
|
+
- Rules are cool-white at 9% / 14% (strong) for active dividers. */
|
|
205
|
+
--ink: #ededed;
|
|
206
|
+
--ink-2: #ababab;
|
|
207
|
+
--ink-3: #7c7c7c;
|
|
208
|
+
--ink-4: #565656;
|
|
209
|
+
--ink-5: #363636;
|
|
209
210
|
|
|
210
|
-
--cream: #
|
|
211
|
-
--cream-2: #
|
|
212
|
-
--cream-3: #
|
|
211
|
+
--cream: #181818;
|
|
212
|
+
--cream-2: #1f1f1f;
|
|
213
|
+
--cream-3: #2a2a2a;
|
|
213
214
|
|
|
214
|
-
--rule: rgba(
|
|
215
|
-
--rule-strong: rgba(
|
|
215
|
+
--rule: rgba(255, 255, 255, 0.09);
|
|
216
|
+
--rule-strong: rgba(255, 255, 255, 0.14);
|
|
216
217
|
|
|
217
218
|
/* Glass tints to deepest surface (anchored instead of floating) */
|
|
218
219
|
--g-bg: rgba(15, 13, 11, 0.7);
|
|
@@ -235,11 +236,10 @@
|
|
|
235
236
|
--green-vivid: #22c55e;
|
|
236
237
|
--red-vivid: #ef4444;
|
|
237
238
|
|
|
238
|
-
/* Surface translucent overlays —
|
|
239
|
-
|
|
240
|
-
--surf-
|
|
241
|
-
--surf-
|
|
242
|
-
--surf-3: rgba(247, 236, 219, 0.1);
|
|
239
|
+
/* Surface translucent overlays — cool white, matching the neutral ramp. */
|
|
240
|
+
--surf-1: rgba(255, 255, 255, 0.035);
|
|
241
|
+
--surf-2: rgba(255, 255, 255, 0.055);
|
|
242
|
+
--surf-3: rgba(255, 255, 255, 0.09);
|
|
243
243
|
|
|
244
244
|
/* Focus ring - dark-mode amber-d glow */
|
|
245
245
|
--focus-ring: 0 0 0 3px rgba(251, 191, 36, 0.5);
|
|
@@ -248,16 +248,16 @@
|
|
|
248
248
|
--ds-illust-bg: rgba(255, 255, 255, 0.13);
|
|
249
249
|
--ds-illust-bg-2: rgba(255, 255, 255, 0.2);
|
|
250
250
|
|
|
251
|
-
/* ─── Editorial
|
|
252
|
-
--page-bg: #
|
|
253
|
-
--bg: #
|
|
254
|
-
--panel: #
|
|
255
|
-
--panel2: #
|
|
256
|
-
--paper: #
|
|
257
|
-
--paper-warm: #
|
|
258
|
-
--paper-deep: #
|
|
259
|
-
--pg: #
|
|
260
|
-
--rule-s: #
|
|
251
|
+
/* ─── Editorial paper surfaces — dark (sourced from Cairn, neutral) ──────── */
|
|
252
|
+
--page-bg: #101010;
|
|
253
|
+
--bg: #101010;
|
|
254
|
+
--panel: #1c1c1c;
|
|
255
|
+
--panel2: #242424;
|
|
256
|
+
--paper: #1e1e1e;
|
|
257
|
+
--paper-warm: #1c1c1c;
|
|
258
|
+
--paper-deep: #262626;
|
|
259
|
+
--pg: #0b0b0b;
|
|
260
|
+
--rule-s: #333333;
|
|
261
261
|
--amber-ink: #f5c56b;
|
|
262
262
|
--amber-soft: #3a2e10;
|
|
263
263
|
--amber-warm: #2a2110;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@akhil-saxena/design-system",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Accessible React primitives with semantic tokens",
|
|
6
6
|
"license": "MIT",
|
|
@@ -16,8 +16,14 @@
|
|
|
16
16
|
"main": "./dist/index.js",
|
|
17
17
|
"module": "./dist/index.js",
|
|
18
18
|
"types": "./dist/index.d.ts",
|
|
19
|
-
"files": [
|
|
20
|
-
|
|
19
|
+
"files": [
|
|
20
|
+
"dist",
|
|
21
|
+
"README.md",
|
|
22
|
+
"LICENSE"
|
|
23
|
+
],
|
|
24
|
+
"sideEffects": [
|
|
25
|
+
"*.css"
|
|
26
|
+
],
|
|
21
27
|
"exports": {
|
|
22
28
|
".": {
|
|
23
29
|
"types": "./dist/index.d.ts",
|
|
@@ -57,6 +63,7 @@
|
|
|
57
63
|
"@dnd-kit/core": "^6.3.1",
|
|
58
64
|
"@dnd-kit/sortable": "^10.0.0",
|
|
59
65
|
"@dnd-kit/utilities": "^3.2.2",
|
|
66
|
+
"@fontsource-variable/newsreader": "^5.2.10",
|
|
60
67
|
"@fontsource/archivo": "^5.0.0",
|
|
61
68
|
"@fontsource/inter": "^5.0.0",
|
|
62
69
|
"@fontsource/jetbrains-mono": "^5.0.0",
|
|
@@ -98,7 +105,9 @@
|
|
|
98
105
|
"vitest": "^4.1.4"
|
|
99
106
|
},
|
|
100
107
|
"lint-staged": {
|
|
101
|
-
"*.{ts,tsx,js,jsx,json,jsonc,css}": [
|
|
108
|
+
"*.{ts,tsx,js,jsx,json,jsonc,css}": [
|
|
109
|
+
"biome check --write --no-errors-on-unmatched"
|
|
110
|
+
]
|
|
102
111
|
},
|
|
103
112
|
"engines": {
|
|
104
113
|
"node": ">=20"
|