@refrakt-md/lumina 0.33.0 → 0.34.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 (141) hide show
  1. package/base.css +29 -29
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js.map +1 -1
  4. package/dist/icons.d.ts.map +1 -1
  5. package/dist/icons.js +57 -57
  6. package/dist/icons.js.map +1 -1
  7. package/dist/presets/catppuccin.js.map +1 -1
  8. package/dist/presets/dracula.js.map +1 -1
  9. package/dist/presets/gruvbox.js.map +1 -1
  10. package/dist/presets/niwaki.js.map +1 -1
  11. package/dist/presets/nord.js.map +1 -1
  12. package/dist/presets/one-dark.js.map +1 -1
  13. package/dist/presets/solarized.js.map +1 -1
  14. package/dist/presets/tideline.d.ts.map +1 -1
  15. package/dist/presets/tideline.js +20 -4
  16. package/dist/presets/tideline.js.map +1 -1
  17. package/dist/presets/tokyo-night.js.map +1 -1
  18. package/dist/tokens.js.map +1 -1
  19. package/index.css +124 -124
  20. package/package.json +5 -5
  21. package/presets.json +61 -13
  22. package/styles/base/attributes.css +32 -13
  23. package/styles/dimensions/checklist.css +45 -46
  24. package/styles/dimensions/cover.css +71 -51
  25. package/styles/dimensions/density.css +69 -65
  26. package/styles/dimensions/frame.css +116 -57
  27. package/styles/dimensions/metadata.css +110 -103
  28. package/styles/dimensions/motion.css +42 -13
  29. package/styles/dimensions/reading.css +27 -27
  30. package/styles/dimensions/sections.css +44 -45
  31. package/styles/dimensions/sequence.css +56 -57
  32. package/styles/dimensions/state.css +8 -2
  33. package/styles/dimensions/substrate.css +82 -58
  34. package/styles/dimensions/surfaces.css +65 -62
  35. package/styles/elements/blockquote.css +24 -25
  36. package/styles/elements/code.css +72 -71
  37. package/styles/elements/table.css +36 -37
  38. package/styles/global.css +163 -121
  39. package/styles/layouts/blog.css +219 -218
  40. package/styles/layouts/default.css +168 -167
  41. package/styles/layouts/docs.css +121 -122
  42. package/styles/layouts/mobile.css +54 -55
  43. package/styles/layouts/on-this-page.css +46 -47
  44. package/styles/layouts/plan.css +248 -247
  45. package/styles/layouts/search.css +142 -140
  46. package/styles/layouts/split.css +45 -45
  47. package/styles/layouts/theme-toggle.css +33 -31
  48. package/styles/layouts/version-switcher.css +38 -37
  49. package/styles/runes/accordion.css +90 -81
  50. package/styles/runes/aggregate.css +50 -39
  51. package/styles/runes/annotate.css +46 -45
  52. package/styles/runes/api.css +22 -23
  53. package/styles/runes/audio.css +140 -141
  54. package/styles/runes/badge.css +12 -13
  55. package/styles/runes/bar.css +4 -5
  56. package/styles/runes/bento.css +73 -62
  57. package/styles/runes/bg.css +62 -47
  58. package/styles/runes/blog.css +89 -90
  59. package/styles/runes/bond.css +49 -50
  60. package/styles/runes/breadcrumb.css +34 -35
  61. package/styles/runes/budget.css +126 -127
  62. package/styles/runes/bug.css +28 -27
  63. package/styles/runes/card.css +63 -60
  64. package/styles/runes/carousel.css +15 -15
  65. package/styles/runes/cast.css +50 -51
  66. package/styles/runes/changelog.css +45 -46
  67. package/styles/runes/character.css +31 -32
  68. package/styles/runes/chart.css +194 -106
  69. package/styles/runes/codegroup.css +109 -100
  70. package/styles/runes/collection.css +87 -86
  71. package/styles/runes/compare.css +38 -39
  72. package/styles/runes/comparison.css +205 -179
  73. package/styles/runes/conversation.css +36 -33
  74. package/styles/runes/cta.css +135 -132
  75. package/styles/runes/datatable.css +84 -83
  76. package/styles/runes/decision.css +25 -26
  77. package/styles/runes/design-context.css +21 -23
  78. package/styles/runes/details.css +26 -27
  79. package/styles/runes/diagram.css +28 -29
  80. package/styles/runes/diff.css +75 -72
  81. package/styles/runes/drawer.css +276 -198
  82. package/styles/runes/embed.css +20 -21
  83. package/styles/runes/event.css +35 -36
  84. package/styles/runes/expand.css +43 -34
  85. package/styles/runes/faction.css +47 -48
  86. package/styles/runes/feature.css +119 -112
  87. package/styles/runes/figure.css +11 -12
  88. package/styles/runes/file-ref.css +11 -13
  89. package/styles/runes/form.css +155 -154
  90. package/styles/runes/gallery.css +59 -60
  91. package/styles/runes/grid.css +10 -7
  92. package/styles/runes/hero.css +189 -185
  93. package/styles/runes/hint.css +57 -58
  94. package/styles/runes/howto.css +62 -64
  95. package/styles/runes/itinerary.css +133 -134
  96. package/styles/runes/juxtapose.css +83 -82
  97. package/styles/runes/lore.css +32 -34
  98. package/styles/runes/map.css +106 -99
  99. package/styles/runes/mediatext.css +30 -27
  100. package/styles/runes/milestone.css +98 -97
  101. package/styles/runes/mockup.css +338 -335
  102. package/styles/runes/nav.css +465 -450
  103. package/styles/runes/organization.css +23 -20
  104. package/styles/runes/page-section.css +14 -15
  105. package/styles/runes/pagination.css +45 -44
  106. package/styles/runes/palette.css +78 -80
  107. package/styles/runes/placeholder.css +8 -9
  108. package/styles/runes/plan-history.css +160 -161
  109. package/styles/runes/plan-progress.css +15 -16
  110. package/styles/runes/plan-ref.css +32 -23
  111. package/styles/runes/playlist.css +106 -107
  112. package/styles/runes/plot.css +92 -91
  113. package/styles/runes/preview.css +152 -149
  114. package/styles/runes/pricing.css +133 -123
  115. package/styles/runes/progress.css +32 -27
  116. package/styles/runes/pullquote.css +89 -90
  117. package/styles/runes/realm.css +47 -48
  118. package/styles/runes/recipe.css +112 -114
  119. package/styles/runes/relationships.css +77 -76
  120. package/styles/runes/reveal.css +90 -79
  121. package/styles/runes/sandbox.css +59 -60
  122. package/styles/runes/section.css +57 -50
  123. package/styles/runes/showcase.css +35 -16
  124. package/styles/runes/sidenote.css +30 -27
  125. package/styles/runes/snippet.css +8 -9
  126. package/styles/runes/spacing.css +86 -88
  127. package/styles/runes/spec.css +24 -25
  128. package/styles/runes/steps.css +89 -80
  129. package/styles/runes/storyboard.css +46 -45
  130. package/styles/runes/swatch.css +22 -23
  131. package/styles/runes/symbol.css +117 -118
  132. package/styles/runes/tabs.css +88 -79
  133. package/styles/runes/testimonial.css +43 -44
  134. package/styles/runes/textblock.css +32 -28
  135. package/styles/runes/timeline.css +63 -64
  136. package/styles/runes/tint.css +214 -215
  137. package/styles/runes/toc.css +40 -41
  138. package/styles/runes/track.css +89 -90
  139. package/styles/runes/typography.css +89 -91
  140. package/styles/runes/work.css +47 -36
  141. package/styles/runes/xref.css +21 -22
