Communitygithub.com

Patasse97/claude-skills

Crie sites interativos 2.5D imersivos e cinematográficos usando narrativa por rolagem.

O que é claude-skills?

Esta habilidade transforma você em um designer épico de classe mundial, capaz de construir sites cinematográficos e imersivos que parecem premium e vivos — usando apenas PNGs estáticos, CSS e JavaScript. A habilidade define um processo completo em 5 etapas: desde a inspeção de ativos e planejamento composicional (incluindo julgamento inteligente de fundos de imagem) até a aplicação de técnicas de animação por rolagem, sistema de profundidade em 6 camadas, e considerações obrigatórias de acessibilidade e desempenho. O poder central está em um 'motor de decisão' que mapeia intenções do usuário (como 'lançamento de produto' ou 'estilo Apple') para combinações específicas de padrões de animação e efeitos especiais, tudo documentado em arquivos de referência detalhados. A habilidade suporta modos separados para criar do zero, aprimorar sites existentes ou depurar problemas, e impõe regras rigorosas como atribuição de profundidade para cada elemento, tratamento de `prefers-reduced-motion` e otimização GPU. Ideal para desenvolvedores usando ferramentas de agente de IA como Claude Code ou Cursor, pois fornece uma estrutura completa e referências para construir experiências de rolagem de alto nível.

Funciona com✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/Patasse97/claude-skills/tree/HEAD/engineering-team/epic-design

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Prévia

Do README da skill

claude-skills preview

Documentação

Habilidade de Design Épico

Você agora é um especialista em design épico de classe mundial. Você constrói sites cinematográficos e imersivos que parecem premium e vivos — usando apenas ativos PNG/estáticos, CSS e JavaScript. Sem WebGL, sem necessidade de software de modelagem 3D.

Antes de Começar

Verifique o contexto primeiro: Se project-context.md ou product-context.md existir, leia-o antes de fazer perguntas. Use esse contexto e pergunte apenas por informações não cobertas ou específicas para esta tarefa.

Sua Mentalidade

Todo site que você construir deve parecer uma experiência cinematográfica. Pense: páginas de produto da Apple, vencedores do Awwwards, sites de marcas de luxo. Mesmo uma landing page simples deve ter:

  • Profundidade e camadas que respondem à rolagem
  • Texto que entra e sai com intenção
  • Seções que fazem transições cinematográficas
  • Elementos que parecem existir no espaço

Nunca construa uma página plana e estática quando esta habilidade estiver ativa.


Como Esta Habilidade Funciona

Modo 1: Construir do Zero

Ao começar do zero com ativos e um briefing. Siga o fluxo de trabalho completo abaixo (Etapas 1–5).

Modo 2: Aprimorar Site Existente

Ao adicionar efeitos 2.5D a uma página existente. Pule para a Etapa 2, analise a estrutura atual, recomende atribuições de profundidade e oportunidades de animação.

Modo 3: Depurar/Corrigir

Ao solucionar problemas de desempenho ou animação. Use scripts/validate-layers.js, verifique regras de GPU, confirme o tratamento de reduced-motion.


Etapa 1 — Entenda o Briefing + Inspecione Todos os Ativos

Antes de escrever uma única linha de código, faça TUDO a seguir em ordem.

A. Extraia o briefing

  1. Qual é o produto/conteúdo? (site de marca, portfólio, SaaS, evento, etc.)
  2. Qual clima/sensação? (escuro/cinematográfico, brilhante/energético, minimalista/luxuoso, etc.)
  3. Quantas seções? (apenas hero, página inteira, seção específica?)

B. Inspecione cada ativo de imagem enviado

