/** * site.ts * --------------------------------------------------------------------------- * Central source of truth for site-wide config: identity, nav structure (the * two-group nav from the spec), social links, and the tagline. * * Components import from here rather than hard-coding values, so a single edit * propagates everywhere. The spec's emoji icons are mapped to mdi icon names; * actual icon rendering happens in components via . */ export interface NavItem { /** Display label. */ label: string; /** Route path. */ href: string; /** mdi icon name (without the `mdi:` prefix). */ icon: string; } export interface NavLinkGroup { /** The two visual groups in the top nav ("who I am" vs "what I do"). */ items: NavItem[]; } /** Top-level identity shown in the nav/logo area. */ export const siteIdentity = { name: 'Greg Kilmer', /** Spec tagline; appears beside the logo. */ tagline: 'Developer. Maker. Storyteller.', /** Spec domain. */ domain: 'gregkilmer.com', } as const; /** * Primary navigation. Two groups separated by a subtle divider, per the spec. * Left group = "who I am" (Home, About) * Right group = "what I do" (Professional, Interests, Contact) */ export const navGroups: NavLinkGroup[] = [ { items: [ { label: 'Home', href: '/', icon: 'home' }, { label: 'About', href: '/about', icon: 'account' }, ], }, { items: [ { label: 'Professional', href: '/professional', icon: 'briefcase' }, { label: 'Interests', href: '/interests', icon: 'dice-multiple' }, { label: 'Contact', href: '/contact', icon: 'email' }, ], }, ]; /** Flat list of all nav items (handy for active-link checks / mobile menus). */ export const allNavItems: NavItem[] = navGroups.flatMap((g) => g.items); /** * Social links for the footer and contact page. * TODO placeholders flagged with [Greg to fill]; URLs left generic until provided. */ export const socials = { github: { label: 'GitHub', handle: 'Patiun', href: 'https://github.com/patiun', icon: 'github', }, linkedin: { label: 'LinkedIn', handle: 'Gregory Kilmer', href: 'https://www.linkedin.com/in/gregory-kilmer-36646bb5/', icon: 'linkedin', }, /*discord: { label: 'Discord', handle: '[Greg to fill]', href: '#', icon: 'discord', },*/ } as const; /** Spec footer microcopy. */ export const footerMicrocopy = 'Built with intention. Powered by caffeine.';