Reference · Internal

Design System

Every color, type style, component and rule used across this portfolio — extracted directly from the live site so this page never drifts from what's actually shipped.

01

Colors

Four base colors plus three alpha scales (white, black, orange) used for borders, muted text and hover states.

--orange
#FF4D00
--black
#080808
--off-white
#EDECEA
--ink
#111110

White scale — used on dark surfaces (nav, hero, contact)

4%--white-4
8%--white-8
16%--white-16
32%--white-32
48%--white-48
56%--white-56

Black scale — used on light surfaces (cards, body text, borders)

4%--black-4
10%--black-10
18%--black-18
28%--black-28
38%--black-38
52%--black-52
64%--black-64

Orange scale — accent fills, highlight overlays

8%--orange-8
20%--orange-20
36%--orange-36
52%--orange-52

02

Typography

Syne for display headings, Inter for everything functional — body copy, labels, UI text.

H1 · .hero-title
Syne 400
clamp(44–88px)
line-height 0.96 · −0.03em
Product Designer
H2 · .contact-title
Syne 700
clamp(48–96px)
line-height 1 · −0.01em
Say hello
H3 · .section-tagline
Syne 700
clamp(28–44px)
line-height 1.1 · −0.02em
Selected Work
H4 · .project-title
Syne 700
clamp(20–32px)
line-height 1.05 · −0.02em
Checkout Conversion Engine
H5 · .section-label
Inter 500 · 10px
uppercase · 0.14em
Selected Work — eyebrow label
Body · .about-bio
Inter 300 · 18–20px
line-height 1.75

I'm a Senior Product Designer with 12+ years of experience crafting digital products that balance clarity, strategy, and visual quality.

Small · .project-desc
Inter 400 · 13px
line-height 1.68

Card descriptions, accordion body copy and other supporting text sit at 13px with generous line-height for readability at small sizes.

03

Buttons & Links

One button component reused everywhere — nav CTAs, project card actions, hero links.

.btn-primary
+ .btn-secondary
Same component
on light surfaces
.arrow-link
circular icon CTA
.pill-tag
Product Design Fintech Mobile

04

Project Card

50/50 split — copy on one side, cover image on the other. Alternates sides down the page. Industry stripe anchored to the edge that meets the image.

AI Agent Automation

Project Title Goes Here

05

Spacing & Radius

An 8px-rooted spacing scale and four radius sizes, each tied to a specific use.

6px
8px
14px
20px
24px
32px
64px
80px
2px
Scrollbar thumb
4px
Buttons
6px
Cards, panels
100px
Tags, pill buttons
50%
Icon circles, dots

06

Icons

One 12×12 stroke arrow, reused for every directional action — card links, next-project nav, hero CTAs.

07

Rules & Conventions

The behaviors and constraints that hold the system together.

01

Two typefaces only

Syne for anything that needs to feel designed — headings, buttons, numbers. Inter for everything read at length — body copy, labels, UI chrome. Never mixed within the same text block.

02

Orange is the only accent

Used for primary CTAs, hover states, active nav indicators and the industry stripe on project cards. Never used for large fills or body text — always a small, deliberate hit of color against black, white or off-white.

03

Cards alternate sides

Project cards flip copy/image position on every other row (.project-card--reversed) so the page reads with a visual rhythm instead of a static list.

04

Eyebrow + heading pairing

Every section opens with a small uppercase label (.section-label, 10px, 0.14em tracking) directly above a large Syne heading — never a heading on its own.

05

Custom cursor on desktop

A crosshair + coordinates readout replaces the system cursor on pointer devices (hover: hover), reinforced by a film-grain noise overlay across the whole page. Both are disabled on touch.

06

Mobile: image always first

Below 768px, every card's cover image renders above its copy regardless of desktop side — reading order is never sacrificed for visual alternation.