MyGig
MyGig · Australia's AI-powered Workforce-as-a-Service

Design System
Style Guide

Single source of truth for colours, type, components, voice, and layout rules — for the marketing site, business platform, and worker app.

v1.0 · 2026 Sora / Manrope / Permanent Marker / JetBrains Mono Tokens → project/colors_and_type.css Brand accent → #6C60FF
Brand

Identity

The wordmark sets the system: a hand-painted "my" sitting next to a bold geometric "Gig". Human grit meets confident systems.

Wordmark — light background
MyGig wordmark

Use on light backgrounds. Clear space = cap-height of "G" on all sides. Never distort, recolour, or drop-shadow.

Wordmark — dark background
MyGig wordmark on dark

White version on dark backgrounds. Never place on busy photography without a solid ink block behind it.

Sub-brand lockups — Worker & Business
MyGigWorker
MyGigBusiness
MyGigWorker
MyGigBusiness

Construction: wordmark · 1.5px divider at 35% opacity · sub-label in Manrope 700, +0.22em tracking, uppercase. Label sits in brand-300 on dark, brand-700 on light. Divider height = wordmark cap-height; gap = 18px each side.

App icon / logo mark
MyGig mark 64px
MyGig mark 44px
MyGig mark 32px

Square mark for app icons, favicons, tight-space contexts. Never stack mark + wordmark together.

Tagline — hero & campaign use only
Work your Way

Always lowercase "your". Permanent Marker typeface. Hero shots and campaign layouts only — never in buttons, navigation, or product chrome.

Brand

Voice & Tone

Plain-spoken, confident, Aussie-flavoured. Competent operations manager who genuinely respects the worker on the floor. Not corporate HR-speak. Not Silicon-Valley breezy.

Tone by surface
SurfaceToneExample
Marketing — BusinessConfident, evidence-led"90%+ fill rate. Industry average is 65%."
Marketing — WorkerEmpowering, freedom-first"Work shifts that work for you."
Business platformOperational, calm"3 of 5 positions confirmed for Saturday."
Worker appFriendly, motivating"Great shift, Sarah! $156.80 earned."
NotificationsBrief, actionable"Shift starts in 2 hrs — tap to confirm."
Do / Don't
✓ Do
"Post a shift in under 60 seconds."
"We're the Employer of Record — we take the legal weight, you get the workers."
"Get paid the day after your shift."
"Top workers get first dibs on shifts."
"$31.19/hr" — never "$31" or "AUD 31.19"
✕ Don't
"Streamline your workforce procurement journey."
"We provide an EOR layer."
"Optimised payout cadences."
"Premium-tier operatives receive prioritised allocation."
"Authorized" — use "Authorised" (Aussie spelling)

Always sentence case for UI labels. Active voice, present tense. Concrete > clever. Numbers are the brand's superpower.

Key numbers
90%+
fill rate
2%
no-show rate
30+
data points per worker
1 day
workers paid after shift

Lead with these numbers. "90%+ fill rate. Industry average is 65%." — always show the comparison.

Visual Tokens

Colours

Three commitments: INK (off-black neutrals), BRAND (signature violet — pulled from mygig.com.au), PAPER (warm off-white). All tokens in project/colors_and_type.css.

INK — neutrals & brand black
ink-0#FAF8F4Paper bg
ink-50#F2EFE8Hover
ink-100#E5E1D7Dividers
ink-200#CFC9BADisabled
ink-300#A8A294Placeholder
ink-400#6F6A60Secondary
ink-500#3D3A33Body text
ink-700#1F1D19Near-black
ink-900#0E0D0BWordmark ★

Never use pure #000. The brand black is #0E0D0B — it has warmth.

BRAND — signature violet
brand-500 — THE ACCENT
#6C60FF
MyGig's signature violet · pulled from mygig.com.au
POST A SHIFT
brand-50#F5F4FEHover tint
brand-100#E8E6F9Badge bg
brand-200#DBD8FAUnderline
brand-300#B8B1F7On dark
brand-500#6C60FF★ Core CTA
brand-700#4B3FD9Pressed

