/** * Purpose-built SVG icons for topic categories and navigation. * Monoline stroke style — no fills, currentColor inheritance, * designed to feel like audio tool UI, not clip art. */ const S = { width: "1.2em", height: "1.2em", verticalAlign: "-0.15em" } as const; const P = { fill: "none", stroke: "currentColor", strokeWidth: 1.5, strokeLinecap: "round" as const, strokeLinejoin: "round" as const }; /** Routing nodes — signal flow / DAW session */ export function IconWorkflow() { return ( ); } /** Interval / two notes on a staff fragment */ export function IconMusicTheory() { return ( ); } /** Speaker cone with two radiation arcs */ export function IconSoundDesign() { return ( ); } /** Oscillator waveshapes — sine morphing to saw */ export function IconSynthesis() { return ( ); } /** Timeline blocks — arrangement regions at staggered positions */ export function IconArrangement() { return ( ); } /** Dual faders at different levels */ export function IconMixing() { return ( ); } /** Peak meter hitting ceiling — limiter bar at top */ export function IconMastering() { return ( ); } /** Grid of categorized items */ export function IconTopics() { return ( ); } /** Person silhouette — minimal */ export function IconCreators() { return ( ); } /** Map from category name → component */ export const CATEGORY_ICON: Record JSX.Element> = { "Workflow": IconWorkflow, "Music Theory": IconMusicTheory, "Sound Design": IconSoundDesign, "Synthesis": IconSynthesis, "Arrangement": IconArrangement, "Mixing": IconMixing, "Mastering": IconMastering, };