Colophon

What this portfolio is made of, as of .

Build

Astro
^5.17.1 — static site framework
Tailwind CSS
^4.2.1 — via Vite plugin (no PostCSS)
TypeScript
^5.9.3
remark + remark-html
^15.0.1 — markdown → html for nodes

Theme

Name
pf_aki v0.2.1
Palette
Pearl + Payne's Grey neutrals with a rust accent
Source
themes/pf_aki.json — generates the CSS variables in global.css
Thanks
Khushi Kothari — support and pointing me toward the right references for these themes

Palette

Every named swatch from themes/pf_aki.json. The CSS variables on this page derive from a subset of these.

warm neutrals

Light Ivory #F6F4F0
Warm Cream #FAF3E0
Beige #F5EFEB
Pearl #EAE0C8
Pearl Mid #DDD2B6
Pearl Dim #C7BCA0
Pearl Deep #C0B59A

cool neutrals

Sky Blue #C8D9E6
Slate Gray #708090
Payne's Light #6E8294
Teal #567C8D
Payne's Grey #536878
Payne Surface #3F4F5C
Navy #2F4156
Payne Deepest #1A2A3A
Payne Inkwell #11202D

rust

Rust Glow #E89272
Rust Light #D17A56
Rust Mid #B85C38
Rust Deep #8C4528

sage

Muted Olive #7C7E73
Sage Light #9DA08F

mustard

Ochre #B5832A
Mustard Light #D4A04F

plum

Dusty Plum #8B5970
Plum Light #A87E91

Hosting

Cloudflare Pages
static deploy, rebuilds on push to main
Source
github.com/AkanshBharadwaj/portfolio

Content

Nodes
2 entries — markdown files validated against a Zod schema
Editorial
edit markdown → git push → Pages builds. No CMS.

Accessibility

Target
WCAG 2.1 AA across every page
Tooling
pa11y-ci via npm run test:a11y — runs locally, not currently gating CI
Status
in progress — the build gate is temporarily off after Cloudflare's headless Chrome computed some color tokens at 4.42:1 (vs the 4.5:1 AA threshold) where local Chrome read them as passing. Tokens have been darkened with headroom; gate will go back on once cross-browser readings agree.
Caveats
Automated tools catch roughly 30–40% of WCAG issues. Manual screen-reader and keyboard testing happens iteratively, not on every commit.

Authorship

Author
Akansh Bharadwaj
Direction
hand-directed, paired with Claude Code (Anthropic)