Something went wrong. Try again.
Rules-based browser launcher for TUI + GNOME. switchyard.aly.codes
Something went wrong. Try again.
1.4 kB · 55 lines
Astro
at master
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556---import { Icon } from "astro-icon/components";import Logo from "./Logo.astro";
interface BreadcrumbItem { href: string; label: string; icon?: string; switchyardIcon?: boolean; current?: boolean;}
interface Props { items: BreadcrumbItem[];}
const { items } = Astro.props;---
<header class="sticky top-0 z-50 bg-bg/95 backdrop-blur-sm border-b border-border"> <nav class="max-w-[1200px] mx-auto px-4 md:px-8 py-2.5 flex flex-wrap items-center gap-x-2 gap-y-1 text-sm" aria-label="Breadcrumb" > { items.map((item, index) => ( <> {index > 0 && <span class="text-text-muted/40">›</span>} <a href={item.href} aria-current={item.current ? "page" : undefined} class:list={[ "flex items-center gap-1.5 transition-colors whitespace-nowrap", item.current ? "text-text hover:text-primary" : "text-text-muted hover:text-text", ]} > {item.icon && ( <Icon name={item.icon} class="w-4 h-4 shrink-0 text-rose-700" aria-hidden="true" /> )} {item.switchyardIcon && <Logo class="w-4 h-4 shrink-0" />} {item.label} </a> </> )) } </nav></header>