From 1880a5b0db29fae7c304f39ccc526e67e1f76ae8 Mon Sep 17 00:00:00 2001 From: Martin Dvorak Date: Wed, 30 Sep 2026 09:59:00 +0000 Subject: [PATCH] redraw the desk as cartoon skeuomorphism: CSS-only materials (no textures), light cream desk, per-item hues, cork board, receipt, scoreboard --- README.md | 50 +- agents.md | 46 +- package.json | 2 +- public/textures/carbon.jpg | Bin 15587 -> 0 bytes public/textures/desk.jpg | Bin 21173 -> 0 bytes public/textures/metal.jpg | Bin 24385 -> 0 bytes public/textures/paper.jpg | Bin 11068 -> 0 bytes public/textures/plastic.jpg | Bin 8584 -> 0 bytes src/app/components/WebSite.tsx | 225 +++-- src/app/components/web-ui.tsx | 100 +- src/app/credits/page.tsx | 112 +-- src/app/globals.css | 27 +- src/app/layout.tsx | 14 +- src/app/web.css | 1614 +++++++++++++++++--------------- 14 files changed, 1183 insertions(+), 1007 deletions(-) delete mode 100644 public/textures/carbon.jpg delete mode 100644 public/textures/desk.jpg delete mode 100644 public/textures/metal.jpg delete mode 100644 public/textures/paper.jpg delete mode 100644 public/textures/plastic.jpg diff --git a/README.md b/README.md index 6c42e91..c3109e5 100644 --- a/README.md +++ b/README.md @@ -2,16 +2,17 @@ > The source code for my personal website, **[dvorakmortonxd.dev](https://dvorakmortonxd.dev)**. -It's a **skeuomorphic personal site**: a near-black desk with anodised hardware, machined -aluminium, clean printed labels and a single orange accent, with the whole KDE desktop -simulation kept behind a physical power switch. Two modes, one content set: +It's a **cartoon-skeuomorphic personal site**: a warm cream desk with chunky, brightly coloured +hardware resting on it, drawn entirely in CSS — no textures, no images — with the whole KDE +desktop simulation kept behind a physical power switch. Two modes, one content set: -- **Web** (default) — the desk. A monitor carries the headline with a mechanical keyboard in - front of it and a small rack beside it; services are 1U rack units with health LEDs, the 18 - coding projects are labelled drives in a drawer, the machines are barcoded asset labels on a - pegboard, the contribution heatmap is printed on a label-printer sheet, friends are business - cards, the gym log is a clipboard and the socials are a patch panel. Textures are CC0 — see - [`/credits`](https://dvorakmortonxd.dev/credits). +- **Web** (default) — the desk. A monitor carries the headline with a candy-keycap keyboard in + front of it and a mini rack beside it; services are 1U rack units with coloured strips and + health LEDs, the 18 coding projects are labelled drives in a drawer, the machines are cards + pinned to a cork board, the contribution heatmap is printed on a receipt, friends are business + cards, the gym numbers are a scoreboard and the socials are a patch panel with coloured ports. + [`/credits`](https://dvorakmortonxd.dev/credits) lists the type and nothing else — there are no + asset licences because there are no assets. - **Desktop mode** — the KDE Plasma / Windows-style **desktop simulation**: draggable snap-to-grid icons, resizable/floating windows, a Start menu, taskbar, live clock and a working in-browser terminal (Alacritty). Reached from the power switch and hidden on phones. @@ -24,10 +25,12 @@ heatmap**, gym SBD and links to friends' sites. - **Web theme is the landing view** — the site always opens on the desk; the theme is deliberately not persisted, so a reload never drops you into the desktop. -- **Skeuomorphic materials, modern finish** — near-black desk, dark anodised faceplates, - machined aluminium plaques, matte printed labels and mint/orange LEDs, all CSS over five CC0 - textures. Every section is a physical object with a contact shadow; nothing is pure white on - black or grey on black. +- **CSS-only skeuomorphism** — every surface is a flat gradient with a thick bottom edge, a soft + cast shadow and `color-mix()` tints: slate chassis, cream plastic, paper, cork, black glass, + LEDs, screws, pushpins. The web theme ships no images at all. +- **Not afraid of colour** — a hue per item (orange / teal / blue / lilac / mint / coral / + yellow) cycles through every list, so the desk reads as separate pieces of hardware instead of + one grey wall. - **Desktop mode (desktop-only)** — a physical power switch in the top rail (and in the footer) flips to the KDE-style desktop for the session. Phones never get it: the switch is hidden, so the old iOS-style phone home screen is gone. @@ -67,15 +70,16 @@ heatmap**, gym SBD and links to friends' sites. - **Framework:** Next.js 16 (App Router, Turbopack) - **Language:** TypeScript, React 19 (client components everywhere interactivity lives) - **Styling:** `src/app/globals.css` holds the palette tokens, base styles, the Tailwind v4 - `@theme`/`@utility` classes and the scroll reveals. `src/app/web.css` is the material system - (near-black desk, anodised metal, machined aluminium, printed labels, black glass, LEDs, rack - rails, rocker switch) and the object layouts. `page.css` keeps the shared component styles the - desktop apps still use, and `skeuo.css` is the KDE desktop. -- **Fonts:** IBM Plex Sans/Mono for screens, machine labels and headings; Newsreader for things - printed on paper; via `next/font/google`. The desktop keeps its system sans stack. -- **Textures:** five CC0 materials from ambientCG — `desk` (near-black wood), `metal`, `paper`, - `carbon`, `plastic` — downscaled to 512 px in `public/textures`. Attribution is on `/credits`. -- **Version:** `3.3.0` (see `package.json`) + `@theme`/`@utility` classes and the scroll reveals. `src/app/web.css` is the whole desk: the + materials (slate chassis, cream plastic, paper, cork, black glass), the details (screws, LEDs, + pushpins, rack rails, barcode, torn receipt edge) and every object layout, all CSS with + `color-mix()` for tints and shades. `page.css` keeps the shared component styles the desktop + apps still use, and `skeuo.css` is the KDE desktop. +- **Fonts:** Nunito for hardware labels and headings, Newsreader for anything printed on paper, + IBM Plex Sans/Mono for body copy and terminal text — all via `next/font/google`. The desktop + keeps its system sans stack. +- **Assets:** the web theme ships **no images**. The desktop keeps its own wallpaper and icons. +- **Version:** `4.0.0` (see `package.json`) ## 🚀 Running Locally @@ -182,7 +186,7 @@ src/app/ page.css → shared component styles still used by the desktop apps skeuo.css → KDE desktop styles data.ts → socials, codingProjects, techProjects, friends, wallpapers - credits/page.tsx → credit page for the textures and fonts + credits/page.tsx → credit page (type only — the desk ships no assets) revival-inc/page.tsx → embeds the bundled game at /public/revival-inc/index.html api/ heatmap/route.ts → contribution heatmap proxy diff --git a/agents.md b/agents.md index f14726f..c407c86 100644 --- a/agents.md +++ b/agents.md @@ -34,20 +34,24 @@ When in doubt, prefer updating. A stale README **or** agents.md is treated as a ## What this project is Personal portfolio site for **dvorakmortonxd.dev**. The default view is a -**skeuomorphic desk**: a near-black surface with a monitor, mechanical keyboard, -rack, drive drawer, pegboard of asset labels, label-printer report, business -cards, clipboard and patch panel resting on it. A physical power switch flips to -a **KDE Plasma desktop simulation**. Phones only ever get the desk. +**cartoon-skeuomorphic desk**: a warm cream surface with a monitor, candy-keycap +keyboard, mini rack, drive drawer, cork board of pinned cards, printed receipt, +business cards, scoreboard and patch panel resting on it — all drawn in CSS, with +no image assets. A physical power switch flips to a **KDE Plasma desktop +simulation**. Phones only ever get the desk. - Framework: **Next.js 16** (App Router, Turbopack), **React 19**, TypeScript. -- Styling: **Tailwind v4** for layout plus **`web.css`**, the material system - (near-black desk, anodised metal, machined aluminium, printed labels, black - glass, LEDs, rack rails, rocker switch) over five CC0 textures in - `public/textures` (credited on `/credits`). `globals.css` holds the tokens, - base styles and the reveals; `skeuo.css` and `page.css` are the desktop and - the shared desktop-app styles. +- Styling: **Tailwind v4** for layout plus **`web.css`**, which is the whole desk + — materials (slate chassis, cream plastic, paper, cork, black glass), details + (screws, LEDs, pushpins, rails, barcode, torn receipt edge) and object layouts, + all CSS with `color-mix()` tints. `globals.css` holds the tokens, base styles + and the reveals; `skeuo.css` and `page.css` are the desktop and the shared + desktop-app styles. **The web theme ships no images.** +- Hue system: list items take a `--tone` custom property from a shared palette + (orange, teal, blue, lilac, mint, coral, yellow), set inline, so objects are + colourful without per-item CSS. - Path alias: `@/*` → `src/*`. -- Version: `3.3.0` (see `package.json`). +- Version: `4.0.0` (see `package.json`). ### Scripts ```bash @@ -85,7 +89,7 @@ src/app/ page.css → shared component styles used by the desktop apps skeuo.css → KDE Plasma desktop styles data.ts → socials, codingProjects, techProjects, friends, wallpapers - credits/page.tsx → credits for the CC0 textures and fonts + credits/page.tsx → credits (type only — the desk ships no assets) revival-inc/page.tsx → fullscreen iframe embedding /public/revival-inc/index.html api/ heatmap/route.ts → proxy for git.dvorakmortonxd.dev contribution heatmap @@ -124,14 +128,14 @@ scripts/ desktop is up so its scroll position survives; the desktop mounts on demand (phones can never reach `skeuo`). -Modes: `web` = the skeuomorphic desk (default/landing), `skeuo` = KDE Plasma -desktop. +Modes: `web` = the cartoon-skeuomorphic desk (default/landing), `skeuo` = KDE +Plasma desktop. -The desk uses **five CC0 textures** from ambientCG (`public/textures`: near-black -desk wood, metal, paper, carbon, plastic), downscaled to 512 px and credited on -`/credits`. The social SVGs are used as monochrome CSS masks (`.social-mask`); +The desk ships **no image assets** — every surface is CSS. The only external +visual files are the social SVGs, used as monochrome CSS masks (`.social-mask`); `linkedin.svg` is a filled badge that masks to a plain square, so `web-ui.tsx` -renders an inline mark for it instead. The desktop still uses the image assets. +renders an inline mark for it instead. The desktop still uses its own wallpaper +and icons. --- @@ -242,6 +246,12 @@ not free placement. Don't confuse the two. - Angles and offsets that hover states need to override live in CSS custom properties (e.g. `--tilt` on `.w-drive`), never in inline `style` transforms — an inline transform wins over `:hover`. +- **The web desk is CSS-only by design.** No textures, no images, no `url()` + beyond the social masks. Build a surface from a flat gradient plus a thick + bottom edge (`0 5px 0 `) and a soft cast shadow, and shade with + `color-mix(in srgb, var(--tone) N%, …)` instead of adding new hues to the + stylesheet. New list items take a `--tone` from the shared `TONES` palette in + `WebSite.tsx` / `web-ui.tsx` rather than hard-coding a colour. - The desk reveals blocks with `.reveal` (see `Reveal` in `web-ui.tsx`): hidden by default, `.is-in` shows. On load the first screenful cascades top-to-bottom (90ms per block, in DOM order); the rest reveal when they scroll in. **Wrap diff --git a/package.json b/package.json index 17e136d..bba8849 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dvorakmortonxd", - "version": "3.3.0", + "version": "4.0.0", "private": true, "scripts": { "dev": "node scripts/dev-server.mjs", diff --git a/public/textures/carbon.jpg b/public/textures/carbon.jpg deleted file mode 100644 index 772ef5ac9bc71e9da630d38bbb6a08ad598d25e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15587 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 diff --git a/public/textures/desk.jpg b/public/textures/desk.jpg deleted file mode 100644 index 3ab201defb6ba8de61e6fee09e43ca3aa01d52ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21173 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 sSlu(DP(L(U@lIMuh1^p@scA<^-DJtJ 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%0A5fJOc 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 diff --git a/src/app/components/WebSite.tsx b/src/app/components/WebSite.tsx index bf5b4fe..d0b7169 100644 --- a/src/app/components/WebSite.tsx +++ b/src/app/components/WebSite.tsx @@ -27,6 +27,17 @@ const NAV = [ { href: "#contact", label: "contact" }, ]; +/** One hue per item, so every list reads as separate pieces of hardware. */ +const TONES = [ + "var(--orange)", + "var(--teal)", + "var(--blue)", + "var(--lilac)", + "var(--mint)", + "var(--coral)", + "var(--yellow)", +]; + const SERVICES: { name: string; desc: string; @@ -72,11 +83,11 @@ export default function WebSite() { return (
{/* -------------------------------------------------------------- rail */} -
+
- dvorakmortonxd + dvorakmortonxd