@refrakt-md/lumina 0.20.2 → 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 (108) hide show
  1. package/contracts/structures.json +154 -5
  2. package/dist/tokens.d.ts +5 -3
  3. package/dist/tokens.d.ts.map +1 -1
  4. package/dist/tokens.js +42 -3
  5. package/dist/tokens.js.map +1 -1
  6. package/index.css +2 -0
  7. package/package.json +6 -5
  8. package/styles/dimensions/checklist.css +1 -1
  9. package/styles/dimensions/cover.css +18 -0
  10. package/styles/dimensions/density.css +3 -0
  11. package/styles/dimensions/frame.css +4 -4
  12. package/styles/dimensions/metadata.css +6 -6
  13. package/styles/dimensions/sections.css +12 -15
  14. package/styles/dimensions/sequence.css +3 -3
  15. package/styles/global.css +15 -15
  16. package/styles/layouts/blog.css +31 -31
  17. package/styles/layouts/default.css +9 -9
  18. package/styles/layouts/docs.css +6 -6
  19. package/styles/layouts/mobile.css +2 -2
  20. package/styles/layouts/on-this-page.css +5 -5
  21. package/styles/layouts/plan.css +24 -24
  22. package/styles/layouts/search.css +14 -14
  23. package/styles/layouts/version-switcher.css +6 -6
  24. package/styles/runes/accordion.css +10 -10
  25. package/styles/runes/aggregate.css +1 -1
  26. package/styles/runes/annotate.css +5 -5
  27. package/styles/runes/api.css +1 -1
  28. package/styles/runes/audio.css +9 -9
  29. package/styles/runes/badge.css +2 -2
  30. package/styles/runes/bento.css +2 -2
  31. package/styles/runes/blog.css +15 -15
  32. package/styles/runes/bond.css +3 -3
  33. package/styles/runes/breadcrumb.css +2 -2
  34. package/styles/runes/budget.css +20 -20
  35. package/styles/runes/bug.css +2 -2
  36. package/styles/runes/card.css +3 -3
  37. package/styles/runes/cast.css +5 -5
  38. package/styles/runes/changelog.css +8 -8
  39. package/styles/runes/character.css +3 -3
  40. package/styles/runes/chart.css +5 -5
  41. package/styles/runes/codegroup.css +3 -3
  42. package/styles/runes/collection.css +3 -3
  43. package/styles/runes/compare.css +5 -5
  44. package/styles/runes/comparison.css +22 -22
  45. package/styles/runes/conversation.css +4 -4
  46. package/styles/runes/cta.css +14 -14
  47. package/styles/runes/datatable.css +8 -8
  48. package/styles/runes/decision.css +2 -2
  49. package/styles/runes/design-context.css +2 -2
  50. package/styles/runes/details.css +4 -4
  51. package/styles/runes/diagram.css +3 -3
  52. package/styles/runes/diff.css +6 -6
  53. package/styles/runes/drawer.css +8 -8
  54. package/styles/runes/embed.css +1 -1
  55. package/styles/runes/event.css +2 -2
  56. package/styles/runes/expand.css +5 -5
  57. package/styles/runes/faction.css +3 -3
  58. package/styles/runes/feature.css +23 -11
  59. package/styles/runes/figure.css +3 -3
  60. package/styles/runes/form.css +16 -16
  61. package/styles/runes/gallery.css +7 -7
  62. package/styles/runes/hero.css +116 -14
  63. package/styles/runes/hint.css +7 -7
  64. package/styles/runes/howto.css +6 -6
  65. package/styles/runes/itinerary.css +12 -12
  66. package/styles/runes/juxtapose.css +6 -6
  67. package/styles/runes/lore.css +4 -4
  68. package/styles/runes/map.css +6 -6
  69. package/styles/runes/mediatext.css +1 -1
  70. package/styles/runes/milestone.css +12 -12
  71. package/styles/runes/mockup.css +7 -7
  72. package/styles/runes/nav.css +34 -34
  73. package/styles/runes/organization.css +3 -3
  74. package/styles/runes/pagination.css +5 -5
  75. package/styles/runes/palette.css +13 -13
  76. package/styles/runes/placeholder.css +16 -0
  77. package/styles/runes/plan-history.css +20 -20
  78. package/styles/runes/plan-progress.css +3 -3
  79. package/styles/runes/plan-ref.css +1 -1
  80. package/styles/runes/playlist.css +8 -8
  81. package/styles/runes/plot.css +6 -6
  82. package/styles/runes/preview.css +6 -6
  83. package/styles/runes/pricing.css +16 -16
  84. package/styles/runes/progress.css +2 -2
  85. package/styles/runes/pullquote.css +6 -5
  86. package/styles/runes/realm.css +3 -3
  87. package/styles/runes/recipe.css +9 -9
  88. package/styles/runes/relationships.css +2 -2
  89. package/styles/runes/reveal.css +10 -10
  90. package/styles/runes/sandbox.css +52 -2
  91. package/styles/runes/section.css +70 -0
  92. package/styles/runes/sidenote.css +2 -2
  93. package/styles/runes/spacing.css +11 -11
  94. package/styles/runes/spec.css +2 -2
  95. package/styles/runes/steps.css +22 -10
  96. package/styles/runes/storyboard.css +2 -2
  97. package/styles/runes/swatch.css +1 -1
  98. package/styles/runes/symbol.css +10 -10
  99. package/styles/runes/tabs.css +9 -9
  100. package/styles/runes/testimonial.css +7 -7
  101. package/styles/runes/textblock.css +4 -4
  102. package/styles/runes/timeline.css +7 -7
  103. package/styles/runes/toc.css +4 -4
  104. package/styles/runes/track.css +10 -10
  105. package/styles/runes/typography.css +12 -12
  106. package/styles/runes/work.css +2 -2
  107. package/tokens/base.css +43 -66
  108. package/tokens/dark.css +76 -80
