The Skills page transforms a traditional skills list into an arcade control panel. ThreeDocumentation 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.
SkillCabinet sections — each styled as a different arcade cabinet — group the developer’s technical abilities by category. Within each cabinet, individual skills are displayed as large circular coin-op buttons. Hovering over a button reveals a tooltip showing the skill’s level string and a short description. All skill data is drawn from the skills object in data/mockData.js, organized into frontend, backend, and tooling sub-arrays, each with its own cabinet color theme.
Route
| Property | Value |
|---|---|
| Path | /skills |
| File (compiled) | assets/main.js — SkillsPage component |
| Data export | skills (exported as s from mockData.js) |
| Theme colors | arcade-lime (frontend) · arcade-purple (backend) · arcade-cyan (tooling) |
| Screen title | CONTROL PANEL |
What It Displays
The page renders threeSkillCabinet sections stacked vertically. Each cabinet has a colored heading and contains a row of circular buttons — one per skill.
Frontend Cabinet — Lime
| Skill | Level |
|---|---|
| React | Level 99 |
| TypeScript | Level 85 |
| Tailwind CSS | Level 90 |
| Framer Motion | Level 75 |
Backend Cabinet — Purple
| Skill | Level |
|---|---|
| Node.js | Level 80 |
| PostgreSQL | Level 70 |
| Redis | Level 60 |
Tooling Cabinet — Cyan
| Skill | Level |
|---|---|
| Git | Level 95 |
| Docker | Level 65 |
| Vite | Level 85 |
Animations
EachSkillCabinet section uses Framer Motion’s whileInView trigger with a scale animation. Buttons scale from 0.8 to 1.0 as they enter the viewport, staggered by 0.08 s per item.
The
whileInView animation fires once per cabinet as it scrolls into view. The once: true viewport option prevents re-triggering on scroll back. Level tooltips are CSS-only and do not use Framer Motion.Tooltip Behavior
Hovering over a skill button reveals a floating tooltip anchored above the button. The tooltip displays:- Skill name — the same label shown on the button face
- Level — a string value (e.g.
Level 99,Level 85) - Description — a one-sentence note about proficiency or usage context
bg-arcade-black, border-arcade-lime, and font-mono text to match the cabinet aesthetic. They appear via a CSS opacity + translateY transition on hover.
Data Schema
Theskills export is an object with three array properties — frontend, backend, and tooling. Each skill entry in those arrays has the following shape:
Field Reference
| Field | Type | Displayed As | Notes |
|---|---|---|---|
name | string | Button face label | Keep short — max ~12 chars |
level | string | Tooltip level label | Format: "Level <value>" |
desc | string | Tooltip body text | One sentence recommended |
Customization
Adding a new skill Append a new entry to the appropriate sub-array (frontend, backend, or tooling) in data/mockData.js.
level string for the relevant skill entry. The level value is displayed in the hover tooltip.
Adding a new cabinet category
The SkillCabinet component accepts a color prop. If you add a fourth category (e.g. design), add the new array to the skills object in mockData.js and add a new SkillCabinet instance in SkillsPage:
SkillCabinet Props
TheSkillCabinet component used on this page accepts the following props:
| Prop | Type | Description |
|---|---|---|
title | string | Cabinet section heading |
color | "lime" | "purple" | "cyan" | "magenta" | Accent color for cabinet border and heading glow |
skills | Skill[] | Array of skill objects for this cabinet |
Sample Data
Related Pages
About
The Character Bio page that pairs with Skills to present the full developer profile.
Mock Data Reference
Full reference for all mockData.js exports including the skills object schema.
Design Tokens
Cabinet color tokens — lime, purple, and cyan — used for section theming.
Animations
whileInView scale animation patterns used by the SkillCabinet sections.