@refrakt-md/lumina 0.7.1 → 0.8.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/contracts/structures.json +670 -94
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +75 -1
- package/dist/config.js.map +1 -1
- package/index.css +12 -0
- package/package.json +5 -5
- package/styles/base/attributes.css +20 -0
- package/styles/global.css +2 -2
- package/styles/layouts/default.css +131 -5
- package/styles/layouts/split.css +34 -0
- package/styles/runes/accordion.css +36 -0
- package/styles/runes/annotate.css +2 -2
- package/styles/runes/audio.css +199 -0
- package/styles/runes/bento.css +81 -4
- package/styles/runes/bg.css +53 -0
- package/styles/runes/budget.css +2 -2
- package/styles/runes/cast.css +1 -1
- package/styles/runes/codegroup.css +9 -0
- package/styles/runes/comparison.css +2 -2
- package/styles/runes/conversation.css +4 -4
- package/styles/runes/cta.css +58 -4
- package/styles/runes/feature.css +63 -17
- package/styles/runes/gallery.css +182 -0
- package/styles/runes/grid.css +39 -5
- package/styles/runes/hero.css +78 -13
- package/styles/runes/itinerary.css +2 -0
- package/styles/runes/mockup.css +539 -0
- package/styles/runes/page-section.css +1 -0
- package/styles/runes/playlist.css +88 -0
- package/styles/runes/preview.css +3 -4
- package/styles/runes/pricing.css +34 -2
- package/styles/runes/reveal.css +38 -2
- package/styles/runes/showcase.css +94 -0
- package/styles/runes/steps.css +38 -10
- package/styles/runes/storyboard.css +2 -2
- package/styles/runes/tabs.css +36 -0
- package/styles/runes/tint.css +203 -0
- package/styles/runes/track.css +118 -0
- package/tokens/base.css +21 -1
package/styles/runes/bento.css
CHANGED
|
@@ -2,6 +2,42 @@
|
|
|
2
2
|
.rf-bento {
|
|
3
3
|
margin: 1.5rem 0;
|
|
4
4
|
}
|
|
5
|
+
.rf-bento__header {
|
|
6
|
+
margin-bottom: 1.5rem;
|
|
7
|
+
}
|
|
8
|
+
.rf-bento__eyebrow {
|
|
9
|
+
font-size: 0.8125rem;
|
|
10
|
+
font-weight: 600;
|
|
11
|
+
letter-spacing: 0.05em;
|
|
12
|
+
text-transform: uppercase;
|
|
13
|
+
color: var(--rf-color-primary);
|
|
14
|
+
margin: 0 0 0.5rem;
|
|
15
|
+
}
|
|
16
|
+
.rf-bento__eyebrow:has(a) {
|
|
17
|
+
display: inline-block;
|
|
18
|
+
position: relative;
|
|
19
|
+
padding: 0.25rem 0.875rem;
|
|
20
|
+
border: 1px solid var(--rf-color-border);
|
|
21
|
+
border-radius: var(--rf-radius-full);
|
|
22
|
+
color: var(--rf-color-text);
|
|
23
|
+
font-weight: 400;
|
|
24
|
+
text-transform: none;
|
|
25
|
+
letter-spacing: 0;
|
|
26
|
+
transition: border-color 150ms ease;
|
|
27
|
+
}
|
|
28
|
+
.rf-bento__eyebrow:has(a):hover { border-color: var(--rf-color-muted); }
|
|
29
|
+
.rf-bento__eyebrow:has(a) a { color: var(--rf-color-primary); font-weight: 600; text-decoration: none; }
|
|
30
|
+
.rf-bento__eyebrow:has(a) a::before { content: ''; position: absolute; inset: 0; border-radius: inherit; }
|
|
31
|
+
.rf-bento__headline {
|
|
32
|
+
margin-top: 0;
|
|
33
|
+
}
|
|
34
|
+
.rf-bento__blurb {
|
|
35
|
+
color: var(--rf-color-muted);
|
|
36
|
+
margin-bottom: 0;
|
|
37
|
+
}
|
|
38
|
+
.rf-bento__image {
|
|
39
|
+
margin-bottom: 1rem;
|
|
40
|
+
}
|
|
5
41
|
.rf-bento__grid {
|
|
6
42
|
display: grid;
|
|
7
43
|
grid-template-columns: repeat(var(--bento-columns, 4), 1fr);
|
|
@@ -14,6 +50,9 @@
|
|
|
14
50
|
background: var(--rf-color-surface);
|
|
15
51
|
overflow: hidden;
|
|
16
52
|
}
|
|
53
|
+
.rf-bento-cell--full {
|
|
54
|
+
grid-column: 1 / -1;
|
|
55
|
+
}
|
|
17
56
|
.rf-bento-cell--large {
|
|
18
57
|
grid-column: span 2;
|
|
19
58
|
grid-row: span 2;
|
|
@@ -24,13 +63,31 @@
|
|
|
24
63
|
.rf-bento-cell--small {
|
|
25
64
|
grid-column: span 1;
|
|
26
65
|
}
|
|
66
|
+
/* Span mode: heading level determines column span via CSS variable */
|
|
67
|
+
.rf-bento-cell--span {
|
|
68
|
+
grid-column: span var(--cell-span, 1);
|
|
69
|
+
}
|
|
70
|
+
.rf-bento-cell__icon {
|
|
71
|
+
margin-bottom: 0.75rem;
|
|
72
|
+
line-height: 0;
|
|
73
|
+
}
|
|
74
|
+
.rf-bento-cell__icon svg {
|
|
75
|
+
width: 1.5rem;
|
|
76
|
+
height: 1.5rem;
|
|
77
|
+
color: var(--rf-color-accent);
|
|
78
|
+
}
|
|
79
|
+
.rf-bento-cell__icon .rf-icon {
|
|
80
|
+
width: 1.5rem;
|
|
81
|
+
height: 1.5rem;
|
|
82
|
+
color: var(--rf-color-accent);
|
|
83
|
+
}
|
|
27
84
|
.rf-bento-cell__title {
|
|
28
|
-
font-size:
|
|
85
|
+
font-size: 1.125rem;
|
|
29
86
|
font-weight: 600;
|
|
30
87
|
margin: 0 0 0.5rem;
|
|
31
88
|
}
|
|
32
|
-
.rf-bento-cell__body span[property],
|
|
33
|
-
.rf-bento-cell__body meta { display: none; }
|
|
89
|
+
.rf-bento-cell__body > span[property],
|
|
90
|
+
.rf-bento-cell__body > meta { display: none; }
|
|
34
91
|
.rf-bento-cell__body p:last-child { margin-bottom: 0; }
|
|
35
92
|
.rf-bento-cell img {
|
|
36
93
|
width: 100%;
|
|
@@ -38,13 +95,33 @@
|
|
|
38
95
|
border-radius: var(--rf-radius-sm);
|
|
39
96
|
margin-bottom: 0.75rem;
|
|
40
97
|
}
|
|
98
|
+
/* Remove padding on bleed edges when showcase bleeds inside a cell */
|
|
99
|
+
.rf-bento-cell:has(.rf-showcase[data-bleed="bottom"]),
|
|
100
|
+
.rf-bento-cell:has(.rf-showcase[data-bleed="both"]),
|
|
101
|
+
.rf-bento-cell:has(.rf-showcase[data-bleed="bottom-end"]) {
|
|
102
|
+
padding-bottom: 0;
|
|
103
|
+
}
|
|
104
|
+
.rf-bento-cell:has(.rf-showcase[data-bleed="end"]),
|
|
105
|
+
.rf-bento-cell:has(.rf-showcase[data-bleed="bottom-end"]),
|
|
106
|
+
.rf-bento-cell:has(.rf-showcase[data-bleed="top-end"]) {
|
|
107
|
+
padding-inline-end: 0;
|
|
108
|
+
}
|
|
109
|
+
.rf-bento-cell:has(.rf-showcase[data-bleed="top"]),
|
|
110
|
+
.rf-bento-cell:has(.rf-showcase[data-bleed="both"]),
|
|
111
|
+
.rf-bento-cell:has(.rf-showcase[data-bleed="top-end"]) {
|
|
112
|
+
padding-top: 0;
|
|
113
|
+
}
|
|
41
114
|
@media (max-width: 768px) {
|
|
42
115
|
.rf-bento__grid { grid-template-columns: repeat(2, 1fr) !important; }
|
|
116
|
+
.rf-bento-cell--full { grid-column: 1 / -1; }
|
|
43
117
|
.rf-bento-cell--large { grid-column: span 2; grid-row: span 1; }
|
|
44
118
|
.rf-bento-cell--medium { grid-column: span 2; }
|
|
119
|
+
.rf-bento-cell--span { grid-column: span min(var(--cell-span, 1), 2); }
|
|
45
120
|
}
|
|
46
121
|
@media (max-width: 480px) {
|
|
47
122
|
.rf-bento__grid { grid-template-columns: 1fr !important; }
|
|
123
|
+
.rf-bento-cell--full,
|
|
48
124
|
.rf-bento-cell--large,
|
|
49
|
-
.rf-bento-cell--medium
|
|
125
|
+
.rf-bento-cell--medium,
|
|
126
|
+
.rf-bento-cell--span { grid-column: span 1; }
|
|
50
127
|
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/* Background — Directive rune for background images, video, overlays, blur */
|
|
2
|
+
|
|
3
|
+
/* Background layer — absolute positioned behind content */
|
|
4
|
+
[data-name="bg"] {
|
|
5
|
+
position: absolute;
|
|
6
|
+
inset: 0;
|
|
7
|
+
z-index: 0;
|
|
8
|
+
overflow: hidden;
|
|
9
|
+
background-image: var(--bg-image);
|
|
10
|
+
background-size: var(--bg-fit, cover);
|
|
11
|
+
background-position: var(--bg-position, center);
|
|
12
|
+
background-repeat: no-repeat;
|
|
13
|
+
}
|
|
14
|
+
/* Blur and opacity applied when set via custom properties */
|
|
15
|
+
[data-name="bg"][style*="--bg-blur"] {
|
|
16
|
+
filter: blur(var(--bg-blur));
|
|
17
|
+
}
|
|
18
|
+
[data-name="bg"][style*="--bg-opacity"] {
|
|
19
|
+
opacity: var(--bg-opacity);
|
|
20
|
+
}
|
|
21
|
+
/* Fixed (parallax) background */
|
|
22
|
+
[data-name="bg"][data-bg-fixed] {
|
|
23
|
+
background-attachment: fixed;
|
|
24
|
+
}
|
|
25
|
+
/* Content above background — any sibling of bg layer gets z-index */
|
|
26
|
+
.rf-has-bg > :not([data-name="bg"]) {
|
|
27
|
+
position: relative;
|
|
28
|
+
z-index: 1;
|
|
29
|
+
}
|
|
30
|
+
/* Video background */
|
|
31
|
+
[data-name="bg-video"] {
|
|
32
|
+
width: 100%;
|
|
33
|
+
height: 100%;
|
|
34
|
+
object-fit: cover;
|
|
35
|
+
object-position: var(--bg-position, center);
|
|
36
|
+
}
|
|
37
|
+
[data-name="bg-video"][style*="--bg-blur"] {
|
|
38
|
+
filter: blur(var(--bg-blur));
|
|
39
|
+
}
|
|
40
|
+
[data-name="bg-video"][style*="--bg-opacity"] {
|
|
41
|
+
opacity: var(--bg-opacity);
|
|
42
|
+
}
|
|
43
|
+
/* Overlay */
|
|
44
|
+
[data-name="bg-overlay"] {
|
|
45
|
+
position: absolute;
|
|
46
|
+
inset: 0;
|
|
47
|
+
}
|
|
48
|
+
[data-name="bg-overlay"][data-bg-overlay="dark"] {
|
|
49
|
+
background: rgba(0, 0, 0, 0.5);
|
|
50
|
+
}
|
|
51
|
+
[data-name="bg-overlay"][data-bg-overlay="light"] {
|
|
52
|
+
background: rgba(255, 255, 255, 0.6);
|
|
53
|
+
}
|
package/styles/runes/budget.css
CHANGED
|
@@ -154,10 +154,10 @@
|
|
|
154
154
|
}
|
|
155
155
|
|
|
156
156
|
/* Summary style — hide line items, show only category headers */
|
|
157
|
-
[data-
|
|
157
|
+
[data-variant="summary"] .rf-budget-category__line-items {
|
|
158
158
|
display: none;
|
|
159
159
|
}
|
|
160
|
-
[data-
|
|
160
|
+
[data-variant="summary"] .rf-budget-category__header {
|
|
161
161
|
margin-bottom: 0;
|
|
162
162
|
padding-bottom: 0;
|
|
163
163
|
border-bottom: none;
|
package/styles/runes/cast.css
CHANGED
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
color: var(--rf-color-muted);
|
|
46
46
|
}
|
|
47
47
|
.rf-cast-member__body:empty { display: none; }
|
|
48
|
-
.rf-cast-member__body span[property] { display: none; }
|
|
48
|
+
.rf-cast-member__body > span[property] { display: none; }
|
|
49
49
|
.rf-cast-member img {
|
|
50
50
|
width: 80px;
|
|
51
51
|
height: 80px;
|
|
@@ -75,3 +75,12 @@
|
|
|
75
75
|
font-family: var(--rf-font-mono);
|
|
76
76
|
font-size: 0.85rem;
|
|
77
77
|
}
|
|
78
|
+
/* Overflow modes */
|
|
79
|
+
.rf-codegroup[data-overflow="wrap"] pre {
|
|
80
|
+
white-space: pre-wrap;
|
|
81
|
+
word-break: break-word;
|
|
82
|
+
overflow-x: hidden;
|
|
83
|
+
}
|
|
84
|
+
.rf-codegroup[data-overflow="hide"] pre {
|
|
85
|
+
overflow-x: hidden;
|
|
86
|
+
}
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
font-weight: 700;
|
|
17
17
|
color: var(--rf-color-text);
|
|
18
18
|
}
|
|
19
|
-
.rf-comparison meta,
|
|
20
|
-
.rf-comparison span[property] { display: none; }
|
|
19
|
+
.rf-comparison > meta,
|
|
20
|
+
.rf-comparison > span[property] { display: none; }
|
|
21
21
|
/* Table layout */
|
|
22
22
|
.rf-comparison__table-wrapper {
|
|
23
23
|
overflow-x: auto;
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
}
|
|
49
49
|
.rf-conversation-message__body p { margin: 0; }
|
|
50
50
|
.rf-conversation-message__body p + p { margin-top: 0.5rem; }
|
|
51
|
-
.rf-conversation-message__body span[property],
|
|
52
|
-
.rf-conversation-message__body meta { display: none; }
|
|
53
|
-
.rf-conversation-message span[property="speaker"],
|
|
54
|
-
.rf-conversation-message meta[property] { display: none; }
|
|
51
|
+
.rf-conversation-message__body > span[property],
|
|
52
|
+
.rf-conversation-message__body > meta { display: none; }
|
|
53
|
+
.rf-conversation-message > span[property="speaker"],
|
|
54
|
+
.rf-conversation-message > meta[property] { display: none; }
|
package/styles/runes/cta.css
CHANGED
|
@@ -1,11 +1,59 @@
|
|
|
1
1
|
/* Call to Action */
|
|
2
2
|
.rf-cta {
|
|
3
|
-
text-align: center;
|
|
4
3
|
padding: 3.5rem 2rem 3rem;
|
|
5
4
|
}
|
|
5
|
+
.rf-cta .rf-cta__header,
|
|
6
|
+
.rf-cta > h1, .rf-cta > h2, .rf-cta > h3,
|
|
7
|
+
.rf-cta > p {
|
|
8
|
+
text-align: center;
|
|
9
|
+
}
|
|
10
|
+
.rf-cta__header {
|
|
11
|
+
margin-bottom: 1.5rem;
|
|
12
|
+
}
|
|
13
|
+
/* Higher specificity needed to override .rf-cta p (0,1,1) */
|
|
14
|
+
.rf-cta .rf-cta__eyebrow {
|
|
15
|
+
font-size: 0.875rem;
|
|
16
|
+
font-weight: 600;
|
|
17
|
+
letter-spacing: 0.05em;
|
|
18
|
+
text-transform: uppercase;
|
|
19
|
+
color: var(--rf-color-primary);
|
|
20
|
+
margin: 0 0 0.75rem;
|
|
21
|
+
max-width: none;
|
|
22
|
+
}
|
|
23
|
+
/* Pill-badge variant when eyebrow contains a link */
|
|
24
|
+
.rf-cta .rf-cta__eyebrow:has(a) {
|
|
25
|
+
display: inline-block;
|
|
26
|
+
position: relative;
|
|
27
|
+
padding: 0.25rem 0.875rem;
|
|
28
|
+
border: 1px solid var(--rf-color-border);
|
|
29
|
+
border-radius: var(--rf-radius-full);
|
|
30
|
+
color: var(--rf-color-text);
|
|
31
|
+
font-weight: 400;
|
|
32
|
+
text-transform: none;
|
|
33
|
+
letter-spacing: 0;
|
|
34
|
+
transition: border-color 150ms ease;
|
|
35
|
+
}
|
|
36
|
+
.rf-cta .rf-cta__eyebrow:has(a):hover {
|
|
37
|
+
border-color: var(--rf-color-muted);
|
|
38
|
+
}
|
|
39
|
+
.rf-cta .rf-cta__eyebrow:has(a) a {
|
|
40
|
+
color: var(--rf-color-primary);
|
|
41
|
+
font-weight: 600;
|
|
42
|
+
text-decoration: none;
|
|
43
|
+
}
|
|
44
|
+
.rf-cta .rf-cta__eyebrow:has(a) a::before {
|
|
45
|
+
content: '';
|
|
46
|
+
position: absolute;
|
|
47
|
+
inset: 0;
|
|
48
|
+
border-radius: inherit;
|
|
49
|
+
}
|
|
50
|
+
.rf-cta__image {
|
|
51
|
+
margin-bottom: 1.5rem;
|
|
52
|
+
}
|
|
6
53
|
.rf-cta h1,
|
|
7
54
|
.rf-cta h2,
|
|
8
|
-
.rf-cta h3
|
|
55
|
+
.rf-cta h3,
|
|
56
|
+
.rf-cta__headline {
|
|
9
57
|
font-size: 2.5rem;
|
|
10
58
|
font-weight: 750;
|
|
11
59
|
letter-spacing: -0.03em;
|
|
@@ -17,7 +65,9 @@
|
|
|
17
65
|
-webkit-text-fill-color: transparent;
|
|
18
66
|
background-clip: text;
|
|
19
67
|
}
|
|
20
|
-
.rf-cta p
|
|
68
|
+
/* Higher specificity needed to override .rf-cta p (0,1,1) */
|
|
69
|
+
.rf-cta p,
|
|
70
|
+
.rf-cta .rf-cta__blurb {
|
|
21
71
|
font-size: 1.15rem;
|
|
22
72
|
color: var(--rf-color-muted);
|
|
23
73
|
max-width: 540px;
|
|
@@ -78,9 +128,13 @@
|
|
|
78
128
|
|
|
79
129
|
/* Context-aware: CTA inside pricing — compact, left-aligned */
|
|
80
130
|
.rf-cta--in-pricing {
|
|
81
|
-
text-align: left;
|
|
82
131
|
padding: 1.5rem 0 0;
|
|
83
132
|
}
|
|
133
|
+
.rf-cta--in-pricing .rf-cta__header,
|
|
134
|
+
.rf-cta--in-pricing > h1, .rf-cta--in-pricing > h2, .rf-cta--in-pricing > h3,
|
|
135
|
+
.rf-cta--in-pricing > p {
|
|
136
|
+
text-align: left;
|
|
137
|
+
}
|
|
84
138
|
.rf-cta--in-pricing p {
|
|
85
139
|
margin: 0 0 1rem;
|
|
86
140
|
max-width: none;
|
package/styles/runes/feature.css
CHANGED
|
@@ -2,42 +2,88 @@
|
|
|
2
2
|
.rf-feature {
|
|
3
3
|
padding: 2.5rem 0 2rem;
|
|
4
4
|
}
|
|
5
|
-
.rf-
|
|
5
|
+
.rf-feature__header {
|
|
6
|
+
margin-bottom: 1.5rem;
|
|
7
|
+
}
|
|
8
|
+
.rf-feature__eyebrow {
|
|
9
|
+
font-size: 0.8125rem;
|
|
10
|
+
font-weight: 600;
|
|
11
|
+
letter-spacing: 0.05em;
|
|
12
|
+
text-transform: uppercase;
|
|
13
|
+
color: var(--rf-color-primary);
|
|
14
|
+
margin: 0 0 0.5rem;
|
|
15
|
+
}
|
|
16
|
+
.rf-feature__eyebrow:has(a) {
|
|
17
|
+
display: inline-block;
|
|
18
|
+
position: relative;
|
|
19
|
+
padding: 0.25rem 0.875rem;
|
|
20
|
+
border: 1px solid var(--rf-color-border);
|
|
21
|
+
border-radius: var(--rf-radius-full);
|
|
22
|
+
color: var(--rf-color-text);
|
|
23
|
+
font-weight: 400;
|
|
24
|
+
text-transform: none;
|
|
25
|
+
letter-spacing: 0;
|
|
26
|
+
transition: border-color 150ms ease;
|
|
27
|
+
}
|
|
28
|
+
.rf-feature__eyebrow:has(a):hover { border-color: var(--rf-color-muted); }
|
|
29
|
+
.rf-feature__eyebrow:has(a) a { color: var(--rf-color-primary); font-weight: 600; text-decoration: none; }
|
|
30
|
+
.rf-feature__eyebrow:has(a) a::before { content: ''; position: absolute; inset: 0; border-radius: inherit; }
|
|
31
|
+
.rf-feature__headline {
|
|
32
|
+
margin-top: 0;
|
|
33
|
+
}
|
|
34
|
+
.rf-feature__blurb {
|
|
35
|
+
color: var(--rf-color-muted);
|
|
36
|
+
margin-bottom: 0;
|
|
37
|
+
max-width: 40rem;
|
|
38
|
+
}
|
|
39
|
+
.rf-feature__image {
|
|
40
|
+
margin-bottom: 1rem;
|
|
41
|
+
}
|
|
42
|
+
.rf-feature__content {
|
|
6
43
|
display: contents;
|
|
7
44
|
}
|
|
8
45
|
.rf-feature h2 {
|
|
9
|
-
text-align: center;
|
|
10
46
|
margin-bottom: 2rem;
|
|
11
47
|
}
|
|
48
|
+
.rf-feature[data-align="center"] .rf-feature__header,
|
|
49
|
+
.rf-feature[data-align="center"] h2 {
|
|
50
|
+
text-align: center;
|
|
51
|
+
}
|
|
52
|
+
.rf-feature[data-align="left"] .rf-feature__header,
|
|
53
|
+
.rf-feature[data-align="left"] h2 {
|
|
54
|
+
text-align: left;
|
|
55
|
+
}
|
|
56
|
+
.rf-feature[data-align="right"] .rf-feature__header,
|
|
57
|
+
.rf-feature[data-align="right"] h2 {
|
|
58
|
+
text-align: right;
|
|
59
|
+
}
|
|
12
60
|
.rf-feature dl {
|
|
13
61
|
display: grid;
|
|
14
|
-
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
|
|
62
|
+
grid-template-columns: repeat(auto-fit, minmax(max(240px, calc((100% - 3rem) / 3)), 1fr));
|
|
15
63
|
gap: 1.5rem;
|
|
16
64
|
margin: 0;
|
|
17
65
|
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
grid-template-columns: 1fr 1fr;
|
|
22
|
-
gap: 3rem;
|
|
23
|
-
}
|
|
24
|
-
.rf-feature--split .rf-feature__body {
|
|
66
|
+
/* Split layout: override defaults when in split mode */
|
|
67
|
+
.rf-feature[data-layout="split"] .rf-feature__content,
|
|
68
|
+
.rf-feature[data-layout="split-reverse"] .rf-feature__content {
|
|
25
69
|
display: block;
|
|
26
70
|
}
|
|
27
|
-
.rf-feature
|
|
71
|
+
.rf-feature[data-layout="split"] .rf-feature__header,
|
|
72
|
+
.rf-feature[data-layout="split-reverse"] .rf-feature__header,
|
|
73
|
+
.rf-feature[data-layout="split"] h2,
|
|
74
|
+
.rf-feature[data-layout="split-reverse"] h2 {
|
|
28
75
|
text-align: left;
|
|
29
76
|
}
|
|
30
|
-
.rf-feature
|
|
77
|
+
.rf-feature[data-layout="split"] dl,
|
|
78
|
+
.rf-feature[data-layout="split-reverse"] dl {
|
|
31
79
|
display: block;
|
|
32
80
|
}
|
|
33
|
-
.rf-feature
|
|
81
|
+
.rf-feature[data-layout="split"] .rf-feature-definition,
|
|
82
|
+
.rf-feature[data-layout="split-reverse"] .rf-feature-definition {
|
|
34
83
|
border: none;
|
|
35
84
|
background: none;
|
|
36
85
|
padding: 0.75rem 0;
|
|
37
86
|
}
|
|
38
|
-
.rf-feature--mirror .rf-feature__showcase {
|
|
39
|
-
order: -1;
|
|
40
|
-
}
|
|
41
87
|
.rf-feature-definition {
|
|
42
88
|
padding: 1.75rem;
|
|
43
89
|
border-radius: var(--rf-radius-md);
|
|
@@ -46,7 +92,7 @@
|
|
|
46
92
|
}
|
|
47
93
|
.rf-feature-definition dt {
|
|
48
94
|
font-weight: 650;
|
|
49
|
-
font-size: 1.
|
|
95
|
+
font-size: 1.125rem;
|
|
50
96
|
margin-bottom: 0.75rem;
|
|
51
97
|
letter-spacing: -0.01em;
|
|
52
98
|
color: var(--rf-color-text);
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/* Gallery — Multi-image container with grid/carousel/masonry layout */
|
|
2
|
+
.rf-gallery {
|
|
3
|
+
margin: 1.5rem 0;
|
|
4
|
+
position: relative;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
/* Layout modifier classes */
|
|
8
|
+
.rf-gallery--grid {}
|
|
9
|
+
.rf-gallery--carousel {}
|
|
10
|
+
.rf-gallery--masonry {}
|
|
11
|
+
|
|
12
|
+
/* Items container — grid layout by default */
|
|
13
|
+
.rf-gallery__items {
|
|
14
|
+
display: grid;
|
|
15
|
+
grid-template-columns: repeat(var(--gallery-columns, 3), 1fr);
|
|
16
|
+
gap: var(--gallery-gap, var(--rf-spacing-md));
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/* Individual gallery items */
|
|
20
|
+
.rf-gallery__item {
|
|
21
|
+
position: relative;
|
|
22
|
+
overflow: hidden;
|
|
23
|
+
border-radius: var(--rf-radius-md);
|
|
24
|
+
}
|
|
25
|
+
.rf-gallery__item img {
|
|
26
|
+
width: 100%;
|
|
27
|
+
height: 100%;
|
|
28
|
+
object-fit: cover;
|
|
29
|
+
display: block;
|
|
30
|
+
}
|
|
31
|
+
.rf-gallery__item figcaption {
|
|
32
|
+
position: absolute;
|
|
33
|
+
bottom: 0;
|
|
34
|
+
left: 0;
|
|
35
|
+
right: 0;
|
|
36
|
+
padding: 0.5rem 0.75rem;
|
|
37
|
+
background: linear-gradient(transparent, rgba(0, 0, 0, 0.6));
|
|
38
|
+
color: white;
|
|
39
|
+
font-size: 0.825rem;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/* Gallery caption */
|
|
43
|
+
.rf-gallery > figcaption {
|
|
44
|
+
margin-top: 0.625rem;
|
|
45
|
+
font-size: 0.825rem;
|
|
46
|
+
color: var(--rf-color-muted);
|
|
47
|
+
text-align: center;
|
|
48
|
+
font-style: italic;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* Carousel layout */
|
|
52
|
+
.rf-gallery[data-layout="carousel"] .rf-gallery__items {
|
|
53
|
+
display: flex;
|
|
54
|
+
overflow-x: auto;
|
|
55
|
+
scroll-snap-type: x mandatory;
|
|
56
|
+
-webkit-overflow-scrolling: touch;
|
|
57
|
+
}
|
|
58
|
+
.rf-gallery[data-layout="carousel"] .rf-gallery__item {
|
|
59
|
+
flex: 0 0 calc(100% / var(--gallery-columns, 3));
|
|
60
|
+
scroll-snap-align: start;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/* Carousel nav buttons */
|
|
64
|
+
.rf-gallery__nav {
|
|
65
|
+
position: absolute;
|
|
66
|
+
top: 50%;
|
|
67
|
+
transform: translateY(-50%);
|
|
68
|
+
z-index: 2;
|
|
69
|
+
width: 2.5rem;
|
|
70
|
+
height: 2.5rem;
|
|
71
|
+
border-radius: 50%;
|
|
72
|
+
border: none;
|
|
73
|
+
background: var(--rf-color-surface);
|
|
74
|
+
color: var(--rf-color-text);
|
|
75
|
+
box-shadow: var(--rf-shadow-md);
|
|
76
|
+
cursor: pointer;
|
|
77
|
+
display: flex;
|
|
78
|
+
align-items: center;
|
|
79
|
+
justify-content: center;
|
|
80
|
+
font-size: 1.25rem;
|
|
81
|
+
opacity: 0.8;
|
|
82
|
+
transition: opacity 0.2s;
|
|
83
|
+
}
|
|
84
|
+
.rf-gallery__nav:hover {
|
|
85
|
+
opacity: 1;
|
|
86
|
+
}
|
|
87
|
+
.rf-gallery__nav--prev {
|
|
88
|
+
left: 0.5rem;
|
|
89
|
+
}
|
|
90
|
+
.rf-gallery__nav--next {
|
|
91
|
+
right: 0.5rem;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/* Masonry layout (CSS progressive enhancement) */
|
|
95
|
+
.rf-gallery[data-layout="masonry"] .rf-gallery__items {
|
|
96
|
+
grid-template-rows: masonry;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/* Lightbox cursor hint */
|
|
100
|
+
.rf-gallery[data-lightbox="true"] .rf-gallery__item {
|
|
101
|
+
cursor: zoom-in;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* Lightbox overlay */
|
|
105
|
+
.rf-gallery__lightbox {
|
|
106
|
+
position: fixed;
|
|
107
|
+
inset: 0;
|
|
108
|
+
z-index: 9999;
|
|
109
|
+
background: rgba(0, 0, 0, 0.9);
|
|
110
|
+
display: flex;
|
|
111
|
+
align-items: center;
|
|
112
|
+
justify-content: center;
|
|
113
|
+
}
|
|
114
|
+
.rf-gallery__lightbox img {
|
|
115
|
+
max-width: 90vw;
|
|
116
|
+
max-height: 90vh;
|
|
117
|
+
object-fit: contain;
|
|
118
|
+
border-radius: var(--rf-radius-md);
|
|
119
|
+
}
|
|
120
|
+
.rf-gallery__lightbox-close {
|
|
121
|
+
position: absolute;
|
|
122
|
+
top: 1rem;
|
|
123
|
+
right: 1rem;
|
|
124
|
+
width: 2.5rem;
|
|
125
|
+
height: 2.5rem;
|
|
126
|
+
border-radius: 50%;
|
|
127
|
+
border: none;
|
|
128
|
+
background: rgba(255, 255, 255, 0.15);
|
|
129
|
+
color: white;
|
|
130
|
+
font-size: 1.5rem;
|
|
131
|
+
cursor: pointer;
|
|
132
|
+
display: flex;
|
|
133
|
+
align-items: center;
|
|
134
|
+
justify-content: center;
|
|
135
|
+
}
|
|
136
|
+
.rf-gallery__lightbox-nav {
|
|
137
|
+
position: absolute;
|
|
138
|
+
top: 50%;
|
|
139
|
+
transform: translateY(-50%);
|
|
140
|
+
width: 3rem;
|
|
141
|
+
height: 3rem;
|
|
142
|
+
border-radius: 50%;
|
|
143
|
+
border: none;
|
|
144
|
+
background: rgba(255, 255, 255, 0.15);
|
|
145
|
+
color: white;
|
|
146
|
+
font-size: 1.5rem;
|
|
147
|
+
cursor: pointer;
|
|
148
|
+
display: flex;
|
|
149
|
+
align-items: center;
|
|
150
|
+
justify-content: center;
|
|
151
|
+
}
|
|
152
|
+
.rf-gallery__lightbox-nav--prev {
|
|
153
|
+
left: 1rem;
|
|
154
|
+
}
|
|
155
|
+
.rf-gallery__lightbox-nav--next {
|
|
156
|
+
right: 1rem;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/* Column count overrides */
|
|
160
|
+
.rf-gallery[data-columns="1"] .rf-gallery__items { grid-template-columns: 1fr; }
|
|
161
|
+
.rf-gallery[data-columns="2"] .rf-gallery__items { grid-template-columns: repeat(2, 1fr); }
|
|
162
|
+
.rf-gallery[data-columns="4"] .rf-gallery__items { grid-template-columns: repeat(4, 1fr); }
|
|
163
|
+
.rf-gallery[data-columns="5"] .rf-gallery__items { grid-template-columns: repeat(5, 1fr); }
|
|
164
|
+
.rf-gallery[data-columns="6"] .rf-gallery__items { grid-template-columns: repeat(6, 1fr); }
|
|
165
|
+
|
|
166
|
+
/* Responsive: collapse to fewer columns on small screens */
|
|
167
|
+
@media (max-width: 768px) {
|
|
168
|
+
.rf-gallery__items {
|
|
169
|
+
grid-template-columns: repeat(2, 1fr);
|
|
170
|
+
}
|
|
171
|
+
.rf-gallery[data-layout="carousel"] .rf-gallery__item {
|
|
172
|
+
flex-basis: 80%;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
@media (max-width: 480px) {
|
|
176
|
+
.rf-gallery__items {
|
|
177
|
+
grid-template-columns: 1fr;
|
|
178
|
+
}
|
|
179
|
+
.rf-gallery[data-layout="carousel"] .rf-gallery__item {
|
|
180
|
+
flex-basis: 100%;
|
|
181
|
+
}
|
|
182
|
+
}
|
package/styles/runes/grid.css
CHANGED
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
}
|
|
5
5
|
.rf-grid [data-layout="grid"] {
|
|
6
6
|
display: grid;
|
|
7
|
-
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
|
8
|
-
|
|
7
|
+
grid-template-columns: var(--grid-ratio, repeat(auto-fit, minmax(250px, 1fr)));
|
|
8
|
+
align-items: var(--grid-valign, stretch);
|
|
9
|
+
gap: var(--grid-gap, 1.5rem);
|
|
9
10
|
}
|
|
10
11
|
/* Explicit column counts override auto-fit */
|
|
11
12
|
.rf-grid [data-columns="1"] { grid-template-columns: 1fr; }
|
|
@@ -26,6 +27,39 @@
|
|
|
26
27
|
.rf-grid [data-rowspan="2"] { grid-row: span 2; }
|
|
27
28
|
.rf-grid [data-rowspan="3"] { grid-row: span 3; }
|
|
28
29
|
.rf-grid [data-rowspan="4"] { grid-row: span 4; }
|
|
29
|
-
/*
|
|
30
|
-
.rf-grid [data-name="
|
|
31
|
-
.rf-grid [data-name="
|
|
30
|
+
/* Cell styling */
|
|
31
|
+
.rf-grid [data-name="cell"] p:first-child { margin-top: 0; }
|
|
32
|
+
.rf-grid [data-name="cell"] p:last-child { margin-bottom: 0; }
|
|
33
|
+
/* Auto mode — responsive auto-fill */
|
|
34
|
+
.rf-grid[data-mode="auto"] [data-layout="grid"] {
|
|
35
|
+
grid-template-columns: repeat(auto-fill, minmax(var(--grid-min, 250px), 1fr));
|
|
36
|
+
}
|
|
37
|
+
/* Masonry mode — progressive enhancement */
|
|
38
|
+
.rf-grid[data-mode="masonry"] [data-layout="grid"] {
|
|
39
|
+
grid-template-rows: masonry;
|
|
40
|
+
}
|
|
41
|
+
/* Aspect ratio enforcement on cells */
|
|
42
|
+
.rf-grid[data-aspect] [data-name="cell"] {
|
|
43
|
+
aspect-ratio: var(--grid-aspect);
|
|
44
|
+
overflow: hidden;
|
|
45
|
+
}
|
|
46
|
+
.rf-grid[data-aspect] [data-name="cell"] > img,
|
|
47
|
+
.rf-grid[data-aspect] [data-name="cell"] > video {
|
|
48
|
+
width: 100%;
|
|
49
|
+
height: 100%;
|
|
50
|
+
object-fit: cover;
|
|
51
|
+
}
|
|
52
|
+
/* Stack order when collapsed */
|
|
53
|
+
.rf-grid[data-stack="reverse"] [data-name="cell"]:last-child {
|
|
54
|
+
order: -1;
|
|
55
|
+
}
|
|
56
|
+
/* Collapse breakpoints */
|
|
57
|
+
@media (max-width: 640px) {
|
|
58
|
+
.rf-grid[data-collapse="sm"] [data-layout="grid"] { grid-template-columns: 1fr; }
|
|
59
|
+
}
|
|
60
|
+
@media (max-width: 768px) {
|
|
61
|
+
.rf-grid[data-collapse="md"] [data-layout="grid"] { grid-template-columns: 1fr; }
|
|
62
|
+
}
|
|
63
|
+
@media (max-width: 1024px) {
|
|
64
|
+
.rf-grid[data-collapse="lg"] [data-layout="grid"] { grid-template-columns: 1fr; }
|
|
65
|
+
}
|