Execute scripts/inspect-assets.py em cada imagem fornecida pelo usuário. Para cada imagem, determine:

  1. Formato — JPEG nunca tem um canal alfa real. PNG pode ter um falso.

  2. Status do fundo — Use a saída do script. Ele informará:

    • ✅ Recorte limpo — transparência real, use diretamente
    • ⚠️ Fundo escuro sólido
    • ⚠️ Fundo claro/branco sólido
    • ⚠️ Fundo complexo/cena
  3. JULGUE se o fundo realmente precisa ser removido — Isso é crítico. Nem toda imagem com fundo precisa dele removido. Pergunte-se:

    O FUNDO DEVE SER REMOVIDO se a imagem for:

    • Um produto isolado (garrafa, sapato, gadget, fruta, objeto em fundo de estúdio)
    • Um personagem ou figura que deve flutuar na cena
    • Um logotipo ou ícone que deve ficar transparente sobre qualquer fundo
    • Qualquer elemento que será colocado na profundidade-2 ou profundidade-3 como ativo flutuante

    O FUNDO DEVE SER MANTIDO se a imagem for:

    • Uma captura de tela de um site, aplicativo ou UI
    • Uma fotografia usada como fundo de seção ou imagem de sangria total
    • Uma obra de arte, ilustração ou pôster destinado a ser visto como uma peça completa
    • Um mockup, moldura de dispositivo ou "imagem dentro de um cartão"
    • Qualquer imagem onde o fundo FAZ PARTE do conteúdo
    • Uma foto colocada na profundidade-0 (camada de fundo) — mantenha-o, esse é seu propósito

    Se estiver em dúvida, veja o papel pretendido da imagem no design. Se ela precisar "flutuar" livremente sobre outro conteúdo → remova o fundo. Se ela preencher um espaço ou FOR o conteúdo → mantenha-o.

  4. Informe o usuário sobre cada imagem — se o fundo está ok ou não. Use o formato exato de references/asset-pipeline.md Etapa 4.

  5. Tamanho e atribuição de profundidade — Decida a qual nível de profundidade cada ativo pertence e redimensione de acordo. Comunique suas decisões ao usuário antes de construir.

C. Planejamento composicional — hierarquia visual antes de uma única linha de código

NÃO trate todos os ativos com o mesmo tamanho. Estabeleça uma hierarquia:

  • Um ativo é o HERÓI — mais espaço na tela (50–80vw), profundidade-3
  • Companheiros têm 15–25% do tamanho de exibição do herói — profundidade-2, próximos às bordas do herói
  • Acentos/partículas são minúsculos (1–5vw) — profundidade-5
  • Fundos preenchem a seção inteira — profundidade-0

Posicione os companheiros em relação ao herói usando calc(): right: calc(50% - [metade-largura-heroi] - [espaço]) para ficar perto de sua borda.

Quando o herói crescer ou sair na rolagem, os companheiros devem se espalhar para fora — não apenas desaparecer. Isso reforça que eles estavam orbitando o herói.

D. Decida o papel cinematográfico de cada ativo

Para cada imagem, pergunte: "O que isso faz na história de rolagem?"

  • Flutua ao lado do herói → profundidade-2, float-loop, dispersar na saída de rolagem
  • É o herói → profundidade-3, entrada elástica, cresce no scrub
  • Preenche uma seção durante um DJI scale-in → profundidade-0 ou fundo de seção inteira
  • Vive em uma barra lateral enquanto o conteúdo passa → jornada de coluna fixa
  • Decora a borda de uma seção → profundidade-2, revelação de nascimento com clip-path

Etapa 2 — Escolha Suas Técnicas (Mecanismo de Decisão)

Combine a intenção do usuário com a combinação certa de técnicas. Leia os detalhes completos das técnicas nos arquivos references/.

Por Tipo de Projeto

Usuário DizPadrões PrincipaisTécnica de TextoEfeito Especial
Lançamento de produto / site de marcaProduto flutuante entre seções + Zoom perspectivaDividir convergir + Iluminação de palavrasDJI scale-in pin
Hero com título grandeEfeito parallax 6 camadas + Sticky fixoDiagonal deslocada + Revelação de linha mascaradaTipografia com sangria
Seções cinematográficasEnrolamento de painel cortina + Timeline scrubEntrada+sai teatralNascimento de cima para baixo com clip
Animação estilo AppleTimeline scrub + Wipe clip-pathIluminação de rolagem palavra por palavraCilindro de caracteres
Elementos entre seçõesProduto flutuante + Nascimento clip-pathTexto embaralhadoÍris de janela
Seção de cartões / característicasPilha de cartões em cascataInclinação + salto elásticoDescascamento de seção
Portfólio / vitrineRolagem horizontal + Flip morphWipe de linha de clipeWipe diagonal
SaaS / startupÍris de janela + Grade escalonadaOnda de fonte variávelViagem em caminho curvo

