THE ALTITUDE ATLAS — DRAWING SETSHEET 1A / 14

the DOCUMENT, DIMENSIONED

ALTITUDE 1 — ALTERNATE PLATE: sheet 1’s document at reading size — the sample app’s contacts page at /app/contacts/fruiz, measured in Chromium at 1280 and 390 wide and drawn as slots with chained codes, three details and the layer stack sheet 1 raises · rows read census-document.json @ 3f55e419, measured on the vanilla build at eca2d156

NOTES — UNLESS OTHERWISE SPECIFIED 1 slots, not content: every name and field is the app’s sample data, drawn as a slot 2 HUG is sized by its content · FLEX takes what the row leaves · FILL takes the parent’s width 3 at 390 the row wraps: the nested <ui-view> drops under the list and takes the full line 4 tab padding S2 / S3 is bootstrap 3.3.7’s; every other spacing is the shared styles.css’s CSS px · codes, not numbers: the schedules under the plate carry every value, and derived ones as formulas BASIS — survey and declared rules: origin/main @ 3f55e419 measured: sample-app-lit-vanilla built at eca2d156, apps/ and packages/ identical to 3f55e419 chromium at 1280 × 900 and 390 × 844, after document.fonts.ready · /app/contacts → /app/contacts/fruiz PLAN — /app/contacts/fruiz AT 1280 × 900 · SCALE 0.55 : 1 VW W1 · HUG W2 · FLEX H5 H6 · HUG H9 S11 VH T1 H8 · HUG NAV · FILL 4 CONTENT SLOT · HUG .contact · FILL, inset S9 / S10 1 uiSref ACTIONS · HUG <ui-view> · FLEX nested in <sample-contacts>, unnamed 2 LIST · HUG <ui-view name="contacts"> · FILL DETAIL A DETAIL C DETAIL B PLAN — THE SAME PAGE AT 390 × 844 · SCALE 0.55 : 1 FOLD VW2 W1 H4 H6 · HUG H8 S11 VH2 H10 LIST · HUG W1 at both widths <ui-view> · FLEX wraps under the list to the full line, W3 3 DETAIL A — THE ACTIVE TAB, AN <a uiSref> · SCALE 3 : 1 LABEL · HUG S3 S3 S1 S2 LH S2 H1 R1 4 DETAIL B — ONE ROW, THE ACTIVE <a uiSref> · SCALE 2 : 1 LABEL SLOT · ROW FILLS THE LIST S8 W1 S7 LR S7 H2 DETAIL C — THE NESTED VIEW’S SEAM · SCALE 2 : 1 CONTENT SLOT S10 S9 S6 THE SEAM — LIST HUG | NESTED <ui-view> FLEX LAYERS @1280 — WINDOW TO LINK, FLAT WITH OFFSETS window · depth 0 body · depth 1 #root · depth 2 <ui-router> · depth 3 <ui-view> · depth 5 <ui-view name="contacts"> · depth 9 <ui-view>, nested · depth 12 <a uiSref> · depth 15

SPACING — padding, margin, border, radius (px)

codevariablevaluesourcedeclared
S1header margin4.2measured @1280styles.css .navheader { margin: 0.3em }
S2tab padding-block10measured @1280bootstrap 3.3.7 .nav > li > a { padding: 10px 15px }
S3tab padding-inline15measured @1280bootstrap 3.3.7 .nav > li > a { padding: 10px 15px }
S4nav button padding-block6measured @1280styles.css .navheader .nav-tabs > li.navbar-right > a.btn { padding-block: 6px }
S5nav button padding-inline12measured @1280styles.css .navheader .nav-tabs > li.navbar-right > a.btn { padding-inline: 12px }
S6list padding-block21measured @1280styles.css .selectlist { padding-block: 1.5em }
S7row padding-block3.25measured @1280styles.css .selectlist a { padding-block: 0.25em }
S8row padding-inline19.5measured @1280styles.css .selectlist a { padding-inline: 1.5em }
S9detail padding-block14measured @1280styles.css .contact { padding-block: 1em }
S10detail padding-inline42measured @1280styles.css .contact { padding-inline: 3em }
S11body padding-block-end64measured @1280styles.css body { padding-block-end: 64px }
Btab border1measured @1280bootstrap 3.3.7 .nav-tabs > li > a { border: 1px solid transparent }
M1tab overlap1measured @1280bootstrap 3.3.7 .nav-tabs > li { margin-bottom: -1px }
R1tab corner radius10measured @1280styles.css .navheader .nav-tabs li a { border-start-start-radius: 10px }
R2nav button radius4measured @1280styles.css .navheader .nav-tabs > li.navbar-right > a.btn { border-radius: 4px }

SIZE — viewports, heights, widths, tops (px)

codevariablevaluesourceformula / declared
VWviewport width1,280viewport—
VHviewport height900viewport—
VW2phone viewport width390viewport—
VH2phone viewport height844viewport—
LHbody line-height20measured @1280bootstrap 3.3.7 body { line-height: 1.42857143 }
LRrow line-height18.57measured @1280bootstrap 3.3.7 body { line-height: 1.42857143 } at styles.css .selectlist a { font-size: small }
H1tab height42measured @12802·S2 + LH + 2·B = 42
H2row height25.06measured @12802·S7 + LR = 25.07
H3nav button height34measured @12802·S4 + LH + 2·B = 34
H5header height42measured @1280H1 − M1 + B = 42
H4header height, wrapped75measured @390H1 + H3 − 2·M1 + B = 75
H6list height729.06measured @12802·S6 + H7 + LH + N·H2 = 729.06
codevariablevaluesourceformula / declared
H7button row height40.5measured @1280—
Ncontact rows25measured @1280contacts.json · 25 records
H8detail height238.39measured @1280HUG — sized by the contact
H9root height836measured @1280VH − S11 = 836
H10page height, wrapped1,110.64measured @390Y1 + H8 + S11 = 1110.64
T1view top46.19measured @1280S1 + H5 = 46.2
T2view top, wrapped79.19measured @390S1 + H4 = 79.2
W1list width176.31measured @1280HUG — flex: 0 1 auto, sized by its longest row
W2nested view width1,103.69measured @1280VW − W1 = 1103.69
W3nested view width, wrapped390measured @390VW2 = 390
Y1detail top, wrapped808.25measured @390T2 + H6 = 808.25

