@refrakt-md/lumina 0.21.0 → 0.23.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 (131) hide show
  1. package/base.css +2 -1
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +7 -0
  4. package/dist/config.js.map +1 -1
  5. package/dist/tokens.d.ts +5 -3
  6. package/dist/tokens.d.ts.map +1 -1
  7. package/dist/tokens.js +44 -3
  8. package/dist/tokens.js.map +1 -1
  9. package/index.css +11 -1
  10. package/package.json +7 -5
  11. package/styles/base/attributes.css +6 -7
  12. package/styles/dimensions/checklist.css +7 -36
  13. package/styles/dimensions/cover.css +13 -95
  14. package/styles/dimensions/density.css +6 -3
  15. package/styles/dimensions/frame.css +7 -4
  16. package/styles/dimensions/media.css +14 -61
  17. package/styles/dimensions/metadata.css +30 -80
  18. package/styles/dimensions/sections.css +16 -30
  19. package/styles/dimensions/sequence.css +17 -82
  20. package/styles/dimensions/state.css +39 -56
  21. package/styles/dimensions/substrate.css +3 -0
  22. package/styles/dimensions/surfaces.css +73 -113
  23. package/styles/elements/blockquote.css +3 -2
  24. package/styles/elements/code.css +3 -0
  25. package/styles/elements/table.css +3 -0
  26. package/styles/global.css +24 -63
  27. package/styles/layouts/blog.css +34 -95
  28. package/styles/layouts/default.css +12 -86
  29. package/styles/layouts/docs.css +9 -159
  30. package/styles/layouts/mobile.css +3 -52
  31. package/styles/layouts/on-this-page.css +8 -7
  32. package/styles/layouts/plan.css +27 -158
  33. package/styles/layouts/search.css +17 -82
  34. package/styles/layouts/split.css +24 -169
  35. package/styles/layouts/theme-toggle.css +3 -29
  36. package/styles/layouts/version-switcher.css +9 -10
  37. package/styles/runes/accordion.css +25 -68
  38. package/styles/runes/aggregate.css +4 -13
  39. package/styles/runes/annotate.css +11 -40
  40. package/styles/runes/api.css +4 -1
  41. package/styles/runes/audio.css +12 -50
  42. package/styles/runes/badge.css +5 -2
  43. package/styles/runes/bar.css +3 -0
  44. package/styles/runes/bento.css +18 -161
  45. package/styles/runes/bg.css +3 -37
  46. package/styles/runes/blog.css +18 -20
  47. package/styles/runes/bond.css +6 -26
  48. package/styles/runes/breadcrumb.css +7 -15
  49. package/styles/runes/budget.css +23 -45
  50. package/styles/runes/bug.css +5 -2
  51. package/styles/runes/card.css +27 -95
  52. package/styles/runes/cast.css +10 -27
  53. package/styles/runes/changelog.css +13 -17
  54. package/styles/runes/character.css +6 -20
  55. package/styles/runes/chart.css +15 -57
  56. package/styles/runes/codegroup.css +18 -26
  57. package/styles/runes/collection.css +8 -85
  58. package/styles/runes/compare.css +8 -19
  59. package/styles/runes/comparison.css +29 -56
  60. package/styles/runes/conversation.css +9 -31
  61. package/styles/runes/cta.css +17 -40
  62. package/styles/runes/datatable.css +33 -48
  63. package/styles/runes/decision.css +5 -2
  64. package/styles/runes/design-context.css +5 -4
  65. package/styles/runes/details.css +9 -17
  66. package/styles/runes/diagram.css +8 -16
  67. package/styles/runes/diff.css +11 -94
  68. package/styles/runes/drawer.css +9 -113
  69. package/styles/runes/embed.css +5 -13
  70. package/styles/runes/event.css +5 -3
  71. package/styles/runes/expand.css +10 -45
  72. package/styles/runes/faction.css +6 -12
  73. package/styles/runes/feature.css +15 -43
  74. package/styles/runes/figure.css +7 -26
  75. package/styles/runes/file-ref.css +3 -18
  76. package/styles/runes/form.css +19 -48
  77. package/styles/runes/gallery.css +8 -140
  78. package/styles/runes/grid.css +4 -56
  79. package/styles/runes/hero.css +28 -140
  80. package/styles/runes/hint.css +23 -48
  81. package/styles/runes/howto.css +9 -31
  82. package/styles/runes/itinerary.css +15 -44
  83. package/styles/runes/juxtapose.css +17 -92
  84. package/styles/runes/lore.css +7 -14
  85. package/styles/runes/map.css +9 -42
  86. package/styles/runes/mediatext.css +4 -45
  87. package/styles/runes/milestone.css +15 -28
  88. package/styles/runes/mockup.css +10 -115
  89. package/styles/runes/nav.css +37 -212
  90. package/styles/runes/organization.css +6 -5
  91. package/styles/runes/page-section.css +3 -4
  92. package/styles/runes/pagination.css +10 -42
  93. package/styles/runes/palette.css +16 -35
  94. package/styles/runes/placeholder.css +16 -0
  95. package/styles/runes/plan-history.css +23 -43
  96. package/styles/runes/plan-progress.css +6 -7
  97. package/styles/runes/plan-ref.css +4 -1
  98. package/styles/runes/playlist.css +10 -44
  99. package/styles/runes/plot.css +9 -25
  100. package/styles/runes/preview.css +9 -34
  101. package/styles/runes/pricing.css +23 -41
  102. package/styles/runes/progress.css +8 -27
  103. package/styles/runes/pullquote.css +9 -31
  104. package/styles/runes/realm.css +6 -12
  105. package/styles/runes/recipe.css +12 -36
  106. package/styles/runes/relationships.css +5 -36
  107. package/styles/runes/reveal.css +17 -22
  108. package/styles/runes/sandbox.css +9 -39
  109. package/styles/runes/section.css +10 -24
  110. package/styles/runes/showcase.css +3 -20
  111. package/styles/runes/sidenote.css +5 -4
  112. package/styles/runes/snippet.css +3 -0
  113. package/styles/runes/spacing.css +14 -33
  114. package/styles/runes/spec.css +5 -2
  115. package/styles/runes/steps.css +14 -46
  116. package/styles/runes/storyboard.css +4 -19
  117. package/styles/runes/swatch.css +4 -7
  118. package/styles/runes/symbol.css +16 -14
  119. package/styles/runes/tabs.css +15 -18
  120. package/styles/runes/testimonial.css +12 -13
  121. package/styles/runes/textblock.css +6 -24
  122. package/styles/runes/timeline.css +10 -28
  123. package/styles/runes/tint.css +3 -0
  124. package/styles/runes/toc.css +9 -7
  125. package/styles/runes/track.css +12 -41
  126. package/styles/runes/typography.css +15 -27
  127. package/styles/runes/work.css +5 -2
  128. package/styles/runes/xref.css +3 -1
  129. package/tokens/base.css +56 -66
  130. package/tokens/dark.css +79 -80
  131. package/styles/dimensions/guest-posture.css +0 -27