@@ -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;
@@ -20,8 +20,8 @@
20
20
  .rf-bug__metadata [data-field="assignee"] dd .rf-badge::before { content: '@'; }
21
21
 
22
22
  .rf-bug__body {
23
- font-size: 0.925rem;
24
- line-height: 1.65;
23
+ font-size: var(--rf-text-sm);
24
+ line-height: var(--rf-leading-relaxed);
25
25
  }
26
26
  .rf-bug__body > section {
27
27
  margin-top: 1rem;
@@ -86,9 +86,9 @@
86
86
  /* Eyebrow — a leading paragraph immediately before a heading, the same kicker
87
87
  * treatment as page-section / recipe. */
88
88
  .rf-card__eyebrow {
89
- font-size: 0.8rem;
90
- font-weight: 600;
91
- letter-spacing: 0.06em;
89
+ font-size: var(--rf-text-xs);
90
+ font-weight: var(--rf-weight-semibold);
91
+ letter-spacing: var(--rf-tracking-wider);
92
92
  text-transform: uppercase;
93
93
  color: var(--rf-color-primary);
94
94
  margin: 0 0 0.375rem;
@@ -30,21 +30,21 @@
30
30
  }
31
31
  .rf-cast-member__name {
32
32
  display: block;
33
- font-weight: 600;
34
- font-size: 1rem;
33
+ font-weight: var(--rf-weight-semibold);
34
+ font-size: var(--rf-text);
35
35
  color: var(--rf-color-text);
36
36
  }
37
37
  .rf-cast-member__role {
38
38
  display: block;
39
- font-size: 0.875rem;
39
+ font-size: var(--rf-text-sm);
40
40
  color: var(--rf-color-muted);
41
41
  margin-top: 0.125rem;
42
42
  }
43
43
  .rf-cast-member__body {
44
44
  margin-top: 0.75rem;
45
- font-size: 0.875rem;
45
+ font-size: var(--rf-text-sm);
46
46
  color: var(--rf-color-muted);
47
- line-height: 1.5;
47
+ line-height: var(--rf-leading-normal);
48
48
  }
49
49
  .rf-cast-member__body:empty { display: none; }
50
50
  .rf-cast-member img {
@@ -16,14 +16,14 @@
16
16
  display: contents;
17
17
  }
18
18
  .rf-changelog-release h3 {
19
- font-size: 1.25rem;
20
- font-weight: 700;
19
+ font-size: var(--rf-text-xl);
20
+ font-weight: var(--rf-weight-bold);
21
21
  margin: 0 0 0.25rem;
22
22
  color: var(--rf-color-text);
23
23
  }
24
24
  .rf-changelog-release time {
25
25
  display: block;
26
- font-size: 0.8rem;
26
+ font-size: var(--rf-text-xs);
27
27
  color: var(--rf-color-muted);
28
28
  margin-bottom: 0.75rem;
29
29
  }
@@ -32,16 +32,16 @@
32
32
  margin: 0;
33
33
  }
