this site, measured
everything on this page is generated. the contrast figures are computed from the hex values at build time with the wcag relative luminance formula, the weights are read off the built files, and the last block is measured in your browser rather than mine.
the point is not the numbers. it is that you can check them, and that we had to look at them before you did.
the ledger
every step of the ramp against both grounds, computed here, next to the figure the brand book publishes. the book claims its figures are computed from the hex values rather than estimated. this table is how anyone checks that.
| step | hex | role | on sky | on paper | book | agrees |
|---|---|---|---|---|---|---|
| night 000 | #0A0C12 | the page on dark | 1.00 | 17.95 | 1.00 / 17.95 | yes |
| night 050 | #101420 | the one raised band | 1.06 | 16.87 | 1.06 / 16.87 | yes |
| night 100 | #171B27 | a card. deliberately unused | 1.14 | 15.78 | 1.14 / 15.78 | yes |
| night 200 | #222736 | a decorative hairline | 1.31 | 13.66 | 1.31 / 13.66 | yes |
| night 300 | #31363F | the unlit run, the hatch | 1.61 | 11.15 | 1.61 / 11.15 | yes |
| night 400 | #4A4F5C | unlit letters, tube mark | 2.39 | 7.52 | 2.39 / 7.52 | yes |
| night 500 | #6E7482 | control borders, solid mark | 4.17 | 4.30 | 4.17 / 4.30 | yes |
| night 600 | #8A8F98 | secondary text, all notation | 6.02 | 2.98 | 6.02 / 2.98 | yes |
| night 700 | #B7BCC5 | body on dark | 10.25 | 1.75 | 10.25 / 1.75 | yes |
| night 800 | #DCDEE4 | headings on dark | 14.53 | 1.24 | 14.53 / 1.24 | yes |
| night 900 | #F5F5F7 | the page on light | 17.95 | 1.00 | 17.95 / 1.00 | yes |
| light | #FB006B | the sign, on dark | 4.95 | 3.63 | 4.95 / 3.63 | yes |
| light deep | #CD016C | the sign, on light | 3.55 | 5.05 | 3.55 / 5.05 | yes |
13 rows, 26 figures, checked against the book. all of them agree to two decimal places.
the pairs this site actually uses
a ledger of the whole ramp is a table. a ledger of what is on the screen is an audit. the brand book certifies its accent against the two page colours only, so the pairs below are the ones that had to be checked separately.
| text | on | where | ratio | needs | result |
|---|---|---|---|---|---|
| #B7BCC5 | #0A0C12 | body on the page | 10.25 | 4.50 | pass |
| #B7BCC5 | #101420 | body on the raised band | 9.64 | 4.50 | pass |
| #DCDEE4 | #0A0C12 | headings and display | 14.53 | 4.50 | pass |
| #8A8F98 | #0A0C12 | secondary text and all notation | 6.02 | 4.50 | pass |
| #8A8F98 | #101420 | notation on the raised band | 5.65 | 4.50 | pass |
| #FB006B | #0A0C12 | the lit letters and the focus ring | 4.95 | 3.00 | pass |
| #FB006B | #101420 | the lit letters on the raised band | 4.65 | 3.00 | pass |
| #0A0C12 | #FB006B | the label on the one filled button | 4.95 | 4.50 | pass |
| #6E7482 | #0A0C12 | control borders and the input outline | 4.17 | 3.00 | pass |
| #8A8F98 | #0A0C12 | the unlit half of a client name, on the page | 6.02 | 4.50 | pass |
| #8A8F98 | #101420 | the unlit half of a client name, on the raised band | 5.65 | 4.50 | pass |
| #DCDEE4 | #101420 | headings on the raised band | 13.66 | 4.50 | pass |
| #31363F | #F5F5F7 | body on paper | 11.15 | 4.50 | pass |
| #0A0C12 | #F5F5F7 | headings on paper | 17.95 | 4.50 | pass |
| #4A4F5C | #F5F5F7 | notation on paper | 7.52 | 4.50 | pass |
| #CD016C | #F5F5F7 | the lit letters on paper | 5.05 | 3.00 | pass |
| #F5F5F7 | #CD016C | the label on the filled button, on paper | 5.05 | 4.50 | pass |
17 pairs, 0 failing. the accent measures 4.35 on the card surface the book defines, which fails, so that surface is not used anywhere on this site. the rule is kept by removing the thing that breaks it.
the weight budget
a budget nobody enforces is a wish. this one is a file, the build reads it, and the build fails when a page goes over. the figures below are read off the built output by scripts/report.mjs.
$ npm run build measuring the built output ... / 264.1 kb / 288 kb ok /404.html 41.7 kb / 60 kb ok /book/ 47.0 kb / 90 kb ok /colophon/ 55.8 kb / 60 kb ok /contact/ 32.7 kb / 60 kb ok /method/ 138.7 kb / 170 kb ok /pricing/ 34.2 kb / 60 kb ok /privacy/ 32.7 kb / 60 kb ok /report/ 35.3 kb / 60 kb ok /studio/ 35.0 kb / 170 kb ok /work/ 33.5 kb / 140 kb ok /work/measuredplan/ 35.8 kb / 60 kb ok /work/solarprojects/ 35.4 kb / 60 kb ok /work/survair/ 34.8 kb / 60 kb ok third parties: none all budgets met.
the accent ceiling is a separate gate: a count of lit objects per page, listed in src/data/site.ts. it is a rule this site imposed on itself and it is not in the brand book.
your browser, just now
everything above was measured on our machine. the three figures below are measured on yours, by your browser, and nothing is sent anywhere.
- time to first byte
- not measured
- largest contentful paint
- not measured
- cumulative layout shift
- not measured
javascript is off, so these three are blank. everything above this line was rendered without it.