Noor Haddad

Reference

Design system

Every ratio was computed with tools/a11y/contrast.py against all three grounds. This page is noindex: it documents the template for whoever builds with it.

The verification is a disclosure

Each check is an <article> and its thirty-second how-to is a <details> inside it. The check is the argument; the how-to is reference material, and open by default it would triple the length of a section people came to skim. Seven disclosures in the spine plus six in the FAQ is also the clearest structural difference between this template and the four before it.

The only picture is drawn

Two SVG wireframes of the same panel — quads with loops where it bends, and the same silhouette triangulated evenly with a fan through the deforming area. It is the one argument on the page a table cannot make, and there is no photograph of a mesh, so it is vector. Both are aria-hidden; the caption states the whole point in text, and the two labels are words before they are colours.

Pass and fail are not the accent

--check-ok and --check-bad are separate tokens from --color-accent, because on a page whose content is a checklist “passes” must not be the same colour as a heading. Every state is also a word in a bordered chip, so the colour is the third signal and carries nothing alone.

The list cuts both ways

The seven checks are asserted against this studio's own deliveries, not offered as a critique of other people's. That is a content decision rather than a design one, but it is the reason the section is worth having: a checklist a portfolio does not submit itself to is marketing wearing a lab coat.

Type

Anybody — display

Kode Mono — 40,000 tris · 10.24 px/cm · 2K

Counts, densities and map sizes have to align in columns, so the mono face is load-bearing. Body is Onest. None of the three appears in days 1–104.

Tokens

Colour tokens with measured contrast ratios
SwatchTokenValueMeasured
--color-bg #F4F5F8 Cool viewport grey
--color-bg-alt #E5E7EC Banding
--color-surface #FFFFFF Check cards, the figure plate
--color-text #14161C 16.59 / 14.62 / 18.08:1 · AAA
--color-text-muted #636779 5.14 / 4.53 / 5.60:1 · AA
--color-border #7F8497 3.41 / 3.00 / 3.72 — non-text only
--color-accent #263ED9 Hue 232 — 6.95 / 6.12 / 7.57:1 · AA
--check-ok #157746 Passes — 5.12 / 4.52 / 5.59:1
--check-bad #BA352C Breaks without it — 5.30 / 4.67 / 5.78:1
--color-band #14161C Inverted band
--color-on-band #F4F5F8 16.59:1 on band · AAA
--color-on-band-muted #9EA2B0 7.10:1 on band · AAA
--color-accent-on-band #8F9CF3 7.08:1 on band · AAA

The border token clears 3:1 against all three grounds, which is what WCAG 1.4.11 asks of a non-text boundary. It is never used for text.