// Dietello Logo — two concepts × two layouts // // Concept A · Leaf — organic, curved leaf with center vein + AI sparkle // Concept B · D-spark — geometric monogram "d" with a lime sparkle inside // the bowl (also reads as a caring face/bowl) // // Layouts: horizontal (mark + wordmark inline) and square (mark above wordmark) // ────────────────────────────────────────────────────────── // CONCEPT A — Leaf mark // ────────────────────────────────────────────────────────── function LogoMark({ size = 64, fill = '#181612', accent = '#D4FF4F', sparkle = '#FF6A4D', flat = false }) { return ( {!flat && ( )} {!flat && ( )} ); } // ────────────────────────────────────────────────────────── // CONCEPT B — D-spark monogram // Geometric lowercase "d": vertical stem on the right + a circle bowl // on the left, with a lime sparkle inside the bowl. // Reads as: letter d / a face profile / a plate seen from side. // ────────────────────────────────────────────────────────── function LogoMarkAlt({ size = 64, fill = '#181612', accent = '#D4FF4F', sparkle = '#FF6A4D', flat = false }) { // viewBox 64×64 // Bowl: circle at (24, 36) r=18 // Stem: rect on right side, from y=8 to y=54, x=42..52 return ( {/* Composite "d" shape using even-odd fill rule so the hollow inside shows */} {!flat && ( <> {/* Sparkle inside the bowl */} {/* Small coral dot above the stem — the "tittle"/spark, matches wordmark */} )} ); } // ────────────────────────────────────────────────────────── // Wordmark // ────────────────────────────────────────────────────────── function Wordmark({ size = 24, color = '#181612', dotColor = '#D4FF4F' }) { return (
d i etello
); } // ────────────────────────────────────────────────────────── // Variant palettes (shared between concepts) // ────────────────────────────────────────────────────────── const PALETTES = { color: { fill: '#181612', accent: '#D4FF4F', sparkle: '#FF6A4D', text: '#181612', dot: '#D4FF4F' }, light: { fill: '#181612', accent: '#D4FF4F', sparkle: '#FF6A4D', text: '#181612', dot: '#D4FF4F' }, dark: { fill: '#D4FF4F', accent: '#181612', sparkle: '#FF6A4D', text: '#F6F2E9', dot: '#D4FF4F' }, mono: { fill: 'currentColor', accent: 'transparent', sparkle: 'transparent', text: 'currentColor', dot: 'currentColor', flat: true }, monoInverse: { fill: '#fff', accent: 'transparent', sparkle: 'transparent', text: '#fff', dot: '#fff', flat: true }, }; // MarkOnly — choose A or B function Mark({ concept = 'A', variant = 'color', size = 64 }) { const p = PALETTES[variant]; const C = concept === 'B' ? LogoMarkAlt : LogoMark; return ; } // ────────────────────────────────────────────────────────── // Layout: Horizontal (mark + wordmark inline) // ────────────────────────────────────────────────────────── function Logo({ concept = 'A', variant = 'color', size = 48, wordmark = true }) { const p = PALETTES[variant]; return (
{wordmark && }
); } // ────────────────────────────────────────────────────────── // Layout: Square / Vertical (mark above wordmark, centered) // ────────────────────────────────────────────────────────── function LogoSquare({ concept = 'A', variant = 'color', size = 100, wordmark = true, tagline }) { const p = PALETTES[variant]; return (
{wordmark && } {tagline && (
{tagline}
)}
); } Object.assign(window, { Logo, LogoSquare, LogoMark, LogoMarkAlt, Mark, Wordmark, PALETTES, });