Week 02Design system tokens
OKLCH roles, fluid type, spacing variables, borders, focus states, and theme contracts remain the visual source of truth.
Week 06 · Component-Level Flexibility with CSS Container Queries
This milestone duplicates the approved Week 05 output, keeps its layered and nested CSS architecture, then establishes inline-size container contexts so one reusable market card can stack in a narrow drawer and reflow horizontally in a wide workspace.
Weeks 02 through 05 remain frozen checkpoints. Week 06 adds component-level responsiveness without replacing the approved dashboard foundation.
Week 02OKLCH roles, fluid type, spacing variables, borders, focus states, and theme contracts remain the visual source of truth.
Week 03The command header, left rail, market workspace, context drawer, and status footer remain structurally intact.
Week 04The six-card market workspace and featured two-by-two market story remain preserved.
Week 05The reset, base, layout, and components layers plus native nesting remain the Week 06 stylesheet foundation.
Week 06The same reusable component now chooses stacked or horizontal internals from its direct container width.
The adaptive card appears in both the wide market workspace and the narrow research drawer. Its internal layout changes through @container, not through a viewport media query.
Market command header
Container-aware workspace previewFeatured market overview
The Week 04 asymmetric hierarchy remains in place while Week 06 adds a separate context-aware component test below it.
Stocks
Crypto
Portfolio
Comparison
Risk context
Fibonacci · Volume Profile · OBV · Pivot Points · Support/Resistance · Candlestick Patterns · Divergence · Ichimoku · Parabolic SAR
Wide placement · main workspace
At 500px or wider this reusable card becomes a horizontal composition, with the visual beside the copy.
Page-level media queries still control macro dashboard tracks, while the Week 06 reusable card owns its internal response through a named inline-size container.
container: market-card-slot / inline-sizeEach placement wrapper becomes an inline-size query container without changing the reusable card markup.
@containerThe component responds to the nearest named container instead of checking the browser viewport.
min-width: 500pxThe base card stacks vertically; a sufficiently wide container changes it to a horizontal row.
cqwPadding, gaps, and type use bounded container-relative units so the card can breathe proportionally inside either placement.
@mediaExisting viewport queries still handle the overall dashboard frame and grid tracks; they do not control the new card's internal direction.
same markupThe main and context versions are identical components. Only their available container width changes the presentation.
.component-slot {
container: market-card-slot / inline-size;
}
.adaptive-market-card {
display: flex;
flex-direction: column;
gap: clamp(0.7rem, 3cqw, 1.15rem);
padding: clamp(0.8rem, 4cqw, 1.35rem);
}
@container market-card-slot (min-width: 500px) {
.adaptive-market-card {
flex-direction: row;
align-items: center;
}
}
The milestone is complete only when the same component visibly changes layout from parent width, not viewport-dependent card alignment.
.component-slot wrappers and confirm each establishes container: market-card-slot / inline-size.@media rule fires.flex-direction.cqw values are used for component spacing or type without producing overflow at narrow widths.Week 06 adds component-level flexibility only. It does not add live prices, broker actions, production feeds, authentication, or trading logic.