Styleguide

Design system reference for this portfolio.

atom

Colors

NameCSS VariableValueSwatchUsage
Background--color-bg#f4f4f0
Page background
White--color-white#ffffff
Cards, inputs
Coal--color-coal#0c0c0c
Primary text, headings, buttons
Foreground--color-fg#0c0c0c
Body text (alias of coal)
Muted--color-muted#6f6f6f
Secondary text, labels
Subtle--color-subtle#999999
Tertiary text, placeholders
Border--color-border#6f6f6f
Default borders
Border Subtle--color-border-subtle#e5e5e5
Light dividers
Green--color-green#8cee6f
Checkmarks, availability
Yellow--color-yellow#ffc609
Checkmarks, accents
atom

Typography

NameFontMobileDesktopWeightLine HeightTrackingSample
DisplayInstrument Sans36px56px5001-1.12pxRaygar He
Heading 1Instrument Sans36px56px5001-0.02emProject Title
Heading 2Instrument Sans28px36px5001.2-0.02emSection Heading
Heading 3Instrument Sans28px28px5001.2-0.48pxSubsection
Heading 4Instrument Sans20px20px5001.2-0.02emSub-subsection
BodyInstrument Sans16px16px4001.4-0.32pxBody text for regular content and descriptions.
LeadInstrument Sans18px18px4001.4-0.36pxLead paragraph text for introductions.
SmallInstrument Sans12px12px4001.4-0.02emSmall text for footers and disclaimers.
MutedInstrument Sans16px16px4001.4-0.32pxMuted text for secondary info.
Tag / LabelInconsolata16px16px40010.8pxUPPERCASE LABEL

Font Families

NameFamilyCSS VariableUsage
SansInstrument Sans--font-sansBody text, headings, UI
MonoInconsolata--font-monoLabels, tags, company names
atom

Spacing

TokenRemPixelsPreview
10.25rem4px
20.5rem8px
30.75rem12px
41rem16px
51.25rem20px
61.5rem24px
82rem32px
102.5rem40px
123rem48px
164rem64px
atom

Border Radius

NameValuePreview
sm0.375rem (6px)
md0.5rem (8px)
lg0.75rem (12px)
xl1rem (16px)
2xl1.5rem (24px)
card-sm36px
card40px
full9999px
atom

Shadows

NameCSS ValuePreview
Nav pill0 2px 8px 2px rgba(0,0,0,0.1), inset 2px 2px 0.5px -2px rgba(160,160,160,0.25)
atom

Transitions & Animations

NameDurationEasingPreview
fast150msease
normal200msease
slow300msease
fade-in600mscubic-bezier(0.16, 1, 0.3, 1)

Entrance animations use .fade-in-ready / .fade-in-visible classes via ScrollReveal and FadeIn components. Reduced motion is respected via prefers-reduced-motion.

molecule

Buttons

VariantSizeDefaultHoverActiveDisabled
primarysmallLabelLabel
primarydefaultLabelLabel
primarylargeLabelLabel
secondarysmallLabelLabel
secondarydefaultLabelLabel
secondarylargeLabelLabel
ghostsmallLabelLabel
ghostdefaultLabelLabel
ghostlargeLabelLabel

Button Props

PropTypeDefaultDescription
variantprimary | secondary | ghostprimaryVisual style
sizesmall | default | largedefaultSize preset
hrefstring-Renders as Link or anchor
externalbooleanfalseOpens in new tab
molecule

Cards

Cards use an inline pattern. There is no Card component.

PatternClasses
Base cardbg-white border border-coal/40 rounded-card p-[40px]
Stat cardbg-white border border-coal/40 rounded-[40px] p-[40px] flex flex-col gap-6
Project cardbg-white border border-coal/40 rounded-[40px] p-[40px] h-[460px] flex gap-[60px] items-center
Live Preview

Card Title

Card description text goes here.

molecule

Badges & Tags

VariantPreview
Filter tag (inactive)Product Design
Filter tag (active)Product Design
Availability badgeAvailable
molecule

Checkmarks

VariantColorSizeUsagePreview
yellow#ffc60918x18pxHero stat highlights
green#8cee6f18x18pxHero stat highlights, availability indicator
outline#0c0c0c (border)16x16pxProject card highlights
molecule

Form Inputs

StatePreview
Default
Filled
Disabled
Textarea
Live Preview — Form Inputs
molecule

Interaction States

Global Focus Ring

All interactive elements use outline: 2px solid coal with outline-offset: 2px on :focus-visible.

::selection

Text selection uses bg-coal text-white. Try selecting this text to see it.

Hover Effects System

Three reusable CSS classes define all hover interactions. Each uses cubic-bezier(0.16, 1, 0.3, 1) for a snappy, minimalist feel.

ClassEffectUsed On
hover-underlineAnimated underline slides in from left (0.3s)Text links, nav links, breadcrumbs, ghost buttons
hover-lifttranslateY(-2px) + subtle shadow (0.3s)Primary buttons, CTA buttons
hover-lift-cardtranslateY(-4px) + larger shadow (0.3s)Article cards, interactive cards
Live Preview — Hover Effects
.hover-underlineText link example
.hover-lift
.hover-lift-card

Card hover

Hover to lift

Nav Link States

StateStylesPreview
Defaulttext-muted, 14px, hover:text-coal hover:bg-white/70Work
Activetext-coal bg-yellow border-yellow shadow-smWork
Live Preview — Nav Links

Filter Tag States

