@refrakt-md/lumina 0.9.2 → 0.9.4

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 (54) hide show
  1. package/contracts/structures.json +17 -38
  2. package/dist/layouts/index.d.ts +12 -0
  3. package/dist/layouts/index.d.ts.map +1 -0
  4. package/dist/layouts/index.js +13 -0
  5. package/dist/layouts/index.js.map +1 -0
  6. package/dist/src/config.d.ts.map +1 -0
  7. package/dist/{config.js → src/config.js} +42 -42
  8. package/dist/src/config.js.map +1 -0
  9. package/dist/src/icons.d.ts.map +1 -0
  10. package/dist/{icons.js → src/icons.js} +1 -0
  11. package/dist/src/icons.js.map +1 -0
  12. package/dist/src/transform.d.ts.map +1 -0
  13. package/dist/src/transform.js.map +1 -0
  14. package/package.json +10 -10
  15. package/styles/dimensions/density.css +22 -0
  16. package/styles/dimensions/metadata.css +2 -6
  17. package/styles/dimensions/sections.css +1 -1
  18. package/styles/dimensions/surfaces.css +5 -4
  19. package/styles/elements/blockquote.css +1 -1
  20. package/styles/elements/code.css +11 -7
  21. package/styles/elements/table.css +14 -8
  22. package/styles/global.css +1 -1
  23. package/styles/layouts/default.css +7 -0
  24. package/styles/runes/api.css +11 -54
  25. package/styles/runes/bond.css +3 -3
  26. package/styles/runes/budget.css +22 -8
  27. package/styles/runes/chart.css +1 -0
  28. package/styles/runes/codegroup.css +14 -5
  29. package/styles/runes/compare.css +3 -0
  30. package/styles/runes/design-context.css +13 -16
  31. package/styles/runes/details.css +3 -8
  32. package/styles/runes/diff.css +6 -2
  33. package/styles/runes/event.css +2 -23
  34. package/styles/runes/form.css +4 -1
  35. package/styles/runes/gallery.css +7 -12
  36. package/styles/runes/hint.css +3 -0
  37. package/styles/runes/lore.css +0 -10
  38. package/styles/runes/milestone.css +13 -5
  39. package/styles/runes/preview.css +8 -3
  40. package/styles/runes/testimonial.css +5 -2
  41. package/styles/runes/tint.css +59 -57
  42. package/styles/runes/typography.css +0 -1
  43. package/tokens/base.css +48 -48
  44. package/tokens/dark.css +72 -72
  45. package/dist/config.d.ts.map +0 -1
  46. package/dist/config.js.map +0 -1
  47. package/dist/icons.d.ts.map +0 -1
  48. package/dist/icons.js.map +0 -1
  49. package/dist/transform.d.ts.map +0 -1
  50. package/dist/transform.js.map +0 -1
  51. /package/dist/{config.d.ts → src/config.d.ts} +0 -0
  52. /package/dist/{icons.d.ts → src/icons.d.ts} +0 -0
  53. /package/dist/{transform.d.ts → src/transform.d.ts} +0 -0
  54. /package/dist/{transform.js → src/transform.js} +0 -0
@@ -1,15 +1,29 @@
1
1
  /* Budget */