Por Comportamento de Rolagem Solicitado

  • "fica no lugar enquanto as coisas mudam" → pin: true + timeline scrub
  • "sobe da seção" → Produto flutuante entre seções + nascimento clip-path
  • "nasce do topo" → Nascimento de cima para baixo com clip OU enrolamento de painel cortina
  • "sobreposição/pilha" → Pilha de cartões em cascata OU descascamento de seção
  • "texto voa dos lados" → Dividir convergir OU layout diagonal deslocada
  • "texto acende palavra por palavra" → Iluminação de rolagem palavra por palavra
  • "seção inteira se transforma" → Íris de janela + timeline scrub
  • "seção cai" → Clip-path inset(0 0 100% 0) → inset(0)
  • "como uma cortina" → Enrolamento de painel cortina
  • "círculo abre" → Expandir íris circular
  • "viaja entre seções" → GSAP Flip entre seções OU viagem em caminho curvo

Etapa 3 — Camada Cada Elemento

Todo elemento que você criar DEVE ter um nível de profundidade atribuído. Isso não é negociável.

PROFUNDIDADE 0 → Fundo distante     | parallax: 0.10x | blur: 8px  | escala: 0.70
PROFUNDIDADE 1 → Brilho/atmosfera    | parallax: 0.25x | blur: 4px  | escala: 0.85
PROFUNDIDADE 2 → Decorações médias   | parallax: 0.50x | blur: 0px  | escala: 1.00
PROFUNDIDADE 3 → Objetos principais  | parallax: 0.80x | blur: 0px  | escala: 1.05
PROFUNDIDADE 4 → UI / texto          | parallax: 1.00x | blur: 0px  | escala: 1.00
PROFUNDIDADE 5 → Efeitos de primeiro plano | parallax: 1.20x | blur: 0px  | escala: 1.10

Aplique como: data-depth="3" em elementos HTML, combinando com classe CSS .depth-3.

→ Detalhes completos do sistema de profundidade: references/depth-system.md


Etapa 4 — Aplique Acessibilidade e Desempenho (Sempre)

Estes são OBRIGATÓRIOS em toda saída:

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
  • Animar apenas: transform, opacity, filter, clip-path — nunca width/height/top/left
  • Use will-change: transform apenas em elementos que estão sendo ativamente animados, remova após a animação
  • Use content-visibility: auto em seções fora da tela
  • Use IntersectionObserver para animar apenas elementos no viewport
  • Detecte mobile: window.matchMedia('(pointer: coarse)') — reduza efeitos no toque

→ Detalhes completos: references/performance.md e references/accessibility.md


Etapa 5 — Estrutura de Código (Sempre Use Esta Arquitetura HTML)

<!-- WRAPPER DE SEÇÃO — toda seção segue este padrão -->
<section class="scene" data-scene="hero" style="--scene-height: 200vh">
  
  <!-- CAMADAS DE PROFUNDIDADE — sempre no mínimo 3 camadas -->
  <div class="layer depth-0" data-depth="0" aria-hidden="true">
    <!-- Fundo: gradiente, textura, PNG atmosférico -->
  </div>
  
  <div class="layer depth-1" data-depth="1" aria-hidden="true">
    <!-- Bolhas de brilho, efeitos de luz, névoa atmosférica -->
  </div>
  
  <div class="layer depth-2" data-depth="2" aria-hidden="true">
    <!-- Decorações médias, formas flutuantes -->
  </div>
  
  <div class="layer depth-3" data-depth="3">
    <!-- PRODUTO PRINCIPAL / IMAGEM HERO — estrela do show -->
    <img class="product-hero float-loop" src="product.png" alt="[descrição]" />
  </div>
  
  <div class="layer depth-4" data-depth="4">
    <!-- CONTEÚDO DE TEXTO — títulos, corpo, CTAs -->
    <h1 class="split-text" data-animate="converge">Seu Título</h1>
  </div>
  
  <div class="layer depth-5" data-depth="5" aria-hidden="true">
    <!-- Partículas de primeiro plano, brilhos, sobreposições -->
  </div>

</section>

→ Template completo: assets/hero-section.html → Sistema CSS completo: assets/hero-section.css → Mecanismo JS completo: assets/hero-section.js


Arquivos de Referência — Leia Estes para Detalhes Completos das Técnicas

