Long before LinkedIn endorsements, developers proved their worth by reaching the top of the leaderboard. The Skills Scoreboard translates that arcade-cabinet energy into a resume section: a full dark-room high-score table where every technology earns its rank by numeric score, the number-one entry blazes in cyan, and a pulsing prompt at the bottom reminds you this game isn’t over yet. It lives at theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/webmaster/llms.txt
Use this file to discover all available pages before exploring further.
/skills route and fills the entire page content area.
Visual Overview
The component renders three distinct layers stacked vertically:- Page title —
"MAD SKILLZ"intext-lemon(bright yellow) with a hot-pinkdrop-shadow, on a black background inside aborder-4 border-hotpinkframe. - Arcade cabinet panel — A
bg-blackblock withborder-8 border-silverandbevel-container-insetstyling, containing the full high-score table with a CRT screen glass-sheen overlay (a semi-transparent white gradient across the top third). - Skill category cards — A responsive 2×2 / 4-column grid of bevel-container icon cards beneath the cabinet.
Skills Data Array
The seven entries are hardcoded in theae array inside assets/main.js. Each object carries four fields that map directly to the four table columns:
The scores are purely cosmetic — they exist to complete the arcade leaderboard fiction. SQL/DB’s score of
404,404 and HTML5’s palindrome 555,555 are intentional Easter eggs.Table Columns
| Column | Source field | Width class | Notes |
|---|---|---|---|
RANK | rank | w-16 | Ordinal string: "1ST" – "7TH" |
SKILL | name | flex-1 text-center | Centered; top-3 entries append an animated ▲ indicator |
SCORE | score | w-32 text-right | Pre-formatted comma string |
NAME | initial | w-16 text-right | 3-char arcade initials |
Visual Details
Header: “HIGH SCORES”
animate-blink class produces the classic arcade attract-mode flash — the heading cuts in and out on a CSS animation cycle defined in the project’s Tailwind config.
Top-3 Rank Indicator
Entries at index0, 1, and 2 (1ST, 2ND, 3RD) render an upward-arrow bounce indicator alongside the skill name:
▲ pulses up and down via Tailwind’s built-in animate-bounce, calling attention to the podium positions.
First-Place Highlight
The entire first row receivestext-cyan-400 applied conditionally on index === 0:
text-white. Every row also supports a subtle hover:bg-white/10 reveal — mouse-over any row to see a dim CRT-phosphor glow.
CRT Glass Sheen
A non-interactive pseudo-layer sits inside the cabinet panel, replicating the curved-glass highlight of a cathode-ray tube monitor:Footer: “INSERT COIN TO CONTINUE…”
animate-pulse class fades the text in and out on a 2-second cycle — the universal signal from every arcade machine ever made.
Skill Category Cards
Below the cabinet, four equal-width cards sit in a responsive grid (grid-cols-2 md:grid-cols-4). Each uses a bevel-container p-2 bg-silver outer shell with a plain white inner cell:
Fast Learner
🧠 — Picks up new technologies before the docs are finished.
Bug Squasher
🐛 — Finds the semicolon you forgot at 2 AM.
Coffee Powered
☕ — Sustained entirely by hot beverages and deadline anxiety.
Always Backs Up
💾 — Commits frequently. Has never lost work. Not once.
Page Title Styling
The"MAD SKILLZ" heading uses the retro lemon-drop treatment:
text-lemon and border-hotpink are custom Tailwind color utilities defined in the project’s tailwind.config.js. drop-shadow-[3px_3px_0_#FF69B4] creates the thick hot-pink offset shadow characteristic of the site’s Y2K display aesthetic.
Route Registration
The Skills Scoreboard renders the entire/skills page — it is not a standalone droppable widget. It is registered in the router inside assets/main.js:
This is a page-level component, not a composable widget. It fills the full content area of the
<main> element and is not designed to be embedded inside other pages or components.Customizing Skills Data
To edit the leaderboard, locate theae array near the top of assets/main.js and modify the entries in place: