@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,39 +1,38 @@
1
1
  @layer skin {
2
- /* Table wrapper */
3
- .rf-table-wrapper {
4
- overflow-x: auto;
5
- -webkit-overflow-scrolling: touch;
6
- margin: 1.5rem 0;
7
- }
8
- .rf-table-wrapper table {
9
- margin: 0;
10
- border-collapse: collapse;
11
- width: 100%;
12
- }
13
- .rf-table-wrapper th {
14
- white-space: nowrap;
15
- }
16
- .rf-table-wrapper td {
17
- white-space: nowrap;
18
- }
19
- .rf-table-wrapper td:last-child {
20
- white-space: normal;
21
- min-width: 20rem;
22
- }
23
- .rf-table-wrapper th:first-child,
24
- .rf-table-wrapper td:first-child {
25
- padding-left: 0;
26
- }
27
- .rf-table-wrapper th:last-child,
28
- .rf-table-wrapper td:last-child {
29
- padding-right: 0;
30
- }
31
- .rf-table-wrapper tr:last-child td {
32
- border-bottom: none;
33
- }
34
- .rf-table-wrapper th code,
35
- .rf-table-wrapper td code {
36
- font-size: 1em;
37
- }
38
-
2
+ /* Table wrapper */
3
+ .rf-table-wrapper {
4
+ overflow-x: auto;
5
+ -webkit-overflow-scrolling: touch;
6
+ margin: 1.5rem 0;
7
+ }
8
+ .rf-table-wrapper table {
9
+ margin: 0;
10
+ border-collapse: collapse;
11
+ width: 100%;
12
+ }
13
+ .rf-table-wrapper th {
14
+ white-space: nowrap;
15
+ }
16
+ .rf-table-wrapper td {
17
+ white-space: nowrap;
18
+ }
19
+ .rf-table-wrapper td:last-child {
20
+ white-space: normal;
21
+ min-width: 20rem;
22
+ }
23
+ .rf-table-wrapper th:first-child,
24
+ .rf-table-wrapper td:first-child {
25
+ padding-left: 0;
26
+ }
27
+ .rf-table-wrapper th:last-child,
28
+ .rf-table-wrapper td:last-child {
29
+ padding-right: 0;
30
+ }
31
+ .rf-table-wrapper tr:last-child td {
32
+ border-bottom: none;
33
+ }
34
+ .rf-table-wrapper th code,
35
+ .rf-table-wrapper td code {
36
+ font-size: 1em;
37
+ }
39
38
  }
package/styles/global.css CHANGED
@@ -1,5 +1,5 @@
1
1
  @layer skin {
2
- /* Lumina Theme — Global Base Styles (skin).
2
+ /* Lumina Theme — Global Base Styles (skin).
3
3
  *
4
4
  * Structure (box model, zone resets, prose/heading/list/table rhythm, the
5
5
  * responsive-image + scroll mechanisms) lives in @refrakt-md/skeleton
@@ -7,163 +7,205 @@
7
7
  * typography, colour, native chrome, and the surface treatment of code/pre/
8
8
  * tables. */
9
9
 
10
- html {
11
- font-family: var(--rf-font-sans);
12
- color: var(--rf-color-text);
13
- background: var(--rf-color-bg);
14
- line-height: var(--rf-leading-relaxed);
15
- -webkit-font-smoothing: antialiased;
16
- -moz-osx-font-smoothing: grayscale;
17
- -webkit-text-size-adjust: 100%;
18
- text-size-adjust: 100%;
19
- transition: background-color 200ms ease, color 200ms ease;
20
- /* Opt out of mobile Safari's "text inflation" — it auto-scales text
10
+ html {
11
+ font-family: var(--rf-font-sans);
12
+ color: var(--rf-color-text);
13
+ background: var(--rf-color-bg);
14
+ line-height: var(--rf-leading-relaxed);
15
+ -webkit-font-smoothing: antialiased;
16
+ -moz-osx-font-smoothing: grayscale;
17
+ -webkit-text-size-adjust: 100%;
18
+ text-size-adjust: 100%;
19
+ transition:
20
+ background-color 200ms ease,
21
+ color 200ms ease;
22
+ /* Opt out of mobile Safari's "text inflation" — it auto-scales text
21
23
  * inside elements wider than the viewport (e.g. the diff's
22
24
  * `min-width: 40rem` split panels and any horizontally-scrolling
23
25
  * code block) and makes their fonts read several pixels larger
24
26
  * than designed. */
25
- -webkit-text-size-adjust: 100%;
26
- text-size-adjust: 100%;
27
- }
27
+ -webkit-text-size-adjust: 100%;
28
+ text-size-adjust: 100%;
29
+ }
28
30
 
