# Per-agent page > Part of [Web UI](README.md). See also: > [Shape (shared)](shape.md) · [Dashboard layout](dashboard.md) Three fixed-position layers frame a full-viewport terminal: a header, scrollable main content, and a footer composer — plus a slide-in side panel for flyouts and long content. ## Header Preact component tree (`Header.tsx` + `StatusChips.tsx` + `MetaNav.tsx` + `HeaderPill.tsx`, wired together in `Root.tsx`) — see `frontend/packages/agent/src/components/`. This section describes the rendered component tree: every element is Preact component output. **Fixed-overlay header** (`
`): frosted glass — `backdrop-filter: blur` lets scrolled terminal rows show through. Measures its own rendered height via `ResizeObserver` (`Header.tsx`) and writes it to a CSS custom property the content below reads for its offset, so content never overlaps the header regardless of how many rows of badges/pills wrap onto an extra line at a given viewport width. Two columns: - **Agent icon** (``): fixed-size square identity anchor — `width: 5em; height: 5em` with explicit pixel sizing so the ``'s intrinsic (large) dimensions don't push the parent flex container open via `align-items: stretch`-driven height feedback. Falls back to the dimmed hyperhive mark (`/favicon.svg`) on load error (`/icon` 404s when the agent has no `services.hyperhive.agent.icon` override — there is no server-side default image). - **Main column** (`.agent-header-main`, `Header.tsx`): two rows — title (`◆