34
34
  .rf-changelog-release li {
35
- font-size: 0.925rem;
36
- line-height: 1.65;
35
+ font-size: var(--rf-text-sm);
36
+ line-height: var(--rf-leading-relaxed);
37
37
  margin-bottom: 0.25rem;
38
38
  }
39
39
  .rf-changelog-release strong {
40
40
  display: inline-block;
41
- font-size: 0.7rem;
42
- font-weight: 700;
41
+ font-size: var(--rf-text-xs);
42
+ font-weight: var(--rf-weight-bold);
43
43
  text-transform: uppercase;
44
- letter-spacing: 0.05em;
44
+ letter-spacing: var(--rf-tracking-wider);
45
45
  padding: 0.1rem 0.4rem;
46
46
  border-radius: var(--rf-radius-sm);
47
47
  margin-right: 0.375rem;
@@ -42,9 +42,9 @@
42
42
  }
43
43
  .rf-character-section__name {
44
44
  display: block;
45
- font-size: 1.25rem;
46
- font-weight: 700;
47
- line-height: 1.3;
45
+ font-size: var(--rf-text-xl);
46
+ font-weight: var(--rf-weight-bold);
47
+ line-height: var(--rf-leading-snug);
48
48
  margin-bottom: 0.5rem;
49
49
  color: var(--rf-color-text);
50
50
  }
@@ -75,10 +75,10 @@
75
75
  .rf-chart__data {
76
76
  width: 100%;
77
77
  border-collapse: collapse;
78
- font-size: 0.875rem;
78
+ font-size: var(--rf-text-sm);
79
79
  }
80
80
  .rf-chart__data caption {
81
- font-weight: 600;
81
+ font-weight: var(--rf-weight-semibold);
82
82
  margin-bottom: 0.75rem;
83
83
  }
84
84
  .rf-chart__data th,
@@ -99,8 +99,8 @@
99
99
  border: 0;
100
100
  }
101
101
  .rf-chart__title {
102
- font-weight: 600;
103
- font-size: 1rem;
102
+ font-weight: var(--rf-weight-semibold);
103
+ font-size: var(--rf-text);
104
104
  margin-bottom: 1rem;
105
105
  text-align: center;
106
106
  }
@@ -116,7 +116,7 @@
116
116
  display: flex;
117
117
  align-items: center;
118
118
  gap: 0.375rem;
119
- font-size: 0.8125rem;
119
+ font-size: var(--rf-text-sm);
120
120
  color: var(--rf-color-muted);
121
121
  }
122
122
  .rf-chart__legend-color {
@@ -42,7 +42,7 @@
42
42
  /* Filename title — the topbar bar's lone `code` field. */
43
43
  .rf-codegroup__topbar [data-meta-type="code"] {
44
44
  margin-left: 0.5rem;
45
- font-size: 0.8rem;
45
+ font-size: var(--rf-text-xs);
46
46
  font-weight: normal;
47
47
  color: var(--rf-color-muted);
48
48
  }
@@ -61,7 +61,7 @@
61
61
  .rf-codegroup__tab {
62
62
  flex: 0 0 auto;
63
63
  padding: 0.5rem 1rem;
64
- font-size: 0.8rem;
64
+ font-size: var(--rf-text-xs);
65
65
  font-family: var(--rf-font-mono);
66
66
  color: var(--rf-color-muted);
67
67
  background: none;
@@ -95,7 +95,7 @@
95
95
  }
96
96
  .rf-codegroup code {
97
97
  font-family: var(--rf-font-mono);
98
- font-size: 0.85rem;
98
+ font-size: var(--rf-text-sm);
99
99
  }
100
100
  /* Overflow modes */
101
101
  .rf-codegroup[data-overflow="wrap"] pre {
@@ -84,7 +84,7 @@
84
84
  }
85
85
 
86
86
  .rf-collection__title {
87
- font-weight: 600;
87
+ font-weight: var(--rf-weight-semibold);
88
88
  color: var(--rf-color-text);
89
89
  text-decoration: none;
90
90
  }
@@ -133,7 +133,7 @@
133
133
  margin: 0 0 var(--rf-spacing-sm);
134
134
  font-size: 0.875em;
135
135
  text-transform: uppercase;
136
- letter-spacing: 0.05em;
136
+ letter-spacing: var(--rf-tracking-wider);
137
137
  color: var(--rf-color-muted);
138
138
  }
