The Projects page (Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/neon-retro-web/llms.txt
Use this file to discover all available pages before exploring further.
/projects) mimics a Windows 98/XP file explorer window. A breadcrumb-style header reads C:\PORTFOLIO\PROJECTS with a subtitle 4 object(s) | 1.21 Gigawatts. Below it, four large icon tiles sit in a 2×4 grid — each a big emoji icon above a .exe-suffixed filename. Clicking a tile triggers an AnimatePresence-wrapped modal that slides in at scale 0.9 and expands to a two-column detail view: a CRT-framed screenshot on the left, and category, description, tech stack badges, and action buttons on the right. A semi-transparent backdrop with backdrop-blur-sm dims the rest of the page while the modal is open.
Page Structure
Project Data
Theprojects array (ma in the minified bundle) is defined as a module-level constant directly above the component. Each project object has the following shape:
Detail Modal Layout
When a tile is clicked, the modal opens as a two-columnWindow:
Left Column — Media
A CRT-effect frame (
border-8 border-gray-800, crt-overlay CSS class) wraps an <img> with filter contrast-125 saturate-150 applied. A pulsing red LED dot (w-2 h-2 rounded-full bg-red-500 animate-pulse) sits in the top-right corner of the frame. Below the image are two action buttons: RUN DEMO (teal fill) and SOURCE (teal border, dark fill).Right Column — Details
From top to bottom: a violet CATEGORY badge, a
font-display project title, a description paragraph, a TECH_STACK section with monochrome bordered tech pill badges, a dashed-underline VIEW README.TXT link (magenta), and an optional orange italic note string.Customising This Page
Edit existing projects
In your source project, locate the projects data array (the
ma identifier in the minified bundle corresponds to this array in the source). Update each object’s title, description, tech, demoUrl, repoUrl, image, and note fields. The icon field accepts any single emoji character.Add a new project
In the source project, copy any existing project object and append it to the projects array with a unique
id. The grid layout is grid-cols-2 md:grid-cols-4 — adding a fifth item wraps naturally to a new row. The modal handles any number of tech badges automatically via flex flex-wrap.Replace the Unsplash images
Each project’s
image is an Unsplash URL with auto=format&fit=crop&w=800&q=80. Replace the URL with any publicly accessible image. The <img> element applies filter contrast-125 saturate-150, so highly saturated photos look best with the CRT effect.Wire up real demo and repo links
The
demoUrl and repoUrl fields are currently both "#". Replace them with your actual live-demo URL and GitHub repository URL. The RUN DEMO button opens demoUrl and the SOURCE button opens repoUrl — both are plain <a> tags. Add target="_blank" rel="noopener noreferrer" if you want them to open in a new tab.The modal uses
AnimatePresence from Framer Motion with mode unset (defaults to "sync"). The Window component’s onClose prop is wired to () => setSelected(null) to close the modal. Clicking anywhere on the backdrop-blur-sm overlay div also closes it.