UI portfolio / Personal project

Components

Running on Astro React + Vue 3 + native CSS

Tested and in use across this very portfolio

Interactive preview, documented code and tokens

41Components
6Categories
2Frameworks
0UI dependencies

Design system

My own design system in React and Vue

Shared tokens and one public API, written the way each framework expects.

  • Tokens. Custom properties with light-dark(), declared once for React and Vue

  • React. Hooks and TypeScript, no defaults on any prop, every decision visible

  • Vue 3. Composition API, the same props and events as in React

:root {
  color-scheme: dark;

  --color-accent: light-dark(#7c3aed, #2dd4bf);
}

.switch.md {
  --switch-width: var(--size-40);
  --switch-height: 22px;
}

.switch_box.active {
  background: var(--color-accent);
  border-color: var(--color-accent);
}

Philosophy

Building or delegating depends on the context

On a project in a hurry I'd use Radix or Reka. Here I build them myself to understand what they do inside.

Browse by category

This portfolio in 749 commits

341Build

  • Feature192
  • UI121
  • Responsive24
  • Animation3
  • Kickoff1

209Maintain

  • Refactor78
  • Bugfix69
  • Format37
  • Removal20
  • Moves5

106Care

  • Accessibility48
  • i18n24
  • Copy20
  • Performance10
  • SEO4

93Infrastructure

  • Docs66
  • Tests9
  • Config8
  • Upgrades7
  • Generated2
  • Gitignore1
Astro 7
React 19
Vue 3