Design file · gabekozielec.com
A portfolio that reads like a record.
The design system behind this site, written down so it can be reused: the principles, the colours and type, the layout, the motion, every component, and the rules the build enforces so none of it drifts.
The idea
[1]A recruiter spends under a minute. The site is built so that minute lands on facts: dates, employers, what was actually done. The playful parts sit behind interactions, so they reward the curious without slowing down the skimmer.
- Black and white does the work.No brand colour. Colour appears only as data: a small square per employer, a chart line. Nothing is coloured to decorate.
- Three voices, each with one job.Serif for names and headings. Sans for reading. Mono for dates, numbers and labels. Never two of them in one sentence.
- Every claim is traceable.Content lives in data files, checked by a script before it can ship. Stand-in photos say they are stand-ins.
- Motion has weight.Springs and inertia, never linear fades. Nothing appears from nothing; nothing moves without a reason.
- One desk, many windows.Tools open as glass windows over the page: a terminal, a game, the resume builder. The page underneath never reloads.
Colour
[2]Two complete palettes, switched by the visitor's system setting. Define every component against the role names, never against a hex value, so the light theme is a redefinition rather than a second stylesheet.
| Role | Dark |
|---|---|
| surface | #000000 |
| surface-raised | #0B0B0B |
| text-primary | #FFFFFF |
| text-secondary | #8F8F8F |
| border-subtle | #1C1C1C |
| border-strong | #5E5E5E |
| Role | Light |
|---|---|
| surface | #FFFFFF |
| surface-raised | #F5F5F5 |
| text-primary | #000000 |
| text-secondary | #555555 |
| border-subtle | #E2E2E2 |
| border-strong | #8A8A8A |
Glass
Windows and menus use a near-opaque panel so they stay readable over any page content: rgb(12 12 12 / 0.93) dark, rgb(255 255 255 / 0.94) light, a hairline edge at 10% of the text colour, and blur(64px) saturate(180%) behind. On a phone a window goes full-screen and drops the blur, because there is nothing behind it to see.
Data colour
Each employer or project gets one colour, used only as an 8px square beside its name and as its tile in the skills grid.
Type
[3]The live site uses the system's own faces, so nothing downloads for the serif or the sans. Only the mono is a web font, subset to Latin at about 16 KB.
- Display serifui-serif, New York · 24–80px · 400 · −0.02em
- Carbon fiber bodywork and FEA
- Section serif21px · 400 · 1.2
- Experience [1]
- Reading sanssystem-ui · 15px · 1.55
- Completed a summer internship on a structures design team, checking drawings against team checklists.
- Utility monoIBM Plex Mono · 11–13px · +0.12em caps
- May–Aug 2026 · Spring 2027
Rules: dates and figures always in mono with tabular numerals, so columns line up. Headings get balanced wrapping. Body lines stay under about 65 characters.
Layout
[4]One centred column with generous gutters. The home page is a sequence of short numbered sections, three across on a wide screen and stacked on a phone. The number beside each heading is its place in reading order, which also lets the terminal and the menu refer to sections by number.
Experience
[1]- BoeingMay–Aug 2026
- USC Formula Electric2023–2024
- UnconventionalsMay–Aug 2025
Contact & key docs
[3]Every row is a full-width link at least 44px tall, so a thumb never misses. Squares carry a second colour as an inset edge for two-colour brands.
Motion
[5]Four curves cover everything. They are steep at the start, so a response feels immediate, and slow to settle, so it feels physical. Choose the curve first, then the duration.
| Moment | Duration | Behaviour |
|---|---|---|
| Hover, colour change | 150 ms | Colour and border only. Never a weight change. |
| Button press | 150 ms | Scales to 0.96 and back. |
| Window open | 180–260 ms | From 0.98 scale and transparent. Never from zero. |
| Answer bubbles | 560 ms, 72 ms apart | Spring in one after another; lean toward the cursor. |
| Folder opening | 420–480 ms | Width springs; height uses the drawer curve so it never overshoots empty. |
| Window close | 7 frames × 75 ms | Stop-motion paper outline crumpling to nothing. |
Anything triggered from the keyboard is instant. Under reduced motion, movement stops and only fades remain.
Components
[6]Section header
Serif name on the left, bracketed mono number on the right, sharing a baseline. The only heading style on the home page.
Row link
Tiny mono index, label, a diagonal arrow pinned right. The whole row is the target. Used for contact and documents.
Skill tile
A grid of tiles, each naming a skill and where it was used, with that employer's square. A toggle dims tiles until they are "found"; switching it lights them a few random milliseconds apart.
Ring menu
Press and hold anywhere, or press space: a dial draws around the pointer, then glass icons fan out in a circle. It sits above every window. A "Menu" pill does the same for anyone who does not know the gesture.
Window
Glass panel, drag by the tab underneath, resize from any edge. A faint rounded bracket appears only when the pointer is on the corner. Closing crumples it like paper.
Folder
Plus buttons on projects add them to a folder beside the menu. Opened, it is one piece of card with a cut tab, listing the picks, removable one at a time, downloadable as a single PDF.
Project page
The photo fills the first screen with a scrim on the reading side. Date, one-line summary and section links share one top line. Any stand-in photo is labelled as such, with its licence.
Resume builder
One question per screen, centred. A rocket travels a thin line past the Moon, Mars, Jupiter and Saturn, each turning its real colour as it is passed. Answers are bubbles that wrap into rows. Focus is a soft light around the field rather than an outline. While it works, the menu's own icons turn in a ring. It ends on one sentence and two download buttons.
House rules
[7]These are enforced by a script in the build, so they cannot drift.
- No gradients, except as masks for fading an image
- No blurred drop shadows; use a border
- No purple or indigo
- No shimmer, sparkle or particle effects
- No emoji as icons
- No bold on hover or selection
- No copy that talks about the owner in the third person
- No page that fails the content check
Budgets
| What | Limit, gzipped |
|---|---|
| All scripts on the home page | 3 KB |
| Terminal, loaded on first use | 12 KB |
| Resume builder window | 12 KB |
| Interactive calculator | 15 KB |
| Mono web font | 25 KB |