Used confidently — not sparingly — because it IS the brand colour. White text reads cleanly on brand-500 and above. Focus outlines use brand-500.

Semantic — status & utility
success-50#E8F6EE
success-500#1F8A4C
warn-50#FFF3DC
warn-500#E89B14
danger-50#FCE7E4
danger-500#D03826
info-50#E4ECF7
info-500#2563C8

Deliberately less saturated than brand violet so they don't fight for attention. The brand colour carries weight; semantics are utility.

Industry tag tints — shift chips & worker initials only
Hospitality Events Warehousing Construction Retail Mining Agriculture

Pastels keep brand violet as the only saturated brand colour on screen. Never use tag tints as page chrome or section backgrounds.

Visual Tokens

Typography

Three voices mirror the wordmark composition. All four families are free, open-source (Google Fonts / SIL OFL), loaded from fonts.googleapis.com.

Display — Sora 700 / 800
DISPLAY XL 88px · 800 · −0.025em Hero headlines
Post a shift in
60 seconds.
H1 36px · 700 · −0.015em
Shifts filled. Workers paid.
H2 28px · 700 · −0.01em
90%+ fill rate, industry average 65%.
H3 22px · 600
We handle payroll, super, and compliance.

The "Gig" voice. Heavy, geometric, slightly humanist — a strong companion to the wordmark's "Gig". Use for all headlines, big numbers, hero copy.

Download Sora from Google Fonts ↗
Body — Manrope 400 / 500 / 600 / 700
BODY 16px · 400 · 1.5 line-height
Every worker is verified across 30+ data points, including skills, certifications, and work history. You see all of it before you confirm the shift.
BODY SM 14px · 500
Hospitality Award L2 · Casual loading 25% · Penalty rates apply after 6pm and on weekends.
CAPTION 12px · 500   /   EYEBROW 12px · 700 · uppercase · 0.12em
Reservoir St, Surry Hills NSW 2010
Why MyGig

The utility voice. Open and legible at small sizes. Use for paragraphs, UI labels, forms, data. Sentence case for all UI labels.

Download Manrope from Google Fonts ↗
Script — Permanent Marker · hero use only
Work your Way

The brushed "my" nod. Used SPARINGLY — pull-quotes, hero callouts, the tagline. Never in buttons, navigation, or product chrome.

Download Permanent Marker from Google Fonts ↗
Mono — JetBrains Mono · timestamps, IDs, payslips
MG-2026-04823 · 6:30am–2:00pm · $31.19/hr
Shift code · Hospitality Award L2 · Penalty rate: 125%

Anything monospaced — shift IDs, timestamps, payslip line items. Never for prose or marketing copy.

Download JetBrains Mono from Google Fonts ↗
Visual Tokens

Spacing

Everything snaps to a 4px grid. Tokens --sp-1 (4px) through --sp-24 (96px). Standard card padding is --sp-6 (24px).

4pt grid
4px
--sp-1
8px
--sp-2
12px
--sp-3
16px
--sp-4
20px
--sp-5
24px
--sp-6
32px
--sp-8
40px
--sp-10
48px
--sp-12
64px
--sp-16
80px
--sp-20
96px
--sp-24

Layout gutters: 48px marketing · 24px business platform · 16px worker app. Max widths: 1320px marketing · 1140px business · mobile-first 390px worker.

Visual Tokens

Shape & Elevation

Friendly radii — never zero. Pills used heavily for shift status and category tags. Shadows use warm ink tones, never blue.

Radii
--r-xs
4px
--r-sm
8px
--r-md
12px
default
--r-lg
18px
--r-xl
28px
sheets
--r-pill
999px
tags/pills

Default for cards, inputs, buttons is --r-md (12px). Pills are a brand signature — used heavily for shift status, category chips. Never zero radius.

