@refrakt-md/lumina 0.24.5 → 0.24.6
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/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@refrakt-md/lumina",
|
|
3
3
|
"description": "Lumina theme for refrakt.md — design tokens, CSS, identity transform, and layout configs",
|
|
4
|
-
"version": "0.24.
|
|
4
|
+
"version": "0.24.6",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -84,10 +84,10 @@
|
|
|
84
84
|
"generate-tokens": "node scripts/generate-tokens.mjs"
|
|
85
85
|
},
|
|
86
86
|
"dependencies": {
|
|
87
|
-
"@refrakt-md/runes": "0.24.
|
|
88
|
-
"@refrakt-md/skeleton": "0.24.
|
|
89
|
-
"@refrakt-md/transform": "0.24.
|
|
90
|
-
"@refrakt-md/types": "0.24.
|
|
87
|
+
"@refrakt-md/runes": "0.24.6",
|
|
88
|
+
"@refrakt-md/skeleton": "0.24.6",
|
|
89
|
+
"@refrakt-md/transform": "0.24.6",
|
|
90
|
+
"@refrakt-md/types": "0.24.6"
|
|
91
91
|
},
|
|
92
92
|
"devDependencies": {
|
|
93
93
|
"postcss": "^8.4.0"
|
|
@@ -118,4 +118,26 @@
|
|
|
118
118
|
* reads consistently from desktop to mobile. For self-target (showcase) the
|
|
119
119
|
* negative-margin spill stays on too — that's the intended breakout. */
|
|
120
120
|
|
|
121
|
+
/* ── frame-overflow="bleed" (SPEC-116) ───────────────────────────────────
|
|
122
|
+
* The host declares the policy (`data-frame-overflow="bleed"` on its media
|
|
123
|
+
* zone, a bleed host only); the guest signals the fact (`data-overflowing`,
|
|
124
|
+
* set by its runtime when its content is wider than the frame). When both
|
|
125
|
+
* hold on a narrow viewport, run the guest's inline-end out to the layout
|
|
126
|
+
* edge and square those corners, so an overflowing component reads as cropped
|
|
127
|
+
* by the screen instead of clipped at the rounded inset edge.
|
|
128
|
+
*
|
|
129
|
+
* The reach is a LAYOUT-OWNED inset (`--rf-bleed-room-end`, default the page
|
|
130
|
+
* gutter — never the raw viewport, so a chrome'd layout like docs can cap it
|
|
131
|
+
* at the content row). v1 is inline-end only; direction (via frame-anchor) and
|
|
132
|
+
* side-by-side are deferred. The host media zone is already `overflow: visible`
|
|
133
|
+
* for a rune guest (the bleed-host guestFit rule), so the guest can spill. */
|
|
134
|
+
@media (max-width: 640px) {
|
|
135
|
+
[data-frame-overflow="bleed"] > [data-overflowing] {
|
|
136
|
+
width: calc(100% + var(--rf-bleed-room-end, var(--rf-content-gutter, 1.5rem)));
|
|
137
|
+
max-width: none;
|
|
138
|
+
border-start-end-radius: 0;
|
|
139
|
+
border-end-end-radius: 0;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
121
143
|
}
|
|
@@ -137,7 +137,9 @@
|
|
|
137
137
|
@media (max-width: 768px) {
|
|
138
138
|
.rf-search-trigger {
|
|
139
139
|
padding: 0.375rem;
|
|
140
|
-
|
|
140
|
+
/* Collapsed to an icon-only button — keep it fully rounded so it reads
|
|
141
|
+
* as a circle matching the adjacent theme toggle, not a small square. */
|
|
142
|
+
border-radius: var(--rf-radius-full);
|
|
141
143
|
}
|
|
142
144
|
.rf-search-dialog[open] {
|
|
143
145
|
border-radius: 0;
|
|
@@ -4,19 +4,22 @@
|
|
|
4
4
|
* Layout chrome — a peer of the search trigger, placed in the header/toolbar.
|
|
5
5
|
* The `theme-toggle` behavior cycles auto → light → dark and reflects the
|
|
6
6
|
* current preference onto the button as `data-theme-pref`; the icon below
|
|
7
|
-
* tracks that
|
|
8
|
-
*
|
|
9
|
-
* the
|
|
7
|
+
* tracks that, with the icon selector keyed to the `data-theme-pref`
|
|
8
|
+
* attribute. Chrome (surface fill, full radius, muted colour, primary hover
|
|
9
|
+
* accent) is kept in sync with the search trigger so the two header buttons
|
|
10
|
+
* read as a matched set. */
|
|
10
11
|
.rf-theme-toggle {
|
|
11
12
|
padding: 0;
|
|
12
13
|
border: 1px solid var(--rf-color-border);
|
|
13
|
-
border-radius: var(--rf-radius-
|
|
14
|
-
background:
|
|
15
|
-
color: var(--rf-color-
|
|
14
|
+
border-radius: var(--rf-radius-full);
|
|
15
|
+
background: var(--rf-color-surface);
|
|
16
|
+
color: var(--rf-color-muted);
|
|
16
17
|
cursor: pointer;
|
|
17
|
-
transition:
|
|
18
|
+
transition: border-color 0.15s, color 0.15s, background 0.15s;
|
|
18
19
|
}
|
|
19
20
|
.rf-theme-toggle:hover {
|
|
21
|
+
border-color: var(--rf-color-primary);
|
|
22
|
+
color: var(--rf-color-text);
|
|
20
23
|
background: var(--rf-color-surface-hover);
|
|
21
24
|
}
|
|
22
25
|
.rf-theme-toggle:focus-visible {
|