From 3e7b2beca1136a42700a7e1aebfe4c0fb2861a00 Mon Sep 17 00:00:00 2001 From: soryu Date: Sat, 15 Nov 2025 18:00:09 +0000 Subject: Initial commit --- frontend/src/components/OrigamiDragonLogo.tsx | 180 ++++++++++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 frontend/src/components/OrigamiDragonLogo.tsx (limited to 'frontend/src/components/OrigamiDragonLogo.tsx') diff --git a/frontend/src/components/OrigamiDragonLogo.tsx b/frontend/src/components/OrigamiDragonLogo.tsx new file mode 100644 index 0000000..6a7a5fb --- /dev/null +++ b/frontend/src/components/OrigamiDragonLogo.tsx @@ -0,0 +1,180 @@ +import React from 'react' + +type Variant = 'mark' | 'ribbonS' | 'badge' | 'crane' | 'craneOutline' + +type Props = { + variant?: Variant + height?: number + color?: string + className?: string + title?: string + strokeWidth?: number +} + +/** + * Origami-style dragon logo for small header placement. + * - Uses currentColor by default so it adapts to surrounding text color. + * - Keep height around 20–24px in compact headers. + */ +export const OrigamiDragonLogo: React.FC = ({ + variant = 'crane', + height = 20, + color = 'currentColor', + className = '', + title = 'Soryu logo', + strokeWidth = 12, +}) => { + if (variant === 'craneOutline') { + // Outline rendition inspired by provided licensed crane icon + return ( + + {title} + + {/* Left tail → left wing base → body pivot */} + + {/* Left wing upstroke */} + + {/* Left wing inner crease to pivot */} + + {/* Body lower crease */} + + {/* Center mast (rear triangle) */} + + {/* Right wing outer edge */} + + {/* Right wing inner crease */} + + {/* Neck and head */} + + {/* Neck inner crease */} + + + + ) + } + if (variant === 'crane') { + // Origami crane silhouette with a dragon head + return ( + + {title} + {/* Left/up wing */} + + {/* Right/down wing */} + + {/* Body (diamond) */} + + {/* Tail */} + + {/* Neck */} + + {/* Dragon head (top plane) */} + + {/* Dragon jaw plane */} + + {/* Small horn */} + + + ) + } + if (variant === 'mark') { + // Angular origami dragon head/neck, faceted into simple planes + return ( + + {title} + {/* Upper head */} + + {/* Snout / jaw plane */} + + {/* Neck planes */} + + + {/* Small ear/horn suggestion */} + + + ) + } + + if (variant === 'ribbonS') { + // Folded ribbon forming an angular "S" silhouette + return ( + + {title} + {/* Top fold */} + + {/* Middle fold (turning back) */} + + {/* Lower fold */} + + + ) + } + + // badge + return ( + + {title} + {/* Hex container */} + + {/* Mini mark inside */} + + + + + + + ) +} + +export default OrigamiDragonLogo -- cgit v1.2.3