The Desktop is the first thing visitors see atDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/windows-98/llms.txt
Use this file to discover all available pages before exploring further.
/ — a teal retro desktop (bg-retro-teal) that acts as the portfolio’s home screen. Ten DesktopIcon shortcuts are arranged in a flex column wrap, including two system icons (My Computer and Recycle Bin) and eight portfolio section shortcuts. The CustomCursor, Taskbar, a CRT flicker overlay, and a radial vignette are all rendered at the app root and remain visible regardless of which sub-route is active.
What the Desktop renders
Every portfolio icon links to a route. The table below lists each shortcut in render order, along with its icon, accent color, and destination. The two system icons (My Computer and Recycle Bin) are rendered first and open modal windows rather than navigating to a route.
| Icon label | Accent color | Route |
|---|---|---|
| My Computer | Gray | Modal pop-up (system info) |
| Recycle Bin | Gray | Modal pop-up (deleted files) |
| About.exe | Magenta | /about |
| Projects.folder | Turquoise | /projects |
| Skills.txt | White | /skills |
| Work.dll | Brown (#8B4513) | /work |
| CaseStudies.zip | Navy | /case-studies |
| Blog.html | Teal | /blog |
| Contact.bat | Magenta | /contact |
| Testimonials.log | Turquoise | /testimonials |
Win98 Window configuration
The Desktop itself is not wrapped in aWin98Window — it is the root canvas. Window chrome only appears when the user navigates into a sub-route.
| Property | Value |
|---|---|
| Background | bg-retro-teal (Tailwind custom token) |
| Overlay | crt-overlay crt-flicker div + crt-vignette div |
| Cursor | <CustomCursor /> replaces the native pointer |
| Navigation bar | <Taskbar /> pinned to the bottom of the viewport |
"DEVELOPER" watermark text is absolutely positioned in the background at -rotate-12, rendered at text-[20vw] with very low opacity, visible on the canvas behind the icons.
Entrance animations
EachDesktopIcon plays a fade-in entrance animation via Framer Motion. The icons are staggered so they appear one after another in render order.
Icon stagger
Framer Motion staggers each portfolio
DesktopIcon with a delay prop calculated as index * 0.05 seconds (where index is the zero-based position in the portfolio icon array), so icons animate in sequentially.CRT layers
The
crt-overlay and crt-vignette div elements are positioned with pointer-events: none over the full viewport, adding depth without blocking clicks.Customizing the desktop icons
The portfolio icon definitions live in thel array inside the Desktop component (wd function) in main.js. Each entry has the following shape:
delay is computed inline as index * 0.05 when mapping over the array, so you don’t need to set it manually on each entry.
CRT and vignette layers
Two decorativediv elements are rendered as siblings to the icon grid:
@layer blocks inside main.js. Removing either class removes that visual effect with no impact on routing or layout.
Related components
DesktopIcon
Props, animation API, and how each shortcut navigates to its route.
Taskbar
The persistent bottom bar with Start menu and active-window indicator.
CustomCursor
The pixel-art cursor and click-sparkle animation rendered on the Desktop.
Architecture & Routing
How React Router hash-based routing connects desktop icons to page routes.