<header>Control bar
Brand identity, symbol search, timeframe controls, and market-session status.
Week 03 · Semantic Layout Frame
This milestone preserves the Week 02 token foundation and uses it to define the dashboard’s physical frame: landmarks, navigation order, workspace zones, side rails, context panels, and responsive boundaries.
The outer structure is readable to browsers, assistive technology, and future developers.
<header>Brand identity, symbol search, timeframe controls, and market-session status.
<nav>Trading areas such as watchlist, screener, portfolio, alerts, and research.
<main>The chart, story grid, responsive market cards, and comparison widgets live here.
<aside>Left navigation and right context panels support the workspace without becoming the main content.
<footer>Data freshness, secondary links, and final page-level status belong at the bottom of the frame.
Archetype A is the base, with Editorial and Curation features planned inside the workspace.
Market Command Header
Session overview · Watchlist scan · Risk context
Reserved for the chart, asymmetric story grid, responsive card gallery, and comparison widgets.
The frame does not introduce a new visual language; it reuses the token foundation.
var(--space-md)Grid gaps, section padding, and panel spacing follow the same rem-based rhythm.
var(--color-surface)Header, rail, workspace, context drawer, and footer remain readable in both light and dark mode.
var(--size-heading-md)Important dashboard labels scale with the Week 02 clamp-based typography system.
minmax()Side rails keep usable minimums while the central workspace receives the remaining room.
.dashboard-frame {
grid-template-columns: minmax(4.75rem, 6rem) minmax(0, 1fr) minmax(16rem, 22rem);
gap: var(--space-md);
background: var(--color-background);
}
Manual checks required before the next milestone begins.
When the viewport narrows, the Grid moves from a three-column dashboard frame to a stacked frame. The side rails do not collapse to zero because their columns use minmax() constraints and the central workspace uses minmax(0, 1fr).