package components templ Layout(props LayoutProps) { { props.Title } @Head(props.Head) @Header(props.Header)
{ children... }
} type LayoutProps struct { Title string Description string Head HeadProps Header HeaderProps Footer FooterProps } templ Head(props HeadProps) { for _, link := range props.Links { } for _, script := range props.Scripts { } } type HeadProps struct { Links []Link Scripts []Script } type Link struct { Href string Rel string As string } type Script struct { Src string Defer bool } templ Header(props HeaderProps) { @Topbar() { } } templ Topbar() { } templ TopbarLeft() { } templ TopbarBrand(brandName string) { { brandName } } templ TopbarCreateButton(label string, href string) { if href != "" { { label } } else { } } templ TopbarCenter() { } templ TopbarSearch(placeholder string) { } templ TopbarRight() { } templ TopbarIconButton(ariaLabel string) { } type HeaderProps struct { BrandName string CreateLabel string CreateHref string SearchPlaceholder string Routes []NavRoute } type NavRoute struct { Name string Path string } templ Footer(props FooterProps) { } type FooterProps struct { }