@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.
- package/base.css +2 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +7 -0
- package/dist/config.js.map +1 -1
- package/dist/tokens.d.ts +5 -3
- package/dist/tokens.d.ts.map +1 -1
- package/dist/tokens.js +44 -3
- package/dist/tokens.js.map +1 -1
- package/index.css +11 -1
- package/package.json +7 -5
- package/styles/base/attributes.css +6 -7
- package/styles/dimensions/checklist.css +7 -36
- package/styles/dimensions/cover.css +13 -95
- package/styles/dimensions/density.css +6 -3
- package/styles/dimensions/frame.css +7 -4
- package/styles/dimensions/media.css +14 -61
- package/styles/dimensions/metadata.css +30 -80
- package/styles/dimensions/sections.css +16 -30
- package/styles/dimensions/sequence.css +17 -82
- package/styles/dimensions/state.css +39 -56
- package/styles/dimensions/substrate.css +3 -0
- package/styles/dimensions/surfaces.css +73 -113
- package/styles/elements/blockquote.css +3 -2
- package/styles/elements/code.css +3 -0
- package/styles/elements/table.css +3 -0
- package/styles/global.css +24 -63
- package/styles/layouts/blog.css +34 -95
- package/styles/layouts/default.css +12 -86
- package/styles/layouts/docs.css +9 -159
- package/styles/layouts/mobile.css +3 -52
- package/styles/layouts/on-this-page.css +8 -7
- package/styles/layouts/plan.css +27 -158
- package/styles/layouts/search.css +17 -82
- package/styles/layouts/split.css +24 -169
- package/styles/layouts/theme-toggle.css +3 -29
- package/styles/layouts/version-switcher.css +9 -10
- package/styles/runes/accordion.css +25 -68
- package/styles/runes/aggregate.css +4 -13
- package/styles/runes/annotate.css +11 -40
- package/styles/runes/api.css +4 -1
- package/styles/runes/audio.css +12 -50
- package/styles/runes/badge.css +5 -2
- package/styles/runes/bar.css +3 -0
- package/styles/runes/bento.css +18 -161
- package/styles/runes/bg.css +3 -37
- package/styles/runes/blog.css +18 -20
- package/styles/runes/bond.css +6 -26
- package/styles/runes/breadcrumb.css +7 -15
- package/styles/runes/budget.css +23 -45
- package/styles/runes/bug.css +5 -2
- package/styles/runes/card.css +27 -95
- package/styles/runes/cast.css +10 -27
- package/styles/runes/changelog.css +13 -17
- package/styles/runes/character.css +6 -20
- package/styles/runes/chart.css +15 -57
- package/styles/runes/codegroup.css +18 -26
- package/styles/runes/collection.css +8 -85
- package/styles/runes/compare.css +8 -19
- package/styles/runes/comparison.css +29 -56
- package/styles/runes/conversation.css +9 -31
- package/styles/runes/cta.css +17 -40
- package/styles/runes/datatable.css +33 -48
- package/styles/runes/decision.css +5 -2
- package/styles/runes/design-context.css +5 -4
- package/styles/runes/details.css +9 -17
- package/styles/runes/diagram.css +8 -16
- package/styles/runes/diff.css +11 -94
- package/styles/runes/drawer.css +9 -113
- package/styles/runes/embed.css +5 -13
- package/styles/runes/event.css +5 -3
- package/styles/runes/expand.css +10 -45
- package/styles/runes/faction.css +6 -12
- package/styles/runes/feature.css +15 -43
- package/styles/runes/figure.css +7 -26
- package/styles/runes/file-ref.css +3 -18
- package/styles/runes/form.css +19 -48
- package/styles/runes/gallery.css +8 -140
- package/styles/runes/grid.css +4 -56
- package/styles/runes/hero.css +28 -140
- package/styles/runes/hint.css +23 -48
- package/styles/runes/howto.css +9 -31
- package/styles/runes/itinerary.css +15 -44
- package/styles/runes/juxtapose.css +17 -92
- package/styles/runes/lore.css +7 -14
- package/styles/runes/map.css +9 -42
- package/styles/runes/mediatext.css +4 -45
- package/styles/runes/milestone.css +15 -28
- package/styles/runes/mockup.css +10 -115
- package/styles/runes/nav.css +37 -212
- package/styles/runes/organization.css +6 -5
- package/styles/runes/page-section.css +3 -4
- package/styles/runes/pagination.css +10 -42
- package/styles/runes/palette.css +16 -35
- package/styles/runes/placeholder.css +16 -0
- package/styles/runes/plan-history.css +23 -43
- package/styles/runes/plan-progress.css +6 -7
- package/styles/runes/plan-ref.css +4 -1
- package/styles/runes/playlist.css +10 -44
- package/styles/runes/plot.css +9 -25
- package/styles/runes/preview.css +9 -34
- package/styles/runes/pricing.css +23 -41
- package/styles/runes/progress.css +8 -27
- package/styles/runes/pullquote.css +9 -31
- package/styles/runes/realm.css +6 -12
- package/styles/runes/recipe.css +12 -36
- package/styles/runes/relationships.css +5 -36
- package/styles/runes/reveal.css +17 -22
- package/styles/runes/sandbox.css +9 -39
- package/styles/runes/section.css +10 -24
- package/styles/runes/showcase.css +3 -20
- package/styles/runes/sidenote.css +5 -4
- package/styles/runes/snippet.css +3 -0
- package/styles/runes/spacing.css +14 -33
- package/styles/runes/spec.css +5 -2
- package/styles/runes/steps.css +14 -46
- package/styles/runes/storyboard.css +4 -19
- package/styles/runes/swatch.css +4 -7
- package/styles/runes/symbol.css +16 -14
- package/styles/runes/tabs.css +15 -18
- package/styles/runes/testimonial.css +12 -13
- package/styles/runes/textblock.css +6 -24
- package/styles/runes/timeline.css +10 -28
- package/styles/runes/tint.css +3 -0
- package/styles/runes/toc.css +9 -7
- package/styles/runes/track.css +12 -41
- package/styles/runes/typography.css +15 -27
- package/styles/runes/work.css +5 -2
- package/styles/runes/xref.css +3 -1
- package/tokens/base.css +56 -66
- package/tokens/dark.css +79 -80
- package/styles/dimensions/guest-posture.css +0 -27
package/styles/runes/preview.css
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@layer skin {
|
|
1
2
|
/* Preview — Component showcase with theme toggle and width control */
|
|
2
3
|
.rf-preview {
|
|
3
4
|
margin: 2rem 0;
|
|
@@ -5,30 +6,23 @@
|
|
|
5
6
|
|
|
6
7
|
/* Toolbar — transparent, controls float above the canvas */
|
|
7
8
|
.rf-preview__toolbar {
|
|
8
|
-
display: flex;
|
|
9
|
-
align-items: center;
|
|
10
|
-
justify-content: space-between;
|
|
11
9
|
padding: 0.25rem 0.25rem 0.5rem;
|
|
12
|
-
min-height: 2rem;
|
|
13
10
|
}
|
|
14
11
|
.rf-preview__title {
|
|
15
|
-
font-size:
|
|
16
|
-
font-weight:
|
|
12
|
+
font-size: var(--rf-text-xs);
|
|
13
|
+
font-weight: var(--rf-weight-semibold);
|
|
17
14
|
color: var(--rf-color-muted);
|
|
18
15
|
text-transform: uppercase;
|
|
19
|
-
letter-spacing:
|
|
16
|
+
letter-spacing: var(--rf-tracking-wider);
|
|
20
17
|
}
|
|
21
18
|
|
|
22
19
|
/* Controls container (view toggle + theme toggle) */
|
|
23
20
|
.rf-preview__controls {
|
|
24
|
-
display: flex;
|
|
25
|
-
align-items: center;
|
|
26
21
|
gap: 0.5rem;
|
|
27
22
|
}
|
|
28
23
|
|
|
29
24
|
/* View toggle pill (code/preview) */
|
|
30
25
|
.rf-preview__view-toggle {
|
|
31
|
-
display: flex;
|
|
32
26
|
gap: 0.125rem;
|
|
33
27
|
background: var(--rf-color-surface-active);
|
|
34
28
|
border-radius: var(--rf-radius-full);
|
|
@@ -37,18 +31,12 @@
|
|
|
37
31
|
|
|
38
32
|
/* Theme toggle pill */
|
|
39
33
|
.rf-preview__toggle {
|
|
40
|
-
display: flex;
|
|
41
34
|
gap: 0.125rem;
|
|
42
35
|
background: var(--rf-color-surface-active);
|
|
43
36
|
border-radius: var(--rf-radius-full);
|
|
44
37
|
padding: 0.125rem;
|
|
45
38
|
}
|
|
46
39
|
.rf-preview__toggle-btn {
|
|
47
|
-
display: flex;
|
|
48
|
-
align-items: center;
|
|
49
|
-
justify-content: center;
|
|
50
|
-
width: 1.625rem;
|
|
51
|
-
height: 1.625rem;
|
|
52
40
|
border: none;
|
|
53
41
|
border-radius: var(--rf-radius-full);
|
|
54
42
|
background: transparent;
|
|
@@ -73,7 +61,6 @@
|
|
|
73
61
|
color: var(--rf-color-text);
|
|
74
62
|
border: 1px solid var(--rf-color-border);
|
|
75
63
|
border-radius: var(--rf-radius-lg);
|
|
76
|
-
overflow: hidden;
|
|
77
64
|
}
|
|
78
65
|
/* Centre a standalone mockup whose `data-fit="none"` makes it inline-block —
|
|
79
66
|
* margin-inline auto can't centre an inline-block, only its parent's text
|
|
@@ -94,7 +81,6 @@
|
|
|
94
81
|
|
|
95
82
|
/* Viewport simulation toggle pill */
|
|
96
83
|
.rf-preview__viewport-toggle {
|
|
97
|
-
display: flex;
|
|
98
84
|
gap: 0.125rem;
|
|
99
85
|
background: var(--rf-color-surface-active);
|
|
100
86
|
border-radius: var(--rf-radius-full);
|
|
@@ -103,24 +89,16 @@
|
|
|
103
89
|
|
|
104
90
|
/* Viewport simulation frame */
|
|
105
91
|
.rf-preview__viewport-frame {
|
|
106
|
-
position: relative;
|
|
107
|
-
overflow: hidden;
|
|
108
92
|
transition: max-width 300ms ease;
|
|
109
93
|
}
|
|
110
94
|
.rf-preview__viewport-frame--constrained {
|
|
111
|
-
margin: 0 auto;
|
|
112
95
|
border: 1px dashed var(--rf-color-border);
|
|
113
96
|
border-radius: var(--rf-radius-sm);
|
|
114
97
|
}
|
|
115
98
|
.rf-preview__viewport-label {
|
|
116
|
-
|
|
117
|
-
top: 0.25rem;
|
|
118
|
-
right: 0.5rem;
|
|
119
|
-
font-size: 0.625rem;
|
|
99
|
+
font-size: var(--rf-text-xs);
|
|
120
100
|
color: var(--rf-color-muted);
|
|
121
101
|
font-variant-numeric: tabular-nums;
|
|
122
|
-
pointer-events: none;
|
|
123
|
-
z-index: 1;
|
|
124
102
|
}
|
|
125
103
|
|
|
126
104
|
/* Source code view — bordered frame matching the canvas */
|
|
@@ -139,7 +117,6 @@
|
|
|
139
117
|
|
|
140
118
|
/* Source tabs (data-source panels) */
|
|
141
119
|
.rf-preview__source-tabs {
|
|
142
|
-
display: flex;
|
|
143
120
|
gap: 0;
|
|
144
121
|
background: var(--rf-color-surface);
|
|
145
122
|
border-radius: var(--rf-radius-lg);
|
|
@@ -149,8 +126,8 @@
|
|
|
149
126
|
border: none;
|
|
150
127
|
background: transparent;
|
|
151
128
|
color: var(--rf-color-muted);
|
|
152
|
-
font-size:
|
|
153
|
-
font-weight:
|
|
129
|
+
font-size: var(--rf-text-xs);
|
|
130
|
+
font-weight: var(--rf-weight-medium);
|
|
154
131
|
cursor: pointer;
|
|
155
132
|
border-bottom: 2px solid transparent;
|
|
156
133
|
transition: color 150ms ease, border-color 150ms ease;
|
|
@@ -179,11 +156,9 @@
|
|
|
179
156
|
border-left: none;
|
|
180
157
|
border-right: none;
|
|
181
158
|
}
|
|
182
|
-
/* Break out of feature's padding-inline to reach viewport edges */
|
|
183
|
-
.rf-preview--in-feature {
|
|
184
|
-
margin-inline: calc(-1 * var(--rf-content-gutter, 1.5rem));
|
|
185
|
-
}
|
|
186
159
|
.rf-preview--in-feature .rf-preview__toolbar {
|
|
187
160
|
padding-inline: var(--rf-content-gutter, 1.5rem);
|
|
188
161
|
}
|
|
189
162
|
}
|
|
163
|
+
|
|
164
|
+
}
|
package/styles/runes/pricing.css
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
@layer skin {
|
|
2
|
+
/* Pricing — skin. The tiers grid, tier flex-column, eyebrow stretched-link, and
|
|
3
|
+
* list resets live in @refrakt-md/skeleton (styles/runes/pricing.css). */
|
|
2
4
|
.rf-pricing {
|
|
3
5
|
padding: 2rem 0;
|
|
4
6
|
}
|
|
5
7
|
.rf-pricing > header,
|
|
6
8
|
.rf-pricing__preamble {
|
|
7
|
-
flex-direction: column;
|
|
8
|
-
align-items: flex-start;
|
|
9
9
|
gap: 0.25rem;
|
|
10
10
|
text-align: center;
|
|
11
11
|
margin-bottom: 2rem;
|
|
@@ -15,28 +15,26 @@
|
|
|
15
15
|
margin-top: 0;
|
|
16
16
|
}
|
|
17
17
|
.rf-pricing__eyebrow {
|
|
18
|
-
font-size:
|
|
19
|
-
font-weight:
|
|
20
|
-
letter-spacing:
|
|
18
|
+
font-size: var(--rf-text-sm);
|
|
19
|
+
font-weight: var(--rf-weight-semibold);
|
|
20
|
+
letter-spacing: var(--rf-tracking-wider);
|
|
21
21
|
text-transform: uppercase;
|
|
22
22
|
color: var(--rf-color-primary);
|
|
23
23
|
margin: 0 0 0.5rem;
|
|
24
24
|
}
|
|
25
25
|
.rf-pricing__eyebrow:has(a) {
|
|
26
|
-
display: inline-block;
|
|
27
|
-
position: relative;
|
|
28
26
|
padding: 0.25rem 0.875rem;
|
|
29
27
|
border: 1px solid var(--rf-color-border);
|
|
30
28
|
border-radius: var(--rf-radius-full);
|
|
31
29
|
color: var(--rf-color-text);
|
|
32
|
-
font-weight:
|
|
30
|
+
font-weight: var(--rf-weight-normal);
|
|
33
31
|
text-transform: none;
|
|
34
|
-
letter-spacing:
|
|
32
|
+
letter-spacing: var(--rf-tracking-normal);
|
|
35
33
|
transition: border-color 150ms ease;
|
|
36
34
|
}
|
|
37
35
|
.rf-pricing__eyebrow:has(a):hover { border-color: var(--rf-color-muted); }
|
|
38
|
-
.rf-pricing__eyebrow:has(a) a { color: var(--rf-color-primary); font-weight:
|
|
39
|
-
.rf-pricing__eyebrow:has(a) a::before {
|
|
36
|
+
.rf-pricing__eyebrow:has(a) a { color: var(--rf-color-primary); font-weight: var(--rf-weight-semibold); text-decoration: none; }
|
|
37
|
+
.rf-pricing__eyebrow:has(a) a::before { border-radius: inherit; }
|
|
40
38
|
.rf-pricing__blurb {
|
|
41
39
|
color: var(--rf-color-muted);
|
|
42
40
|
margin-bottom: 0;
|
|
@@ -44,19 +42,9 @@
|
|
|
44
42
|
.rf-pricing__image {
|
|
45
43
|
margin-bottom: 1rem;
|
|
46
44
|
}
|
|
47
|
-
.rf-pricing__tiers
|
|
48
|
-
display: grid;
|
|
49
|
-
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
|
|
50
|
-
gap: 1.5rem;
|
|
51
|
-
list-style: none;
|
|
52
|
-
padding: 0;
|
|
53
|
-
margin: 0;
|
|
54
|
-
}
|
|
45
|
+
.rf-pricing__tiers,
|
|
55
46
|
.rf-pricing > ul[data-layout="grid"] {
|
|
56
|
-
display: grid;
|
|
57
|
-
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
|
|
58
47
|
gap: 1.5rem;
|
|
59
|
-
list-style: none;
|
|
60
48
|
padding: 0;
|
|
61
49
|
margin: 0;
|
|
62
50
|
}
|
|
@@ -65,8 +53,6 @@
|
|
|
65
53
|
border-radius: var(--rf-radius-md);
|
|
66
54
|
padding: 2rem;
|
|
67
55
|
background: var(--rf-color-bg);
|
|
68
|
-
display: flex;
|
|
69
|
-
flex-direction: column;
|
|
70
56
|
transition: box-shadow 200ms ease;
|
|
71
57
|
}
|
|
72
58
|
.rf-tier:hover {
|
|
@@ -78,47 +64,41 @@
|
|
|
78
64
|
}
|
|
79
65
|
.rf-tier h1[property="name"] {
|
|
80
66
|
margin: 0 0 0.5rem;
|
|
81
|
-
font-size:
|
|
82
|
-
font-weight:
|
|
67
|
+
font-size: var(--rf-text-lg);
|
|
68
|
+
font-weight: var(--rf-weight-semibold);
|
|
83
69
|
color: var(--rf-color-muted);
|
|
84
70
|
}
|
|
85
71
|
.rf-tier p[property="price"] {
|
|
86
|
-
font-size:
|
|
87
|
-
font-weight:
|
|
88
|
-
letter-spacing: -
|
|
72
|
+
font-size: var(--rf-text-4xl);
|
|
73
|
+
font-weight: var(--rf-weight-bold);
|
|
74
|
+
letter-spacing: var(--rf-tracking-tight);
|
|
89
75
|
color: var(--rf-color-text);
|
|
90
76
|
margin-bottom: 1.5rem;
|
|
91
|
-
line-height:
|
|
92
|
-
}
|
|
93
|
-
.rf-tier__body {
|
|
94
|
-
flex: 1;
|
|
77
|
+
line-height: var(--rf-leading-tight);
|
|
95
78
|
}
|
|
96
79
|
.rf-tier__body ul {
|
|
97
|
-
list-style: none;
|
|
98
80
|
padding-left: 0;
|
|
99
81
|
margin: 0 0 1.5rem;
|
|
100
82
|
}
|
|
101
83
|
.rf-tier__body li {
|
|
102
84
|
padding: 0.375rem 0;
|
|
103
|
-
font-size:
|
|
85
|
+
font-size: var(--rf-text-sm);
|
|
104
86
|
color: var(--rf-color-muted);
|
|
105
87
|
}
|
|
106
88
|
.rf-tier__body li::before {
|
|
107
89
|
content: '\2713';
|
|
108
90
|
margin-right: 0.5rem;
|
|
109
91
|
color: var(--rf-color-success);
|
|
110
|
-
font-weight:
|
|
92
|
+
font-weight: var(--rf-weight-semibold);
|
|
111
93
|
}
|
|
112
94
|
.rf-tier__body a {
|
|
113
|
-
display: block;
|
|
114
95
|
text-align: center;
|
|
115
96
|
padding: 0.625rem 1.5rem;
|
|
116
97
|
border-radius: var(--rf-radius-sm);
|
|
117
|
-
font-weight:
|
|
118
|
-
font-size:
|
|
98
|
+
font-weight: var(--rf-weight-semibold);
|
|
99
|
+
font-size: var(--rf-text-sm);
|
|
119
100
|
text-decoration: none;
|
|
120
101
|
transition: background-color 200ms ease, box-shadow 200ms ease, transform 200ms ease;
|
|
121
|
-
margin-top: auto;
|
|
122
102
|
}
|
|
123
103
|
.rf-tier:not(.rf-tier--featured) a {
|
|
124
104
|
background: var(--rf-color-surface);
|
|
@@ -142,3 +122,5 @@
|
|
|
142
122
|
.rf-tier__body p:has(a) {
|
|
143
123
|
margin-bottom: 0;
|
|
144
124
|
}
|
|
125
|
+
|
|
126
|
+
}
|
|
@@ -1,49 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
* property set on the root from the computed percent. Generalized from the
|
|
5
|
-
* former plan milestone progress bar.
|
|
6
|
-
*/
|
|
7
|
-
|
|
1
|
+
@layer skin {
|
|
2
|
+
/* progress — skin. The flex row, value auto-push, track box, and fill box live in
|
|
3
|
+
* @refrakt-md/skeleton (styles/runes/progress.css). */
|
|
8
4
|
.rf-progress {
|
|
9
|
-
display: flex;
|
|
10
|
-
flex-wrap: wrap;
|
|
11
|
-
align-items: baseline;
|
|
12
5
|
gap: var(--rf-spacing-xs) var(--rf-spacing-sm);
|
|
13
6
|
margin: var(--rf-spacing-sm) 0;
|
|
14
7
|
}
|
|
15
|
-
|
|
16
8
|
.rf-progress__label {
|
|
17
|
-
font-weight:
|
|
9
|
+
font-weight: var(--rf-weight-semibold);
|
|
18
10
|
color: var(--rf-color-text);
|
|
19
11
|
}
|
|
20
|
-
|
|
21
12
|
.rf-progress__value {
|
|
22
|
-
font-weight:
|
|
13
|
+
font-weight: var(--rf-weight-semibold);
|
|
23
14
|
color: var(--rf-color-text);
|
|
24
|
-
margin-left: auto;
|
|
25
15
|
}
|
|
26
|
-
|
|
27
16
|
.rf-progress__track {
|
|
28
|
-
flex-basis: 100%;
|
|
29
|
-
height: 0.5rem;
|
|
30
17
|
border-radius: var(--rf-radius-pill, 999px);
|
|
31
18
|
background: var(--rf-color-surface-hover);
|
|
32
|
-
overflow: hidden;
|
|
33
19
|
}
|
|
34
|
-
|
|
35
20
|
.rf-progress__fill {
|
|
36
|
-
display: block;
|
|
37
|
-
height: 100%;
|
|
38
|
-
width: var(--rf-progress, 0%);
|
|
39
21
|
border-radius: inherit;
|
|
40
22
|
background: var(--rf-color-primary);
|
|
41
23
|
transition: width 0.3s ease;
|
|
42
24
|
}
|
|
43
|
-
|
|
44
|
-
/* Sentiment variants tint the fill; the neutral default uses the primary.
|
|
45
|
-
* Token names follow the sentiment scheme in dimensions/metadata.css
|
|
46
|
-
* (positive→success, caution→warning, negative→danger). */
|
|
25
|
+
/* Sentiment variants tint the fill. */
|
|
47
26
|
.rf-progress--positive .rf-progress__fill { background: var(--rf-color-success); }
|
|
48
27
|
.rf-progress--caution .rf-progress__fill { background: var(--rf-color-warning); }
|
|
49
28
|
.rf-progress--negative .rf-progress__fill { background: var(--rf-color-danger); }
|
|
29
|
+
|
|
30
|
+
}
|
|
@@ -1,25 +1,23 @@
|
|
|
1
|
+
@layer skin {
|
|
1
2
|
/* PullQuote */
|
|
2
3
|
.rf-pullquote {
|
|
3
4
|
margin: 2rem 0;
|
|
4
5
|
padding: 1.5rem 2rem;
|
|
5
6
|
border: none;
|
|
6
|
-
font-size:
|
|
7
|
+
font-size: var(--rf-text-xl);
|
|
7
8
|
font-style: italic;
|
|
8
|
-
font-weight:
|
|
9
|
-
line-height:
|
|
9
|
+
font-weight: var(--rf-weight-medium);
|
|
10
|
+
line-height: var(--rf-leading-normal);
|
|
10
11
|
color: var(--rf-color-text);
|
|
11
12
|
background: none;
|
|
12
13
|
border-radius: 0;
|
|
13
|
-
position: relative;
|
|
14
14
|
}
|
|
15
15
|
.rf-pullquote::before {
|
|
16
16
|
content: '\201C';
|
|
17
|
-
|
|
18
|
-
top: -0.25rem;
|
|
19
|
-
left: 0;
|
|
17
|
+
/* Decorative oversized quote glyph — a display one-off above the type scale. */
|
|
20
18
|
font-size: 4rem;
|
|
21
19
|
font-style: normal;
|
|
22
|
-
font-weight:
|
|
20
|
+
font-weight: var(--rf-weight-bold);
|
|
23
21
|
line-height: 1;
|
|
24
22
|
color: var(--rf-color-primary);
|
|
25
23
|
opacity: 0.4;
|
|
@@ -35,40 +33,23 @@
|
|
|
35
33
|
.rf-pullquote--center {
|
|
36
34
|
text-align: center;
|
|
37
35
|
max-width: 80%;
|
|
38
|
-
margin-left: auto;
|
|
39
|
-
margin-right: auto;
|
|
40
|
-
}
|
|
41
|
-
.rf-pullquote--center::before {
|
|
42
|
-
left: 50%;
|
|
43
|
-
transform: translateX(-50%);
|
|
44
36
|
}
|
|
45
37
|
.rf-pullquote--left {
|
|
46
38
|
text-align: left;
|
|
47
39
|
border-left: 2px solid var(--rf-color-primary);
|
|
48
40
|
padding-left: 1.5rem;
|
|
49
41
|
}
|
|
50
|
-
.rf-pullquote--left::before {
|
|
51
|
-
display: none;
|
|
52
|
-
}
|
|
53
42
|
.rf-pullquote--right {
|
|
54
43
|
text-align: right;
|
|
55
44
|
border-right: 2px solid var(--rf-color-primary);
|
|
56
45
|
padding-right: 1.5rem;
|
|
57
|
-
margin-left: auto;
|
|
58
|
-
}
|
|
59
|
-
.rf-pullquote--right::before {
|
|
60
|
-
display: none;
|
|
61
46
|
}
|
|
62
47
|
|
|
63
48
|
/* Float modes — left/right pull quotes can float for text wrapping */
|
|
64
49
|
.rf-pullquote[data-align="left"] {
|
|
65
|
-
float: left;
|
|
66
|
-
width: 40%;
|
|
67
50
|
margin: 0.5rem 2rem 1rem 0;
|
|
68
51
|
}
|
|
69
52
|
.rf-pullquote[data-align="right"] {
|
|
70
|
-
float: right;
|
|
71
|
-
width: 40%;
|
|
72
53
|
margin: 0.5rem 0 1rem 2rem;
|
|
73
54
|
}
|
|
74
55
|
|
|
@@ -89,10 +70,7 @@
|
|
|
89
70
|
border-bottom: 2px solid var(--rf-color-border);
|
|
90
71
|
padding: 1.75rem 0;
|
|
91
72
|
font-family: Georgia, 'Times New Roman', serif;
|
|
92
|
-
letter-spacing:
|
|
93
|
-
}
|
|
94
|
-
.rf-pullquote--editorial::before {
|
|
95
|
-
display: none;
|
|
73
|
+
letter-spacing: var(--rf-tracking-normal);
|
|
96
74
|
}
|
|
97
75
|
|
|
98
76
|
/* Reset inner blockquote — global blockquote styles shouldn't apply here */
|
|
@@ -112,11 +90,11 @@
|
|
|
112
90
|
@media (max-width: 768px) {
|
|
113
91
|
.rf-pullquote[data-align="left"],
|
|
114
92
|
.rf-pullquote[data-align="right"] {
|
|
115
|
-
float: none;
|
|
116
|
-
width: 100%;
|
|
117
93
|
margin: 1.5rem 0;
|
|
118
94
|
}
|
|
119
95
|
.rf-pullquote--center {
|
|
120
96
|
max-width: 100%;
|
|
121
97
|
}
|
|
122
98
|
}
|
|
99
|
+
|
|
100
|
+
}
|
package/styles/runes/realm.css
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@layer skin {
|
|
1
2
|
/* Realm — split/stacked geometry, the title, and the metadata def-list all
|
|
2
3
|
* come from the shared layers: layouts/split.css ([data-layout] +
|
|
3
4
|
* [data-section="media"]), dimensions/sections.css ([data-section="title"] /
|
|
@@ -28,12 +29,6 @@
|
|
|
28
29
|
row-gap: var(--rf-realm-media-gap);
|
|
29
30
|
}
|
|
30
31
|
|
|
31
|
-
/* Stacked layouts — beside layouts handled by shared split.css */
|
|
32
|
-
.rf-realm[data-media-position="top"] {
|
|
33
|
-
display: flex;
|
|
34
|
-
flex-direction: column;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
32
|
.rf-realm[data-media-position="top"] > .rf-realm__scene {
|
|
38
33
|
margin-bottom: var(--rf-realm-media-gap);
|
|
39
34
|
}
|
|
@@ -43,8 +38,6 @@
|
|
|
43
38
|
|
|
44
39
|
/* Content */
|
|
45
40
|
.rf-realm__sections {
|
|
46
|
-
display: flex;
|
|
47
|
-
flex-direction: column;
|
|
48
41
|
gap: 1rem;
|
|
49
42
|
}
|
|
50
43
|
.rf-realm__content ul,
|
|
@@ -58,10 +51,9 @@
|
|
|
58
51
|
border-top: 1px solid var(--rf-color-border);
|
|
59
52
|
}
|
|
60
53
|
.rf-realm-section__name {
|
|
61
|
-
|
|
62
|
-
font-
|
|
63
|
-
|
|
64
|
-
line-height: 1.3;
|
|
54
|
+
font-size: var(--rf-text-xl);
|
|
55
|
+
font-weight: var(--rf-weight-bold);
|
|
56
|
+
line-height: var(--rf-leading-snug);
|
|
65
57
|
margin-bottom: 0.5rem;
|
|
66
58
|
color: var(--rf-color-text);
|
|
67
59
|
}
|
|
@@ -69,3 +61,5 @@
|
|
|
69
61
|
.rf-realm-section__body ol {
|
|
70
62
|
padding-left: 1.5rem;
|
|
71
63
|
}
|
|
64
|
+
|
|
65
|
+
}
|
package/styles/runes/recipe.css
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@layer skin {
|
|
1
2
|
/* Recipe — editorial cookbook aesthetic */
|
|
2
3
|
|
|
3
4
|
/* Thin-edge inset model (matches `.rf-card`): card outer padding is a thin edge,
|
|
@@ -35,9 +36,9 @@
|
|
|
35
36
|
}
|
|
36
37
|
|
|
37
38
|
.rf-recipe .rf-recipe__eyebrow {
|
|
38
|
-
font-size:
|
|
39
|
-
font-weight:
|
|
40
|
-
letter-spacing:
|
|
39
|
+
font-size: var(--rf-text-xs);
|
|
40
|
+
font-weight: var(--rf-weight-semibold);
|
|
41
|
+
letter-spacing: var(--rf-tracking-wider);
|
|
41
42
|
text-transform: uppercase;
|
|
42
43
|
color: var(--rf-color-primary);
|
|
43
44
|
margin: 0 0 0.375rem;
|
|
@@ -57,8 +58,6 @@
|
|
|
57
58
|
|
|
58
59
|
/* Content wrapper */
|
|
59
60
|
.rf-recipe__content {
|
|
60
|
-
display: flex;
|
|
61
|
-
flex-direction: column;
|
|
62
61
|
gap: 1.75rem;
|
|
63
62
|
}
|
|
64
63
|
|
|
@@ -73,7 +72,7 @@
|
|
|
73
72
|
}
|
|
74
73
|
.rf-recipe__content ul li {
|
|
75
74
|
padding: 0.2rem 0;
|
|
76
|
-
line-height:
|
|
75
|
+
line-height: var(--rf-leading-relaxed);
|
|
77
76
|
}
|
|
78
77
|
.rf-recipe__content ul li::marker {
|
|
79
78
|
color: var(--rf-color-primary);
|
|
@@ -83,31 +82,18 @@
|
|
|
83
82
|
.rf-recipe__content ol {
|
|
84
83
|
padding-left: 0;
|
|
85
84
|
margin: 0;
|
|
86
|
-
list-style: none;
|
|
87
|
-
counter-reset: recipe-step;
|
|
88
85
|
}
|
|
89
86
|
.rf-recipe__content ol > li {
|
|
90
|
-
counter-increment: recipe-step;
|
|
91
87
|
padding: 0.625rem 0;
|
|
92
88
|
padding-left: 2.25rem;
|
|
93
|
-
|
|
94
|
-
line-height: 1.65;
|
|
89
|
+
line-height: var(--rf-leading-relaxed);
|
|
95
90
|
}
|
|
96
91
|
.rf-recipe__content ol > li + li {
|
|
97
92
|
border-top: 1px solid var(--rf-color-border);
|
|
98
93
|
}
|
|
99
94
|
.rf-recipe__content ol > li::before {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
left: 0;
|
|
103
|
-
top: 0.625rem;
|
|
104
|
-
width: 1.5rem;
|
|
105
|
-
height: 1.5rem;
|
|
106
|
-
display: flex;
|
|
107
|
-
align-items: center;
|
|
108
|
-
justify-content: center;
|
|
109
|
-
font-size: 0.75rem;
|
|
110
|
-
font-weight: 700;
|
|
95
|
+
font-size: var(--rf-text-xs);
|
|
96
|
+
font-weight: var(--rf-weight-bold);
|
|
111
97
|
color: var(--rf-color-primary);
|
|
112
98
|
background: var(--rf-color-surface);
|
|
113
99
|
border-radius: var(--rf-radius-full);
|
|
@@ -125,10 +111,10 @@
|
|
|
125
111
|
border-radius: 0 var(--rf-radius-md) var(--rf-radius-md) 0;
|
|
126
112
|
padding: 0.75rem 1.25rem;
|
|
127
113
|
margin: 0;
|
|
128
|
-
font-size:
|
|
114
|
+
font-size: var(--rf-text-sm);
|
|
129
115
|
font-style: italic;
|
|
130
116
|
color: var(--rf-color-muted);
|
|
131
|
-
line-height:
|
|
117
|
+
line-height: var(--rf-leading-relaxed);
|
|
132
118
|
}
|
|
133
119
|
.rf-recipe__content blockquote p {
|
|
134
120
|
margin: 0;
|
|
@@ -140,23 +126,13 @@
|
|
|
140
126
|
.rf-recipe__media img {
|
|
141
127
|
border-radius: var(--rf-radius-media);
|
|
142
128
|
}
|
|
143
|
-
|
|
144
|
-
/* Metadata — prep / cook / serves / difficulty are short, symmetric facts,
|
|
145
|
-
* so keep the def-list a dense tile grid at every width (a smaller column
|
|
146
|
-
* min than the 8rem default) instead of the shared mobile label/value list. */
|
|
147
|
-
.rf-recipe__metadata {
|
|
148
|
-
grid-template-columns: repeat(auto-fit, minmax(6rem, 1fr));
|
|
149
|
-
}
|
|
150
129
|
@media (max-width: 48rem) {
|
|
151
130
|
.rf-recipe__metadata {
|
|
152
|
-
grid-template-columns: repeat(auto-fit, minmax(6rem, 1fr));
|
|
153
131
|
gap: 0.75rem;
|
|
154
|
-
align-items: normal;
|
|
155
132
|
padding: 0;
|
|
156
133
|
border: none;
|
|
157
134
|
}
|
|
158
|
-
.rf-recipe__metadata > [data-name="row"] {
|
|
159
|
-
display: flex;
|
|
160
|
-
}
|
|
161
135
|
}
|
|
162
136
|
|
|
137
|
+
|
|
138
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@layer skin {
|
|
1
2
|
/* Relationships — an entity's graph edges, grouped by kind (SPEC-072).
|
|
2
3
|
*
|
|
3
4
|
* Generic over kind: the rune emits `data-kind` on each item and a humanized
|
|
@@ -16,8 +17,6 @@
|
|
|
16
17
|
}
|
|
17
18
|
|
|
18
19
|
.rf-relationships__items {
|
|
19
|
-
display: flex;
|
|
20
|
-
flex-direction: column;
|
|
21
20
|
gap: var(--rf-spacing-sm);
|
|
22
21
|
}
|
|
23
22
|
|
|
@@ -25,17 +24,7 @@
|
|
|
25
24
|
* Mirrors collection: item chrome comes from the item (the card built-in, or
|
|
26
25
|
* a {% card %} in the body template), not the layout. */
|
|
27
26
|
.rf-relationships[data-layout='grid'] .rf-relationships__items {
|
|
28
|
-
display: grid;
|
|
29
|
-
grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
|
|
30
27
|
gap: var(--rf-spacing-md);
|
|
31
|
-
align-items: stretch;
|
|
32
|
-
}
|
|
33
|
-
.rf-relationships[data-layout='grid'] .rf-relationships__item {
|
|
34
|
-
display: flex;
|
|
35
|
-
}
|
|
36
|
-
.rf-relationships[data-layout='grid'] .rf-relationships__item > * {
|
|
37
|
-
flex: 1;
|
|
38
|
-
min-width: 0;
|
|
39
28
|
}
|
|
40
29
|
|
|
41
30
|
/* Grouped grid: the grid belongs to each group (its items are the cells), not
|
|
@@ -44,24 +33,14 @@
|
|
|
44
33
|
* the groups and each group becomes the grid, with its title spanning. */
|
|
45
34
|
.rf-relationships[data-layout='grid'] .rf-relationships__items:has(.rf-relationships__group),
|
|
46
35
|
.rf-relationships[data-layout='grid'] .rf-relationships__items:has(.rf-accordion) {
|
|
47
|
-
display: flex;
|
|
48
|
-
flex-direction: column;
|
|
49
36
|
gap: var(--rf-spacing-md);
|
|
50
37
|
}
|
|
51
38
|
.rf-relationships[data-layout='grid'] .rf-relationships__group {
|
|
52
|
-
display: grid;
|
|
53
|
-
grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
|
|
54
39
|
gap: var(--rf-spacing-md);
|
|
55
|
-
align-items: stretch;
|
|
56
|
-
}
|
|
57
|
-
.rf-relationships[data-layout='grid'] .rf-relationships__group-title {
|
|
58
|
-
grid-column: 1 / -1;
|
|
59
40
|
}
|
|
60
41
|
|
|
61
42
|
.rf-relationships__group {
|
|
62
43
|
margin-top: var(--rf-spacing-md);
|
|
63
|
-
display: flex;
|
|
64
|
-
flex-direction: column;
|
|
65
44
|
/* Tight default for the built-in inline shape (title + field spans). */
|
|
66
45
|
gap: var(--rf-spacing-xs);
|
|
67
46
|
}
|
|
@@ -79,23 +58,13 @@
|
|
|
79
58
|
margin: 0 0 var(--rf-spacing-sm);
|
|
80
59
|
font-size: 0.875em;
|
|
81
60
|
text-transform: uppercase;
|
|
82
|
-
letter-spacing:
|
|
61
|
+
letter-spacing: var(--rf-tracking-wider);
|
|
83
62
|
color: var(--rf-color-muted);
|
|
84
63
|
}
|
|
85
64
|
|
|
86
65
|
.rf-relationships__item {
|
|
87
|
-
display: flex;
|
|
88
|
-
flex-wrap: wrap;
|
|
89
|
-
align-items: baseline;
|
|
90
66
|
gap: var(--rf-spacing-xs) var(--rf-spacing-sm);
|
|
91
67
|
}
|
|
92
|
-
/* Block-content item — let the body template (card / callout / etc.) fill the
|
|
93
|
-
* container width instead of shrink-fitting. Same `data-block` signal as the
|
|
94
|
-
* group spacing above; trim the template's outer block margins so the group
|
|
95
|
-
* `gap` governs spacing (works for any block content, not a wrapper element). */
|
|
96
|
-
.rf-relationships__item[data-block] {
|
|
97
|
-
display: block;
|
|
98
|
-
}
|
|
99
68
|
.rf-relationships__item[data-block] > :first-child {
|
|
100
69
|
margin-top: 0;
|
|
101
70
|
}
|
|
@@ -105,8 +74,6 @@
|
|
|
105
74
|
|
|
106
75
|
/* Card chrome for the grid built-in (mirrors collection's __card). */
|
|
107
76
|
.rf-relationships__card {
|
|
108
|
-
display: flex;
|
|
109
|
-
flex-direction: column;
|
|
110
77
|
gap: var(--rf-spacing-xs);
|
|
111
78
|
padding: var(--rf-spacing-md);
|
|
112
79
|
border: 1px solid var(--rf-color-border);
|
|
@@ -118,7 +85,7 @@
|
|
|
118
85
|
}
|
|
119
86
|
|
|
120
87
|
.rf-relationships__title {
|
|
121
|
-
font-weight:
|
|
88
|
+
font-weight: var(--rf-weight-semibold);
|
|
122
89
|
color: var(--rf-color-text);
|
|
123
90
|
text-decoration: none;
|
|
124
91
|
}
|
|
@@ -130,3 +97,5 @@
|
|
|
130
97
|
font-size: 0.875em;
|
|
131
98
|
color: var(--rf-color-muted);
|
|
132
99
|
}
|
|
100
|
+
|
|
101
|
+
}
|