Design system &
brand guide.
Signal is the visual language for Virtu Studios — an editorial, architectural system built on paper-and-ink contrast, monospace metadata, and a single electric accent. Bone paper, Graphite ink, Signal lime.
Color system
Six literal brand colors that never flip, plus semantic tokens that adapt across light and dark modes. Graphite is ink. Bone is paper. Signal is the accent that cuts through both.
| Token | Light mode | Dark mode | Usage |
|---|---|---|---|
--background |
Bone |
Graphite |
Page ground |
--foreground |
Graphite |
Bone |
Body text, icons |
--primary |
Graphite |
Signal |
Primary actions — flips on dark |
--accent |
Signal |
Signal |
Hover states, focus rings, selection |
--border |
Graphite 12% |
Bone 14% |
Hairline rules, grid dividers |
Typography
Three type roles: Host Grotesk for display headlines with italic emphasis, Inter Tight for body copy, and JetBrains Mono for metadata labels. Tight tracking on display; wide tracking on mono.
engineered.
Logo & mark
The Virtu mark is a geometric symbol built from four quarter-circle forms — modular, architectural, and scalable. The wordmark pairs custom letterforms with the mark for lockups.
✓ Do
Use Graphite or Bone fills that match the background contrast. Keep the mark at integer pixel heights (32px nav, 48px+ hero). Pair with mono tagline separated by a 1px rule.
✗ Don't
Don't rotate, stretch, or add drop shadows. Don't place the mark on busy photography without a solid ground. Don't use Signal as a mark fill except in deliberate accent contexts.
Components & patterns
Signal favors pill-shaped CTAs, hairline borders, and editorial grid cells. Components use sharp 4px radii (architectural, not soft) with monospace labels on interactive elements.
“A small studio. Four projects a year.”
Virtu is a studio for founders. We take on four projects a year and ship small, specific things, well.
4/yr
Projects, capped
A small studio.
Four projects a year.
Motion, radius & spacing
Animations use a shared easing curve. Layout max-width is 1360px with 40px horizontal padding. Border radius stays sharp at 4px — architectural, not friendly-rounded.
fadeUp
Hero entrances. 1s duration, 20px Y translate.
cubic-bezier(0.16, 1, 0.3, 1)
scrollPulse
Scroll indicators. 2s infinite opacity + height pulse.
Hover lift
CTAs translate −1px on hover. 160ms ease. Used on pills and nav actions.
transform: translateY(-1px)
| Token | Value | Usage |
|---|---|---|
--radius | 4px (0.25rem) | Cards, inputs, code blocks |
--radius-md | 6px | Shadcn button default |
--radius-pill | 999px | CTAs, badges, eyebrows |