flowmance

Porto Design System

Porto website template previewPorto website template preview detail 2Porto website template preview detail 3

Porto is a dark, poster-style agency template that sells "multiple layouts". It feels like a studio's launch screen: an almost-black page, one enormous uppercase word, small uppercase corner labels and a thin fixed rail down the left edge. Colour appears only as small red marks: a starburst above the wordmark, a 1px red line that grows down the rail as you scroll, and red buttons and hovers on the inner pages. The demo index below the hero is a calm grid of flat #181818 cards with handwritten captions.

Four signatures make it recognisable:

  1. The left rail. A fixed 90px column, full height, with a 1px line border on its right and a hamburger made of three vertical white strokes in the middle. A 1px primary red line runs down the rail's right edge and grows with page scroll.
  2. The four-corner frame. A fixed top bar and a hero bottom bar put uppercase 15px labels in the corners: DIGITAL EXPERIENCE / DESIGN AGENCY top left, the PORTO logo top centre, INFO@PORTO.COM top right, MULTIPLE — LAYOUT and WEBFLOW TEMPLATE at the bottom, with a mouse-scroll icon between them.
  3. The giant wordmark with a red star. PORTO in Satoshi 700 at 300px, uppercase, under a 40px red starburst. A 20px uppercase subtitle at 50% white sits below it.
  4. Script captions on flat cards. Demo cards are flat surface-1 tiles with a screenshot and a centred caption (Home 1, Work 2) in Story Script, a slanted handwritten face. The whole card turns red (accent #FF384A) on hover.

Porto is a dark-only design.

Colors

Surfaces

canvas#111111

Page background, the left rail, the overlay menu

surface-1#181818

Demo cards (pres-content)

surface-2#222222

Form fields, the round go-top button, close buttons, the primary button's hover

field#222222

Form fields, the round go-top button, close buttons, the primary button's hover

Ink

on-primary#FFFFFF

Text on primary

on-secondary#111111

Text on secondary

on-accent#FFFFFF

Text on accent

ink#FFFFFF

Wordmark, section titles, footer titles, menu links

ink-soft#FFFFFF · 80%

Corner labels in the top bar and hero bottom bar

ink-card#FFFFFF · 70%

Card captions, field labels, social links (opacity 0.7), menu-link hover

ink-muted#FFFFFF · 60%

Paragraphs (base p) and placeholders; footer links use #FFFFFF91 (57%), the same step

ink-subtle#FFFFFF · 50%

The hero subtitle A COMPLETE MULTIPLE — LAYOUT…

on-media#FFFFFF

Action

primary#F64D52

Filled buttons, the scroll-progress line, field focus underline (the starburst is a red PNG of the same hue)

primary-hover#222222

Filled buttons go dark grey on hover

secondary#FFFFFF

The white button variant

accent#FF384A

Card hover fill, go-top hover, the 1px red underline under button-line

Lines & effects

line#FFFFFF · 20%

Rail border, menu divider, underline fields, mobile top-bar border

line-strong#FFFFFF · 40%

Blog dividers on inner pages

Typography

Satoshi · display-hero

The quick brown fox jumps

PORTO hero wordmark (title-1 vw x2). 300px · 700 · 1.1

Satoshi · headline-menu

The quick brown fox jumps

Overlay menu links (Home, About, Work, News, Contact). 80px · 700 · 1

Satoshi · title-md

The quick brown fox jumps

h3 on inner pages. 24px · 500 · 1.25

Satoshi · eyebrow

The quick brown fox jumps

Hero subtitle, menu divider. 20px · 500 · 1.1

Satoshi · body-lg

The quick brown fox jumps

Paragraphs, in ink-muted. 19px · 500 · 1.37

Satoshi · label

The quick brown fox jumps

Corner labels, the email link. 15px · 500 · 1.3

Spacing & shape

PurposeValue
Containermax 1200px, centred (3% side margins from 991px down)
Section rhythm120px top and bottom on desktop, 100px at ≤767px, 60px at ≤479px
Breakpoints991px, 767px and 479px

Spacing scale

TokenValuePreview
hair3px
xs10px
sm20px
md30px
lg40px
xl60px
2xl100px

Layout spacing

TokenValuePreview
card-gap10px
footer-gap40px
rail90px
section120px

Border radius

button3px
field4px
full9999px

Surfaces

How the surfaces stack, from the page background up. Hex codes and roles are in Colors above.

Level 1canvas
Level 2surface-1
Level 3surface-2

Motion

Scroll reveal (hero lines, section titles, labels)Start at opacity 0 (set inline), fade to 1 over 1000ms outQuart, moving to x 0, y 0 in the same 1000ms
Scroll progress lineThe rail's 1px red page-loader grows in height with page scroll
Menu openPanel moves in on x and fades (opacity 300ms ease); links settle from x 5–10% to 0%
Menu link underlineSize change 400ms outCubic
Button hovertransition: all .3s
Footer and social link hovertransition: all .2s
Newsletter arrowBackground position 50% → 90%, 300ms

Do’s and don’ts

  • Keep the fixed 90px left rail with its three-stroke hamburger and the red 1px progress line.
  • Frame every hero with uppercase label text in the four corners and one huge uppercase Satoshi 700 word in the middle.
  • Use #111111 for the page, #181818 for cards and #222222 for fields, with white text at 80 / 70 / 60 / 50%.
  • Use primary #F64D52 for at most one filled button per view, and pair a single red starburst or dot with the headline.
  • Keep cards and images square; use only 3px (buttons), 4px (fields) and full circles.
  • Set card captions in Story Script and everything else in Satoshi 500 or 700.
  • Add shadows, gradients, glass blur or rounded cards.
  • Use red for large backgrounds outside hover states.
  • Put the white-on-red button text below 17px bold: white on #F64D52 is only about 3.4:1, so keep label-button size and weight.
  • Use the pastel variables (#FFC569, #548BF4, #FFAAC3) for UI text or buttons; they belong to illustration tiles.
  • Use Story Script for headings, body or buttons.
  • Track out text other than label-caps; Satoshi runs at 0 letter spacing.

Example prompt

Any page in the Porto style

Prompt
Build your page in the Porto style. Page background #111111, Satoshi 500 at 0 letter spacing. Add a fixed 90px left rail (#111111, 1px #FFFFFF33 right border) with a three-vertical-line hamburger and a 1px #F64D52 line on its right edge that grows with scroll. Put uppercase 15px labels at 80% white in the top corners and a centred logo. Hero: 100vh, a 40px red starburst, then one uppercase word in Satoshi 700 at 300px (line height 1.1), then a 20px uppercase subtitle at 50% white. Sections have 120px vertical padding, a 1200px container and one-word 32px/500 titles. Cards are flat #181818 squares with 10px padding and a centred Story Script 19px caption at 70% white; on hover the card fills #FF384A. Paragraphs are 19px/500, line height 1.37, white at 60%. Buttons: #F64D52, white 17px/700 text, 3px radius, 15px 20px padding, hover #222222 in 300ms. Fields: #222222, 4px radius, 45px tall, red bottom border on focus. No shadows or gradients. Reveal text with a 1000ms outQuart fade.

More design systems like this

Agency 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