Template Vanilla Site MIT

Developer Portfolio

A personal, technical, editorial-minimal portfolio template for a software / design engineer, built with semantic HTML, CSS, and vanilla JavaScript. Light, neutral, and typography-driven: a sticky header with brand mark, anchor nav, theme toggle, and a responsive mobile drawer; an editorial intro with a clamp() lead, status badge, and metadata grid; a selected-work list of project cards (index, title, role, year, description, stack tags, case-study link); an about/capabilities split with a capability table and a four-up stat row; a notes/writing list with date + category meta; and a contact section with a lead, channels list, and footer. Split into modular files: code.html (HTML structure) + style.css (the design system, following the shared design-tokens.md --ds-* token layer with light-default + calm opt-in dark mode and reduced-motion guard) + script.js (theme toggle, mobile nav, scrollspy active nav, IntersectionObserver reveal), with preview.html as a self-contained single-file preview. No React, Vue, Next.js, Tailwind, Bootstrap, or backend.

  • Vanilla
  • HTML
Pages
Site
Stack
Vanilla HTML/CSS/JS + HTML
Theme
System
Responsive
Yes
Files
7
License
MIT

Preview

The whole site, live.

Scroll inside the frame, switch viewports, or open the raw preview in a new tab — it is the same file the CLI installs.

Interactive preview
New tab
devsnips.dev/templates/vanilla/developer-portfolio/
iPhone 390 × 844
Fluid 320 → 1920
Vanilla/Templates/developer-portfolio Responsive · System · MIT

What's inside

Everything the folder ships.

Straight from the registry's metadata — every line maps to a file you can open in the source tabs below.

  • sticky header with brand mark, anchor nav, theme toggle, and responsive mobile drawer (aria-expanded)
  • editorial intro with clamp() oversized lead, availability status badge, and metadata grid
  • selected-work list of project cards (index, title, role, year, description, stack tags, case-study link)
  • about / capabilities split layout with capability table and four-up stat row
  • notes / writing list with date + category meta and hover affordance
  • contact section with lead, channels list (email / GitHub / calendar), and footer
  • light-default theme with calm opt-in dark mode (no-flash pre-paint script + persisted toggle)
  • scrollspy active nav state (aria-current=location via IntersectionObserver)
  • IntersectionObserver scroll-reveal (.reveal -> .is-visible, threshold 0.12, unobserved after)
  • DevSnips --ds-* shared design-token layer (design-tokens.md) with template tokens on top
  • hairline 1px borders, small controlled radii, restrained shadows, single controlled accent
  • modular file split (code.html + style.css + script.js)

Technical

Stack, scripts, structure.

Everything you need to know before you install.

Stack
Framework Vanilla HTML/CSS/JS
Language HTML
Theme System
Browsers Chrome, Firefox, Safari, Edge (modern evergreen browsers)
Files 7

root 4

  • AGENTS.md doc
  • metadata.json config
  • preview.html preview
  • README.md doc

pages/ 3

  • code.html code
  • script.js code
  • style.css code

Install

One command, whole folder.

Pulls the template into your project through the DevSnips CLI. The registry path below is stable across the CLI, MCP server and Skills.

terminal · npm
npx devsnips add Vanilla/Templates/developer-portfolio
registry path Vanilla/Templates/developer-portfolio 7 files

AI-ready

Hand the whole job to your agent — Cursor, Cline, Claude Code or Windsurf. One prompt installs the template, fixes the theme toggle, optimises it and reshapes it for what you are building.

Scaffold the DevSnips template "Developer Portfolio" (Vanilla/Templates/developer-portfolio) into this project, then audit, fix and tailor it.

1. Install — if the DevSnips MCP server is connected, fetch the resource with get_resource(id="Vanilla/Templates/developer-portfolio"). Otherwise run npx devsnips add Vanilla/Templates/developer-portfolio and install the dependencies the template declares.

2. Audit — check the template end to end before changing anything: theme toggling (dark/light), responsive behaviour, accessibility, unused files and assets.

3. Fix — repair what the audit found, starting with the theme toggle: it must persist across reloads, never flash the wrong theme on first paint, and every component must read the same tokens in both modes.

4. Optimise and adapt — trim what the site does not need, then customise the template for the product being built here: replace the placeholder branding, copy, imagery, navigation and routes so it reads as this project rather than as a demo.

Source

Read it before you ship it.

The README, manifest and entry document — verbatim, straight from the registry.

README.md
# Developer Portfolio

A personal, technical, editorial-minimal portfolio template for a software / design engineer. Part of the DevSnips Vanilla Templates collection and built on the shared [`design-tokens.md`](../design-tokens.md) `--ds-*` token system.

## Design language

Minimal · light · editorial · neutral · typography-driven · restrained.

- Light-default, calm opt-in dark mode (no-flash, persisted).
- Hairline 1px borders over shadows; small controlled radii.
- Inter (text) + JetBrains Mono (labels / metadata), system fallbacks.
- Single controlled blue accent; neutral-first palette.
- High information density with intentional whitespace.

## Structure

```
developer-portfolio/
├── pages/
│   ├── code.html      # HTML structure (links style.css + script.js)
│   ├── style.css      # design system (--ds-* tokens)
│   └── script.js      # theme toggle, mobile nav, scrollspy, reveal
├── preview.html       # self-contained single-file preview (inlines CSS+JS)
├── metadata.json
└── README.md
```

`preview.html` opens directly with no backend. The modular files in `pages/` are for customization.

## Sections

1. **Header** — brand mark, anchor nav, theme toggle, mobile drawer.
2. **Intro** — editorial `clamp()` lead, availability status badge, metadata grid.
3. **Selected work** — project cards (index, title, role, year, description, stack tags, case-study link).
4. **About** — narrative + capabilities table + four-up stat row.
5. **Notes** — writing list with date + category meta.
6. **Contact** — lead, channels list (email / GitHub / calendar).
7. **Footer** — copyright + footer links.

## Interactions

Scoped, dependency-free vanilla JS:

- Theme toggle (light ↔ dark, persisted, no-flash pre-paint).
- Mobile nav drawer (`aria-expanded`, Esc closes, auto-close on link click).
- Scrollspy active nav (`aria-current="location"` via `IntersectionObserver`).
- Scroll-reveal (`.reveal` → `.is-visible`, reduced-motion safe).

## Accessibility

Skip link, semantic landmarks, single `h1`, `aria-expanded`/`aria-controls` on the mobile toggle, `aria-current` on active nav, `:focus-visible` rings, native controls throughout, `prefers-reduced-motion` guards.

## Responsive

Three breakpoints (640 / 768 / 1024). Zero horizontal overflow at 320–1920px. Nav collapses to a drawer below 768px; grids reflow; intro splits to two columns on desktop.

## Dependencies

Google Fonts (Inter + JetBrains Mono). No framework, no build step.
59 lines UTF-8 · LF