29
- /* ─── Theme-aware browser chrome (WORK-351) ─────────────────────────
31
+ /* ─── Theme-aware browser chrome (WORK-351) ─────────────────────────
30
32
  * Make native chrome — scrollbars, form controls, the main viewport
31
33
  * scrollbar — follow the active theme instead of always rendering in
32
34
  * the OS default scheme. */
33
35
 
34
- /* `color-scheme` so the UA paints native widgets/scrollbars per mode. */
35
- :root { color-scheme: light; }
36
- [data-theme="dark"] { color-scheme: dark; }
37
- @media (prefers-color-scheme: dark) {
38
- :root:not([data-theme="light"]) { color-scheme: dark; }
39
- }
36
+ /* `color-scheme` so the UA paints native widgets/scrollbars per mode. */
37
+ :root {
38
+ color-scheme: light;
39
+ }
40
+ [data-theme="dark"] {
41
+ color-scheme: dark;
42
+ }
43
+ @media (prefers-color-scheme: dark) {
44
+ :root:not([data-theme="light"]) {
45
+ color-scheme: dark;
46
+ }
47
+ }
40
48
 
41
- /* Branded text selection — a subtle primary wash (the native/OS blue
49
+ /* Branded text selection — a subtle primary wash (the native/OS blue
42
50
  * otherwise leaks through). Background only, so the element's own text
43
51
  * colour stays legible under any theme. */
44
- ::selection {
45
- background: color-mix(in oklch, var(--rf-color-primary) 22%, transparent);
46
- }
52
+ ::selection {
53
+ background: color-mix(in oklch, var(--rf-color-primary) 22%, transparent);
54
+ }
47
55
 
48
- /* Token-driven scrollbars. `scrollbar-color` / `scrollbar-width` inherit,
56
+ /* Token-driven scrollbars. `scrollbar-color` / `scrollbar-width` inherit,
49
57
  * so setting them on the root reaches every overflow container (codegroup,
50
58
  * datatable, drawer body, nav/sidebar) without per-rune rules; the WebKit
51
59
  * pseudo-elements refine the same colours. More specific per-container
52
60
  * rules (e.g. the hidden docs sidebar) still win. */
53
- :root {
54
- scrollbar-width: thin;
55
- scrollbar-color: var(--rf-color-muted) transparent;
56
- }
57
- ::-webkit-scrollbar { width: 10px; height: 10px; }
58
- ::-webkit-scrollbar-track { background: transparent; }
59
- ::-webkit-scrollbar-thumb {
60
- background: var(--rf-color-muted);
61
- border-radius: var(--rf-radius-full);
62
- border: 2px solid transparent;
63
- background-clip: padding-box;
64
- }
65
- ::-webkit-scrollbar-thumb:hover { background: var(--rf-color-text); }
61
+ :root {
62
+ scrollbar-width: thin;
63
+ scrollbar-color: var(--rf-color-muted) transparent;
64
+ }
65
+ ::-webkit-scrollbar {
66
+ width: 10px;
67
+ height: 10px;
68
+ }
69
+ ::-webkit-scrollbar-track {
70
+ background: transparent;
71
+ }
72
+ ::-webkit-scrollbar-thumb {
73
+ background: var(--rf-color-muted);
74
+ border-radius: var(--rf-radius-full);
75
+ border: 2px solid transparent;
76
+ background-clip: padding-box;
77
+ }
78
+ ::-webkit-scrollbar-thumb:hover {
79
+ background: var(--rf-color-text);
80
+ }
66
81
 
