@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
package/styles/runes/hint.css
CHANGED
|
@@ -1,49 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
@layer skin {
|
|
2
|
+
/* Hint — skin. The sunken surface chrome (fill, border, radius) comes from
|
|
3
|
+
* dimensions/surfaces.css via defaultElevation: 'sunken'; only the bespoke
|
|
4
|
+
* padding stays here so the icon+title+body breathes wider than --rune-padding
|
|
5
|
+
* at compact density. The header layout + icon-glyph box mechanism live in
|
|
6
|
+
* @refrakt-md/skeleton (styles/runes/hint.css). */
|
|
2
7
|
.rf-hint {
|
|
3
8
|
--hint-color: var(--rf-color-info);
|
|
4
|
-
padding:
|
|
5
|
-
border-radius: var(--rf-radius-md);
|
|
6
|
-
background: var(--rf-color-surface);
|
|
9
|
+
padding: var(--rf-spacing-snug) var(--rf-spacing-cozy);
|
|
7
10
|
}
|
|
8
11
|
.rf-hint__header {
|
|
9
|
-
margin-bottom:
|
|
12
|
+
margin-bottom: var(--rf-spacing-xs);
|
|
10
13
|
color: var(--hint-color);
|
|
11
14
|
}
|
|
12
|
-
/* The lone `hintType` field renders icon + label in one inline-flex span. */
|
|
13
15
|
.rf-hint__header > span {
|
|
14
|
-
|
|
15
|
-
align-items: center;
|
|
16
|
-
gap: 0.375rem;
|
|
17
|
-
}
|
|
18
|
-
.rf-hint__header [data-icon-group="hint"] {
|
|
19
|
-
display: block;
|
|
16
|
+
gap: var(--rf-spacing-xs);
|
|
20
17
|
}
|
|
21
18
|
.rf-hint__header [data-icon-group="hint"]::before {
|
|
22
|
-
content: '';
|
|
23
|
-
display: block;
|
|
24
|
-
width: 1.25rem;
|
|
25
|
-
height: 1.25rem;
|
|
26
19
|
background-color: var(--hint-color);
|
|
27
|
-
-webkit-mask-size: contain;
|
|
28
|
-
mask-size: contain;
|
|
29
|
-
-webkit-mask-repeat: no-repeat;
|
|
30
|
-
mask-repeat: no-repeat;
|
|
31
|
-
}
|
|
32
|
-
[data-icon-group="hint"][data-icon="note"]::before {
|
|
33
|
-
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='16' x2='12' y2='12'/%3E%3Cline x1='12' y1='8' x2='12.01' y2='8'/%3E%3C/svg%3E");
|
|
34
|
-
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='16' x2='12' y2='12'/%3E%3Cline x1='12' y1='8' x2='12.01' y2='8'/%3E%3C/svg%3E");
|
|
35
|
-
}
|
|
36
|
-
[data-icon-group="hint"][data-icon="warning"]::before {
|
|
37
|
-
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z'/%3E%3Cline x1='12' y1='9' x2='12' y2='13'/%3E%3Cline x1='12' y1='17' x2='12.01' y2='17'/%3E%3C/svg%3E");
|
|
38
|
-
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z'/%3E%3Cline x1='12' y1='9' x2='12' y2='13'/%3E%3Cline x1='12' y1='17' x2='12.01' y2='17'/%3E%3C/svg%3E");
|
|
39
|
-
}
|
|
40
|
-
[data-icon-group="hint"][data-icon="caution"]::before {
|
|
41
|
-
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='15' y1='9' x2='9' y2='15'/%3E%3Cline x1='9' y1='9' x2='15' y2='15'/%3E%3C/svg%3E");
|
|
42
|
-
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='15' y1='9' x2='9' y2='15'/%3E%3Cline x1='9' y1='9' x2='15' y2='15'/%3E%3C/svg%3E");
|
|
43
|
-
}
|
|
44
|
-
[data-icon-group="hint"][data-icon="check"]::before {
|
|
45
|
-
-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'/%3E%3Cpolyline points='22 4 12 14.01 9 11.01'/%3E%3C/svg%3E");
|
|
46
|
-
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'/%3E%3Cpolyline points='22 4 12 14.01 9 11.01'/%3E%3C/svg%3E");
|
|
47
20
|
}
|
|
48
21
|
.rf-hint__header [data-meta-value] {
|
|
49
22
|
font-weight: var(--rf-weight-semibold);
|
|
@@ -75,18 +48,20 @@
|
|
|
75
48
|
|
|
76
49
|
/* Context-aware: compact hint when nested inside a hero */
|
|
77
50
|
.rf-hint--in-hero {
|
|
78
|
-
margin:
|
|
79
|
-
padding:
|
|
51
|
+
margin: var(--rf-spacing-cozy) 0 0;
|
|
52
|
+
padding: var(--rf-spacing-sm) var(--rf-spacing-cozy);
|
|
80
53
|
border-radius: var(--rf-radius-sm);
|
|
81
54
|
font-size: var(--rf-text-sm);
|
|
82
55
|
}
|
|
83
56
|
.rf-hint--in-hero .rf-hint__header {
|
|
84
|
-
margin-bottom:
|
|
57
|
+
margin-bottom: var(--rf-spacing-xs);
|
|
85
58
|
}
|
|
86
59
|
|
|
87
60
|
/* Context-aware: hint inside a feature block */
|
|
88
61
|
.rf-hint--in-feature {
|
|
89
|
-
margin:
|
|
90
|
-
padding:
|
|
62
|
+
margin: var(--rf-spacing-snug) 0 0;
|
|
63
|
+
padding: var(--rf-spacing-sm) var(--rf-spacing-snug);
|
|
91
64
|
font-size: var(--rf-text-sm);
|
|
92
65
|
}
|
|
66
|
+
|
|
67
|
+
}
|
package/styles/runes/howto.css
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@layer skin {
|
|
1
2
|
/* HowTo — matches recipe design */
|
|
2
3
|
|
|
3
4
|
/* Tools/materials list — surfaced zone with primary markers */
|
|
@@ -21,29 +22,16 @@
|
|
|
21
22
|
.rf-howto__content ol {
|
|
22
23
|
padding-left: 0;
|
|
23
24
|
margin: 0;
|
|
24
|
-
list-style: none;
|
|
25
|
-
counter-reset: howto-step;
|
|
26
25
|
}
|
|
27
26
|
.rf-howto__content ol > li {
|
|
28
|
-
counter-increment: howto-step;
|
|
29
27
|
padding: 0.625rem 0;
|
|
30
28
|
padding-left: 2.25rem;
|
|
31
|
-
position: relative;
|
|
32
29
|
line-height: var(--rf-leading-relaxed);
|
|
33
30
|
}
|
|
34
31
|
.rf-howto__content ol > li + li {
|
|
35
32
|
border-top: 1px solid var(--rf-color-border);
|
|
36
33
|
}
|
|
37
34
|
.rf-howto__content ol > li::before {
|
|
38
|
-
content: counter(howto-step);
|
|
39
|
-
position: absolute;
|
|
40
|
-
left: 0;
|
|
41
|
-
top: 0.625rem;
|
|
42
|
-
width: 1.5rem;
|
|
43
|
-
height: 1.5rem;
|
|
44
|
-
display: flex;
|
|
45
|
-
align-items: center;
|
|
46
|
-
justify-content: center;
|
|
47
35
|
font-size: var(--rf-text-xs);
|
|
48
36
|
font-weight: var(--rf-weight-bold);
|
|
49
37
|
color: var(--rf-color-primary);
|
|
@@ -71,23 +59,13 @@
|
|
|
71
59
|
.rf-howto__content blockquote p {
|
|
72
60
|
margin: 0;
|
|
73
61
|
}
|
|
74
|
-
|
|
75
|
-
/* Metadata — est. time / difficulty are short, symmetric facts, so keep the
|
|
76
|
-
* def-list a dense tile grid at every width (a smaller column min than the
|
|
77
|
-
* 8rem default) instead of the shared mobile label/value list. */
|
|
78
|
-
.rf-howto__metadata {
|
|
79
|
-
grid-template-columns: repeat(auto-fit, minmax(6rem, 1fr));
|
|
80
|
-
}
|
|
81
62
|
@media (max-width: 48rem) {
|
|
82
63
|
.rf-howto__metadata {
|
|
83
|
-
grid-template-columns: repeat(auto-fit, minmax(6rem, 1fr));
|
|
84
64
|
gap: 0.75rem;
|
|
85
|
-
align-items: normal;
|
|
86
65
|
padding: 0;
|
|
87
66
|
border: none;
|
|
88
67
|
}
|
|
89
|
-
.rf-howto__metadata > [data-name="row"] {
|
|
90
|
-
display: flex;
|
|
91
|
-
}
|
|
92
68
|
}
|
|
93
69
|
|
|
70
|
+
|
|
71
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@layer skin {
|
|
1
2
|
/* Itinerary */
|
|
2
3
|
.rf-itinerary {
|
|
3
4
|
margin: 2rem 0;
|
|
@@ -21,18 +22,13 @@
|
|
|
21
22
|
padding-bottom: 0.5rem;
|
|
22
23
|
border-bottom: 2px solid var(--rf-color-border);
|
|
23
24
|
}
|
|
24
|
-
.rf-itinerary-day__header:empty {
|
|
25
|
-
display: none;
|
|
26
|
-
}
|
|
27
25
|
.rf-itinerary-day ol {
|
|
28
|
-
list-style: none;
|
|
29
26
|
padding: 0;
|
|
30
27
|
margin: 0;
|
|
31
28
|
}
|
|
32
29
|
|
|
33
30
|
/* Stop */
|
|
34
31
|
.rf-itinerary-stop {
|
|
35
|
-
position: relative;
|
|
36
32
|
padding-left: 2rem;
|
|
37
33
|
padding-bottom: 1.5rem;
|
|
38
34
|
border-left: 2px solid var(--rf-color-border);
|
|
@@ -43,12 +39,6 @@
|
|
|
43
39
|
padding-bottom: 0;
|
|
44
40
|
}
|
|
45
41
|
.rf-itinerary-stop::before {
|
|
46
|
-
content: '';
|
|
47
|
-
position: absolute;
|
|
48
|
-
left: -0.4375rem;
|
|
49
|
-
top: 0.25rem;
|
|
50
|
-
width: 0.75rem;
|
|
51
|
-
height: 0.75rem;
|
|
52
42
|
border-radius: 50%;
|
|
53
43
|
background: var(--rf-color-primary);
|
|
54
44
|
border: 2px solid var(--rf-color-bg);
|
|
@@ -57,7 +47,6 @@
|
|
|
57
47
|
|
|
58
48
|
/* Stop time */
|
|
59
49
|
.rf-itinerary-stop__time {
|
|
60
|
-
display: block;
|
|
61
50
|
font-size: var(--rf-text-xs);
|
|
62
51
|
font-weight: var(--rf-weight-semibold);
|
|
63
52
|
color: var(--rf-color-primary);
|
|
@@ -67,7 +56,6 @@
|
|
|
67
56
|
|
|
68
57
|
/* Stop location */
|
|
69
58
|
.rf-itinerary-stop__location {
|
|
70
|
-
display: block;
|
|
71
59
|
font-size: var(--rf-text);
|
|
72
60
|
font-weight: var(--rf-weight-bold);
|
|
73
61
|
color: var(--rf-color-text);
|
|
@@ -87,9 +75,6 @@
|
|
|
87
75
|
/* Duration badge */
|
|
88
76
|
.rf-itinerary-stop[data-duration]::after {
|
|
89
77
|
content: attr(data-duration);
|
|
90
|
-
position: absolute;
|
|
91
|
-
top: 0.15rem;
|
|
92
|
-
right: 0;
|
|
93
78
|
font-size: var(--rf-text-xs);
|
|
94
79
|
font-weight: var(--rf-weight-medium);
|
|
95
80
|
color: var(--rf-color-muted);
|
|
@@ -126,13 +111,10 @@
|
|
|
126
111
|
|
|
127
112
|
/* Horizontal direction */
|
|
128
113
|
.rf-itinerary--horizontal .rf-itinerary-day ol {
|
|
129
|
-
display: flex;
|
|
130
114
|
gap: 2rem;
|
|
131
|
-
overflow-x: auto;
|
|
132
115
|
padding: 2rem 0 1rem;
|
|
133
116
|
}
|
|
134
117
|
.rf-itinerary--horizontal .rf-itinerary-stop {
|
|
135
|
-
min-width: 14rem;
|
|
136
118
|
padding-left: 0;
|
|
137
119
|
padding-top: 1.5rem;
|
|
138
120
|
padding-bottom: 0;
|
|
@@ -143,31 +125,20 @@
|
|
|
143
125
|
.rf-itinerary--horizontal .rf-itinerary-stop:last-child {
|
|
144
126
|
border-top-color: transparent;
|
|
145
127
|
}
|
|
146
|
-
.rf-itinerary--horizontal .rf-itinerary-stop::before {
|
|
147
|
-
left: 0.5rem;
|
|
148
|
-
top: -0.4375rem;
|
|
149
|
-
}
|
|
150
128
|
.rf-itinerary--horizontal .rf-itinerary-stop[data-duration]::after {
|
|
151
|
-
position: static;
|
|
152
|
-
display: inline-block;
|
|
153
129
|
margin-top: 0.5rem;
|
|
154
130
|
}
|
|
155
|
-
|
|
156
|
-
/* Compact style */
|
|
157
|
-
.rf-itinerary--compact .rf-itinerary-stop__body {
|
|
158
|
-
display: none;
|
|
159
|
-
}
|
|
160
131
|
.rf-itinerary--compact .rf-itinerary-stop {
|
|
161
132
|
padding-bottom: 0.75rem;
|
|
162
133
|
}
|
|
163
134
|
.rf-itinerary--compact .rf-itinerary-stop__location {
|
|
164
|
-
display: inline;
|
|
165
135
|
font-size: var(--rf-text-sm);
|
|
166
136
|
}
|
|
167
137
|
.rf-itinerary--compact .rf-itinerary-stop__time {
|
|
168
|
-
display: inline;
|
|
169
138
|
margin-bottom: 0;
|
|
170
139
|
}
|
|
171
140
|
.rf-itinerary--compact .rf-itinerary-stop__time::after {
|
|
172
141
|
content: ' — ';
|
|
173
142
|
}
|
|
143
|
+
|
|
144
|
+
}
|
|
@@ -1,135 +1,58 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
.rf-juxtapose--auto,
|
|
6
|
-
.rf-juxtapose--fade,
|
|
7
|
-
.rf-juxtapose--toggle {
|
|
8
|
-
/* shared base — no additional styling needed */
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
/* ─── Panels container ─── */
|
|
1
|
+
@layer skin {
|
|
2
|
+
/* Juxtapose — skin. The panel clip/positioning, label placement, media fill, slider
|
|
3
|
+
* divider/handle positioning, toggle-bar flex, and meta/label hides live in
|
|
4
|
+
* @refrakt-md/skeleton (styles/runes/juxtapose.css). */
|
|
12
5
|
.rf-juxtapose__panels {
|
|
13
6
|
border-radius: var(--rf-radius-md);
|
|
14
|
-
overflow: hidden;
|
|
15
7
|
border: 1px solid var(--rf-color-border);
|
|
16
8
|
background: var(--rf-color-surface);
|
|
17
9
|
}
|
|
18
|
-
|
|
19
|
-
/* ─── Panel ─── */
|
|
20
|
-
.rf-juxtapose-panel {
|
|
21
|
-
position: relative;
|
|
22
|
-
overflow: hidden;
|
|
23
|
-
}
|
|
24
10
|
.rf-juxtapose-panel__name {
|
|
25
|
-
position: absolute;
|
|
26
|
-
bottom: 0.5rem;
|
|
27
11
|
padding: 0.25rem 0.75rem;
|
|
28
12
|
background: rgba(0, 0, 0, 0.6);
|
|
29
13
|
color: white;
|
|
30
14
|
font-size: var(--rf-text-xs);
|
|
31
15
|
font-weight: var(--rf-weight-semibold);
|
|
32
16
|
border-radius: var(--rf-radius-sm);
|
|
33
|
-
pointer-events: none;
|
|
34
|
-
}
|
|
35
|
-
/* First panel: label bottom-left */
|
|
36
|
-
.rf-juxtapose-panel:first-child .rf-juxtapose-panel__name {
|
|
37
|
-
left: 0.5rem;
|
|
38
|
-
}
|
|
39
|
-
/* Second panel: label bottom-right */
|
|
40
|
-
.rf-juxtapose-panel:last-child .rf-juxtapose-panel__name {
|
|
41
|
-
right: 0.5rem;
|
|
42
17
|
}
|
|
43
|
-
.rf-juxtapose-panel__body {
|
|
44
|
-
/* Content fills the panel */
|
|
45
|
-
}
|
|
46
|
-
.rf-juxtapose-panel__body :is(img, .rf-placeholder) {
|
|
47
|
-
display: block;
|
|
48
|
-
width: 100%;
|
|
49
|
-
height: auto;
|
|
50
|
-
object-fit: cover;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/* Hide meta tags inside panels */
|
|
54
|
-
.rf-juxtapose-panel > meta { display: none; }
|
|
55
|
-
|
|
56
|
-
/* ─── Toggle variant: labels only on buttons, not in panels ─── */
|
|
57
|
-
.rf-juxtapose--toggle .rf-juxtapose-panel__name {
|
|
58
|
-
display: none;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/* ─── Slider divider (injected by behavior) ─── */
|
|
62
18
|
.rf-juxtapose__divider {
|
|
63
|
-
position: absolute;
|
|
64
|
-
z-index: 10;
|
|
65
19
|
cursor: col-resize;
|
|
66
|
-
touch-action: none;
|
|
67
20
|
}
|
|
68
|
-
|
|
69
|
-
/* Vertical orientation (left/right split) — default */
|
|
70
21
|
.rf-juxtapose:not([data-orientation="horizontal"]) .rf-juxtapose__divider {
|
|
71
|
-
top: 0;
|
|
72
|
-
bottom: 0;
|
|
73
|
-
width: 3px;
|
|
74
|
-
transform: translateX(-50%);
|
|
75
22
|
background: var(--rf-color-bg, #fff);
|
|
76
23
|
box-shadow: var(--rf-shadow-sm);
|
|
77
24
|
}
|
|
78
|
-
|
|
79
|
-
/* Horizontal orientation (top/bottom split) */
|
|
80
25
|
.rf-juxtapose[data-orientation="horizontal"] .rf-juxtapose__divider {
|
|
81
|
-
left: 0;
|
|
82
|
-
right: 0;
|
|
83
|
-
height: 3px;
|
|
84
|
-
transform: translateY(-50%);
|
|
85
26
|
background: var(--rf-color-bg, #fff);
|
|
86
27
|
box-shadow: var(--rf-shadow-sm);
|
|
87
28
|
cursor: row-resize;
|
|
88
29
|
}
|
|
89
|
-
|
|
90
30
|
.rf-juxtapose__divider-handle {
|
|
91
|
-
position: absolute;
|
|
92
|
-
top: 50%;
|
|
93
|
-
left: 50%;
|
|
94
|
-
transform: translate(-50%, -50%);
|
|
95
|
-
width: 2.5rem;
|
|
96
|
-
height: 2.5rem;
|
|
97
31
|
border-radius: var(--rf-radius-full);
|
|
98
32
|
background: var(--rf-color-bg, #fff);
|
|
99
33
|
border: 2px solid var(--rf-color-border);
|
|
100
34
|
box-shadow: var(--rf-shadow-md);
|
|
101
|
-
display: flex;
|
|
102
|
-
align-items: center;
|
|
103
|
-
justify-content: center;
|
|
104
35
|
}
|
|
105
|
-
|
|
106
36
|
.rf-juxtapose__divider-handle::before {
|
|
107
|
-
content: '\2194';
|
|
37
|
+
content: '\2194';
|
|
108
38
|
font-size: var(--rf-text);
|
|
109
39
|
color: var(--rf-color-muted);
|
|
110
40
|
line-height: 1;
|
|
111
41
|
}
|
|
112
|
-
|
|
113
42
|
.rf-juxtapose[data-orientation="horizontal"] .rf-juxtapose__divider-handle::before {
|
|
114
|
-
content: '\2195';
|
|
43
|
+
content: '\2195';
|
|
115
44
|
}
|
|
116
|
-
|
|
117
45
|
.rf-juxtapose__divider:focus-visible {
|
|
118
46
|
outline: 2px solid var(--rf-color-primary);
|
|
119
47
|
outline-offset: 2px;
|
|
120
48
|
}
|
|
121
|
-
|
|
122
|
-
/* ─── Toggle bar (injected by behavior) ─── */
|
|
123
49
|
.rf-juxtapose__toggle-bar {
|
|
124
|
-
display: flex;
|
|
125
50
|
gap: 0.125rem;
|
|
126
51
|
padding: 0.125rem;
|
|
127
52
|
margin-bottom: 0.75rem;
|
|
128
53
|
background: var(--rf-color-surface-active);
|
|
129
54
|
border-radius: var(--rf-radius-full);
|
|
130
|
-
width: fit-content;
|
|
131
55
|
}
|
|
132
|
-
|
|
133
56
|
.rf-juxtapose__toggle-btn,
|
|
134
57
|
.rf-juxtapose__toggle-btn[data-state] {
|
|
135
58
|
padding: 0.25rem 0.75rem;
|
|
@@ -142,20 +65,22 @@
|
|
|
142
65
|
cursor: pointer;
|
|
143
66
|
transition: background 150ms ease, color 150ms ease;
|
|
144
67
|
}
|
|
145
|
-
|
|
146
68
|
.rf-juxtapose__toggle-btn:hover {
|
|
147
69
|
color: var(--rf-color-text);
|
|
148
70
|
}
|
|
149
|
-
|
|
150
71
|
.rf-juxtapose__toggle-btn--active,
|
|
151
72
|
.rf-juxtapose__toggle-btn[data-state="active"] {
|
|
152
73
|
background: var(--rf-color-bg);
|
|
153
74
|
color: var(--rf-color-text);
|
|
154
75
|
box-shadow: var(--rf-shadow-xs);
|
|
155
76
|
}
|
|
156
|
-
|
|
157
|
-
/* ─── Fade variant cursor hint ─── */
|
|
158
77
|
.rf-juxtapose--fade .rf-juxtapose__panels {
|
|
159
78
|
cursor: pointer;
|
|
160
79
|
}
|
|
80
|
+
[data-section="media"] > .rf-juxtapose .rf-juxtapose__panels {
|
|
81
|
+
background: transparent;
|
|
82
|
+
border: 0;
|
|
83
|
+
border-radius: var(--rf-radius-media);
|
|
84
|
+
}
|
|
161
85
|
|
|
86
|
+
}
|
package/styles/runes/lore.css
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
.rf-lore {
|
|
3
|
-
position: relative;
|
|
4
|
-
}
|
|
1
|
+
@layer skin {
|
|
5
2
|
|
|
6
3
|
/* Content */
|
|
7
4
|
.rf-lore__content {
|
|
@@ -15,7 +12,6 @@
|
|
|
15
12
|
font-style: italic;
|
|
16
13
|
}
|
|
17
14
|
.rf-lore > span[property="title"] {
|
|
18
|
-
display: block;
|
|
19
15
|
font-size: var(--rf-text-2xl);
|
|
20
16
|
font-weight: var(--rf-weight-bold);
|
|
21
17
|
margin-bottom: 0.5rem;
|
|
@@ -29,10 +25,6 @@
|
|
|
29
25
|
}
|
|
30
26
|
.rf-lore--spoiler::after {
|
|
31
27
|
content: 'Contains spoilers \2014 click to reveal';
|
|
32
|
-
position: absolute;
|
|
33
|
-
top: 50%;
|
|
34
|
-
left: 50%;
|
|
35
|
-
transform: translate(-50%, -50%);
|
|
36
28
|
padding: 0.5rem 1rem;
|
|
37
29
|
background: var(--rf-color-bg);
|
|
38
30
|
border-radius: var(--rf-radius-md);
|
|
@@ -40,5 +32,6 @@
|
|
|
40
32
|
font-weight: var(--rf-weight-medium);
|
|
41
33
|
color: var(--rf-color-muted);
|
|
42
34
|
cursor: pointer;
|
|
43
|
-
|
|
35
|
+
}
|
|
36
|
+
|
|
44
37
|
}
|
package/styles/runes/map.css
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
@layer skin {
|
|
1
2
|
/* ── Map Rune ── */
|
|
2
3
|
|
|
3
4
|
.rf-map {
|
|
4
5
|
margin: 2rem 0;
|
|
5
6
|
border-radius: var(--rf-radius-lg, 0.75rem);
|
|
6
|
-
overflow: hidden;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
/* Spacing variants */
|
|
@@ -12,15 +12,7 @@
|
|
|
12
12
|
.rf-map--spacing-loose { margin: 3rem 0; }
|
|
13
13
|
.rf-map--spacing-breathe { margin: 4rem 0; }
|
|
14
14
|
|
|
15
|
-
/* Height variants */
|
|
16
|
-
.rf-map--small .rf-map__container { height: 200px; }
|
|
17
|
-
.rf-map--medium .rf-map__container { height: 400px; }
|
|
18
|
-
.rf-map--large .rf-map__container { height: 600px; }
|
|
19
|
-
.rf-map--full .rf-map__container { height: 80vh; min-height: 400px; }
|
|
20
|
-
|
|
21
15
|
.rf-map__container {
|
|
22
|
-
width: 100%;
|
|
23
|
-
position: relative;
|
|
24
16
|
background: var(--rf-color-surface, #f8f9fa);
|
|
25
17
|
/* Establish a stacking context so Leaflet's internal pane z-indices
|
|
26
18
|
* (tile-pane 200, overlay-pane 400, marker-pane 600, popup-pane 700,
|
|
@@ -28,14 +20,12 @@
|
|
|
28
20
|
* a map dropped into a cover card's media slot punches through the
|
|
29
21
|
* cover scrim (z-index auto) and overlaid content (z-index 1).
|
|
30
22
|
* `position: relative` alone is not enough; `isolation: isolate` is. */
|
|
31
|
-
isolation: isolate;
|
|
32
23
|
}
|
|
33
24
|
|
|
34
25
|
/* Fallback list shown while Leaflet loads */
|
|
35
26
|
.rf-map__fallback {
|
|
36
27
|
padding: 1.5rem;
|
|
37
28
|
margin: 0;
|
|
38
|
-
list-style: decimal inside;
|
|
39
29
|
font-size: var(--rf-text-sm);
|
|
40
30
|
color: var(--rf-color-muted);
|
|
41
31
|
}
|
|
@@ -48,19 +38,6 @@
|
|
|
48
38
|
color: var(--rf-color-text);
|
|
49
39
|
}
|
|
50
40
|
|
|
51
|
-
/* Accessible text list (visible to screen readers, hidden visually) */
|
|
52
|
-
.rf-map__pins {
|
|
53
|
-
position: absolute;
|
|
54
|
-
width: 1px;
|
|
55
|
-
height: 1px;
|
|
56
|
-
padding: 0;
|
|
57
|
-
margin: -1px;
|
|
58
|
-
overflow: hidden;
|
|
59
|
-
clip: rect(0, 0, 0, 0);
|
|
60
|
-
white-space: nowrap;
|
|
61
|
-
border: 0;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
41
|
/* MapPin in fallback / a11y list */
|
|
65
42
|
.rf-map-pin {
|
|
66
43
|
padding: 0.25rem 0;
|
|
@@ -72,7 +49,6 @@
|
|
|
72
49
|
}
|
|
73
50
|
|
|
74
51
|
.rf-map-pin__group {
|
|
75
|
-
display: inline-block;
|
|
76
52
|
font-size: var(--rf-text-xs);
|
|
77
53
|
padding: 0.1rem 0.5rem;
|
|
78
54
|
border-radius: var(--rf-radius-sm, 0.25rem);
|
|
@@ -81,12 +57,6 @@
|
|
|
81
57
|
margin-left: 0.5rem;
|
|
82
58
|
}
|
|
83
59
|
|
|
84
|
-
/* Hide meta tags and property spans inside the map */
|
|
85
|
-
.rf-map meta,
|
|
86
|
-
.rf-map span[property] {
|
|
87
|
-
display: none;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
60
|
/* ── Map as a media guest ──
|
|
91
61
|
* When dropped into a `[data-section="media"]` slot (e.g. a card or
|
|
92
62
|
* bento-cell in cover mode), the map yields its standalone presentation to
|
|
@@ -99,12 +69,8 @@
|
|
|
99
69
|
[data-section="media"] > .rf-map {
|
|
100
70
|
margin: 0;
|
|
101
71
|
padding: 0;
|
|
102
|
-
height: 100%;
|
|
103
72
|
border-radius: inherit;
|
|
104
73
|
}
|
|
105
|
-
[data-section="media"] > .rf-map > .rf-map__container {
|
|
106
|
-
height: 100%;
|
|
107
|
-
}
|
|
108
74
|
[data-section="media"] .rf-map__fallback {
|
|
109
75
|
padding: 0.75rem 1rem;
|
|
110
76
|
}
|
|
@@ -123,7 +89,6 @@
|
|
|
123
89
|
}
|
|
124
90
|
|
|
125
91
|
.rf-map .leaflet-popup-content strong {
|
|
126
|
-
display: block;
|
|
127
92
|
font-size: var(--rf-text);
|
|
128
93
|
margin-bottom: 0.25rem;
|
|
129
94
|
}
|
|
@@ -145,3 +110,5 @@
|
|
|
145
110
|
.rf-map .leaflet-popup-content a:hover {
|
|
146
111
|
text-decoration: underline;
|
|
147
112
|
}
|
|
113
|
+
|
|
114
|
+
}
|
|
@@ -1,32 +1,13 @@
|
|
|
1
|
+
@layer skin {
|
|
1
2
|
/* MediaText */
|
|
2
3
|
|
|
3
4
|
/* Grid mode (default — no wrap) */
|
|
4
5
|
.rf-mediatext:not([data-wrap="true"]) {
|
|
5
|
-
display: grid;
|
|
6
6
|
gap: 2rem;
|
|
7
|
-
align-items: start;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
/* Ratio variants for grid mode */
|
|
11
|
-
.rf-mediatext[data-ratio="1:1"]:not([data-wrap="true"]) {
|
|
12
|
-
grid-template-columns: 1fr 1fr;
|
|
13
|
-
}
|
|
14
|
-
.rf-mediatext[data-ratio="1:2"]:not([data-wrap="true"]) {
|
|
15
|
-
grid-template-columns: 1fr 2fr;
|
|
16
|
-
}
|
|
17
|
-
.rf-mediatext[data-ratio="2:1"]:not([data-wrap="true"]) {
|
|
18
|
-
grid-template-columns: 2fr 1fr;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/* Right alignment — media on the right in grid mode */
|
|
22
|
-
.rf-mediatext--right:not([data-wrap="true"]) .rf-mediatext__media {
|
|
23
|
-
order: 1;
|
|
24
7
|
}
|
|
25
8
|
|
|
26
9
|
/* Media container */
|
|
27
10
|
.rf-mediatext__media :is(img, .rf-placeholder) {
|
|
28
|
-
max-width: 100%;
|
|
29
|
-
height: auto;
|
|
30
11
|
border-radius: var(--rf-radius-md);
|
|
31
12
|
}
|
|
32
13
|
|
|
@@ -38,40 +19,18 @@
|
|
|
38
19
|
.rf-mediatext[data-wrap="true"] .rf-mediatext__media {
|
|
39
20
|
margin-bottom: 1rem;
|
|
40
21
|
}
|
|
41
|
-
.rf-mediatext[data-ratio="1:1"][data-wrap="true"] .rf-mediatext__media {
|
|
42
|
-
max-width: 50%;
|
|
43
|
-
}
|
|
44
|
-
.rf-mediatext[data-ratio="1:2"][data-wrap="true"] .rf-mediatext__media {
|
|
45
|
-
max-width: 33.333%;
|
|
46
|
-
}
|
|
47
|
-
.rf-mediatext[data-ratio="2:1"][data-wrap="true"] .rf-mediatext__media {
|
|
48
|
-
max-width: 66.666%;
|
|
49
|
-
}
|
|
50
22
|
.rf-mediatext--left[data-wrap="true"] .rf-mediatext__media {
|
|
51
|
-
float: left;
|
|
52
23
|
margin-right: 2rem;
|
|
53
24
|
}
|
|
54
25
|
.rf-mediatext--right[data-wrap="true"] .rf-mediatext__media {
|
|
55
|
-
float: right;
|
|
56
26
|
margin-left: 2rem;
|
|
57
27
|
}
|
|
58
|
-
.rf-mediatext[data-wrap="true"]::after {
|
|
59
|
-
content: '';
|
|
60
|
-
display: table;
|
|
61
|
-
clear: both;
|
|
62
|
-
}
|
|
63
28
|
|
|
64
29
|
/* Responsive — stack on mobile */
|
|
65
30
|
@media (max-width: 768px) {
|
|
66
|
-
.rf-mediatext:not([data-wrap="true"]) {
|
|
67
|
-
grid-template-columns: 1fr !important;
|
|
68
|
-
}
|
|
69
|
-
.rf-mediatext--right:not([data-wrap="true"]) .rf-mediatext__media {
|
|
70
|
-
order: 0;
|
|
71
|
-
}
|
|
72
31
|
.rf-mediatext[data-wrap="true"] .rf-mediatext__media {
|
|
73
|
-
float: none;
|
|
74
|
-
max-width: 100%;
|
|
75
32
|
margin: 0 0 1rem 0;
|
|
76
33
|
}
|
|
77
34
|
}
|
|
35
|
+
|
|
36
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
@layer skin {
|
|
1
2
|
/* Milestone */
|
|
2
3
|
|
|
3
4
|
/* SPEC-079: eyebrow + metadata zone names replace header-primary /
|
|
@@ -43,15 +44,10 @@
|
|
|
43
44
|
|
|
44
45
|
/* Backlog tabs */
|
|
45
46
|
.rf-milestone__tabs {
|
|
46
|
-
display: flex;
|
|
47
47
|
border-bottom: 1px solid var(--rf-color-border);
|
|
48
|
-
overflow-x: auto;
|
|
49
|
-
overflow-y: hidden;
|
|
50
|
-
-webkit-overflow-scrolling: touch;
|
|
51
48
|
margin-bottom: 0;
|
|
52
49
|
}
|
|
53
50
|
.rf-milestone__tab {
|
|
54
|
-
flex: 0 0 auto;
|
|
55
51
|
padding: 0.5rem 1rem;
|
|
56
52
|
font-size: var(--rf-text-sm);
|
|
57
53
|
font-weight: var(--rf-weight-medium);
|
|
@@ -82,14 +78,9 @@
|
|
|
82
78
|
|
|
83
79
|
/* Aggregate progress */
|
|
84
80
|
.rf-milestone__progress {
|
|
85
|
-
display: flex;
|
|
86
|
-
flex-direction: column;
|
|
87
81
|
margin-bottom: 1rem;
|
|
88
82
|
}
|
|
89
83
|
.rf-milestone__progress-header {
|
|
90
|
-
display: flex;
|
|
91
|
-
justify-content: space-between;
|
|
92
|
-
align-items: baseline;
|
|
93
84
|
margin-bottom: 0.375rem;
|
|
94
85
|
}
|
|
95
86
|
.rf-milestone__progress-label {
|
|
@@ -103,17 +94,13 @@
|
|
|
103
94
|
color: var(--rf-color-muted);
|
|
104
95
|
}
|
|
105
96
|
.rf-milestone__progress-bar {
|
|
106
|
-
height: 0.375rem;
|
|
107
97
|
border-radius: var(--rf-radius-sm);
|
|
108
98
|
background: var(--rf-color-surface-active);
|
|
109
|
-
overflow: hidden;
|
|
110
99
|
}
|
|
111
100
|
.rf-milestone__progress-bar::after {
|
|
112
|
-
content: '';
|
|
113
|
-
display: block;
|
|
114
|
-
height: 100%;
|
|
115
|
-
width: var(--rf-progress, 0%);
|
|
116
101
|
background: var(--rf-color-primary);
|
|
117
102
|
border-radius: var(--rf-radius-sm);
|
|
118
103
|
transition: width 0.3s ease;
|
|
119
104
|
}
|
|
105
|
+
|
|
106
|
+
}
|