FIT VERDICTalternate plate — sheet 1's document at reading size: the sample app's contacts page measured in Chromium, 25 rows in a list that hugs W1 beside a nested view that flexes and wraps under it at 390, one geometry for all four sample apps
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
SPACING — padding, margin, border, radius (px)
| code | variable | value | source | declared |
|---|---|---|---|---|
| S1 | header margin | 4.2 | measured @1280 | styles.css .navheader { margin: 0.3em } |
| S2 | tab padding-block | 10 | measured @1280 | bootstrap 3.3.7 .nav > li > a { padding: 10px 15px } |
| S3 | tab padding-inline | 15 | measured @1280 | bootstrap 3.3.7 .nav > li > a { padding: 10px 15px } |
| S4 | nav button padding-block | 6 | measured @1280 | styles.css .navheader .nav-tabs > li.navbar-right > a.btn { padding-block: 6px } |
| S5 | nav button padding-inline | 12 | measured @1280 | styles.css .navheader .nav-tabs > li.navbar-right > a.btn { padding-inline: 12px } |
| S6 | list padding-block | 21 | measured @1280 | styles.css .selectlist { padding-block: 1.5em } |
| S7 | row padding-block | 3.25 | measured @1280 | styles.css .selectlist a { padding-block: 0.25em } |
| S8 | row padding-inline | 19.5 | measured @1280 | styles.css .selectlist a { padding-inline: 1.5em } |
| S9 | detail padding-block | 14 | measured @1280 | styles.css .contact { padding-block: 1em } |
| S10 | detail padding-inline | 42 | measured @1280 | styles.css .contact { padding-inline: 3em } |
| S11 | body padding-block-end | 64 | measured @1280 | styles.css body { padding-block-end: 64px } |
| B | tab border | 1 | measured @1280 | bootstrap 3.3.7 .nav-tabs > li > a { border: 1px solid transparent } |
| M1 | tab overlap | 1 | measured @1280 | bootstrap 3.3.7 .nav-tabs > li { margin-bottom: -1px } |
| R1 | tab corner radius | 10 | measured @1280 | styles.css .navheader .nav-tabs li a { border-start-start-radius: 10px } |
| R2 | nav button radius | 4 | measured @1280 | styles.css .navheader .nav-tabs > li.navbar-right > a.btn { border-radius: 4px } |
SIZE — viewports, heights, widths, tops (px)
| code | variable | value | source | formula / declared |
|---|---|---|---|---|
| VW | viewport width | 1,280 | viewport | — |
| VH | viewport height | 900 | viewport | — |
| VW2 | phone viewport width | 390 | viewport | — |
| VH2 | phone viewport height | 844 | viewport | — |
| LH | body line-height | 20 | measured @1280 | bootstrap 3.3.7 body { line-height: 1.42857143 } |
| LR | row line-height | 18.57 | measured @1280 | bootstrap 3.3.7 body { line-height: 1.42857143 } at styles.css .selectlist a { font-size: small } |
| H1 | tab height | 42 | measured @1280 | 2·S2 + LH + 2·B = 42 |
| H2 | row height | 25.06 | measured @1280 | 2·S7 + LR = 25.07 |
| H3 | nav button height | 34 | measured @1280 | 2·S4 + LH + 2·B = 34 |
| H5 | header height | 42 | measured @1280 | H1 − M1 + B = 42 |
| H4 | header height, wrapped | 75 | measured @390 | H1 + H3 − 2·M1 + B = 75 |
| H6 | list height | 729.06 | measured @1280 | 2·S6 + H7 + LH + N·H2 = 729.06 |
| code | variable | value | source | formula / declared |
|---|---|---|---|---|
| H7 | button row height | 40.5 | measured @1280 | — |
| N | contact rows | 25 | measured @1280 | contacts.json · 25 records |
| H8 | detail height | 238.39 | measured @1280 | HUG — sized by the contact |
| H9 | root height | 836 | measured @1280 | VH − S11 = 836 |
| H10 | page height, wrapped | 1,110.64 | measured @390 | Y1 + H8 + S11 = 1110.64 |
| T1 | view top | 46.19 | measured @1280 | S1 + H5 = 46.2 |
| T2 | view top, wrapped | 79.19 | measured @390 | S1 + H4 = 79.2 |
| W1 | list width | 176.31 | measured @1280 | HUG — flex: 0 1 auto, sized by its longest row |
| W2 | nested view width | 1,103.69 | measured @1280 | VW − W1 = 1103.69 |
| W3 | nested view width, wrapped | 390 | measured @390 | VW2 = 390 |
| Y1 | detail top, wrapped | 808.25 | measured @390 | T2 + 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
| code | element | @1280 | @390 | w × h @1280 | w × h @390 |
|---|---|---|---|---|---|
| NAV | ul.nav-tabs | FILL | FILL, wrapped | 1271.6 × 42.0 | 381.6 × 75.0 |
| TAB | <a uiSref> tab | HUG | HUG, wrapped | 88.8 × 42.0 | 88.8 × 42.0 |
| BTN | <a uiSref> button | HUG | HUG, wrapped | 132.8 × 34.0 | 132.8 × 34.0 |
| VIEW | <ui-view name="contacts"> | FILL | FILL | 1280.0 × 729.1 | 390.0 × 967.5 |
| LIST | <sample-contact-list> | HUG | HUG | 176.3 × 729.1 | 176.3 × 729.1 |
| ROW | <a uiSref> row | FILL | FILL | 176.3 × 25.1 | 176.3 × 25.1 |
| NEST | <ui-view>, nested | FLEX | FLEX, wrapped | 1103.7 × 729.1 | 390.0 × 238.4 |
| DETAIL | .contact | FILL | FILL, wrapped | 1103.7 × 238.4 | 390.0 × 238.4 |
| ACT | <a uiSref> action | HUG | HUG, wrapped | 126.6 × 34.0 | 126.6 × 34.0 |
GENERAL NOTES
Method. The page is the vanilla sample app's contacts state, / and then one contact at /, 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 / 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 |