Initial Commit

This commit is contained in:
Greg Kilmer
2026-07-04 07:42:24 -04:00
commit 71bffad507
77 changed files with 14437 additions and 0 deletions
+85
View File
@@ -0,0 +1,85 @@
/**
* 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 <Icon />.
*/
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: 'patiun.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: '[Greg to fill]',
href: 'https://github.com/',
icon: 'github',
},
linkedin: {
label: 'LinkedIn',
handle: '[Greg to fill]',
href: 'https://www.linkedin.com/',
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.';