The About page ditches the conventional bio layout in favour of a hardware metaphor: a fully rendered iPod click-wheel device. The click wheel sits on the left side of the screen; a large text panel on the right displays the current section. Clicking the forward and back controls on the wheel cycles through four sections — Origin Story, How I Got Here, Hobbies, and Philosophy — each cross-fading in and out on the iPod’s screen, complete with a progress bar showing position in the sequence.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/windows-xp-developer/llms.txt
Use this file to discover all available pages before exploring further.
Visual overview
The page is centred and split horizontally on desktop. On the left, a CSS-rendered iPod body — rounded pill shape, grey gradient, inset highlights — houses a circular click wheel with MENU at the top and directional arrows for previous and next. The centre button is a large circular hit area. On the right, anaqua-glass panel shows the headline “The Story So Far” and a secondary label prompting the user to navigate via the click wheel. The iPod screen itself, styled as a miniature LCD, shows the current section title, its paragraph of content, and an (n of 4) counter with a fill bar.
iPod screen
Displays the active section title, full content paragraph, and a progress indicator. Content transitions use Framer Motion
AnimatePresence with opacity and y cross-fades on section change.Click wheel
A decorative ring with directional controls. The forward arrow (bottom of wheel) and back arrow (left of wheel) cycle sections. The ring rotates +90° or −90° in a spring animation on each press.
The four content sections
The sections are stored in an array of objects in the About route component insideassets/main.js:
| # | Title | Content summary |
|---|---|---|
| 1 | Origin Story | Born in the era of dial-up, learned to code from Geocities source. Still misses <marquee>. |
| 2 | How I Got Here | HTML/CSS → jQuery → survived Angular vs React → now comfortably in the React ecosystem. |
| 3 | Hobbies | Vintage Apple products, early-2000s web design archives, recreating glossy Aqua buttons in CSS. |
| 4 | Philosophy | Software should be functional and delightful — gloss, soft animations, thoughtful interactions matter. |
Component structure
Customization
Section content lives in thesections array in the About route component in assets/main.js. The compiled bundle is minified, so locate the array by searching for the string "Origin Story" and edit the four content strings around it. If you are running the Vite dev source, edit the array directly in the About component file:
Key interactions
| Interaction | Behaviour |
|---|---|
| Click forward arrow | index advances by 1 (wraps); rotation increases by 90°; screen content cross-fades out/in |
| Click back arrow | index decreases by 1 (wraps); rotation decreases by 90°; screen content cross-fades |
| Wheel rotation | The decorative ring motion.div animates to the new rotation value with spring stiffness 200 |
| Screen transition | AnimatePresence mode="wait" — old content exits (opacity 1→0, y 0→−10) before new content enters (opacity 0→1, y 10→0) |
| Progress bar | Width animates to (index + 1) / total * 100% on each navigation step |
The iPod device is rendered entirely in CSS — no image assets are required. The rounded body, inset highlights, and LCD bezel are all achieved with
border-radius, box-shadow, and gradient backgrounds. The wheel ring is a separate motion.div layered on top so it can rotate independently of the static MENU label and arrow buttons.