@refrakt-md/lumina 0.21.0 → 0.22.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 (106) hide show
  1. package/dist/tokens.d.ts +5 -3
  2. package/dist/tokens.d.ts.map +1 -1
  3. package/dist/tokens.js +42 -3
  4. package/dist/tokens.js.map +1 -1
  5. package/index.css +1 -0
  6. package/package.json +6 -5
  7. package/styles/dimensions/checklist.css +1 -1
  8. package/styles/dimensions/density.css +3 -3
  9. package/styles/dimensions/frame.css +4 -4
  10. package/styles/dimensions/metadata.css +6 -6
  11. package/styles/dimensions/sections.css +6 -6
  12. package/styles/dimensions/sequence.css +3 -3
  13. package/styles/global.css +15 -15
  14. package/styles/layouts/blog.css +31 -31
  15. package/styles/layouts/default.css +9 -9
  16. package/styles/layouts/docs.css +6 -6
  17. package/styles/layouts/mobile.css +2 -2
  18. package/styles/layouts/on-this-page.css +5 -5
  19. package/styles/layouts/plan.css +24 -24
  20. package/styles/layouts/search.css +14 -14
  21. package/styles/layouts/version-switcher.css +6 -6
  22. package/styles/runes/accordion.css +10 -10
  23. package/styles/runes/aggregate.css +1 -1
  24. package/styles/runes/annotate.css +5 -5
  25. package/styles/runes/api.css +1 -1
  26. package/styles/runes/audio.css +9 -9
  27. package/styles/runes/badge.css +2 -2
  28. package/styles/runes/bento.css +2 -2
  29. package/styles/runes/blog.css +15 -15
  30. package/styles/runes/bond.css +3 -3
  31. package/styles/runes/breadcrumb.css +2 -2
  32. package/styles/runes/budget.css +20 -20
  33. package/styles/runes/bug.css +2 -2
  34. package/styles/runes/card.css +3 -3
  35. package/styles/runes/cast.css +5 -5
  36. package/styles/runes/changelog.css +8 -8
  37. package/styles/runes/character.css +3 -3
  38. package/styles/runes/chart.css +5 -5
  39. package/styles/runes/codegroup.css +3 -3
  40. package/styles/runes/collection.css +3 -3
  41. package/styles/runes/compare.css +5 -5
  42. package/styles/runes/comparison.css +22 -22
  43. package/styles/runes/conversation.css +4 -4
  44. package/styles/runes/cta.css +14 -14
  45. package/styles/runes/datatable.css +8 -8
  46. package/styles/runes/decision.css +2 -2
  47. package/styles/runes/design-context.css +2 -2
  48. package/styles/runes/details.css +4 -4
  49. package/styles/runes/diagram.css +3 -3
  50. package/styles/runes/diff.css +6 -6
  51. package/styles/runes/drawer.css +8 -8
  52. package/styles/runes/embed.css +1 -1
  53. package/styles/runes/event.css +2 -2
  54. package/styles/runes/expand.css +5 -5
  55. package/styles/runes/faction.css +3 -3
  56. package/styles/runes/feature.css +11 -11
  57. package/styles/runes/figure.css +3 -3
  58. package/styles/runes/form.css +16 -16
  59. package/styles/runes/gallery.css +7 -7
  60. package/styles/runes/hero.css +15 -14
  61. package/styles/runes/hint.css +7 -7
  62. package/styles/runes/howto.css +6 -6
  63. package/styles/runes/itinerary.css +12 -12
  64. package/styles/runes/juxtapose.css +6 -6
  65. package/styles/runes/lore.css +4 -4
  66. package/styles/runes/map.css +6 -6
  67. package/styles/runes/mediatext.css +1 -1
  68. package/styles/runes/milestone.css +12 -12
  69. package/styles/runes/mockup.css +7 -7
  70. package/styles/runes/nav.css +34 -34
  71. package/styles/runes/organization.css +3 -3
  72. package/styles/runes/pagination.css +5 -5
  73. package/styles/runes/palette.css +13 -13
  74. package/styles/runes/placeholder.css +16 -0
  75. package/styles/runes/plan-history.css +20 -20
  76. package/styles/runes/plan-progress.css +3 -3
  77. package/styles/runes/plan-ref.css +1 -1
  78. package/styles/runes/playlist.css +8 -8
  79. package/styles/runes/plot.css +6 -6
  80. package/styles/runes/preview.css +6 -6
  81. package/styles/runes/pricing.css +16 -16
  82. package/styles/runes/progress.css +2 -2
  83. package/styles/runes/pullquote.css +6 -5
  84. package/styles/runes/realm.css +3 -3
  85. package/styles/runes/recipe.css +9 -9
  86. package/styles/runes/relationships.css +2 -2
  87. package/styles/runes/reveal.css +10 -10
  88. package/styles/runes/sandbox.css +3 -3
  89. package/styles/runes/section.css +6 -6
  90. package/styles/runes/sidenote.css +2 -2
  91. package/styles/runes/spacing.css +11 -11
  92. package/styles/runes/spec.css +2 -2
  93. package/styles/runes/steps.css +10 -10
  94. package/styles/runes/storyboard.css +2 -2
  95. package/styles/runes/swatch.css +1 -1
  96. package/styles/runes/symbol.css +10 -10
  97. package/styles/runes/tabs.css +9 -9
  98. package/styles/runes/testimonial.css +7 -7
  99. package/styles/runes/textblock.css +4 -4
  100. package/styles/runes/timeline.css +7 -7
  101. package/styles/runes/toc.css +4 -4
  102. package/styles/runes/track.css +10 -10
  103. package/styles/runes/typography.css +12 -12
  104. package/styles/runes/work.css +2 -2
  105. package/tokens/base.css +43 -66
  106. package/tokens/dark.css +76 -80
