// ───────────────────────────────────────────────────────────── // Kelappa — final canonical logo // Husk-brown coconut disc + 3 cream dots + "kelappa" in Hanken Grotesk // with coral smile-curve under "app". // ───────────────────────────────────────────────────────────── const KELAPPA_BROWN = 'oklch(0.460 0.060 55)'; const KELAPPA_CREAM = 'oklch(0.965 0.014 82)'; const KELAPPA_INK = 'oklch(0.225 0.020 60)'; // The smile — clears descenders, anchored to the "app" span. function KelappaSmile({ color, height = 40 }) { return ( ); } // The full lockup. `size` = wordmark fontSize in px. // variant: 'horizontal' | 'mark-only' | 'word-only' | 'stacked' function KelappaLogo({ size = 96, fg = KELAPPA_INK, mark = KELAPPA_BROWN, dots = KELAPPA_CREAM, accent, // coral, required variant = 'horizontal', gap, capital = true, // K vs k }) { const markSize = size * 1.18; const realGap = gap ?? size * 0.28; const smileH = Math.max(28, size * 0.45); const word = ( {capital ? 'Kel' : 'kel'} app {accent && } a ); const markEl = ( ); if (variant === 'mark-only') return markEl; if (variant === 'word-only') return word; return ( {markEl} {word} ); } Object.assign(window, { KELAPPA_BROWN, KELAPPA_CREAM, KELAPPA_INK, KelappaLogo, KelappaSmile, });