flowmance

Portfolify Design System

Portfolify website template previewPortfolify website template preview detail 2Portfolify website template preview detail 3

Portfolify is a one-person portfolio that looks like a printed CV set in a wide display face. Everything large is uppercase Fleuron, small reading text is Inter, and the page is held together by 2px solid black rules: under the nav, between nav cells, beside timeline entries and blog posts, between project panels and above the footer. It is black and white; the colour comes from a flat illustrated portrait and bright product photos in the work section.

Four signatures make it recognisable:

  1. The ruled nav. A white bar 130px tall split into two cells by a 2px vertical rule: the PORTFOLYO wordmark (260px wide) on the left, four uppercase links on the right, with a 2px rule along the bottom.
  2. The scroll-lit statement. Under the 109px HEY, I'M LIAM PARK, a long sentence is set one line per heading at 42px. Lines sit at 20% opacity and turn solid as they scroll into view, while the portrait stays sticky on the right.
  3. The black work stage. When MY WORK arrives, the page turns black and the nav inverts. Projects then slide sideways in a sticky full-screen stage, each panel 44% wide and separated by a 2px vertical rule.
  4. Outline pills. Categories are transparent pills with a 2px border and uppercase 14px text (CODE, UI, UX, DEVELOPMENT). There are no filled buttons.

The design is light, with one black section.

Colors

Surfaces

canvas#FFFFFF

Page background, nav, footer

surface-1#F1F1F7 · 55%

The testimonial slider panel

inverse-canvas#000000

The work section and the inverted nav over it

Ink

on-primary#111314

Text on primary

ink#111314

All headings, nav links, rules, tags

ink-muted#111314

Body text and lists are full ink too

ink-subtle#111314 · 47%

The timeline meta line (TESLA AT 2014-2017) only

inverse-ink#FFFFFF

Text on inverse-canvas

on-media#FFFFFF

Text over project photos (rare)

Action

primary#FFFFFF

There is no filled button; actions are underlined text and outline pills

Lines & effects

line#111314 · 20%

The 2px timeline track; a short black segment moves along it

line-strong#111314

Every 2px rule: nav, dividers, blog left borders, footer top, underlines

Typography

Fleuron · display-hero · shown in Syncopate (fallback)

The quick brown fox jumps

HEY, I'M LIAM PARK. 109px · 400 · 1.0 · 3px

Fleuron · headline-lg · shown in Syncopate (fallback)

The quick brown fox jumps

The intro statement, one line per heading. 42px · 600 · 1.2

Fleuron · title-lg · shown in Syncopate (fallback)

The quick brown fox jumps

Blog titles. 30px · 400 · 1.2

Fleuron · label-nav · shown in Syncopate (fallback)

The quick brown fox jumps

Nav links (two stacked copies for the roll). 21px · 700 · 1.52 · 1px

Fleuron · caption · shown in Syncopate (fallback)

The quick brown fox jumps

Dates, copyright. 14px · 500 · 1.2

Fleuron · body-sm · shown in Syncopate (fallback)

The quick brown fox jumps

Body default (uppercase). 14px · 400 · 1.43

Spacing & shape

PurposeValue
Containermax 1200px for blog and testimonials
Section rhythm100px top and bottom; 60px at ≤991px
Breakpoints991px, 767px and 479px, plus two min-width: 1440px rules

Spacing scale

TokenValuePreview
hair2px
xs16px
sm25px
md30px
lg50px
xl60px
2xl100px

Layout spacing

TokenValuePreview
gutter72px
section100px
nav-height130px
sticky-offset200px

Border radius

card15px
tag30px
pill40px
full9999px

Motion

Statement light-upEach intro line starts at opacity 0.2 and goes to 1 as it scrolls into view
Fade-up on scrolly 50px → 0, opacity 0 → 1, 600ms outExpo
Text roll (nav, project titles, links)Two stacked copies in an overflow-hidden 20–30px window; the pair moves to y 0%/−100%, 300ms ease
Underline grow2px line width or height 0 → full, 300–500ms ease
Work section switchBackground-colour and filter (invert) actions, 300ms ease: the page turns black and the nav inverts
Work stageSticky 100vh stage in a 600vh track; panels move horizontally with scroll
Timeline markerThe short black segment moves down its 2px track with scroll
Tag and social hoverOpacity → 0.76 (tags) and 0.3 (social), 300ms

Do’s and don’ts

  • Set every heading and label in uppercase Fleuron; keep paragraphs and lists in Inter 16px weight 500.
  • Draw structure with 2px solid #111314 rules: nav cells, section-label underlines, blog left borders, panel dividers.
  • Use outline pills (2px border, 30px radius, 7px 19px 4px padding) for categories.
  • Make actions underlined text links with a 2px line and a text roll on hover.
  • Switch to #000000 with white type for the work showcase, and invert the nav with it.
  • Keep images square-cornered and bright against the black stage.
  • Add filled buttons, shadows or a brand colour.
  • Use #111314 at 47% (ink-subtle) for anything but the 13px uppercase timeline meta; it is too light for reading text.
  • Round images or the nav; only pills (30–40px) and the slider (15px) have corners.
  • Mix sentence case into Fleuron text.
  • Use 1px rules for main structure; 2px is the system (1px only inside the social grid).
  • Set the intro statement as one paragraph; it must be one heading per line.

Example prompt

Any page in the Portfolify style

Prompt
Build your page in the Portfolify style. White #FFFFFF page, ink #111314. Headings and labels in uppercase Fleuron: hero 109px weight 400 with 3px tracking, statements 42px weight 600 line height 1.2, section labels 30px weight 600 with 1px tracking and a 2px underline as wide as the word. Body text in Inter 16px weight 500. Sticky white nav 130px tall split by a 2px vertical rule: logo cell left, uppercase 21px links right, a 2px rule along the bottom; links roll their text on hover in 300ms. Structure with 2px solid #111314 rules, no shadows, no filled buttons. Categories are outline pills (2px border, 30px radius, 14px 700 uppercase). Actions are uppercase 18px text links with a 2px line under them. Showcase work on a #000000 section with white type, panels 44% wide divided by 2px rules, photos square-cornered. Sections have 100px vertical padding and 5% side padding.

More design systems like this

Portfolio design systems, the same colors first.

Browse all 398

Bring any of them to your AI tool

All Access unlocks all 398 design systems, ready for Claude, ChatGPT, Gemini, Cursor, v0 and Lovable, plus 400+ templates on all 5 platforms.

Get All AccessUpgrade to All Access