Primitive
Semantic
Auto-emitted from DSKintsugiCatalog.semantic. Tier atom.
Live Preview
Native · macOS
DSL usage
// Wrap any child as a named HTML5 landmark role.
// The role prop maps: .header → <header role="banner">,
// .nav → <nav role="navigation">, .main → <main role="main">,
// .aside → <aside role="complementary">,
// .footer → <footer role="contentinfo">,
// .article → <article>, .section → <section>.
// ariaLabel feeds aria-label for AT disambiguation when
// multiple landmarks of the same role exist on the page.
katagami.semantic(role: .main, ariaLabel: "Dashboard content") {
VStack(spacing: 24) {
Heading("Portfolio Overview", level: .h1)
ModuleGrid()
}
}
katagami.semantic(role: .nav, ariaLabel: "Primary navigation") {
HStack(spacing: 0) {
navLinks
}
}
Attributes
| Name | Type | Default | Description |
|---|---|---|---|
role |
SemanticRole | .section |
.header | .nav | .main | .aside | .footer | .article | .section — maps to the corresponding HTML5 landmark element and implicit ARIA role |
ariaLabel |
String? | nil |
Injected as aria-label; required when multiple landmarks of the same role appear on one page (WCAG 2.4.1) |
density |
Density | regular |
compact | regular | expanded |
locale |
Locale | en |
BCP-47 locale tag for locale-aware rendering |
Used in
sigma-analytics c-tech PortfolioPro FundsScreener