Pratik Mehta
[ Brand ] / One System / v1.0

The brand,
built like a product.

One System is the identity this site runs on: foundation, logo, type, color, layout, motion, and access, in one place. It is a working reference and a case study of the thinking behind it. Core token values render from the live CSS, so the numbers below are the real ones; the usage guidance and examples are maintained alongside them.

[ 01 ]

Foundation / the spine

Creative built like a system and accountable to what it does after it ships. The breadth is the proof of the idea, not a separate selling point.

tagline
One system, end to end.
reserve line
Built, not briefed.
accent signal
Signal orange / #FF5A1F / used once, to do one job
[ 02 ]

Voice / source: System Master

Direct, specific, natural, not over-polished, not obviously AI-written. Lead with the answer. No inflated claims, no buzzwords, no unsupported proof. No em or en dashes.

Do
  • Lead with the answer
  • Name real numbers, verified
  • Plain, confident sentences
  • Label concept work clearly
Don't
  • Inflate or overclaim
  • Reach for buzzwords
  • Over-polish into AI-speak
  • Imply concepts are client work
[ 04 ]

Type / three faces, one system

Each face has one job. Clash Display is the voice: display, h1, h2. Clash Grotesk is reading type: sub-headings and body. JetBrains Mono is the system layer: labels, data, and code. All three ship as one variable file per family, so every weight below is real rather than the nearest available one.

Tracking is optical, not decorative. It tightens as type gets bigger, sits at zero for reading, and opens up for uppercase mono. Mono labels and emphasis are always uppercase, because heavy tracking is an uppercase device and breaks apart on lowercase; sentence-case mono is the data tier at +5% instead.

tierfacewttrackwheresample
displayClash Display700-2%every page head, closing CTA, stat figuresOne system.
h1Clash Display600-1%the wordmark lockupPratik Mehta
h2Clash Display500-1%section heads, journal lead post, mobile navEngineer turned creative.
h3-h6Clash Grotesk5000%card titles, index rows, sub-headsSPORTIME Clubs
bodyClash Grotesk4000%copy / lh 1.65 / strong = 600The work stays coherent and the loop closes.
labelJetBrains Mono400+10%kickers, badges, section labels / always uppercaseBrand / Social / Performance
data / navJetBrains Mono400+5%rail nav, scoreboard values, the clock / sentence case12:53 PM
emphasisJetBrains Mono600+10%buttons / always uppercaseView work
Size / eleven steps

A tier says which face. A step says how big. Every size on the site is one of these, so a rule never writes a pixel value. The steps sit where the design already clustered rather than on a ratio, which is why they crowd at the small end: most of the system is labels and captions.

3xs / 10px
One system, end to end.
badges, rail keys
2xs / 11px
One system, end to end.
kickers, captions, chips
xs / 12px
One system, end to end.
rail nav, buttons
sm / 13.5px
One system, end to end.
card copy, secondary
md / 15px
One system, end to end.
UI body, list copy
base ★ / 16px
One system, end to end.
document base
lg / 17px
One system, end to end.
prose body
xl / 19px
One system, end to end.
h3, card titles, lead
2xl / 24px
One system, end to end.
sub-heads
3xl / 30px
One system, end to end.
large figures
4xl / 42px
One system, end to end.
the largest fixed figure
plus --fs-fluid-* for type that scales with the viewport. Container-query sizing stays per-component.
Measure / nine steps

A prose column's max-width, capped for reading comfort rather than let run to the edge of its box. Same sample at every step, so the wrap itself is the demonstration. lg and 2xl are the two anchors, .lead and .prose; everything else was picked around them.

3xs / 16ch
Creative built like a system and accountable to what it does after it ships. The breadth is the proof of the idea, not a separate selling point.
forced headline wrap: CTA
2xs / 22ch
Creative built like a system and accountable to what it does after it ships. The breadth is the proof of the idea, not a separate selling point.
forced headline wrap: page h1
xs / 26ch
Creative built like a system and accountable to what it does after it ships. The breadth is the proof of the idea, not a separate selling point.
short label / caption
sm / 30ch
Creative built like a system and accountable to what it does after it ships. The breadth is the proof of the idea, not a separate selling point.
small aside copy
md / 46ch
Creative built like a system and accountable to what it does after it ships. The breadth is the proof of the idea, not a separate selling point.
compact card / meta copy
lg / 56ch
Creative built like a system and accountable to what it does after it ships. The breadth is the proof of the idea, not a separate selling point.
lead paragraphs (.lead)
xl / 64ch
Creative built like a system and accountable to what it does after it ships. The breadth is the proof of the idea, not a separate selling point.
disclosures, decisions, excerpts
2xl / 68ch
Creative built like a system and accountable to what it does after it ships. The breadth is the proof of the idea, not a separate selling point.
long-form prose (.prose)
3xl / 74ch
Creative built like a system and accountable to what it does after it ships. The breadth is the proof of the idea, not a separate selling point.
full-width article column
[ 05 ]

Color / warm monochrome, one accent

A warm neutral ramp from paper to ink, a single signal-orange accent, and a restrained state set. Both light and dark are first-class.