Elevation — shadows
--sh-1
Cards at rest
--sh-2
Hover / active
--sh-3
Dropdowns
--sh-4
Modals

Inky and subtle. We don't tint shadows blue or purple. Shadows use rgba(14, 13, 11, …) — warm ink tone.

Stamp shadow — deliberate brand moment
--sh-stamp
--sh-stamp-brand

Hard offset drop — feels like a job site sign / parking permit. Used on the primary CTA button, hero badges, compliance callouts. Once per screen, max.

Border widths: --bw-hair: 1px dividers · --bw-rule: 1.5px inputs · --bw-heavy: 2px selected · --bw-stamp: 3px stamp motif only.

Components

Buttons

Primary CTA uses the stamp motif — brand violet fill, 3px ink border, 4px hard offset shadow. Press translates 2px to "push the button down".

All variants

Hover: lift −1px, shadow grows. Active/Press: translate +2px, shadow shrinks to 1px. Focus: 2px brand-500 outline, 2px offset. Disabled: opacity 0.45, no grey fill.

Focus state
2px brand-500 outline at 3px offset. Never default blue.
Components

Inputs

1.5px border at rest, 2px brand-violet border + 3px brand-tint glow on focus. Never use default blue focus rings.

Input states
Pay rate must be at or above the award minimum ($31.19/hr)
Components

Status Pills

Pills are a brand signature — border-radius: var(--r-pill). Used for shift state, cert status, worker tier.

All variants
Confirmed Open shift Cert expiring No-show ★ Top worker

"Open shift" uses brand-100 background with brand-700 dot — the violet signals availability without alarm. "Top worker" uses ink-900 on dark for prestige.

Components

Worker Chip

Avatar (photo or initials) + name + secondary info. Used in shift confirmations, the business pool view, and Amy's suggestions.

Variants
Sarah M.
Sarah M.
★ 4.9 · 127 shifts · Hospitality
JK
James K.
★ 4.8 · 89 shifts · Warehousing
RP
Ravi P.
★ 5.0 · 64 shifts · Construction

Use profile photo when available. Fallback is initials on an industry tag tint — randomly assigned but consistent per worker. 1.5px ink border on avatar circle.

Components

Shift Card

The atomic unit of the product. Every worker-facing screen revolves around this. Industry tag, position, location, time, estimated earnings, and one brand-violet CTA.

Standard shift card
Hospitality · Barista
Single O Surry Hills
📍 Reservoir St, Surry Hills NSW
$234 est. · $31.19/hr

Money in AUD, always with cents. Time in 12-hour local, lowercase am/pm. Industry tint chip — never used elsewhere on the same screen. One stamp CTA.

Components

Stamp Motif

A deliberate brand moment. Feels like a job-site sign / parking permit. Used on primary CTAs, hero badges, compliance callouts. Once per screen, max.

Stamp variants
90%+ FILL RATE
EOR NSW · WA · TAS · NT
VERIFIED WORKER

CSS: background: var(--brand-500); border: 3px solid var(--ink-900); box-shadow: 4px 4px 0 var(--ink-900); — never use on more than one element per screen.

Components

Toggles & Forms

Toggle on = brand violet. Checkbox checked = brand violet fill with ink border. Segmented control active = ink-900.

Toggles
Notifications on
Location tracking off
Checkboxes
RSA certified — verified
Food handling certificate
Forklift licence (not yet added)
Components

Amy — the AI assistant

Amy is MyGig's AI assistant. She lives in the Business platform and handles workforce work end-to-end. She proposes; the user disposes. Never auto-acts without explicit confirm.

Amy mark — 3 sizes
Amy
sm 18
Amy
md 24
Amy
lg 32

Radial-gradient orb — never a stock robot icon, never a human-style avatar. The spark glyph is Amy's signature — use as a bullet in front of AI-generated suggestions.

