TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/player-one/llms.txt
Use this file to discover all available pages before exploring further.
ArcadeCabinet component presents a single project as a miniature arcade cabinet. Each card is divided into three visual sections — a top bezel with the project title, a CRT screen area showing the category and description, and a bottom pedestal housing the coin slot and action buttons. On hover, the entire cabinet lifts with a smooth vertical translate, reinforcing the tactile, physical-object metaphor. Color variants let each cabinet carry its own accent color to visually distinguish projects on the grid.
Props
The project name displayed in the top bezel section using the
font-pixel typeface. Rendered in the accent color defined by the color prop.A short project description displayed on the CRT screen area. Appears below the category badge in a smaller, dimmed text style.
A label displayed as a badge overlaid on the screen area (e.g.,
"WEB APP", "TOOL", "GAME"). Styled with the accent color border and text.The accent color theme for the cabinet. Controls border colors, title text, category badge, and button accents. Maps to the four primary palette colors of the app.
| Value | Hex | Used for |
|---|---|---|
lime | #a3ff12 | Borders, title, category badge |
magenta | #ff00aa | Borders, title, category badge |
cyan | #00ffff | Borders, title, category badge |
orange | #ff6600 | Borders, title, category badge |
Optional notice string rendered inside the screen area to indicate placeholder or work-in-progress content (e.g.,
"DEMO COMING SOON"). When present, it is prefixed with an asterisk (*) and displayed in orange italic text. When omitted, no note is displayed.Usage
Visual Structure
The cabinet is composed of three stacked sections inside a singlemotion.div:
1. Top Bezel
The bezel is a narrow header strip with a coloredborder-top (4 px solid, accent color) that mimics the painted trim of a real arcade cabinet. The project title is centered inside using font-pixel, colored with the accent.
2. Screen Area
The screen occupies a 16:9aspect-video region with a black background. It contains:
- CRT overlay effect — a local scanline layer applied directly to the screen div, independent of the root
CRTOverlay. - Category badge — a small pill/label in the top-left corner with accent-colored border and text.
- Description text — the project description rendered in a reduced-opacity monospace style.
mockDataNote(optional) — if provided, displayed at the bottom of the screen with an asterisk prefix (*), rendered in orange italic text.
3. Bottom Pedestal
The pedestal section houses the cabinet controls:- Coin slot visual — a decorative horizontal slot shape with an orange pulsing indicator dot, echoing the HUD’s
INSERT COINprompt. - Action buttons — three buttons arranged in a row:
| Button | Icon | Color |
|---|---|---|
RUN DEMO | Play (Lucide) | Lime |
SOURCE | Github (Lucide) | Cyan |
README | FileText (Lucide) | Magenta |
Hover Animation
The entire cabinet is wrapped in amotion.div with a whileHover prop:
Implementation Notes
Where It’s Used
ArcadeCabinet is the primary display unit on the /projects (LEVEL SELECT) page. Each project in the portfolio data array maps to one ArcadeCabinet instance. The color variant is typically assigned by cycling through the four available values to ensure visual variety across the grid.