studio-engine 0.55.0 → 0.56.1
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 +47 -0
- data/app/assets/tailwind/studio_engine/engine-motion.css +592 -0
- data/app/helpers/studio/fizz_helper.rb +125 -0
- data/app/views/studio/_fizz_layer.html.erb +16 -0
- data/app/views/studio/_hold_button.html.erb +405 -0
- data/app/views/studio/profiles/_identity.html.erb +23 -2
- data/app/views/studio/profiles/_identity_mini.html.erb +74 -23
- data/app/views/studio/profiles/_identity_styles.html.erb +144 -0
- data/app/views/studio/profiles/_save_controls.html.erb +79 -0
- data/app/views/studio/profiles/edit.html.erb +51 -25
- data/app/views/style/_tricks.html.erb +59 -0
- data/lib/studio/version.rb +1 -1
- metadata +6 -3
- data/app/views/studio/profiles/_save_bar.html.erb +0 -39
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a79e19829850f00a9e8cc9d2957d1de612da3bfbc08729a1326aa42391d2d422
|
|
4
|
+
data.tar.gz: f81e213a68ac8e8ae4693cc6ace20965df25037f24d4d3173984ddf4c95efab0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 99bb6489f03318e771373b6c00514b9cc5199a0182bd1d2a08f8310ea3ee60b1caa102f97f31bc96ee9d004471d77a34d5bb7ebf50a5c76354a4e579cf2abb91
|
|
7
|
+
data.tar.gz: 6021838ea445cd9bfaec0b6ade383a7e3f6d8bb5597f6fd5a22c415631ce8ca598564e4f5765bcde709f55260dc2b8775cc5e26edf92d08bc0a7a4702cfa731a
|
data/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,53 @@ The format is [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). This pro
|
|
|
6
6
|
|
|
7
7
|
### Added
|
|
8
8
|
|
|
9
|
+
- **The hold-to-confirm button, with its fizz — a new ACTION family in
|
|
10
|
+
`engine-motion.css`.** A press-and-hold CTA for an action a host does not want
|
|
11
|
+
taken by accident, ported from Turf Monster where it confirms a contest entry.
|
|
12
|
+
Render `studio/hold_button`; the specimens are on `/admin/style` (Tricks →
|
|
13
|
+
"Hold to confirm").
|
|
14
|
+
|
|
15
|
+
What ships:
|
|
16
|
+
|
|
17
|
+
- **`.hold-btn`** — the face and its five states: idle, `.process` (holding,
|
|
18
|
+
with the ring filling over `--duration`), `.loading` (submitted, spinning
|
|
19
|
+
arc), `.success` (confirmed, white check) and `.error` (blocked). The idle
|
|
20
|
+
face is a gradient down the primary ramp; the confirmed face is a deeper cut
|
|
21
|
+
of the SAME ramp, because an off-family success color reads as a jump to
|
|
22
|
+
some other button.
|
|
23
|
+
- **`.hold-stack` / `.hold-fizz` / `.fizz-bit`** — the carbonation. The
|
|
24
|
+
bubbles are the button's SIBLING, never its child: the button's `transform`
|
|
25
|
+
makes it a stacking context, so a bubble inside it can never get behind its
|
|
26
|
+
background. They show only where they escape its edges.
|
|
27
|
+
- **Six zones, three colors each.** The button is cut into a 3×2 grid and a
|
|
28
|
+
bubble only wears the colors of its own zone, so a six-item palette reads as
|
|
29
|
+
six things standing around the button. Bind `--fizz-c-1..18` (three per zone,
|
|
30
|
+
in order) on the stack — statically with the `fizz_colors:` local, or live
|
|
31
|
+
with `fizz_bind:` (an Alpine expression). Turf Monster's board binds the six
|
|
32
|
+
picked teams' light / dark / alt colors. Anything unbound falls back to the
|
|
33
|
+
bubble's own hue, so the effect is never colorless.
|
|
34
|
+
- **Two levels.** `fizz_level: :lively` (the default) rests at a full boil and
|
|
35
|
+
on hover DOUBLES THE BUBBLE COUNT — a second layer, seeded apart so it lands
|
|
36
|
+
in the first one's gaps, fades in over it. `fizz_level: :calm` simmers at
|
|
37
|
+
rest and boils on hover, one layer.
|
|
38
|
+
- **Per-instance theming without new CSS.** Every color reads a `--hold-*`
|
|
39
|
+
input before its default, so an ancestor can restyle one button or a page of
|
|
40
|
+
them: `--hold-bg-from` / `--hold-bg-mid` / `--hold-bg-to` for the resting
|
|
41
|
+
face, `--hold-success-from` / `--hold-success-to` / `--hold-success-glow-rgb`
|
|
42
|
+
for the confirmed one.
|
|
43
|
+
- **`prefers-reduced-motion` switches the bubbles off**, with `!important`,
|
|
44
|
+
because the state rules are more specific than anything the media query can
|
|
45
|
+
write — without it a lively button keeps fizzing at someone who asked it not
|
|
46
|
+
to.
|
|
47
|
+
|
|
48
|
+
Per-instance behavior travels as `data-*` on the button and is evaluated
|
|
49
|
+
against the surrounding `x-data` scope: `guard`, `validate` / `validate_at`,
|
|
50
|
+
`early_action` / `early_action_at` / `early_action_guard`, `on_hold_start` and
|
|
51
|
+
`on_success`. `Studio::FizzHelper` owns the bubble table and is seeded per
|
|
52
|
+
`hold_id`, so a button scatters identically on every render (a Turbo-restored
|
|
53
|
+
page matches the one it replaced) and two buttons on a page do not fizz in
|
|
54
|
+
lockstep.
|
|
55
|
+
|
|
9
56
|
- **`.studio-team-glow` rings a host that paints its own background**, and can
|
|
10
57
|
carry **two colors**.
|
|
11
58
|
|