Amy message bubble
Amy
AMY · NOTICED SOMETHING

✦ Your Thursday lunch shift (Single O, 10am–3pm) has 0 workers confirmed with 30 hrs to go. I found 3 workers in your pool — want me to invite them?

Open with action. Show, don't tell — Amy generates an artifact, not a wall of text. One-click out — every response has a primary CTA and ghost "Edit". Always cite the basis.

Guidelines

Iconography

Lucide — open source, stroke-based, comprehensive workforce/calendar/payment coverage. 1.75–2px stroke weight. Sizes 16, 20, 24px.

Common icons
📅
Calendar
🕐
Clock
📍
MapPin
💳
Wallet
🛡
ShieldCheck
💼
Briefcase
Star
👥
Users
🔔
Bell
Check
ChevronRight
Grid

Colour: --ink-700 primary · --ink-400 secondary · --brand-700 active nav. Load via lucide-react or unpkg.com/lucide-static. Never rotate or skew icons for effect.

Guidelines

States & Motion

Default: 200ms ease-out-quint. Fast: 120ms for hover/press. Slow: 400ms for full-screen sheets. No bounce animations in business UI.

Interaction states
StateTreatment
HoverBackground steps one shade darker (e.g. ink-50ink-100). Stamp CTAs lift translate(-1px,-1px), shadow grows to 5px.
Press / activeStamp CTAs: translate(2px,2px), shadow shrinks to 1px — feels like pressing a real button. Other buttons: --brand-700 fill.
Focus (keyboard)outline: 2px solid var(--brand-500); outline-offset: 2px; — never default browser blue. Applies to all interactive elements.
Disabledopacity: 0.45. No grey fill swap — we don't pretend it's clickable.
LoadingPulsing shimmer on 1.2s loop, ink-50ink-100. No spinners except worker mobile pull-to-refresh.
Motion tokens
120ms
--dur-fast
Hover / press feedback. Immediate response.
200ms
--dur-base
Default for most transitions, panels, tooltips.
400ms
--dur-slow
Full-screen sheet transitions, modals.

Easing: cubic-bezier(0.22, 1, 0.36, 1) (ease-out-quint). Page transitions: slide up + fade for mobile bottom sheets; fade only for desktop modals.

Guidelines

Imagery

Real workers. Real worksites. Documentary-feeling. Natural light, warm tones. Eyes on the work, not the camera. Never cold blue tech lighting, never staged stock.

The hero stack
ConstructionConstruction
RetailRetail
HospitalityHospitality
MiningMining
PortraitPortrait
AgricultureAgriculture

Signature pattern: vertical portrait cards (4:5 ratio), one per industry, lined up under the headline. Corners --r-md (12px). Three cards rotated at +3°, −2°, straight for the hero stack. Always include one ink-900 card in the mix.

Imagery rules
RuleGuideline
SubjectWorkers mid-task. Eyes on the work. Aprons, hard hats, hi-vis gear, forklifts, espresso bars, retail floors.
LightNatural, warm. Golden hour, daylight through windows, kitchen tungsten. Never cold blue tech lighting.
MoodDocumentary, not staged. Saturation 0.85–1.0. Subtle grain ok. No filters.
DiversityRepresent Australia's casual workforce honestly. Age, gender, ethnicity — all real, all on the floor.
PlaceholderSolid ink-900 block at intended dimensions with a brand-300 corner label naming the planned shot. Never AI-generated fake worker photography.
Guidelines

Social Media Playbook

Two audiences, one brand. LinkedIn talks to businesses — credible, evidence-led. Instagram, TikTok and Facebook talk to workers — empowering, money-forward. Voice shifts by platform; the visual system never wavers.

