Dark first
One calm dark surface, with panels slightly lighter than the page.
Felipe Parreiras
Design System
Tokens and components used across the site, documented with the real CSS. Everything on this page is live: hover, focus and click it. Click any colour, type style, icon or scale step for details and copy-ready code.
One calm dark surface, with panels slightly lighter than the page.
The green is the portfolio’s signature, used for actions, labels and focus.
Round shapes are buttons and links. Square shapes are tags.
Short, small movements that confirm an action.
Foundations
A restrained palette: three surfaces, three text tones, one line colour and a single accent. Click a swatch to copy the value and see its contrast.
Contrast: text colours pass WCAG AAA on the page background. The line colour is about 1.9:1, so it works for dividers but should never be the only thing that marks a control. Control borders are quiet on purpose and the label carries the meaning.
Foundations
Montserrat carries all content. Roboto is reserved for interface chrome such as the header. Click a style to see its specification.
Headings, body text, buttons and labels.
Header, navigation and the search overlay.
Foundations
One scale for gaps, padding and rhythm. Click a step to copy its variable.
Rhythm: sections are separated by --space-24 (96px) and a hairline divider; cards and panels sit --space-5 (20px) apart.
Foundations
Shape carries meaning: the pill is for anything you press, small squares are for labels, larger radii are for surfaces.
Foundations
Hairlines separate sections, quiet outlines mark controls, and a clear ring shows where the keyboard is.
1px solid var(--line)1px solid var(--line-strong)1px solid var(--accent)2px solid var(--focus), offset 3pxFoundations
Surfaces are flat by default. Depth appears on interaction and around devices. Hover the tiles to see it.
Foundations
Three durations, one easing. Movement is small and always optional: with “reduce motion” on, everything resolves instantly.
Cards and tiles rise 3–4px with a soft shadow. --dur-base (250ms).
Icons move 2–3px in their own direction. --dur-fast (200ms).
Content rises 18px while fading in as it enters. --dur-reveal (550ms).
Foundations
Content sits in a centred column up to 1154px, with generous gutters that tighten on small screens. Resize the window to watch the breakpoint change.
Current width: –
Foundations
Inline SVG on a 24px grid. Interface arrows are 2px strokes that inherit the text colour; glyphs inside cards are filled. Click an icon to copy its markup.
Components
Pills, 44px tall. Primary is filled with the accent, the default is a translucent outline, and Back is a quiet ghost. Use the selector to preview each state, or just hover and tab through them.
Components
Squared tags describe. Pills and selectable chips act. Try the filter chips: they toggle on click and with the keyboard.
Known inconsistency: the orange “New!” status on the home page is a bordered pill, while every other tag is squared. It is kept as is until the home page is revisited.
Components
Cards group short pieces of content on the lighter surface. They lift and gain an accent outline on hover.
A short sentence that explains the idea in plain words.
Impact
A card can also start with a small label instead of an icon.
Short supporting text under a clear title.
Numbers use the accent tint for a calm emphasis.
Keep titles to one or two lines.
Components
The site has almost no forms, so these are defined here first: they share the pill shape, the accent focus and the quiet border of the buttons.
Components
Short, light confirmations. A toast appears at the bottom of the screen for a couple of seconds; a tooltip names an icon on hover or focus.
Components
Compact ways to present facts, steps and benefits.