Neutral / warm ramp
0
FBFAF6
50
F4F2EB
100
EAE7DE
200
DBD8CD
300
C6C2B5
400
A6A294
500
847F72
550
6E6A5D
600
615D52
700
46433B
800
2B2924
900
171713
950
0B0B0A
Accent / signal orange ★ 500
50
FFEDE6
100
FFD6C6
200
FFB89F
300
FF8F66
400
FF7038
500★
FF5A1F
600
E8480F
700
C13A0A
800
8F2B08
900
5C1C06
Surfaces / light & dark
light / paper
One system.
Body in graphite on paper. The accent does one job.
brand / social / perf
dark / ink
One system.
Same system inverted. Orange stays the single accent.
brand / social / perf
[ 06 ]

Color contrast / checked against WCAG AA

The single orange signal can't sit on top of itself. Three rules carry most of it.

Orange text
On light, orange text is accent-700 (#C13A0A), never 500. On dark, accent-400.
On orange fills
Text and the logo on an orange surface are ink, never white. The mark goes monochrome so the node doesn't blend.
State colors
Two, because two is all the site renders: a pass mark and a "don't" mark. Info is neutral, not a color.
PairRatioVerdict
Ink on paper17.6:1AAA
Secondary #615D52 on paper5.9:1AA
Accent-700 text on paper4.8:1AA
Ink on orange fill6.3:1AA
Paper on ink (dark)17.6:1AAA
[ 07 ]

Layout / a 4px base

Everything measures from a 4px unit. There is no fixed column grid and no max-width: the page is a rail plus padding, and content takes whatever is left. Radius base is 8px; the mono system layer uses sharp 0 corners.

xs / 8px
sm / 12px
md / 16px
lg / 24px
xl / 32px
2xl / 48px
3xl / 64px
4xl / 96px
Breakpoints / four, each with one job
1100px
a two-up row stacks
1000px
a content + sticky-aside layout collapses
900px
the rail becomes the mobile bar
560px
the last grids go single-column
Shell inset / what the viewport loses before content
above 900px
rail 264 + padding 64 x 2 = 392px
561 to 900px
rail 0 + padding 32 x 2 = 64px
560px and below
rail 0 + padding 24 x 2 = 48px
a full-width image resolves to (max-width: 560px) calc((100vw - 48px) / 1), (max-width: 900px) calc((100vw - 64px) / 1), calc((100vw - 392px) / 1)
Radius
none / 0
sm / 4
md ★ / 8
lg / 12
xl / 16
full / pill
[ 08 ]

Motion / functional, not decorative

Quick and confident. Short travel, no bounce. The names say what a motion means, not how fast it is, so a rule picks by intent: a color swap is quick wherever it sits, a slide is move whatever the distance. Reels inherit this: cuts over fades, snap transitions.

Duration / six steps

Every transition and animation on the site composes one of these. quick is the anchor and carries most of it. Hover a row to play it at its real duration.

instant / 120ms
the echo under a press
quick ★ / 200ms
color, border, background, opacity
enter / 280ms
above-the-fold arrival (.rev-load)
move / 320ms
drawer, button lift, theme flip
settle / 500ms
below-the-fold arrival (.rev), media scale
ambient / 2400ms
the status dot, looping forever
Easing / three curves

Same distance, same duration, different curve. Each one has a job: an entrance and a dismissal should not feel alike, and a move that leaves and arrives wants a curve that eases at both ends.

standard ★
entrances and most moves
exit
dismissals: drawer close, consent
in-out
leaves AND arrives: theme, page transitions
standard cubic-bezier(0.2, 0, 0, 1) / exit cubic-bezier(0.4, 0, 1, 1) / in-out cubic-bezier(0.4, 0, 0.2, 1)
Distance and scale

A transform's magnitude is a token too, or three hover scales drift apart the way they had. These values are small on purpose, so each one runs on the size of element it actually moves: the dashed outline is where the shape rests, and hovering separates it by exactly one token. The two scales are a pair rather than a ladder, which is why the card and the control are shown at their own sizes.

travel-xs / 4px
the button lift
travel-sm / 12px
reveal slide, row hover nudge
scale-hover / 1.03
media hover: cards, tiles, stills
scale-control / 1.06
small controls: the play button
plus --stagger-step (60ms), the per-item delay in a staggered list reveal.
Reduced motion

Here "reduce" means remove. Killing the tween alone still lets a hover end-state apply, so a card would jump 3% larger in a single frame, and a snap is still movement. Under prefers-reduced-motion every transition and animation is off, nothing translates or scales, page transitions are canceled, and smooth scrolling reverts to instant. Hover stays legible on color and border alone. Video is gated in JavaScript, since CSS cannot stop playback. The swatches in this section follow the same rule: they hold still, and the printed values carry it.

[ 09 ]

Formats / the brand, in format

How the system shows up as social posts, reel frames, and a lower-third. Placeholder content at true export dimensions, rendered live so the mockups re-theme with the page.

Social / 1080 × 1080
// placeholder label
One system,
end to end.
mehtapratik.com
feed / statement
// placeholder label
Placeholder
headline goes
right here.
@pratikm96
feed / inverted
metric / placeholder
00.0
metric label goes here
mehtapratik.com
feed / data
Reel / story / 1080 × 1920
reel / intro frame
Built,
not
briefed.
placeholder
caption line
reel / intro
end card
Let's
build.
mehtapratik.com
@pratikm96
reel / end card / accent surface → mono mark
Lower-third / 1920 × 1080
▢ video placeholder
Pratik Mehta
International Marketing Director
caption / over video
Based in New York
International Marketing Director / Nonprofit

Let's build it as one system.