@@ -1,184 +1,185 @@
1
1
  @layer skin {
2
- /* Default layout */
3
- .rf-header {
4
- background: var(--rf-color-bg);
5
- border-bottom: 1px solid var(--rf-color-border);
6
- }
7
- .rf-header__inner {
8
- gap: 1rem;
9
- padding: 0.625rem 1.5rem;
10
- }
11
- .rf-header p {
12
- margin: 0;
13
- line-height: 1;
14
- }
15
- .rf-header h1, .rf-header h2, .rf-header h3 {
16
- margin: 0;
17
- font-size: var(--rf-text-xl);
18
- font-weight: var(--rf-weight-semibold);
19
- letter-spacing: var(--rf-tracking-tight);
20
- line-height: 1;
21
- }
22
- .rf-header a {
23
- color: inherit;
24
- text-decoration: none;
25
- }
26
- .rf-header a:hover {
27
- text-decoration: none;
28
- }
29
- .rf-header p:first-child a {
30
- gap: 0.5rem;
31
- font-weight: var(--rf-weight-semibold);
32
- font-size: var(--rf-text-xl);
33
- letter-spacing: var(--rf-tracking-tight);
34
- }
35
- .rf-header p:first-child a > .rf-icon {
36
- vertical-align: middle;
37
- color: currentColor;
38
- }
39
- .rf-header__inner p ~ p {
40
- font-size: var(--rf-text-sm);
41
- }
42
- .rf-header__inner p ~ p a {
43
- margin-left: 1.5rem;
44
- color: var(--rf-color-muted);
45
- }
46
- .rf-header__inner p ~ p a:hover {
47
- color: var(--rf-color-text);
48
- }
49
- .rf-header__inner p ~ p a svg {
50
- vertical-align: -0.15em;
51
- }
52
- .rf-page-content {
53
- --rf-content-max: 80rem;
54
- --rf-content-gutter: 1.5rem;
2
+ /* Default layout */
3
+ .rf-header {
4
+ background: var(--rf-color-bg);
5
+ border-bottom: 1px solid var(--rf-color-border);
6
+ }
7
+ .rf-header__inner {
8
+ gap: 1rem;
9
+ padding: 0.625rem 1.5rem;
10
+ }
11
+ .rf-header p {
12
+ margin: 0;
13
+ line-height: 1;
14
+ }
15
+ .rf-header h1,
16
+ .rf-header h2,
17
+ .rf-header h3 {
18
+ margin: 0;
19
+ font-size: var(--rf-text-xl);
20
+ font-weight: var(--rf-weight-semibold);
21
+ letter-spacing: var(--rf-tracking-tight);
22
+ line-height: 1;
23
+ }
24
+ .rf-header a {
25
+ color: inherit;
26
+ text-decoration: none;
27
+ }
28
+ .rf-header a:hover {
29
+ text-decoration: none;
30
+ }
31
+ .rf-header p:first-child a {
32
+ gap: 0.5rem;
33
+ font-weight: var(--rf-weight-semibold);
34
+ font-size: var(--rf-text-xl);
35
+ letter-spacing: var(--rf-tracking-tight);
36
+ }
37
+ .rf-header p:first-child a > .rf-icon {
38
+ vertical-align: middle;
39
+ color: currentColor;
40
+ }
41
+ .rf-header__inner p ~ p {
42
+ font-size: var(--rf-text-sm);
43
+ }
44
+ .rf-header__inner p ~ p a {
45
+ margin-left: 1.5rem;
46
+ color: var(--rf-color-muted);
47
+ }
48
+ .rf-header__inner p ~ p a:hover {
49
+ color: var(--rf-color-text);
50
+ }
51
+ .rf-header__inner p ~ p a svg {
52
+ vertical-align: -0.15em;
53
+ }
54
+ .rf-page-content {
55
+ --rf-content-max: 80rem;
56
+ --rf-content-gutter: 1.5rem;
55
57
 
56
- padding-top: 2.5rem;
57
- padding-bottom: 4rem;
58
- }
59
- .rf-page-content > article > [data-width="full"] {
60
- padding-inline: max(
61
- var(--rf-content-gutter, 1.5rem),
62
- calc((100% - var(--rf-content-max, 80rem)) / 2)
63
- );
64
- }
65
- /* Page sections (data-content-measure="anchored") keep their content at the
58
+ padding-top: 2.5rem;
59
+ padding-bottom: 4rem;
60
+ }
61
+ .rf-page-content > article > [data-width="full"] {
62
+ padding-inline: max(
63
+ var(--rf-content-gutter, 1.5rem),
64
+ calc((100% - var(--rf-content-max, 80rem)) / 2)
65
+ );
66
+ }
67
+ /* Page sections (data-content-measure="anchored") keep their content at the
66
68
  * text measure when bled to the wide track — only the surface/background
67
69
  * widens, matching how `full` reads as a band. The absolutely-positioned bg
68
70
  * fills the padded box, so the inner padding restores content without pulling
69
71
  * the bleed in. Runes without the flag fill the wide track (card breakout). */
70
- .rf-page-content > article > [data-content-measure="anchored"][data-width="wide"] {
71
- padding-inline: max(
72
- var(--rf-content-gutter, 1.5rem),
73
- calc((100% - var(--rf-content-max, 80rem)) / 2)
74
- );
75
- }
76
- /* Tinted sections also break out to full width */
77
- .rf-page-content > article > :is([data-tint], [data-color-scheme]):not([data-width]) {
78
- padding-inline: max(
79
- var(--rf-content-gutter, 1.5rem),
80
- calc((100% - var(--rf-content-max, 80rem)) / 2)
81
- );
82
- }
72
+ .rf-page-content > article > [data-content-measure="anchored"][data-width="wide"] {
73
+ padding-inline: max(
74
+ var(--rf-content-gutter, 1.5rem),
75
+ calc((100% - var(--rf-content-max, 80rem)) / 2)
76
+ );
77
+ }
78
+ /* Tinted sections also break out to full width */
79
+ .rf-page-content > article > :is([data-tint], [data-color-scheme]):not([data-width]) {
80
+ padding-inline: max(
81
+ var(--rf-content-gutter, 1.5rem),
82
+ calc((100% - var(--rf-content-max, 80rem)) / 2)
83
+ );
84
+ }
83
85
 
84
- /* Section spacing — vertical rhythm around block runes.
86
+ /* Section spacing — vertical rhythm around block runes.
85
87
  * Rune blocks (elements with data-rune) get section-level margins.
86
88
  * Prose elements (p, h2, pre, table, etc.) keep their natural flow
87
89
  * spacing from global.css — only gaining section margins when
88
90
  * immediately adjacent to a rune block. */
89
- .rf-page-content > article > * + [data-rune] {
90
- margin-top: var(--rf-spacing-section, 4rem);
91
- margin-bottom: var(--rf-spacing-section, 4rem);
92
- }
93
- /* Prose after a rune block: section gap above only.
91
+ .rf-page-content > article > * + [data-rune] {
92
+ margin-top: var(--rf-spacing-section, 4rem);
93
+ margin-bottom: var(--rf-spacing-section, 4rem);
94
+ }
95
+ /* Prose after a rune block: section gap above only.
94
96
  * No margin-bottom so subsequent prose keeps natural flow spacing. */
95
- .rf-page-content > article > [data-rune] + :not([data-rune]) {
96
- margin-top: var(--rf-spacing-section, 4rem);
97
- }
98
- .rf-page-content > article > [data-spacing="flush"] {
99
- margin-top: 0;
100
- margin-bottom: 0;
101
- }
102
- .rf-page-content > article > [data-spacing="tight"] {
103
- margin-top: var(--rf-spacing-section-tight, 1.5rem);
104
- margin-bottom: var(--rf-spacing-section-tight, 1.5rem);
105
- }
106
- .rf-page-content > article > [data-spacing="loose"] {
107
- margin-top: var(--rf-spacing-section-loose, 8rem);
108
- margin-bottom: var(--rf-spacing-section-loose, 8rem);
109
- }
110
- .rf-page-content > article > [data-spacing="breathe"] {
111
- margin-top: var(--rf-spacing-section-breathe, 12rem);
112
- margin-bottom: var(--rf-spacing-section-breathe, 12rem);
113
- }
114
-
115
- /* Spacing on tinted/dark sections — use padding so space is inside the painted background */
116
- .rf-page-content > article > :is([data-color-scheme], [data-tint])[data-spacing="flush"] {
117
- margin-top: 0;
118
- margin-bottom: 0;
119
- padding-top: 0;
120
- padding-bottom: 0;
121
- }
122
- .rf-page-content > article > :is([data-color-scheme], [data-tint])[data-spacing="tight"] {
123
- margin-top: 0;
124
- margin-bottom: 0;
125
- padding-top: var(--rf-spacing-section-tight, 1.5rem);
126
- padding-bottom: var(--rf-spacing-section-tight, 1.5rem);
127
- }
128
- .rf-page-content > article > :is([data-color-scheme], [data-tint])[data-spacing="default"],
129
- .rf-page-content > article > :is([data-color-scheme], [data-tint]):not([data-spacing]) {
130
- margin-top: 0;
131
- margin-bottom: 0;
132
- padding-top: var(--rf-spacing-section, 4rem);
133
- padding-bottom: var(--rf-spacing-section, 4rem);
134
- }
135
- .rf-page-content > article > :is([data-color-scheme], [data-tint])[data-spacing="loose"] {
136
- margin-top: 0;
137
- margin-bottom: 0;
138
- padding-top: var(--rf-spacing-section-loose, 8rem);
139
- padding-bottom: var(--rf-spacing-section-loose, 8rem);
140
- }
141
- .rf-page-content > article > :is([data-color-scheme], [data-tint])[data-spacing="breathe"] {
142
- margin-top: 0;
143
- margin-bottom: 0;
144
- padding-top: var(--rf-spacing-section-breathe, 12rem);
145
- padding-bottom: var(--rf-spacing-section-breathe, 12rem);
146
- }
97
+ .rf-page-content > article > [data-rune] + :not([data-rune]) {
98
+ margin-top: var(--rf-spacing-section, 4rem);
99
+ }
100
+ .rf-page-content > article > [data-spacing="flush"] {
101
+ margin-top: 0;
102
+ margin-bottom: 0;
103
+ }
104
+ .rf-page-content > article > [data-spacing="tight"] {
105
+ margin-top: var(--rf-spacing-section-tight, 1.5rem);
106
+ margin-bottom: var(--rf-spacing-section-tight, 1.5rem);
107
+ }
108
+ .rf-page-content > article > [data-spacing="loose"] {
109
+ margin-top: var(--rf-spacing-section-loose, 8rem);
110
+ margin-bottom: var(--rf-spacing-section-loose, 8rem);
111
+ }
112
+ .rf-page-content > article > [data-spacing="breathe"] {
113
+ margin-top: var(--rf-spacing-section-breathe, 12rem);
114
+ margin-bottom: var(--rf-spacing-section-breathe, 12rem);
115
+ }
147
116
 
148
- /* Inset — horizontal padding within block runes */
149
- .rf-page-content > article > [data-inset="flush"] {
150
- padding-inline: 0;
151
- }
152
- .rf-page-content > article > [data-inset="tight"] {
153
- padding-inline: var(--rf-inset-tight, 1rem);
154
- }
155
- .rf-page-content > article > [data-inset="loose"] {
156
- padding-inline: var(--rf-inset-loose, 4rem);
157
- }
158
- .rf-page-content > article > [data-inset="breathe"] {
159
- padding-inline: var(--rf-inset-breathe, 8rem);
160
- }
117
+ /* Spacing on tinted/dark sections — use padding so space is inside the painted background */
118
+ .rf-page-content > article > :is([data-color-scheme], [data-tint])[data-spacing="flush"] {
119
+ margin-top: 0;
120
+ margin-bottom: 0;
121
+ padding-top: 0;
122
+ padding-bottom: 0;
123
+ }
124
+ .rf-page-content > article > :is([data-color-scheme], [data-tint])[data-spacing="tight"] {
125
+ margin-top: 0;
126
+ margin-bottom: 0;
127
+ padding-top: var(--rf-spacing-section-tight, 1.5rem);
128
+ padding-bottom: var(--rf-spacing-section-tight, 1.5rem);
129
+ }
130
+ .rf-page-content > article > :is([data-color-scheme], [data-tint])[data-spacing="default"],
131
+ .rf-page-content > article > :is([data-color-scheme], [data-tint]):not([data-spacing]) {
132
+ margin-top: 0;
133
+ margin-bottom: 0;
134
+ padding-top: var(--rf-spacing-section, 4rem);
135
+ padding-bottom: var(--rf-spacing-section, 4rem);
136
+ }
137
+ .rf-page-content > article > :is([data-color-scheme], [data-tint])[data-spacing="loose"] {
138
+ margin-top: 0;
139
+ margin-bottom: 0;
140
+ padding-top: var(--rf-spacing-section-loose, 8rem);
141
+ padding-bottom: var(--rf-spacing-section-loose, 8rem);
142
+ }
143
+ .rf-page-content > article > :is([data-color-scheme], [data-tint])[data-spacing="breathe"] {
144
+ margin-top: 0;
145
+ margin-bottom: 0;
146
+ padding-top: var(--rf-spacing-section-breathe, 12rem);
147
+ padding-bottom: var(--rf-spacing-section-breathe, 12rem);
148
+ }
161
149
 
162
- /* Collapse top/bottom padding when a full-bleed section is first/last */
163
- .rf-page-content:has(> article > :first-child:is([data-width="full"], [data-tint])) {
164
- padding-top: 0;
165
- }
166
- .rf-page-content:has(> article > :last-child:is([data-width="full"], [data-tint])) {
167
- padding-bottom: 0;
168
- }
150
+ /* Inset — horizontal padding within block runes */
151
+ .rf-page-content > article > [data-inset="flush"] {
152
+ padding-inline: 0;
153
+ }
154
+ .rf-page-content > article > [data-inset="tight"] {
155
+ padding-inline: var(--rf-inset-tight, 1rem);
156
+ }
157
+ .rf-page-content > article > [data-inset="loose"] {
158
+ padding-inline: var(--rf-inset-loose, 4rem);
159
+ }
160
+ .rf-page-content > article > [data-inset="breathe"] {
161
+ padding-inline: var(--rf-inset-breathe, 8rem);
162
+ }
169
163
 
170
- /* Site footer */
171
- .rf-footer {
172
- padding: 2.5rem 1.5rem 2rem;
173
- border-top: 1px solid var(--rf-color-border);
174
- background: var(--rf-color-bg);
175
- color: var(--rf-color-muted);
176
- font-size: var(--rf-text-sm);
177
- }
178
- .rf-footer p {
179
- margin: 1.5rem 0 0;
180
- font-size: var(--rf-text-xs);
181
- color: var(--rf-color-muted);
182
- }
164
+ /* Collapse top/bottom padding when a full-bleed section is first/last */
165
+ .rf-page-content:has(> article > :first-child:is([data-width="full"], [data-tint])) {
166
+ padding-top: 0;
167
+ }
168
+ .rf-page-content:has(> article > :last-child:is([data-width="full"], [data-tint])) {
169
+ padding-bottom: 0;
170
+ }
183
171
 
172
+ /* Site footer */
173
+ .rf-footer {
174
+ padding: 2.5rem 1.5rem 2rem;
175
+ border-top: 1px solid var(--rf-color-border);
176
+ background: var(--rf-color-bg);
177
+ color: var(--rf-color-muted);
178
+ font-size: var(--rf-text-sm);
179
+ }
180
+ .rf-footer p {
181
+ margin: 1.5rem 0 0;
182
+ font-size: var(--rf-text-xs);
183
+ color: var(--rf-color-muted);
184
+ }
184
185
  }
@@ -1,140 +1,139 @@
1
1
  @layer skin {
2
- /* Docs layout */
2
+ /* Docs layout */
3
3
 
4
- /* ---- Fixed header ---- */
5
- .rf-docs-header {
6
- background: var(--rf-color-bg, #fff);
7
- border-bottom: 1px solid var(--rf-color-border);
8
- }
9
- .rf-docs-header__inner {
10
- gap: 1rem;
11
- padding: 0.625rem 1.5rem;
12
- }
13
- .rf-docs-header p {
14
- margin: 0;
15
- line-height: 1;
16
- }
17
- .rf-docs-header a {
18
- color: inherit;
19
- text-decoration: none;
20
- }
21
- .rf-docs-header a:hover {
22
- text-decoration: none;
23
- }
24
- .rf-docs-header p:first-child a {
25
- gap: 0.5rem;
26
- font-weight: var(--rf-weight-semibold);
27
- font-size: var(--rf-text-xl);
28
- letter-spacing: var(--rf-tracking-tight);
29
- }
30
- .rf-docs-header p:first-child a > .rf-icon {
31
- vertical-align: middle;
32
- color: currentColor;
33
- }
34
- .rf-docs-header__inner p ~ p {
35
- font-size: var(--rf-text-sm);
36
- }
37
- .rf-docs-header__inner p ~ p a {
38
- margin-left: 1.5rem;
39
- color: var(--rf-color-muted);
40
- }
41
- .rf-docs-header__inner p ~ p a:hover {
42
- color: var(--rf-color-text);
43
- }
44
- .rf-docs-header__inner p ~ p a svg {
45
- vertical-align: -0.15em;
46
- }
4
+ /* ---- Fixed header ---- */
5
+ .rf-docs-header {
6
+ background: var(--rf-color-bg, #fff);
7
+ border-bottom: 1px solid var(--rf-color-border);
8
+ }
9
+ .rf-docs-header__inner {
10
+ gap: 1rem;
11
+ padding: 0.625rem 1.5rem;
12
+ }
13
+ .rf-docs-header p {
14
+ margin: 0;
15
+ line-height: 1;
16
+ }
17
+ .rf-docs-header a {
18
+ color: inherit;
19
+ text-decoration: none;
20
+ }
21
+ .rf-docs-header a:hover {
22
+ text-decoration: none;
23
+ }
24
+ .rf-docs-header p:first-child a {
25
+ gap: 0.5rem;
26
+ font-weight: var(--rf-weight-semibold);
27
+ font-size: var(--rf-text-xl);
28
+ letter-spacing: var(--rf-tracking-tight);
29
+ }
30
+ .rf-docs-header p:first-child a > .rf-icon {
31
+ vertical-align: middle;
32
+ color: currentColor;
33
+ }
34
+ .rf-docs-header__inner p ~ p {
35
+ font-size: var(--rf-text-sm);
36
+ }
37
+ .rf-docs-header__inner p ~ p a {
38
+ margin-left: 1.5rem;
39
+ color: var(--rf-color-muted);
40
+ }
41
+ .rf-docs-header__inner p ~ p a:hover {
42
+ color: var(--rf-color-text);
43
+ }
44
+ .rf-docs-header__inner p ~ p a svg {
45
+ vertical-align: -0.15em;
46
+ }
47
47
 
48
- /* ---- Sticky sidebar ---- */
49
- .rf-docs-sidebar {
50
- padding: 1.5rem;
51
- border-right: 1px solid var(--rf-color-border);
52
- background: var(--rf-color-bg, #fff);
53
- }
54
- .rf-docs-sidebar::-webkit-scrollbar {
55
- width: 0;
56
- }
48
+ /* ---- Sticky sidebar ---- */
49
+ .rf-docs-sidebar {
50
+ padding: 1.5rem;
51
+ border-right: 1px solid var(--rf-color-border);
52
+ background: var(--rf-color-bg, #fff);
53
+ }
54
+ .rf-docs-sidebar::-webkit-scrollbar {
55
+ width: 0;
56
+ }
57
57
 
58
- /* ---- Content area ---- */
59
- .rf-docs-content {
60
- padding-top: 4.75rem;
61
- padding-bottom: 4rem;
62
- }
63
- .rf-docs-content__inner {
64
- --rf-content-padding: 2.5rem;
65
- }
66
- .rf-docs-content__inner--has-toc {
67
- gap: 6rem;
68
- }
58
+ /* ---- Content area ---- */
59
+ .rf-docs-content {
60
+ padding-top: 4.75rem;
61
+ padding-bottom: 4rem;
62
+ }
63
+ .rf-docs-content__inner {
64
+ --rf-content-padding: 2.5rem;
65
+ }
66
+ .rf-docs-content__inner--has-toc {
67
+ gap: 6rem;
68
+ }
69
69
 
70
- /* Pagination wrapper sits outside the article grid, so it gets its own
70
+ /* Pagination wrapper sits outside the article grid, so it gets its own
71
71
  horizontal padding so prev/next don't run to the viewport edges on
72
72
  narrow viewports. Uses the same `--rf-content-padding` token the
73
73
  article grid uses for its gutter columns. */
74
- .rf-docs-content__pagination {
75
- padding-inline: var(--rf-content-padding, 2.5rem);
76
- }
74
+ .rf-docs-content__pagination {
75
+ padding-inline: var(--rf-content-padding, 2.5rem);
76
+ }
77
77
 
78
- /* ---- "On this page" sidebar ---- */
79
- .rf-docs-toc {
80
- padding: 0 1.25rem;
81
- }
82
- .rf-docs-toc::-webkit-scrollbar {
83
- width: 0;
84
- }
78
+ /* ---- "On this page" sidebar ---- */
79
+ .rf-docs-toc {
80
+ padding: 0 1.25rem;
81
+ }
82
+ .rf-docs-toc::-webkit-scrollbar {
83
+ width: 0;
84
+ }
85
85
 
86
- /* ---- Mobile toolbar (hidden on desktop) ---- */
87
- .rf-docs-toolbar {
88
- gap: 0.75rem;
89
- padding: 0.625rem 1rem;
90
- border-bottom: 1px solid var(--rf-color-border);
91
- background: var(--rf-color-bg, #fff);
92
- }
93
- .rf-docs-toolbar__hamburger {
94
- background: none;
95
- border: none;
96
- padding: 0.25rem;
97
- cursor: pointer;
98
- color: var(--rf-color-muted);
99
- line-height: 0;
100
- }
101
- .rf-docs-toolbar__hamburger:hover {
102
- color: var(--rf-color-text);
103
- }
104
- .rf-docs-toolbar__breadcrumb {
105
- font-size: var(--rf-text-xs);
106
- color: var(--rf-color-muted);
107
- /* `flex: 1 1 0` (basis 0, not auto) so the breadcrumb shrinks against
86
+ /* ---- Mobile toolbar (hidden on desktop) ---- */
87
+ .rf-docs-toolbar {
88
+ gap: 0.75rem;
89
+ padding: 0.625rem 1rem;
90
+ border-bottom: 1px solid var(--rf-color-border);
91
+ background: var(--rf-color-bg, #fff);
92
+ }
93
+ .rf-docs-toolbar__hamburger {
94
+ background: none;
95
+ border: none;
96
+ padding: 0.25rem;
97
+ cursor: pointer;
98
+ color: var(--rf-color-muted);
99
+ line-height: 0;
100
+ }
101
+ .rf-docs-toolbar__hamburger:hover {
102
+ color: var(--rf-color-text);
103
+ }
104
+ .rf-docs-toolbar__breadcrumb {
105
+ font-size: var(--rf-text-xs);
106
+ color: var(--rf-color-muted);
107
+ /* `flex: 1 1 0` (basis 0, not auto) so the breadcrumb shrinks against
108
108
  * the available space rather than starting at its full content width —
109
109
  * combined with `min-width: 0` this is what triggers ellipsis on long
110
110
  * titles. Without basis 0 a long page title overflows the toolbar and
111
111
  * forces horizontal page scroll on narrow viewports. */
112
- text-overflow: ellipsis;
113
- white-space: nowrap;
114
- }
115
- .rf-docs-breadcrumb-category {
116
- color: var(--rf-color-muted);
117
- }
118
- .rf-docs-breadcrumb-sep {
119
- margin: 0 0.35rem;
120
- color: var(--rf-color-border);
121
- }
122
- .rf-docs-breadcrumb-page {
123
- color: var(--rf-color-text);
124
- font-weight: var(--rf-weight-medium);
125
- }
126
-
127
- /* ---- Hide TOC on medium screens ---- */
128
-
129
- /* ---- Mobile overrides ---- */
130
- @media (max-width: 768px) {
131
- .rf-docs-content {
132
- padding-top: 2rem;
112
+ text-overflow: ellipsis;
113
+ white-space: nowrap;
133
114
  }
134
- .rf-docs-content__inner {
135
- --rf-content-padding: 1.5rem;
136
- --rf-docs-wide-inset: 1.5rem;
115
+ .rf-docs-breadcrumb-category {
116
+ color: var(--rf-color-muted);
137
117
  }
138
- }
118
+ .rf-docs-breadcrumb-sep {
119
+ margin: 0 0.35rem;
120
+ color: var(--rf-color-border);
121
+ }
122
+ .rf-docs-breadcrumb-page {
123
+ color: var(--rf-color-text);
124
+ font-weight: var(--rf-weight-medium);
125
+ }
126
+
127
+ /* ---- Hide TOC on medium screens ---- */
139
128
 
129
+ /* ---- Mobile overrides ---- */
130
+ @media (max-width: 768px) {
131
+ .rf-docs-content {
132
+ padding-top: 2rem;
133
+ }
134
+ .rf-docs-content__inner {
135
+ --rf-content-padding: 1.5rem;
136
+ --rf-docs-wide-inset: 1.5rem;
137
+ }
138
+ }
140
139
  }