67
- /* ─── Keyboard focus (WORK-352) ─────────────────────────────────────
82
+ /* ─── Keyboard focus (WORK-352) ─────────────────────────────────────
68
83
  * A uniform, token-driven focus ring on every interactive element, at
69
84
  * zero specificity (`:where`) so a rune's own `:focus-visible` overrides
70
85
  * it. An outline (not box-shadow) follows border-radius and never shifts
71
86
  * layout; `outline-color` uses `primary`, so it is visible in both modes. */
72
- :where(
73
- a[href], button, input, select, textarea, summary,
74
- [tabindex]:not([tabindex="-1"]),
75
- [role="button"], [role="tab"], [role="link"], [role="menuitem"], [role="menuitemradio"]
76
- ):focus-visible {
77
- outline: 2px solid var(--rf-color-primary);
78
- outline-offset: 2px;
79
- }
87
+ :where(
88
+ a[href],
89
+ button,
90
+ input,
91
+ select,
92
+ textarea,
93
+ summary,
94
+ [tabindex]:not([tabindex="-1"]),
95
+ [role="button"],
96
+ [role="tab"],
97
+ [role="link"],
98
+ [role="menuitem"],
99
+ [role="menuitemradio"]
100
+ ):focus-visible {
101
+ outline: 2px solid var(--rf-color-primary);
102
+ outline-offset: 2px;
103
+ }
80
104
 
81
- /* ─── Reduced motion (WORK-352) ─────────────────────────────────────
105
+ /* ─── Reduced motion (WORK-352) ─────────────────────────────────────
82
106
  * Honour the user's motion preference across every animated rune
83
107
  * (chart, reveal, juxtapose, accordion, drawer, …) in one place. Uses a
84
108
  * near-zero duration rather than `none` so animation/transition end
85
109
  * events still fire for behaviours that await them. */
