@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 CHANGED
@@ -1,8 +1,8 @@
1
1
  # @akhil-saxena/design-system
2
2
 
3
- Accessible React primitives with semantic tokens. Full dark mode, cream + ink + amber design language.
3
+ Accessible React primitives with semantic tokens. Full dark mode, neutral paper + ink + amber editorial design language.
4
4
 
5
- **v1.5.0 — 79 components across 9 categories.**
5
+ **v1.6.0 — 79 components across 9 categories.**
6
6
 
7
7
  [![npm](https://img.shields.io/npm/v/@akhil-saxena/design-system)](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** - cream/ink/amber ramps + AAA-tuned blue/purple/green/red status colors
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). --ink reskinned to Cairn's editorial ink. */
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: #8a8380;
34
- --ink-5: #d6d3d1;
40
+ --ink-4: #6b6560;
41
+ --ink-5: #8e8782;
35
42
 
36
- /* Cream ramp (warm background surfaces).
37
- Whiter than the original handoff so chrome surfaces (sidebar / topbar /
38
- filter bar / page body) feel uplifting rather than dull. Brand warmth
39
- is preserved by the faint yellow tint in every step; the ramp now
40
- stays close to white through cream-2 with cream-3 reserved for the
41
- most-recessed slots (column tracks, secondary hover wash). */
42
- --cream: #fdfcf9;
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 / warm-paper surfaces (merged from Cairn) ──────────────
68
- Cairn's editorial palette — a warm paper/panel ramp + amber-ink/soft/warm
69
- accents + semantic tint backgrounds + a soft secondary rule. Additive:
70
- these are net-new token NAMES (the --cream ramp and core --ink/--green/
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: #faf8f2;
77
+ --bg: #f7f7f7;
75
78
  --panel: #ffffff;
76
- --panel2: #f4f1eb;
77
- --paper: #fcfaf4;
78
- --paper-warm: #f8f3e5;
79
- --paper-deep: #f3eddc;
80
- --pg: #e9e5de;
81
- --rule-s: #d6d0c5;
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
- /* Revised dark-mode ramp — Cairn · Dark Mode Revision.html spec:
197
- - 3 distinct surface stops (~6L between) so page / column / card stop
198
- collapsing into one slab. The old ramp lived inside a 14–17L band.
199
- - Text inverts to WARM cream (was cool near-white) so it stops fighting
200
- the warm-paper brand and lets the amber accent land as signal.
201
- - Rules warm + lift to 7% (was 8% cool white); new `--rule-strong` at
202
- 12% for active dividers (e.g. column-header underline).
203
- The headline move: drop warmth from background, put it into text. */
204
- --ink: #f7ecdb;
205
- --ink-2: #b8ac97;
206
- --ink-3: #857b6c;
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: #0f0d0b;
211
- --cream-2: #1a1714;
212
- --cream-3: #241f1a;
211
+ --cream: #181818;
212
+ --cream-2: #1f1f1f;
213
+ --cream-3: #2a2a2a;
213
214
 
214
- --rule: rgba(247, 236, 219, 0.07);
215
- --rule-strong: rgba(247, 236, 219, 0.12);
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 — warm-cream tint instead of cool white
239
- so they blend with the new warm-cream ink. */
240
- --surf-1: rgba(247, 236, 219, 0.04);
241
- --surf-2: rgba(247, 236, 219, 0.06);
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 / warm-paper surfaces — dark (merged from Cairn) ──────── */
252
- --page-bg: #0f0d0b;
253
- --bg: #0f0d0b;
254
- --panel: #1a1714;
255
- --panel2: #221d18;
256
- --paper: #221d17;
257
- --paper-warm: #1f1a14;
258
- --paper-deep: #2a2218;
259
- --pg: #0a0908;
260
- --rule-s: #3a342c;
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.5.0",
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": ["dist", "README.md", "LICENSE"],
20
- "sideEffects": ["*.css"],
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}": ["biome check --write --no-errors-on-unmatched"]
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"