@refrakt-md/lumina 0.32.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.
- package/base.css +29 -29
- package/contracts/structures.json +58 -60
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/icons.d.ts.map +1 -1
- package/dist/icons.js +57 -57
- package/dist/icons.js.map +1 -1
- package/dist/presets/catppuccin.js.map +1 -1
- package/dist/presets/dracula.js.map +1 -1
- package/dist/presets/gruvbox.js.map +1 -1
- package/dist/presets/niwaki.js.map +1 -1
- package/dist/presets/nord.js.map +1 -1
- package/dist/presets/one-dark.js.map +1 -1
- package/dist/presets/solarized.js.map +1 -1
- package/dist/presets/tideline.d.ts.map +1 -1
- package/dist/presets/tideline.js +20 -4
- package/dist/presets/tideline.js.map +1 -1
- package/dist/presets/tokyo-night.js.map +1 -1
- package/dist/tokens.js.map +1 -1
- package/index.css +124 -124
- package/package.json +5 -5
- package/presets.json +61 -13
- package/styles/base/attributes.css +32 -13
- package/styles/dimensions/checklist.css +45 -46
- package/styles/dimensions/cover.css +71 -51
- package/styles/dimensions/density.css +69 -65
- package/styles/dimensions/frame.css +116 -57
- package/styles/dimensions/metadata.css +110 -103
- package/styles/dimensions/motion.css +42 -13
- package/styles/dimensions/reading.css +27 -27
- package/styles/dimensions/sections.css +44 -45
- package/styles/dimensions/sequence.css +56 -57
- package/styles/dimensions/state.css +8 -2
- package/styles/dimensions/substrate.css +82 -58
- package/styles/dimensions/surfaces.css +65 -62
- package/styles/elements/blockquote.css +24 -25
- package/styles/elements/code.css +72 -71
- package/styles/elements/table.css +36 -37
- package/styles/global.css +163 -121
- package/styles/layouts/blog.css +219 -218
- package/styles/layouts/default.css +168 -167
- package/styles/layouts/docs.css +121 -122
- package/styles/layouts/mobile.css +54 -55
- package/styles/layouts/on-this-page.css +46 -47
- package/styles/layouts/plan.css +248 -247
- package/styles/layouts/search.css +142 -140
- package/styles/layouts/split.css +45 -45
- package/styles/layouts/theme-toggle.css +33 -31
- package/styles/layouts/version-switcher.css +38 -37
- package/styles/runes/accordion.css +90 -81
- package/styles/runes/aggregate.css +50 -39
- package/styles/runes/annotate.css +46 -45
- package/styles/runes/api.css +22 -23
- package/styles/runes/audio.css +140 -141
- package/styles/runes/badge.css +12 -13
- package/styles/runes/bar.css +4 -5
- package/styles/runes/bento.css +73 -62
- package/styles/runes/bg.css +62 -47
- package/styles/runes/blog.css +89 -90
- package/styles/runes/bond.css +49 -50
- package/styles/runes/breadcrumb.css +34 -35
- package/styles/runes/budget.css +126 -127
- package/styles/runes/bug.css +28 -27
- package/styles/runes/card.css +63 -60
- package/styles/runes/carousel.css +15 -15
- package/styles/runes/cast.css +50 -51
- package/styles/runes/changelog.css +45 -46
- package/styles/runes/character.css +31 -32
- package/styles/runes/chart.css +194 -106
- package/styles/runes/codegroup.css +109 -100
- package/styles/runes/collection.css +87 -86
- package/styles/runes/compare.css +38 -39
- package/styles/runes/comparison.css +205 -179
- package/styles/runes/conversation.css +36 -33
- package/styles/runes/cta.css +135 -132
- package/styles/runes/datatable.css +84 -83
- package/styles/runes/decision.css +25 -26
- package/styles/runes/design-context.css +21 -23
- package/styles/runes/details.css +26 -27
- package/styles/runes/diagram.css +28 -29
- package/styles/runes/diff.css +75 -72
- package/styles/runes/drawer.css +276 -198
- package/styles/runes/embed.css +20 -21
- package/styles/runes/event.css +35 -36
- package/styles/runes/expand.css +43 -34
- package/styles/runes/faction.css +47 -48
- package/styles/runes/feature.css +119 -112
- package/styles/runes/figure.css +11 -12
- package/styles/runes/file-ref.css +11 -13
- package/styles/runes/form.css +155 -154
- package/styles/runes/gallery.css +59 -60
- package/styles/runes/grid.css +10 -7
- package/styles/runes/hero.css +189 -185
- package/styles/runes/hint.css +57 -58
- package/styles/runes/howto.css +62 -64
- package/styles/runes/itinerary.css +133 -134
- package/styles/runes/juxtapose.css +83 -82
- package/styles/runes/lore.css +32 -34
- package/styles/runes/map.css +106 -99
- package/styles/runes/mediatext.css +30 -27
- package/styles/runes/milestone.css +98 -97
- package/styles/runes/mockup.css +338 -335
- package/styles/runes/nav.css +465 -450
- package/styles/runes/organization.css +23 -20
- package/styles/runes/page-section.css +14 -15
- package/styles/runes/pagination.css +45 -44
- package/styles/runes/palette.css +78 -80
- package/styles/runes/placeholder.css +8 -9
- package/styles/runes/plan-history.css +160 -161
- package/styles/runes/plan-progress.css +15 -16
- package/styles/runes/plan-ref.css +32 -23
- package/styles/runes/playlist.css +106 -107
- package/styles/runes/plot.css +92 -91
- package/styles/runes/preview.css +152 -149
- package/styles/runes/pricing.css +133 -123
- package/styles/runes/progress.css +32 -27
- package/styles/runes/pullquote.css +89 -90
- package/styles/runes/realm.css +47 -48
- package/styles/runes/recipe.css +112 -114
- package/styles/runes/relationships.css +77 -76
- package/styles/runes/reveal.css +90 -79
- package/styles/runes/sandbox.css +59 -60
- package/styles/runes/section.css +57 -50
- package/styles/runes/showcase.css +35 -16
- package/styles/runes/sidenote.css +30 -27
- package/styles/runes/snippet.css +8 -9
- package/styles/runes/spacing.css +86 -88
- package/styles/runes/spec.css +24 -25
- package/styles/runes/steps.css +89 -80
- package/styles/runes/storyboard.css +46 -45
- package/styles/runes/swatch.css +22 -23
- package/styles/runes/symbol.css +117 -118
- package/styles/runes/tabs.css +88 -79
- package/styles/runes/testimonial.css +43 -44
- package/styles/runes/textblock.css +32 -28
- package/styles/runes/timeline.css +63 -64
- package/styles/runes/tint.css +214 -215
- package/styles/runes/toc.css +40 -41
- package/styles/runes/track.css +89 -90
- package/styles/runes/typography.css +89 -91
- package/styles/runes/work.css +47 -36
- package/styles/runes/xref.css +21 -22
package/styles/runes/hero.css
CHANGED
|
@@ -1,214 +1,218 @@
|
|
|
1
1
|
@layer skin {
|
|
2
|
-
/* Hero — skin. The relative root, preamble/eyebrow/actions/button layout + their
|
|
2
|
+
/* Hero — skin. The relative root, preamble/eyebrow/actions/button layout + their
|
|
3
3
|
* auto-margin alignment + mobile stack, the media-position flip, the responsive
|
|
4
4
|
* image box, and the cover-band height/containment authority live in
|
|
5
5
|
* @refrakt-md/skeleton (styles/runes/hero.css). What remains here is skin:
|
|
6
6
|
* spacing, type, the headline gradient, surface chrome, the scrim, radii, and
|
|
7
7
|
* text-align. */
|
|
8
|
-
/* The hero rests above the --rf-text scale's top step (4xl = 2.5rem); stated
|
|
8
|
+
/* The hero rests above the --rf-text scale's top step (4xl = 2.5rem); stated
|
|
9
9
|
* here rather than promoted to a --rf-text-5xl token, because the type scale is
|
|
10
10
|
* a typed contract every theme must satisfy (SPEC-048) and one rune's one-off
|
|
11
11
|
* does not belong in it. The prominence ramp scales around this value. */
|
|
12
|
-
.rf-hero {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
.rf-hero__preamble {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
/* Higher specificity needed to override .rf-hero p (0,1,1) */
|
|
23
|
-
.rf-hero .rf-hero__eyebrow {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
/* Pill-badge variant when eyebrow contains a link */
|
|
33
|
-
.rf-hero .rf-hero__eyebrow:has(a) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
.rf-hero .rf-hero__eyebrow:has(a):hover {
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
.rf-hero .rf-hero__eyebrow:has(a) a {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
.rf-hero .rf-hero__eyebrow:has(a) a::before {
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
.rf-hero__image {
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
.rf-hero__actions {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
.rf-hero[data-align="center"] .rf-hero__preamble,
|
|
62
|
-
.rf-hero[data-align="center"] > h1,
|
|
63
|
-
.rf-hero[data-align="center"] > p {
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
.rf-hero[data-align="left"] .rf-hero__preamble,
|
|
67
|
-
.rf-hero[data-align="left"] > h1,
|
|
68
|
-
.rf-hero[data-align="left"] > p {
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
.rf-hero[data-align="right"] .rf-hero__preamble,
|
|
72
|
-
.rf-hero[data-align="right"] > h1,
|
|
73
|
-
.rf-hero[data-align="right"] > p {
|
|
74
|
-
|
|
75
|
-
}
|
|
76
|
-
.rf-hero__actions pre {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
86
|
-
.rf-hero h1,
|
|
87
|
-
.rf-hero__headline {
|
|
88
|
-
|
|
12
|
+
.rf-hero {
|
|
13
|
+
--rf-title-size: 3.25rem;
|
|
14
|
+
padding: 7rem 2rem 6.5rem;
|
|
15
|
+
background-size: cover;
|
|
16
|
+
background-position: center;
|
|
17
|
+
}
|
|
18
|
+
.rf-hero__preamble {
|
|
19
|
+
gap: 0.25rem;
|
|
20
|
+
margin-bottom: 2rem;
|
|
21
|
+
}
|
|
22
|
+
/* Higher specificity needed to override .rf-hero p (0,1,1) */
|
|
23
|
+
.rf-hero .rf-hero__eyebrow {
|
|
24
|
+
font-size: var(--rf-text-sm);
|
|
25
|
+
font-weight: var(--rf-weight-semibold);
|
|
26
|
+
letter-spacing: var(--rf-tracking-wider);
|
|
27
|
+
text-transform: uppercase;
|
|
28
|
+
color: var(--rf-color-primary);
|
|
29
|
+
margin: 0 0 1rem;
|
|
30
|
+
max-width: none;
|
|
31
|
+
}
|
|
32
|
+
/* Pill-badge variant when eyebrow contains a link */
|
|
33
|
+
.rf-hero .rf-hero__eyebrow:has(a) {
|
|
34
|
+
padding: 0.25rem 0.875rem;
|
|
35
|
+
border: 1px solid var(--rf-color-border);
|
|
36
|
+
border-radius: var(--rf-radius-full);
|
|
37
|
+
color: var(--rf-color-text);
|
|
38
|
+
font-weight: var(--rf-weight-normal);
|
|
39
|
+
text-transform: none;
|
|
40
|
+
letter-spacing: var(--rf-tracking-normal);
|
|
41
|
+
transition: border-color 150ms ease;
|
|
42
|
+
}
|
|
43
|
+
.rf-hero .rf-hero__eyebrow:has(a):hover {
|
|
44
|
+
border-color: var(--rf-color-muted);
|
|
45
|
+
}
|
|
46
|
+
.rf-hero .rf-hero__eyebrow:has(a) a {
|
|
47
|
+
color: var(--rf-color-primary);
|
|
48
|
+
font-weight: var(--rf-weight-semibold);
|
|
49
|
+
text-decoration: none;
|
|
50
|
+
}
|
|
51
|
+
.rf-hero .rf-hero__eyebrow:has(a) a::before {
|
|
52
|
+
border-radius: inherit;
|
|
53
|
+
}
|
|
54
|
+
.rf-hero__image {
|
|
55
|
+
margin-bottom: 1.5rem;
|
|
56
|
+
}
|
|
57
|
+
.rf-hero__actions {
|
|
58
|
+
max-width: 720px;
|
|
59
|
+
gap: 0.75rem;
|
|
60
|
+
}
|
|
61
|
+
.rf-hero[data-align="center"] .rf-hero__preamble,
|
|
62
|
+
.rf-hero[data-align="center"] > h1,
|
|
63
|
+
.rf-hero[data-align="center"] > p {
|
|
64
|
+
text-align: center;
|
|
65
|
+
}
|
|
66
|
+
.rf-hero[data-align="left"] .rf-hero__preamble,
|
|
67
|
+
.rf-hero[data-align="left"] > h1,
|
|
68
|
+
.rf-hero[data-align="left"] > p {
|
|
69
|
+
text-align: left;
|
|
70
|
+
}
|
|
71
|
+
.rf-hero[data-align="right"] .rf-hero__preamble,
|
|
72
|
+
.rf-hero[data-align="right"] > h1,
|
|
73
|
+
.rf-hero[data-align="right"] > p {
|
|
74
|
+
text-align: right;
|
|
75
|
+
}
|
|
76
|
+
.rf-hero__actions pre {
|
|
77
|
+
margin: 0;
|
|
78
|
+
padding: 0.7rem 1.75rem;
|
|
79
|
+
font-size: var(--rf-text);
|
|
80
|
+
border-radius: var(--rf-radius-sm);
|
|
81
|
+
background: var(--rf-color-code-bg);
|
|
82
|
+
color: var(--rf-color-code-text);
|
|
83
|
+
border: 1px solid var(--rf-color-border);
|
|
84
|
+
white-space: nowrap;
|
|
85
|
+
}
|
|
86
|
+
.rf-hero h1,
|
|
87
|
+
.rf-hero__headline {
|
|
88
|
+
/* WORK-538 — read the prominence override first; the fallback is this rune's
|
|
89
89
|
* resting size, stated as --rf-title-size on the root so the prominence ramp
|
|
90
90
|
* can compute from it. */
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}
|
|
101
|
-
/* Higher specificity needed to override .rf-hero p (0,1,1) */
|
|
102
|
-
.rf-hero p,
|
|
103
|
-
.rf-hero .rf-hero__blurb {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
}
|
|
110
|
-
.rf-hero[data-align="center"] > p,
|
|
111
|
-
.rf-hero[data-align="center"] .rf-hero__blurb {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
}
|
|
115
|
-
.rf-hero ul,
|
|
116
|
-
.rf-hero nav {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
121
|
-
.rf-hero li {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
}
|
|
125
|
-
.rf-hero li a,
|
|
126
|
-
.rf-hero nav a {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
}
|
|
134
|
-
.rf-hero li:first-child a {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}
|
|
139
|
-
.rf-hero li:first-child a:hover {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
}
|
|
145
|
-
.rf-hero li:not(:first-child) a {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
}
|
|
150
|
-
.rf-hero li:not(:first-child) a:hover {
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
}
|
|
155
|
-
.rf-hero__media {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
}
|
|
159
|
-
/* Rune-guest chrome handling (don't round a sandbox / codegroup / juxtapose) is
|
|
91
|
+
font-size: var(--rf-prominence-size, var(--rf-title-size));
|
|
92
|
+
font-weight: var(--rf-weight-bold);
|
|
93
|
+
letter-spacing: var(--rf-tracking-tight);
|
|
94
|
+
line-height: var(--rf-leading-tight);
|
|
95
|
+
margin: 0 0 1rem;
|
|
96
|
+
background: linear-gradient(135deg, var(--rf-color-text) 0%, var(--rf-color-muted) 100%);
|
|
97
|
+
-webkit-background-clip: text;
|
|
98
|
+
-webkit-text-fill-color: transparent;
|
|
99
|
+
background-clip: text;
|
|
100
|
+
}
|
|
101
|
+
/* Higher specificity needed to override .rf-hero p (0,1,1) */
|
|
102
|
+
.rf-hero p,
|
|
103
|
+
.rf-hero .rf-hero__blurb {
|
|
104
|
+
font-size: var(--rf-text-xl);
|
|
105
|
+
line-height: var(--rf-leading-relaxed);
|
|
106
|
+
color: var(--rf-color-muted);
|
|
107
|
+
margin: 0 0 2rem;
|
|
108
|
+
max-width: 40rem;
|
|
109
|
+
}
|
|
110
|
+
.rf-hero[data-align="center"] > p,
|
|
111
|
+
.rf-hero[data-align="center"] .rf-hero__blurb {
|
|
112
|
+
max-width: 560px;
|
|
113
|
+
margin-bottom: 2rem;
|
|
114
|
+
}
|
|
115
|
+
.rf-hero ul,
|
|
116
|
+
.rf-hero nav {
|
|
117
|
+
gap: 0.75rem;
|
|
118
|
+
padding: 0;
|
|
119
|
+
margin: 0;
|
|
120
|
+
}
|
|
121
|
+
.rf-hero li {
|
|
122
|
+
padding: 0;
|
|
123
|
+
margin: 0;
|
|
124
|
+
}
|
|
125
|
+
.rf-hero li a,
|
|
126
|
+
.rf-hero nav a {
|
|
127
|
+
padding: 0.7rem 1.75rem;
|
|
128
|
+
border-radius: var(--rf-radius-sm);
|
|
129
|
+
text-decoration: none;
|
|
130
|
+
font-weight: var(--rf-weight-semibold);
|
|
131
|
+
font-size: var(--rf-text);
|
|
132
|
+
transition: all 200ms ease;
|
|
133
|
+
}
|
|
134
|
+
.rf-hero li:first-child a {
|
|
135
|
+
background: var(--rf-color-primary);
|
|
136
|
+
color: white;
|
|
137
|
+
box-shadow: var(--rf-shadow-sm);
|
|
138
|
+
}
|
|
139
|
+
.rf-hero li:first-child a:hover {
|
|
140
|
+
background: var(--rf-color-primary-hover);
|
|
141
|
+
box-shadow: var(--rf-shadow-md);
|
|
142
|
+
transform: translateY(-1px);
|
|
143
|
+
text-decoration: none;
|
|
144
|
+
}
|
|
145
|
+
.rf-hero li:not(:first-child) a {
|
|
146
|
+
background: var(--rf-color-surface);
|
|
147
|
+
color: var(--rf-color-text);
|
|
148
|
+
border: 1px solid var(--rf-color-border);
|
|
149
|
+
}
|
|
150
|
+
.rf-hero li:not(:first-child) a:hover {
|
|
151
|
+
background: var(--rf-color-surface-hover);
|
|
152
|
+
border-color: var(--rf-color-surface-active);
|
|
153
|
+
text-decoration: none;
|
|
154
|
+
}
|
|
155
|
+
.rf-hero__media {
|
|
156
|
+
margin-top: 3rem;
|
|
157
|
+
border-radius: var(--rf-radius-lg);
|
|
158
|
+
}
|
|
159
|
+
/* Rune-guest chrome handling (don't round a sandbox / codegroup / juxtapose) is
|
|
160
160
|
* the shared `data-guest-fit="bleed"` behaviour — see layouts/split.css. The
|
|
161
161
|
* hero only sets the image radius tier here. */
|
|
162
|
-
.rf-hero[data-media-position="top"] > .rf-hero__media {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
}
|
|
166
|
-
.rf-hero__media pre {
|
|
167
|
-
|
|
168
|
-
}
|
|
162
|
+
.rf-hero[data-media-position="top"] > .rf-hero__media {
|
|
163
|
+
margin-top: 0;
|
|
164
|
+
margin-bottom: 3rem;
|
|
165
|
+
}
|
|
166
|
+
.rf-hero__media pre {
|
|
167
|
+
margin: 0;
|
|
168
|
+
}
|
|
169
169
|
|
|
170
|
-
/* ── Cover mode (SPEC-101) — skin (the height/containment authority is skeleton).
|
|
170
|
+
/* ── Cover mode (SPEC-101) — skin (the height/containment authority is skeleton).
|
|
171
171
|
* The section's generous padding moves to the overlaid content — on the root it
|
|
172
172
|
* would inset the media well (the backdrop must be flush with the band). */
|
|
173
|
-
.rf-hero--cover {
|
|
174
|
-
|
|
175
|
-
}
|
|
176
|
-
.rf-hero--cover > [data-name="content"] {
|
|
177
|
-
|
|
178
|
-
}
|
|
173
|
+
.rf-hero--cover {
|
|
174
|
+
padding: 0;
|
|
175
|
+
}
|
|
176
|
+
.rf-hero--cover > [data-name="content"] {
|
|
177
|
+
--rune-padding: 7rem 2rem 6.5rem;
|
|
178
|
+
}
|
|
179
179
|
|
|
180
|
-
/* Mobile: the desktop overlay padding (7rem bands) would eat most of the well
|
|
180
|
+
/* Mobile: the desktop overlay padding (7rem bands) would eat most of the well
|
|
181
181
|
* on a phone — tighten it so the content fits the band. */
|
|
182
|
-
@media (max-width: 640px) {
|
|
183
|
-
|
|
184
|
-
|
|
182
|
+
@media (max-width: 640px) {
|
|
183
|
+
.rf-hero--cover > [data-name="content"] {
|
|
184
|
+
--rune-padding: 3.5rem 1.25rem 3rem;
|
|
185
|
+
}
|
|
185
186
|
}
|
|
186
|
-
}
|
|
187
187
|
|
|
188
|
-
/* A full-bleed band sits flush — no media radius on the well. */
|
|
189
|
-
.rf-hero--cover > [data-section="media"] {
|
|
190
|
-
|
|
191
|
-
}
|
|
188
|
+
/* A full-bleed band sits flush — no media radius on the well. */
|
|
189
|
+
.rf-hero--cover > [data-section="media"] {
|
|
190
|
+
border-radius: 0;
|
|
191
|
+
}
|
|
192
192
|
|
|
193
|
-
/* Legibility over the scrim: the primary action hard-codes white text above,
|
|
193
|
+
/* Legibility over the scrim: the primary action hard-codes white text above,
|
|
194
194
|
* which inverts to white-on-near-white once the cover scheme flips
|
|
195
195
|
* --rf-color-primary on the dark overlay. Use the scheme's tokens instead. */
|
|
196
|
-
.rf-hero--cover li:first-child a {
|
|
197
|
-
|
|
198
|
-
}
|
|
196
|
+
.rf-hero--cover li:first-child a {
|
|
197
|
+
color: var(--rf-color-on-accent, var(--rf-color-bg));
|
|
198
|
+
}
|
|
199
199
|
|
|
200
|
-
/* The default cover scrim is edge-weighted (a caption-strip treatment); under
|
|
200
|
+
/* The default cover scrim is edge-weighted (a caption-strip treatment); under
|
|
201
201
|
* the centred band it would leave the headline on undarkened media. With no
|
|
202
202
|
* explicit `content-place`, darken the well evenly (slightly bottom-weighted). */
|
|
203
|
-
.rf-hero--cover:is([data-content-place="auto"], :not([data-content-place])):not(
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
max-width: none;
|
|
203
|
+
.rf-hero--cover:is([data-content-place="auto"], :not([data-content-place])):not(
|
|
204
|
+
[data-scrim="none"]
|
|
205
|
+
) > [data-section="media"]::after {
|
|
206
|
+
background-image: var(
|
|
207
|
+
--cover-scrim-image,
|
|
208
|
+
linear-gradient(rgb(0 0 0 / 0.45), rgb(0 0 0 / 0.35) 50%, rgb(0 0 0 / 0.55))
|
|
209
|
+
);
|
|
211
210
|
}
|
|
212
|
-
}
|
|
213
211
|
|
|
212
|
+
/* Mobile: stack actions full-width so the code block and button line up */
|
|
213
|
+
@media (max-width: 640px) {
|
|
214
|
+
.rf-hero__actions {
|
|
215
|
+
max-width: none;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
214
218
|
}
|
package/styles/runes/hint.css
CHANGED
|
@@ -1,67 +1,66 @@
|
|
|
1
1
|
@layer skin {
|
|
2
|
-
/* Hint — skin. The sunken surface chrome (fill, border, radius) comes from
|
|
2
|
+
/* Hint — skin. The sunken surface chrome (fill, border, radius) comes from
|
|
3
3
|
* dimensions/surfaces.css via defaultElevation: 'sunken'; only the bespoke
|
|
4
4
|
* padding stays here so the icon+title+body breathes wider than --rune-padding
|
|
5
5
|
* at compact density. The header layout + icon-glyph box mechanism live in
|
|
6
6
|
* @refrakt-md/skeleton (styles/runes/hint.css). */
|
|
7
|
-
.rf-hint {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
.rf-hint__header {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
.rf-hint__header > span {
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
.rf-hint__header [data-icon-group="hint"]::before {
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
.rf-hint__header [data-meta-value] {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
.rf-hint__body {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
-
.rf-hint__body p:last-child {
|
|
32
|
-
|
|
33
|
-
}
|
|
34
|
-
/* Per-variant colour drives the icon and title only — surface stays
|
|
7
|
+
.rf-hint {
|
|
8
|
+
--hint-color: var(--rf-color-info);
|
|
9
|
+
padding: var(--rf-spacing-snug) var(--rf-spacing-cozy);
|
|
10
|
+
}
|
|
11
|
+
.rf-hint__header {
|
|
12
|
+
margin-bottom: var(--rf-spacing-xs);
|
|
13
|
+
color: var(--hint-color);
|
|
14
|
+
}
|
|
15
|
+
.rf-hint__header > span {
|
|
16
|
+
gap: var(--rf-spacing-xs);
|
|
17
|
+
}
|
|
18
|
+
.rf-hint__header [data-icon-group="hint"]::before {
|
|
19
|
+
background-color: var(--hint-color);
|
|
20
|
+
}
|
|
21
|
+
.rf-hint__header [data-meta-value] {
|
|
22
|
+
font-weight: var(--rf-weight-semibold);
|
|
23
|
+
text-transform: capitalize;
|
|
24
|
+
font-size: var(--rf-text-xs);
|
|
25
|
+
letter-spacing: var(--rf-tracking-wide);
|
|
26
|
+
}
|
|
27
|
+
.rf-hint__body {
|
|
28
|
+
font-size: var(--rf-text-sm);
|
|
29
|
+
line-height: var(--rf-leading-relaxed);
|
|
30
|
+
}
|
|
31
|
+
.rf-hint__body p:last-child {
|
|
32
|
+
margin-bottom: 0;
|
|
33
|
+
}
|
|
34
|
+
/* Per-variant colour drives the icon and title only — surface stays
|
|
35
35
|
neutral so the hint reads as a quiet panel, not a saturated banner. */
|
|
36
|
-
.rf-hint--note {
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
.rf-hint--warning {
|
|
40
|
-
|
|
41
|
-
}
|
|
42
|
-
.rf-hint--caution {
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
.rf-hint--check {
|
|
46
|
-
|
|
47
|
-
}
|
|
36
|
+
.rf-hint--note {
|
|
37
|
+
--hint-color: var(--rf-color-info);
|
|
38
|
+
}
|
|
39
|
+
.rf-hint--warning {
|
|
40
|
+
--hint-color: var(--rf-color-warning);
|
|
41
|
+
}
|
|
42
|
+
.rf-hint--caution {
|
|
43
|
+
--hint-color: var(--rf-color-danger);
|
|
44
|
+
}
|
|
45
|
+
.rf-hint--check {
|
|
46
|
+
--hint-color: var(--rf-color-success);
|
|
47
|
+
}
|
|
48
48
|
|
|
49
|
-
/* Context-aware: compact hint when nested inside a hero */
|
|
50
|
-
.rf-hint--in-hero {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
.rf-hint--in-hero .rf-hint__header {
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/* Context-aware: hint inside a feature block */
|
|
61
|
-
.rf-hint--in-feature {
|
|
62
|
-
margin: var(--rf-spacing-snug) 0 0;
|
|
63
|
-
padding: var(--rf-spacing-sm) var(--rf-spacing-snug);
|
|
64
|
-
font-size: var(--rf-text-sm);
|
|
65
|
-
}
|
|
49
|
+
/* Context-aware: compact hint when nested inside a hero */
|
|
50
|
+
.rf-hint--in-hero {
|
|
51
|
+
margin: var(--rf-spacing-cozy) 0 0;
|
|
52
|
+
padding: var(--rf-spacing-sm) var(--rf-spacing-cozy);
|
|
53
|
+
border-radius: var(--rf-radius-sm);
|
|
54
|
+
font-size: var(--rf-text-sm);
|
|
55
|
+
}
|
|
56
|
+
.rf-hint--in-hero .rf-hint__header {
|
|
57
|
+
margin-bottom: var(--rf-spacing-xs);
|
|
58
|
+
}
|
|
66
59
|
|
|
60
|
+
/* Context-aware: hint inside a feature block */
|
|
61
|
+
.rf-hint--in-feature {
|
|
62
|
+
margin: var(--rf-spacing-snug) 0 0;
|
|
63
|
+
padding: var(--rf-spacing-sm) var(--rf-spacing-snug);
|
|
64
|
+
font-size: var(--rf-text-sm);
|
|
65
|
+
}
|
|
67
66
|
}
|
package/styles/runes/howto.css
CHANGED
|
@@ -1,71 +1,69 @@
|
|
|
1
1
|
@layer skin {
|
|
2
|
-
/* HowTo — matches recipe design */
|
|
2
|
+
/* HowTo — matches recipe design */
|
|
3
3
|
|
|
4
|
-
/* Tools/materials list — surfaced zone with primary markers */
|
|
5
|
-
.rf-howto__content ul {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
.rf-howto__content ul li {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
.rf-howto__content ul li::marker {
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/* Steps — numbered with styled counters */
|
|
22
|
-
.rf-howto__content ol {
|
|
23
|
-
padding-left: 0;
|
|
24
|
-
margin: 0;
|
|
25
|
-
}
|
|
26
|
-
.rf-howto__content ol > li {
|
|
27
|
-
padding: 0.625rem 0;
|
|
28
|
-
padding-left: 2.25rem;
|
|
29
|
-
line-height: var(--rf-leading-relaxed);
|
|
30
|
-
}
|
|
31
|
-
.rf-howto__content ol > li + li {
|
|
32
|
-
border-top: 1px solid var(--rf-color-border);
|
|
33
|
-
}
|
|
34
|
-
.rf-howto__content ol > li::before {
|
|
35
|
-
font-size: var(--rf-text-xs);
|
|
36
|
-
font-weight: var(--rf-weight-bold);
|
|
37
|
-
color: var(--rf-color-primary);
|
|
38
|
-
background: var(--rf-color-surface);
|
|
39
|
-
border-radius: var(--rf-radius-full);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
.rf-howto__content ol > li > p,
|
|
43
|
-
.rf-howto__content ul > li > p {
|
|
44
|
-
margin: 0;
|
|
45
|
-
}
|
|
4
|
+
/* Tools/materials list — surfaced zone with primary markers */
|
|
5
|
+
.rf-howto__content ul {
|
|
6
|
+
background: var(--rf-color-surface);
|
|
7
|
+
border: 1px solid var(--rf-color-border);
|
|
8
|
+
border-radius: var(--rf-radius-md);
|
|
9
|
+
padding: 1.25rem 1.25rem 1.25rem 2.5rem;
|
|
10
|
+
margin: 0 0 1.75rem;
|
|
11
|
+
list-style: disc;
|
|
12
|
+
}
|
|
13
|
+
.rf-howto__content ul li {
|
|
14
|
+
padding: 0.2rem 0;
|
|
15
|
+
line-height: var(--rf-leading-relaxed);
|
|
16
|
+
}
|
|
17
|
+
.rf-howto__content ul li::marker {
|
|
18
|
+
color: var(--rf-color-primary);
|
|
19
|
+
}
|
|
46
20
|
|
|
47
|
-
/*
|
|
48
|
-
.rf-howto__content
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
border: none;
|
|
21
|
+
/* Steps — numbered with styled counters */
|
|
22
|
+
.rf-howto__content ol {
|
|
23
|
+
padding-left: 0;
|
|
24
|
+
margin: 0;
|
|
25
|
+
}
|
|
26
|
+
.rf-howto__content ol > li {
|
|
27
|
+
padding: 0.625rem 0;
|
|
28
|
+
padding-left: 2.25rem;
|
|
29
|
+
line-height: var(--rf-leading-relaxed);
|
|
30
|
+
}
|
|
31
|
+
.rf-howto__content ol > li + li {
|
|
32
|
+
border-top: 1px solid var(--rf-color-border);
|
|
33
|
+
}
|
|
34
|
+
.rf-howto__content ol > li::before {
|
|
35
|
+
font-size: var(--rf-text-xs);
|
|
36
|
+
font-weight: var(--rf-weight-bold);
|
|
37
|
+
color: var(--rf-color-primary);
|
|
38
|
+
background: var(--rf-color-surface);
|
|
39
|
+
border-radius: var(--rf-radius-full);
|
|
67
40
|
}
|
|
68
|
-
}
|
|
69
41
|
|
|
42
|
+
.rf-howto__content ol > li > p,
|
|
43
|
+
.rf-howto__content ul > li > p {
|
|
44
|
+
margin: 0;
|
|
45
|
+
}
|
|
70
46
|
|
|
47
|
+
/* Tips — callout accent like hint */
|
|
48
|
+
.rf-howto__content blockquote {
|
|
49
|
+
border-left: 2px solid var(--rf-color-primary);
|
|
50
|
+
background: var(--rf-color-surface);
|
|
51
|
+
border-radius: 0 var(--rf-radius-md) var(--rf-radius-md) 0;
|
|
52
|
+
padding: 0.75rem 1.25rem;
|
|
53
|
+
margin: 1.75rem 0 0;
|
|
54
|
+
font-size: var(--rf-text-sm);
|
|
55
|
+
font-style: italic;
|
|
56
|
+
color: var(--rf-color-muted);
|
|
57
|
+
line-height: var(--rf-leading-relaxed);
|
|
58
|
+
}
|
|
59
|
+
.rf-howto__content blockquote p {
|
|
60
|
+
margin: 0;
|
|
61
|
+
}
|
|
62
|
+
@media (max-width: 48rem) {
|
|
63
|
+
.rf-howto__metadata {
|
|
64
|
+
gap: 0.75rem;
|
|
65
|
+
padding: 0;
|
|
66
|
+
border: none;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
71
69
|
}
|