Every SKILL.md already declared the new name — name: frames, frames-cli, frames-core, and so on — but the directories were never moved, so the tree carried frames-* in content and hyperframes-* on disk. Everything that resolves a skill by path missed: the core-skill list, the plugin marketplace pin, and the docs the CLI reads at runtime. Eight tests failed on main because the files they open do not exist. The directories now match what the files say they are, and the guide the claude-design contract reads takes the name that contract already used.
3.2 KiB
comparison-split — Comparison Split-Cards
intent: Two paired items of equal weight shown side-by-side with mirrored 3D "book-open" tilts — the eye reads them as a balanced comparison, then a pill badge lands at each card's inner edge to punctuate. The motion IS the symmetry: two cards arriving from opposite wings into a held spread.
roles served
- Key_Feature (from
comparison-split-cards): when two complementary features / capabilities of equal weight should be presented simultaneously, not sequentially — an A/B, a "X + Y together," paired concepts the viewer must weigh side-by-side. Not for >2 items (usegrid-card-assemble) or sequential steps.
duration: 4–6s
shot structure (a [bg] canvas carrying two faint ambient glow blooms — [accent A] near 30%, [accent B] near 70% — so each side owns a color identity across a 50% symmetry axis; equal-width cards under one shared perspective parent)
- Scene 1 (0.0–~0.8s) — title sets the concept. A centered
[title line]with an[accent keyword]slides DOWN into place from just above (a short smooth settle). The downward arrival is deliberate: it forms a non-conflicting T-shape against the cards, which arrive from the sides next. - Scene 2 (~0.4–1.9s) — the split-tilt entry (signature move). Two equal-width feature cards arrive from opposite wings —
[left card]from the left,[right card]from the right ~0.2s behind — each carrying a mirrored 3DrotateYtilt (left faces right, right faces left, opening like a book) and scaling ~0.85→1 as it lands. The entry overlaps the title's tail so the whole thing reads as ONE arrival, not two beats. Each card holds[image / label / subtitle]; box-shadows fall outward from the tilt (left shadow right, right shadow left). - Scene 3 (~1.9–end) — badges punctuate, then hold. A pill
[badge]lands at each card's inner edge (left then right, ~0.3s apart), overlapping its card ~15% so it reads as attached, not orbiting. This is the lone overshoot in the shot — it earns the punctuation. Settles and holds.
motion vocabulary: title slide-down from above; mirrored opposite-wing card entry; static book-open rotateY tilt (+tilt left, −tilt right); tilt-matched outward box-shadow; inner-edge badge spring-pop; gentle phase-opposed idle float (left vs right, never synchronized) registered as subtle jitter; dual side-glow ambient.
rule mapping
- two cards entering from opposite wings with mirrored
rotateYtilts + tilt-matched shadow →split-tilt-cards(the signature; keep the two-layer split so the entryx/scaleand the idle never collide on one alias) - title slide-down settle →
gsap-effects(translate + opacity on a long-tailpower3) - inner-edge pill badge pop (the one overshoot) →
spring-pop-entrance(overshoot register — earns the punctuation) - phase-opposed idle float on the pair →
sine-wave-loop(low-amplitude register — subtle jitter, NOT lazy breathing; leftsin(t), rightsin(t+π)so they never conveyor-belt) - the two faint side glows behind the cards →
ambient-glow-bloom(un-triggered soft bloom, one per accent)
camera modifier: camera-static by default — the symmetry is the subject and a move would break the balance.