Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/retrowin/llms.txt
Use this file to discover all available pages before exploring further.
Taskbar is the persistent navigation chrome fixed to the bottom of the RetroWin desktop. It faithfully reproduces the Windows 98 taskbar: a raised silver bar containing a Start button on the left and a system tray on the right. Clicking Start opens a pop-up menu — featuring the iconic vertical “Windows98” sidebar — with buttons that route to every section of the portfolio. The system tray displays an animated green CPU activity bar and a live clock that ticks every second.
Taskbar accepts no props. It is intended to be mounted once at the application root, outside of any route component.
Usage
Internal State
| State variable | Type | Description |
|---|---|---|
date | Date | Holds the current Date object, refreshed every 1 000 ms via setInterval. Powers the clock display in the system tray. |
open | boolean | Tracks whether the Start menu is currently visible. Toggled by clicking the Start button; closed automatically after any menu item is selected. |
Start Menu Navigation
The Start menu is rendered as an absolutely-positioned panel that slides above the taskbar whenopen is true. It contains the following navigation targets:
| Menu item | Route |
|---|---|
| About Me | /about |
| Projects | /projects |
| Skillz | /skills |
| Guestbook | /contact |
useNavigate() and then sets open to false to close the menu.
System Tray
The right side of the taskbar renders a sunken (win98-inset) system tray containing two elements:
- CPU bar — a 16 × 12 px black-bordered box with a green
animate-pulsefill bar whose height is randomised on each render. Mimics a Windows 98 resource monitor widget. - Clock — the current time formatted as
HH:MM(12 or 24-hour depending on the user’s locale) usingtoLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }). Updates every second.
Taskbar uses useNavigate() internally and must be rendered inside a React Router context.The CPU bar height is randomised at render time using
Math.random(), so it will re-randomise on every React re-render (including the clock tick). This is purely decorative.