Executive portfolio
A portfolio theme that earns its accessibility claim
Apex is built for consultants, directors and advisors who need a fast, credible site without a build toolchain. Every accessibility and performance claim it makes is checked by a gate in CI.
Measured, not asserted
Every figure below is produced by a CI gate on each commit. Nothing here is a static badge.
AA
WCAG 2.2 conformance
Verified by axe-core and ssg audit. Colour tokens additionally clear AAA 7:1 for text.
0
Third-party requests
No CDN, no webfont host, no analytics. Everything ships from your own origin.
<7 KB
Heaviest page, compressed
HTML plus the fingerprinted CSS and JS it references. Enforced at 20 KB by scripts/pageweight.py.
0.00
Cumulative layout shift
Every image carries intrinsic dimensions; no late-loading webfont reflows the page.
About this theme
What you get
Apex ships five page types — home, case studies, frameworks, about and contact — sharing a single base.html through template inheritance. The header, footer and navigation live in partials, so changing a menu item is a one-line edit in one file rather than a find-and-replace across layouts.
The colour system is defined once as custom properties and re-checked on every commit by scripts/contrast.py. Text pairs clear WCAG 1.4.6 at 7:1 — the AAA threshold — and borders and the focus ring clear 1.4.11 at 3:1. Change a token and the gate tells you if you have broken something.
What it deliberately does not do
There is no CDN, no webfont host, no analytics snippet and no cookie banner, because there is nothing to consent to. The type stack resolves to fonts already on the device, which is why there is no layout shift when a webfont arrives late — none arrives at all.
Search is provided by SSG itself. The generator injects an accessible search widget with a proper dialog role, live-region result announcements and a Subresource Integrity hash on its script; the theme only re-skins it to match your palette.
Making it yours
Start with _layouts/styles.css. The @layer tokens block at the top is the whole design system: change --accent, run make check, and the contrast gate confirms the new value still passes before you ship it.