package main
// noirHeadingComponent renders a heading using the display-serif font slot.
templ noirHeadingComponent(level int, text, textClass string) {
switch level {
case 1:
{ text }
case 2:
{ text }
case 3:
{ text }
case 4:
{ text }
case 5:
{ text }
case 6:
{ text }
default:
{ text }
}
}
// noirTextComponent renders text with the humanist sans family and generous leading.
// The body family resolves through --font-body; the surrounding .noir-page already
// supplies the fallback stack from style.css, so we only need spacing here.
templ noirTextComponent(text, class string) {
@templ.Raw(text)
}
// noirImageComponent renders an image full-bleed within its container with a mono caption.
templ noirImageComponent(src, alt, caption string) {
if src != "" {
}
if caption != "" {
{ caption }
}
}
// noirButtonComponent renders the hairline outline button.
templ noirButtonComponent(text, href string) {
if href != "" {
{ text }
} else {
}
}
// noirCardComponent renders the transparent hairline-bordered card.
templ noirCardComponent(title, body string) {