The Projects page presents the developer’s portfolio work through the lens of a retro game library. Each project is rendered as a stylized game cartridge card — complete with a glowing title, arcade-style metadata fields (Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/dev-mode-arcade/llms.txt
Use this file to discover all available pages before exploring further.
GENRE: and PLAYERS:), and a description block. When a visitor hovers over a card, hidden action buttons slide into view: RUN DEMO and SOURCE. These are UI elements only — they are not wired to live URLs or repositories in the default implementation. All card data is pulled from the projects array in data/mockData.js, so adding or updating a project requires only a data change — no JSX edits needed.
Route
| Property | Value |
|---|---|
| Path | /projects |
| File (compiled) | assets/main.js — ProjectsPage component |
| Data export | projects (exported as p from mockData.js) |
| Theme colors | Per-project color field — purple · lime · magenta · cyan |
What It Displays
The page renders a responsive CSS Grid of project cards. On mobile the grid is a single column; on desktop it expands to two columns. A section heading introduces the screen in arcade style. Each card shows:- Title — rendered with a neon glow in the project’s accent color
- Year — displayed at the top right of the card in dim monospace
- GENRE — a short tech-stack or genre tag (e.g.,
React / Three.js,Next.js / Stripe) - PLAYERS — a player count string (e.g.,
Solo,Team) - Description — a two-to-three sentence summary of the project
- RUN DEMO button — UI element revealed on hover; not linked to a live URL by default
- SOURCE button — UI element revealed on hover; not linked to a repository by default
Animations
Cards animate in using Framer Motion’swhileInView trigger. Each card starts at opacity 0 with a downward y offset and transitions to full opacity and natural position as it enters the viewport.
opacity and translateY, toggled by the parent card’s :hover pseudo-state (via Tailwind’s group + group-hover utilities).
The
whileInView trigger fires once — cards do not re-animate when they scroll back into view after leaving. This is controlled by the once: true option passed to the Framer Motion viewport prop.Data Schema
Each project object in theprojects array must conform to the following shape:
Field Reference
| Field | Type | Displayed As | Notes |
|---|---|---|---|
id | string | Not displayed | Used as React list key |
title | string | Card heading with neon glow | Keep under 40 chars for layout |
year | string | Top-right of card | Four-digit year as a string |
genre | string | GENRE: <value> | Tech stack or genre label, e.g. React / Three.js |
players | string | PLAYERS: <value> | E.g. Solo, Team |
description | string | Body text of card | 2–3 sentences recommended |
color | string | Glow + border accent | Must be one of four valid tokens |
Current Projects
Four projects ship in the default dataset:| Title | Genre | Players | Year | Color |
|---|---|---|---|---|
| Neon Nexus | React / Three.js | Solo | 2025 | purple |
| CyberCart | Next.js / Stripe | Team | 2024 | lime |
| GhostWriter | Vue / Node.js | Solo | 2024 | magenta |
| PixelPulse | React Native | Team | 2023 | cyan |
Customization
Adding a new project Opendata/mockData.js and append a new object to the projects array (exported as p):
color field to any of the four supported token values: "purple", "lime", "magenta", or "cyan". The card border, title glow, and button highlight all derive from this single field.
Wiring up the RUN DEMO and SOURCE buttons
The RUN DEMO and SOURCE buttons are hover-reveal UI elements. They are not linked to real URLs in the default data schema. To add real links, extend the project object with URL fields in mockData.js and update the card component to read them:
Sample Data
Related Pages
Case Studies
Deep-dive boss-fight replay view for a single flagship project.
Mock Data Reference
Full reference for all mockData.js exports including the projects array.
Design Tokens
The four accent color tokens used for project card glow effects.
Animations
whileInView and hover animation patterns used across project cards.