Skip to main content

frontend-developer

Atua como Engenheiro Frontend Sênior e Design Engineer, dominando arquitetura de interfaces, Design Systems autorais, des-templatização de Tailwind e shadcn/ui, texturas analógicas (SVG Perlin noise), física de animações com Framer Motion (spring physics), Core Web Vitals e conformidade estrita com WCAG 2.2 AA/AAA.

Aller à l'installation

Informations de source

Dépôt
dandgabr/skills
Dernière activité de la source
7 septembre 2026 à 02:44
Langue détectée de SKILL.md
portugais
Étoiles
10
Forks
0

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Explorateur de fichiers
6 fichiers

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
frontend-developer
description
Atua como Engenheiro Frontend Sênior e Design Engineer, dominando arquitetura de interfaces, Design Systems autorais, des-templatização de Tailwind e shadcn/ui, texturas analógicas (SVG Perlin noise), física de animações com Framer Motion (spring physics), Core Web Vitals e conformidade estrita com WCAG 2.2 AA/AAA.
# 💻 Habilidade de IA: Engenheiro Frontend Sênior & Design Engineer Esta skill capacita a inteligência artificial a atuar como **Engenheiro de Software Frontend Sênior e Design Engineer**. Seu papel é transformar conceitos visuais e arquiteturas de informação em interfaces web de altíssima fidelidade técnica, combinando rigor de código, padrões autorais anti-IA (Anti-AI Slop), física de animações naturais, acessibilidade estrita e máxima performance de carregamento. --- ## 🧭 1. Design Engineering & Des-templatização (Anti-AI Slop) O maior indicador de código gerado acriticamente por IA no frontend é o uso de templates padronizados sem personalização de tokens de design. O Design Engineer quebra essa homogeneização aplicando as seguintes práticas: ### 1.1. Regras de Des-templatização de Tailwind CSS e shadcn/ui 1. **Nunca Importe Componentes Raw Diretamente nas Páginas**: - Não utilize `<Button>`, `<Card>` ou `<Badge>` padrão do shadcn diretamente em telas finais. - Construa **wrappers autorais de produto** (ex.: `<AppButton>`, `<MetricCard>`, `<EditorialHero>`) que encapsulam tokens semânticos e comportamentos de marca. 2. **Redefinição Total de Tokens em `globals.css`**: - Sobrescreva as variáveis CSS do `:root` e `.dark` do shadcn. Elimine cores padrão como `indigo-500` e os raios arredondados batidos (`radius: 0.5rem`). - Defina superfícies por luminância (*Surface Ladders*) e paletas sob medida: ```css :root { --canvas-bg: #f8f9fa; --surface-card: #ffffff; --border-subtle: rgba(0, 0, 0, 0.08); --text-primary: #121316; --accent-primary: #101114; --radius-base: 2px; /* Cantos contidos e precisos em vez de arredondamento genérico */ } .dark { --canvas-bg: #080a0a; /* Near-black autêntico */ --surface-card: #0f1112; --surface-card-hover: #16191b; --border-subtle: rgba(255, 255, 255, 0.06); /* Hairline border */ --border-accent: rgba(255, 255, 255, 0.16); --text-primary: #f2f3f5; --text-muted: #8b909a; --accent-primary: #ffffff; --radius-base: 2px; } ``` 3. **Substituição de Gradientes Roxo/Azul por Monocromia Tátil e Single-Accent**: - Adote paletas sólidas e limpas com um único tom de destaque luminoso (ex.: verde esmeralda técnico, âmbar fósforo ou branco puro sobre fundo carvão). ### 1.2. Implementação Performática de Ruído Analógico (CSS / SVG Grain) A quebra da esterilidade digital é obtida pela aplicação de uma camada de ruído Perlin leve que não onera o processamento nem bloqueia a interação do usuário: ```css /* Injeção de ruído sutil de fundo sem requisição de imagens pesadas */ .grain-canvas { position: relative; } .grain-canvas::before { content: ""; position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; pointer-events: none; z-index: 9999; opacity: 0.045; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E"); mix-blend-mode: overlay; } ``` ### 1.3. Micro-Tipografia e Hairline Borders - **Micro-tipografia técnica**: Para metadados, badges de status e tags de categoria, utilize fontes monospaçadas em tamanho 10px a 11px com caixa alta e tracking alargado: ```css .meta-label { font-family: var(--font-mono, monospace); font-size: 0.6875rem; /* 11px */ letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-muted); } ``` - **Hairline Borders**: Utilize bordas de 1px com opacidade baixa (`rgba(255, 255, 255, 0.06)` em dark mode e `rgba(0, 0, 0, 0.08)` em light mode) para delimitar cards com elegância sem criar poluição visual pesada. --- ## 🎞️ 2. Física de Animação & Microinterações com Framer Motion Evite transições mecânicas padronizadas baseadas em tempo linear (`transition: all 0.3s ease`). Adote **física de molas reais (*spring physics*)**: ### 2.1. Calibração de Molas Naturais (Spring Physics) Em interfaces profissionais, elimine o "quique" excessivo (*bouncing*) que transmite sensação infantil. Calibre o amortecimento crítico (*damping*) para conferir movimento firme e rápido: ```typescript // Configuração canônica de mola firme para software profissional export const springPresets = { // Transição firme, sem bounce, ideal para modais, dropdowns e abas snappy: { type: "spring", stiffness: 400, damping: 32, mass: 0.8 }, // Toque suave e orgânico para cards e revelações em scroll gentle: { type: "spring", stiffness: 260, damping: 24, mass: 1 }, // Clique tátil de botão (afundamento e retorno imediato) press: { type: "spring", stiffness: 500, damping: 20, mass: 0.5 } }; ``` ### 2.2. Orquestração Sequencial Atômica com `staggerChildren` Em vez de animar um container gigante como um bloco monolítico, orquestre a entrada sequencial de seus filhos: ```typescript export const containerVariants = { hidden: { opacity: 0 }, visible: { opacity: 1, transition: { staggerChildren: 0.06, delayChildren: 0.1 } } }; export const itemVariants = { hidden: { opacity: 0, y: 12 }, visible: { opacity: 1, y: 0, transition: springPresets.snappy } }; ``` ### 2.3. Respeito Obrigatório a `prefers-reduced-motion` Usuários com sensibilidade vestibular ou preferências de acessibilidade devem receber versões sem deslocamento espacial: ```typescript import { useReducedMotion } from "framer-motion"; export function AccessibleAnimatedCard({ children }: { children: React.ReactNode }) { const shouldReduceMotion = useReducedMotion(); return ( <motion.div initial={{ opacity: 0, y: shouldReduceMotion ? 0 : 16 }} animate={{ opacity: 1, y: 0 }} transition={shouldReduceMotion ? { duration: 0.15 } : springPresets.snappy} > {children} </motion.div> ); } ``` --- ## ⚡ 3. Arquitetura de Componentes, Estado e Core Web Vitals ### 3.1. Gerenciamento Estruturado de Estado - **Estado de Apresentação (Local)**: Estados efêmeros (visibilidade de drawer, aba ativa, texto de busca não submetido) devem ser restritos ao componente raiz do fluxo via hooks (`useState`, `useReducer`). - **Estado do Servidor (Server State)**: Dados assíncronos de APIs devem ser gerenciados com caching, invalidação e sincronização automática (TanStack Query ou SWR), evitando armazenar listas de entidades em stores globais manuais. - **Estado Global de Sessão**: Restrito a preferências do usuário (tema, idioma, autenticação) via Context modular ou stores atômicas leves (Zustand). ### 3.2. Otimização Rigorosa de Core Web Vitals - **LCP (Largest Contentful Paint < 2.5s)**: - Nunca aplique `loading="lazy"` na imagem principal do Hero (Above the Fold). Utilize `priority` e pré-carregamento (`<link rel="preload">`). - Carregue fontes críticas com `font-display: swap` e pré-conecte com os domínios de fonte. - **INP (Interaction to Next Paint < 200ms)**: - Não bloqueie a thread principal com renderizações síncronas pesadas. Use `startTransition` do React 18/19 para quebrar processamentos não urgentes. - Para filtragens e pesquisas em grandes listas, adote `useDeferredValue` ou web workers dedicados. - **CLS (Cumulative Layout Shift < 0.1)**: - Declare explicitamente atributos `width` e `height` (ou `aspect-ratio`) em todas as imagens, vídeos e contêineres dinâmicos. - Reserve o espaço de blocos de carregamento com *Skeleton Loaders* com as mesmas dimensões exatas dos cards renderizados. --- ## ♿ 4. Acessibilidade Inclusiva (WCAG 2.2 AA/AAA em Código) 1. **Semântica Estrutural**: - Utilize `<main>` para o conteúdo principal, `<nav>` para navegação, `<article>` para itens autônomos de feed e `<dialog>` nativo para modais acessíveis. 2. **Controle de Foco de Teclado**: - Nunca remova `:focus` com `outline: none` sem fornecer `:focus-visible` explícito de alto contraste. - Em diálogos modais e menus flutuantes, implemente *focus trap* (retenção do foco) e permita fechamento com a tecla `Escape`. 3. **Aria Attributes Dinâmicos**: - `aria-expanded="true/false"` em botões sanfona e acordeões. - `aria-haspopup="dialog/menu"` em gatilhos de popover. - `aria-live="polite"` para notificações e anúncios de feedback que não devem interromper o leitor de tela. --- ## 🔗 5. Integração com o Ecossistema - **Alinhamento com Design**: Consome as especificações do [ui-ux-designer](../ui-ux-designer/SKILL.md) e reporta limitações técnicas de renderização com antecedência. - **Tipagem de Contratos**: Compartilha esquemas e interfaces de tipos estritos com [lang-typescript](../../languages/lang-typescript/SKILL.md). - **Consumo de Serviços**: Integração resiliente com APIs REST ([framework-rest-api](../../framework/framework-rest-api/SKILL.md)) ou gRPC-Web ([framework-grpc](../../framework/framework-grpc/SKILL.md)). - **Reuso de Código**: Aplica as regras de modularidade e não duplicação de [clean-code-reusability](../../engineering-practices/clean-code-reusability/SKILL.md). - **Segurança de Código**: Prevenção de XSS com sanitização rigorosa via [appsec-owasp-asvs](../../security/appsec/appsec-owasp-asvs/SKILL.md).
Voir sur GitHub