StateStylesPreview
Inactiveborder-border, text-muted, hover:scale-105Tag
Inactive + Hovertext-coal, bg-white, scale-105Tag
Activebg-coal, text-whiteTag
Live Preview — Filter (Industries + Platforms)
Live Preview — Buttons (all variants)
primary
secondary
ghost
PropertyValueDescription
positionsticky top-0Sticks to viewport top on scroll
z-index50Above all content
nav itemsHome, Work, Articles, About, ContactGlassmorphism pill with navigation
font size14pxNav link text size
active statebg-yellow border-yellowYellow background for active page
scroll transitionIntersectionObserver, 80px sentinel, 500msTransparent → white/90 with border on scroll
mobile menubg-white/95 border shadow-smHamburger with animated bars → X morph
Live Preview
Raygar
HomeWorkArticlesAboutContact
PropertyValueDescription
backgroundbg-coal rounded-[24px] / rounded-[40px]Dark card with responsive border radius
layoutBrand info left + link columns rightPages column + Contact column
display name"Raygar"Large gradient text (clamp 4rem–14rem), fading to transparent
links (Pages)Home, Work, Articles, About, StyleguideInternal page links
links (Contact)Contact, LinkedIn, MentorshipContact anchor + external links with ↑ icon
back to topw-10 h-10 rounded-fullSmooth-scroll button next to link columns
creditBuilt with Claude CodeExternal link to anthropic.com/claude-code
copyrightDynamic yearAuto-updates via Date()
Live Preview

Raygar He

Senior Product Designer (Web & Mobile Apps). Bridging design, tech & business — end-to-end delivery with AI fluency.

Pages

Home

Work

Articles

About

Styleguide

Contact

Contact

LinkedIn

Mentorship

Built with Claude Code

© Raygar He, 2026. All rights reserved

organism

Hero Section

ElementDescription
Avatar120px mobile / 196px desktop, with star badge overlay
Name + Title56px display for name, 24px medium for title
Stat Cards3-column grid: "Lead 0→1" (1 col) + "Over 6 years" (2 cols) with logos
HighlightsCheckmark items with yellow/green variants
AnimationsFadeIn + ScrollReveal with staggered delays
Live Preview
Raygar He

Raygar He

Senior Product Designer (Web & Mobile Apps). Bridging design, tech & business — end-to-end delivery with AI fluency

Lead 0 → 1

Product Design

Simplifying complex problems
Driving measurable impact
Growth, scaling, retention strategy

Over 6 years

experiences in multiple industries

From startups to enterprises
Experiences in banking, finance, gambling, e-commerce, and e-learning.
ANZ
Suncorp Bank
Suncorp
Jumbo
Oz Lotteries
Optimise
QUT
Adelaide
Savvy
organism

Project Card

Accepts a Project object with the following key properties:

PropTypeDescription
companystringCompany name (Inconsolata, uppercase, 14px)
titlestringProject title (h3, 24–28px medium)
descriptionstringOptional subtitle below title (15–16px, muted)
coverstringCover image with gradient background
ctaLabelstringButton text, defaults to “Learn more”
passwordstringIf set, shows lock icon next to CTA
Live Preview

Attendy

Attendance tracker

A solo vibe-coding project, helping hybrid workers track office attendance

Attendy
organism

Contact Page

ElementDescription
Heading36–56px “Get in touch” with subtitle
LayoutTwo-column flex row on desktop (form left, photo right); image hidden on mobile
Contact formCard with ContactFormSection (name, email, message fields)
PhotoCandid photo with rounded-card corners, object-cover, hidden on mobile (md:block)
LinksLinkedIn + Mentorship external links below form
Live Preview

Get in touch

Have a project in mind or just want to chat? I'd love to hear from you.

Your name
you@example.com
Your message
Send message →
Photo placeholder
LinkedInMentorship
organism

Section

PropertyValueDescription
max-widthmax-w-content (1152px)Content constraint within max-w-layout (1280px)
paddingpx-4 md:px-16Responsive horizontal padding
section titlefont-mono uppercase tracking-[0.8px]Mono label above sections
organism

CTA Section (ContactSection)

PropertyValueDescription
heading36px / 56pxMatches H1 scale (responsive)
backgroundRetroGridAnimated grid background pattern
buttonMagneticButton + Button (large)Magnetic hover effect on primary CTA
animationScrollRevealScroll-triggered entrance animation
visibilityHidden on /contactConditionally hidden on the contact page
organism

Quick Nav

Sticky sidebar navigation used on About, Work detail, Article detail, and Styleguide pages. Highlights the active section as the user scrolls.

PropertyValueDescription
positionsticky top-24Fixed in viewport while scrolling
active indicatorborder-l-2 border-coalLeft border highlights the active section
guide lineborder-l border-border-subtleSubtle vertical line connecting all items
heading11px / uppercase / tracking-widestSection group label
item text13pxNavigation link text size
left spacingml-8Gap between content and nav
scroll offsetscroll-margin-top: 100pxPrevents sticky header from covering section headings
visibilityhidden xl:blockOnly visible on extra-large screens
Preview

On this page

  • Section One
  • Section Two
  • Section Three
template

Home Page Layout

Layout Diagram
Header (sticky, glassmorphism)
Hero Section (FadeIn)
Stats Section (ScrollReveal)
Recent Work (WorkCard[])
CTA Section (ContactSection + RetroGrid)
Footer (dark card, link columns, gradient name)
template

Work Listing Layout

Layout Diagram
Header
Page Title + Description
Filters (All | Industries | Platforms)
WorkCard
WorkCard
WorkCard
Footer
template

Project Detail Layout

Project detail pages are rendered from Notion. Each page has properties (Title, Slug, Description, Excerpt, Company, Team, Timeline, Industries, Platforms, Focus, Status, Featured) and block content converted to MDX.

Layout Diagram
Header
Back Link + Meta (company, team, timeline)
Project Title
Cover Image
MDX Content (prose)
Footer