// SSE — Design primitives (shared UI building blocks) // Hexagonal icon container — echoes the logo mark function Hex({ size = 48, stroke = 'var(--navy)', fill = 'transparent', strokeWidth = 1.5, children, style }) { const points = []; const r = size / 2; for (let i = 0; i < 6; i++) { const a = (Math.PI / 3) * i - Math.PI / 2; points.push(`${r + r * Math.cos(a) * 0.95},${r + r * Math.sin(a) * 0.95}`); } return (
{children}
); } // Section-scoped wrapper with consistent horizontal rhythm function Section({ id, children, background = 'transparent', color = 'inherit', style }) { return (
{children}
); } // Editorial kicker — small monospace label above headlines function Kicker({ children, color = 'var(--amber)', style }) { return (
{children}
); } // Big display headline function Display({ children, size = 88, color = 'var(--navy)', style }) { return (

{children}

); } function Button({ children, variant = 'primary', href, onClick, style, ...rest }) { const base = { fontFamily: 'var(--font-body)', fontSize: 15, fontWeight: 500, padding: '14px 24px', borderRadius: 999, display: 'inline-flex', alignItems: 'center', gap: 10, transition: 'all 0.2s ease', letterSpacing: '-0.01em', cursor: 'pointer', border: '1px solid transparent', ...style, }; const variants = { primary: { background: 'var(--navy)', color: 'var(--paper)' }, amber: { background: 'var(--amber)', color: 'var(--ink)' }, outline: { background: 'transparent', color: 'var(--navy)', border: '1px solid var(--line-strong)' }, outlineLight: { background: 'transparent', color: 'var(--paper)', border: '1px solid rgba(245,243,238,0.3)' }, ghost: { background: 'transparent', color: 'var(--navy)' }, }; const merged = { ...base, ...variants[variant] }; const Comp = href ? 'a' : 'button'; return ( { e.currentTarget.style.transform = 'translateY(-1px)'; }} onMouseLeave={e => { e.currentTarget.style.transform = 'translateY(0)'; }}> {children} ); } // Arrow glyph function Arrow({ size = 14 }) { return ( ); } // Grid overlay — subtle blueprint lines for backgrounds function GridOverlay({ color = 'rgba(10,26,62,0.05)', size = 80, style }) { return (
); } // Product image placeholder — labeled clearly function ProductPlaceholder({ label, aspect = '4/3', dark = false }) { const bg = dark ? 'linear-gradient(135deg, #172958 0%, #0A1A3E 100%)' : 'linear-gradient(135deg, #EDE9DE 0%, #DDD8CB 100%)'; const fg = dark ? 'rgba(245,243,238,0.5)' : 'rgba(10,26,62,0.4)'; const line = dark ? 'rgba(245,243,238,0.08)' : 'rgba(10,26,62,0.08)'; return (
{/* blueprint crosshair */}
{/* center hex */}
Product photo
{/* corner marks */} {[[0,0],[0,1],[1,0],[1,1]].map(([x,y],i) => (
))}
); } Object.assign(window, { Hex, Section, Kicker, Display, Button, Arrow, GridOverlay, ProductPlaceholder });