@@ -1,21 +1,16 @@
1
+ @layer skin {
1
2
  /* Plan layout */
2
3
 
3
4
  /* ---- Dashboard grid ---- */
4
5
 
5
6
  .rf-plan-dashboard {
6
- display: grid;
7
- grid-template-columns: repeat(auto-fill, minmax(24rem, 1fr));
8
7
  gap: var(--rf-spacing-lg, 1.5rem);
9
8
  padding: var(--rf-spacing-lg, 1.5rem);
10
9
  }
11
10
 
12
- .rf-plan-dashboard__section {
13
- min-width: 0;
14
- }
15
-
16
11
  .rf-plan-dashboard__section-title {
17
- font-size: 1.125rem;
18
- font-weight: 600;
12
+ font-size: var(--rf-text-lg);
13
+ font-weight: var(--rf-weight-semibold);
19
14
  color: var(--rf-color-text, #212529);
20
15
  margin-block-end: var(--rf-spacing-md, 1rem);
21
16
  padding-block-end: var(--rf-spacing-sm, 0.5rem);
@@ -25,14 +20,9 @@
25
20
  /* ---- Fixed sidebar ---- */
26
21
 
27
22
  .rf-plan-sidebar {
28
- position: fixed;
29
- inset-block: 0;
30
- inset-inline-start: 0;
31
- width: var(--plan-sidebar-width, 240px);
32
23
  background: var(--rf-color-bg, #fff);
33
24
  border-inline-end: 1px solid var(--rf-color-border, #dee2e6);
34
25
  padding: var(--rf-spacing-lg, 1.5rem) var(--rf-spacing-md, 1rem);
35
- overflow-y: auto;
36
26
  }
37
27
 
38
28
  .rf-plan-sidebar::-webkit-scrollbar {
@@ -40,19 +30,13 @@
40
30
  }
41
31
 
42
32
  .rf-plan-sidebar__title {
43
- display: flex;
44
- align-items: center;
45
- justify-content: space-between;
46
- font-size: 1.125rem;
47
- font-weight: 700;
33
+ font-size: var(--rf-text-lg);
34
+ font-weight: var(--rf-weight-bold);
48
35
  margin-block-end: var(--rf-spacing-lg, 1.5rem);
49
36
  color: var(--rf-color-text, #212529);
50
37
  }
51
38
 
52
39
  .rf-plan-sidebar__search-trigger {
53
- display: inline-flex;
54
- align-items: center;
55
- justify-content: center;
56
40
  padding: 0.25rem;
57
41
  border: 1px solid var(--rf-color-border, #dee2e6);
58
42
  border-radius: var(--rf-radius-sm, 4px);
@@ -66,21 +50,16 @@
66
50
  color: var(--rf-color-text, #212529);
67
51
  background: var(--rf-color-surface-hover, #f1f3f5);
68
52
  }
69
- .rf-plan-sidebar__search-trigger svg {
70
- width: 16px;
71
- height: 16px;
72
- flex-shrink: 0;
73
- }
74
53
 
75
54
  .rf-plan-sidebar__group {
76
55
  margin-block-end: var(--rf-spacing-lg, 1.5rem);
77
56
  }
78
57
 
79
58
  .rf-plan-sidebar__group-title {
80
- font-size: 0.8125rem;
81
- font-weight: 600;
59
+ font-size: var(--rf-text-sm);
60
+ font-weight: var(--rf-weight-semibold);
82
61
  text-transform: uppercase;
83
- letter-spacing: 0.05em;
62
+ letter-spacing: var(--rf-tracking-wider);
84
63
  color: var(--rf-color-muted, #6c757d);
85
64
  margin-block-end: var(--rf-spacing-sm, 0.5rem);
86
65
  }
@@ -91,16 +70,12 @@
91
70
  }
92
71
 
93
72
  .rf-plan-sidebar__status-header {
94
- display: flex;
95
- align-items: center;
96
- justify-content: space-between;
97
- width: 100%;
98
73
  padding: 0.25rem 0.5rem;
99
74
  border: none;
100
75
  border-radius: var(--rf-radius-sm, 0.25rem);
101
76
  background: transparent;
102
77
  color: var(--rf-color-muted, #6c757d);
103
- font-size: 0.8125rem;
78
+ font-size: var(--rf-text-sm);
104
79
  cursor: pointer;
105
80
  text-align: start;
106
81
  transition: background 0.15s ease;
@@ -111,30 +86,22 @@
111
86
  }
112
87
 
113
88
  .rf-plan-sidebar__status-header::before {
114
- content: '\25B8';
115
- display: inline-block;
116
89
  margin-inline-end: 0.25rem;
117
90
  transition: transform 0.15s ease;
118
91
  font-size: 0.75em;
119
92
  }
120
93
 
121
- .rf-plan-sidebar__status-header[aria-expanded="true"]::before {
122
- transform: rotate(90deg);
123
- }
124
-
125
94
  .rf-plan-sidebar__status-label {
126
- flex: 1;
127
- font-weight: 500;
95
+ font-weight: var(--rf-weight-medium);
128
96
  }
129
97
 
130
98
  .rf-plan-sidebar__status-count {
131
- font-size: 0.75rem;
132
- font-weight: 600;
99
+ font-size: var(--rf-text-xs);
100
+ font-weight: var(--rf-weight-semibold);
133
101
  color: var(--rf-color-muted, #6c757d);
134
102
  background: var(--rf-color-surface-active, #f1f3f5);
135
103
  padding: 0 0.375rem;
136
104
  border-radius: var(--rf-radius-full, 9999px);
137
- min-width: 1.25rem;
138
105
  text-align: center;
139
106
  }
140
107
 
@@ -142,17 +109,12 @@
142
109
  padding-inline-start: var(--rf-spacing-sm, 0.5rem);
143
110
  }
144
111
 
145
- .rf-plan-sidebar__status-items[hidden] {
146
- display: none;
147
- }
148
-
149
112
  .rf-plan-sidebar__link {
150
- display: block;
151
113
  padding: 0.25rem 0.5rem;
152
114
  border-radius: var(--rf-radius-sm, 0.25rem);
153
115
  color: var(--rf-color-text, #212529);
154
116
  text-decoration: none;
155
- font-size: 0.8125rem;
117
+ font-size: var(--rf-text-sm);
156
118
  transition: background 0.15s ease;
157
119
  }
158
120
 
@@ -161,14 +123,11 @@
161
123
  }
162
124
 
163
125
  .rf-plan-sidebar__link--dashboard {
164
- display: flex;
165
- align-items: center;
166
126
  gap: 0.375rem;
167
127
  margin-block-end: var(--rf-spacing-md, 1rem);
168
128
  }
169
129
 
170
130
  .rf-plan-sidebar__dashboard-icon {
171
- flex-shrink: 0;
172
131
  opacity: 0.6;
173
132
  }
174
133
 
@@ -179,7 +138,7 @@
179
138
  .rf-plan-sidebar__link--active {
180
139
  background: var(--rf-color-info-bg, #e7f5ff);
181
140
  color: var(--rf-color-info, #339af0);
182
- font-weight: 600;
141
+ font-weight: var(--rf-weight-semibold);
183
142
  }
184
143
 
185
144
  .rf-plan-sidebar__link--focused {
@@ -192,25 +151,17 @@
192
151
  border-left: 2px solid var(--rf-color-danger, #ff6b6b);
193
152
  }
194
153
 
195
- .rf-plan-sidebar__status-link {
196
- display: flex;
197
- align-items: center;
198
- justify-content: space-between;
199
- }
200
-
201
154
  .rf-plan-sidebar__blocker-icon {
202
- margin-left: auto;
203
- font-size: 0.75rem;
155
+ font-size: var(--rf-text-xs);
204
156
  color: var(--rf-color-danger, #ff6b6b);
205
- flex-shrink: 0;
206
157
  }
207
158
 
208
159
  /* Views section in sidebar */
209
160
  .rf-plan-sidebar__view-header {
210
- font-size: 0.6875rem;
211
- font-weight: 600;
161
+ font-size: var(--rf-text-xs);
162
+ font-weight: var(--rf-weight-semibold);
212
163
  text-transform: uppercase;
213
- letter-spacing: 0.05em;
164
+ letter-spacing: var(--rf-tracking-wider);
214
165
  color: var(--rf-color-muted, #6c757d);
215
166
  padding: 0.25rem 0.5rem;
216
167
  margin-block-start: 0.25rem;
@@ -221,79 +172,42 @@
221
172
  }
222
173
 
223
174
  .rf-plan-sidebar__link .rf-plan-sidebar__view-label {
224
- flex: 1;
225
- overflow: hidden;
226
175
  text-overflow: ellipsis;
227
176
  white-space: nowrap;
228
177
  }
229
178
 
230
179
  .rf-plan-sidebar__link .rf-plan-sidebar__view-count {
231
- font-size: 0.6875rem;
232
- font-weight: 600;
180
+ font-size: var(--rf-text-xs);
181
+ font-weight: var(--rf-weight-semibold);
233
182
  color: var(--rf-color-muted, #6c757d);
234
183
  background: var(--rf-color-surface-active, #f1f3f5);
235
184
  padding: 0 0.375rem;
236
185
  border-radius: var(--rf-radius-full, 9999px);
237
- min-width: 1.25rem;
238
186
  text-align: center;
239
187
  }
240
188
 
241
- .rf-plan-sidebar__group[data-type="views"] .rf-plan-sidebar__link {
242
- display: flex;
243
- align-items: center;
244
- justify-content: space-between;
245
- }
246
-
247
189
  /* ---- Content area ---- */
248
190
 
249
191
  .rf-plan-main {
250
- margin-inline-start: var(--plan-sidebar-width, 240px);
251
192
  padding: var(--rf-spacing-xl, 2rem);
252
193
  }
253
194
 
254
195
  /* Inner wrapper: flex layout when TOC is present */
255
196
  .rf-plan-main__inner--has-toc {
256
- display: flex;
257
197
  gap: var(--rf-spacing-xl, 2rem);
258
- max-width: calc(60rem + 200px + 2rem);
259
- margin: 0 auto;
260
- }
261
- .rf-plan-main__inner--has-toc .rf-plan-main__body {
262
- flex: 1;
263
- min-width: 0;
264
- max-width: 60rem;
265
198
  }
266
199
 
267
200
  .rf-plan-main__body {
268
- max-width: 60rem;
269
- margin: 0 auto;
270
201
  padding: 0 2.5rem;
271
202
  }
272
203
 
273
- /* ---- "On this page" TOC aside ---- */
274
-
275
- .rf-plan-toc {
276
- width: 200px;
277
- flex-shrink: 0;
278
- position: sticky;
279
- top: var(--rf-spacing-lg, 1.5rem);
280
- align-self: flex-start;
281
- max-height: calc(100vh - var(--rf-spacing-xl, 2rem) * 2);
282
- overflow-y: auto;
283
- }
284
-
285
204
  /* ---- Mobile toolbar (hidden on desktop) ---- */
286
205
 
287
206
  .rf-plan-toolbar {
288
- display: none;
289
- align-items: center;
290
207
  gap: 0.75rem;
291
208
  padding: 0.625rem 1rem;
292
209
  border-block-end: 1px solid var(--rf-color-border, #dee2e6);
293
210
  background: var(--rf-color-bg, #fff);
294
- position: sticky;
295
- top: 0;
296
- z-index: 100;
297
211
  }
298
212
 
299
213
  .rf-plan-toolbar__hamburger {
@@ -303,7 +217,6 @@
303
217
  cursor: pointer;
304
218
  color: var(--rf-color-muted, #6c757d);
305
219
  line-height: 0;
306
- flex-shrink: 0;
307
220
  }
308
221
 
309
222
  .rf-plan-toolbar__hamburger:hover {
@@ -311,11 +224,9 @@
311
224
  }
312
225
 
313
226
  .rf-plan-toolbar__title {
314
- font-size: 0.875rem;
315
- font-weight: 600;
227
+ font-size: var(--rf-text-sm);
228
+ font-weight: var(--rf-weight-semibold);
316
229
  color: var(--rf-color-text, #212529);
317
- flex: 1;
318
- min-width: 0;
319
230
  }
320
231
 
321
232
  .rf-plan-toolbar__section-nav-toggle {
@@ -325,7 +236,6 @@
325
236
  cursor: pointer;
326
237
  color: var(--rf-color-muted, #6c757d);
327
238
  line-height: 0;
328
- flex-shrink: 0;
329
239
  }
330
240
 
331
241
  .rf-plan-toolbar__section-nav-toggle:hover {
@@ -335,25 +245,14 @@
335
245
  /* ---- Section nav dropdown ---- */
336
246
 
337
247
  .rf-section-nav {
338
- display: none;
339
- position: absolute;
340
- top: 100%;
341
- right: 0.5rem;
342
- min-width: 14rem;
343
248
  background: var(--rf-color-bg, #fff);
344
249
  border: 1px solid var(--rf-color-border, #dee2e6);
345
250
  border-radius: var(--rf-radius-md, 0.5rem);
346
251
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
347
- z-index: 200;
348
252
  padding: 0.25rem 0;
349
253
  }
350
254
 
351
- .rf-section-nav[data-open] {
352
- display: block;
353
- }
354
-
355
255
  .rf-section-nav__list {
356
- list-style: none;
357
256
  margin: 0;
358
257
  padding: 0;
359
258
  }
@@ -363,12 +262,11 @@
363
262
  }
364
263
 
365
264
  .rf-section-nav__link {
366
- display: block;
367
265
  padding: 0.5rem 1rem;
368
266
  color: var(--rf-color-text, #212529);
369
267
  text-decoration: none;
370
- font-size: 0.8125rem;
371
- line-height: 1.4;
268
+ font-size: var(--rf-text-sm);
269
+ line-height: var(--rf-leading-snug);
372
270
  }
373
271
 
374
272
  .rf-section-nav__link:hover {
@@ -381,46 +279,16 @@
381
279
 
382
280
  .rf-section-nav__item[data-active] .rf-section-nav__link {
383
281
  color: var(--rf-color-info, #339af0);
384
- font-weight: 600;
282
+ font-weight: var(--rf-weight-semibold);
385
283
  }
386
284
 
387
285
  /* ---- Responsive ---- */
388
286
 
389
287
  /* Hide TOC on medium screens */
390
- @media (max-width: 64rem) {
391
- .rf-plan-toc {
392
- display: none;
393
- }
394
- .rf-plan-main__inner--has-toc {
395
- display: block;
396
- }
397
- }
398
288
 
399
289
  @media (max-width: 48rem) {
400
- /* Offset scroll targets for sticky toolbar */
401
- html:has(.rf-plan-toolbar) {
402
- scroll-padding-top: 3.5rem;
403
- }
404
-
405
- .rf-plan-toolbar {
406
- display: flex;
407
- }
408
-
409
- .rf-plan-sidebar {
410
- display: none;
411
- }
412
-
413
- /* Search trigger is in the toolbar on mobile; hide the sidebar copy */
414
- .rf-mobile-panel .rf-plan-sidebar__search-trigger {
415
- display: none;
416
- }
417
-
418
- .rf-layout-plan .rf-mobile-panel--nav {
419
- top: 3.0625rem;
420
- }
421
290
 
422
291
  .rf-plan-main {
423
- margin-inline-start: 0;
424
292
  padding: var(--rf-spacing-md, 1rem);
425
293
  }
426
294
 
@@ -429,7 +297,8 @@
429
297
  }
430
298
 
431
299
  .rf-plan-dashboard {
432
- grid-template-columns: 1fr;
433
300
  padding: var(--rf-spacing-md, 1rem);
434
301
  }
435
302
  }
303
+
304
+ }
@@ -1,118 +1,77 @@
1
+ @layer skin {
1
2
  /* Search trigger button */
2
3
  .rf-search-trigger {
3
- display: inline-flex;
4
- align-items: center;
5
4
  gap: 0.5rem;
6
5
  padding: 0.375rem 0.625rem 0.375rem 0.5rem;
7
6
  border: 1px solid var(--rf-color-border);
8
7
  border-radius: var(--rf-radius-full);
9
8
  background: var(--rf-color-surface);
10
9
  color: var(--rf-color-muted);
11
- font-size: 0.8rem;
10
+ font-size: var(--rf-text-xs);
12
11
  font-family: var(--rf-font-sans);
13
12
  cursor: pointer;
14
13
  transition: border-color 0.15s, color 0.15s, background 0.15s;
15
14
  line-height: 1;
16
15
  white-space: nowrap;
17
- flex-shrink: 0;
18
16
  }
19
17
  .rf-search-trigger:hover {
20
18
  border-color: var(--rf-color-primary);
21
19
  color: var(--rf-color-text);
22
20
  background: var(--rf-color-surface-hover);
23
21
  }
24
- .rf-search-trigger svg {
25
- width: 16px;
26
- height: 16px;
27
- flex-shrink: 0;
28
- }
29
- .rf-search-trigger__label {
30
- pointer-events: none;
31
- }
32
22
  .rf-search-trigger__kbd {
33
- display: inline-flex;
34
- align-items: center;
35
23
  padding: 0.125rem 0.375rem;
36
24
  border: 1px solid var(--rf-color-border);
37
25
  border-radius: var(--rf-radius-sm);
38
26
  background: var(--rf-color-bg);
39
27
  font-family: var(--rf-font-sans);
40
- font-size: 0.7rem;
41
- line-height: 1.2;
28
+ font-size: var(--rf-text-xs);
29
+ line-height: var(--rf-leading-tight);
42
30
  color: var(--rf-color-muted);
43
31
  }
44
32
 
45
33
  /* Search dialog */
46
34
  .rf-search-dialog {
47
- position: fixed;
48
- top: 15vh;
49
- left: 50%;
50
- transform: translateX(-50%);
51
- width: min(560px, calc(100vw - 2rem));
52
- max-height: 70vh;
53
35
  margin: 0;
54
36
  padding: 0;
55
37
  border: 1px solid var(--rf-color-border);
56
38
  border-radius: var(--rf-radius-lg);
57
39
  background: var(--rf-color-bg);
58
40
  box-shadow: var(--rf-shadow-lg);
59
- overflow: hidden;
60
41
  font-family: var(--rf-font-sans);
61
42
  }
62
- .rf-search-dialog[open] {
63
- display: flex;
64
- flex-direction: column;
65
- }
66
43
  .rf-search-dialog::backdrop {
67
44
  background: rgba(0, 0, 0, 0.4);
68
45
  }
69
46
 
70
47
  /* Dialog header */
71
48
  .rf-search-dialog__header {
72
- display: flex;
73
- align-items: center;
74
49
  gap: 0.75rem;
75
50
  padding: 0.875rem 1rem;
76
51
  border-bottom: 1px solid var(--rf-color-border);
77
52
  }
78
53
  .rf-search-dialog__icon {
79
- flex-shrink: 0;
80
54
  color: var(--rf-color-muted);
81
55
  }
82
56
  .rf-search-dialog__input {
83
- flex: 1;
84
57
  border: none;
85
58
  outline: none;
86
59
  background: transparent;
87
- font-size: 1rem;
60
+ font-size: var(--rf-text);
88
61
  font-family: var(--rf-font-sans);
89
62
  color: var(--rf-color-text);
90
63
  }
91
64
  .rf-search-dialog__input::placeholder {
92
65
  color: var(--rf-color-muted);
93
66
  }
94
- /* Hide native search clear button */
95
- .rf-search-dialog__input::-webkit-search-cancel-button {
96
- display: none;
97
- }
98
67
  .rf-search-dialog__esc {
99
- display: inline-flex;
100
- align-items: center;
101
68
  padding: 0.125rem 0.375rem;
102
69
  border: 1px solid var(--rf-color-border);
103
70
  border-radius: var(--rf-radius-sm);
104
71
  background: var(--rf-color-surface);
105
72
  font-family: var(--rf-font-sans);
106
- font-size: 0.7rem;
73
+ font-size: var(--rf-text-xs);
107
74
  color: var(--rf-color-muted);
108
- flex-shrink: 0;
109
- }
110
-
111
- /* Dialog body */
112
- .rf-search-dialog__body {
113
- flex: 1;
114
- overflow-y: auto;
115
- overscroll-behavior: contain;
116
75
  }
117
76
 
118
77
  /* Results */
@@ -120,7 +79,6 @@
120
79
  padding: 0.5rem;
121
80
  }
122
81
  .rf-search-result {
123
- display: block;
124
82
  padding: 0.625rem 0.75rem;
125
83
  border-radius: var(--rf-radius-md);
126
84
  text-decoration: none;
@@ -132,16 +90,14 @@
132
90
  background: var(--rf-color-surface-hover);
133
91
  }
134
92
  .rf-search-result__title {
135
- display: block;
136
- font-weight: 500;
137
- font-size: 0.875rem;
138
- line-height: 1.4;
93
+ font-weight: var(--rf-weight-medium);
94
+ font-size: var(--rf-text-sm);
95
+ line-height: var(--rf-leading-snug);
139
96
  margin-bottom: 0.125rem;
140
97
  }
141
98
  .rf-search-result__excerpt {
142
- display: block;
143
- font-size: 0.8rem;
144
- line-height: 1.5;
99
+ font-size: var(--rf-text-xs);
100
+ line-height: var(--rf-leading-normal);
145
101
  color: var(--rf-color-muted);
146
102
  }
147
103
  .rf-search-result__excerpt mark {
@@ -155,59 +111,38 @@
155
111
  .rf-search-dialog__empty {
156
112
  text-align: center;
157
113
  padding: 2rem 1rem;
158
- font-size: 0.875rem;
114
+ font-size: var(--rf-text-sm);
159
115
  color: var(--rf-color-muted);
160
116
  }
161
117
 
162
118
  /* Footer */
163
119
  .rf-search-dialog__footer {
164
- display: flex;
165
- align-items: center;
166
120
  gap: 1rem;
167
121
  padding: 0.5rem 1rem;
168
122
  border-top: 1px solid var(--rf-color-border);
169
- font-size: 0.7rem;
123
+ font-size: var(--rf-text-xs);
170
124
  color: var(--rf-color-muted);
171
125
  }
172
126
  .rf-search-dialog__footer kbd {
173
- display: inline-flex;
174
- align-items: center;
175
- justify-content: center;
176
- min-width: 1.25rem;
177
127
  padding: 0 0.25rem;
178
128
  border: 1px solid var(--rf-color-border);
179
129
  border-radius: 3px;
180
130
  background: var(--rf-color-surface);
181
131
  font-family: var(--rf-font-sans);
182
- font-size: 0.65rem;
183
- line-height: 1.4;
132
+ font-size: var(--rf-text-xs);
133
+ line-height: var(--rf-leading-snug);
184
134
  }
185
135
 
186
136
  /* Mobile */
187
137
  @media (max-width: 768px) {
188
- .rf-search-trigger__label,
189
- .rf-search-trigger__kbd {
190
- display: none;
191
- }
192
138
  .rf-search-trigger {
193
139
  padding: 0.375rem;
194
140
  border-radius: var(--rf-radius-sm);
195
141
  }
196
142
  .rf-search-dialog[open] {
197
- top: 0;
198
- left: 0;
199
- right: 0;
200
- bottom: 0;
201
- transform: none;
202
- width: 100%;
203
- height: 100vh;
204
- height: 100dvh;
205
- max-height: 100vh;
206
- max-height: 100dvh;
207
143
  border-radius: 0;
208
144
  border: none;
209
145
  }
210
- .rf-search-dialog__footer {
211
- display: none;
212
- }
146
+ }
147
+
213
148
  }