Zetta v0.10

Components · App chrome

Header

The product top bar — brand or page title on the left, actions and the theme switcher on the right. A 56px sticky bar on the header surface with a hairline underline. This very page sits below the real one; the preview below is a static instance.

Preview

The header bar across the three themes.

Light
Zetta
Dark
Zetta
Accessibility
Zetta

Spec

Values and token references straight from the Zetta spec.

header
backgroundColor
{colors.surface-header}
borderBottomColor
{colors.hairline}
borderBottomWidth
1px
height
56px
paddingX
{spacing.page}
display
flex
alignItems
center
justifyContent
space-between
position
sticky
top
0
zIndex
100
header-title
textColor
{colors.ink}
fontFamily
Inter
fontSize
18px
fontWeight
600
lineHeight
1.35
letterSpacing
-0.01em
header-actions
display
flex
alignItems
center
gap
{spacing.sm}
header-theme-button
iconSize
{icons.sizeMap.sm}
iconColor
{colors.muted}
header-theme-button-hover
iconColor
{colors.ink}
backgroundColor
{colors.surface-muted}
header-theme-button-active
backgroundColor
{colors.surface-pressed}
header-theme-button-focus
outline
2px solid {colors.border-focus}
outlineOffset
2px

Build with the skill

No package to install — hand this to your AI to generate the app header in your stack.

Prompt for your AI
Implement the Zetta "Header" component in this project's stack using the zetta-design-md skill.

- Apply the `header` spec from the skill (variants: header, header-title, theme-button).
- Use this project's own component conventions and framework idioms.
- Reference the Zetta design tokens (CSS variables) for every color, radius, and shadow — never hardcode values.
- Implement all states (hover, focus, active, disabled, and invalid where applicable) with a visible 2px focus ring.
- Honor the Zetta guardrails (brand never shifts hue, shadows for overlays only, etc.) and verify in Light, Dark, and Accessibility.

Anatomy & rules

  • 56px tall, header surface, 1px hairline bottom border, page padding; sticky to the top at z-index: 100. Title is Inter 18/600 with a tight -0.01em tracking.
  • Action buttons are 32px ghost icon buttons (muted, ink on hover). Keep the right cluster short — search, theme, and account is plenty.

Accessibility

  • Wrap it in a <header> with the primary <nav>; give every icon-only action an aria-label. The theme switcher must be reachable and operable by keyboard.