@refrakt-md/lumina 0.33.0 → 0.35.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 (142) hide show
  1. package/base.css +29 -29
  2. package/contracts/structures.json +623 -0
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js.map +1 -1
  5. package/dist/icons.d.ts.map +1 -1
  6. package/dist/icons.js +57 -57
  7. package/dist/icons.js.map +1 -1
  8. package/dist/presets/catppuccin.js.map +1 -1
  9. package/dist/presets/dracula.js.map +1 -1
  10. package/dist/presets/gruvbox.js.map +1 -1
  11. package/dist/presets/niwaki.js.map +1 -1
  12. package/dist/presets/nord.js.map +1 -1
  13. package/dist/presets/one-dark.js.map +1 -1
  14. package/dist/presets/solarized.js.map +1 -1
  15. package/dist/presets/tideline.d.ts.map +1 -1
  16. package/dist/presets/tideline.js +20 -4
  17. package/dist/presets/tideline.js.map +1 -1
  18. package/dist/presets/tokyo-night.js.map +1 -1
  19. package/dist/tokens.js.map +1 -1
  20. package/index.css +124 -124
  21. package/package.json +5 -5
  22. package/presets.json +61 -13
  23. package/styles/base/attributes.css +32 -13
  24. package/styles/dimensions/checklist.css +45 -46
  25. package/styles/dimensions/cover.css +71 -51
  26. package/styles/dimensions/density.css +69 -65
  27. package/styles/dimensions/frame.css +116 -57
  28. package/styles/dimensions/metadata.css +110 -103
  29. package/styles/dimensions/motion.css +42 -13
  30. package/styles/dimensions/reading.css +27 -27
  31. package/styles/dimensions/sections.css +44 -45
  32. package/styles/dimensions/sequence.css +56 -57
  33. package/styles/dimensions/state.css +8 -2
  34. package/styles/dimensions/substrate.css +82 -58
  35. package/styles/dimensions/surfaces.css +65 -62
  36. package/styles/elements/blockquote.css +24 -25
  37. package/styles/elements/code.css +72 -71
  38. package/styles/elements/table.css +36 -37
  39. package/styles/global.css +163 -121
  40. package/styles/layouts/blog.css +219 -218
  41. package/styles/layouts/default.css +168 -167
  42. package/styles/layouts/docs.css +121 -122
  43. package/styles/layouts/mobile.css +54 -55
  44. package/styles/layouts/on-this-page.css +46 -47
  45. package/styles/layouts/plan.css +248 -247
  46. package/styles/layouts/search.css +142 -140
  47. package/styles/layouts/split.css +45 -45
  48. package/styles/layouts/theme-toggle.css +33 -31
  49. package/styles/layouts/version-switcher.css +38 -37
  50. package/styles/runes/accordion.css +90 -81
  51. package/styles/runes/aggregate.css +50 -39
  52. package/styles/runes/annotate.css +46 -45
  53. package/styles/runes/api.css +22 -23
  54. package/styles/runes/audio.css +140 -141
  55. package/styles/runes/badge.css +12 -13
  56. package/styles/runes/bar.css +4 -5
  57. package/styles/runes/bento.css +73 -62
  58. package/styles/runes/bg.css +62 -47
  59. package/styles/runes/blog.css +89 -90
  60. package/styles/runes/bond.css +49 -50
  61. package/styles/runes/breadcrumb.css +34 -35
  62. package/styles/runes/budget.css +126 -127
  63. package/styles/runes/bug.css +28 -27
  64. package/styles/runes/card.css +63 -60
  65. package/styles/runes/carousel.css +15 -15
  66. package/styles/runes/cast.css +50 -51
  67. package/styles/runes/changelog.css +45 -46
  68. package/styles/runes/character.css +31 -32
  69. package/styles/runes/chart.css +194 -106
  70. package/styles/runes/codegroup.css +109 -100
  71. package/styles/runes/collection.css +87 -86
  72. package/styles/runes/compare.css +38 -39
  73. package/styles/runes/comparison.css +205 -179
  74. package/styles/runes/conversation.css +36 -33
  75. package/styles/runes/cta.css +135 -132
  76. package/styles/runes/datatable.css +84 -83
  77. package/styles/runes/decision.css +25 -26
  78. package/styles/runes/design-context.css +21 -23
  79. package/styles/runes/details.css +26 -27
  80. package/styles/runes/diagram.css +28 -29
  81. package/styles/runes/diff.css +75 -72
  82. package/styles/runes/drawer.css +276 -198
  83. package/styles/runes/embed.css +20 -21
  84. package/styles/runes/event.css +35 -36
  85. package/styles/runes/expand.css +43 -34
  86. package/styles/runes/faction.css +47 -48
  87. package/styles/runes/feature.css +119 -112
  88. package/styles/runes/figure.css +11 -12
  89. package/styles/runes/file-ref.css +11 -13
  90. package/styles/runes/form.css +155 -154
  91. package/styles/runes/gallery.css +59 -60
  92. package/styles/runes/grid.css +10 -7
  93. package/styles/runes/hero.css +189 -185
  94. package/styles/runes/hint.css +57 -58
  95. package/styles/runes/howto.css +62 -64
  96. package/styles/runes/itinerary.css +133 -134
  97. package/styles/runes/juxtapose.css +83 -82
  98. package/styles/runes/lore.css +36 -34
  99. package/styles/runes/map.css +106 -99
  100. package/styles/runes/mediatext.css +30 -27
  101. package/styles/runes/milestone.css +98 -97
  102. package/styles/runes/mockup.css +338 -335
  103. package/styles/runes/nav.css +465 -450
  104. package/styles/runes/organization.css +23 -20
  105. package/styles/runes/page-section.css +14 -15
  106. package/styles/runes/pagination.css +45 -44
  107. package/styles/runes/palette.css +78 -80
  108. package/styles/runes/placeholder.css +8 -9
  109. package/styles/runes/plan-history.css +160 -161
  110. package/styles/runes/plan-progress.css +15 -16
  111. package/styles/runes/plan-ref.css +32 -23
  112. package/styles/runes/playlist.css +106 -107
  113. package/styles/runes/plot.css +96 -91
  114. package/styles/runes/preview.css +152 -149
  115. package/styles/runes/pricing.css +133 -123
  116. package/styles/runes/progress.css +32 -27
  117. package/styles/runes/pullquote.css +89 -90
  118. package/styles/runes/realm.css +47 -48
  119. package/styles/runes/recipe.css +112 -114
  120. package/styles/runes/relationships.css +77 -76
  121. package/styles/runes/reveal.css +90 -79
  122. package/styles/runes/sandbox.css +59 -60
  123. package/styles/runes/section.css +57 -50
  124. package/styles/runes/showcase.css +35 -16
  125. package/styles/runes/sidenote.css +30 -27
  126. package/styles/runes/snippet.css +8 -9
  127. package/styles/runes/spacing.css +86 -88
  128. package/styles/runes/spec.css +24 -25
  129. package/styles/runes/steps.css +89 -80
  130. package/styles/runes/storyboard.css +46 -45
  131. package/styles/runes/swatch.css +22 -23
  132. package/styles/runes/symbol.css +117 -118
  133. package/styles/runes/tabs.css +88 -79
  134. package/styles/runes/testimonial.css +43 -44
  135. package/styles/runes/textblock.css +32 -28
  136. package/styles/runes/timeline.css +63 -64
  137. package/styles/runes/tint.css +214 -215
  138. package/styles/runes/toc.css +40 -41
  139. package/styles/runes/track.css +89 -90
  140. package/styles/runes/typography.css +89 -91
  141. package/styles/runes/work.css +47 -36
  142. package/styles/runes/xref.css +21 -22