139
139
 
@@ -153,7 +153,7 @@
153
153
  .rf-collection__table th {
154
154
  font-size: 0.875em;
155
155
  text-transform: uppercase;
156
- letter-spacing: 0.05em;
156
+ letter-spacing: var(--rf-tracking-wider);
157
157
  color: var(--rf-color-muted);
158
158
  }
159
159
 
@@ -7,8 +7,8 @@
7
7
  .rf-compare__header {
8
8
  padding: 0.5rem 1rem;
9
9
  font-family: var(--rf-font-sans);
10
- font-size: 0.75rem;
11
- font-weight: 600;
10
+ font-size: var(--rf-text-xs);
11
+ font-weight: var(--rf-weight-semibold);
12
12
  color: var(--rf-color-muted);
13
13
  background: var(--rf-color-surface);
14
14
  border-bottom: 1px solid var(--rf-color-border);
@@ -34,10 +34,10 @@
34
34
  .rf-compare [data-label] {
35
35
  display: block;
36
36
  padding: 0.5rem 1rem;
37
- font-size: 0.75rem;
38
- font-weight: 600;
37
+ font-size: var(--rf-text-xs);
38
+ font-weight: var(--rf-weight-semibold);
39
39
  text-transform: uppercase;
40
- letter-spacing: 0.05em;
40
+ letter-spacing: var(--rf-tracking-wider);
41
41
  color: var(--rf-color-muted);
42
42
  background: var(--rf-color-surface);
43
43
  border-bottom: 1px solid var(--rf-color-border);
@@ -12,8 +12,8 @@
12
12
  .rf-comparison__title {
13
13
  text-align: center;
14
14
  margin: 0 0 1.5rem;
15
- font-size: 1.5rem;
16
- font-weight: 700;
15
+ font-size: var(--rf-text-2xl);
16
+ font-weight: var(--rf-weight-bold);
17
17
  color: var(--rf-color-text);
18
18
  }
19
19
  .rf-comparison > meta,
@@ -28,7 +28,7 @@
28
28
  .rf-comparison__table {
29
29
  width: 100%;
30
30
  border-collapse: collapse;
31
- font-size: 0.9375rem;
31
+ font-size: var(--rf-text);
32
32
  }
33
33
  .rf-comparison__table thead {
34
34
  position: sticky;
@@ -43,8 +43,8 @@
43
43
  }
44
44
  .rf-comparison__table thead th {
45
45
  background: var(--rf-color-bg);
46
- font-weight: 700;
47
- font-size: 1rem;
46
+ font-weight: var(--rf-weight-bold);
47
+ font-size: var(--rf-text);
48
48
  color: var(--rf-color-text);
49
49
  border-bottom: 2px solid var(--rf-color-border);
50
50
  vertical-align: bottom;
@@ -55,10 +55,10 @@
55
55
  }
56
56
  .rf-comparison__recommended-badge {
57
57
  display: block;
58
- font-size: 0.6875rem;
59
- font-weight: 600;
58
+ font-size: var(--rf-text-xs);
59
+ font-weight: var(--rf-weight-semibold);
60
60
  text-transform: uppercase;
61
- letter-spacing: 0.05em;
61
+ letter-spacing: var(--rf-tracking-wider);
62
62
  color: var(--rf-color-primary);
63
63
  margin-top: 0.25rem;
64
64
  }
@@ -67,7 +67,7 @@
67
67
  white-space: nowrap;
68
68
  }
69
69
  .rf-comparison__row-label {
70
- font-weight: 600;
70
+ font-weight: var(--rf-weight-semibold);
71
71
  color: var(--rf-color-text);
72
72
  white-space: nowrap;
73
73
  background: var(--rf-color-bg);
@@ -79,7 +79,7 @@
79
79
  .rf-comparison__cell--highlighted {
80
80
  background: color-mix(in srgb, var(--rf-color-primary) 3%, transparent);
81
81
  }
82
- .rf-comparison__cell p { margin: 0; font-size: 0.875rem; }
82
+ .rf-comparison__cell p { margin: 0; font-size: var(--rf-text-sm); }
83
83
  .rf-comparison__cell strong { display: none; }
84
84
  .rf-comparison__cell em {
85
85
  font-style: italic;
@@ -90,8 +90,8 @@
90
90
  }
91
91
  /* Row icons */
92
92
  .rf-comparison__row-icon {
93
- font-weight: 700;
94
- font-size: 1.125rem;
93
+ font-weight: var(--rf-weight-bold);
94
+ font-size: var(--rf-text-lg);
95
95
  }
96
96
  .rf-comparison__row-icon--check {
97
97
  color: var(--rf-color-success);
@@ -113,8 +113,8 @@
113
113
  display: inline-block;
114
114
  background: color-mix(in srgb, var(--rf-color-primary) 10%, transparent);
115
115
  color: var(--rf-color-primary);
116
- font-size: 0.75rem;
117
- font-weight: 600;
116
+ font-size: var(--rf-text-xs);
117
+ font-weight: var(--rf-weight-semibold);
118
118
  padding: 0.125rem 0.5rem;
119
119
  border-radius: 999px;
120
120
  }
@@ -149,18 +149,18 @@
149
149
  transform: translateX(-50%);
150
150
  background: var(--rf-color-primary);
151
151
  color: white;
152
- font-size: 0.6875rem;
153
- font-weight: 700;
152
+ font-size: var(--rf-text-xs);
153
+ font-weight: var(--rf-weight-bold);
154
154
  text-transform: uppercase;
155
- letter-spacing: 0.05em;
155
+ letter-spacing: var(--rf-tracking-wider);
156
156
  padding: 0.125rem 0.75rem;
157
157
  border-radius: 999px;
158
158
  white-space: nowrap;
159
159
  }
160
160
  .rf-comparison-card__name {
161
161
  margin: 0 0 1rem;
162
- font-size: 1.125rem;
163
- font-weight: 700;
162
+ font-size: var(--rf-text-lg);
163
+ font-weight: var(--rf-weight-bold);
164
164
  color: var(--rf-color-text);
165
165
  }
166
166
  .rf-comparison-card__rows {
@@ -170,7 +170,7 @@
170
170
  }
171
171
  .rf-comparison-card__row {
172
172
  padding: 0.5rem 0;
173
- font-size: 0.875rem;
173
+ font-size: var(--rf-text-sm);
174
174
  color: var(--rf-color-muted);
175
175
  border-bottom: 1px solid var(--rf-color-border);
176
176
  display: flex;
@@ -188,7 +188,7 @@
188
188
  /* Verdict */
189
189
  .rf-comparison__verdict {
190
190
  text-align: center;
191
- font-size: 0.9375rem;
191
+ font-size: var(--rf-text);
192
192
  color: var(--rf-color-muted);
193
193
  font-style: italic;
194
194
  margin: 1.5rem auto 0;
@@ -205,7 +205,7 @@
205
205
  @media (max-width: 640px) {
206
206
  .rf-comparison__cards { grid-template-columns: 1fr; }
207
207
  .rf-comparison-card--highlighted { transform: none; }
208
- .rf-comparison__table { font-size: 0.8125rem; }
208
+ .rf-comparison__table { font-size: var(--rf-text-sm); }
209
209
  .rf-comparison__table th,
210
210
  .rf-comparison__table td { padding: 0.5rem 0.625rem; }
211
211
  }
@@ -24,8 +24,8 @@
24
24
  align-items: flex-end;
25
25
  }
26
26
  .rf-conversation-message__speaker {
27
- font-size: 0.75rem;
28
- font-weight: 600;
27
+ font-size: var(--rf-text-xs);
28
+ font-weight: var(--rf-weight-semibold);
29
29
  color: var(--rf-color-muted);
30
30
  margin-bottom: 0.25rem;
31
31
  padding: 0 0.75rem;
@@ -33,8 +33,8 @@
33
33
  .rf-conversation-message__body {
34
34
  padding: 0.75rem 1rem;
35
35
  border-radius: 1rem;
36
- font-size: 0.9375rem;
37
- line-height: 1.5;
36
+ font-size: var(--rf-text);
37
+ line-height: var(--rf-leading-normal);
38
38
  }
39
39
  .rf-conversation-message--left .rf-conversation-message__body {
40
40
  background: var(--rf-color-surface);