@@ -1,14 +1,14 @@
1
1
  /* On This Page — TOC sidebar navigation */
2
2
 
3
3
  .rf-on-this-page {
4
- font-size: 0.8rem;
4
+ font-size: var(--rf-text-xs);
5
5
  }
6
6
 
7
7
  .rf-on-this-page__title {
8
- font-size: 0.7rem;
9
- font-weight: 600;
8
+ font-size: var(--rf-text-xs);
9
+ font-weight: var(--rf-weight-semibold);
10
10
  text-transform: uppercase;
11
- letter-spacing: 0.05em;
11
+ letter-spacing: var(--rf-tracking-wider);
12
12
  color: var(--rf-color-muted, #64748b);
13
13
  margin: 0 0 0.75rem;
14
14
  }
@@ -32,7 +32,7 @@
32
32
  padding: 0.25rem 0.75rem;
33
33
  color: var(--rf-color-muted, #64748b);
34
34
  text-decoration: none;
35
- line-height: 1.4;
35
+ line-height: var(--rf-leading-snug);
36
36
  }
37
37
 
38
38
  .rf-on-this-page__item a:hover {
@@ -14,8 +14,8 @@
14
14
  }
15
15
 
16
16
  .rf-plan-dashboard__section-title {
17
- font-size: 1.125rem;
18
- font-weight: 600;
17
+ font-size: var(--rf-text-lg);
18
+ font-weight: var(--rf-weight-semibold);
19
19
  color: var(--rf-color-text, #212529);
20
20
  margin-block-end: var(--rf-spacing-md, 1rem);
21
21
  padding-block-end: var(--rf-spacing-sm, 0.5rem);
@@ -43,8 +43,8 @@
43
43
  display: flex;
44
44
  align-items: center;
45
45
  justify-content: space-between;
46
- font-size: 1.125rem;
47
- font-weight: 700;
46
+ font-size: var(--rf-text-lg);
47
+ font-weight: var(--rf-weight-bold);
48
48
  margin-block-end: var(--rf-spacing-lg, 1.5rem);
49
49
  color: var(--rf-color-text, #212529);
50
50
  }
@@ -77,10 +77,10 @@
77
77
  }
78
78
 
79
79
  .rf-plan-sidebar__group-title {
80
- font-size: 0.8125rem;
81
- font-weight: 600;
80
+ font-size: var(--rf-text-sm);
81
+ font-weight: var(--rf-weight-semibold);
82
82
  text-transform: uppercase;
83
- letter-spacing: 0.05em;
83
+ letter-spacing: var(--rf-tracking-wider);
84
84
  color: var(--rf-color-muted, #6c757d);
85
85
  margin-block-end: var(--rf-spacing-sm, 0.5rem);
86
86
  }
@@ -100,7 +100,7 @@
100
100
  border-radius: var(--rf-radius-sm, 0.25rem);
101
101
  background: transparent;
102
102
  color: var(--rf-color-muted, #6c757d);
103
- font-size: 0.8125rem;
103
+ font-size: var(--rf-text-sm);
104
104
  cursor: pointer;
105
105
  text-align: start;
106
106
  transition: background 0.15s ease;
@@ -124,12 +124,12 @@
124
124
 
125
125
  .rf-plan-sidebar__status-label {
126
126
  flex: 1;
127
- font-weight: 500;
127
+ font-weight: var(--rf-weight-medium);
128
128
  }
129
129
 
130
130
  .rf-plan-sidebar__status-count {
131
- font-size: 0.75rem;
132
- font-weight: 600;
131
+ font-size: var(--rf-text-xs);
132
+ font-weight: var(--rf-weight-semibold);
133
133
  color: var(--rf-color-muted, #6c757d);
134
134
  background: var(--rf-color-surface-active, #f1f3f5);
135
135
  padding: 0 0.375rem;
@@ -152,7 +152,7 @@
152
152
  border-radius: var(--rf-radius-sm, 0.25rem);
153
153
  color: var(--rf-color-text, #212529);
154
154
  text-decoration: none;
155
- font-size: 0.8125rem;
155
+ font-size: var(--rf-text-sm);
156
156
  transition: background 0.15s ease;
157
157
  }
158
158
 
@@ -179,7 +179,7 @@
179
179
  .rf-plan-sidebar__link--active {
180
180
  background: var(--rf-color-info-bg, #e7f5ff);
181
181
  color: var(--rf-color-info, #339af0);
182
- font-weight: 600;
182
+ font-weight: var(--rf-weight-semibold);
183
183
  }
184
184
 
185
185
  .rf-plan-sidebar__link--focused {
@@ -200,17 +200,17 @@
200
200
 
201
201
  .rf-plan-sidebar__blocker-icon {
202
202
  margin-left: auto;
203
- font-size: 0.75rem;
203
+ font-size: var(--rf-text-xs);
204
204
  color: var(--rf-color-danger, #ff6b6b);
205
205
  flex-shrink: 0;
206
206
  }
207
207
 
208
208
  /* Views section in sidebar */
209
209
  .rf-plan-sidebar__view-header {
210
- font-size: 0.6875rem;
211
- font-weight: 600;
210
+ font-size: var(--rf-text-xs);
211
+ font-weight: var(--rf-weight-semibold);
212
212
  text-transform: uppercase;
213
- letter-spacing: 0.05em;
213
+ letter-spacing: var(--rf-tracking-wider);
214
214
  color: var(--rf-color-muted, #6c757d);
215
215
  padding: 0.25rem 0.5rem;
216
216
  margin-block-start: 0.25rem;
@@ -228,8 +228,8 @@
228
228
  }
229
229
 
230
230
  .rf-plan-sidebar__link .rf-plan-sidebar__view-count {
231
- font-size: 0.6875rem;
232
- font-weight: 600;
231
+ font-size: var(--rf-text-xs);
232
+ font-weight: var(--rf-weight-semibold);
233
233
  color: var(--rf-color-muted, #6c757d);
234
234
  background: var(--rf-color-surface-active, #f1f3f5);
235
235
  padding: 0 0.375rem;
@@ -311,8 +311,8 @@
311
311
  }
312
312
 
313
313
  .rf-plan-toolbar__title {
314
- font-size: 0.875rem;
315
- font-weight: 600;
314
+ font-size: var(--rf-text-sm);
315
+ font-weight: var(--rf-weight-semibold);
316
316
  color: var(--rf-color-text, #212529);
317
317
  flex: 1;
318
318
  min-width: 0;
@@ -367,8 +367,8 @@
367
367
  padding: 0.5rem 1rem;
368
368
  color: var(--rf-color-text, #212529);
369
369
  text-decoration: none;
370
- font-size: 0.8125rem;
371
- line-height: 1.4;
370
+ font-size: var(--rf-text-sm);
371
+ line-height: var(--rf-leading-snug);
372
372
  }
373
373
 
374
374
  .rf-section-nav__link:hover {
@@ -381,7 +381,7 @@
381
381
 
382
382
  .rf-section-nav__item[data-active] .rf-section-nav__link {
383
383
  color: var(--rf-color-info, #339af0);
384
- font-weight: 600;
384
+ font-weight: var(--rf-weight-semibold);
385
385
  }
386
386
 
387
387
  /* ---- Responsive ---- */
@@ -8,7 +8,7 @@
8
8
  border-radius: var(--rf-radius-full);
9
9
  background: var(--rf-color-surface);
10
10
  color: var(--rf-color-muted);
11
- font-size: 0.8rem;
11
+ font-size: var(--rf-text-xs);
12
12
  font-family: var(--rf-font-sans);
13
13
  cursor: pointer;
14
14
  transition: border-color 0.15s, color 0.15s, background 0.15s;
@@ -37,8 +37,8 @@
37
37
  border-radius: var(--rf-radius-sm);
38
38
  background: var(--rf-color-bg);
39
39
  font-family: var(--rf-font-sans);
40
- font-size: 0.7rem;
41
- line-height: 1.2;
40
+ font-size: var(--rf-text-xs);
41
+ line-height: var(--rf-leading-tight);
42
42
  color: var(--rf-color-muted);
43
43
  }
44
44
 
@@ -84,7 +84,7 @@
84
84
  border: none;
85
85
  outline: none;
86
86
  background: transparent;
87
- font-size: 1rem;
87
+ font-size: var(--rf-text);
88
88
  font-family: var(--rf-font-sans);
89
89
  color: var(--rf-color-text);
90
90
  }
@@ -103,7 +103,7 @@
103
103
  border-radius: var(--rf-radius-sm);
104
104
  background: var(--rf-color-surface);
105
105
  font-family: var(--rf-font-sans);
106
- font-size: 0.7rem;
106
+ font-size: var(--rf-text-xs);
107
107
  color: var(--rf-color-muted);
108
108
  flex-shrink: 0;
109
109
  }
@@ -133,15 +133,15 @@
133
133
  }
134
134
  .rf-search-result__title {
135
135
  display: block;
136
- font-weight: 500;
137
- font-size: 0.875rem;
138
- line-height: 1.4;
136
+ font-weight: var(--rf-weight-medium);
137
+ font-size: var(--rf-text-sm);
138
+ line-height: var(--rf-leading-snug);
139
139
  margin-bottom: 0.125rem;
140
140
  }
141
141
  .rf-search-result__excerpt {
142
142
  display: block;
143
- font-size: 0.8rem;
144
- line-height: 1.5;
143
+ font-size: var(--rf-text-xs);
144
+ line-height: var(--rf-leading-normal);
145
145
  color: var(--rf-color-muted);
146
146
  }
147
147
  .rf-search-result__excerpt mark {
@@ -155,7 +155,7 @@
155
155
  .rf-search-dialog__empty {
156
156
  text-align: center;
157
157
  padding: 2rem 1rem;
158
- font-size: 0.875rem;
158
+ font-size: var(--rf-text-sm);
159
159
  color: var(--rf-color-muted);
160
160
  }
161
161
 
@@ -166,7 +166,7 @@
166
166
  gap: 1rem;
167
167
  padding: 0.5rem 1rem;
168
168
  border-top: 1px solid var(--rf-color-border);
169
- font-size: 0.7rem;
169
+ font-size: var(--rf-text-xs);
170
170
  color: var(--rf-color-muted);
171
171
  }
172
172
  .rf-search-dialog__footer kbd {
@@ -179,8 +179,8 @@
179
179
  border-radius: 3px;
180
180
  background: var(--rf-color-surface);
181
181
  font-family: var(--rf-font-sans);
182
- font-size: 0.65rem;
183
- line-height: 1.4;
182
+ font-size: var(--rf-text-xs);
183
+ line-height: var(--rf-leading-snug);
184
184
  }
185
185
 
186
186
  /* Mobile */
@@ -5,15 +5,15 @@
5
5
  align-items: center;
6
6
  gap: 0.5rem;
7
7
  margin-bottom: 1.5rem;
8
- font-size: 0.85rem;
8
+ font-size: var(--rf-text-sm);
9
9
  }
10
10
 
11
11
  .rf-version-switcher__label {
12
12
  color: var(--rf-color-muted);
13
- font-weight: 500;
14
- font-size: 0.8rem;
13
+ font-weight: var(--rf-weight-medium);
14
+ font-size: var(--rf-text-xs);
15
15
  text-transform: uppercase;
16
- letter-spacing: 0.03em;
16
+ letter-spacing: var(--rf-tracking-wide);
17
17
  }
18
18
 
19
19
  .rf-version-switcher__select {
@@ -23,11 +23,11 @@
23
23
  border: 1px solid var(--rf-color-border);
24
24
  border-radius: var(--rf-radius-sm, 0.25rem);
25
25
  color: var(--rf-color-text);
26
- font-size: 0.85rem;
26
+ font-size: var(--rf-text-sm);
27
27
  font-family: inherit;
28
28
  padding: 0.3rem 2rem 0.3rem 0.6rem;
29
29
  cursor: pointer;
30
- line-height: 1.4;
30
+ line-height: var(--rf-leading-snug);
31
31
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
32
32
  background-repeat: no-repeat;
33
33
  background-position: right 0.5rem center;
@@ -5,9 +5,9 @@
5
5
  margin-bottom: 1.5rem;
6
6
  }
7
7
  .rf-accordion__eyebrow {
8
- font-size: 0.8125rem;
9
- font-weight: 600;
10
- letter-spacing: 0.05em;
8
+ font-size: var(--rf-text-sm);
9
+ font-weight: var(--rf-weight-semibold);
10
+ letter-spacing: var(--rf-tracking-wider);
11
11
  text-transform: uppercase;
12
12
  color: var(--rf-color-primary);
13
13
  margin: 0 0 0.5rem;
@@ -19,13 +19,13 @@
19
19
  border: 1px solid var(--rf-color-border);
20
20
  border-radius: var(--rf-radius-full);
21
21
  color: var(--rf-color-text);
22
- font-weight: 400;
22
+ font-weight: var(--rf-weight-normal);
23
23
  text-transform: none;
24
- letter-spacing: 0;
24
+ letter-spacing: var(--rf-tracking-normal);
25
25
  transition: border-color 150ms ease;
26
26
  }
27
27
  .rf-accordion__eyebrow:has(a):hover { border-color: var(--rf-color-muted); }
28
- .rf-accordion__eyebrow:has(a) a { color: var(--rf-color-primary); font-weight: 600; text-decoration: none; }
28
+ .rf-accordion__eyebrow:has(a) a { color: var(--rf-color-primary); font-weight: var(--rf-weight-semibold); text-decoration: none; }
29
29
  .rf-accordion__eyebrow:has(a) a::before { content: ''; position: absolute; inset: 0; border-radius: inherit; }
30
30
  .rf-accordion__headline {
31
31
  margin-top: 0;
@@ -51,8 +51,8 @@
51
51
  align-items: center;
52
52
  gap: 0.5rem;
53
53
  padding: 0.875rem 0rem;
54
- font-weight: 600;
55
- font-size: 0.95rem;
54
+ font-weight: var(--rf-weight-semibold);
55
+ font-size: var(--rf-text);
56
56
  cursor: pointer;
57
57
  user-select: none;
58
58
  list-style: none;
@@ -112,8 +112,8 @@
112
112
  * `group-display="accordion"` panel, where the card's own typography
113
113
  * should govern. */
114
114
  .rf-accordion-item__body:not(:has([data-block])) {
115
- font-size: 0.925rem;
116
- line-height: 1.65;
115
+ font-size: var(--rf-text-sm);
116
+ line-height: var(--rf-leading-relaxed);
117
117
  color: var(--rf-color-muted);
118
118
  }
119
119
  .rf-accordion-item__body p:last-child {
@@ -20,7 +20,7 @@
20
20
  * weight tuned to stand out modestly in prose. */
21
21
  .rf-aggregate[data-aggregate='count'] {
22
22
  font-variant-numeric: tabular-nums;
23
- font-weight: 600;
23
+ font-weight: var(--rf-weight-semibold);
24
24
  color: var(--rf-color-text);
25
25
  }
26
26
 
@@ -9,7 +9,7 @@
9
9
  width: 40%;
10
10
  margin: 0.25rem 0 0.5rem 1rem;
11
11
  padding: 0.5rem 0 0.5rem 1rem;
12
- font-size: 0.8125rem;
12
+ font-size: var(--rf-text-sm);
13
13
  color: var(--rf-color-muted);
14
14
  border-left: 2px solid var(--rf-color-border);
15
15
  }
@@ -20,7 +20,7 @@
20
20
  vertical-align: baseline;
21
21
  margin: 0 0.25rem;
22
22
  padding: 0.125rem 0 0.125rem 0.5rem;
23
- font-size: 0.8125rem;
23
+ font-size: var(--rf-text-sm);
24
24
  color: var(--rf-color-muted);
25
25
  border-left: 2px solid var(--rf-color-border);
26
26
  }
@@ -40,8 +40,8 @@
40
40
  justify-content: center;
41
41
  width: 1rem;
42
42
  height: 1rem;
43
- font-size: 0.625rem;
44
- font-weight: 700;
43
+ font-size: var(--rf-text-xs);
44
+ font-weight: var(--rf-weight-bold);
45
45
  color: var(--rf-color-primary);
46
46
  border: 1px solid var(--rf-color-primary);
47
47
  border-radius: var(--rf-radius-full, 50%);
@@ -55,7 +55,7 @@
55
55
  transform: translateX(-50%);
56
56
  width: 16rem;
57
57
  padding: 0.75rem;
58
- font-size: 0.8125rem;
58
+ font-size: var(--rf-text-sm);
59
59
  color: var(--rf-color-text);
60
60
  background: var(--rf-color-bg);
61
61
  border: 1px solid var(--rf-color-border);
@@ -19,7 +19,7 @@
19
19
  padding: 0.5rem 1rem;
20
20
  margin: 0.75rem 0;
21
21
  border-radius: 0 var(--rf-radius-sm) var(--rf-radius-sm) 0;
22
- font-size: 0.9375rem;
22
+ font-size: var(--rf-text);
23
23
  }
24
24
  .rf-api__body blockquote::before {
25
25
  content: none;
@@ -4,9 +4,9 @@
4
4
  }
5
5
  .rf-audio__description {
6
6
  padding: 0.75rem 1rem;
7
- font-size: 0.875rem;
7
+ font-size: var(--rf-text-sm);
8
8
  color: var(--rf-color-muted);
9
- line-height: 1.5;
9
+ line-height: var(--rf-leading-normal);
10
10
  }
11
11
  .rf-audio__description p {
12
12
  margin: 0;
@@ -31,15 +31,15 @@
31
31
  gap: 0.125rem;
32
32
  }
33
33
  .rf-audio-player__name {
34
- font-size: 0.9375rem;
35
- font-weight: 600;
34
+ font-size: var(--rf-text);
35
+ font-weight: var(--rf-weight-semibold);
36
36
  color: var(--rf-color-text);
37
37
  overflow: hidden;
38
38
  text-overflow: ellipsis;
39
39
  white-space: nowrap;
40
40
  }
41
41
  .rf-audio-player__artist {
42
- font-size: 0.8125rem;
42
+ font-size: var(--rf-text-sm);
43
43
  color: var(--rf-color-muted);
44
44
  }
45
45
 
@@ -85,7 +85,7 @@
85
85
 
86
86
  /* Time displays */
87
87
  .rf-audio-player__time {
88
- font-size: 0.75rem;
88
+ font-size: var(--rf-text-xs);
89
89
  font-variant-numeric: tabular-nums;
90
90
  color: var(--rf-color-muted);
91
91
  min-width: 2.5rem;
@@ -170,12 +170,12 @@
170
170
  }
171
171
  .rf-audio-player__chapter-name {
172
172
  flex: 1;
173
- font-size: 0.8125rem;
174
- font-weight: 500;
173
+ font-size: var(--rf-text-sm);
174
+ font-weight: var(--rf-weight-medium);
175
175
  color: var(--rf-color-text);
176
176
  }
177
177
  .rf-audio-player__chapter-time {
178
- font-size: 0.75rem;
178
+ font-size: var(--rf-text-xs);
179
179
  font-variant-numeric: tabular-nums;
180
180
  color: var(--rf-color-muted);
181
181
  flex-shrink: 0;
@@ -15,8 +15,8 @@
15
15
  border: none;
16
16
  background: color-mix(in srgb, var(--meta-color, var(--rf-color-muted)) 10%, transparent);
17
17
  color: var(--meta-color, var(--rf-color-muted));
18
- font-size: 0.75rem;
19
- font-weight: 500;
18
+ font-size: var(--rf-text-xs);
19
+ font-weight: var(--rf-weight-medium);
20
20
  padding: 0.125rem 0.5rem;
21
21
  border-radius: var(--rf-radius-sm);
22
22
  white-space: nowrap;
@@ -148,8 +148,8 @@
148
148
  .rf-bento-cell__media[style*="--frame-aspect"] { --bento-media-aspect: var(--frame-aspect); }
149
149
  .rf-bento-cell__media[style*="--frame-anchor"] { --bento-media-anchor: var(--frame-anchor); }
150
150
  .rf-bento-cell__title {
151
- font-size: 1.125rem;
152
- font-weight: 600;
151
+ font-size: var(--rf-text-lg);
152
+ font-weight: var(--rf-weight-semibold);
153
153
  margin: 0 0 0.5rem;
154
154
  }
155
155
  .rf-bento-cell__body { min-height: 0; }
@@ -6,18 +6,18 @@
6
6
  margin-bottom: 2rem;
7
7
  }
8
8
  .rf-blog__headline {
9
- font-size: 2rem;
10
- font-weight: 700;
11
- letter-spacing: -0.02em;
9
+ font-size: var(--rf-text-3xl);
10
+ font-weight: var(--rf-weight-bold);
11
+ letter-spacing: var(--rf-tracking-tight);
12
12
  margin: 0 0 0.5rem;
13
- line-height: 1.2;
13
+ line-height: var(--rf-leading-tight);
14
14
  color: var(--rf-color-text);
15
15
  }
16
16
  .rf-blog__blurb {
17
- font-size: 1.1rem;
17
+ font-size: var(--rf-text-lg);
18
18
  color: var(--rf-color-muted);
19
19
  margin: 0 0 1rem;
20
- line-height: 1.6;
20
+ line-height: var(--rf-leading-relaxed);
21
21
  max-width: 640px;
22
22
  }
23
23
  .rf-blog__posts {
@@ -35,10 +35,10 @@
35
35
  box-shadow: var(--rf-shadow-md);
36
36
  }
37
37
  .rf-blog__post h3 {
38
- font-size: 1.25rem;
39
- font-weight: 600;
38
+ font-size: var(--rf-text-xl);
39
+ font-weight: var(--rf-weight-semibold);
40
40
  margin: 0 0 0.375rem;
41
- line-height: 1.3;
41
+ line-height: var(--rf-leading-snug);
42
42
  }
43
43
  .rf-blog__post h3 a {
44
44
  color: var(--rf-color-text);
@@ -49,15 +49,15 @@
49
49
  }
50
50
  .rf-blog__post time {
51
51
  display: inline-block;
52
- font-size: 0.85rem;
52
+ font-size: var(--rf-text-sm);
53
53
  color: var(--rf-color-muted);
54
54
  margin-bottom: 0.5rem;
55
55
  }
56
56
  .rf-blog__post p {
57
- font-size: 0.95rem;
57
+ font-size: var(--rf-text);
58
58
  color: var(--rf-color-muted);
59
59
  margin: 0;
60
- line-height: 1.6;
60
+ line-height: var(--rf-leading-relaxed);
61
61
  }
62
62
 
63
63
  /* Grid layout */
@@ -82,13 +82,13 @@
82
82
  border-radius: 0 0 var(--rf-radius-md) var(--rf-radius-md);
83
83
  }
84
84
  .rf-blog--compact .rf-blog__post h3 {
85
- font-size: 1.1rem;
85
+ font-size: var(--rf-text-lg);
86
86
  margin-bottom: 0.125rem;
87
87
  }
88
88
  .rf-blog--compact .rf-blog__post p {
89
- font-size: 0.875rem;
89
+ font-size: var(--rf-text-sm);
90
90
  }
91
91
  .rf-blog--compact .rf-blog__post time {
92
- font-size: 0.8rem;
92
+ font-size: var(--rf-text-xs);
93
93
  margin-bottom: 0.25rem;
94
94
  }
@@ -7,8 +7,8 @@
7
7
  }
8
8
  .rf-bond > span[property="from"],
9
9
  .rf-bond > span[property="to"] {
10
- font-weight: 600;
11
- font-size: 1rem;
10
+ font-weight: var(--rf-weight-semibold);
11
+ font-size: var(--rf-text);
12
12
  color: var(--rf-color-text);
13
13
  white-space: nowrap;
14
14
  }
@@ -44,7 +44,7 @@
44
44
  }
45
45
  .rf-bond__body {
46
46
  width: 100%;
47
- font-size: 0.875rem;
47
+ font-size: var(--rf-text-sm);
48
48
  color: var(--rf-color-muted);
49
49
  }
50
50
 
@@ -1,6 +1,6 @@
1
1
  /* Breadcrumb */
2
2
  .rf-breadcrumb {
3
- font-size: 0.85rem;
3
+ font-size: var(--rf-text-sm);
4
4
  margin: 0 0 1.5rem;
5
5
  }
6
6
  .rf-breadcrumb__items {
@@ -42,5 +42,5 @@
42
42
  }
43
43
  .rf-breadcrumb li:last-child span {
44
44
  color: var(--rf-color-text);
45
- font-weight: 500;
45
+ font-weight: var(--rf-weight-medium);
46
46
  }
@@ -9,9 +9,9 @@
9
9
  margin-bottom: 1.5rem;
10
10
  }
11
11
  .rf-budget .rf-budget__eyebrow {
12
- font-size: 0.8rem;
13
- font-weight: 600;
14
- letter-spacing: 0.06em;
12
+ font-size: var(--rf-text-xs);
13
+ font-weight: var(--rf-weight-semibold);
14
+ letter-spacing: var(--rf-tracking-wider);
15
15
  text-transform: uppercase;
16
16
  color: var(--rf-color-primary);
17
17
  margin: 0 0 0.375rem;
@@ -49,10 +49,10 @@
49
49
  }
50
50
  .rf-budget-category--estimate .rf-budget-category__subtotal::before {
51
51
  content: 'est.';
52
- font-size: 0.6875rem;
53
- font-weight: 600;
52
+ font-size: var(--rf-text-xs);
53
+ font-weight: var(--rf-weight-semibold);
54
54
  text-transform: uppercase;
55
- letter-spacing: 0.05em;
55
+ letter-spacing: var(--rf-tracking-wider);
56
56
  color: var(--rf-color-warning);
57
57
  background: var(--rf-color-warning-bg);
58
58
  padding: 0.0625rem 0.375rem;
@@ -61,13 +61,13 @@
61
61
  vertical-align: middle;
62
62
  }
63
63
  .rf-budget-category__label {
64
- font-size: 0.9375rem;
65
- font-weight: 600;
64
+ font-size: var(--rf-text);
65
+ font-weight: var(--rf-weight-semibold);
66
66
  color: var(--rf-color-text);
67
67
  }
68
68
  .rf-budget-category__subtotal {
69
- font-size: 0.9375rem;
70
- font-weight: 600;
69
+ font-size: var(--rf-text);
70
+ font-weight: var(--rf-weight-semibold);
71
71
  color: var(--rf-color-text);
72
72
  white-space: nowrap;
73
73
  }
@@ -89,14 +89,14 @@
89
89
  border-top: 1px solid var(--rf-color-border);
90
90
  }
91
91
  .rf-budget-line-item__description {
92
- font-size: 0.875rem;
92
+ font-size: var(--rf-text-sm);
93
93
  color: var(--rf-color-muted);
94
94
  flex: 1;
95
95
  min-width: 0;
96
96
  }
97
97
  .rf-budget-line-item__amount {
98
- font-size: 0.875rem;
99
- font-weight: 500;
98
+ font-size: var(--rf-text-sm);
99
+ font-weight: var(--rf-weight-medium);
100
100
  color: var(--rf-color-text);
101
101
  white-space: nowrap;
102
102
  font-variant-numeric: tabular-nums;
@@ -118,13 +118,13 @@
118
118
  gap: 1rem;
119
119
  }
120
120
  .rf-budget__total-label {
121
- font-size: 1rem;
122
- font-weight: 700;
121
+ font-size: var(--rf-text);
122
+ font-weight: var(--rf-weight-bold);
123
123
  color: var(--rf-color-text);
124
124
  }
125
125
  .rf-budget__total-amount {
126
- font-size: 1.25rem;
127
- font-weight: 700;
126
+ font-size: var(--rf-text-xl);
127
+ font-weight: var(--rf-weight-bold);
128
128
  color: var(--rf-color-text);
129
129
  white-space: nowrap;
130
130
  font-variant-numeric: tabular-nums;
@@ -136,13 +136,13 @@
136
136
  gap: 1rem;
137
137
  }
138
138
  .rf-budget__per-day-label {
139
- font-size: 0.8125rem;
139
+ font-size: var(--rf-text-sm);
140
140
  color: var(--rf-color-muted);
141
141
  min-width: 0;
142
142
  }
143
143
  .rf-budget__per-day-amount {
144
- font-size: 0.9375rem;
145
- font-weight: 500;
144
+ font-size: var(--rf-text);
145
+ font-weight: var(--rf-weight-medium);
146
146
  color: var(--rf-color-muted);
147
147
  white-space: nowrap;
148
148
  font-variant-numeric: tabular-nums;