@refrakt-md/lumina 0.32.0 → 0.34.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 +29 -29
- package/contracts/structures.json +58 -60
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/icons.d.ts.map +1 -1
- package/dist/icons.js +57 -57
- package/dist/icons.js.map +1 -1
- package/dist/presets/catppuccin.js.map +1 -1
- package/dist/presets/dracula.js.map +1 -1
- package/dist/presets/gruvbox.js.map +1 -1
- package/dist/presets/niwaki.js.map +1 -1
- package/dist/presets/nord.js.map +1 -1
- package/dist/presets/one-dark.js.map +1 -1
- package/dist/presets/solarized.js.map +1 -1
- package/dist/presets/tideline.d.ts.map +1 -1
- package/dist/presets/tideline.js +20 -4
- package/dist/presets/tideline.js.map +1 -1
- package/dist/presets/tokyo-night.js.map +1 -1
- package/dist/tokens.js.map +1 -1
- package/index.css +124 -124
- package/package.json +5 -5
- package/presets.json +61 -13
- package/styles/base/attributes.css +32 -13
- package/styles/dimensions/checklist.css +45 -46
- package/styles/dimensions/cover.css +71 -51
- package/styles/dimensions/density.css +69 -65
- package/styles/dimensions/frame.css +116 -57
- package/styles/dimensions/metadata.css +110 -103
- package/styles/dimensions/motion.css +42 -13
- package/styles/dimensions/reading.css +27 -27
- package/styles/dimensions/sections.css +44 -45
- package/styles/dimensions/sequence.css +56 -57
- package/styles/dimensions/state.css +8 -2
- package/styles/dimensions/substrate.css +82 -58
- package/styles/dimensions/surfaces.css +65 -62
- package/styles/elements/blockquote.css +24 -25
- package/styles/elements/code.css +72 -71
- package/styles/elements/table.css +36 -37
- package/styles/global.css +163 -121
- package/styles/layouts/blog.css +219 -218
- package/styles/layouts/default.css +168 -167
- package/styles/layouts/docs.css +121 -122
- package/styles/layouts/mobile.css +54 -55
- package/styles/layouts/on-this-page.css +46 -47
- package/styles/layouts/plan.css +248 -247
- package/styles/layouts/search.css +142 -140
- package/styles/layouts/split.css +45 -45
- package/styles/layouts/theme-toggle.css +33 -31
- package/styles/layouts/version-switcher.css +38 -37
- package/styles/runes/accordion.css +90 -81
- package/styles/runes/aggregate.css +50 -39
- package/styles/runes/annotate.css +46 -45
- package/styles/runes/api.css +22 -23
- package/styles/runes/audio.css +140 -141
- package/styles/runes/badge.css +12 -13
- package/styles/runes/bar.css +4 -5
- package/styles/runes/bento.css +73 -62
- package/styles/runes/bg.css +62 -47
- package/styles/runes/blog.css +89 -90
- package/styles/runes/bond.css +49 -50
- package/styles/runes/breadcrumb.css +34 -35
- package/styles/runes/budget.css +126 -127
- package/styles/runes/bug.css +28 -27
- package/styles/runes/card.css +63 -60
- package/styles/runes/carousel.css +15 -15
- package/styles/runes/cast.css +50 -51
- package/styles/runes/changelog.css +45 -46
- package/styles/runes/character.css +31 -32
- package/styles/runes/chart.css +194 -106
- package/styles/runes/codegroup.css +109 -100
- package/styles/runes/collection.css +87 -86
- package/styles/runes/compare.css +38 -39
- package/styles/runes/comparison.css +205 -179
- package/styles/runes/conversation.css +36 -33
- package/styles/runes/cta.css +135 -132
- package/styles/runes/datatable.css +84 -83
- package/styles/runes/decision.css +25 -26
- package/styles/runes/design-context.css +21 -23
- package/styles/runes/details.css +26 -27
- package/styles/runes/diagram.css +28 -29
- package/styles/runes/diff.css +75 -72
- package/styles/runes/drawer.css +276 -198
- package/styles/runes/embed.css +20 -21
- package/styles/runes/event.css +35 -36
- package/styles/runes/expand.css +43 -34
- package/styles/runes/faction.css +47 -48
- package/styles/runes/feature.css +119 -112
- package/styles/runes/figure.css +11 -12
- package/styles/runes/file-ref.css +11 -13
- package/styles/runes/form.css +155 -154
- package/styles/runes/gallery.css +59 -60
- package/styles/runes/grid.css +10 -7
- package/styles/runes/hero.css +189 -185
- package/styles/runes/hint.css +57 -58
- package/styles/runes/howto.css +62 -64
- package/styles/runes/itinerary.css +133 -134
- package/styles/runes/juxtapose.css +83 -82
- package/styles/runes/lore.css +32 -34
- package/styles/runes/map.css +106 -99
- package/styles/runes/mediatext.css +30 -27
- package/styles/runes/milestone.css +98 -97
- package/styles/runes/mockup.css +338 -335
- package/styles/runes/nav.css +465 -450
- package/styles/runes/organization.css +23 -20
- package/styles/runes/page-section.css +14 -15
- package/styles/runes/pagination.css +45 -44
- package/styles/runes/palette.css +78 -80
- package/styles/runes/placeholder.css +8 -9
- package/styles/runes/plan-history.css +160 -161
- package/styles/runes/plan-progress.css +15 -16
- package/styles/runes/plan-ref.css +32 -23
- package/styles/runes/playlist.css +106 -107
- package/styles/runes/plot.css +92 -91
- package/styles/runes/preview.css +152 -149
- package/styles/runes/pricing.css +133 -123
- package/styles/runes/progress.css +32 -27
- package/styles/runes/pullquote.css +89 -90
- package/styles/runes/realm.css +47 -48
- package/styles/runes/recipe.css +112 -114
- package/styles/runes/relationships.css +77 -76
- package/styles/runes/reveal.css +90 -79
- package/styles/runes/sandbox.css +59 -60
- package/styles/runes/section.css +57 -50
- package/styles/runes/showcase.css +35 -16
- package/styles/runes/sidenote.css +30 -27
- package/styles/runes/snippet.css +8 -9
- package/styles/runes/spacing.css +86 -88
- package/styles/runes/spec.css +24 -25
- package/styles/runes/steps.css +89 -80
- package/styles/runes/storyboard.css +46 -45
- package/styles/runes/swatch.css +22 -23
- package/styles/runes/symbol.css +117 -118
- package/styles/runes/tabs.css +88 -79
- package/styles/runes/testimonial.css +43 -44
- package/styles/runes/textblock.css +32 -28
- package/styles/runes/timeline.css +63 -64
- package/styles/runes/tint.css +214 -215
- package/styles/runes/toc.css +40 -41
- package/styles/runes/track.css +89 -90
- package/styles/runes/typography.css +89 -91
- package/styles/runes/work.css +47 -36
- package/styles/runes/xref.css +21 -22
package/styles/runes/audio.css
CHANGED
|
@@ -1,153 +1,152 @@
|
|
|
1
1
|
@layer skin {
|
|
2
|
-
.rf-audio__description {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
.rf-audio__description p {
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
.rf-audio__description p + p {
|
|
12
|
-
|
|
13
|
-
}
|
|
2
|
+
.rf-audio__description {
|
|
3
|
+
padding: 0.75rem 1rem;
|
|
4
|
+
font-size: var(--rf-text-sm);
|
|
5
|
+
color: var(--rf-color-muted);
|
|
6
|
+
line-height: var(--rf-leading-normal);
|
|
7
|
+
}
|
|
8
|
+
.rf-audio__description p {
|
|
9
|
+
margin: 0;
|
|
10
|
+
}
|
|
11
|
+
.rf-audio__description p + p {
|
|
12
|
+
margin-top: 0.5rem;
|
|
13
|
+
}
|
|
14
14
|
|
|
15
|
-
/* ── Audio Player (web component internals) ── */
|
|
15
|
+
/* ── Audio Player (web component internals) ── */
|
|
16
16
|
|
|
17
|
-
.rf-audio-player {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
17
|
+
.rf-audio-player {
|
|
18
|
+
padding: 1rem 1.25rem;
|
|
19
|
+
gap: 0.625rem;
|
|
20
|
+
}
|
|
21
21
|
|
|
22
|
-
/* Track info */
|
|
23
|
-
.rf-audio-player__info {
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
.rf-audio-player__name {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
.rf-audio-player__artist {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
22
|
+
/* Track info */
|
|
23
|
+
.rf-audio-player__info {
|
|
24
|
+
gap: 0.125rem;
|
|
25
|
+
}
|
|
26
|
+
.rf-audio-player__name {
|
|
27
|
+
font-size: var(--rf-text);
|
|
28
|
+
font-weight: var(--rf-weight-semibold);
|
|
29
|
+
color: var(--rf-color-text);
|
|
30
|
+
text-overflow: ellipsis;
|
|
31
|
+
white-space: nowrap;
|
|
32
|
+
}
|
|
33
|
+
.rf-audio-player__artist {
|
|
34
|
+
font-size: var(--rf-text-sm);
|
|
35
|
+
color: var(--rf-color-muted);
|
|
36
|
+
}
|
|
37
37
|
|
|
38
|
-
/* Controls row */
|
|
39
|
-
.rf-audio-player__controls {
|
|
40
|
-
|
|
41
|
-
}
|
|
38
|
+
/* Controls row */
|
|
39
|
+
.rf-audio-player__controls {
|
|
40
|
+
gap: 0.625rem;
|
|
41
|
+
}
|
|
42
42
|
|
|
43
|
-
/* Play / pause button */
|
|
44
|
-
.rf-audio-player__play {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
}
|
|
53
|
-
.rf-audio-player__play:hover {
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
.rf-audio-player__play:focus-visible {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
.rf-audio-player__play:disabled {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
.rf-audio-player__play svg {
|
|
65
|
-
|
|
66
|
-
}
|
|
43
|
+
/* Play / pause button */
|
|
44
|
+
.rf-audio-player__play {
|
|
45
|
+
border-radius: var(--rf-radius-full, 9999px);
|
|
46
|
+
border: none;
|
|
47
|
+
background: var(--rf-color-primary);
|
|
48
|
+
color: var(--rf-color-on-primary);
|
|
49
|
+
cursor: pointer;
|
|
50
|
+
transition: opacity 0.15s ease;
|
|
51
|
+
padding: 0;
|
|
52
|
+
}
|
|
53
|
+
.rf-audio-player__play:hover {
|
|
54
|
+
opacity: 0.85;
|
|
55
|
+
}
|
|
56
|
+
.rf-audio-player__play:focus-visible {
|
|
57
|
+
outline: 2px solid var(--rf-color-primary);
|
|
58
|
+
outline-offset: 2px;
|
|
59
|
+
}
|
|
60
|
+
.rf-audio-player__play:disabled {
|
|
61
|
+
opacity: 0.4;
|
|
62
|
+
cursor: not-allowed;
|
|
63
|
+
}
|
|
64
|
+
.rf-audio-player__play svg {
|
|
65
|
+
fill: currentColor;
|
|
66
|
+
}
|
|
67
67
|
|
|
68
|
-
/* Time displays */
|
|
69
|
-
.rf-audio-player__time {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
.rf-audio-player__time--current {
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
.rf-audio-player__time--duration {
|
|
79
|
-
|
|
80
|
-
}
|
|
68
|
+
/* Time displays */
|
|
69
|
+
.rf-audio-player__time {
|
|
70
|
+
font-size: var(--rf-text-xs);
|
|
71
|
+
font-variant-numeric: tabular-nums;
|
|
72
|
+
color: var(--rf-color-muted);
|
|
73
|
+
user-select: none;
|
|
74
|
+
}
|
|
75
|
+
.rf-audio-player__time--current {
|
|
76
|
+
text-align: right;
|
|
77
|
+
}
|
|
78
|
+
.rf-audio-player__time--duration {
|
|
79
|
+
text-align: left;
|
|
80
|
+
}
|
|
81
81
|
|
|
82
|
-
/* Progress bar */
|
|
83
|
-
.rf-audio-player__progress {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
}
|
|
88
|
-
.rf-audio-player__progress:focus-visible {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
}
|
|
92
|
-
.rf-audio-player__progress-bar {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}
|
|
82
|
+
/* Progress bar */
|
|
83
|
+
.rf-audio-player__progress {
|
|
84
|
+
background: var(--rf-color-surface-active, #e5e7eb);
|
|
85
|
+
border-radius: var(--rf-radius-full, 9999px);
|
|
86
|
+
cursor: pointer;
|
|
87
|
+
}
|
|
88
|
+
.rf-audio-player__progress:focus-visible {
|
|
89
|
+
outline: 2px solid var(--rf-color-primary);
|
|
90
|
+
outline-offset: 2px;
|
|
91
|
+
}
|
|
92
|
+
.rf-audio-player__progress-bar {
|
|
93
|
+
background: var(--rf-color-primary);
|
|
94
|
+
border-radius: var(--rf-radius-full, 9999px);
|
|
95
|
+
transition: width 0.1s linear;
|
|
96
|
+
}
|
|
97
97
|
|
|
98
|
-
/* Waveform container */
|
|
99
|
-
.rf-audio-player__waveform {
|
|
100
|
-
|
|
101
|
-
}
|
|
98
|
+
/* Waveform container */
|
|
99
|
+
.rf-audio-player__waveform {
|
|
100
|
+
border-radius: var(--rf-radius-sm, 4px);
|
|
101
|
+
}
|
|
102
102
|
|
|
103
|
-
/* Chapter list */
|
|
104
|
-
.rf-audio-player__chapters {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}
|
|
109
|
-
.rf-audio-player__chapter {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
}
|
|
120
|
-
.rf-audio-player__chapter:hover {
|
|
121
|
-
|
|
122
|
-
}
|
|
123
|
-
.rf-audio-player__chapter:focus-visible {
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
}
|
|
127
|
-
.rf-audio-player__chapter--active {
|
|
128
|
-
|
|
129
|
-
}
|
|
130
|
-
.rf-audio-player__chapter--active .rf-audio-player__chapter-name {
|
|
131
|
-
|
|
132
|
-
}
|
|
133
|
-
.rf-audio-player__chapter-name {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
}
|
|
138
|
-
.rf-audio-player__chapter-time {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
/* Active track highlight when connected to audio player */
|
|
145
|
-
.rf-track--active {
|
|
146
|
-
background: color-mix(in srgb, var(--rf-color-primary) 6%, transparent);
|
|
147
|
-
border-radius: var(--rf-radius-sm, 4px);
|
|
148
|
-
}
|
|
149
|
-
.rf-track--active .rf-track__track-name {
|
|
150
|
-
color: var(--rf-color-primary);
|
|
151
|
-
}
|
|
103
|
+
/* Chapter list */
|
|
104
|
+
.rf-audio-player__chapters {
|
|
105
|
+
padding: 0;
|
|
106
|
+
margin: 0.75rem 0 0;
|
|
107
|
+
padding-top: 0;
|
|
108
|
+
}
|
|
109
|
+
.rf-audio-player__chapter {
|
|
110
|
+
gap: 0.75rem;
|
|
111
|
+
padding: 0.375rem 0.5rem;
|
|
112
|
+
border: none;
|
|
113
|
+
background: none;
|
|
114
|
+
cursor: pointer;
|
|
115
|
+
border-radius: var(--rf-radius-sm, 4px);
|
|
116
|
+
transition: background 0.15s ease;
|
|
117
|
+
text-align: left;
|
|
118
|
+
font-family: inherit;
|
|
119
|
+
}
|
|
120
|
+
.rf-audio-player__chapter:hover {
|
|
121
|
+
background: var(--rf-color-surface-hover, rgba(0, 0, 0, 0.04));
|
|
122
|
+
}
|
|
123
|
+
.rf-audio-player__chapter:focus-visible {
|
|
124
|
+
outline: 2px solid var(--rf-color-primary);
|
|
125
|
+
outline-offset: -2px;
|
|
126
|
+
}
|
|
127
|
+
.rf-audio-player__chapter--active {
|
|
128
|
+
background: color-mix(in srgb, var(--rf-color-primary) 8%, transparent);
|
|
129
|
+
}
|
|
130
|
+
.rf-audio-player__chapter--active .rf-audio-player__chapter-name {
|
|
131
|
+
color: var(--rf-color-primary);
|
|
132
|
+
}
|
|
133
|
+
.rf-audio-player__chapter-name {
|
|
134
|
+
font-size: var(--rf-text-sm);
|
|
135
|
+
font-weight: var(--rf-weight-medium);
|
|
136
|
+
color: var(--rf-color-text);
|
|
137
|
+
}
|
|
138
|
+
.rf-audio-player__chapter-time {
|
|
139
|
+
font-size: var(--rf-text-xs);
|
|
140
|
+
font-variant-numeric: tabular-nums;
|
|
141
|
+
color: var(--rf-color-muted);
|
|
142
|
+
}
|
|
152
143
|
|
|
144
|
+
/* Active track highlight when connected to audio player */
|
|
145
|
+
.rf-track--active {
|
|
146
|
+
background: color-mix(in srgb, var(--rf-color-primary) 6%, transparent);
|
|
147
|
+
border-radius: var(--rf-radius-sm, 4px);
|
|
148
|
+
}
|
|
149
|
+
.rf-track--active .rf-track__track-name {
|
|
150
|
+
color: var(--rf-color-primary);
|
|
151
|
+
}
|
|
153
152
|
}
|
package/styles/runes/badge.css
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
@layer skin {
|
|
2
|
-
/* Badge rune — standalone inline chip.
|
|
2
|
+
/* Badge rune — standalone inline chip.
|
|
3
3
|
*
|
|
4
4
|
* The universal chip primitive emitted by `{% badge %}` AND by every
|
|
5
5
|
* chip-type field a block renders (`bar` chips, `definition-list` `<dd>`
|
|
@@ -11,16 +11,15 @@
|
|
|
11
11
|
* gives `--meta-color` works without per-status selectors.
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
-
.rf-badge {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}
|
|
25
|
-
|
|
14
|
+
.rf-badge {
|
|
15
|
+
vertical-align: baseline;
|
|
16
|
+
border: none;
|
|
17
|
+
background: color-mix(in srgb, var(--meta-color, var(--rf-color-muted)) 10%, transparent);
|
|
18
|
+
color: var(--meta-color, var(--rf-color-muted));
|
|
19
|
+
font-size: var(--rf-text-xs);
|
|
20
|
+
font-weight: var(--rf-weight-medium);
|
|
21
|
+
padding: 0.125rem 0.5rem;
|
|
22
|
+
border-radius: var(--rf-radius-sm);
|
|
23
|
+
white-space: nowrap;
|
|
24
|
+
}
|
|
26
25
|
}
|
package/styles/runes/bar.css
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
@layer skin {
|
|
2
|
-
/* Bar rune — composable handle for the SPEC-080 `bar` layout.
|
|
2
|
+
/* Bar rune — composable handle for the SPEC-080 `bar` layout.
|
|
3
3
|
*
|
|
4
4
|
* Geometry comes from `[data-zone-layout="bar"]` in
|
|
5
5
|
* `dimensions/metadata.css` (flex row, wrap, `[data-align="end"]`
|
|
6
6
|
* right-push). This file only carries the minimum class hook so the rune
|
|
7
7
|
* participates in CSS tree-shaking. */
|
|
8
8
|
|
|
9
|
-
.rf-bar {
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
|
|
9
|
+
.rf-bar {
|
|
10
|
+
margin: 0.5rem 0;
|
|
11
|
+
}
|
|
13
12
|
}
|
package/styles/runes/bento.css
CHANGED
|
@@ -1,81 +1,92 @@
|
|
|
1
1
|
@layer skin {
|
|
2
|
-
/* Bento — skin. A grid of cells, each a card-in-a-grid-track (SPEC-085). The
|
|
2
|
+
/* Bento — skin. A grid of cells, each a card-in-a-grid-track (SPEC-085). The
|
|
3
3
|
* container-query grid system, cell flex layout, media placement, sizing knobs,
|
|
4
4
|
* collapse queries, and the stretched link live in @refrakt-md/skeleton
|
|
5
5
|
* (styles/runes/bento.css). What remains here is skin: the grid gap, the cell
|
|
6
6
|
* surface chrome + spacing vars, the media-well chrome, type, and bleed resets. */
|
|
7
7
|
|
|
8
|
-
.rf-bento__grid {
|
|
9
|
-
|
|
10
|
-
}
|
|
8
|
+
.rf-bento__grid {
|
|
9
|
+
gap: var(--bento-gap, 1rem);
|
|
10
|
+
}
|
|
11
11
|
|
|
12
|
-
/* The cell. `:where()` keeps the background at zero specificity so a per-cell
|
|
12
|
+
/* The cell. `:where()` keeps the background at zero specificity so a per-cell
|
|
13
13
|
* `{% tint %}` can repaint it (tint-deferrable). */
|
|
14
|
-
:where(.rf-bento-cell) {
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
.rf-bento-cell {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
:where(.rf-bento-cell) {
|
|
15
|
+
background: var(--rf-color-surface);
|
|
16
|
+
}
|
|
17
|
+
.rf-bento-cell {
|
|
18
|
+
--rf-title-size: var(--rf-text-lg);
|
|
19
|
+
border-radius: var(--rf-radius-container);
|
|
20
|
+
/* Thin-edge inset model: the cell hugs its media with a thin edge; the content
|
|
21
21
|
* zone adds the remaining inset back (below). */
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
}
|
|
22
|
+
--container-padding: 1.25rem;
|
|
23
|
+
--bento-cell-edge: 0.5rem;
|
|
24
|
+
--bento-media-gap: var(--rf-spacing-md);
|
|
25
|
+
padding: var(--bento-cell-edge);
|
|
26
|
+
border: 1px solid var(--rf-color-border);
|
|
27
|
+
gap: var(--bento-media-gap);
|
|
28
|
+
}
|
|
29
29
|
|
|
30
|
-
/* Media slot shares the cell surface chrome (1px border + recessed well). */
|
|
31
|
-
:where(.rf-bento-cell) [data-section="media"] {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
30
|
+
/* Media slot shares the cell surface chrome (1px border + recessed well). */
|
|
31
|
+
:where(.rf-bento-cell) [data-section="media"] {
|
|
32
|
+
border: 1px solid var(--rf-color-border);
|
|
33
|
+
background: oklch(from var(--rf-color-surface) calc(l - var(--rf-surface-inset-shift)) c h);
|
|
34
|
+
}
|
|
35
35
|
|
|
36
|
-
.rf-bento-cell[data-media-position="start"] > .rf-bento-cell__media,
|
|
37
|
-
.rf-bento-cell[data-media-position="end"] > .rf-bento-cell__media {
|
|
38
|
-
|
|
39
|
-
}
|
|
36
|
+
.rf-bento-cell[data-media-position="start"] > .rf-bento-cell__media,
|
|
37
|
+
.rf-bento-cell[data-media-position="end"] > .rf-bento-cell__media {
|
|
38
|
+
margin-bottom: 0;
|
|
39
|
+
}
|
|
40
40
|
|
|
41
|
-
.rf-bento-cell__media {
|
|
41
|
+
.rf-bento-cell__media {
|
|
42
|
+
margin-bottom: 0;
|
|
43
|
+
}
|
|
42
44
|
|
|
43
|
-
/* Add the remaining inset back on top of the cell's thin edge, so text sits at
|
|
45
|
+
/* Add the remaining inset back on top of the cell's thin edge, so text sits at
|
|
44
46
|
* the full `--container-padding`. */
|
|
45
|
-
.rf-bento-cell__content {
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
.rf-bento-cell__title {
|
|
49
|
-
|
|
47
|
+
.rf-bento-cell__content {
|
|
48
|
+
padding: calc(var(--container-padding) - var(--bento-cell-edge));
|
|
49
|
+
}
|
|
50
|
+
.rf-bento-cell__title {
|
|
51
|
+
/* WORK-538 — read the prominence override first; the fallback is this rune's
|
|
50
52
|
* resting size, stated as --rf-title-size on the root so the prominence ramp
|
|
51
53
|
* can compute from it. */
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
.rf-bento-cell__body > :first-child {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
54
|
+
font-size: var(--rf-prominence-size, var(--rf-title-size));
|
|
55
|
+
font-weight: var(--rf-weight-semibold);
|
|
56
|
+
margin: 0 0 0.5rem;
|
|
57
|
+
}
|
|
58
|
+
.rf-bento-cell__body > :first-child {
|
|
59
|
+
margin-top: 0;
|
|
60
|
+
}
|
|
61
|
+
.rf-bento-cell__body p:last-child {
|
|
62
|
+
margin-bottom: 0;
|
|
63
|
+
}
|
|
64
|
+
.rf-bento-cell__footer {
|
|
65
|
+
padding-top: 0.5rem;
|
|
66
|
+
border-top: 1px solid var(--rf-color-border);
|
|
67
|
+
font-size: 0.8125em;
|
|
68
|
+
color: var(--rf-color-muted);
|
|
69
|
+
}
|
|
70
|
+
.rf-bento-cell__body img {
|
|
71
|
+
border-radius: var(--rf-radius-sm);
|
|
72
|
+
margin-bottom: 0.75rem;
|
|
73
|
+
}
|
|
68
74
|
|
|
69
|
-
/* Drop padding on bleed edges when a showcase bleeds (clipped to a peek by
|
|
75
|
+
/* Drop padding on bleed edges when a showcase bleeds (clipped to a peek by
|
|
70
76
|
* the media-zone + cell overflow). */
|
|
71
|
-
.rf-bento-cell:has(.rf-showcase[data-bleed="bottom"]),
|
|
72
|
-
.rf-bento-cell:has(.rf-showcase[data-bleed="both"]),
|
|
73
|
-
.rf-bento-cell:has(.rf-showcase[data-bleed="bottom-end"]) {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
.rf-bento-cell:has(.rf-showcase[data-bleed="
|
|
77
|
-
.rf-bento-cell:has(.rf-showcase[data-bleed="
|
|
78
|
-
.rf-bento-cell:has(.rf-showcase[data-bleed="
|
|
79
|
-
|
|
80
|
-
|
|
77
|
+
.rf-bento-cell:has(.rf-showcase[data-bleed="bottom"]),
|
|
78
|
+
.rf-bento-cell:has(.rf-showcase[data-bleed="both"]),
|
|
79
|
+
.rf-bento-cell:has(.rf-showcase[data-bleed="bottom-end"]) {
|
|
80
|
+
padding-bottom: 0;
|
|
81
|
+
}
|
|
82
|
+
.rf-bento-cell:has(.rf-showcase[data-bleed="end"]),
|
|
83
|
+
.rf-bento-cell:has(.rf-showcase[data-bleed="bottom-end"]),
|
|
84
|
+
.rf-bento-cell:has(.rf-showcase[data-bleed="top-end"]) {
|
|
85
|
+
padding-inline-end: 0;
|
|
86
|
+
}
|
|
87
|
+
.rf-bento-cell:has(.rf-showcase[data-bleed="top"]),
|
|
88
|
+
.rf-bento-cell:has(.rf-showcase[data-bleed="both"]),
|
|
89
|
+
.rf-bento-cell:has(.rf-showcase[data-bleed="top-end"]) {
|
|
90
|
+
padding-top: 0;
|
|
91
|
+
}
|
|
81
92
|
}
|
package/styles/runes/bg.css
CHANGED
|
@@ -1,54 +1,69 @@
|
|
|
1
1
|
@layer skin {
|
|
2
|
-
/* Background — Directive rune for background images, video, overlays, blur */
|
|
2
|
+
/* Background — Directive rune for background images, video, overlays, blur */
|
|
3
3
|
|
|
4
|
-
/* Background layer — absolute positioned behind content. `border-radius:
|
|
4
|
+
/* Background layer — absolute positioned behind content. `border-radius:
|
|
5
5
|
* inherit` rounds the gradient/image to whatever shape the parent surface has,
|
|
6
6
|
* so a card / bento-cell / any rounded host clips the bg to its own corners
|
|
7
7
|
* without needing `overflow: hidden` (though hosts with thin-edge padding
|
|
8
8
|
* still need it so the bg can't poke past the rounded outer edge). */
|
|
9
|
-
[data-name="bg"] {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
/* Blur and opacity applied when set via custom properties */
|
|
17
|
-
[data-name="bg"][style*="--bg-blur"] {
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
[data-name="bg"][style*="--bg-opacity"] {
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
/* Fixed (parallax) background */
|
|
24
|
-
[data-name="bg"][data-bg-fixed] {
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
[data-name="bg-video"][style*="--bg-blur"] {
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
[data-name="bg-video"][style*="--bg-opacity"] {
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
[data-name="bg-overlay"][data-bg-overlay="dark"] {
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
[data-name="bg-overlay"][data-bg-overlay="light"] {
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
[data-name="scrim"][data-scrim-tone="dark"]
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
[data-name="scrim"][data-scrim-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
[data-name="scrim"][data-scrim="
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
[data-name="scrim"][data-scrim="
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
9
|
+
[data-name="bg"] {
|
|
10
|
+
border-radius: inherit;
|
|
11
|
+
background-image: var(--bg-image);
|
|
12
|
+
background-size: var(--bg-fit, cover);
|
|
13
|
+
background-position: var(--bg-position, center);
|
|
14
|
+
background-repeat: no-repeat;
|
|
15
|
+
}
|
|
16
|
+
/* Blur and opacity applied when set via custom properties */
|
|
17
|
+
[data-name="bg"][style*="--bg-blur"] {
|
|
18
|
+
filter: blur(var(--bg-blur));
|
|
19
|
+
}
|
|
20
|
+
[data-name="bg"][style*="--bg-opacity"] {
|
|
21
|
+
opacity: var(--bg-opacity);
|
|
22
|
+
}
|
|
23
|
+
/* Fixed (parallax) background */
|
|
24
|
+
[data-name="bg"][data-bg-fixed] {
|
|
25
|
+
background-attachment: fixed;
|
|
26
|
+
}
|
|
27
|
+
[data-name="bg-video"][style*="--bg-blur"] {
|
|
28
|
+
filter: blur(var(--bg-blur));
|
|
29
|
+
}
|
|
30
|
+
[data-name="bg-video"][style*="--bg-opacity"] {
|
|
31
|
+
opacity: var(--bg-opacity);
|
|
32
|
+
}
|
|
33
|
+
[data-name="bg-overlay"][data-bg-overlay="dark"] {
|
|
34
|
+
background: rgba(0, 0, 0, 0.5);
|
|
35
|
+
}
|
|
36
|
+
[data-name="bg-overlay"][data-bg-overlay="light"] {
|
|
37
|
+
background: rgba(255, 255, 255, 0.6);
|
|
38
|
+
}
|
|
39
|
+
[data-name="scrim"][data-scrim-tone="dark"] {
|
|
40
|
+
--scrim-color: 0 0 0;
|
|
41
|
+
}
|
|
42
|
+
[data-name="scrim"][data-scrim-tone="light"] {
|
|
43
|
+
--scrim-color: 255 255 255;
|
|
44
|
+
}
|
|
45
|
+
[data-name="scrim"][data-scrim-dir="top"] {
|
|
46
|
+
--scrim-grad-dir: to top;
|
|
47
|
+
}
|
|
48
|
+
[data-name="scrim"][data-scrim-dir="bottom"] {
|
|
49
|
+
--scrim-grad-dir: to bottom;
|
|
50
|
+
}
|
|
51
|
+
[data-name="scrim"][data-scrim-dir="left"] {
|
|
52
|
+
--scrim-grad-dir: to left;
|
|
53
|
+
}
|
|
54
|
+
[data-name="scrim"][data-scrim-dir="right"] {
|
|
55
|
+
--scrim-grad-dir: to right;
|
|
56
|
+
}
|
|
57
|
+
[data-name="scrim"][data-scrim="gradient"] {
|
|
58
|
+
background-image: linear-gradient(
|
|
59
|
+
var(--scrim-grad-dir, to top),
|
|
60
|
+
transparent,
|
|
61
|
+
rgb(var(--scrim-color, 0 0 0) / var(--scrim-strength, 0.55))
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
[data-name="scrim"][data-scrim="frost"] {
|
|
65
|
+
-webkit-backdrop-filter: blur(var(--scrim-blur, 8px));
|
|
66
|
+
backdrop-filter: blur(var(--scrim-blur, 8px));
|
|
67
|
+
background: rgb(var(--scrim-color, 0 0 0) / 0.18);
|
|
68
|
+
}
|
|
54
69
|
}
|