@refrakt-md/lumina 0.18.0 → 0.20.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.
Files changed (58) hide show
  1. package/base.css +4 -0
  2. package/contracts/structures.json +509 -223
  3. package/dist/config.js +5 -5
  4. package/dist/config.js.map +1 -1
  5. package/dist/presets/tideline.d.ts.map +1 -1
  6. package/dist/presets/tideline.js +0 -14
  7. package/dist/presets/tideline.js.map +1 -1
  8. package/dist/tokens.d.ts.map +1 -1
  9. package/dist/tokens.js +20 -23
  10. package/dist/tokens.js.map +1 -1
  11. package/index.css +5 -1
  12. package/package.json +4 -4
  13. package/styles/base/attributes.css +9 -0
  14. package/styles/dimensions/cover.css +140 -0
  15. package/styles/dimensions/frame.css +54 -0
  16. package/styles/dimensions/guest-posture.css +27 -0
  17. package/styles/dimensions/media.css +1 -1
  18. package/styles/dimensions/sections.css +4 -1
  19. package/styles/dimensions/sequence.css +1 -1
  20. package/styles/dimensions/state.css +1 -1
  21. package/styles/dimensions/substrate.css +101 -0
  22. package/styles/dimensions/surfaces.css +35 -2
  23. package/styles/global.css +68 -0
  24. package/styles/layouts/on-this-page.css +2 -2
  25. package/styles/layouts/search.css +2 -2
  26. package/styles/layouts/split.css +134 -183
  27. package/styles/layouts/version-switcher.css +1 -1
  28. package/styles/runes/audio.css +1 -1
  29. package/styles/runes/bento.css +193 -99
  30. package/styles/runes/bg.css +24 -0
  31. package/styles/runes/bond.css +1 -1
  32. package/styles/runes/budget.css +1 -1
  33. package/styles/runes/card.css +77 -9
  34. package/styles/runes/character.css +1 -1
  35. package/styles/runes/chart.css +69 -0
  36. package/styles/runes/design-context.css +7 -5
  37. package/styles/runes/event.css +1 -1
  38. package/styles/runes/faction.css +32 -6
  39. package/styles/runes/feature.css +21 -16
  40. package/styles/runes/figure.css +1 -2
  41. package/styles/runes/gallery.css +39 -8
  42. package/styles/runes/itinerary.css +2 -2
  43. package/styles/runes/lore.css +1 -1
  44. package/styles/runes/palette.css +3 -3
  45. package/styles/runes/plan-progress.css +15 -62
  46. package/styles/runes/playlist.css +32 -0
  47. package/styles/runes/plot.css +2 -2
  48. package/styles/runes/realm.css +32 -6
  49. package/styles/runes/recipe.css +38 -2
  50. package/styles/runes/sandbox.css +1 -1
  51. package/styles/runes/showcase.css +7 -63
  52. package/styles/runes/spacing.css +4 -4
  53. package/styles/runes/swatch.css +1 -1
  54. package/styles/runes/tint.css +7 -7
  55. package/styles/runes/typography.css +7 -7
  56. package/styles/runes/xref.css +1 -1
  57. package/tokens/base.css +14 -14
  58. package/tokens/dark.css +18 -14
@@ -11,7 +11,7 @@
11
11
  }
12
12
  .rf-typography__specimen {
13
13
  border-radius: var(--rf-radius-lg, 12px);
14
- padding: 1.5rem;
14
+ padding: 0;
15
15
  }