01Audience & channel matrix
ChannelAudienceVoiceCadencePrimary CTA
LinkedIn
Business — HR, ops, GMs, foundersConfident, evidence-led, numbers, case studies3–5×/week"Book a demo" / "Read the case study"
Instagram
Worker — 18–34, casuals + students + backpackersFriendly, motivating, money + freedom forward4–6×/week + daily Stories"Download the app" / "Find shifts"
TikTok
Worker — 18–28, students, day-of-shiftCasual Aussie, hook-fast, real workers on camera3–4×/week"Link in bio" → app store
Facebook
Worker — 25–55, regional, side-incomePlain-spoken, trust signals, pay-on-time emphasis2–3×/week + ads"Get the app" / "Sign up free"
02LinkedIn — for business

The flagship business channel. Lead with proof: a number, a client logo, a Modern Award explainer. Posts read like an ops manager sharing a hard-won insight, not a billboard. Cover banner should always feature workers, never a graphic-only treatment.

in  LinkedIn
Workforce-as-a-Service

The casual workforce, fully managed.

Post a shift. We're the Employer of Record.

Page cover banner
1584 × 396 · 4 : 1 · ink-900 + photo cutout
MyGig
2,847 followers · 2h
Fill rate · this quarter
94%
across hospo, warehouse and events — vs industry avg of 65%.
Single-image post · stat hero
1200 × 1200 · 1 : 1 · brand-100 + ink-900 type
Sponsored

Hire vetted casuals.
Cover the legal.

Book a demo →
Single-image ad
1200 × 627 · 1.91 : 1 · ink-900 left + photo right
Profile picture
400 × 400 · square mark
Cover banner
1584 × 396 · 4 : 1
Feed post
1200 × 1200 · 1 : 1
Document post
1200 × 1500 · 4 : 5
Single-image ad
1200 × 627 · 1.91 : 1
Carousel card
1080 × 1080 · 1 : 1
03Instagram — for workers

