Portfolio web primitives
Shared frontend components for the gf.cx surfaces (pa.gf.cx · dare.co.uk · audreyinc.com · dogwood.house). Lift once, import everywhere — no inline-duplication across surfaces.
Available primitives
📥 dropzone · v0.1.0
Drag-and-drop file capture with localStorage persistence + JSON export. Pure client-side; no server roundtrip.
<link rel="stylesheet" href="https://assets.gf.cx/dropzone/dropzone.css"><script src="https://assets.gf.cx/dropzone/dropzone.js" defer></script>
Live demo · dropzone
Architecture
Source lives at xlab-nyc/toolkit. Deployed to Cloudflare Pages project assets-gf-cx on push to main (or via wrangler pages deploy). Custom domain assets.gf.cx bound at CF zone level.
Portfolio surfaces import via CDN URL (https://assets.gf.cx/<primitive>/<file>) — cross-origin JS/CSS load, no CORS required for static assets. Cached at CF edge.
Coming primitives
- date-counter — runtime widget showing relative ("116d left") + absolute ("Aug 8 2026") for any data-attributed date
- signal-bar — 6-axis weighted score bar lifted from contractor records
- master-toggle — binary collapse-all/expand-all generator for any container of
<details> - grayscale-thumb — CSS-only hover-to-color pattern
Build trigger for each: first concrete portfolio use.