2
- .rf-budget__header {
2
+ .rf-budget__meta {
3
3
  display: flex;
4
- flex-direction: column;
5
- align-items: flex-start;
4
+ flex-wrap: wrap;
5
+ align-items: center;
6
+ gap: 0.5rem;
7
+ }
8
+ .rf-budget__preamble {
6
9
  margin-bottom: 1.5rem;
7
10
  }
8
- .rf-budget__title {
9
- margin: 0 0 0.5rem;
10
- font-size: 1.25rem;
11
- font-weight: 700;
12
- color: var(--rf-color-text);
11
+ .rf-budget .rf-budget__eyebrow {
12
+ font-size: 0.8rem;
13
+ font-weight: 600;
14
+ letter-spacing: 0.06em;
15
+ text-transform: uppercase;
16
+ color: var(--rf-color-primary);
17
+ margin: 0 0 0.375rem;
18
+ }
19
+ .rf-budget__headline {
20
+ margin-top: 0;
21
+ margin-bottom: 0.25rem;
22
+ }
23
+ .rf-budget .rf-budget__blurb {
24
+ color: var(--rf-color-muted);
25
+ margin-bottom: 0;
26
+ max-width: 40rem;
13
27
  }
14
28
 
15
29
  /* Categories */
@@ -2,6 +2,7 @@
2
2
  .rf-chart {
3
3
  border-radius: var(--rf-radius-lg);
4
4
  padding: 1.5rem;
5
+ margin: 0;
5
6
  }
6
7
  .rf-chart__title {
7
8
  font-weight: 600;
@@ -25,10 +25,11 @@
25
25
  .rf-codegroup__dot:nth-child(1) { background: #ef4444; }
26
26
  .rf-codegroup__dot:nth-child(2) { background: #f59e0b; }
27
27
  .rf-codegroup__dot:nth-child(3) { background: #22c55e; }
28
- .rf-codegroup__title {
28
+ .rf-codegroup__title[data-section="title"] {
29
29
  margin-left: 0.5rem;
30
30
  font-family: var(--rf-font-mono);
31
31
  font-size: 0.8rem;
32
+ font-weight: normal;
32
33
  opacity: 0.7;
33
34
  }
34
35
  .rf-codegroup ul {
@@ -48,7 +49,7 @@
48
49
  padding: 0.5rem 1rem;
49
50
  font-size: 0.8rem;
50
51
  font-family: var(--rf-font-mono);
51
- color: rgba(255, 255, 255, 0.5);
52
+ color: rgba(255, 255, 255, 0.7);
52
53
  background: none;
53
54
  border: none;
54
55
  border-bottom: 2px solid transparent;
@@ -56,12 +57,20 @@
56
57
  transition: color 200ms ease, border-color 200ms ease;
57
58
  white-space: nowrap;
58
59
  }
59
- .rf-codegroup__tab:hover {
60
+ .rf-codegroup__tab:hover,
61
+ .rf-codegroup button[data-state="inactive"]:hover {
60
62
  color: rgba(255, 255, 255, 0.8);
61
63
  }
62
- .rf-codegroup__tab--active {
64
+ .rf-codegroup__tab--active,
65
+ .rf-codegroup button[data-state="active"] {
63
66
  color: rgba(255, 255, 255, 0.95);
64
- border-bottom-color: var(--rf-color-primary);
67
+ border-bottom-color: var(--rf-color-code-text);
68
+ }
69
+ .rf-codegroup button[data-state="inactive"] {
70
+ color: rgba(255, 255, 255, 0.7);
71
+ }
72
+ .rf-codegroup .rf-codeblock {
73
+ margin: 0;
65
74
  }
66
75
  .rf-codegroup pre {
67
76
  margin: 0;
@@ -33,6 +33,9 @@
33
33
  background: var(--rf-color-surface);
34
34
  border-bottom: 1px solid var(--rf-color-border);
35
35
  }
36
+ .rf-compare .rf-codeblock {
37
+ margin: 0;
38
+ }
36
39
  .rf-compare pre {
37
40
  margin: 0;
38
41
  border: none;
@@ -1,24 +1,21 @@
1
1
  /* Design Context — unified token card wrapper */
2
- .rf-design-context {
3
- border: 1px solid var(--rf-color-border, #e5e7eb);
4
- border-radius: 0.75rem;
5
- overflow: hidden;
6
- }
7
2
  .rf-design-context__title {
8
- font-size: 1.125rem;
9
- font-weight: 600;
10
- padding: 1rem 1.25rem;
11
- border-bottom: 1px solid var(--rf-color-border, #e5e7eb);
12
- background: var(--rf-color-bg-muted, #f9fafb);
3
+ font-size: 1.25rem;
4
+ font-weight: 700;
5
+ margin-bottom: 1rem;
13
6
  }
14
7
  .rf-design-context__sections {
15
8
  display: flex;
16
9
  flex-direction: column;
10
+ gap: 1.5rem;
17
11
  }
18
- .rf-design-context__sections > * {
19
- padding: 1.25rem;
20
- margin: 0;
21
- }
22
- .rf-design-context__sections > * + * {
23
- border-top: 1px dashed var(--rf-color-border, #e5e7eb);
12
+
13
+ /* Children inside design-context: remove card styling */
14
+ .rf-palette--in-design-context,
15
+ .rf-typography--in-design-context,
16
+ .rf-spacing--in-design-context,
17
+ .rf-swatch--in-design-context {
18
+ background: none;
19
+ border-radius: 0;
20
+ padding: 0;
24
21
  }
@@ -1,18 +1,14 @@
1
1
  /* Details */
2
2
  .rf-details {
3
- border: 1px solid var(--rf-color-border);
4
- border-radius: var(--rf-radius-md);
5
- overflow: hidden;
6
3
  }
7
4
  .rf-details__summary {
8
5
  display: flex;
9
6
  align-items: center;
10
7
  gap: 0.5rem;
11
- padding: 0.75rem 1.25rem;
8
+ padding: 0.75rem 0;
12
9
  font-weight: 600;
13
10
  font-size: 0.925rem;
14
11
  cursor: pointer;
15
- background: var(--rf-color-surface);
16
12
  user-select: none;
17
13
  list-style: none;
18
14
  transition: background-color 200ms ease;
@@ -20,7 +16,7 @@
20
16
  .rf-details__summary::-webkit-details-marker { display: none; }
21
17
  .rf-details__summary::marker { display: none; content: ''; }
22
18
  .rf-details__summary:hover {
23
- background: var(--rf-color-surface-hover);
19
+ color: var(--rf-color-primary);
24
20
  }
25
21
  .rf-details__summary::after {
26
22
  content: '▸';
@@ -33,8 +29,7 @@
33
29
  transform: rotate(90deg);
34
30
  }
35
31
  .rf-details__body {
36
- padding: 1rem 1.25rem;
37
- border-top: 1px solid var(--rf-color-border);
32
+ padding: 0 0 1rem;
38
33
  font-size: 0.925rem;
39
34
  line-height: 1.65;
40
35
  }
@@ -2,12 +2,13 @@
2
2
  .rf-diff {
3
3
  border: 1px solid var(--rf-color-border);
4
4
  border-radius: var(--rf-radius-lg);
5
- overflow: hidden;
5
+ overflow-x: auto;
6
6
  font-size: 0.875rem;
7
7
  }
8
8
  .rf-diff__split-container {
9
9
  display: grid;
10
10
  grid-template-columns: 1fr 1fr;
11
+ min-width: 40rem;
11
12
  }
12
13
  .rf-diff__split-container .rf-diff__panel:first-child {
13
14
  border-right: 1px solid var(--rf-color-border);
@@ -29,7 +30,7 @@
29
30
  }
30
31
  .rf-diff__code {
31
32
  margin: 0;
32
- padding: 0;
33
+ padding: var(--rf-spacing-sm) 0;
33
34
  border: none;
34
35
  border-radius: 0;
35
36
  background: var(--rf-color-code-bg);
@@ -66,6 +67,9 @@
66
67
  }
67
68
  .rf-diff__line[data-type="remove"] .rf-diff__gutter-prefix { color: var(--rf-color-danger); }
68
69
  .rf-diff__line[data-type="add"] .rf-diff__gutter-prefix { color: var(--rf-color-success); }
70
+ .rf-diff .rf-codeblock {
71
+ margin: 0;
72
+ }
69
73
  .rf-diff__line-content {
70
74
  flex: 1;
71
75
  white-space: pre;
@@ -1,30 +1,9 @@
1
1
  /* Event */
2
- .rf-event__details {
2
+ .rf-event__meta {
3
3
  display: flex;
4
4
  flex-wrap: wrap;
5
5
  align-items: center;
6
- gap: 1.5rem;
7
- background: var(--rf-color-surface);
8
- border-radius: var(--rf-radius-md);
9
- padding: 0.75rem 1rem;
10
- }
11
- .rf-event__detail {
12
- display: block;
13
- }
14
- .rf-event__label {
15
- display: block;
16
- margin-bottom: 0.125rem;
17
- font-size: 0.75rem;
18
- font-weight: 400;
19
- text-transform: uppercase;
20
- letter-spacing: 0.05em;
21
- color: var(--rf-color-muted);
22
- opacity: 0.6;
23
- }
24
- .rf-event__value {
25
- font-size: 0.9375rem;
26
- font-weight: 500;
27
- color: var(--rf-color-text);
6
+ gap: 0.5rem;
28
7
  }
29
8
  .rf-event__register {
30
9
  display: inline-block;
@@ -3,7 +3,7 @@
3
3
  display: flex;
4
4
  flex-direction: column;
5
5
  gap: 1.25rem;
6
- max-width: 36rem;
6
+ max-width: none;
7
7
  }
8
8
  .rf-form__body {
9
9
  display: flex;
@@ -30,6 +30,9 @@
30
30
  flex: 1;
31
31
  min-width: 10rem;
32
32
  }
33
+ .rf-form--inline .rf-form__submit {
34
+ align-self: flex-end;
35
+ }
33
36
  /* Compact variant */
34
37
  .rf-form--compact {
35
38
  gap: 0.75rem;
@@ -1,6 +1,7 @@
1
1
  /* Gallery — Multi-image container with grid/carousel/masonry layout */
2
2
  .rf-gallery {
3
3
  position: relative;
4
+ margin: 0;
4
5
  }
5
6
 
6
7
  /* Layout modifier classes */
@@ -156,25 +157,19 @@
156
157
  right: 1rem;
157
158
  }
158
159
 
159
- /* Column count overrides */
160
- .rf-gallery[data-columns="1"] .rf-gallery__items { grid-template-columns: 1fr; }
161
- .rf-gallery[data-columns="2"] .rf-gallery__items { grid-template-columns: repeat(2, 1fr); }
162
- .rf-gallery[data-columns="4"] .rf-gallery__items { grid-template-columns: repeat(4, 1fr); }
163
- .rf-gallery[data-columns="5"] .rf-gallery__items { grid-template-columns: repeat(5, 1fr); }
164
- .rf-gallery[data-columns="6"] .rf-gallery__items { grid-template-columns: repeat(6, 1fr); }
165
-
166
- /* Responsive: collapse to fewer columns on small screens */
160
+ /* Responsive: reset custom columns/gap and collapse on small screens */
167
161
  @media (max-width: 768px) {
168
- .rf-gallery__items {
169
- grid-template-columns: repeat(2, 1fr);
162
+ .rf-gallery {
163
+ --gallery-columns: 2 !important;
164
+ --gallery-gap: var(--rf-spacing-md) !important;
170
165
  }
171
166
  .rf-gallery[data-layout="carousel"] .rf-gallery__item {
172
167
  flex-basis: 80%;
173
168
  }
174
169
  }
175
170
  @media (max-width: 480px) {
176
- .rf-gallery__items {
177
- grid-template-columns: 1fr;
171
+ .rf-gallery {
172
+ --gallery-columns: 1 !important;
178
173
  }
179
174
  .rf-gallery[data-layout="carousel"] .rf-gallery__item {
180
175
  flex-basis: 100%;
@@ -7,6 +7,9 @@
7
7
  border-radius: 0 var(--rf-radius-md) var(--rf-radius-md) 0;
8
8
  background: var(--hint-bg);
9
9
  }
10
+ .rf-hint__header {
11
+ margin-bottom: 0.375rem;
12
+ }
10
13
  .rf-hint__icon {
11
14
  display: flex;
12
15
  align-items: center;
@@ -12,17 +12,7 @@
12
12
  padding-left: 1.5rem;
13
13
  }
14
14
  .rf-lore__content blockquote {
15
- border-left: 2px solid var(--rf-color-primary);
16
- background: var(--rf-color-surface);
17
- border-radius: 0 var(--rf-radius-md) var(--rf-radius-md) 0;
18
- padding: 0.75rem 1.25rem;
19
- margin: 1rem 0;
20
15
  font-style: italic;
21
- color: var(--rf-color-muted);
22
- line-height: 1.6;
23
- }
24
- .rf-lore__content blockquote p {
25
- margin: 0;
26
16
  }
27
17
  .rf-lore > span[property="title"] {
28
18
  display: block;
@@ -78,18 +78,26 @@
78
78
  /* Aggregate progress */
79
79
  .rf-milestone__progress {
80
80
  display: flex;
81
- align-items: center;
82
- gap: 0.625rem;
81
+ flex-direction: column;
83
82
  margin-bottom: 1rem;
84
83
  }
84
+ .rf-milestone__progress-header {
85
+ display: flex;
86
+ justify-content: space-between;
87
+ align-items: baseline;
88
+ margin-bottom: 0.375rem;
89
+ }
85
90
  .rf-milestone__progress-label {
86
91
  font-size: 0.75rem;
87
92
  font-weight: 600;
88
93
  color: var(--rf-color-muted);
89
- white-space: nowrap;
94
+ }
95
+ .rf-milestone__progress-count {
96
+ font-size: 0.75rem;
97
+ font-weight: 600;
98
+ color: var(--rf-color-muted);
90
99
  }
91
100
  .rf-milestone__progress-bar {
92
- flex: 1;
93
101
  height: 0.375rem;
94
102
  border-radius: var(--rf-radius-sm);
95
103
  background: var(--rf-color-surface-active);
@@ -100,7 +108,7 @@
100
108
  display: block;
101
109
  height: 100%;
102
110
  width: var(--rf-progress, 0%);
103
- background: var(--rf-color-success);
111
+ background: var(--rf-color-primary);
104
112
  border-radius: var(--rf-radius-sm);
105
113
  transition: width 0.3s ease;
106
114
  }
@@ -84,6 +84,9 @@
84
84
  .rf-preview__canvas > *:last-child {
85
85
  margin-bottom: 0;
86
86
  }
87
+ .rf-preview__canvas > [data-rune] + [data-rune] {
88
+ margin-top: 0.75rem;
89
+ }
87
90
 
88
91
  /* Viewport simulation toggle pill */
89
92
  .rf-preview__viewport-toggle {
@@ -118,7 +121,6 @@
118
121
 
119
122
  /* Source code view — bordered frame matching the canvas */
120
123
  .rf-preview__source {
121
- overflow: hidden;
122
124
  border: 1px solid var(--rf-color-border);
123
125
  border-radius: var(--rf-radius-lg);
124
126
  }
@@ -126,9 +128,9 @@
126
128
  margin: 0;
127
129
  border-radius: 0;
128
130
  }
129
- .rf-preview__source .rf-codeblock,
130
- .rf-preview__source .rf-code-wrapper {
131
+ .rf-preview__source .rf-codeblock {
131
132
  border-radius: 0;
133
+ margin: 0;
132
134
  }
133
135
 
134
136
  /* Source tabs (data-source panels) */
@@ -136,6 +138,7 @@
136
138
  display: flex;
137
139
  gap: 0;
138
140
  background: var(--rf-color-surface);
141
+ border-radius: var(--rf-radius-lg);
139
142
  }
140
143
  .rf-preview__source-tab {
141
144
  padding: 0.5rem 1rem;
@@ -169,6 +172,8 @@
169
172
  }
170
173
  .rf-preview__source {
171
174
  border-radius: 0;
175
+ border-left: none;
176
+ border-right: none;
172
177
  }
173
178
  /* Break out of feature's padding-inline to reach viewport edges */
174
179
  .rf-preview--in-feature {
@@ -14,6 +14,9 @@
14
14
  color: var(--rf-color-border);
15
15
  line-height: 1;
16
16
  }
17
+ .rf-testimonial__star::before {
18
+ content: '★';
19
+ }
17
20
  .rf-testimonial__star[data-filled="true"] {
18
21
  color: var(--rf-color-warning);
19
22
  }
@@ -37,14 +40,14 @@
37
40
  .rf-testimonial blockquote p {
38
41
  margin: 0;
39
42
  }
40
- .rf-testimonial span[property="authorName"] {
43
+ .rf-testimonial__author-name {
41
44
  display: block;
42
45
  font-weight: 700;
43
46
  font-style: normal;
44
47
  font-size: 0.925rem;
45
48
  color: var(--rf-color-text);
46
49
  }
47
- .rf-testimonial span[property="authorRole"] {
50
+ .rf-testimonial__author-role {
48
51
  display: block;
49
52
  margin-top: 0.125rem;
50
53
  font-size: 0.85rem;
@@ -11,37 +11,37 @@
11
11
  /* ── 0. Token registration ────────────────────────────────────────────────
12
12
  * @property makes guaranteed-invalid fall back to the inherited value
13
13
  * (inherits: true) rather than propagating as invalid through children.
14
- * initial-value matches the light-mode defaults from tokens/base.css. */
14
+ * initial-value must match the light-mode defaults in tokens/base.css. */
15
15
 
16
16
  @property --rf-color-bg {
17
17
  syntax: '<color>';
18
18
  inherits: true;
19
- initial-value: #ffffff;
19
+ initial-value: #faf5eb;
20
20
  }
21
21
  @property --rf-color-surface {
22
22
  syntax: '<color>';
23
23
  inherits: true;
24
- initial-value: #f8fafc;
24
+ initial-value: #fffbf2;
25
25
  }
26
26
  @property --rf-color-text {
27
27
  syntax: '<color>';
28
28
  inherits: true;
29
- initial-value: #1a1a2e;
29
+ initial-value: #1d3557;
30
30
  }
31
31
  @property --rf-color-muted {
32
32
  syntax: '<color>';
33
33
  inherits: true;
34
- initial-value: #64748b;
34
+ initial-value: #5a7a90;
35
35
  }
36
36
  @property --rf-color-primary {
37
37
  syntax: '<color>';
38
38
  inherits: true;
39
- initial-value: #0ea5e9;
39
+ initial-value: #457b9d;
40
40
  }
41
41
  @property --rf-color-border {
42
42
  syntax: '<color>';
43
43
  inherits: true;
44
- initial-value: #e2e8f0;
44
+ initial-value: #d8e4de;
45
45
  }
46
46
 
47
47
  /* ── 1. Colour scheme override ──────────────────────────────────────────────
@@ -49,17 +49,18 @@
49
49
  * tokens are also exposed as --cs-* intermediaries so compound selectors
50
50
  * in step 4 can fall back to them without a cycle. */
51
51
 
52
+ /* Keep in sync with tokens/dark.css */
52
53
  [data-color-scheme="dark"] {
53
54
  color-scheme: dark;
54
55
  color: var(--rf-color-text);
55
56
  background-color: var(--rf-color-bg);
56
57
 
57
- --cs-bg: #0c1222;
58
- --cs-surface: #0f172a;
59
- --cs-text: #e2e8f0;
60
- --cs-muted: #94a3b8;
61
- --cs-accent: #38bdf8;
62
- --cs-border: rgba(255, 255, 255, 0.1);
58
+ --cs-bg: #152238;
59
+ --cs-surface: #1a2940;
60
+ --cs-text: #f1faee;
61
+ --cs-muted: #a8dadc;
62
+ --cs-accent: #70b4c0;
63
+ --cs-border: rgba(168, 218, 220, 0.15);
63
64
 
64
65
  --rf-color-bg: var(--cs-bg);
65
66
  --rf-color-surface: var(--cs-surface);
@@ -68,27 +69,27 @@
68
69
  --rf-color-primary: var(--cs-accent);
69
70
  --rf-color-border: var(--cs-border);
70
71
 
71
- --rf-color-primary-hover: #7dd3fc;
72
- --rf-color-surface-hover: #1e293b;
73
- --rf-color-surface-active: #334155;
74
- --rf-color-surface-raised: #1e293b;
75
-
76
- --rf-color-info: #60a5fa;
77
- --rf-color-info-bg: rgba(59, 130, 246, 0.1);
78
- --rf-color-info-border: rgba(59, 130, 246, 0.3);
79
- --rf-color-warning: #fbbf24;
80
- --rf-color-warning-bg: rgba(245, 158, 11, 0.1);
81
- --rf-color-warning-border: rgba(245, 158, 11, 0.3);
82
- --rf-color-danger: #f87171;
83
- --rf-color-danger-bg: rgba(239, 68, 68, 0.1);
84
- --rf-color-danger-border: rgba(239, 68, 68, 0.3);
85
- --rf-color-success: #34d399;
86
- --rf-color-success-bg: rgba(16, 185, 129, 0.1);
87
- --rf-color-success-border: rgba(16, 185, 129, 0.3);
88
-
89
- --rf-color-code-bg: #0f172a;
90
- --rf-color-code-text: #e2e8f0;
91
- --rf-color-inline-code-bg: rgba(255, 255, 255, 0.08);
72
+ --rf-color-primary-hover: #a8dadc;
73
+ --rf-color-surface-hover: #203048;
74
+ --rf-color-surface-active: #263850;
75
+ --rf-color-surface-raised: #1a2940;
76
+
77
+ --rf-color-info: #a8dadc;
78
+ --rf-color-info-bg: rgba(69, 123, 157, 0.12);
79
+ --rf-color-info-border: rgba(69, 123, 157, 0.3);
80
+ --rf-color-warning: #e8c07a;
81
+ --rf-color-warning-bg: rgba(200, 144, 10, 0.12);
82
+ --rf-color-warning-border: rgba(200, 144, 10, 0.3);
83
+ --rf-color-danger: #f07078;
84
+ --rf-color-danger-bg: rgba(230, 57, 70, 0.12);
85
+ --rf-color-danger-border: rgba(230, 57, 70, 0.3);
86
+ --rf-color-success: #72c098;
87
+ --rf-color-success-bg: rgba(61, 143, 101, 0.12);
88
+ --rf-color-success-border: rgba(61, 143, 101, 0.3);
89
+
90
+ --rf-color-code-bg: #152238;
91
+ --rf-color-code-text: #f1faee;
92
+ --rf-color-inline-code-bg: rgba(168, 218, 220, 0.08);
92
93
 
93
94
  --rf-shadow-xs: 0 1px 2px rgba(0,0,0,0.3);
94
95
  --rf-shadow-sm: 0 1px 3px rgba(0,0,0,0.4), 0 1px 2px rgba(0,0,0,0.3);
@@ -96,17 +97,18 @@
96
97
  --rf-shadow-lg: 0 8px 24px rgba(0,0,0,0.5), 0 2px 6px rgba(0,0,0,0.3);
97
98
  }
98
99
 
100
+ /* Keep in sync with tokens/base.css */
99
101
  [data-color-scheme="light"] {
100
102
  color-scheme: light;
101
103
  color: var(--rf-color-text);
102
104
  background-color: var(--rf-color-bg);
103
105
 
104
- --cs-bg: #ffffff;
105
- --cs-surface: #f8fafc;
106
- --cs-text: #1a1a2e;
107
- --cs-muted: #64748b;
108
- --cs-accent: #0ea5e9;
109
- --cs-border: #e2e8f0;
106
+ --cs-bg: #faf5eb;
107
+ --cs-surface: #fffbf2;
108
+ --cs-text: #1d3557;
109
+ --cs-muted: #5a7a90;
110
+ --cs-accent: #457b9d;
111
+ --cs-border: #d8e4de;
110
112
 
111
113
  --rf-color-bg: var(--cs-bg);
112
114
  --rf-color-surface: var(--cs-surface);
@@ -115,25 +117,25 @@
115
117
  --rf-color-primary: var(--cs-accent);
116
118
  --rf-color-border: var(--cs-border);
117
119
 
118
- --rf-color-primary-hover: #0284c7;
119
- --rf-color-surface-hover: #f1f5f9;
120
- --rf-color-surface-active: #e2e8f0;
120
+ --rf-color-primary-hover: #376585;
121
+ --rf-color-surface-hover: #fdf0d5;
122
+ --rf-color-surface-active: #f9ebcc;
121
123
  --rf-color-surface-raised: #ffffff;
122
124
 
123
- --rf-color-info: #3b82f6;
124
- --rf-color-info-bg: #eff6ff;
125
- --rf-color-info-border: #bfdbfe;
126
- --rf-color-warning: #f59e0b;
127
- --rf-color-warning-bg: #fffbeb;
128
- --rf-color-warning-border: #fde68a;
129
- --rf-color-danger: #ef4444;
130
- --rf-color-danger-bg: #fef2f2;
131
- --rf-color-danger-border: #fecaca;
132
- --rf-color-success: #10b981;
133
- --rf-color-success-bg: #ecfdf5;
134
- --rf-color-success-border: #a7f3d0;
135
-
136
- --rf-color-inline-code-bg: #f1f5f9;
125
+ --rf-color-info: #457b9d;
126
+ --rf-color-info-bg: #edf4f8;
127
+ --rf-color-info-border: #a8dadc;
128
+ --rf-color-warning: #c8900a;
129
+ --rf-color-warning-bg: #fdf5e4;
130
+ --rf-color-warning-border: #edd49a;
131
+ --rf-color-danger: #e63946;
132
+ --rf-color-danger-bg: #fdeced;
133
+ --rf-color-danger-border: #f0b0b5;
134
+ --rf-color-success: #3d8f65;
135
+ --rf-color-success-bg: #ecf5ef;
136
+ --rf-color-success-border: #a8d4b8;
137
+
138
+ --rf-color-inline-code-bg: #f9ebcc;
137
139
 
138
140
  --rf-shadow-xs: 0 1px 2px rgba(0,0,0,0.04);
139
141
  --rf-shadow-sm: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04);
@@ -10,7 +10,6 @@
10
10
  gap: 2rem;
11
11
  }
12
12
  .rf-typography__specimen {
13
- border: 1px solid var(--rf-color-border, #e5e7eb);
14
13
  border-radius: var(--rf-radius-lg, 12px);
15
14
  padding: 1.5rem;
16
15
  }