// Shared V5-style background + minimal helpers for V6-V10 // The "V5 background" — dark base + dot grid + radial purple glow const OrbitalBg = ({ glowPosition = '50% 0%', glowSize = 800, gridSize = 64, gridOpacity = 0.03, children, style = {} }) => (
{/* Dot grid */}
{/* Glow */}
{children}
); // Minimal nav — just logo + small links + button. // Pass links=[] to hide links, cta={null} to hide CTA button. const MinimalNav = ({ pill = false, logo, links = ['Serviços', 'Trabalhos', 'Contato'], cta = 'Iniciar projeto', }) => { const hasLinks = Array.isArray(links) && links.length > 0; return ( ); }; // Minimal footer const MinimalFooter = ({ logo }) => (
{logo || } © 2026 WithDev
); // The core orbital visual — reused, scalable const OrbitalCore = ({ size = 620 }) => { const cx = size / 2; const rings = [size * 0.42, size * 0.58, size * 0.74, size * 0.9]; const coreSize = size * 0.26; const dots = [ { ring: 0, a: 30, color: '#7c5cff', size: 12 }, { ring: 0, a: 200, color: '#c4b5ff', size: 7 }, { ring: 1, a: 100, color: '#fff', size: 9 }, { ring: 1, a: 280, color: '#7c5cff', size: 11 }, { ring: 2, a: 60, color: '#fff', size: 7 }, { ring: 2, a: 170, color: '#7c5cff', size: 6 }, { ring: 2, a: 320, color: '#c4b5ff', size: 9 }, { ring: 3, a: 20, color: '#7c5cff', size: 7 }, { ring: 3, a: 150, color: '#fff', size: 10 }, { ring: 3, a: 240, color: '#c4b5ff', size: 6 }, ]; return (
{/* glow */}
{/* rings */} {rings.map((d, i) => (
))} {/* core */}
{/* dots */} {dots.map((p, i) => { const d = rings[p.ring]; const rad = (p.a * Math.PI) / 180; const x = Math.cos(rad) * (d / 2) + cx - p.size / 2; const y = Math.sin(rad) * (d / 2) + cx - p.size / 2; return (
); })}
); }; const SERVICES_SHORT = [ 'Sites', 'E-commerce', 'Apps', 'Sistemas', 'Integrações', 'IA & Automações' ]; // Checkered grid background — the "xadrez" pattern. Subtle purple glow optional. const GridBg = ({ gridSize = 64, lineOpacity = 0.06, grid = true, glow = true, glowPosition = '50% 0%', glowSize = 900, children, style = {}, }) => (
{/* Grid lines (xadrez) */} {grid && (
)} {/* Optional purple glow */} {glow && (
)}
{children}
); // Terminal panel chrome — for client-friendly variations. // `title` shows in the title bar, children is the content. const TerminalChrome = ({ title = '~/withdev', children, style = {} }) => (
{title}
{children}
); Object.assign(window, { OrbitalBg, GridBg, MinimalNav, MinimalFooter, OrbitalCore, SERVICES_SHORT, TerminalChrome });