@refrakt-md/lumina 0.22.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.map +1 -1
- package/dist/tokens.js +2 -0
- package/dist/tokens.js.map +1 -1
- package/index.css +10 -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/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 +10 -52
- 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 +3 -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 +3 -28
- 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 +13 -0
- package/tokens/dark.css +3 -0
- package/styles/dimensions/guest-posture.css +0 -27
|
@@ -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
9
|
font-weight: var(--rf-weight-semibold);
|
|
18
10
|
color: var(--rf-color-text);
|
|
19
11
|
}
|
|
20
|
-
|
|
21
12
|
.rf-progress__value {
|
|
22
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,3 +1,4 @@
|
|
|
1
|
+
@layer skin {
|
|
1
2
|
/* PullQuote */
|
|
2
3
|
.rf-pullquote {
|
|
3
4
|
margin: 2rem 0;
|
|
@@ -10,13 +11,9 @@
|
|
|
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
|
-
position: absolute;
|
|
18
|
-
top: -0.25rem;
|
|
19
|
-
left: 0;
|
|
20
17
|
/* Decorative oversized quote glyph — a display one-off above the type scale. */
|
|
21
18
|
font-size: 4rem;
|
|
22
19
|
font-style: normal;
|
|
@@ -36,40 +33,23 @@
|
|
|
36
33
|
.rf-pullquote--center {
|
|
37
34
|
text-align: center;
|
|
38
35
|
max-width: 80%;
|
|
39
|
-
margin-left: auto;
|
|
40
|
-
margin-right: auto;
|
|
41
|
-
}
|
|
42
|
-
.rf-pullquote--center::before {
|
|
43
|
-
left: 50%;
|
|
44
|
-
transform: translateX(-50%);
|
|
45
36
|
}
|
|
46
37
|
.rf-pullquote--left {
|
|
47
38
|
text-align: left;
|
|
48
39
|
border-left: 2px solid var(--rf-color-primary);
|
|
49
40
|
padding-left: 1.5rem;
|
|
50
41
|
}
|
|
51
|
-
.rf-pullquote--left::before {
|
|
52
|
-
display: none;
|
|
53
|
-
}
|
|
54
42
|
.rf-pullquote--right {
|
|
55
43
|
text-align: right;
|
|
56
44
|
border-right: 2px solid var(--rf-color-primary);
|
|
57
45
|
padding-right: 1.5rem;
|
|
58
|
-
margin-left: auto;
|
|
59
|
-
}
|
|
60
|
-
.rf-pullquote--right::before {
|
|
61
|
-
display: none;
|
|
62
46
|
}
|
|
63
47
|
|
|
64
48
|
/* Float modes — left/right pull quotes can float for text wrapping */
|
|
65
49
|
.rf-pullquote[data-align="left"] {
|
|
66
|
-
float: left;
|
|
67
|
-
width: 40%;
|
|
68
50
|
margin: 0.5rem 2rem 1rem 0;
|
|
69
51
|
}
|
|
70
52
|
.rf-pullquote[data-align="right"] {
|
|
71
|
-
float: right;
|
|
72
|
-
width: 40%;
|
|
73
53
|
margin: 0.5rem 0 1rem 2rem;
|
|
74
54
|
}
|
|
75
55
|
|
|
@@ -92,9 +72,6 @@
|
|
|
92
72
|
font-family: Georgia, 'Times New Roman', serif;
|
|
93
73
|
letter-spacing: var(--rf-tracking-normal);
|
|
94
74
|
}
|
|
95
|
-
.rf-pullquote--editorial::before {
|
|
96
|
-
display: none;
|
|
97
|
-
}
|
|
98
75
|
|
|
99
76
|
/* Reset inner blockquote — global blockquote styles shouldn't apply here */
|
|
100
77
|
.rf-pullquote blockquote {
|
|
@@ -113,11 +90,11 @@
|
|
|
113
90
|
@media (max-width: 768px) {
|
|
114
91
|
.rf-pullquote[data-align="left"],
|
|
115
92
|
.rf-pullquote[data-align="right"] {
|
|
116
|
-
float: none;
|
|
117
|
-
width: 100%;
|
|
118
93
|
margin: 1.5rem 0;
|
|
119
94
|
}
|
|
120
95
|
.rf-pullquote--center {
|
|
121
96
|
max-width: 100%;
|
|
122
97
|
}
|
|
123
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,7 +51,6 @@
|
|
|
58
51
|
border-top: 1px solid var(--rf-color-border);
|
|
59
52
|
}
|
|
60
53
|
.rf-realm-section__name {
|
|
61
|
-
display: block;
|
|
62
54
|
font-size: var(--rf-text-xl);
|
|
63
55
|
font-weight: var(--rf-weight-bold);
|
|
64
56
|
line-height: var(--rf-leading-snug);
|
|
@@ -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,
|
|
@@ -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
|
|
|
@@ -83,29 +82,16 @@
|
|
|
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
|
-
position: relative;
|
|
94
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
|
-
content: counter(recipe-step);
|
|
101
|
-
position: absolute;
|
|
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
95
|
font-size: var(--rf-text-xs);
|
|
110
96
|
font-weight: var(--rf-weight-bold);
|
|
111
97
|
color: var(--rf-color-primary);
|
|
@@ -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
|
}
|
|
@@ -84,18 +63,8 @@
|
|
|
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);
|
|
@@ -130,3 +97,5 @@
|
|
|
130
97
|
font-size: 0.875em;
|
|
131
98
|
color: var(--rf-color-muted);
|
|
132
99
|
}
|
|
100
|
+
|
|
101
|
+
}
|
package/styles/runes/reveal.css
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
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
|
}
|
|
@@ -11,8 +14,6 @@
|
|
|
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);
|
|
@@ -24,7 +25,7 @@
|
|
|
24
25
|
}
|
|
25
26
|
.rf-reveal__eyebrow:has(a):hover { border-color: var(--rf-color-muted); }
|
|
26
27
|
.rf-reveal__eyebrow:has(a) a { color: var(--rf-color-primary); font-weight: var(--rf-weight-semibold); text-decoration: none; }
|
|
27
|
-
.rf-reveal__eyebrow:has(a) a::before {
|
|
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
|
}
|
|
@@ -63,13 +60,9 @@
|
|
|
63
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;
|
|
@@ -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,34 +1,26 @@
|
|
|
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
25
|
font-size: var(--rf-text-sm);
|
|
34
26
|
line-height: 1.25rem;
|
|
@@ -37,31 +29,10 @@
|
|
|
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;
|
|
@@ -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,16 +1,13 @@
|
|
|
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;
|
|
@@ -24,8 +21,6 @@
|
|
|
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);
|
|
@@ -37,7 +32,7 @@
|
|
|
37
32
|
}
|
|
38
33
|
.rf-section__eyebrow:has(a):hover { border-color: var(--rf-color-muted); }
|
|
39
34
|
.rf-section__eyebrow:has(a) a { color: var(--rf-color-primary); font-weight: var(--rf-weight-semibold); text-decoration: none; }
|
|
40
|
-
.rf-section__eyebrow:has(a) a::before {
|
|
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,3 +1,4 @@
|
|
|
1
|
+
@layer skin {
|
|
1
2
|
/* Sidenote */
|
|
2
3
|
.rf-sidenote {
|
|
3
4
|
margin: 1rem 0;
|
|
@@ -7,8 +8,6 @@
|
|
|
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,3 +1,4 @@
|
|
|
1
|
+
@layer skin {
|
|
1
2
|
/* Spacing — spacing scale, radii, and shadow display */
|
|
2
3
|
.rf-spacing__title {
|
|
3
4
|
font-size: var(--rf-text-lg);
|
|
@@ -21,28 +22,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
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,20 +45,12 @@
|
|
|
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
|
}
|
|
@@ -80,19 +66,12 @@
|
|
|
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
|
}
|
|
@@ -105,3 +84,5 @@
|
|
|
105
84
|
.rf-spacing--in-design-context {
|
|
106
85
|
margin: 0;
|
|
107
86
|
}
|
|
87
|
+
|
|
88
|
+
}
|