@refrakt-md/lumina 0.24.1 → 0.24.3

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.1",
4
+ "version": "0.24.3",
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.1",
88
- "@refrakt-md/skeleton": "0.24.1",
89
- "@refrakt-md/transform": "0.24.1",
90
- "@refrakt-md/types": "0.24.1"
87
+ "@refrakt-md/runes": "0.24.3",
88
+ "@refrakt-md/skeleton": "0.24.3",
89
+ "@refrakt-md/transform": "0.24.3",
90
+ "@refrakt-md/types": "0.24.3"
91
91
  },
92
92
  "devDependencies": {
93
93
  "postcss": "^8.4.0"
@@ -23,9 +23,33 @@
23
23
  [data-section="media"] {
24
24
  border-radius: var(--rf-radius-media);
25
25
  }
26
- [data-section="media"] > * {
26
+
27
+ /* `data-guest-fit` (emitted from rune config) is the chrome/containment axis:
28
+ *
29
+ * clip — a framed well (card, bento-cell, recipe, playlist). Every guest
30
+ * adopts the slot radius so it reads as one surface with the well.
31
+ * bleed — a bare section host (hero, feature). A *rune* guest keeps its own
32
+ * chrome (its `data-elevation` radius, border, shadow) — the slot
33
+ * would otherwise just mask a sandbox / codegroup / juxtapose's
34
+ * corners. Leaf media still frames to the slot (an image has no
35
+ * chrome of its own, so a bare hero image stays rounded).
36
+ *
37
+ * Absence of the attribute reads as `clip` (the historical default). */
38
+ [data-section="media"]:not([data-guest-fit="bleed"]) > * {
27
39
  border-radius: inherit;
28
40
  }
41
+ [data-section="media"]:not([data-guest-fit="bleed"]) .rf-codegroup {
42
+ border-radius: var(--rf-radius-media);
43
+ }
44
+
45
+ /* Bleed host: leaf media adopts the slot radius; a rune guest does not, and the
46
+ * slot drops its own radius so its clip never rounds the guest's corners. */
47
+ [data-section="media"][data-guest-fit="bleed"] > :is(img, video, svg, .rf-placeholder) {
48
+ border-radius: inherit;
49
+ }
50
+ [data-section="media"][data-guest-fit="bleed"]:has(> [data-rune]) {
51
+ border-radius: 0;
52
+ }
29
53
 
30
54
  /* `preview` (negative-margin breakout) and a displaced `showcase` (peek spill)
31
55
  * want the slot fully de-chromed so the bleed reads as edge-to-edge. Juxtapose
@@ -44,12 +68,6 @@
44
68
  border-radius: 0;
45
69
  }
46
70
 
47
- /* A code-group dropped into a media zone uses the media radius tier so its
48
- * border and corners line up with the zone's clip. */
49
- [data-section="media"] .rf-codegroup {
50
- border-radius: var(--rf-radius-media);
51
- }
52
-
53
71
  /* Beside-layout images get subtle depth. Block runes carry their own visual
54
72
  * weight (topbars, frames) so the shadow is image-only. */
55
73
  [data-media-position="start"] > [data-section="media"] > img,
@@ -149,6 +149,9 @@
149
149
  margin-top: 3rem;
150
150
  border-radius: var(--rf-radius-lg);
151
151
  }
152
+ /* Rune-guest chrome handling (don't round a sandbox / codegroup / juxtapose) is
153
+ * the shared `data-guest-fit="bleed"` behaviour — see layouts/split.css. The
154
+ * hero only sets the image radius tier here. */
152
155
  .rf-hero[data-media-position="top"] > .rf-hero__media {
153
156
  margin-top: 0;
154
157
  margin-bottom: 3rem;