// AveraTech — Hero with animated terminal/code demo const { useEffect, useRef, useState } = React; const HERO_SEQUENCES = [ { label: 'e-commerce sob medida', lines: [ { t: '$', c: 'mono-prompt', text: 'avera build --target ecommerce' }, { t: '✓', c: 'mono-ok', text: 'Catálogo, checkout e gestão de pedidos' }, { t: '✓', c: 'mono-ok', text: 'Integração com ERP e meios de pagamento' }, { t: '✓', c: 'mono-ok', text: 'Painel para o time da marca' }, { t: '→', c: 'mono-info', text: 'Loja no ar pronta para escalar' }, ], metric: { value: 'Loja sob medida', label: 'do design à operação' }, }, { label: 'site institucional', lines: [ { t: '$', c: 'mono-prompt', text: 'avera build --target website' }, { t: '✓', c: 'mono-ok', text: 'Identidade visual aplicada ao produto digital' }, { t: '✓', c: 'mono-ok', text: 'Performance e SEO técnico' }, { t: '✓', c: 'mono-ok', text: 'CMS para o time atualizar sem dor' }, { t: '→', c: 'mono-info', text: 'Pronto para receber tráfego' }, ], metric: { value: 'Site rápido', label: 'que converte de verdade' }, }, { label: 'consultoria & sistema interno', lines: [ { t: '$', c: 'mono-prompt', text: 'avera consult --discovery' }, { t: '✓', c: 'mono-ok', text: 'Diagnóstico do processo atual' }, { t: '✓', c: 'mono-ok', text: 'Desenho do sistema sob medida' }, { t: '✓', c: 'mono-ok', text: 'Roadmap por fase, sem surpresa' }, { t: '→', c: 'mono-info', text: 'Time alinhado, plano em execução' }, ], metric: { value: 'Plano claro', label: 'do problema à entrega' }, }, ]; function Hero() { const [seqIdx, setSeqIdx] = useState(0); const [typed, setTyped] = useState([]); // array of typed lines (full text so far) const [done, setDone] = useState(false); const cancelled = useRef(false); useEffect(() => { cancelled.current = false; setTyped([]); setDone(false); const seq = HERO_SEQUENCES[seqIdx]; let lineIdx = 0; let charIdx = 0; let acc = seq.lines.map(() => ''); const tick = () => { if (cancelled.current) return; if (lineIdx >= seq.lines.length) { setDone(true); const hold = setTimeout(() => { if (!cancelled.current) setSeqIdx(i => (i + 1) % HERO_SEQUENCES.length); }, 2800); return () => clearTimeout(hold); } const cur = seq.lines[lineIdx]; if (charIdx <= cur.text.length) { acc[lineIdx] = cur.text.slice(0, charIdx); setTyped([...acc]); charIdx++; const delay = lineIdx === 0 ? 32 : 18; setTimeout(tick, delay); } else { lineIdx++; charIdx = 0; setTimeout(tick, 280); } }; const start = setTimeout(tick, 250); return () => { cancelled.current = true; clearTimeout(start); }; }, [seqIdx]); const seq = HERO_SEQUENCES[seqIdx]; return (
Software sob medida · Sites · Consultoria

Tecnologia sob medida para o seu negócio.

A AveraTech projeta e constrói softwares, sites e sistemas feitos para o jeito que a sua empresa trabalha. Sem template engessado — tecnologia que serve a operação, não o contrário.

avera-cli — {seq.label}
{HERO_SEQUENCES.map((_, i) => (
{seq.lines.map((line, i) => { const text = typed[i] ?? ''; if (!text) return null; return (
{line.t} {text} {i === typed.length - 1 && !done && }
); })} {done && (
{seq.metric.value}
{seq.metric.label}
)}
{[...Array(2)].map((_, k) => (
SOFTWARE SOB MEDIDA SISTEMAS WEB INTEGRAÇÕES CONSULTORIA DE PRODUTO DEVOPS & CLOUD ARQUITETURA
))}
); } window.Hero = Hero;