@@ -1,420 +1,424 @@
1
1
  @layer skin {
2
- /* Mockup — Device frame chrome around content */
3
-
4
- .rf-mockup {
5
- --mockup-bezel-dark: #1a1a1a;
6
- --mockup-bezel-light: #e5e5e5;
7
- --mockup-bezel: var(--mockup-bezel-dark);
8
- --mockup-chrome: #2a2a2a;
9
- --mockup-chrome-text: #999;
10
- --mockup-scale: 1;
11
- }
2
+ /* Mockup — Device frame chrome around content */
3
+
4
+ .rf-mockup {
5
+ --mockup-bezel-dark: #1a1a1a;
6
+ --mockup-bezel-light: #e5e5e5;
7
+ --mockup-bezel: var(--mockup-bezel-dark);
8
+ --mockup-chrome: #2a2a2a;
9
+ --mockup-chrome-text: #999;
10
+ --mockup-scale: 1;
11
+ }
12
12
 
13
- /* ── Color modifiers ── */
13
+ /* ── Color modifiers ── */
14
14
 
15
- .rf-mockup--dark {
16
- --mockup-bezel: var(--mockup-bezel-dark);
17
- --mockup-chrome: #2a2a2a;
18
- --mockup-chrome-text: #999;
19
- }
15
+ .rf-mockup--dark {
16
+ --mockup-bezel: var(--mockup-bezel-dark);
17
+ --mockup-chrome: #2a2a2a;
18
+ --mockup-chrome-text: #999;
19
+ }
20
20
 
21
- .rf-mockup--light {
22
- --mockup-bezel: var(--mockup-bezel-light);
23
- --mockup-chrome: #f5f5f5;
24
- --mockup-chrome-text: #666;
25
- }
21
+ .rf-mockup--light {
22
+ --mockup-bezel: var(--mockup-bezel-light);
23
+ --mockup-chrome: #f5f5f5;
24
+ --mockup-chrome-text: #666;
25
+ }
26
26
 
27
- .rf-mockup--auto {
28
- --mockup-bezel: var(--mockup-bezel-dark);
29
- --mockup-chrome: #2a2a2a;
30
- --mockup-chrome-text: #999;
31
- }
27
+ .rf-mockup--auto {
28
+ --mockup-bezel: var(--mockup-bezel-dark);
29
+ --mockup-chrome: #2a2a2a;
30
+ --mockup-chrome-text: #999;
31
+ }
32
32
 
33
- /* ── Viewport (content area) ── */
33
+ /* ── Viewport (content area) ── */
34
34
 
35
- .rf-mockup__viewport {
36
- background: var(--rf-color-bg);
37
- }
35
+ .rf-mockup__viewport {
36
+ background: var(--rf-color-bg);
37
+ }
38
38
 
39
- .rf-mockup__viewport > *:first-child {
40
- margin-top: 0;
41
- }
39
+ .rf-mockup__viewport > *:first-child {
40
+ margin-top: 0;
41
+ }
42
42
 
43
- .rf-mockup__viewport > *:last-child {
44
- margin-bottom: 0;
45
- }
43
+ .rf-mockup__viewport > *:last-child {
44
+ margin-bottom: 0;
45
+ }
46
46
 
47
- /* ── Label ── */
47
+ /* ── Label ── */
48
48
 
49
- .rf-mockup__label {
50
- text-align: center;
51
- font-size: var(--rf-text-xs);
52
- font-weight: var(--rf-weight-medium);
53
- color: var(--rf-color-muted);
54
- margin-top: 0.75rem;
55
- }
49
+ .rf-mockup__label {
50
+ text-align: center;
51
+ font-size: var(--rf-text-xs);
52
+ font-weight: var(--rf-weight-medium);
53
+ color: var(--rf-color-muted);
54
+ margin-top: 0.75rem;
55
+ }
56
56
 
57
- /* ═══════════════════════════════════════
57
+ /* ═══════════════════════════════════════
58
58
  MOBILE DEVICES
59
59
  ═══════════════════════════════════════ */
60
60
 
61
- /* ── Bezel (mobile/tablet outer shell) ── */
61
+ /* ── Bezel (mobile/tablet outer shell) ── */
62
62
 
63
- .rf-mockup__bezel {
64
- background: var(--mockup-bezel);
65
- }
63
+ .rf-mockup__bezel {
64
+ background: var(--mockup-bezel);
65
+ }
66
66
 
67
- .rf-mockup__notch[data-notch="dynamic-island"] {
68
- background: #000;
69
- border-radius: 20px;
70
- }
67
+ .rf-mockup__notch[data-notch="dynamic-island"] {
68
+ background: #000;
69
+ border-radius: 20px;
70
+ }
71
71
 
72
- .rf-mockup__notch[data-notch="classic"] {
73
- background: var(--mockup-bezel);
74
- border-radius: 0 0 20px 20px;
75
- }
72
+ .rf-mockup__notch[data-notch="classic"] {
73
+ background: var(--mockup-bezel);
74
+ border-radius: 0 0 20px 20px;
75
+ }
76
76
 
77
- .rf-mockup__notch[data-notch="punch-hole"] {
78
- background: #000;
79
- border-radius: var(--rf-radius-full);
80
- }
77
+ .rf-mockup__notch[data-notch="punch-hole"] {
78
+ background: #000;
79
+ border-radius: var(--rf-radius-full);
80
+ }
81
81
 
82
- /* ── Status bar ── */
82
+ /* ── Status bar ── */
83
83
 
84
- .rf-mockup__status-bar {
85
- padding: 0 1.5rem;
86
- font-size: var(--rf-text-xs);
87
- font-weight: var(--rf-weight-semibold);
88
- color: var(--rf-color-text);
89
- background: var(--rf-color-bg);
90
- }
84
+ .rf-mockup__status-bar {
85
+ padding: 0 1.5rem;
86
+ font-size: var(--rf-text-xs);
87
+ font-weight: var(--rf-weight-semibold);
88
+ color: var(--rf-color-text);
89
+ background: var(--rf-color-bg);
90
+ }
91
91
 
92
- .rf-mockup__status-time {
93
- font-variant-numeric: tabular-nums;
94
- }
92
+ .rf-mockup__status-time {
93
+ font-variant-numeric: tabular-nums;
94
+ }
95
95
 
96
- .rf-mockup__status-icons::after {
97
- content: '\25CF\25CF\25CF \25AE 100%';
98
- font-size: var(--rf-text-xs);
99
- letter-spacing: var(--rf-tracking-wider);
100
- color: var(--rf-color-muted);
101
- }
96
+ .rf-mockup__status-icons::after {
97
+ content: "\25CF\25CF\25CF \25AE 100%";
98
+ font-size: var(--rf-text-xs);
99
+ letter-spacing: var(--rf-tracking-wider);
100
+ color: var(--rf-color-muted);
101
+ }
102
102
 
103
- /* ── Home indicator ── */
103
+ /* ── Home indicator ── */
104
104
 
105
- .rf-mockup__home-indicator {
106
- background: var(--rf-color-bg);
107
- }
105
+ .rf-mockup__home-indicator {
106
+ background: var(--rf-color-bg);
107
+ }
108
108
 
109
- .rf-mockup__home-indicator::after {
110
- background: var(--rf-color-text);
111
- border-radius: var(--rf-radius-full);
112
- opacity: 0.2;
113
- }
109
+ .rf-mockup__home-indicator::after {
110
+ background: var(--rf-color-text);
111
+ border-radius: var(--rf-radius-full);
112
+ opacity: 0.2;
113
+ }
114
114
 
115
- /* ── iPhone 15 ── */
115
+ /* ── iPhone 15 ── */
116
116
 
117
- .rf-mockup--iphone-15 .rf-mockup__frame {
118
- --mockup-device-width: 393px;
119
- width: 393px;
120
- border-radius: 55px;
121
- }
117
+ .rf-mockup--iphone-15 .rf-mockup__frame {
118
+ --mockup-device-width: 393px;
119
+ width: 393px;
120
+ border-radius: 55px;
121
+ }
122
122
 
123
- .rf-mockup--iphone-15 .rf-mockup__bezel {
124
- border-radius: 55px;
125
- border: 10px solid var(--mockup-bezel);
126
- }
123
+ .rf-mockup--iphone-15 .rf-mockup__bezel {
124
+ border-radius: 55px;
125
+ border: 10px solid var(--mockup-bezel);
126
+ }
127
127
 
128
- .rf-mockup--iphone-15 .rf-mockup__viewport {
129
- height: 852px;
130
- border-radius: 0;
131
- }
128
+ .rf-mockup--iphone-15 .rf-mockup__viewport {
129
+ height: 852px;
130
+ border-radius: 0;
131
+ }
132
132
 
133
- /* ── iPhone SE ── */
133
+ /* ── iPhone SE ── */
134
134
 
135
- .rf-mockup--iphone-se .rf-mockup__frame {
136
- --mockup-device-width: 375px;
137
- width: 375px;
138
- border-radius: 40px;
139
- }
135
+ .rf-mockup--iphone-se .rf-mockup__frame {
136
+ --mockup-device-width: 375px;
137
+ width: 375px;
138
+ border-radius: 40px;
139
+ }
140
140
 
141
- .rf-mockup--iphone-se .rf-mockup__bezel {
142
- border-radius: 40px;
143
- border: 10px solid var(--mockup-bezel);
144
- padding-bottom: 60px;
145
- }
141
+ .rf-mockup--iphone-se .rf-mockup__bezel {
142
+ border-radius: 40px;
143
+ border: 10px solid var(--mockup-bezel);
144
+ padding-bottom: 60px;
145
+ }
146
146
 
147
- .rf-mockup--iphone-se .rf-mockup__notch[data-notch="classic"] {
148
- position: relative;
149
- top: auto;
150
- left: auto;
151
- transform: none;
152
- width: 100%;
153
- height: 60px;
154
- background: var(--mockup-bezel);
155
- border-radius: 0;
156
- }
147
+ .rf-mockup--iphone-se .rf-mockup__notch[data-notch="classic"] {
148
+ position: relative;
149
+ top: auto;
150
+ left: auto;
151
+ transform: none;
152
+ width: 100%;
153
+ height: 60px;
154
+ background: var(--mockup-bezel);
155
+ border-radius: 0;
156
+ }
157
157
 
158
- .rf-mockup--iphone-se .rf-mockup__bezel::after {
159
- content: '';
160
- position: absolute;
161
- bottom: 14px;
162
- left: 50%;
163
- transform: translateX(-50%);
164
- width: 36px;
165
- height: 36px;
166
- border: 2px solid var(--mockup-chrome-text);
167
- border-radius: var(--rf-radius-full);
168
- opacity: 0.5;
169
- }
158
+ .rf-mockup--iphone-se .rf-mockup__bezel::after {
159
+ content: "";
160
+ position: absolute;
161
+ bottom: 14px;
162
+ left: 50%;
163
+ transform: translateX(-50%);
164
+ width: 36px;
165
+ height: 36px;
166
+ border: 2px solid var(--mockup-chrome-text);
167
+ border-radius: var(--rf-radius-full);
168
+ opacity: 0.5;
169
+ }
170
170
 
171
- .rf-mockup--iphone-se .rf-mockup__viewport {
172
- height: 667px;
173
- }
171
+ .rf-mockup--iphone-se .rf-mockup__viewport {
172
+ height: 667px;
173
+ }
174
174
 
175
- /* ── Pixel ── */
175
+ /* ── Pixel ── */
176
176
 
177
- .rf-mockup--pixel .rf-mockup__frame {
178
- --mockup-device-width: 412px;
179
- width: 412px;
180
- border-radius: 40px;
181
- }
177
+ .rf-mockup--pixel .rf-mockup__frame {
178
+ --mockup-device-width: 412px;
179
+ width: 412px;
180
+ border-radius: 40px;
181
+ }
182
182
 
183
- .rf-mockup--pixel .rf-mockup__bezel {
184
- border-radius: 40px;
185
- border: 8px solid var(--mockup-bezel);
186
- }
183
+ .rf-mockup--pixel .rf-mockup__bezel {
184
+ border-radius: 40px;
185
+ border: 8px solid var(--mockup-bezel);
186
+ }
187
187
 
188
- .rf-mockup--pixel .rf-mockup__viewport {
189
- height: 915px;
190
- }
188
+ .rf-mockup--pixel .rf-mockup__viewport {
189
+ height: 915px;
190
+ }
191
191
 
192
- /* ── Generic phone ── */
192
+ /* ── Generic phone ── */
193
193
 
194
- .rf-mockup--phone .rf-mockup__frame {
195
- --mockup-device-width: 390px;
196
- width: 390px;
197
- border-radius: 48px;
198
- }
194
+ .rf-mockup--phone .rf-mockup__frame {
195
+ --mockup-device-width: 390px;
196
+ width: 390px;
197
+ border-radius: 48px;
198
+ }
199
199
 
200
- .rf-mockup--phone .rf-mockup__bezel {
201
- border-radius: 48px;
202
- border: 10px solid var(--mockup-bezel);
203
- }
200
+ .rf-mockup--phone .rf-mockup__bezel {
201
+ border-radius: 48px;
202
+ border: 10px solid var(--mockup-bezel);
203
+ }
204
204
 
205
- .rf-mockup--phone .rf-mockup__viewport {
206
- height: 844px;
207
- }
205
+ .rf-mockup--phone .rf-mockup__viewport {
206
+ height: 844px;
207
+ }
208
208
 
209
- /* ═══════════════════════════════════════
209
+ /* ═══════════════════════════════════════
210
210
  TABLET DEVICES
211
211
  ═══════════════════════════════════════ */
212
212
 
213
- /* ── iPad ── */
213
+ /* ── iPad ── */
214
214
 
215
- .rf-mockup--ipad .rf-mockup__frame {
216
- --mockup-device-width: 820px;
217
- width: 820px;
218
- border-radius: 24px;
219
- }
215
+ .rf-mockup--ipad .rf-mockup__frame {
216
+ --mockup-device-width: 820px;
217
+ width: 820px;
218
+ border-radius: 24px;
219
+ }
220
220
 
221
- .rf-mockup--ipad .rf-mockup__bezel {
222
- border-radius: 24px;
223
- border: 12px solid var(--mockup-bezel);
224
- }
221
+ .rf-mockup--ipad .rf-mockup__bezel {
222
+ border-radius: 24px;
223
+ border: 12px solid var(--mockup-bezel);
224
+ }
225
225
 
226
- .rf-mockup--ipad .rf-mockup__viewport {
227
- height: 1180px;
228
- }
226
+ .rf-mockup--ipad .rf-mockup__viewport {
227
+ height: 1180px;
228
+ }
229
229
 
230
- /* ── Generic tablet ── */
230
+ /* ── Generic tablet ── */
231
231
 
232
- .rf-mockup--tablet .rf-mockup__frame {
233
- --mockup-device-width: 800px;
234
- width: 800px;
235
- border-radius: 20px;
236
- }
232
+ .rf-mockup--tablet .rf-mockup__frame {
233
+ --mockup-device-width: 800px;
234
+ width: 800px;
235
+ border-radius: 20px;
236
+ }
237
237
 
238
- .rf-mockup--tablet .rf-mockup__bezel {
239
- border-radius: 20px;
240
- border: 14px solid var(--mockup-bezel);
241
- }
238
+ .rf-mockup--tablet .rf-mockup__bezel {
239
+ border-radius: 20px;
240
+ border: 14px solid var(--mockup-bezel);
241
+ }
242
242
 
243
- .rf-mockup--tablet .rf-mockup__viewport {
244
- height: 1100px;
245
- }
243
+ .rf-mockup--tablet .rf-mockup__viewport {
244
+ height: 1100px;
245
+ }
246
246
 
247
- /* ═══════════════════════════════════════
247
+ /* ═══════════════════════════════════════
248
248
  DESKTOP DEVICES
249
249
  ═══════════════════════════════════════ */
250
250
 
251
- /* ── Title bar (browser / macbook) ── */
251
+ /* ── Title bar (browser / macbook) ── */
252
252
 
253
- .rf-mockup__title-bar {
254
- gap: 0.75rem;
255
- padding: 0.625rem 1rem;
256
- background: var(--mockup-chrome);
257
- }
253
+ .rf-mockup__title-bar {
254
+ gap: 0.75rem;
255
+ padding: 0.625rem 1rem;
256
+ background: var(--mockup-chrome);
257
+ }
258
258
 
259
- /* ── Traffic lights ── */
259
+ /* ── Traffic lights ── */
260
260
 
261
- .rf-mockup__traffic-lights {
262
- gap: 0.5rem;
263
- }
261
+ .rf-mockup__traffic-lights {
262
+ gap: 0.5rem;
263
+ }
264
264
 
265
- .rf-mockup__traffic-light {
266
- border-radius: var(--rf-radius-full);
267
- }
265
+ .rf-mockup__traffic-light {
266
+ border-radius: var(--rf-radius-full);
267
+ }
268
268
 
269
- .rf-mockup__traffic-light[data-light="close"] {
270
- background: #ff5f57;
271
- }
269
+ .rf-mockup__traffic-light[data-light="close"] {
270
+ background: #ff5f57;
271
+ }
272
272
 
273
- .rf-mockup__traffic-light[data-light="minimize"] {
274
- background: #febc2e;
275
- }
273
+ .rf-mockup__traffic-light[data-light="minimize"] {
274
+ background: #febc2e;
275
+ }
276
276
 
277
- .rf-mockup__traffic-light[data-light="maximize"] {
278
- background: #28c840;
279
- }
277
+ .rf-mockup__traffic-light[data-light="maximize"] {
278
+ background: #28c840;
279
+ }
280
280
 
281
- /* ── Address bar (browser only) ── */
281
+ /* ── Address bar (browser only) ── */
282
282
 
283
- .rf-mockup__address-bar {
284
- margin: 0 auto;
285
- padding: 0.25rem 0.75rem;
286
- background: rgba(255, 255, 255, 0.08);
287
- border-radius: var(--rf-radius-sm);
288
- }
283
+ .rf-mockup__address-bar {
284
+ margin: 0 auto;
285
+ padding: 0.25rem 0.75rem;
286
+ background: rgba(255, 255, 255, 0.08);
287
+ border-radius: var(--rf-radius-sm);
288
+ }
289
289
 
290
- .rf-mockup__url {
291
- font-size: var(--rf-text-xs);
292
- font-family: var(--rf-font-sans);
293
- color: var(--mockup-chrome-text);
294
- white-space: nowrap;
295
- text-overflow: ellipsis;
296
- }
290
+ .rf-mockup__url {
291
+ font-size: var(--rf-text-xs);
292
+ font-family: var(--rf-font-sans);
293
+ color: var(--mockup-chrome-text);
294
+ white-space: nowrap;
295
+ text-overflow: ellipsis;
296
+ }
297
297
 
298
- /* ── Browser ── */
298
+ /* ── Browser ── */
299
299
 
300
- .rf-mockup--browser .rf-mockup__frame {
301
- width: 100%;
302
- border-radius: var(--rf-radius-lg) var(--rf-radius-lg) 0 0;
303
- overflow: hidden;
304
- }
300
+ .rf-mockup--browser .rf-mockup__frame {
301
+ width: 100%;
302
+ border-radius: var(--rf-radius-lg) var(--rf-radius-lg) 0 0;
303
+ overflow: hidden;
304
+ }
305
305
 
306
- .rf-mockup--browser .rf-mockup__title-bar {
307
- border-radius: var(--rf-radius-lg) var(--rf-radius-lg) 0 0;
308
- }
306
+ .rf-mockup--browser .rf-mockup__title-bar {
307
+ border-radius: var(--rf-radius-lg) var(--rf-radius-lg) 0 0;
308
+ }
309
309
 
310
- .rf-mockup--browser .rf-mockup__viewport {
311
- min-height: 12rem;
312
- border: 1px solid var(--rf-color-border);
313
- border-top: none;
314
- }
310
+ .rf-mockup--browser .rf-mockup__viewport {
311
+ min-height: 12rem;
312
+ border: 1px solid var(--rf-color-border);
313
+ border-top: none;
314
+ }
315
315
 
316
- /* ── Browser dark ── */
316
+ /* ── Browser dark ── */
317
317
 
318
- .rf-mockup--browser-dark .rf-mockup__frame {
319
- width: 100%;
320
- border-radius: var(--rf-radius-lg) var(--rf-radius-lg) 0 0;
321
- overflow: hidden;
322
- }
318
+ .rf-mockup--browser-dark .rf-mockup__frame {
319
+ width: 100%;
320
+ border-radius: var(--rf-radius-lg) var(--rf-radius-lg) 0 0;
321
+ overflow: hidden;
322
+ }
323
323
 
324
- .rf-mockup--browser-dark .rf-mockup__title-bar {
325
- background: #1a1a1a;
326
- border-radius: var(--rf-radius-lg) var(--rf-radius-lg) 0 0;
327
- }
324
+ .rf-mockup--browser-dark .rf-mockup__title-bar {
325
+ background: #1a1a1a;
326
+ border-radius: var(--rf-radius-lg) var(--rf-radius-lg) 0 0;
327
+ }
328
328
 
329
- .rf-mockup--browser-dark .rf-mockup__address-bar {
330
- background: rgba(255, 255, 255, 0.06);
331
- }
329
+ .rf-mockup--browser-dark .rf-mockup__address-bar {
330
+ background: rgba(255, 255, 255, 0.06);
331
+ }
332
332
 
333
- .rf-mockup--browser-dark .rf-mockup__viewport {
334
- min-height: 12rem;
335
- border: 1px solid rgba(255, 255, 255, 0.1);
336
- border-top: none;
337
- }
333
+ .rf-mockup--browser-dark .rf-mockup__viewport {
334
+ min-height: 12rem;
335
+ border: 1px solid rgba(255, 255, 255, 0.1);
336
+ border-top: none;
337
+ }
338
338
 
339
- /* ── MacBook ── */
339
+ /* ── MacBook ── */
340
340
 
341
- .rf-mockup--macbook .rf-mockup__frame {
342
- --mockup-device-width: 1440px;
343
- width: 1440px;
344
- }
341
+ .rf-mockup--macbook .rf-mockup__frame {
342
+ --mockup-device-width: 1440px;
343
+ width: 1440px;
344
+ }
345
345
 
346
- .rf-mockup--macbook .rf-mockup__title-bar {
347
- border-radius: var(--rf-radius-md) var(--rf-radius-md) 0 0;
348
- border: 3px solid var(--mockup-bezel);
349
- border-bottom: none;
350
- }
346
+ .rf-mockup--macbook .rf-mockup__title-bar {
347
+ border-radius: var(--rf-radius-md) var(--rf-radius-md) 0 0;
348
+ border: 3px solid var(--mockup-bezel);
349
+ border-bottom: none;
350
+ }
351
351
 
352
- .rf-mockup--macbook .rf-mockup__viewport {
353
- min-height: 12rem;
354
- border: 3px solid var(--mockup-bezel);
355
- border-top: none;
356
- border-bottom: none;
357
- }
352
+ .rf-mockup--macbook .rf-mockup__viewport {
353
+ min-height: 12rem;
354
+ border: 3px solid var(--mockup-bezel);
355
+ border-top: none;
356
+ border-bottom: none;
357
+ }
358
358
 
359
- /* ── Keyboard ── */
359
+ /* ── Keyboard ── */
360
360
 
361
- .rf-mockup__keyboard {
362
- background: linear-gradient(to bottom, var(--mockup-bezel), color-mix(in srgb, var(--mockup-bezel), #000 15%));
363
- padding: 0.5rem 2rem 0.75rem;
364
- border-radius: 0 0 var(--rf-radius-md) var(--rf-radius-md);
365
- }
361
+ .rf-mockup__keyboard {
362
+ background: linear-gradient(
363
+ to bottom,
364
+ var(--mockup-bezel),
365
+ color-mix(in srgb, var(--mockup-bezel), #000 15%)
366
+ );
367
+ padding: 0.5rem 2rem 0.75rem;
368
+ border-radius: 0 0 var(--rf-radius-md) var(--rf-radius-md);
369
+ }
366
370
 
367
- .rf-mockup__trackpad {
368
- background: color-mix(in srgb, var(--mockup-bezel), #fff 10%);
369
- border-radius: var(--rf-radius-full);
370
- margin-top: 0.25rem;
371
- }
371
+ .rf-mockup__trackpad {
372
+ background: color-mix(in srgb, var(--mockup-bezel), #fff 10%);
373
+ border-radius: var(--rf-radius-full);
374
+ margin-top: 0.25rem;
375
+ }
372
376
 
373
- /* ═══════════════════════════════════════
377
+ /* ═══════════════════════════════════════
374
378
  SPECIAL DEVICES
375
379
  ═══════════════════════════════════════ */
376
380
 
377
- /* ── Watch ── */
381
+ /* ── Watch ── */
378
382
 
379
- .rf-mockup--watch .rf-mockup__frame {
380
- --mockup-device-width: 198px;
381
- width: 198px;
382
- border-radius: 40px;
383
- position: relative;
384
- }
383
+ .rf-mockup--watch .rf-mockup__frame {
384
+ --mockup-device-width: 198px;
385
+ width: 198px;
386
+ border-radius: 40px;
387
+ position: relative;
388
+ }
385
389
 
386
- .rf-mockup--watch .rf-mockup__bezel {
387
- border-radius: 40px;
388
- border: 14px solid var(--mockup-bezel);
389
- }
390
+ .rf-mockup--watch .rf-mockup__bezel {
391
+ border-radius: 40px;
392
+ border: 14px solid var(--mockup-bezel);
393
+ }
390
394
 
391
- .rf-mockup--watch .rf-mockup__bezel::after {
392
- content: '';
393
- position: absolute;
394
- right: -6px;
395
- top: 35%;
396
- width: 6px;
397
- height: 28px;
398
- background: var(--mockup-bezel);
399
- border-radius: 0 3px 3px 0;
400
- }
395
+ .rf-mockup--watch .rf-mockup__bezel::after {
396
+ content: "";
397
+ position: absolute;
398
+ right: -6px;
399
+ top: 35%;
400
+ width: 6px;
401
+ height: 28px;
402
+ background: var(--mockup-bezel);
403
+ border-radius: 0 3px 3px 0;
404
+ }
401
405
 
402
- .rf-mockup--watch .rf-mockup__viewport {
403
- height: 242px;
404
- border-radius: 26px;
405
- }
406
+ .rf-mockup--watch .rf-mockup__viewport {
407
+ height: 242px;
408
+ border-radius: 26px;
409
+ }
406
410
 
407
- /* ── None (no frame) ── */
411
+ /* ── None (no frame) ── */
408
412
 
409
- .rf-mockup--none .rf-mockup__viewport {
410
- border: 1px dashed var(--rf-color-border);
411
- border-radius: var(--rf-radius-sm);
412
- }
413
- .rf-preview .rf-mockup {
414
- margin: 0;
415
- }
413
+ .rf-mockup--none .rf-mockup__viewport {
414
+ border: 1px dashed var(--rf-color-border);
415
+ border-radius: var(--rf-radius-sm);
416
+ }
417
+ .rf-preview .rf-mockup {
418
+ margin: 0;
419
+ }
416
420
 
417
- /* ── Mockup as a media guest ──
421
+ /* ── Mockup as a media guest ──
418
422
  * In a card / bento-cell media zone the mockup sits in the recessed well. Its
419
423
  * `flush` elevation gives it vertical breathing room (padding-block) but leaves
420
424
  * it hugging the well's sides; add matching inline padding so the inset reads
@@ -422,24 +426,23 @@
422
426
  * padding also narrows `100cqi` — and the device, which fills the slot width as
423
427
  * a media guest (skeleton's uncapped frame zoom), then fills the padded box, so
424
428
  * the gap stays even with the top/bottom margin at any slot width. */
425
- [data-section="media"] > .rf-mockup {
426
- padding-inline: var(--rune-padding, var(--rf-spacing-sm));
427
- }
429
+ [data-section="media"] > .rf-mockup {
430
+ padding-inline: var(--rune-padding, var(--rf-spacing-sm));
431
+ }
428
432
 
429
- /* ═══════════════════════════════════════
433
+ /* ═══════════════════════════════════════
430
434
  DARK MODE
431
435
  ═══════════════════════════════════════ */
432
436
 
433
- @media (prefers-color-scheme: dark) {
434
- .rf-mockup--auto {
435
- --mockup-bezel: var(--mockup-bezel-light);
436
- --mockup-chrome: #3a3a3a;
437
- --mockup-chrome-text: #aaa;
438
- }
437
+ @media (prefers-color-scheme: dark) {
438
+ .rf-mockup--auto {
439
+ --mockup-bezel: var(--mockup-bezel-light);
440
+ --mockup-chrome: #3a3a3a;
441
+ --mockup-chrome-text: #aaa;
442
+ }
439
443
 
440
- .rf-mockup--light .rf-mockup__address-bar {
441
- background: rgba(0, 0, 0, 0.15);
444
+ .rf-mockup--light .rf-mockup__address-bar {
445
+ background: rgba(0, 0, 0, 0.15);
446
+ }
442
447
  }
443
448
  }
444
-
445
- }