The recruiting workhorse. Feed posts lean on photography from the hero library; Stories are utility (this week's open shifts, payday reminders, app updates); Reels show real workers talking about real shifts.

📷 Instagram
$31.19/HR

Pick your shift. Walk in. Get paid the next day.

@mygig · #workyourway
Feed post · photo + caption
1080 × 1080 · 1 : 1 · brand-500 pay pin top-left
mygig

Open shifts
today.

Swipe up →
Story · daily shift drop
1080 × 1920 · 9 : 16 · keep type in safe zone
mygig
REEL · WORKER STORY

"I picked up
4 shifts last
week."

— Lena, barista · Sydney
Reel cover · worker story
1080 × 1920 · 9 : 16 · talking-head reel cover
Profile grid · 9-tile mosaic
90%+
fill rate
MyGig
Work
your Way.

Plan the grid in 9-tile blocks. Pattern: 6 photos · 1 brand stat tile · 1 ink logo tile · 1 tagline tile. Never two non-photo tiles touching.

Feed post
1080 × 1080 · 1 : 1
Portrait post
1080 × 1350 · 4 : 5
Story / Reel cover
1080 × 1920 · 9 : 16
Profile picture
320 × 320 · square mark
Reel safe zone
top 250 / bottom 350 px clear
Carousel max
10 cards · same template
04TikTok — for workers

Vertical-first, hook-first. Three formats: worker stories (real casual on camera), day-of-shift POV, and "Did you know?" award/pay explainers. Big bold type, brand-500 hooks. No text in the bottom 350 px — TikTok UI covers it.

♪ TikTok
@mygig
I made $847
last week.
@mygig · POV: Friday payday hit different
#workyourway #casualjobs
In-feed hook · earnings
1080 × 1920 · 9 : 16 · centred hook, brand-300 hashtags
@mygig
Casual loading is
25%, not 15%.
Did you know? · Modern Award basics
#fairwork #workrights
In-feed hook · explainer
1080 × 1920 · 9 : 16 · brand-500 hook block
@mygig
"It changed my week."
— Lena · barista · Sydney
#workerstory
Worker story · talking head
1080 × 1920 · 9 : 16 · subject mid-screen, type bottom
05Facebook — for workers (regional reach)

Heavier reach in regional + 35–55 demographic. Same imagery library, slightly more functional copy. Lean on the "paid the day after" promise and visible work imagery.

f  Facebook
MyGig
Sponsored · ⊕
Pick the shifts you want, get paid the day after. Real shifts across hospo, retail, warehousing & construction — vetted businesses, no agency middleman. ✅
mygig.com.au
Download the MyGig Worker app
Get the app
Feed ad · 1.91 : 1
1200 × 628 · concise copy, real-photo, app CTA
Profile
170 × 170 · square mark
Cover
820 × 312 · banner
Feed image
1200 × 628 · 1.91 : 1
Story / Reel
1080 × 1920 · 9 : 16
06Voice — by platform
LinkedIn · Do "Our fill rate hit 94% in Q3 — up from 88% last quarter. Here's what changed." Numbers, specifics, what was learned.
LinkedIn · Don't "🚀 Excited to announce!! 🔥" — no manager hires from emoji-thirsty posts.
Instagram · Do "Sarah picked up 3 shifts this week. Paid Tuesday. ☕💪" Worker name, shift count, payday, light emoji ok.
Instagram · Don't Lifestyle stock photography unrelated to actual work — coffee cup flat-lays are not the brand.
TikTok · Do Open on the hook in the first 1.2 seconds — "I made $847 last week" — then show how. Subtitles always.
TikTok · Don't Use a 3-second logo intro. Algorithm punishes slow starts.
Facebook · Do Plain explainers and trust signals: "Authorised EOR in NSW, WA, TAS and NT. ABN 35 673 219 737. ⭐ 4.7 on the app stores."
Facebook · Don't Crypto-style hype copy or "limited time" pressure tactics. Wrong audience, wrong brand.
07Ads — universal rules
RuleWhy
One CTA per asset. Either "Book a demo" (business) or "Get the app" (worker) — never both.Mixed CTAs drop CTR by ~30%. Audience picks the channel; the channel picks the CTA.
The logo always appears. Wordmark for landscape, square mark for square/portrait. Bottom-left or bottom-right.Brand recall over a 6-second scroll. The wordmark is recognisable; the mark is small but unmistakable.
Use one (1) photo per asset. No collages, no overlapping crops.The MyGig look is documentary, not magazine. Stacked photo-cards belong on the marketing site, not in feed ads.
Type max 30% of the canvas. Let the photo carry the emotional weight.Feed platforms downrank text-heavy creative. Photo > headline > body > CTA, in that visual order.
Brand colour appears once. Pay pin, CTA button, or stat block — pick one. Never two purple objects in the same ad.The brand-500 is loud by design. Two hits read as a coupon, not a brand.
Always include the proof. ABN, EOR states, app rating — one trust line per ad.We're an EOR; trust is the product. Compliance footers are a feature, not a footnote.
For Developers

Tokens reference

All CSS custom properties defined in project/colors_and_type.css. Import once — everything inherits.

Import
/* In any HTML file */ <link rel="stylesheet" href="project/colors_and_type.css"> /* Or in CSS */ @import url("project/colors_and_type.css"); /* Then use any token */ .my-button { background: var(--brand-500); color: white; }

All tokens are on :root — available globally. No build step or preprocessor required.

Colour tokens
INK — neutrals
--ink-0#FAF8F4Paper — app background
--ink-50#F2EFE8Subtle surface, hover state
--ink-100#E5E1D7Divider, input border
--ink-200#CFC9BADisabled stroke
--ink-300#A8A294Placeholder text
--ink-400#6F6A60Secondary text
--ink-500#3D3A33Body text on paper
--ink-700#1F1D19Near-black
--ink-900#0E0D0BThe wordmark black — never #000
BRAND — signature violet
--brand-50#F5F4FEHover tint, AI panel background
--brand-100#E8E6F9Badge background, info chip
--brand-200#DBD8FASecondary fill, Amy border
--brand-300#B8B1F7Links on tint, on-dark labels
--brand-500#6C60FFTHE brand violet — primary CTA, selection, key moments
--brand-700#4B3FD9Pressed / active state
--brand-900#2D2580Brand text on light background
Semantic — status
--success-50#E8F6EESuccess pill background
--success-500#1F8A4CConfirmed, paid, on-time
--success-700#135E33Success text
--warn-50#FFF3DCWarning pill background
--warn-500#E89B14Expiring cert, unread shift
--danger-50#FCE7E4Error pill background
--danger-500#D03826No-show, cancellation, error
--danger-700#821F12Error text
--info-50#E4ECF7Info pill background
--info-500#2563C8Tooltips, compliance notes
Industry tag tints — for category chips only
--tag-hospo#FFD6A8Hospitality
--tag-events#F2C9FFEvents
--tag-warehouse#B8E2FFWarehousing / logistics
--tag-construction#FFDF6BConstruction
--tag-retail#F6B8C8Retail
--tag-mining#C3D3A6Mining
--tag-agriculture#C9E8C2Agriculture
Typography tokens
Font families
--font-display"Sora", system-ui, sans-serifHeadlines, numbers, hero copy — weight 700–800
--font-body"Manrope", system-ui, sans-serifUI, forms, paragraphs, data — weight 400–700
--font-script"Permanent Marker", cursivePull-quotes, campaign callouts only — sparingly
--font-mono"JetBrains Mono", monospaceTimestamps, IDs, payslip line items, shift codes
Size scale
--fs-display-xl88pxHero display — landing pages only
--fs-display-l64pxSection hero
--fs-display44pxDisplay heading
--fs-h136pxPage title
--fs-h228pxSection heading
--fs-h322pxSub-section / card heading
--fs-h418pxLabel heading
--fs-body16pxBody text (default)
--fs-body-sm14pxUI / data tables
--fs-caption12pxMetadata, timestamps
--fs-micro11pxLabels, badges, eyebrows
Utility classes (from colors_and_type.css)
.mg-display-xlSora 800 · 88px · tight tracking
.mg-display-lSora 800 · 64px · tight tracking
.mg-displaySora 700 · 44px · snug tracking
.mg-h1Sora 700 · 36px · snug tracking
.mg-h2Sora 700 · 28px · snug tracking
.mg-h3Sora 600 · 22px
.mg-bodyManrope 400 · 16px
.mg-body-smManrope 400 · 14px
.mg-captionManrope 500 · 12px
.mg-eyebrowManrope 700 · 12px · uppercase · wide tracking
.mg-monoJetBrains Mono 500 · 14px
.mg-scriptPermanent Marker · display size
.mg-cardWhite surface · ink-100 border · r-md · sh-1
.mg-card--raisedWhite surface · ink-100 border · r-lg · sh-3
.mg-stamp-shadowsh-stamp + bw-stamp border
Spacing, Radii, Shadow & Motion
Spacing — 4pt grid
--sp-14pxMicro gap
--sp-28pxIcon gap, tight inline
--sp-312pxButton padding vertical
--sp-416pxMobile gutter
--sp-624pxCard padding (default)
--sp-832pxSection sub-spacing
--sp-1248pxMarketing gutter
--sp-1664pxSection gap
--sp-2496pxHero padding
Radii
--r-xs4pxTags, badges
--r-sm8pxChips, small elements
--r-md12pxDefault — cards, inputs, buttons
--r-lg18pxLarge cards, modals
--r-xl28pxHero cards, mobile sheets
--r-pill999pxStatus pills, tags — brand signature
Borders
--bw-hair1pxDividers
--bw-rule1.5pxInput borders
--bw-heavy2pxSelected state
--bw-stamp3pxStamp motif CTA only
Elevation — shadows
--sh-1Cards at rest — very subtle
--sh-2Hover / active states
--sh-3Dropdowns, popovers
--sh-4Modals, drawers
--sh-stamp4px 4px 0 var(--ink-900) — hard inky offset. Brand motif on primary CTAs. Once per screen.
--sh-stamp-brand4px 4px 0 var(--brand-500) — violet variant for dark surfaces
--sh-insetInset shadow for pressed inputs
Motion
--dur-fast120msHover, press, toggle
--dur-base200msDefault transition
--dur-slow400msFull-screen sheets, modals
--ease-out-quintcubic-bezier(.22,1,.36,1)Default easing — feels fast, lands clean
--ease-in-outcubic-bezier(.65,0,.35,1)Drawer/modal in-and-out
Layout
--container-narrow720pxBlog, legal, narrow content
--container1140pxBusiness platform max-width
--container-wide1320pxMarketing site max-width
--gutter24pxDefault grid gutter
Full token dump — copy into your project
/* MyGig Design Tokens — colors_and_type.css */ :root { /* INK */ --ink-0: #FAF8F4; --ink-50: #F2EFE8; --ink-100: #E5E1D7; --ink-200: #CFC9BA; --ink-300: #A8A294; --ink-400: #6F6A60; --ink-500: #3D3A33; --ink-700: #1F1D19; --ink-900: #0E0D0B; /* BRAND */ --brand-50: #F5F4FE; --brand-100: #E8E6F9; --brand-200: #DBD8FA; --brand-300: #B8B1F7; --brand-500: #6C60FF; --brand-700: #4B3FD9; --brand-900: #2D2580; /* STATUS */ --success-50: #E8F6EE; --success-500: #1F8A4C; --success-700: #135E33; --warn-50: #FFF3DC; --warn-500: #E89B14; --warn-700: #8A5A00; --danger-50: #FCE7E4; --danger-500: #D03826; --danger-700: #821F12; --info-50: #E4ECF7; --info-500: #2563C8; --info-700: #173E80; /* TAGS */ --tag-hospo: #FFD6A8; --tag-events: #F2C9FF; --tag-warehouse: #B8E2FF; --tag-construction: #FFDF6B; --tag-retail: #F6B8C8; --tag-mining: #C3D3A6; --tag-agriculture: #C9E8C2; /* TYPE */ --font-display: "Sora", system-ui, sans-serif; --font-body: "Manrope", system-ui, sans-serif; --font-script: "Permanent Marker", cursive; --font-mono: "JetBrains Mono", monospace; /* SPACING */ --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px; --sp-5: 20px; --sp-6: 24px; --sp-8: 32px; --sp-10: 40px; --sp-12: 48px; --sp-16: 64px; --sp-20: 80px; --sp-24: 96px; /* RADII */ --r-xs: 4px; --r-sm: 8px; --r-md: 12px; --r-lg: 18px; --r-xl: 28px; --r-pill: 999px; /* BORDERS */ --bw-hair: 1px; --bw-rule: 1.5px; --bw-heavy: 2px; --bw-stamp: 3px; /* SHADOW */ --sh-stamp: 4px 4px 0 var(--ink-900); --sh-stamp-brand: 4px 4px 0 var(--brand-500); /* MOTION */ --ease-out-quint: cubic-bezier(.22,1,.36,1); --ease-in-out: cubic-bezier(.65,0,.35,1); --dur-fast: 120ms; --dur-base: 200ms; --dur-slow: 400ms; /* LAYOUT */ --container-narrow: 720px; --container: 1140px; --container-wide: 1320px; --gutter: 24px; }

Or just <link rel="stylesheet" href="project/colors_and_type.css"> — no need to copy manually.

UI Kits

Assembled screens

Full-fidelity HTML prototypes for each surface. Open in a browser — no build step required.

🎨
Design System — deck presentation
Full design system as a slide deck — brand story, colour, type, voice, components, screens. Click through with arrow keys.
Open deck →