@refrakt-md/skeleton 0.22.0 → 0.24.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/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@refrakt-md/skeleton",
|
|
3
3
|
"description": "The structural cascade layer + layer-order contract every refrakt theme builds on — ships `@layer skeleton` and the `@layer skeleton, skin;` order declaration, plus the token-name contract",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.24.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"styles"
|
|
30
30
|
],
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@refrakt-md/types": "0.
|
|
32
|
+
"@refrakt-md/types": "0.24.0"
|
|
33
33
|
},
|
|
34
34
|
"scripts": {
|
|
35
35
|
"build": "tsc"
|
|
@@ -17,3 +17,11 @@
|
|
|
17
17
|
[data-section="media"][data-guest-posture="presentational"] :is(.rf-tabs__tabs, .rf-codegroup__tabs) {
|
|
18
18
|
display: none;
|
|
19
19
|
}
|
|
20
|
+
|
|
21
|
+
/* SPEC-104 — a `backdrop` guest (a live sandbox in the bg layer) is inert at the
|
|
22
|
+
* pointer: decoration behind content, never an interaction target. Unlike
|
|
23
|
+
* `presentational`, the behaviours layer still mounts it (it must run) — this rule
|
|
24
|
+
* only suppresses interaction. */
|
|
25
|
+
[data-guest-posture="backdrop"] {
|
|
26
|
+
pointer-events: none;
|
|
27
|
+
}
|
package/styles/runes/bg.css
CHANGED
|
@@ -17,6 +17,14 @@
|
|
|
17
17
|
object-fit: cover;
|
|
18
18
|
object-position: var(--bg-position, center);
|
|
19
19
|
}
|
|
20
|
+
/* SPEC-104 — a live sandbox backdrop fills the bg layer like bg-video, beneath
|
|
21
|
+
* the overlay/scrim appended after it (which stack above by source order). */
|
|
22
|
+
[data-name="bg"] > [data-bg-guest] {
|
|
23
|
+
position: absolute;
|
|
24
|
+
inset: 0;
|
|
25
|
+
width: 100%;
|
|
26
|
+
height: 100%;
|
|
27
|
+
}
|
|
20
28
|
[data-name="bg-overlay"] {
|
|
21
29
|
position: absolute;
|
|
22
30
|
inset: 0;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/* datatable — structure. The toolbar + pagination flex rows
|
|
2
|
-
* search input
|
|
3
|
-
*
|
|
1
|
+
/* datatable — structure. The toolbar + pagination flex rows, the full-width
|
|
2
|
+
* search input, and the table scroll container that lets wide tables overflow
|
|
3
|
+
* horizontally on narrow screens. The table chrome, type, and borders stay skin
|
|
4
4
|
* (Lumina's styles/runes/datatable.css). */
|
|
5
5
|
|
|
6
6
|
.rf-datatable__toolbar {
|
|
@@ -9,6 +9,12 @@
|
|
|
9
9
|
.rf-datatable__input {
|
|
10
10
|
width: 100%;
|
|
11
11
|
}
|
|
12
|
+
/* Scroll wrapper around the table — toolbar/pagination sit outside this so they
|
|
13
|
+
* stay anchored to the viewport while the table itself scrolls horizontally. */
|
|
14
|
+
.rf-datatable__scroll {
|
|
15
|
+
overflow-x: auto;
|
|
16
|
+
-webkit-overflow-scrolling: touch;
|
|
17
|
+
}
|
|
12
18
|
.rf-datatable__pagination {
|
|
13
19
|
display: flex;
|
|
14
20
|
align-items: center;
|
package/styles/runes/mockup.css
CHANGED
|
@@ -43,6 +43,33 @@
|
|
|
43
43
|
zoom: calc(var(--mockup-scale, 1) * min(1, tan(atan2(100cqi, var(--mockup-device-width, 100cqi)))));
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
/* Media guest: fill the slot. The slot, not the device, sets the size here, so
|
|
47
|
+
* the device scales (up or down) so its width matches the slot's; the cell's
|
|
48
|
+
* fixed height + overflow then crops any vertical overflow (a tall phone peeks,
|
|
49
|
+
* a wide laptop fits whole).
|
|
50
|
+
*
|
|
51
|
+
* The scale factor is `slotWidth ÷ deviceWidth`, but it is *not* computed here:
|
|
52
|
+
* deriving it from container-query units mis-resolves on iOS WebKit (under
|
|
53
|
+
* `zoom` the device balloons; even under `transform` `cqi` resolves to the wrong
|
|
54
|
+
* size). The `mockup` behavior measures the slot in JS — deterministic across
|
|
55
|
+
* engines — and publishes the factor as `--mockup-fit-scale`; centering and the
|
|
56
|
+
* clip stay here. Without JS the factor defaults to 1 (native size), which
|
|
57
|
+
* degrades gracefully. `transform` (not `zoom`) so it never feeds back into the
|
|
58
|
+
* container's measured size.
|
|
59
|
+
*
|
|
60
|
+
* `left` re-centers the native layout box for any slot/device width (the box is
|
|
61
|
+
* left-aligned at native width; the offset shifts its centre onto the slot's),
|
|
62
|
+
* and `transform-origin: top center` anchors the device's top so the clip eats
|
|
63
|
+
* the bottom. `fit="none"` opts out (its own transform path above); standalone
|
|
64
|
+
* mockups keep the capped base zoom (a phone shouldn't fill a column). */
|
|
65
|
+
[data-section="media"] > .rf-mockup:not([data-fit="none"]) .rf-mockup__frame {
|
|
66
|
+
zoom: normal;
|
|
67
|
+
margin-inline: 0;
|
|
68
|
+
left: calc((100% - var(--mockup-device-width, 100%)) / 2);
|
|
69
|
+
transform: scale(calc(var(--mockup-scale, 1) * var(--mockup-fit-scale, 1)));
|
|
70
|
+
transform-origin: top center;
|
|
71
|
+
}
|
|
72
|
+
|
|
46
73
|
.rf-mockup__viewport {
|
|
47
74
|
overflow: auto;
|
|
48
75
|
}
|
package/styles/runes/preview.css
CHANGED
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
z-index: 1;
|
|
39
39
|
}
|
|
40
40
|
.rf-preview__source-tabs { display: flex; }
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
/* The in-feature breakout (`.rf-preview--in-feature { margin-inline: -gutter }`)
|
|
42
|
+
* is NOT here: it overrides the skin rule `.rf-preview { margin: 2rem 0 }` by
|
|
43
|
+
* specificity, so it must stay in @layer skin — in @layer skeleton it loses to
|
|
44
|
+
* that skin margin (skin beats skeleton regardless of specificity) and the bleed
|
|
45
|
+
* is nullified. It lives in Lumina's preview.css @container block. */
|