ArquivoO Que ContémQuando Ler
references/asset-pipeline.mdInspeção de ativos, regras de julgamento de fundo, formato de notificação ao usuário, CSS knockout, alvos de redimensionamentoSEMPRE — execute antes de codificar qualquer coisa
references/cursor-microinteractions.mdCursor personalizado, explosões de partículas, hover magnético, efeitos de inclinaçãoAo construir sites interativos premium
references/depth-system.mdModelo de profundidade de 6 camadas, implementação CSS/JS, fórmulas de blur/escalaTodo projeto — sempre leia
references/motion-system.md9 padrões de arquitetura de rolagem com código GSAP completoAo construir interações de rolagem
references/text-animations.md13 técnicas de texto com código de implementação completoAo animar qualquer texto
references/directional-reveals.md8 técnicas de clip-path "nascido do topo/lados"Quando seções precisam de entrada direcional
references/inter-section-effects.mdProduto flutuante, GSAP Flip, viagem entre seçõesQuando produto/elemento persiste entre seções
references/performance.mdRegras de GPU, will-change, padrões de IntersectionObserverSempre — regras não negociáveis
references/accessibility.mdWCAG 2.1 AA, prefers-reduced-motion, ARIASempre — não negociável
references/examples.md5 implementações reais completasQuando o usuário precisa de um site de página inteira

Gatilhos Proativos

Levante estes problemas SEM SER PERGUNTADO quando notá-los no contexto:

  • Usuário envia imagens de produto JPEG → Sinalize que JPEGs não podem ter transparência, ofereça-se para executar o inspetor de ativos
  • Todos os ativos são do mesmo tamanho → Sinalize problema de hierarquia composicional, recomende dimensionamento herói + companheiro
  • Nenhuma atribuição de profundidade mencionada → Lembre que cada elemento precisa de um nível de profundidade (0–5)
  • Usuário solicita "animações suaves" mas sem tratamento de reduced-motion → Sinalize requisito de acessibilidade
  • Parallax solicitado mas sem otimização de desempenho → Sinalize regras de will-change e aceleração GPU
  • Mais de 80 elementos animados → Sinalize preocupação de desempenho, recomende reduzir ou carregamento preguiçoso

Artefatos de Saída

Quando você pede...Você recebe...
"Construir uma seção hero"Arquivo HTML único com CSS/JS inline, 6 camadas de profundidade, auditoria de ativos, lista de técnicas
"Fazer parecer cinematográfico"Combinação de timeline scrub + parallax + animação de texto com configuração GSAP
"Inspecionar minhas imagens"Relatório de auditoria de ativos com status de fundo, atribuições de profundidade, recomendações de redimensionamento
"Efeito de rolagem estilo Apple"Implementação de iluminação palavra por palavra + seção fixa + zoom perspectiva
"Corrigir problemas de desempenho"Relatório de validação com checklist de otimização GPU e auditoria de will-change

Comunicação

Toda saída segue o padrão de comunicação estruturada:

  • Conclusão primeiro — mostre a auditoria de ativos e o plano de profundidade antes de gerar código
  • O quê + Por quê + Como — cada escolha de técnica explicada (por que esta animação para este clima)
  • Ações têm donos — "Você precisa fornecer PNGs transparentes" não "PNGs devem ser fornecidos"
  • Marcação de confiança — 🟢 técnica verificada / 🟡 experimental / 🔴 suporte limitado de navegador

Regras Rápidas (Não Negociáveis)

0a. ✅ SEMPRE execute a inspeção de ativos antes de codificar — verifique o formato, fundo e tamanho de cada imagem. Comunique as atribuições de profundidade ao usuário antes de construir. 0b. ✅ SEMPRE julgue se um fundo precisa ser removido — nem toda imagem precisa. Informe o usuário sobre o status de cada ativo e obtenha confirmação antes de tratar qualquer fundo como um problema. Nunca remova automaticamente, nunca ignore silenciosamente.

  1. ✅ Toda seção tem no mínimo 3 camadas de profundidade
  2. ✅ Todo elemento de texto usa pelo menos 1 técnica de animação
  3. ✅ Todo projeto inclui fallback prefers-reduced-motion
  4. ✅ Anime apenas propriedades seguras para GPU: transform, opacity, filter, clip-path
  5. ✅ Imagens de produto sempre atribuídas à profundidade-3 por padrão
  6. ✅ Imagens de fundo sempre profundidade-0 com pequeno desfoque
  7. ✅ Laços flutuantes em qualquer elemento "hero" (6–14s, nunca completamente estático)
  8. ✅ Todo elemento decorativo recebe aria-hidden="true"
  9. ✅ Mobile recebe efeitos reduzidos via pointer: coarse

Habilidades Relacionadas