Cartão em Órbita
Um cartão de recurso centralizado com um recorte circular enquadrando uma esfera de pontos. O cartão entra pela direita (0,25–1,80 s), mantém-se com um leve balanço e deslocamento de profundidade, orbita uma volta completa ao redor do centro da esfera (com smoothstep entre 4,97 e 5,97 s) e sai pela esquerda (7,35–8,55 s). A trajetória da câmera e as curvas F do cartão são exportadas do rig do Blender aprovado a 30 fps e interpoladas; a esfera mantém sua própria translação e rotação constante. Título, descrição, cor de destaque e o ângulo da órbita são variáveis; 180° e 720° funcionam sem tocar nas curvas-chave.
ID da composição: orbit-card. Duração 10 s a 30 fps, 1920×1080.
Arquivos
orbit-card.html(3 KB)assets/Archivo-LICENSE.txt(4 KB)assets/Three-LICENSE.txt(1 KB)assets/archivo-regular.ttf(108 KB)assets/archivo-semibold.ttf(109 KB)assets/gsap-3.14.2.min.js(128 KB)assets/GSAP-NOTICE.txt(1 KB)assets/orbit-motion.js(59 KB)assets/orbit-scene.js(8 KB)assets/three.core.min.js(554 KB)assets/three.module.min.js(468 KB)
Instalação
Instale com npx hyperframes add orbit-card; por padrão, os arquivos acima são colocados em compositions/orbit-card/. Em seguida, monte o bloco a partir do index.html do host:
<div
data-composition-id="orbit-card"
data-composition-src="compositions/orbit-card/orbit-card.html"
data-start="0"
data-duration="10"
data-track-index="1"
data-width="1920"
data-height="1080"
></div>
Renderize com valores personalizados apontando diretamente para o arquivo da composição:
npx --yes [email protected] render 'compositions/orbit-card/orbit-card.html' --variables '{"feature1Title":"Sempre em sincronia","feature1Desc":"As mudanças alcançam cada tela no momento em que acontecem."}'
Variáveis
Lidas em tempo de execução via window.__hyperframes.getVariables(); declaradas na raiz da composição como data-composition-variables (atributo entre aspas simples, JSON puro).
| id | tipo | padrão | rótulo / faixa |
|---|---|---|---|
feature1Title | string | "Sempre em sincronia" | Título do cartão máx. 28 caracteres |
feature1Desc | string | "As mudanças alcançam cada tela no momento em que acontecem." | Descrição do cartão máx. 110 caracteres |
feature1Accent | cor | "#4cc9ff" | Cor de destaque do cartão |
cardOrbitDegrees | número | 360 | Graus da órbita do cartão -36000–36000 passo 1 |
Contrato de tempo de execução
- Uma timeline GSAP pausada registrada como
window.__timelines["orbit-card"]. - Re-sincroniza no evento CustomEvent
hf-seek; cada quadro é uma função de forma fechada do tempo (apenas PRNG com semente, sem loops rAF, sem Date.now). - Renderizador: GSAP.
- Dependências externas de tempo de execução: nenhuma (servidas localmente).
- Fontes locais: assets/archivo-regular.ttf, assets/archivo-semibold.ttf.
Regras de edição (do projeto fonte)
- Mantenha
data-composition-variablescomo um atributo entre aspas simples com JSON puro entre". Nunca salve através do painel Design do Studio. - Não coloque
<canvas>no markup estático; crie-o em tempo de execução. - Mantenha todo estado visual como uma função de t; a segurança de busca é o que torna o bloco renderizável.