16
16
  .rf-typography__specimen-header {
17
17
  display: flex;
@@ -26,14 +26,14 @@
26
26
  font-weight: 600;
27
27
  text-transform: uppercase;
28
28
  letter-spacing: 0.05em;
29
- color: var(--rf-color-primary, #0ea5e9);
30
- background: var(--rf-color-primary-bg, rgba(14, 165, 233, 0.1));
29
+ color: var(--rf-color-muted);
30
+ background: var(--rf-color-surface-raised);
31
31
  padding: 0.125rem 0.5rem;
32
32
  border-radius: var(--rf-radius-sm, 4px);
33
33
  }
34
34
  .rf-typography__specimen-family {
35
35
  font-size: 0.9rem;
36
- color: var(--rf-color-text-muted, #6b7280);
36
+ color: var(--rf-color-muted);
37
37
  }
38
38
  .rf-typography__sizes {
39
39
  display: flex;
@@ -54,7 +54,7 @@
54
54
  flex-shrink: 0;
55
55
  font-size: 0.7rem;
56
56
  font-family: var(--rf-font-mono, monospace);
57
- color: var(--rf-color-text-muted, #6b7280);
57
+ color: var(--rf-color-muted);
58
58
  min-width: 3rem;
59
59
  text-align: right;
60
60
  }
@@ -73,7 +73,7 @@
73
73
  .rf-typography__weight-label {
74
74
  font-size: 0.7rem;
75
75
  font-family: var(--rf-font-mono, monospace);
76
- color: var(--rf-color-text-muted, #6b7280);
76
+ color: var(--rf-color-muted);
77
77
  }
78
78
  .rf-typography__charset {
79
79
  margin-top: 1rem;
@@ -83,7 +83,7 @@
83
83
  line-height: 1.8;
84
84
  letter-spacing: 0.05em;
85
85
  word-break: break-all;
86
- color: var(--rf-color-text-muted, #6b7280);
86
+ color: var(--rf-color-muted);
87
87
  }
88
88
 
89
89
  /* Context-aware: no outer border when inside design-context (parent already has one) */
@@ -23,6 +23,6 @@
23
23
  /* Unresolved reference */
24
24
  .rf-xref--unresolved {
25
25
  text-decoration: underline dashed;
26
- color: var(--rf-color-text-muted);
26
+ color: var(--rf-color-muted);
27
27
  cursor: help;
28
28
  }
package/tokens/base.css CHANGED
@@ -11,19 +11,6 @@
11
11
  --rf-font-sans: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
12
12
  --rf-font-mono: 'JetBrains Mono', 'Fira Code', ui-monospace, 'Cascadia Code', monospace;
13
13
 
14
- /* Primary scale — warm-neutral axis, near-bg → near-text */
15
- --rf-color-primary-50: #fbfaf7;
16
- --rf-color-primary-100: #f5f4f1;
17
- --rf-color-primary-200: #ecebe8;
18
- --rf-color-primary-300: #e2e0dd;
19
- --rf-color-primary-400: #bfbab2;
20
- --rf-color-primary-500: #94908a;
21
- --rf-color-primary-600: #76716a;
22
- --rf-color-primary-700: #5a564f;
23
- --rf-color-primary-800: #3a342d;
24
- --rf-color-primary-900: #2a2622;
25
- --rf-color-primary-950: #1c1a17;
26
-
27
14
  /* Core palette */
28
15
  --rf-color-text: #1c1a17;
29
16
  --rf-color-muted: #6b6661;
@@ -31,12 +18,18 @@
31
18
  --rf-color-bg: #f5f4f1;
32
19
  --rf-color-primary: #1c1a17;
33
20
  --rf-color-primary-hover: #3a342d;
21
+ /* Derived subtle primary wash — tracks `primary` in both modes. */
22
+ --rf-color-primary-bg: color-mix(in oklch, var(--rf-color-primary) 10%, transparent);
23
+ --rf-color-on-primary: #ffffff;
34
24
 
35
25
  /* Surfaces */
36
26
  --rf-color-surface: #fbfaf7;
37
27
  --rf-color-surface-hover: #ecebe8;
38
28
  --rf-color-surface-active: #e2e0dd;
39
29
  --rf-color-surface-raised: #ffffff;
30
+ /* SPEC-087 — lightness delta for the derived inset surface (applied at use-site
31
+ * via relative-color — lower L, keep C+H — so it tracks a tinted --rf-color-surface). */
32
+ --rf-surface-inset-shift: 0.04;
40
33
 
41
34
  /* Semantic — muted earthy band per SPEC-051 */
42
35
  --rf-color-info: #34547a;
@@ -58,7 +51,13 @@
58
51
  * status-coloured (which would compete with diff's add/remove channel
59
52
  * and the semantic palette above). `*-rail` is the optional left-edge
60
53
  * border colour; falls back to the primary accent via the consuming
61
- * CSS for themes that don't override it. */
54
+ * CSS for themes that don't override it.
55
+ *
56
+ * WORK-341 — these three (and `--rf-color-primary-bg` above) are
57
+ * **intentionally shared**: each derives from a mode-aware token
58
+ * (`text` / `primary` / `muted`), so they track dark mode automatically
59
+ * and deliberately have no dark.css override (a fixed dark value would
60
+ * break the derivation). */
62
61
  --rf-color-line-highlight: color-mix(in srgb, var(--rf-color-text) 6%, transparent);
63
62
  --rf-color-line-highlight-rail: var(--rf-color-primary, var(--rf-color-text));
64
63
  /* Gutter colour for `pre[data-linenumbers]` line counter. Defers to
@@ -93,6 +92,7 @@
93
92
  --rf-inset-breathe: 8rem;
94
93
 
95
94
  /* Shadows */
95
+ --rf-shadow-none: none;
96
96
  --rf-shadow-xs: 0 1px 2px rgba(0,0,0,0.04);
97
97
  --rf-shadow-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
98
98
  --rf-shadow-md: 0 4px 12px rgba(0,0,0,0.07), 0 1px 3px rgba(0,0,0,0.04);
package/tokens/dark.css CHANGED
@@ -9,15 +9,17 @@
9
9
  [data-theme="dark"] {
10
10
  --rf-color-text: #f6f4ef;
11
11
  --rf-color-muted: #94908a;
12
- --rf-color-border: #2a2825;
12
+ --rf-color-border: #282825;
13
13
  --rf-color-bg: #1a1a17;
14
14
  --rf-color-primary: #f6f4ef;
15
15
  --rf-color-primary-hover: #d4cfc5;
16
+ --rf-color-on-primary: #1a1a17;
16
17
 
17
- --rf-color-surface: #211f1c;
18
- --rf-color-surface-hover: #2a2825;
19
- --rf-color-surface-active: #353330;
20
- --rf-color-surface-raised: #292723;
18
+ --rf-color-surface: #1f1f1c;
19
+ --rf-color-surface-hover: #282825;
20
+ --rf-color-surface-active: #333330;
21
+ --rf-color-surface-raised: #272723;
22
+ --rf-surface-inset-shift: 0.06;
21
23
 
22
24
  --rf-color-info: #9bb4c7;
23
25
  --rf-color-info-bg: #1f2530;
@@ -32,7 +34,7 @@
32
34
  --rf-color-success-bg: #1a2a1f;
33
35
  --rf-color-success-border: #2a4a35;
34
36
 
35
- --rf-color-code-bg: #222220;
37
+ --rf-color-code-bg: #1c1c19;
36
38
  --rf-color-code-text: #f6f4ef;
37
39
  --rf-color-code-inline-bg: #2b2b29;
38
40
  --rf-color-inline-code-bg: #2b2b29;
@@ -46,7 +48,7 @@
46
48
  --rf-syntax-variable: #f6f4ef;
47
49
 
48
50
  --rf-syntax-foreground: #f6f4ef;
49
- --rf-syntax-background: #222220;
51
+ --rf-syntax-background: #1c1c19;
50
52
  --rf-syntax-token-keyword: #7eb6bc;
51
53
  --rf-syntax-token-string: #c79a9a;
52
54
  --rf-syntax-token-string-expression: #c79a9a;
@@ -68,15 +70,17 @@
68
70
  :root:not([data-theme="light"]) {
69
71
  --rf-color-text: #f6f4ef;
70
72
  --rf-color-muted: #94908a;
71
- --rf-color-border: #2a2825;
73
+ --rf-color-border: #282825;
72
74
  --rf-color-bg: #1a1a17;
73
75
  --rf-color-primary: #f6f4ef;
74
76
  --rf-color-primary-hover: #d4cfc5;
77
+ --rf-color-on-primary: #1a1a17;
75
78
 
76
- --rf-color-surface: #211f1c;
77
- --rf-color-surface-hover: #2a2825;
78
- --rf-color-surface-active: #353330;
79
- --rf-color-surface-raised: #292723;
79
+ --rf-color-surface: #1f1f1c;
80
+ --rf-color-surface-hover: #282825;
81
+ --rf-color-surface-active: #333330;
82
+ --rf-color-surface-raised: #272723;
83
+ --rf-surface-inset-shift: 0.06;
80
84
 
81
85
  --rf-color-info: #9bb4c7;
82
86
  --rf-color-info-bg: #1f2530;
@@ -91,7 +95,7 @@
91
95
  --rf-color-success-bg: #1a2a1f;
92
96
  --rf-color-success-border: #2a4a35;
93
97
 
94
- --rf-color-code-bg: #222220;
98
+ --rf-color-code-bg: #1c1c19;
95
99
  --rf-color-code-text: #f6f4ef;
96
100
  --rf-color-code-inline-bg: #2b2b29;
97
101
  --rf-color-inline-code-bg: #2b2b29;
@@ -105,7 +109,7 @@
105
109
  --rf-syntax-variable: #f6f4ef;
106
110
 
107
111
  --rf-syntax-foreground: #f6f4ef;
108
- --rf-syntax-background: #222220;
112
+ --rf-syntax-background: #1c1c19;
109
113
  --rf-syntax-token-keyword: #7eb6bc;
110
114
  --rf-syntax-token-string: #c79a9a;
111
115
  --rf-syntax-token-string-expression: #c79a9a;