Compositions · Preview · requirements · design · tasks

Beta shell - Design

Approach

The shell is copied from the served beta HTML, not redesigned. shell.html is the

page frame. Features inject HTML into named slots. That is the same split as

GeoNet's border.html plus {{template "body" .}}.

CSS for chrome comes from beta by URL. The kit only adds:

Slots

SlotBeta regionWho fills it
alertinside .alert-container, after the kit bannerFeatures that need a notice; 911/notice-bar later
hero.page-hero-containerFeatures that need a page title + callout
bandBefore.layout-container-band above the gridA feature that wants the full page width, beta home-page style
bodyfirst column of .layout-container > .layout-two-colPrimary feature content
sidebarsecond columnOptional; hidden when empty (R4)
bandAfter.layout-container-band below the gridAs bandBefore, after the main content

Header, footer and the kit preview banner are owned by the base. They are not slots.

Bands are wrappers the shell always emits, so any fragment mounted there gets the

full-width row without shaping itself as a band. Unused wrappers are hidden with

:not(:has(*)) rather than :empty, which whitespace would defeat.

Which slot a feature lands in is the composition's call (R10): a feature lists the

slots it can fill and the composition may remap them with at:. Keeping placement

out of the slice is what stops near-duplicate slices whose only difference is where

they sit on a page.

Markup

slices/base/v1/shell.html is the live beta header and footer, with

href="/…" and src="/…" rewritten to https://beta.geonet.org.nz/…. Nav labels

and destinations are not paraphrased.

The kit banner uses beta's .site-alert so it picks up the same type and colour,

with copy that says this is a preview (R7).

Tokens and styling

Linked from beta (R5):

css/base.css is kit-only overrides, not a second design system (R8).

geonet-design-system.mjs is fetched at build time and emitted under /assets/js

so header menus run same-origin (R6).

Accessibility

menu button).

shell does not supply an <h1>; the hero slot should.

Handoff notes

origin.

drifted by hand.

Rejected alternatives

kit, not of GeoNet.

with a feature that does not own it.

would be a new base, and every feature would have to widen requiresBase to be

usable on it. Slots plus composition-level at: cover the same ground on one

base. base@2 is reserved for a breaking change to this contract.

the same block appears in a sidebar on one page and a band on another.