mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-07 01:56:04 +00:00
This reverts commit 3b53bfd2f7.
This commit is contained in:
-156
@@ -1,156 +0,0 @@
|
||||
<!--
|
||||
Tilt Card - transitions.dev-inspired primitive for HyperFrames.
|
||||
|
||||
Paste the markup, CSS and script into a composition. Use the timeline
|
||||
integration note at the bottom as the starting point for deterministic GSAP
|
||||
animation.
|
||||
|
||||
Variables. The script reads each one, falls back to the declared default on
|
||||
anything missing or unrecognised, and writes the result into the markup or
|
||||
into a custom property the CSS above consumes. The timeline recipe below is
|
||||
untouched by them: it keeps driving the same rise and the same tilt angles.
|
||||
|
||||
- eyebrow (string, default "Primitive"): the small uppercase kicker above
|
||||
the headline. Blank falls back to the default.
|
||||
- headline (string, default "Agent-ready motion"): the large card
|
||||
headline. Blank falls back to the default.
|
||||
- glow (tight | standard | wide, default standard): how far the corner
|
||||
glow reaches past the card edges. A wider glow spreads more light at
|
||||
rest, and because the timeline drifts it by a percentage of its own box,
|
||||
a wider glow also carries that drift further across the card.
|
||||
- accent (indigo | emerald | violet, default indigo): the colour family of
|
||||
the card, covering the gradient, the corner glow, the eyebrow and the
|
||||
drop shadow together.
|
||||
|
||||
On every default the result is identical to the original: an indigo card with
|
||||
a sky-blue corner glow reaching 30% past every edge.
|
||||
-->
|
||||
|
||||
<div
|
||||
class="hf-transition-tilt-card"
|
||||
data-composition-variables='[
|
||||
{"id": "eyebrow", "type": "string", "role": "content", "label": "Eyebrow", "description": "Small uppercase kicker above the headline.", "default": "Primitive"},
|
||||
{"id": "headline", "type": "string", "role": "content", "label": "Headline", "description": "Large card headline.", "default": "Agent-ready motion"},
|
||||
{"id": "glow", "type": "enum", "role": "motion", "label": "Glow", "description": "How far the corner glow reaches past the card edges, which sets both its spread at rest and how far the timeline drift carries it.", "default": "standard", "options": [{"value": "tight", "label": "Tight"}, {"value": "standard", "label": "Standard"}, {"value": "wide", "label": "Wide"}]},
|
||||
{"id": "accent", "type": "enum", "role": "style", "label": "Accent", "description": "Colour family of the card gradient, corner glow, eyebrow and drop shadow.", "default": "indigo", "options": [{"value": "indigo", "label": "Indigo"}, {"value": "emerald", "label": "Emerald"}, {"value": "violet", "label": "Violet"}]}
|
||||
]'
|
||||
>
|
||||
<div class="hf-transition-tilt-glow"></div>
|
||||
<div class="hf-transition-tilt-content">
|
||||
<span>Primitive</span>
|
||||
<strong>Agent-ready motion</strong>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.hf-transition-tilt-card {
|
||||
position: relative;
|
||||
width: 420px;
|
||||
height: 260px;
|
||||
overflow: hidden;
|
||||
border: 1px solid rgba(255, 255, 255, 0.18);
|
||||
border-radius: 30px;
|
||||
background: linear-gradient(135deg, #18181b, var(--hf-tilt-accent, #312e81));
|
||||
color: #ffffff;
|
||||
font-family: Inter, system-ui, sans-serif;
|
||||
transform-style: preserve-3d;
|
||||
box-shadow: 0 32px 90px var(--hf-tilt-shadow, rgba(49, 46, 129, 0.34));
|
||||
}
|
||||
.hf-transition-tilt-glow {
|
||||
position: absolute;
|
||||
inset: var(--hf-tilt-glow-inset, -30%);
|
||||
background: radial-gradient(
|
||||
circle at 30% 20%,
|
||||
var(--hf-tilt-glow, rgba(125, 211, 252, 0.5)),
|
||||
transparent 36%
|
||||
);
|
||||
}
|
||||
.hf-transition-tilt-content {
|
||||
position: relative;
|
||||
display: grid;
|
||||
align-content: end;
|
||||
gap: 10px;
|
||||
height: 100%;
|
||||
padding: 34px;
|
||||
transform: translateZ(38px);
|
||||
}
|
||||
.hf-transition-tilt-content span {
|
||||
color: var(--hf-tilt-label, #a5b4fc);
|
||||
font-size: 13px;
|
||||
font-weight: 900;
|
||||
letter-spacing: 0.12em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.hf-transition-tilt-content strong {
|
||||
max-width: 280px;
|
||||
font-size: 34px;
|
||||
line-height: 0.96;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
(function () {
|
||||
"use strict";
|
||||
|
||||
var vars =
|
||||
window.__hyperframes && window.__hyperframes.getVariables
|
||||
? window.__hyperframes.getVariables()
|
||||
: {};
|
||||
|
||||
// Unrecognised overrides return to their declared defaults.
|
||||
var insets = { tight: "-18%", standard: "-30%", wide: "-46%" };
|
||||
var accents = {
|
||||
indigo: {
|
||||
accent: "#312e81",
|
||||
glow: "rgba(125, 211, 252, 0.5)",
|
||||
label: "#a5b4fc",
|
||||
shadow: "rgba(49, 46, 129, 0.34)",
|
||||
},
|
||||
emerald: {
|
||||
accent: "#065f46",
|
||||
glow: "rgba(110, 231, 183, 0.5)",
|
||||
label: "#6ee7b7",
|
||||
shadow: "rgba(6, 95, 70, 0.34)",
|
||||
},
|
||||
violet: {
|
||||
accent: "#5b21b6",
|
||||
glow: "rgba(216, 180, 254, 0.5)",
|
||||
label: "#d8b4fe",
|
||||
shadow: "rgba(91, 33, 182, 0.34)",
|
||||
},
|
||||
};
|
||||
|
||||
function pick(table, value, fallback) {
|
||||
return Object.prototype.hasOwnProperty.call(table, value) ? value : fallback;
|
||||
}
|
||||
|
||||
function text(value, fallback) {
|
||||
var resolved = value == null ? "" : String(value).trim();
|
||||
return resolved.length > 0 ? resolved : fallback;
|
||||
}
|
||||
|
||||
var eyebrow = text(vars.eyebrow, "Primitive");
|
||||
var headline = text(vars.headline, "Agent-ready motion");
|
||||
var inset = insets[pick(insets, vars.glow, "standard")];
|
||||
var accent = accents[pick(accents, vars.accent, "indigo")];
|
||||
|
||||
var roots = document.querySelectorAll(".hf-transition-tilt-card");
|
||||
for (var i = 0; i < roots.length; i += 1) {
|
||||
var root = roots[i];
|
||||
root.style.setProperty("--hf-tilt-glow-inset", inset);
|
||||
root.style.setProperty("--hf-tilt-accent", accent.accent);
|
||||
root.style.setProperty("--hf-tilt-glow", accent.glow);
|
||||
root.style.setProperty("--hf-tilt-label", accent.label);
|
||||
root.style.setProperty("--hf-tilt-shadow", accent.shadow);
|
||||
root.querySelector(".hf-transition-tilt-content span").textContent = eyebrow;
|
||||
root.querySelector(".hf-transition-tilt-content strong").textContent = headline;
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
|
||||
<!--
|
||||
Timeline integration:
|
||||
tl.fromTo('.hf-transition-tilt-card', { opacity: 0, y: 30, rotateX: 0, rotateY: 0 }, { opacity: 1, y: 0, duration: 0.38, ease: 'power2.out' }, 0.3);
|
||||
tl.to('.hf-transition-tilt-card', { rotateX: -7, rotateY: 10, duration: 0.72, ease: 'power3.inOut' }, 0.75);
|
||||
tl.to('.hf-transition-tilt-glow', { xPercent: 12, yPercent: 10, duration: 0.72, ease: 'power3.inOut' }, 0.75);
|
||||
-->
|
||||
Reference in New Issue
Block a user