// Wireframe kit — DivineAI // Sistema de design: wireframe estruturado, off-white quente, dourado sutil, tipografia serif/sans. // NÃO desenha ícones religiosos — apenas formas abstratas (círculos, linhas, pontos de luz). // Paleta inspirada na refência visual: azul-marinho profundo + ouro const TOKENS = { bg: '#F4F6FB', // azul-claro de fundo (ref) bgAlt: '#E8ECF5', // tom levemente mais escuro ink: '#0E1838', // azul-marinho profundo (texto principal) ink2: '#4A5478', // azul médio (secundário) ink3: '#8892AC', // azul claro (terciário / placeholder) line: '#C9D2E5', // linha fina (azul acinzentado) line2: '#E2E7F1', // linha mais clara navy: '#0E1838', // navy para hero / dark cards navy2: '#1B2754', // navy mais claro gold: '#C9A24A', // ouro principal (ref) goldSoft: '#F2E5BF', // ouro claro para fills goldDeep: '#9E7A2C', // ouro escuro para texto sobre dourado serif: '"Cormorant Garamond", "Cormorant", Georgia, serif', sans: '"Inter", -apple-system, system-ui, sans-serif', mono: '"JetBrains Mono", ui-monospace, monospace', }; window.TOKENS = TOKENS; // Linha hachurada / placeholder function Placeholder({ height = 80, label = 'imagem', radius = 8, style = {} }) { return (
{label}
); } window.Placeholder = Placeholder; // Linha de texto fake (wireframe bar) function Bar({ width = '100%', height = 8, opacity = 1, style = {} }) { return (
); } window.Bar = Bar; // Card básico do wireframe function WCard({ children, padding = 16, style = {}, onClick, ...rest }) { return (
{children}
); } window.WCard = WCard; // Botão principal (dourado outline) function WButton({ children, primary, full, onClick, style = {} }) { return ( ); } window.WButton = WButton; // Símbolo abstrato (sol/luz) — substitui ícones religiosos function LightMark({ size = 32, color = TOKENS.gold }) { return ( {[0, 45, 90, 135, 180, 225, 270, 315].map((a, i) => { const rad = (a * Math.PI) / 180; const x1 = 16 + Math.cos(rad) * 9; const y1 = 16 + Math.sin(rad) * 9; const x2 = 16 + Math.cos(rad) * 13; const y2 = 16 + Math.sin(rad) * 13; return ; })} ); } window.LightMark = LightMark; // Ponto / partícula function Dot({ size = 4, color = TOKENS.gold, style = {} }) { return
; } window.Dot = Dot; // Header de tela (substitui o NavBar — mais limpo para wireframe) function ScreenHeader({ title, subtitle, onBack, action, dark }) { const fg = dark ? '#fff' : TOKENS.ink; const fg2 = dark ? 'rgba(255,255,255,0.6)' : TOKENS.ink2; return (
{onBack ? ( ) :
} {action ||
}
{subtitle &&
{subtitle}
} {title &&
{title}
}
); } window.ScreenHeader = ScreenHeader; // Tab bar inferior function TabBar({ active = 'home', onNav }) { const tabs = [ { id: 'home', label: 'Início' }, { id: 'pray', label: 'Orar' }, { id: 'create', label: 'Criar' }, { id: 'promise', label: 'Promessas' }, { id: 'me', label: 'Eu' }, ]; return (
{tabs.map(t => ( ))}
); } window.TabBar = TabBar; // Annotation marginal — para wireframe function Annotation({ children, style = {} }) { return (
{children}
); } window.Annotation = Annotation; // Chip function Chip({ children, active, onClick, style = {} }) { return ( ); } window.Chip = Chip; // Wrapper: app screen background com tab bar opcional function Screen({ children, dark, noTabs, scroll = true }) { return (
{children}
); } window.Screen = Screen;