86
- @media (prefers-reduced-motion: reduce) {
87
- *, *::before, *::after {
88
- animation-duration: 0.01ms !important;
89
- animation-iteration-count: 1 !important;
90
- transition-duration: 0.01ms !important;
91
- scroll-behavior: auto !important;
110
+ @media (prefers-reduced-motion: reduce) {
111
+ *,
112
+ *::before,
113
+ *::after {
114
+ animation-duration: 0.01ms !important;
115
+ animation-iteration-count: 1 !important;
116
+ transition-duration: 0.01ms !important;
117
+ scroll-behavior: auto !important;
118
+ }
92
119
  }
93
- }
94
-
95
- h1, h2, h3, h4, h5, h6 {
96
- line-height: var(--rf-leading-tight);
97
- font-weight: var(--rf-weight-semibold);
98
- letter-spacing: var(--rf-tracking-tight);
99
- }
100
120
 
101
- h1 { font-size: var(--rf-text-3xl); font-weight: var(--rf-weight-bold); letter-spacing: var(--rf-tracking-tight); }
102
- h2 { font-size: var(--rf-text-2xl); }
103
- h3 { font-size: var(--rf-text-xl); }
104
- h4 { font-size: var(--rf-text); }
121
+ h1,
122
+ h2,
123
+ h3,
124
+ h4,
125
+ h5,
126
+ h6 {
127
+ line-height: var(--rf-leading-tight);
128
+ font-weight: var(--rf-weight-semibold);
129
+ letter-spacing: var(--rf-tracking-tight);
130
+ }
105
131
 
106
- a {
107
- color: var(--rf-color-primary);
108
- text-decoration: none;
109
- transition: color 150ms ease;
110
- }
111
- a:hover {
112
- color: var(--rf-color-primary-hover);
113
- text-decoration: underline;
114
- }
132
+ h1 {
133
+ font-size: var(--rf-text-3xl);
134
+ font-weight: var(--rf-weight-bold);
135
+ letter-spacing: var(--rf-tracking-tight);
136
+ }
137
+ h2 {
138
+ font-size: var(--rf-text-2xl);
139
+ }
140
+ h3 {
141
+ font-size: var(--rf-text-xl);
142
+ }
143
+ h4 {
144
+ font-size: var(--rf-text);
145
+ }
115
146
 
116
- strong { font-weight: var(--rf-weight-semibold); }
147
+ a {
148
+ color: var(--rf-color-primary);
149
+ text-decoration: none;
150
+ transition: color 150ms ease;
151
+ }
152
+ a:hover {
153
+ color: var(--rf-color-primary-hover);
154
+ text-decoration: underline;
155
+ }
117
156
 
118
- code {
119
- font-family: var(--rf-font-mono);
120
- font-size: 0.875em;
121
- background: var(--rf-color-inline-code-bg);
122
- padding: 0.15rem 0.4rem;
123
- border-radius: var(--rf-radius-sm);
124
- font-variant-ligatures: none;
125
- }
157
+ strong {
158
+ font-weight: var(--rf-weight-semibold);
159
+ }
126
160
 
127
- pre {
128
- background: var(--rf-color-code-bg);
129
- color: var(--rf-color-code-text);
130
- padding: 1.25rem 1.5rem;
131
- border-radius: var(--rf-radius-md);
132
- font-size: var(--rf-text-sm);
133
- line-height: var(--rf-leading-relaxed);
134
- border: 1px solid var(--rf-color-border);
135
- }
161
+ code {
162
+ font-family: var(--rf-font-mono);
163
+ font-size: 0.875em;
164
+ background: var(--rf-color-inline-code-bg);
165
+ padding: 0.15rem 0.4rem;
166
+ border-radius: var(--rf-radius-sm);
167
+ font-variant-ligatures: none;
168
+ }
136
169
 
137
- pre code {
138
- background: none;
139
- padding: 0;
140
- font-size: inherit;
141
- border-radius: 0;
142
- }
170
+ pre {
171
+ background: var(--rf-color-code-bg);
172
+ color: var(--rf-color-code-text);
173
+ padding: 1.25rem 1.5rem;
174
+ border-radius: var(--rf-radius-md);
175
+ font-size: var(--rf-text-sm);
176
+ line-height: var(--rf-leading-relaxed);
177
+ border: 1px solid var(--rf-color-border);
178
+ }
143
179
 
144
- hr {
145
- border: none;
146
- border-top: 1px solid var(--rf-color-border);
147
- }
180
+ pre code {
181
+ background: none;
182
+ padding: 0;
183
+ font-size: inherit;
184
+ border-radius: 0;
185
+ }
148
186
 
149
- table {
150
- font-size: var(--rf-text-sm);
151
- }
187
+ hr {
188
+ border: none;
189
+ border-top: 1px solid var(--rf-color-border);
190
+ }
152
191
 
153
- th {
154
- text-align: left;
155
- font-weight: var(--rf-weight-semibold);
156
- padding: 0.625rem 1rem;
157
- border-bottom: 1px solid var(--rf-color-border);
158
- font-size: var(--rf-text-xs);
159
- text-transform: uppercase;
160
- letter-spacing: var(--rf-tracking-wide);
161
- color: var(--rf-color-muted);
162
- }
192
+ table {
193
+ font-size: var(--rf-text-sm);
194
+ }
163
195
 
164
- td {
165
- padding: 0.625rem 1rem;
166
- border-bottom: 1px solid var(--rf-color-border);
167
- }
196
+ th {
197
+ text-align: left;
198
+ font-weight: var(--rf-weight-semibold);
199
+ padding: 0.625rem 1rem;
200
+ border-bottom: 1px solid var(--rf-color-border);
201
+ font-size: var(--rf-text-xs);
202
+ text-transform: uppercase;
203
+ letter-spacing: var(--rf-tracking-wide);
204
+ color: var(--rf-color-muted);
205
+ }
168
206
 
207
+ td {
208
+ padding: 0.625rem 1rem;
209
+ border-bottom: 1px solid var(--rf-color-border);
210
+ }
169
211
  }