every formula closes on the page within half a pixel, or census-document.mjs stops

SLOTS — HUG, FLEX, FILL read off the computed box

codeelement@1280@390w × h @1280w × h @390
NAVul.nav-tabsFILLFILL, wrapped1271.6 × 42.0381.6 × 75.0
TAB<a uiSref> tabHUGHUG, wrapped88.8 × 42.088.8 × 42.0
BTN<a uiSref> buttonHUGHUG, wrapped132.8 × 34.0132.8 × 34.0
VIEW<ui-view name="contacts">FILLFILL1280.0 × 729.1390.0 × 967.5
LIST<sample-contact-list>HUGHUG176.3 × 729.1176.3 × 729.1
ROW<a uiSref> rowFILLFILL176.3 × 25.1176.3 × 25.1
NEST<ui-view>, nestedFLEXFLEX, wrapped1103.7 × 729.1390.0 × 238.4
DETAIL.contactFILLFILL, wrapped1103.7 × 238.4390.0 × 238.4
ACT<a uiSref> actionHUGHUG, wrapped126.6 × 34.0126.6 × 34.0
FIG. 1AThe contacts page of the sample app, drawn the way a dimensional drawing draws a component: the shell's nav, the named view it fills, the list that hugs its rows and the nested view that flexes beside it, every distance a code. At 390 the row wraps and the nested view drops under the list. The stack at the lower right is the page's layers from the window to the link, the plates sheet 1 raises.

GENERAL NOTES

Method. The page is the vanilla sample app's contacts state, /app/contacts and then one contact at /app/contacts/fruiz, served from its built dist and measured in headless Chromium at 1280 × 900 and 390 × 844 after document.fonts.ready settles: getBoundingClientRect for every box, getComputedStyle for every padding, margin, border, radius and flex. The visualizer and the API docs are switched off, so the routed page stands alone. census-document.mjs writes the readings to census-document.json, reads each declared rule out of styles.css at origin/main @ 3f55e419, and stops when a selector is missing or a formula misses the page by half a pixel. The build is this branch's at eca2d156, whose apps/ and packages/ match 3f55e419 file for file. The idiom is dimensional-drawing by enesozturk (MIT), after Apple's accessory dimensional drawings: codes on the drawing, every code a row of a schedule, derived values written as formulas, nothing invented. The atlas sets it in its own chrome, in both themes, with colour kept editorial.

One geometry for four apps. The four sample apps take their stylesheet and their pages from sample-app-shared, and their 4 built stylesheets are byte-identical (6,128 bytes, sha-256 2575db0b00a9e455…). Each app writes its own shell, and the 4 shells carry the same markup: a nav of uiSref tabs and three <ui-view> slots in <main>. The shared pages hold four more, the root view and the nested ones inside contacts and messages. The tab padding is Bootstrap 3.3.7's, which the apps load from a CDN; every other spacing on the plate is the shared stylesheet's.

What the drawing says. Under the nav, the shell's named <ui-view name="contacts"> fills the page. Inside it the contact list carries no width of its own: it hugs its longest name at W1 = 176.31 px at both widths, and its height is a sum, H6 = 2·S6 + H7 + LH + N·H2, over 25 rows. The nested <ui-view> is unnamed and flexes into the rest of the row, W2 = VW − W1; the contact's content sits inset in it by S9 and S10, and every link on the page — tab, row, action — carries uiSref and hugs its label. At 390 the nav wraps to two rows, H4 = H1 + H3 − 2·M1 + B, and the list row wraps too: the nested view drops under the list and takes the full line, so the page grows to H10 below a fold at VH2.

Sheet 1's plates are this page's layers. Sheet 1 raises its document as plates from the window to the link; the stack at the lower right is the same climb, measured: window, body, #root, <ui-router>, the root <ui-view>, the shell's named view, the nested view and the active row's link, each at its real rectangle and its depth in the DOM. A layer stack is honest here because the page really is layered. Sheet 1 letters its window /people with a named detail view; the sample app's own names are contacts for the view the shell fills and none for the nested one the detail lands in.

KEY

a dimension, lettered with its code — the value is in the schedules
a slot: content drawn as a placeholder, never as copy
a control or the list: the parts that hug
the nested <ui-view>, the one that flexes
the active row’s <a uiSref>
the shell’s named <ui-view name="contacts">
the body’s bottom padding, S11
a detail circle — the panel drawn larger below the plans
a boxed note number — the note of that number at the top left
PROJECTTHE ALTITUDE ATLAS
SHEET TITLEthe DOCUMENT, DIMENSIONED
SCALEONE PAGE
FORMDIMENSIONED PLAN
CLIENTlit-ui-router · simshanith
DATE / REV2026-10-30 · A
DRAWN BYFable (Claude, AI)
SHEET1A OF 14