Detail shell

A pattern, the fourth rung, and 7 declarations, and the smallest file in the system is feed.css at 12 lines rather than this one. A content column beside a side panel. 11 placements on 11 painted screens, every state an event detail has. Measured 2026-08-08 in a browser, at 390 and 1280.

11 screens 7 declarations 3 rules holds 5 components

The arrangement, with something in it

The real .ed-layout, both themes: the reading column and the panel beside it. The panel is display:none below 760 and flex:0 0 322px above, so this cell shows the wide arrangement and a phone gets the dock instead.

Vault, dark
Daylight, light

What is in the cell is real and it is not the whole screen. A detail screen is a head, a chart, tabs, rules, related events and a comment thread, and putting all of it in a stand cell would show the screen rather than the shell. What the pattern decides is the two columns and the gap between them, so the slots hold the smallest true thing each one holds in the product.

Three rules for five components

It assembles a card, a chart, a market block, a tab strip and a bet panel, and it owns none of them. What it says is that there are two columns, which one grows, and when they stop being stacked. The shelf and the reason stay on the patterns page.

at 390at 1280
the layouta column, 351x1984a row, 969x1691
the main column351 wide, the whole width631 wide, the panel takes 322
the breakpoint760, and it is the same one the bet panel uses to swap its own face

One breakpoint, shared with the component it holds, which is what keeps the two in step: at 760 the layout becomes a row AND the panel stops being display:none. Written at two different numbers, there would be a width where a column is waiting for a panel that is not there.

What did NOT come with the three rules

Three rules were cut out of the event screen's file and not copied. Two things stayed behind on purpose: the plate the main column stands on, and the border it drops.

A rule that removes an edge is about the edge, so it belongs with the surface rather than with the arrangement, and both are in the page frame with the rest of the material. This file answers where the two columns are and nothing about what they look like.

It is the same cut the browse shell made and the opposite of the one the action bar needed: there the surface belongs to a component rather than to the page, so it stayed with the component. Three boxes, and every rule in the step went into one of them.

What it does with width

Its own width query: 760 DETAIL. One declaration: the event detail turns from a column into a row at DETAIL. Everything else about that rung, the 322px panel, the 280px plot, belongs to the components standing in it. The shell says only which way they are laid out.

The rule

A shell declares the columns and nothing else. Seventeen lines for a screen that holds five components is what that looks like when it is done.

A breakpoint that two files depend on is one number. The layout and the panel change at the same width, or there is a window where neither is right.

The anti-rule

Never bring a surface with an arrangement. The plate is the page's material and it stayed in the frame.

Never let a shell learn what it holds. Five components stand in these two boxes and not one of them is named here.

Where the rest of it is

The shelf: the patterns page. The stylesheet: components/patterns/detail-shell.css, 10 declarations. The screen's own parts: event detail. The five it holds: card, chart, market, tabs and bet panel. The plate: components/base.css.