/* ============================================================ iGod Design System — App Shell ============================================================ */ const { useState, useEffect, useRef, useMemo } = React; const NAV = [ { title: "Visão geral", items: [ { id: "intro", label: "Introdução" }, ] }, { title: "Identidade Visual", items: [ { id: "cores", label: "Cores" }, { id: "tipografia", label: "Tipografia" }, { id: "iconografia", label: "Iconografia" }, { id: "espacamento", label: "Espaçamento e grid" }, { id: "raios", label: "Bordas" }, { id: "sombras", label: "Sombras e elevação" }, ] }, { title: "Componentes — Átomos", items: [ { id: "botoes", label: "Botões" }, { id: "inputs", label: "Inputs e formulários" }, { id: "tags", label: "Tags e Badges" }, { id: "avatares", label: "Avatares" }, { id: "dividers", label: "Dividers" }, ] }, { title: "Componentes — Moléculas", items: [ { id: "cards-produto", label: "Cards de Produto" }, { id: "cards-empresa", label: "Cards de Empresa" }, { id: "cards-categoria", label: "Cards de Categoria" }, { id: "search-bar", label: "Search Bar" }, { id: "listas", label: "List Items" }, { id: "bottomsheet", label: "Bottom Sheet" }, { id: "toasts", label: "Toasts" }, ] }, { title: "Mockups", items: [ { id: "mockups", label: "Telas mobile" }, { id: "mockups-desktop", label: "Telas desktop" }, ] }, { title: "Sistema", items: [ { id: "motion", label: "Padrões de Motion" }, { id: "tokens", label: "Design Tokens" }, ] }, ]; function Sidebar({ active, onChange }) { return ( ); } /* ---------- INTRODUCTION ---------- */ function IntroSection() { return ( <>
Design System · iGod

Tecnologia com alma, marketplace com propósito.

A iGod conecta consumidores, empresários, produtos, serviços e causas em um ecossistema cristão baseado em fé, confiança, propósito e relacionamento. Este Design System é o guia visual e funcional do MVP 1 — pensado mobile-first, com calor humano sem clichê religioso, e a sofisticação de produto de uma startup tech séria.

Pilares de design

{[ { n: "01", t: "Calor sem religiosidade visual", d: "Sem cruzes, bíblias ou símbolos explícitos. A fé vive no nome, na copy e no propósito — a estética é de startup." }, { n: "02", t: "Mobile-first, sempre", d: "Cada componente nasce em 375px. Densidade de informação calibrada para o polegar e para a vida real do consumidor." }, { n: "03", t: "Profundidade discreta", d: "Flat moderno com sombras quentes e suaves. Gradientes pesados ficam de fora. Camadas se sugerem por hairlines e papel sobre papel." }, { n: "04", t: "Brasa como ação", d: "O laranja #E8712A é reservado para ação, energia e momentos-chave — nunca como fundo dominante. A ameixa profunda carrega a marca." }, ].map(p => (
{p.n}

{p.t}

{p.d}

))}

Inspirações de espírito

Não os copiamos visualmente; herdamos a postura.

{[ { brand: "Nubank", what: "Audácia + clareza · descomplicar com propósito." }, { brand: "iFood", what: "Praticidade mobile · marketplace que entende o polegar." }, { brand: "Linear", what: "Sofisticação de produto · cada pixel intencional." }, { brand: "Airbnb", what: "Comunidade + confiança · pertencimento como UX." }, ].map(b => (
{b.brand}
{b.what}
))}
); } /* ---------- MAIN APP ---------- */ function App() { const [section, setSection] = useState("intro"); const mainRef = useRef(null); useEffect(() => { if (mainRef.current) { mainRef.current.scrollTo({ top: 0, behavior: "smooth" }); } window.scrollTo({ top: 0, behavior: "smooth" }); }, [section]); // Map of section id to component const renderSection = () => { switch (section) { case "intro": return ; // Foundations case "cores": return ; case "tipografia": return ; case "iconografia": return ; case "espacamento": return ; case "raios": return ; case "sombras": return ; // Atoms case "botoes": return ; case "inputs": return ; case "tags": return ; case "avatares": return ; case "dividers": return ; // Molecules case "cards-produto": return ; case "cards-empresa": return ; case "cards-categoria": return ; case "search-bar": return ; case "listas": return ; case "bottomsheet": return ; case "toasts": return ; // Mockups case "mockups": return ; case "mockups-desktop": return ; // System case "motion": return ; case "tokens": return ; default: return ; } }; return (
{renderSection()}
{window.IGodTweaks ? React.createElement(window.IGodTweaks) : null}
); } ReactDOM.createRoot(document.getElementById("root")).render();