studio-engine 0.142.0 → 0.143.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/app/assets/tailwind/studio_engine/engine-motion.css +38 -13
- data/app/assets/tailwind/studio_engine/engine.css +1 -1
- data/lib/studio/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4d62fbddea6a9c5e292f2f8d56849b87817e6f8ad2291bfae07e694018ecbd9f
|
|
4
|
+
data.tar.gz: 845b1121620e936c87cee20fbeabdce6c4da5db6b8460d3cd0cbf2b8397f443a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1df9ec21d9280b70635da28104416490dc798db689709d0e831e08410ed3a1070860611c359ee7be54f5ea3eaa76053b5886c48fc764e8beab33b0e9a8c83037
|
|
7
|
+
data.tar.gz: 1c2394ffa46070b4dd647d2e440a574ceff00f619f21ef9544ba7c6c87a2535a886cd9745e5859635f8e9aa334235f18129fa4c93e5f2e27ce0cda4ca52b598f
|
data/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,12 @@ The format is [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). This pro
|
|
|
4
4
|
|
|
5
5
|
## Unreleased
|
|
6
6
|
|
|
7
|
+
## 0.143.0 — 2026-11-10
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **`.edge-rotate-glow` no longer widens a phone page.** The bloom layer (its `::after`) carried a transparent border of 2 x bloom so its mask had room for the blur, which put its box 28px past the host on every side. That box is layout: at 390px the living style guide measured 402px wide, from glow cards in a 16px gutter, also at opacity 0. The bloom is now cut by an evenodd `clip-path` (drawn after the filter, but not layout), so its box stops 8px past the host and the blur spreads past it as ink. The halo looks the same on desktop, except that its corners now follow the host's radius. Keep a glow host 8px or more from the viewport edge. A consumer that overrides the bloom's `inset` (as the glass button rule does) uses `calc(-1 * (var(--edge-rotate-glow-thickness) + 4px))`. The deprecated `.studio-team-glow` alias gets the same fix.
|
|
12
|
+
|
|
7
13
|
## 0.142.0 — 2026-11-09
|
|
8
14
|
|
|
9
15
|
### Added
|
|
@@ -573,6 +573,10 @@
|
|
|
573
573
|
The host must still NOT be clipped by an overflow-hidden ancestor near its
|
|
574
574
|
border, or the ring is cut off with it.
|
|
575
575
|
|
|
576
|
+
ON A PHONE the bloom does not widen the page: its blur reaches past its box as
|
|
577
|
+
ink, and a clip-path (not a mask) cuts it, so only 8px past the host is layout.
|
|
578
|
+
Keep a glow host 8px or more from the viewport edge. The bloom rule says why.
|
|
579
|
+
|
|
576
580
|
Usage: <button class="btn btn-primary edge-rotate-glow">Save</button>
|
|
577
581
|
wrapper shape, when the face is its own element:
|
|
578
582
|
<div class="edge-rotate-glow rounded-xl">
|
|
@@ -678,20 +682,41 @@
|
|
|
678
682
|
/* Blurred bloom twin, a touch larger: its wedges reach 4px PAST the ring, which
|
|
679
683
|
is what makes the bloom read as a halo, not a soft edge on the ring. Drop the
|
|
680
684
|
4px and every WRAPPER consumer's ring visibly lightens (measured: 26% of the
|
|
681
|
-
pixels on style/_modal_specimen, 13% on the hub's release-phase-meter).
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
685
|
+
pixels on style/_modal_specimen, 13% on the hub's release-phase-meter).
|
|
686
|
+
|
|
687
|
+
THE BOX STOPS THERE, and the blur spreads past it. A filter's spread is ink
|
|
688
|
+
overflow, which never widens a page. A box is layout, and it does. This layer
|
|
689
|
+
used to carry a transparent border of 2 x bloom so the mask (clipped to the
|
|
690
|
+
border box) had room for the blur: 28px past the host on every side, and that
|
|
691
|
+
box widened a 390px phone page to 402px wherever a glow host sat in a 16px
|
|
692
|
+
gutter, at opacity 0 too (task edge-glow-phone-overflow).
|
|
693
|
+
|
|
694
|
+
So the cut is a clip-path, not a mask. clip-path also applies AFTER filter,
|
|
695
|
+
but its shape may reach past the box and it is not layout. The shape is the
|
|
696
|
+
same region the mask cut: out to 2 x bloom past this box, where the blur has
|
|
697
|
+
faded, minus the host's own box (the hole; the inward half of the blur is cut
|
|
698
|
+
at the host's edge, invisible because that edge is the card's own or the
|
|
699
|
+
wrapper child's). evenodd makes the inner rectangle a hole. Measured at
|
|
700
|
+
1280px against the mask version: the same halo, except that the bloom's
|
|
701
|
+
corners now follow the host's radius.
|
|
702
|
+
|
|
703
|
+
What is still layout: this box, 8px past the host (4px ring + 4px), and the
|
|
704
|
+
ring, 4px. Keep a glow host 8px or more from the viewport edge. */
|
|
705
|
+
inset: calc(-1 * (var(--edge-rotate-glow-thickness) + 4px));
|
|
690
706
|
padding: calc(var(--edge-rotate-glow-thickness) + 4px);
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
707
|
+
-webkit-mask: none;
|
|
708
|
+
mask: none;
|
|
709
|
+
clip-path: polygon(evenodd,
|
|
710
|
+
calc(var(--edge-rotate-glow-bloom) * -2) calc(var(--edge-rotate-glow-bloom) * -2),
|
|
711
|
+
calc(100% + var(--edge-rotate-glow-bloom) * 2) calc(var(--edge-rotate-glow-bloom) * -2),
|
|
712
|
+
calc(100% + var(--edge-rotate-glow-bloom) * 2) calc(100% + var(--edge-rotate-glow-bloom) * 2),
|
|
713
|
+
calc(var(--edge-rotate-glow-bloom) * -2) calc(100% + var(--edge-rotate-glow-bloom) * 2),
|
|
714
|
+
calc(var(--edge-rotate-glow-bloom) * -2) calc(var(--edge-rotate-glow-bloom) * -2),
|
|
715
|
+
calc(var(--edge-rotate-glow-thickness) + 4px) calc(var(--edge-rotate-glow-thickness) + 4px),
|
|
716
|
+
calc(var(--edge-rotate-glow-thickness) + 4px) calc(100% - var(--edge-rotate-glow-thickness) - 4px),
|
|
717
|
+
calc(100% - var(--edge-rotate-glow-thickness) - 4px) calc(100% - var(--edge-rotate-glow-thickness) - 4px),
|
|
718
|
+
calc(100% - var(--edge-rotate-glow-thickness) - 4px) calc(var(--edge-rotate-glow-thickness) + 4px),
|
|
719
|
+
calc(var(--edge-rotate-glow-thickness) + 4px) calc(var(--edge-rotate-glow-thickness) + 4px));
|
|
695
720
|
z-index: -2;
|
|
696
721
|
filter: blur(var(--edge-rotate-glow-bloom)) saturate(1.35);
|
|
697
722
|
}
|
|
@@ -2852,7 +2852,7 @@ html[data-theme-flip]::view-transition-new(*) {
|
|
|
2852
2852
|
box-shadow: var(--lit-inset-pressed);
|
|
2853
2853
|
}
|
|
2854
2854
|
html[data-surface-style="glass"] .btn:is(.edge-rotate-glow, .studio-team-glow):not(.btn-outline, :disabled, [aria-disabled="true"])::after {
|
|
2855
|
-
inset: calc(-1 * (var(--edge-rotate-glow-thickness) + 4px
|
|
2855
|
+
inset: calc(-1 * (var(--edge-rotate-glow-thickness) + 4px));
|
|
2856
2856
|
box-shadow: none;
|
|
2857
2857
|
}
|
|
2858
2858
|
html[data-surface-style="glass"] .btn.studio-border-glow:not(.btn-outline, :disabled, [aria-disabled="true"])::after {
|
data/lib/studio/version.rb
CHANGED