Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/neon-retro-sys-admin/llms.txt
Use this file to discover all available pages before exploring further.
RetroWindow is the core UI container in NeonRetro Sys_Admin. It mimics a late-1990s desktop window — complete with a solid-color title bar, three chrome control buttons (minimize, maximize, close), and an inset body panel — all rendered with Tailwind’s custom y2k-* color tokens. When draggable is enabled, the entire window becomes a Framer Motion drag target that users can reposition freely on the screen. Every instance mounts with a subtle scale-in animation and exits gracefully when removed from the tree via AnimatePresence.
Props
Text displayed in the window’s title bar. Rendered in a bold monospace font and truncated with an ellipsis if it exceeds the available width.
Controls the window’s border color, title bar background, and neon drop-shadow. Each value maps to a pair of Tailwind utility classes (see Color Variants below).
When
true, the root element is swapped from a plain <div> to a Framer Motion motion.div and receives drag, dragMomentum: false, and dragElastic: 0.1 props, allowing the window to be grabbed and moved around the viewport.Callback fired when the user clicks the × (close) button in the title bar. The minimize and maximize buttons are present for aesthetics but do not currently emit events. If
onClose is omitted, clicking × has no effect.Additional Tailwind or custom CSS classes applied directly to the root element. Useful for overriding width, position, or z-index on a per-instance basis.
Content rendered inside the window body panel. The body has
p-4, flex-1, overflow-auto, and a semi-transparent bg-y2k-gray/50 background.Color Variants
Eachcolor value applies two Tailwind classes to the root element — a border color and a neon box-shadow — and a solid background to the title bar:
color | Root classes | Title bar background |
|---|---|---|
magenta | border-y2k-magenta shadow-retro-magenta | bg-y2k-magenta |
cyan | border-y2k-cyan shadow-retro-cyan | bg-y2k-cyan |
lime | border-y2k-lime shadow-retro-lime | bg-y2k-lime |
purple | border-y2k-purple shadow-retro-purple | bg-y2k-purple |
text-y2k-black to ensure contrast against the saturated background.
Enter / Exit Animations
EveryRetroWindow instance — draggable or not — carries Framer Motion animation props on its root element:
AnimatePresence when you want the exit animation to play on unmount (for example, when toggling visibility with a close button).
Drag Behavior
Whendraggable={true}, the component switches its root element to motion.div and spreads the following Framer Motion drag configuration:
dragMomentum to false means the window stops exactly where you release it rather than gliding further. A small dragElastic value of 0.1 gives a subtle rubber-band feel at the drag boundaries.
The title bar always carries the
.cursor-move CSS cursor class, hinting to users that the window is draggable even before they interact with it — even when draggable is false on the root element.Usage
RetroWindow with AnimatePresence from Framer Motion to play the exit animation before the element is removed:
Where It’s Used
RetroWindow is used extensively across the portfolio:
- Home —
now_playing.exe(cyan, draggable) andsystem_status.log(purple, draggable) float in the hero section - About —
VITAL_STATS.dat(lime) andTHINGS_I_NOTICE.log(purple) present bio content - Projects — A modal
RetroWindowopens on icon click to display project details with demo and source links - Skills — Four windows (
cyan,magenta,lime,purple) display skill progress bars by category - Contact —
sign_guestbook.bat(lime) wraps the contact form;summon_me.txt(magenta) holds social links