@refrakt-md/lumina 0.22.0 → 0.24.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 +7 -1
- package/contracts/structures.json +537 -0
- 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.map +1 -1
- package/dist/tokens.js +13 -0
- package/dist/tokens.js.map +1 -1
- package/index.css +11 -1
- package/package.json +5 -4
- package/styles/base/attributes.css +6 -7
- package/styles/dimensions/checklist.css +6 -35
- package/styles/dimensions/cover.css +13 -95
- package/styles/dimensions/density.css +3 -0
- package/styles/dimensions/frame.css +3 -0
- package/styles/dimensions/media.css +14 -61
- package/styles/dimensions/metadata.css +24 -74
- package/styles/dimensions/motion.css +102 -0
- package/styles/dimensions/sections.css +10 -24
- package/styles/dimensions/sequence.css +14 -79
- 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 +9 -48
- package/styles/layouts/blog.css +3 -64
- package/styles/layouts/default.css +3 -77
- package/styles/layouts/docs.css +3 -153
- package/styles/layouts/mobile.css +1 -50
- package/styles/layouts/on-this-page.css +3 -2
- package/styles/layouts/plan.css +3 -134
- package/styles/layouts/search.css +3 -68
- package/styles/layouts/split.css +24 -169
- package/styles/layouts/theme-toggle.css +3 -29
- package/styles/layouts/version-switcher.css +3 -4
- package/styles/runes/accordion.css +15 -58
- package/styles/runes/aggregate.css +3 -12
- package/styles/runes/annotate.css +6 -35
- package/styles/runes/api.css +3 -0
- package/styles/runes/audio.css +3 -41
- package/styles/runes/badge.css +3 -0
- package/styles/runes/bar.css +3 -0
- package/styles/runes/bento.css +16 -159
- package/styles/runes/bg.css +3 -37
- package/styles/runes/blog.css +3 -5
- package/styles/runes/bond.css +3 -23
- package/styles/runes/breadcrumb.css +5 -13
- package/styles/runes/budget.css +3 -25
- package/styles/runes/bug.css +3 -0
- package/styles/runes/card.css +24 -92
- package/styles/runes/cast.css +5 -22
- package/styles/runes/changelog.css +5 -9
- package/styles/runes/character.css +3 -17
- package/styles/runes/chart.css +35 -53
- package/styles/runes/codegroup.css +15 -23
- package/styles/runes/collection.css +5 -82
- package/styles/runes/compare.css +3 -14
- package/styles/runes/comparison.css +7 -34
- package/styles/runes/conversation.css +5 -27
- package/styles/runes/cta.css +3 -26
- package/styles/runes/datatable.css +25 -40
- package/styles/runes/decision.css +3 -0
- package/styles/runes/design-context.css +3 -2
- package/styles/runes/details.css +5 -13
- package/styles/runes/diagram.css +5 -13
- package/styles/runes/diff.css +5 -88
- package/styles/runes/drawer.css +1 -105
- package/styles/runes/embed.css +4 -12
- package/styles/runes/event.css +3 -1
- package/styles/runes/expand.css +5 -40
- package/styles/runes/faction.css +3 -9
- package/styles/runes/feature.css +4 -32
- package/styles/runes/figure.css +5 -24
- package/styles/runes/file-ref.css +3 -18
- package/styles/runes/form.css +3 -32
- package/styles/runes/gallery.css +3 -135
- package/styles/runes/grid.css +4 -56
- package/styles/runes/hero.css +13 -126
- package/styles/runes/hint.css +16 -41
- package/styles/runes/howto.css +3 -25
- package/styles/runes/itinerary.css +3 -32
- package/styles/runes/juxtapose.css +12 -87
- package/styles/runes/lore.css +3 -10
- package/styles/runes/map.css +3 -36
- package/styles/runes/mediatext.css +3 -44
- package/styles/runes/milestone.css +3 -16
- package/styles/runes/mockup.css +15 -108
- package/styles/runes/nav.css +3 -178
- package/styles/runes/organization.css +3 -2
- package/styles/runes/page-section.css +3 -4
- package/styles/runes/pagination.css +5 -37
- package/styles/runes/palette.css +3 -22
- package/styles/runes/placeholder.css +3 -3
- package/styles/runes/plan-history.css +3 -23
- package/styles/runes/plan-progress.css +3 -4
- package/styles/runes/plan-ref.css +3 -0
- package/styles/runes/playlist.css +2 -36
- package/styles/runes/plot.css +3 -19
- package/styles/runes/preview.css +7 -25
- package/styles/runes/pricing.css +7 -25
- package/styles/runes/progress.css +6 -25
- package/styles/runes/pullquote.css +3 -26
- package/styles/runes/realm.css +3 -9
- package/styles/runes/recipe.css +3 -27
- package/styles/runes/relationships.css +3 -34
- package/styles/runes/reveal.css +7 -12
- package/styles/runes/sandbox.css +6 -36
- package/styles/runes/section.css +4 -18
- package/styles/runes/showcase.css +3 -20
- package/styles/runes/sidenote.css +3 -2
- package/styles/runes/snippet.css +3 -0
- package/styles/runes/spacing.css +3 -22
- package/styles/runes/spec.css +3 -0
- package/styles/runes/steps.css +4 -36
- package/styles/runes/storyboard.css +2 -17
- package/styles/runes/swatch.css +3 -6
- package/styles/runes/symbol.css +6 -4
- package/styles/runes/tabs.css +6 -9
- package/styles/runes/testimonial.css +5 -6
- package/styles/runes/textblock.css +2 -20
- package/styles/runes/timeline.css +3 -21
- package/styles/runes/tint.css +3 -0
- package/styles/runes/toc.css +5 -3
- package/styles/runes/track.css +2 -31
- package/styles/runes/typography.css +3 -15
- package/styles/runes/work.css +3 -0
- package/styles/runes/xref.css +3 -1
- package/tokens/base.css +19 -0
- package/tokens/dark.css +3 -0
- package/styles/dimensions/guest-posture.css +0 -27
|
@@ -1,27 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
* controls stay compact enough to sit side-by-side on mobile. Equal
|
|
5
|
-
* heights are guaranteed by the container's `align-items: stretch`, so
|
|
6
|
-
* if one label wraps to multiple lines the other box grows to match.
|
|
7
|
-
*
|
|
8
|
-
* Boxes are capped at ~50% width via `flex: 1 1 0` + `max-width`, with
|
|
9
|
-
* `margin-left: auto` on `__next` so it stays right-aligned even when
|
|
10
|
-
* `__prev` isn't rendered (first page in a sequence). */
|
|
11
|
-
|
|
1
|
+
@layer skin {
|
|
2
|
+
/* Pagination — skin. The flex row + box flex sizing + alignment + marker order
|
|
3
|
+
* live in @refrakt-md/skeleton (styles/runes/pagination.css). */
|
|
12
4
|
.rf-pagination {
|
|
13
|
-
display: flex;
|
|
14
|
-
align-items: stretch;
|
|
15
5
|
gap: 1rem;
|
|
16
6
|
margin: 3rem 0 1.5rem;
|
|
17
7
|
padding-top: 1.5rem;
|
|
18
8
|
border-top: 1px solid var(--rf-color-border);
|
|
19
9
|
}
|
|
20
|
-
|
|
21
10
|
.rf-pagination__prev,
|
|
22
11
|
.rf-pagination__next {
|
|
23
|
-
display: flex;
|
|
24
|
-
flex-direction: column;
|
|
25
12
|
gap: 0.375rem;
|
|
26
13
|
padding: 0.75rem 1rem;
|
|
27
14
|
border: 1px solid var(--rf-color-border);
|
|
@@ -30,48 +17,28 @@
|
|
|
30
17
|
text-decoration: none;
|
|
31
18
|
font-size: var(--rf-text-sm);
|
|
32
19
|
transition: border-color 150ms ease, background-color 150ms ease;
|
|
33
|
-
flex: 1 1 0;
|
|
34
|
-
min-width: 0;
|
|
35
|
-
max-width: calc(50% - 0.5rem);
|
|
36
20
|
}
|
|
37
|
-
|
|
38
21
|
.rf-pagination__prev {
|
|
39
|
-
align-items: flex-start;
|
|
40
22
|
text-align: left;
|
|
41
23
|
}
|
|
42
|
-
|
|
43
24
|
.rf-pagination__next {
|
|
44
|
-
align-items: flex-end;
|
|
45
25
|
text-align: right;
|
|
46
|
-
margin-left: auto;
|
|
47
26
|
}
|
|
48
|
-
|
|
49
27
|
.rf-pagination__prev:hover,
|
|
50
28
|
.rf-pagination__next:hover {
|
|
51
29
|
border-color: var(--rf-color-primary);
|
|
52
30
|
background: var(--rf-color-surface, var(--rf-color-bg));
|
|
53
31
|
text-decoration: none;
|
|
54
32
|
}
|
|
55
|
-
|
|
56
33
|
.rf-pagination [data-name="marker"] {
|
|
57
34
|
color: var(--rf-color-muted);
|
|
58
35
|
font-weight: var(--rf-weight-normal);
|
|
59
36
|
font-size: var(--rf-text-lg);
|
|
60
37
|
line-height: 1;
|
|
61
38
|
}
|
|
62
|
-
|
|
63
39
|
.rf-pagination [data-name="label"] {
|
|
64
40
|
font-weight: var(--rf-weight-medium);
|
|
65
41
|
}
|
|
66
|
-
|
|
67
|
-
/* The pagination rune emits prev as `<marker> <label>` but next as
|
|
68
|
-
`<label> <marker>` (an artefact of the original row layout where the
|
|
69
|
-
arrow flanked the outer edge). With our vertical stack this puts the
|
|
70
|
-
next arrow at the bottom of its box. Force it to the top to match prev. */
|
|
71
|
-
.rf-pagination__next [data-name="marker"] {
|
|
72
|
-
order: -1;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
42
|
@media (max-width: 768px) {
|
|
76
43
|
.rf-pagination {
|
|
77
44
|
gap: 0.5rem;
|
|
@@ -79,7 +46,8 @@
|
|
|
79
46
|
.rf-pagination__prev,
|
|
80
47
|
.rf-pagination__next {
|
|
81
48
|
padding: 0.625rem 0.875rem;
|
|
82
|
-
max-width: calc(50% - 0.25rem);
|
|
83
49
|
font-size: var(--rf-text-sm);
|
|
84
50
|
}
|
|
85
51
|
}
|
|
52
|
+
|
|
53
|
+
}
|
package/styles/runes/palette.css
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@layer skin {
|
|
1
2
|
/* Palette — color swatch grid */
|
|
2
3
|
.rf-palette__title {
|
|
3
4
|
font-size: var(--rf-text-lg);
|
|
@@ -19,26 +20,12 @@
|
|
|
19
20
|
margin-bottom: 0.75rem;
|
|
20
21
|
}
|
|
21
22
|
.rf-palette__grid {
|
|
22
|
-
display: grid;
|
|
23
|
-
grid-template-columns: repeat(var(--rf-palette-cols, 4), 1fr);
|
|
24
23
|
gap: 0.75rem;
|
|
25
24
|
}
|
|
26
|
-
|
|
27
|
-
@media (max-width: 768px) {
|
|
28
|
-
/* Cap the grid at 3 columns on narrow viewports — at 4 cols each swatch
|
|
29
|
-
is too cramped to read the hex value. Palettes with fewer than 3
|
|
30
|
-
declared columns keep their natural count (the `min()`). */
|
|
31
|
-
.rf-palette__grid {
|
|
32
|
-
grid-template-columns: repeat(min(var(--rf-palette-cols, 4), 3), 1fr);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
25
|
.rf-palette__swatch {
|
|
36
|
-
display: flex;
|
|
37
|
-
flex-direction: column;
|
|
38
26
|
gap: 0.375rem;
|
|
39
27
|
}
|
|
40
28
|
.rf-palette__swatch-color {
|
|
41
|
-
height: 5rem;
|
|
42
29
|
border-radius: var(--rf-radius-md, 8px);
|
|
43
30
|
border: 1px solid rgba(0, 0, 0, 0.08);
|
|
44
31
|
}
|
|
@@ -57,7 +44,6 @@
|
|
|
57
44
|
color: var(--rf-color-muted);
|
|
58
45
|
}
|
|
59
46
|
.rf-palette__swatch-a11y {
|
|
60
|
-
display: flex;
|
|
61
47
|
gap: 0.5rem;
|
|
62
48
|
font-size: var(--rf-text-xs);
|
|
63
49
|
font-weight: var(--rf-weight-medium);
|
|
@@ -71,18 +57,11 @@
|
|
|
71
57
|
|
|
72
58
|
/* Neutral scale — horizontal gradient strip */
|
|
73
59
|
.rf-palette__scale {
|
|
74
|
-
display: flex;
|
|
75
60
|
border-radius: var(--rf-radius-md, 8px);
|
|
76
|
-
overflow: hidden;
|
|
77
61
|
margin-bottom: 0.5rem;
|
|
78
62
|
}
|
|
79
63
|
.rf-palette__scale-stop {
|
|
80
|
-
flex: 1;
|
|
81
64
|
padding: 1.25rem 0.5rem 0.5rem;
|
|
82
|
-
display: flex;
|
|
83
|
-
align-items: flex-end;
|
|
84
|
-
justify-content: center;
|
|
85
|
-
min-height: 4rem;
|
|
86
65
|
font-size: var(--rf-text-xs);
|
|
87
66
|
font-family: var(--rf-font-mono, monospace);
|
|
88
67
|
}
|
|
@@ -95,3 +74,5 @@
|
|
|
95
74
|
.rf-palette--in-design-context {
|
|
96
75
|
margin: 0;
|
|
97
76
|
}
|
|
77
|
+
|
|
78
|
+
}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
+
@layer skin {
|
|
1
2
|
/* Placeholder — generated inline SVG from the `placeholder:<shape>` image-src
|
|
2
3
|
* scheme (SPEC-106). The SVG carries its own viewBox aspect and tints itself
|
|
3
4
|
* with theme tokens (surface / muted / border), so it tracks the active tint
|
|
4
5
|
* and dark mode for free. These rules just make it behave like a responsive
|
|
5
6
|
* replaced element wherever a real `<img>` would have gone. */
|
|
6
7
|
.rf-placeholder {
|
|
7
|
-
display: block;
|
|
8
|
-
width: 100%;
|
|
9
|
-
height: auto;
|
|
10
8
|
border-radius: var(--rf-radius-media);
|
|
11
9
|
}
|
|
12
10
|
|
|
@@ -14,3 +12,5 @@
|
|
|
14
12
|
.rf-placeholder[data-shape="avatar"] {
|
|
15
13
|
border-radius: 50%;
|
|
16
14
|
}
|
|
15
|
+
|
|
16
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@layer skin {
|
|
1
2
|
/* Plan History — vertical timeline (mirrors .rf-timeline--vertical) */
|
|
2
3
|
|
|
3
4
|
.rf-plan-history {
|
|
@@ -12,14 +13,12 @@
|
|
|
12
13
|
|
|
13
14
|
/* Event list — vertical line */
|
|
14
15
|
.rf-plan-history__events {
|
|
15
|
-
list-style: none;
|
|
16
16
|
padding: 0;
|
|
17
17
|
margin: 0;
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
/* Each event entry — left-padded with border line */
|
|
21
21
|
.rf-plan-history__event {
|
|
22
|
-
position: relative;
|
|
23
22
|
padding-left: 2rem;
|
|
24
23
|
padding-bottom: 2rem;
|
|
25
24
|
border-left: 2px solid var(--rf-color-border);
|
|
@@ -32,12 +31,6 @@
|
|
|
32
31
|
|
|
33
32
|
/* Circle markers on the timeline line */
|
|
34
33
|
.rf-plan-history__event::before {
|
|
35
|
-
content: '';
|
|
36
|
-
position: absolute;
|
|
37
|
-
left: -0.4375rem;
|
|
38
|
-
top: 0.25rem;
|
|
39
|
-
width: 0.75rem;
|
|
40
|
-
height: 0.75rem;
|
|
41
34
|
border-radius: 50%;
|
|
42
35
|
background: var(--rf-color-primary);
|
|
43
36
|
border: 2px solid var(--rf-color-bg);
|
|
@@ -51,7 +44,6 @@
|
|
|
51
44
|
|
|
52
45
|
/* Date + hash header */
|
|
53
46
|
.rf-plan-history__date {
|
|
54
|
-
display: inline;
|
|
55
47
|
font-size: var(--rf-text-xs);
|
|
56
48
|
font-weight: var(--rf-weight-semibold);
|
|
57
49
|
color: var(--rf-color-primary);
|
|
@@ -74,8 +66,6 @@ a.rf-plan-history__hash:hover {
|
|
|
74
66
|
margin-top: 0.25rem;
|
|
75
67
|
}
|
|
76
68
|
.rf-plan-history__change {
|
|
77
|
-
display: flex;
|
|
78
|
-
align-items: center;
|
|
79
69
|
gap: 0.25rem;
|
|
80
70
|
font-size: var(--rf-text-sm);
|
|
81
71
|
line-height: var(--rf-leading-relaxed);
|
|
@@ -123,7 +113,6 @@ a.rf-plan-history__hash:hover {
|
|
|
123
113
|
|
|
124
114
|
/* Criteria list */
|
|
125
115
|
.rf-plan-history__criteria {
|
|
126
|
-
list-style: none;
|
|
127
116
|
padding: 0;
|
|
128
117
|
margin: 0.25rem 0 0;
|
|
129
118
|
}
|
|
@@ -156,7 +145,6 @@ a.rf-plan-history__hash:hover {
|
|
|
156
145
|
|
|
157
146
|
/* Global feed (commit-grouped) */
|
|
158
147
|
.rf-plan-history--global .rf-plan-history__commit-message {
|
|
159
|
-
display: block;
|
|
160
148
|
font-size: var(--rf-text);
|
|
161
149
|
font-weight: var(--rf-weight-bold);
|
|
162
150
|
color: var(--rf-color-text);
|
|
@@ -164,8 +152,6 @@ a.rf-plan-history__hash:hover {
|
|
|
164
152
|
margin-bottom: 0.5rem;
|
|
165
153
|
}
|
|
166
154
|
.rf-plan-history--global .rf-plan-history__entity-summary {
|
|
167
|
-
display: flex;
|
|
168
|
-
align-items: baseline;
|
|
169
155
|
gap: 0.5rem;
|
|
170
156
|
font-size: var(--rf-text-sm);
|
|
171
157
|
line-height: var(--rf-leading-relaxed);
|
|
@@ -186,12 +172,6 @@ a.rf-plan-history__hash:hover {
|
|
|
186
172
|
.rf-plan-history__event {
|
|
187
173
|
padding-left: 1.25rem;
|
|
188
174
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
height: 0.625rem;
|
|
192
|
-
left: -0.375rem;
|
|
193
|
-
}
|
|
194
|
-
.rf-plan-history__change {
|
|
195
|
-
flex-wrap: wrap;
|
|
196
|
-
}
|
|
175
|
+
}
|
|
176
|
+
|
|
197
177
|
}
|
|
@@ -1,15 +1,12 @@
|
|
|
1
|
+
@layer skin {
|
|
1
2
|
/* plan-progress (SPEC-076 / WORK-296) — a stack of per-type blocks, each a type
|
|
2
3
|
* heading + an `aggregate` composition (progress bar + status badges). The bar
|
|
3
4
|
* and badge-row chrome come from the `progress` / `aggregate` / `badge` runes;
|
|
4
5
|
* this file only lays out the per-type grouping. */
|
|
5
6
|
.rf-plan-progress {
|
|
6
|
-
display: flex;
|
|
7
|
-
flex-direction: column;
|
|
8
7
|
gap: var(--rf-spacing-lg, 2rem);
|
|
9
8
|
}
|
|
10
9
|
.rf-plan-progress__group {
|
|
11
|
-
display: flex;
|
|
12
|
-
flex-direction: column;
|
|
13
10
|
gap: var(--rf-spacing-sm, 0.75rem);
|
|
14
11
|
}
|
|
15
12
|
.rf-plan-progress__heading {
|
|
@@ -20,3 +17,5 @@
|
|
|
20
17
|
letter-spacing: var(--rf-tracking-wider);
|
|
21
18
|
color: var(--rf-color-muted);
|
|
22
19
|
}
|
|
20
|
+
|
|
21
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@layer skin {
|
|
1
2
|
/* Plan cross-reference links */
|
|
2
3
|
|
|
3
4
|
.rf-plan-ref {
|
|
@@ -24,3 +25,5 @@
|
|
|
24
25
|
.rf-plan-ref[data-type="bug"]::before { content: '\1F41B'; }
|
|
25
26
|
.rf-plan-ref[data-type="decision"]::before { content: '\2696\FE0F'; }
|
|
26
27
|
.rf-plan-ref[data-type="milestone"]::before { content: '\1F3AF'; }
|
|
28
|
+
|
|
29
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@layer skin {
|
|
1
2
|
/* Playlist */
|
|
2
3
|
|
|
3
4
|
/* Thin-edge inset model (matches `.rf-card` / `.rf-recipe`): card outer padding
|
|
@@ -34,8 +35,6 @@
|
|
|
34
35
|
|
|
35
36
|
/* Inner header (headline + description) inside content */
|
|
36
37
|
.rf-playlist__content > .rf-playlist__header {
|
|
37
|
-
flex-direction: column;
|
|
38
|
-
align-items: flex-start;
|
|
39
38
|
gap: 0.25rem;
|
|
40
39
|
margin-bottom: 1rem;
|
|
41
40
|
}
|
|
@@ -51,29 +50,19 @@
|
|
|
51
50
|
|
|
52
51
|
/* Tracks list wrapper */
|
|
53
52
|
.rf-playlist__tracks {
|
|
54
|
-
list-style: none;
|
|
55
53
|
padding: 0;
|
|
56
54
|
margin: 0;
|
|
57
|
-
counter-reset: track;
|
|
58
55
|
border: 1px solid var(--rf-color-border);
|
|
59
56
|
border-radius: var(--rf-radius-md);
|
|
60
|
-
overflow: hidden;
|
|
61
57
|
}
|
|
62
58
|
|
|
63
59
|
/* Track items — override sequence dimension's absolute positioning */
|
|
64
60
|
.rf-playlist__tracks > li {
|
|
65
|
-
display: flex;
|
|
66
|
-
align-items: baseline;
|
|
67
61
|
gap: 0.75rem;
|
|
68
62
|
padding: 0.75rem 1.25rem;
|
|
69
63
|
padding-left: 1.25rem;
|
|
70
|
-
position: static;
|
|
71
64
|
transition: background 0.15s ease;
|
|
72
65
|
}
|
|
73
|
-
/* Hide meta elements from flex layout */
|
|
74
|
-
.rf-playlist__tracks > li > meta {
|
|
75
|
-
display: none;
|
|
76
|
-
}
|
|
77
66
|
.rf-playlist__tracks > li + li {
|
|
78
67
|
border-top: 1px solid var(--rf-color-border);
|
|
79
68
|
}
|
|
@@ -81,27 +70,19 @@
|
|
|
81
70
|
background: color-mix(in srgb, var(--rf-color-border) 15%, transparent);
|
|
82
71
|
}
|
|
83
72
|
.rf-playlist__tracks > li::before {
|
|
84
|
-
position: static;
|
|
85
|
-
width: auto;
|
|
86
|
-
height: auto;
|
|
87
|
-
min-width: 1.5rem;
|
|
88
73
|
font-size: var(--rf-text-xs);
|
|
89
74
|
font-variant-numeric: tabular-nums;
|
|
90
75
|
color: var(--rf-color-muted);
|
|
91
76
|
background: none;
|
|
92
77
|
border-radius: 0;
|
|
93
78
|
text-align: right;
|
|
94
|
-
flex-shrink: 0;
|
|
95
79
|
}
|
|
96
80
|
|
|
97
81
|
/* Track name */
|
|
98
82
|
.rf-playlist__tracks [data-name="track-name"] {
|
|
99
|
-
flex: 1;
|
|
100
83
|
font-size: var(--rf-text);
|
|
101
84
|
font-weight: var(--rf-weight-medium);
|
|
102
85
|
color: var(--rf-color-text);
|
|
103
|
-
min-width: 0;
|
|
104
|
-
overflow: hidden;
|
|
105
86
|
text-overflow: ellipsis;
|
|
106
87
|
white-space: nowrap;
|
|
107
88
|
}
|
|
@@ -110,7 +91,6 @@
|
|
|
110
91
|
.rf-playlist__tracks [data-name="track-artist"] {
|
|
111
92
|
font-size: var(--rf-text-sm);
|
|
112
93
|
color: var(--rf-color-muted);
|
|
113
|
-
flex-shrink: 0;
|
|
114
94
|
}
|
|
115
95
|
.rf-playlist__tracks [data-name="track-artist"]::before {
|
|
116
96
|
content: '\00b7';
|
|
@@ -123,9 +103,6 @@
|
|
|
123
103
|
font-size: var(--rf-text-sm);
|
|
124
104
|
color: var(--rf-color-muted);
|
|
125
105
|
font-variant-numeric: tabular-nums;
|
|
126
|
-
flex-shrink: 0;
|
|
127
|
-
margin-left: auto;
|
|
128
|
-
min-width: 3rem;
|
|
129
106
|
text-align: right;
|
|
130
107
|
}
|
|
131
108
|
|
|
@@ -133,7 +110,6 @@
|
|
|
133
110
|
.rf-playlist__tracks [data-name="track-meta"] {
|
|
134
111
|
font-size: var(--rf-text-xs);
|
|
135
112
|
color: var(--rf-color-muted);
|
|
136
|
-
flex-shrink: 0;
|
|
137
113
|
}
|
|
138
114
|
.rf-playlist__tracks [data-name="track-meta"]::before {
|
|
139
115
|
content: '\00b7';
|
|
@@ -147,16 +123,6 @@
|
|
|
147
123
|
margin-top: 0.5rem;
|
|
148
124
|
}
|
|
149
125
|
|
|
150
|
-
/* Media zone — domain-specific cover art overrides (base styles in split.css) */
|
|
151
|
-
.rf-playlist__media img {
|
|
152
|
-
aspect-ratio: 1;
|
|
153
|
-
object-fit: cover;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
126
|
/* Hide secondary columns on narrow screens */
|
|
157
|
-
|
|
158
|
-
.rf-playlist__tracks [data-name="track-artist"],
|
|
159
|
-
.rf-playlist__tracks [data-name="track-meta"] {
|
|
160
|
-
display: none;
|
|
161
|
-
}
|
|
127
|
+
|
|
162
128
|
}
|
package/styles/runes/plot.css
CHANGED
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
.rf-plot {
|
|
3
|
-
display: flex;
|
|
4
|
-
flex-direction: column;
|
|
5
|
-
}
|
|
1
|
+
@layer skin {
|
|
6
2
|
.rf-plot > span[property="name"] {
|
|
7
|
-
display: block;
|
|
8
3
|
font-size: var(--rf-text-2xl);
|
|
9
4
|
font-weight: var(--rf-weight-bold);
|
|
10
5
|
margin-bottom: 0.5rem;
|
|
@@ -20,26 +15,18 @@
|
|
|
20
15
|
|
|
21
16
|
/* Beats list */
|
|
22
17
|
.rf-plot ol {
|
|
23
|
-
list-style: none;
|
|
24
18
|
padding-left: 0;
|
|
25
19
|
margin: 1rem 0 0;
|
|
26
20
|
}
|
|
27
21
|
|
|
28
22
|
/* Beat — all variants use left padding with dot at left: 0 */
|
|
29
23
|
.rf-beat {
|
|
30
|
-
position: relative;
|
|
31
24
|
padding: 0.625rem 0 0.625rem 2.25rem;
|
|
32
25
|
}
|
|
33
26
|
.rf-beat + .rf-beat {
|
|
34
27
|
border-top: 1px solid var(--rf-color-border);
|
|
35
28
|
}
|
|
36
29
|
.rf-beat::before {
|
|
37
|
-
content: '';
|
|
38
|
-
position: absolute;
|
|
39
|
-
left: 0.375rem;
|
|
40
|
-
top: 1rem;
|
|
41
|
-
width: 0.75rem;
|
|
42
|
-
height: 0.75rem;
|
|
43
30
|
border-radius: 50%;
|
|
44
31
|
background: var(--rf-color-surface-active);
|
|
45
32
|
border: 2px solid var(--rf-color-bg);
|
|
@@ -69,13 +56,8 @@
|
|
|
69
56
|
border-left: 2px solid var(--rf-color-border);
|
|
70
57
|
margin-left: 0.375rem;
|
|
71
58
|
}
|
|
72
|
-
.rf-plot--linear .rf-beat::before {
|
|
73
|
-
left: -0.4375rem;
|
|
74
|
-
top: 0.125rem;
|
|
75
|
-
}
|
|
76
59
|
.rf-plot--linear .rf-beat > span[data-field="label"] {
|
|
77
60
|
line-height: 1;
|
|
78
|
-
display: block;
|
|
79
61
|
margin-top: -0.5rem;
|
|
80
62
|
}
|
|
81
63
|
.rf-plot--linear .rf-beat + .rf-beat {
|
|
@@ -115,3 +97,5 @@
|
|
|
115
97
|
background: var(--rf-color-muted);
|
|
116
98
|
box-shadow: 0 0 0 2px var(--rf-color-muted);
|
|
117
99
|
}
|
|
100
|
+
|
|
101
|
+
}
|
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,11 +6,7 @@
|
|
|
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
12
|
font-size: var(--rf-text-xs);
|
|
@@ -21,14 +18,11 @@
|
|
|
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
|
-
position: absolute;
|
|
117
|
-
top: 0.25rem;
|
|
118
|
-
right: 0.5rem;
|
|
119
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);
|
|
@@ -179,7 +156,10 @@
|
|
|
179
156
|
border-left: none;
|
|
180
157
|
border-right: none;
|
|
181
158
|
}
|
|
182
|
-
/* Break out of feature's padding-inline to reach viewport edges
|
|
159
|
+
/* Break out of the feature's padding-inline to reach the viewport edges. Stays
|
|
160
|
+
* skin (not skeleton): this overrides the skin rule `.rf-preview { margin: 2rem 0 }`
|
|
161
|
+
* by specificity, and that only wins within the same cascade layer — in
|
|
162
|
+
* @layer skeleton it loses to the skin margin and the bleed is nullified. */
|
|
183
163
|
.rf-preview--in-feature {
|
|
184
164
|
margin-inline: calc(-1 * var(--rf-content-gutter, 1.5rem));
|
|
185
165
|
}
|
|
@@ -187,3 +167,5 @@
|
|
|
187
167
|
padding-inline: var(--rf-content-gutter, 1.5rem);
|
|
188
168
|
}
|
|
189
169
|
}
|
|
170
|
+
|
|
171
|
+
}
|
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;
|
|
@@ -23,8 +23,6 @@
|
|
|
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);
|
|
@@ -36,7 +34,7 @@
|
|
|
36
34
|
}
|
|
37
35
|
.rf-pricing__eyebrow:has(a):hover { border-color: var(--rf-color-muted); }
|
|
38
36
|
.rf-pricing__eyebrow:has(a) a { color: var(--rf-color-primary); font-weight: var(--rf-weight-semibold); text-decoration: none; }
|
|
39
|
-
.rf-pricing__eyebrow:has(a) a::before {
|
|
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 {
|
|
@@ -90,11 +76,7 @@
|
|
|
90
76
|
margin-bottom: 1.5rem;
|
|
91
77
|
line-height: var(--rf-leading-tight);
|
|
92
78
|
}
|
|
93
|
-
.rf-tier__body {
|
|
94
|
-
flex: 1;
|
|
95
|
-
}
|
|
96
79
|
.rf-tier__body ul {
|
|
97
|
-
list-style: none;
|
|
98
80
|
padding-left: 0;
|
|
99
81
|
margin: 0 0 1.5rem;
|
|
100
82
|
}
|
|
@@ -110,7 +92,6 @@
|
|
|
110
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);
|
|
@@ -118,7 +99,6 @@
|
|
|
118
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
|
+
}
|