Portfolip Design System
Portfolip is a portfolio that is almost all type. The home page is a tall horizontal-scroll track where one sentence, I CRAFT BRAND STORIES., slides past in condensed Oswald capitals so large (40vw, 576px at 1440) that only four or five letters fit on screen at once. Everything else stays small and quiet: a lavender logo circle, a one-line role tagline, a two-line hamburger. The palette is black, white and one soft lavender, #F5E9FF. It feels like a billboard you walk past.
Signatures:
- Letters bigger than the screen. Section titles are set in viewport units, not pixels: the hero at 40vw, RECENT WORK at 30vw, LET'S TALK at 20vw. Words are always cropped by the screen edge while they move.
- Lavender everywhere small and round. #F5E9FF fills the logo circle, the rotating HIRE ME badge, the VIEW circles on cards, the tag pills, the menu overlay, the submit button and the footer. Partway through the hero scroll the whole band turns lavender.
- Two type voices. Oswald (condensed, uppercase) for every display line and the button label, Hubot Sans uppercase for UI, and Inter Tight in sentence case for paragraphs. The body is uppercase by default; only p resets it.
- Big soft cards. Work items are full-width image cards with a 30px radius, 770px tall, each carrying a 180px lavender circle button.
Colors
Surfaces
#FFFFFFPage and section background
#F5E9FFLavender (--lavender): footer, menu overlay, tag pills, logo circle, the lavender stretch of the hero track
#FFFFFFInputs are transparent on white
#090909The e-commerce cart drawer only
Ink
#000000Text on primary
#FFFFFFText on primary-hover
#000000All headings, UI text and the tag bullet (--black)
#000000Paragraphs
#525252Form input text and placeholder (--dim-grey)
#FFFFFFText on accent
#FFFFFFText on inverse-canvas
Action
#F5E9FFSubmit button, HIRE ME badge, card VIEW circles
#000000Button hover: it flips to black with white text
#000000Black fills: the 10px tag bullets and the hamburger lines
Lines & effects
#FFFFFF · 20%Dividers inside the dark cart drawer
Typography
Oswald · display-hero
The quick brown fox jumpsI CRAFT BRAND STORIES. 576px · 600 · 1.0
Oswald · headline-xl
The quick brown fox jumpsService list Product design / Visual design / Brand identity (.title-1, 10.7em). 149.8px · 600 · 1.0
Inter Tight · body-lg
The quick brown fox jumpsLead paragraph, From crafting user experiences to fine-tuning visual details. 23px · 500 · 1.3
Inter Tight · title-md
The quick brown fox jumpsNav tagline Web Developer, Web Designer, Portfolio 2023. 18px · 600 · 1.3
Oswald · label-button
The quick brown fox jumpsButton labels (.button). 16px · 600 · 1.2 · 1px
Hubot Sans · caption
The quick brown fox jumpsBody default. 14px · 400 · 1.43
Spacing & shape
| Purpose | Value |
|---|---|
| Container | max-width: 1400px, centred, inside sections padded 100px 5% (72px sides at 1440px) |
| Breakpoints | 991px, 767px and 479px (86 rules at 479px), plus min-width steps at 768px and 1440px |
Spacing scale
| Token | Value | Preview |
|---|---|---|
xs | 8px | |
sm | 15px | |
md | 25px | |
lg | 50px | |
xl | 80px |
Layout spacing
| Token | Value | Preview |
|---|---|---|
nav-y | 21px | |
gutter | 72px | |
section-compact | 75px | |
section | 100px | |
section-cta | 150px |
Border radius
Surfaces
How the surfaces stack, from the page background up. Hex codes and roles are in Colors above.
Motion
| Horizontal hero | The nowrap title translates sideways while the 400vh track scrolls (scrolling-in-view, scrubbed) |
| Headline reveal | Text rises y 110% → 0% with a skewY 7° → 0°, 500ms, inside an overflow-hidden line |
| Long reveal | y → 0%, 1100ms outQuint |
| Image zoom | scale 1.3 → 1, 500ms |
| Cursor follow | Circle buttons drift ±6px on x and y with the mouse, 500ms |
| Menu link hover | Hubot Sans font variation changes (width and weight axes), 500ms; the two word copies roll inside the 96px window |
| Hamburger | Lines rotate and move to y 0px, 200ms outSine |
| Button hover | transition: all .3s, background and text swap colours |
| Badge | HIRE ME ring rotates continuously |
Do’s and don’ts
- Set display titles in uppercase Oswald at 20–40vw and let them run off the screen.
- Keep text black #000000 on white #FFFFFF or lavender #F5E9FF, including paragraphs.
- Use #F5E9FF for every circle, pill, button and the footer band.
- Use Inter Tight in sentence case for paragraphs and Hubot Sans uppercase for small UI labels.
- Round work cards to 30px and keep buttons and inputs square.
- Flip buttons to #000000 with #FFFFFF text on hover in 300ms.
- Use grey text for paragraphs. #525252 is for form fields only.
- Wrap a display title to make it fit, or set it in pixels that stop it scaling.
- Add drop shadows, gradients or a second tint from the unused pastel variables.
- Put text in lavender, or put a lavender button on a lavender band.
- Round the buttons or inputs.
- Add a horizontal nav bar of links; the menu lives behind the hamburger.
Example prompt
Any page in the Portfolip style
More design systems like this
Portfolio design systems, the same colors first.
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 AccessHow to use the Portfolip design system
Pick a file to see what it’s for and where it goes.
What it is
The whole design system in one markdown file, written for AI: every color, type style, spacing value, component and motion rule, plus do's, don'ts and a ready prompt.
Best for
Claude, ChatGPT, Gemini, Cursor and v0, or any other AI tool that builds pages or code.
How to use it
- Put
DESIGN.mdin your project and mention it in your request, or save it as.cursor/rules/portfolip.mdc - For the rule file, start it with a front-matter block that sets
alwaysApply: true, so every chat uses it - Ask: “Build a pricing page using DESIGN.md.” Cursor follows the colors, fonts, spacing and rules
- Put
DESIGN.mdin the project root - Add one line to
CLAUDE.md: “Follow DESIGN.md for all UI.” - Ask for any page or component; Claude reads the file first
- Attach
DESIGN.mdto the chat (or paste it in) - Ask: “Build a landing page in this design system.”
- Keep the file in the chat or project knowledge, so follow-up pages stay on style
What it is
Every token as data, in the W3C Design Tokens format: colors with their roles, type styles, radius, spacing, and component tokens that point at them.
Best for
Figma (Tokens Studio), Style Dictionary and other design-token tools, and build scripts.
How to use it
- In Figma, open Tokens Studio, choose Import, and pick
tokens.json - Or point Style Dictionary’s
sourceat it to generate tokens for any platform - In code, import it like any JSON file
What it is
A Tailwind CSS v4 theme: every color, font, type style, radius and spacing value becomes a Tailwind utility, like bg-canvas, text-headline-lg or rounded-md.
Best for
Tailwind v4 projects, and AI builders that write Tailwind (v0, Lovable, Bolt).
How to use it
- Save
theme.cssnext to your main CSS file - Import it after Tailwind:
@import "tailwindcss"; @import "./theme.css"; - Use the classes:
bg-canvas text-ink rounded-md p-lg
What it is
The same tokens as plain CSS variables on :root. Component values point at the color variables, so changing one color updates everything that uses it.
Best for
Any website: plain CSS, Webflow custom code, Framer, WordPress.
How to use it
- Add it to your stylesheet, or in Webflow paste it into Site settings → Custom code inside a
<style>tag - Use the variables anywhere:
color: var(--color-ink) - Change a token once and every place that uses it follows






