@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/reveal.css
CHANGED
|
@@ -1,30 +1,31 @@
|
|
|
1
|
-
|
|
1
|
+
@layer skin {
|
|
2
|
+
/* Reveal — skin. The eyebrow stretched-link, steps flex, hidden-step collapse,
|
|
3
|
+
* metadata hide, and control flex live in @refrakt-md/skeleton
|
|
4
|
+
* (styles/runes/reveal.css). */
|
|
2
5
|
.rf-reveal__preamble {
|
|
3
6
|
margin-bottom: 1.5rem;
|
|
4
7
|
}
|
|
5
8
|
.rf-reveal__eyebrow {
|
|
6
|
-
font-size:
|
|
7
|
-
font-weight:
|
|
8
|
-
letter-spacing:
|
|
9
|
+
font-size: var(--rf-text-sm);
|
|
10
|
+
font-weight: var(--rf-weight-semibold);
|
|
11
|
+
letter-spacing: var(--rf-tracking-wider);
|
|
9
12
|
text-transform: uppercase;
|
|
10
13
|
color: var(--rf-color-primary);
|
|
11
14
|
margin: 0 0 0.5rem;
|
|
12
15
|
}
|
|
13
16
|
.rf-reveal__eyebrow:has(a) {
|
|
14
|
-
display: inline-block;
|
|
15
|
-
position: relative;
|
|
16
17
|
padding: 0.25rem 0.875rem;
|
|
17
18
|
border: 1px solid var(--rf-color-border);
|
|
18
19
|
border-radius: var(--rf-radius-full);
|
|
19
20
|
color: var(--rf-color-text);
|
|
20
|
-
font-weight:
|
|
21
|
+
font-weight: var(--rf-weight-normal);
|
|
21
22
|
text-transform: none;
|
|
22
|
-
letter-spacing:
|
|
23
|
+
letter-spacing: var(--rf-tracking-normal);
|
|
23
24
|
transition: border-color 150ms ease;
|
|
24
25
|
}
|
|
25
26
|
.rf-reveal__eyebrow:has(a):hover { border-color: var(--rf-color-muted); }
|
|
26
|
-
.rf-reveal__eyebrow:has(a) a { color: var(--rf-color-primary); font-weight:
|
|
27
|
-
.rf-reveal__eyebrow:has(a) a::before {
|
|
27
|
+
.rf-reveal__eyebrow:has(a) a { color: var(--rf-color-primary); font-weight: var(--rf-weight-semibold); text-decoration: none; }
|
|
28
|
+
.rf-reveal__eyebrow:has(a) a::before { border-radius: inherit; }
|
|
28
29
|
.rf-reveal__headline {
|
|
29
30
|
margin-top: 0;
|
|
30
31
|
}
|
|
@@ -36,8 +37,6 @@
|
|
|
36
37
|
margin-bottom: 1rem;
|
|
37
38
|
}
|
|
38
39
|
.rf-reveal__steps {
|
|
39
|
-
display: flex;
|
|
40
|
-
flex-direction: column;
|
|
41
40
|
gap: 1rem;
|
|
42
41
|
}
|
|
43
42
|
.rf-reveal-step {
|
|
@@ -49,8 +48,6 @@
|
|
|
49
48
|
}
|
|
50
49
|
.rf-reveal-step--hidden {
|
|
51
50
|
opacity: 0;
|
|
52
|
-
height: 0;
|
|
53
|
-
overflow: hidden;
|
|
54
51
|
margin: 0;
|
|
55
52
|
transform: translateY(0.5rem);
|
|
56
53
|
}
|
|
@@ -59,17 +56,13 @@
|
|
|
59
56
|
border-bottom: 1px solid var(--rf-color-border);
|
|
60
57
|
}
|
|
61
58
|
.rf-reveal-step__title {
|
|
62
|
-
font-size:
|
|
63
|
-
font-weight:
|
|
59
|
+
font-size: var(--rf-text-lg);
|
|
60
|
+
font-weight: var(--rf-weight-semibold);
|
|
64
61
|
margin: 0 0 0.5rem;
|
|
65
62
|
}
|
|
66
|
-
.rf-reveal-step__body > span[property],
|
|
67
|
-
.rf-reveal-step__body > meta { display: none; }
|
|
68
63
|
.rf-reveal-step__body p:last-child { margin-bottom: 0; }
|
|
69
64
|
.rf-reveal__next,
|
|
70
65
|
.rf-reveal__reset {
|
|
71
|
-
display: inline-flex;
|
|
72
|
-
align-items: center;
|
|
73
66
|
gap: 0.5rem;
|
|
74
67
|
margin-top: 1rem;
|
|
75
68
|
padding: 0.5rem 1.25rem;
|
|
@@ -77,8 +70,8 @@
|
|
|
77
70
|
border-radius: var(--rf-radius-md);
|
|
78
71
|
background: var(--rf-color-surface);
|
|
79
72
|
color: var(--rf-color-text);
|
|
80
|
-
font-size:
|
|
81
|
-
font-weight:
|
|
73
|
+
font-size: var(--rf-text-sm);
|
|
74
|
+
font-weight: var(--rf-weight-medium);
|
|
82
75
|
cursor: pointer;
|
|
83
76
|
transition: background 0.15s;
|
|
84
77
|
}
|
|
@@ -86,3 +79,5 @@
|
|
|
86
79
|
.rf-reveal__reset:hover {
|
|
87
80
|
background: var(--rf-color-border);
|
|
88
81
|
}
|
|
82
|
+
|
|
83
|
+
}
|
package/styles/runes/sandbox.css
CHANGED
|
@@ -1,71 +1,42 @@
|
|
|
1
|
-
|
|
1
|
+
@layer skin {
|
|
2
|
+
/* Sandbox — skin. The iframe clip/fill + banner/poster/activate layout live in
|
|
3
|
+
* @refrakt-md/skeleton (styles/runes/sandbox.css). */
|
|
2
4
|
.rf-sandbox {
|
|
3
5
|
border-radius: var(--rf-radius-md);
|
|
4
|
-
overflow: hidden;
|
|
5
6
|
}
|
|
6
|
-
|
|
7
7
|
.rf-sandbox iframe {
|
|
8
|
-
display: block;
|
|
9
|
-
width: 100%;
|
|
10
8
|
border: none;
|
|
11
9
|
}
|
|
12
|
-
|
|
13
10
|
/* Static fallback (pre/code shown before hydration) */
|
|
14
11
|
.rf-sandbox pre {
|
|
15
12
|
margin: 0;
|
|
16
13
|
}
|
|
17
|
-
|
|
18
14
|
/* When inside preview, remove sandbox margin */
|
|
19
15
|
.rf-preview .rf-sandbox {
|
|
20
16
|
margin: 0;
|
|
21
17
|
border-radius: 0;
|
|
22
18
|
}
|
|
23
|
-
|
|
24
|
-
/* Untrusted-mode affordance: persistent banner the iframe can't suppress.
|
|
25
|
-
Rendered by the RfSandbox custom element when `data-security-mode="untrusted"`. */
|
|
19
|
+
/* Untrusted-mode affordance. */
|
|
26
20
|
.rf-sandbox[data-security-mode="untrusted"] {
|
|
27
21
|
border: 1px solid var(--rf-color-warning, #b45309);
|
|
28
22
|
}
|
|
29
|
-
|
|
30
23
|
.rf-sandbox__untrusted-banner {
|
|
31
|
-
display: block;
|
|
32
24
|
padding: 0.5rem 0.75rem;
|
|
33
|
-
font-size:
|
|
25
|
+
font-size: var(--rf-text-sm);
|
|
34
26
|
line-height: 1.25rem;
|
|
35
|
-
font-weight:
|
|
27
|
+
font-weight: var(--rf-weight-semibold);
|
|
36
28
|
color: var(--rf-color-warning);
|
|
37
29
|
background: var(--rf-color-warning-bg, #fef3c7);
|
|
38
30
|
border-bottom: 1px solid var(--rf-color-warning, #b45309);
|
|
39
31
|
}
|
|
40
|
-
|
|
41
|
-
/* Deferred activation (WORK-381): poster shown until a non-eager sandbox
|
|
42
|
-
mounts. Rendered by the RfSandbox custom element from `data-poster`. */
|
|
43
32
|
.rf-sandbox__poster {
|
|
44
|
-
position: relative;
|
|
45
|
-
display: flex;
|
|
46
|
-
align-items: center;
|
|
47
|
-
justify-content: center;
|
|
48
|
-
min-height: 150px;
|
|
49
33
|
background: var(--rf-color-surface-2, var(--rf-color-surface, #f4f4f5));
|
|
50
34
|
}
|
|
51
|
-
|
|
52
|
-
.rf-sandbox__poster-image {
|
|
53
|
-
position: absolute;
|
|
54
|
-
inset: 0;
|
|
55
|
-
width: 100%;
|
|
56
|
-
height: 100%;
|
|
57
|
-
object-fit: cover;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
35
|
.rf-sandbox__activate {
|
|
61
|
-
position: relative;
|
|
62
|
-
z-index: 1;
|
|
63
|
-
display: inline-flex;
|
|
64
|
-
align-items: center;
|
|
65
36
|
gap: 0.5ch;
|
|
66
37
|
padding: 0.5rem 1rem;
|
|
67
38
|
font: inherit;
|
|
68
|
-
font-weight:
|
|
39
|
+
font-weight: var(--rf-weight-semibold);
|
|
69
40
|
color: var(--rf-color-on-accent, #fff);
|
|
70
41
|
background: var(--rf-color-accent, #2563eb);
|
|
71
42
|
border: none;
|
|
@@ -73,17 +44,16 @@
|
|
|
73
44
|
cursor: pointer;
|
|
74
45
|
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
|
|
75
46
|
}
|
|
76
|
-
|
|
77
47
|
.rf-sandbox__activate::before {
|
|
78
48
|
content: "▶";
|
|
79
49
|
font-size: 0.85em;
|
|
80
50
|
}
|
|
81
|
-
|
|
82
51
|
.rf-sandbox__activate:hover {
|
|
83
52
|
background: var(--rf-color-accent-hover, var(--rf-color-accent, #1d4ed8));
|
|
84
53
|
}
|
|
85
|
-
|
|
86
54
|
.rf-sandbox__activate:focus-visible {
|
|
87
55
|
outline: 2px solid var(--rf-color-accent, #2563eb);
|
|
88
56
|
outline-offset: 2px;
|
|
89
57
|
}
|
|
58
|
+
|
|
59
|
+
}
|
package/styles/runes/section.css
CHANGED
|
@@ -1,43 +1,38 @@
|
|
|
1
|
+
@layer skin {
|
|
1
2
|
/* Section — a generic page section: an eyebrow/headline/blurb header above
|
|
2
3
|
arbitrary body content. Header styling mirrors the shared page-section look
|
|
3
4
|
(reveal/feature); the body is content-agnostic and full width. */
|
|
4
5
|
.rf-section {
|
|
5
|
-
display: flex;
|
|
6
|
-
flex-direction: column;
|
|
7
6
|
gap: 1.5rem;
|
|
8
7
|
}
|
|
9
8
|
|
|
10
9
|
/* Header */
|
|
11
10
|
.rf-section__preamble {
|
|
12
|
-
display: flex;
|
|
13
|
-
flex-direction: column;
|
|
14
11
|
gap: 0.5rem;
|
|
15
12
|
max-width: var(--rf-measure, 65ch);
|
|
16
13
|
margin: 0;
|
|
17
14
|
}
|
|
18
15
|
.rf-section__eyebrow {
|
|
19
|
-
font-size:
|
|
20
|
-
font-weight:
|
|
21
|
-
letter-spacing:
|
|
16
|
+
font-size: var(--rf-text-sm);
|
|
17
|
+
font-weight: var(--rf-weight-semibold);
|
|
18
|
+
letter-spacing: var(--rf-tracking-wider);
|
|
22
19
|
text-transform: uppercase;
|
|
23
20
|
color: var(--rf-color-primary);
|
|
24
21
|
margin: 0;
|
|
25
22
|
}
|
|
26
23
|
.rf-section__eyebrow:has(a) {
|
|
27
|
-
display: inline-block;
|
|
28
|
-
position: relative;
|
|
29
24
|
padding: 0.25rem 0.875rem;
|
|
30
25
|
border: 1px solid var(--rf-color-border);
|
|
31
26
|
border-radius: var(--rf-radius-full);
|
|
32
27
|
color: var(--rf-color-text);
|
|
33
|
-
font-weight:
|
|
28
|
+
font-weight: var(--rf-weight-normal);
|
|
34
29
|
text-transform: none;
|
|
35
|
-
letter-spacing:
|
|
30
|
+
letter-spacing: var(--rf-tracking-normal);
|
|
36
31
|
transition: border-color 150ms ease;
|
|
37
32
|
}
|
|
38
33
|
.rf-section__eyebrow:has(a):hover { border-color: var(--rf-color-muted); }
|
|
39
|
-
.rf-section__eyebrow:has(a) a { color: var(--rf-color-primary); font-weight:
|
|
40
|
-
.rf-section__eyebrow:has(a) a::before {
|
|
34
|
+
.rf-section__eyebrow:has(a) a { color: var(--rf-color-primary); font-weight: var(--rf-weight-semibold); text-decoration: none; }
|
|
35
|
+
.rf-section__eyebrow:has(a) a::before { border-radius: inherit; }
|
|
41
36
|
.rf-section__headline {
|
|
42
37
|
margin: 0;
|
|
43
38
|
}
|
|
@@ -48,23 +43,14 @@
|
|
|
48
43
|
.rf-section__image {
|
|
49
44
|
margin: 0;
|
|
50
45
|
border-radius: var(--rf-radius-md);
|
|
51
|
-
max-width: 100%;
|
|
52
|
-
height: auto;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/* Body — content-agnostic; fills the section width regardless of header align. */
|
|
56
|
-
.rf-section__body {
|
|
57
|
-
width: 100%;
|
|
58
46
|
}
|
|
59
47
|
|
|
60
48
|
/* Header alignment (the body stays full width). */
|
|
61
49
|
.rf-section[data-align="center"] .rf-section__preamble {
|
|
62
|
-
align-items: center;
|
|
63
50
|
text-align: center;
|
|
64
|
-
margin-inline: auto;
|
|
65
51
|
}
|
|
66
52
|
.rf-section[data-align="end"] .rf-section__preamble {
|
|
67
|
-
align-items: flex-end;
|
|
68
53
|
text-align: end;
|
|
69
|
-
|
|
54
|
+
}
|
|
55
|
+
|
|
70
56
|
}
|
|
@@ -1,23 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* displacement, place, and crop anchor are now the shared `frame` chrome
|
|
3
|
-
* (dimensions/frame.css), landing on the showcase root. This file keeps only
|
|
4
|
-
* showcase's structural rules and its distinct value: breakout. */
|
|
5
|
-
.rf-showcase {
|
|
6
|
-
position: relative;
|
|
7
|
-
}
|
|
8
|
-
.rf-showcase__viewport {
|
|
9
|
-
position: relative;
|
|
10
|
-
}
|
|
11
|
-
/* Breakout — a displaced showcase spills past a non-clipping ancestor; clipping
|
|
12
|
-
* hosts (e.g. bento cells) keep it cropped (host-owned clip). */
|
|
13
|
-
:has(> .rf-showcase[data-displace]:not(.rf-showcase--in-bento-cell)) {
|
|
14
|
-
overflow: visible;
|
|
15
|
-
}
|
|
16
|
-
/* Bento cell context — showcase fills remaining space */
|
|
17
|
-
.rf-showcase--in-bento-cell {
|
|
18
|
-
flex: 1;
|
|
19
|
-
min-height: 0;
|
|
20
|
-
}
|
|
1
|
+
@layer skin {
|
|
21
2
|
/* Spacing — vertical margin around the showcase */
|
|
22
3
|
.rf-showcase[data-spacing="flush"] { margin-top: 0; margin-bottom: 0; }
|
|
23
4
|
.rf-showcase[data-spacing="tight"] { margin-top: var(--rf-spacing-section-tight, 1.5rem); margin-bottom: var(--rf-spacing-section-tight, 1.5rem); }
|
|
@@ -36,3 +17,5 @@
|
|
|
36
17
|
margin-inline-end: 0;
|
|
37
18
|
}
|
|
38
19
|
}
|
|
20
|
+
|
|
21
|
+
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
+
@layer skin {
|
|
1
2
|
/* Sidenote */
|
|
2
3
|
.rf-sidenote {
|
|
3
4
|
margin: 1rem 0;
|
|
4
|
-
font-size:
|
|
5
|
-
line-height:
|
|
5
|
+
font-size: var(--rf-text-sm);
|
|
6
|
+
line-height: var(--rf-leading-relaxed);
|
|
6
7
|
}
|
|
7
8
|
.rf-sidenote--sidenote {
|
|
8
9
|
border-left: 3px solid var(--rf-color-primary);
|
|
9
10
|
padding: 0.75rem 1rem;
|
|
10
|
-
background: var(--rf-color-info-bg);
|
|
11
|
-
border-radius: 0 var(--rf-radius-md) var(--rf-radius-md) 0;
|
|
12
11
|
color: var(--rf-color-muted);
|
|
13
12
|
}
|
|
14
13
|
.rf-sidenote--footnote {
|
|
@@ -26,3 +25,5 @@
|
|
|
26
25
|
}
|
|
27
26
|
.rf-sidenote__body p { margin: 0; }
|
|
28
27
|
.rf-sidenote__body p + p { margin-top: 0.5rem; }
|
|
28
|
+
|
|
29
|
+
}
|
package/styles/runes/snippet.css
CHANGED
package/styles/runes/spacing.css
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
@layer skin {
|
|
1
2
|
/* Spacing — spacing scale, radii, and shadow display */
|
|
2
3
|
.rf-spacing__title {
|
|
3
|
-
font-size:
|
|
4
|
-
font-weight:
|
|
4
|
+
font-size: var(--rf-text-lg);
|
|
5
|
+
font-weight: var(--rf-weight-semibold);
|
|
5
6
|
margin-bottom: 1rem;
|
|
6
7
|
}
|
|
7
8
|
.rf-spacing__section {
|
|
@@ -11,38 +12,31 @@
|
|
|
11
12
|
margin-bottom: 0;
|
|
12
13
|
}
|
|
13
14
|
.rf-spacing__section-title {
|
|
14
|
-
font-size:
|
|
15
|
-
font-weight:
|
|
15
|
+
font-size: var(--rf-text-xs);
|
|
16
|
+
font-weight: var(--rf-weight-semibold);
|
|
16
17
|
text-transform: uppercase;
|
|
17
|
-
letter-spacing:
|
|
18
|
+
letter-spacing: var(--rf-tracking-wider);
|
|
18
19
|
color: var(--rf-color-muted);
|
|
19
20
|
margin-bottom: 0.75rem;
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
/* Spacing scale — proportional bars */
|
|
23
24
|
.rf-spacing__scale {
|
|
24
|
-
display: flex;
|
|
25
|
-
flex-direction: column;
|
|
26
25
|
gap: 0.375rem;
|
|
27
26
|
}
|
|
28
27
|
.rf-spacing__scale-item {
|
|
29
|
-
display: flex;
|
|
30
|
-
align-items: center;
|
|
31
28
|
gap: 0.75rem;
|
|
32
29
|
}
|
|
33
30
|
.rf-spacing__scale-bar {
|
|
34
|
-
height: 1.25rem;
|
|
35
31
|
background: var(--rf-color-primary);
|
|
36
32
|
border-radius: var(--rf-radius-sm, 4px);
|
|
37
33
|
opacity: 0.8;
|
|
38
|
-
min-width: 4px;
|
|
39
34
|
}
|
|
40
35
|
.rf-spacing__scale-label {
|
|
41
|
-
font-size:
|
|
36
|
+
font-size: var(--rf-text-xs);
|
|
42
37
|
font-family: var(--rf-font-mono, monospace);
|
|
43
38
|
color: var(--rf-color-text, #1a1a2e);
|
|
44
39
|
white-space: nowrap;
|
|
45
|
-
flex-shrink: 0;
|
|
46
40
|
}
|
|
47
41
|
.rf-spacing__scale-multiplier {
|
|
48
42
|
color: var(--rf-color-muted);
|
|
@@ -51,57 +45,44 @@
|
|
|
51
45
|
|
|
52
46
|
/* Radius — rounded corner samples */
|
|
53
47
|
.rf-spacing__radii {
|
|
54
|
-
display: flex;
|
|
55
48
|
gap: 1.25rem;
|
|
56
|
-
flex-wrap: wrap;
|
|
57
|
-
align-items: flex-end;
|
|
58
49
|
}
|
|
59
50
|
.rf-spacing__radius-item {
|
|
60
|
-
display: flex;
|
|
61
|
-
flex-direction: column;
|
|
62
|
-
align-items: center;
|
|
63
51
|
gap: 0.375rem;
|
|
64
52
|
}
|
|
65
53
|
.rf-spacing__radius-sample {
|
|
66
|
-
width: 3.5rem;
|
|
67
|
-
height: 3.5rem;
|
|
68
54
|
border: 2px solid var(--rf-color-border, #e5e7eb);
|
|
69
55
|
background: var(--rf-color-surface-raised, #f9fafb);
|
|
70
56
|
}
|
|
71
57
|
.rf-spacing__radius-label {
|
|
72
|
-
font-weight:
|
|
73
|
-
font-size:
|
|
58
|
+
font-weight: var(--rf-weight-medium);
|
|
59
|
+
font-size: var(--rf-text-xs);
|
|
74
60
|
}
|
|
75
61
|
.rf-spacing__radius-value {
|
|
76
|
-
font-size:
|
|
62
|
+
font-size: var(--rf-text-xs);
|
|
77
63
|
font-family: var(--rf-font-mono, monospace);
|
|
78
64
|
color: var(--rf-color-muted);
|
|
79
65
|
}
|
|
80
66
|
|
|
81
67
|
/* Shadows — sample cards */
|
|
82
68
|
.rf-spacing__shadows {
|
|
83
|
-
display: flex;
|
|
84
69
|
gap: 1.5rem;
|
|
85
|
-
flex-wrap: wrap;
|
|
86
70
|
}
|
|
87
71
|
.rf-spacing__shadow-item {
|
|
88
|
-
display: flex;
|
|
89
|
-
flex-direction: column;
|
|
90
|
-
align-items: center;
|
|
91
72
|
gap: 0.5rem;
|
|
92
73
|
}
|
|
93
74
|
.rf-spacing__shadow-sample {
|
|
94
|
-
width: 5rem;
|
|
95
|
-
height: 3.5rem;
|
|
96
75
|
background: var(--rf-color-surface, #fff);
|
|
97
76
|
border-radius: var(--rf-radius-md, 8px);
|
|
98
77
|
}
|
|
99
78
|
.rf-spacing__shadow-label {
|
|
100
|
-
font-weight:
|
|
101
|
-
font-size:
|
|
79
|
+
font-weight: var(--rf-weight-medium);
|
|
80
|
+
font-size: var(--rf-text-xs);
|
|
102
81
|
}
|
|
103
82
|
|
|
104
83
|
/* Context-aware: no outer margin when inside design-context */
|
|
105
84
|
.rf-spacing--in-design-context {
|
|
106
85
|
margin: 0;
|
|
107
86
|
}
|
|
87
|
+
|
|
88
|
+
}
|
package/styles/runes/spec.css
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@layer skin {
|
|
1
2
|
/* Spec */
|
|
2
3
|
|
|
3
4
|
/* SPEC-079: eyebrow + metadata zone names replace header-primary /
|
|
@@ -18,8 +19,8 @@
|
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
.rf-spec__body {
|
|
21
|
-
font-size:
|
|
22
|
-
line-height:
|
|
22
|
+
font-size: var(--rf-text-sm);
|
|
23
|
+
line-height: var(--rf-leading-relaxed);
|
|
23
24
|
}
|
|
24
25
|
.rf-spec__body blockquote {
|
|
25
26
|
border-left: 3px solid var(--rf-color-border);
|
|
@@ -28,3 +29,5 @@
|
|
|
28
29
|
font-style: italic;
|
|
29
30
|
color: var(--rf-color-muted);
|
|
30
31
|
}
|
|
32
|
+
|
|
33
|
+
}
|
package/styles/runes/steps.css
CHANGED
|
@@ -1,36 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
.
|
|
3
|
-
|
|
4
|
-
}
|
|
1
|
+
@layer skin {
|
|
2
|
+
/* Steps — skin. The counter mechanism, step item layout, badge box placement, and
|
|
3
|
+
* media-position flip live in @refrakt-md/skeleton (styles/runes/steps.css). */
|
|
5
4
|
.rf-steps__preamble {
|
|
6
|
-
flex-direction: column;
|
|
7
|
-
align-items: flex-start;
|
|
8
5
|
gap: 0.25rem;
|
|
9
6
|
margin-bottom: 1.5rem;
|
|
10
7
|
}
|
|
11
8
|
.rf-steps__eyebrow {
|
|
12
|
-
font-size:
|
|
13
|
-
font-weight:
|
|
14
|
-
letter-spacing:
|
|
9
|
+
font-size: var(--rf-text-sm);
|
|
10
|
+
font-weight: var(--rf-weight-semibold);
|
|
11
|
+
letter-spacing: var(--rf-tracking-wider);
|
|
15
12
|
text-transform: uppercase;
|
|
16
13
|
color: var(--rf-color-primary);
|
|
17
14
|
margin: 0 0 0.5rem;
|
|
18
15
|
}
|
|
19
16
|
.rf-steps__eyebrow:has(a) {
|
|
20
|
-
display: inline-block;
|
|
21
|
-
position: relative;
|
|
22
17
|
padding: 0.25rem 0.875rem;
|
|
23
18
|
border: 1px solid var(--rf-color-border);
|
|
24
19
|
border-radius: var(--rf-radius-full);
|
|
25
20
|
color: var(--rf-color-text);
|
|
26
|
-
font-weight:
|
|
21
|
+
font-weight: var(--rf-weight-normal);
|
|
27
22
|
text-transform: none;
|
|
28
|
-
letter-spacing:
|
|
23
|
+
letter-spacing: var(--rf-tracking-normal);
|
|
29
24
|
transition: border-color 150ms ease;
|
|
30
25
|
}
|
|
31
26
|
.rf-steps__eyebrow:has(a):hover { border-color: var(--rf-color-muted); }
|
|
32
|
-
.rf-steps__eyebrow:has(a) a { color: var(--rf-color-primary); font-weight:
|
|
33
|
-
.rf-steps__eyebrow:has(a) a::before {
|
|
27
|
+
.rf-steps__eyebrow:has(a) a { color: var(--rf-color-primary); font-weight: var(--rf-weight-semibold); text-decoration: none; }
|
|
28
|
+
.rf-steps__eyebrow:has(a) a::before { border-radius: inherit; }
|
|
34
29
|
.rf-steps__headline {
|
|
35
30
|
margin-top: 0;
|
|
36
31
|
}
|
|
@@ -42,38 +37,23 @@
|
|
|
42
37
|
margin-bottom: 1rem;
|
|
43
38
|
}
|
|
44
39
|
.rf-steps ol {
|
|
45
|
-
list-style: none;
|
|
46
40
|
padding-left: 0;
|
|
47
41
|
margin: 0;
|
|
48
42
|
}
|
|
49
|
-
.rf-step__content {
|
|
50
|
-
display: contents;
|
|
51
|
-
}
|
|
52
43
|
|
|
53
44
|
/* Individual step — borderless, matching recipe */
|
|
54
45
|
.rf-step {
|
|
55
|
-
counter-increment: step;
|
|
56
|
-
position: relative;
|
|
57
46
|
padding: 0.625rem 0 0.625rem 2.25rem;
|
|
58
47
|
}
|
|
59
48
|
.rf-step + .rf-step {
|
|
60
49
|
border-top: 1px solid var(--rf-color-border);
|
|
61
50
|
}
|
|
62
51
|
.rf-step::before {
|
|
63
|
-
content: counter(step);
|
|
64
|
-
position: absolute;
|
|
65
|
-
left: 0;
|
|
66
|
-
top: 0.625rem;
|
|
67
|
-
width: 1.5rem;
|
|
68
|
-
height: 1.5rem;
|
|
69
52
|
background: var(--rf-color-surface);
|
|
70
53
|
color: var(--rf-color-primary);
|
|
71
54
|
border-radius: var(--rf-radius-full);
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
justify-content: center;
|
|
75
|
-
font-weight: 700;
|
|
76
|
-
font-size: 0.75rem;
|
|
55
|
+
font-weight: var(--rf-weight-bold);
|
|
56
|
+
font-size: var(--rf-text-xs);
|
|
77
57
|
font-variant-numeric: tabular-nums;
|
|
78
58
|
}
|
|
79
59
|
.rf-step h1,
|
|
@@ -83,7 +63,6 @@
|
|
|
83
63
|
.rf-step h5,
|
|
84
64
|
.rf-step h6,
|
|
85
65
|
.rf-step strong {
|
|
86
|
-
display: block;
|
|
87
66
|
margin-top: 0;
|
|
88
67
|
margin-bottom: 0.375rem;
|
|
89
68
|
}
|
|
@@ -94,22 +73,11 @@
|
|
|
94
73
|
margin-top: 0;
|
|
95
74
|
}
|
|
96
75
|
.rf-step p {
|
|
97
|
-
font-size:
|
|
98
|
-
line-height:
|
|
76
|
+
font-size: var(--rf-text-sm);
|
|
77
|
+
line-height: var(--rf-leading-relaxed);
|
|
99
78
|
}
|
|
100
79
|
.rf-step__media {
|
|
101
80
|
border-radius: var(--rf-radius-md);
|
|
102
|
-
overflow: hidden;
|
|
103
81
|
}
|
|
104
82
|
|
|
105
|
-
/* BUG-001 — content-first DOM inverts the shared media-first stacked contract
|
|
106
|
-
* (layouts/split.css): counter it so the labels are truthful. `bottom` (the
|
|
107
|
-
* default) is plain block flow — media after the content, the historical
|
|
108
|
-
* look; an explicit `top` flips the visual order without touching the DOM. */
|
|
109
|
-
.rf-step[data-media-position="bottom"] {
|
|
110
|
-
display: block;
|
|
111
|
-
}
|
|
112
|
-
.rf-step[data-media-position="top"] {
|
|
113
|
-
display: flex;
|
|
114
|
-
flex-direction: column-reverse;
|
|
115
83
|
}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
+
@layer skin {
|
|
1
2
|
/* Storyboard */
|
|
2
3
|
.rf-storyboard__panels {
|
|
3
|
-
display: grid;
|
|
4
|
-
grid-template-columns: repeat(var(--sb-columns, 3), 1fr);
|
|
5
4
|
gap: 1rem;
|
|
6
5
|
}
|
|
7
6
|
/* Clean style */
|
|
8
7
|
.rf-storyboard--clean .rf-storyboard-panel {
|
|
9
8
|
border: 1px solid var(--rf-color-border);
|
|
10
9
|
border-radius: var(--rf-radius-md);
|
|
11
|
-
overflow: hidden;
|
|
12
10
|
}
|
|
13
11
|
.rf-storyboard--clean .rf-storyboard-panel__body {
|
|
14
12
|
padding: 0.75rem;
|
|
@@ -17,7 +15,6 @@
|
|
|
17
15
|
.rf-storyboard--comic .rf-storyboard-panel {
|
|
18
16
|
border: 3px solid var(--rf-color-text);
|
|
19
17
|
border-radius: 0.25rem;
|
|
20
|
-
overflow: hidden;
|
|
21
18
|
transform: rotate(-0.5deg);
|
|
22
19
|
}
|
|
23
20
|
.rf-storyboard--comic .rf-storyboard-panel:nth-child(even) {
|
|
@@ -28,7 +25,7 @@
|
|
|
28
25
|
}
|
|
29
26
|
.rf-storyboard--comic .rf-storyboard-panel__body p {
|
|
30
27
|
font-family: 'Comic Sans MS', 'Chalkboard SE', cursive;
|
|
31
|
-
font-size:
|
|
28
|
+
font-size: var(--rf-text);
|
|
32
29
|
text-align: center;
|
|
33
30
|
margin: 0.5rem 0 0;
|
|
34
31
|
}
|
|
@@ -40,23 +37,11 @@
|
|
|
40
37
|
border-radius: 2px;
|
|
41
38
|
}
|
|
42
39
|
.rf-storyboard--polaroid .rf-storyboard-panel__body p {
|
|
43
|
-
font-size:
|
|
40
|
+
font-size: var(--rf-text-sm);
|
|
44
41
|
text-align: center;
|
|
45
42
|
color: var(--rf-color-muted);
|
|
46
43
|
margin: 0.5rem 0 0;
|
|
47
44
|
}
|
|
48
|
-
/* Shared image styles */
|
|
49
|
-
.rf-storyboard-panel img {
|
|
50
|
-
width: 100%;
|
|
51
|
-
height: auto;
|
|
52
|
-
display: block;
|
|
53
|
-
}
|
|
54
|
-
.rf-storyboard-panel__body > span[property],
|
|
55
|
-
.rf-storyboard-panel__body > meta { display: none; }
|
|
56
45
|
.rf-storyboard-panel__body p:last-child { margin-bottom: 0; }
|
|
57
|
-
|
|
58
|
-
.rf-storyboard__panels { grid-template-columns: repeat(2, 1fr) !important; }
|
|
59
|
-
}
|
|
60
|
-
@media (max-width: 480px) {
|
|
61
|
-
.rf-storyboard__panels { grid-template-columns: 1fr !important; }
|
|
46
|
+
|
|
62
47
|
}
|
package/styles/runes/swatch.css
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
+
@layer skin {
|
|
1
2
|
/* Swatch — inline color chip */
|
|
2
3
|
.rf-swatch {
|
|
3
|
-
display: inline-flex;
|
|
4
|
-
align-items: center;
|
|
5
4
|
gap: 0.375rem;
|
|
6
5
|
vertical-align: middle;
|
|
7
6
|
border: 1px solid rgba(0, 0, 0, 0.12);
|
|
@@ -10,15 +9,11 @@
|
|
|
10
9
|
margin: 0 0.15em;
|
|
11
10
|
}
|
|
12
11
|
.rf-swatch__chip {
|
|
13
|
-
display: inline-block;
|
|
14
|
-
width: 0.875em;
|
|
15
|
-
height: 0.875em;
|
|
16
12
|
border-radius: 50%;
|
|
17
13
|
border: 1px solid rgba(0, 0, 0, 0.1);
|
|
18
|
-
flex-shrink: 0;
|
|
19
14
|
}
|
|
20
15
|
.rf-swatch__label {
|
|
21
|
-
font-weight:
|
|
16
|
+
font-weight: var(--rf-weight-medium);
|
|
22
17
|
}
|
|
23
18
|
.rf-swatch__value {
|
|
24
19
|
color: var(--rf-color-muted);
|
|
@@ -26,3 +21,5 @@
|
|
|
26
21
|
font-family: var(--rf-font-mono, monospace);
|
|
27
22
|
vertical-align: middle;
|
|
28
23
|
}
|
|
24
|
+
|
|
25
|
+
}
|