The Case Studies page (Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/press-start/llms.txt
Use this file to discover all available pages before exploring further.
K component, route /case-studies) is the portfolio’s most narrative-driven section. Each case study is presented as a Boss Battle Log — a long-form post-mortem that walks through a real engineering problem using the grammar of an RPG encounter: identify the boss, define the mission, execute the strategy, collect XP. A sticky vertical BOSS HP bar runs alongside the content and depletes in real time as the visitor scrolls toward the bottom of the page. When the bar hits zero the label changes to DEFEATED with a blinking arcade-green animation.
Route
/case-studies
Case study data
Case studies are defined in theY array. The current release ships with one entry:
Field reference
| Field | Type | Rendered as |
|---|---|---|
id | string | Identifier (e.g. "boss-01"); used as React key for the list |
name | string | Large h1 hero heading in arcade-white with cyan glow |
problem | string | Block quote with magenta left border — “THE BOSS” section |
goal | string | Body paragraph — “MISSION” section |
process | string | Body paragraph — “STRATEGY” section |
design | string | Body paragraph — “BUILD CHOICES” section |
tech | string | VT323 large text in arcade-green — “TECH STACK” section |
debug | string | Dark terminal block — “DEBUG LOG” section |
result | string | Bold 2xl cyan text — “VICTORY” section |
xp | string[] | Array of tags rendered as + TAG bordered chips — “XP GAINED” |
next | string | Italic muted paragraph — “NEW GAME+” section |
Section headers
Each section is preceded by a decorative divider rendered by the inlinea sub-component (confusingly named — it is a divider, not an anchor):
THE BOSS (Problem)MISSION (Goal)STRATEGY (Process)BUILD CHOICESTECH STACKDEBUG LOGVICTORY (Result)XP GAINEDNEW GAME+
Boss HP scroll-progress bar
The sticky sidebar on the right (desktop only — hidden belowlg breakpoint) renders a vertical HP bar that tracks reading progress:
justify-end) and its height is set via the inline style { height: \$%` }. A neon-magenta box-shadowis applied whilehp > 0`; the shadow disappears at zero.
When hp === 0 a DEFEATED label appears below the bar with animate-blink.
The HP bar measures scroll progress against the entire document height, not just the case study content area. If you add a tall header or footer, the bar will reach zero before the visitor has finished reading the last paragraph. Consider scoping the scroll calculation to a content ref instead.
Current page layout
The component currently rendersY[0] — the first (and only) case study — directly, without routing or selection UI. The Y array exists, but there is no list view or navigation between multiple entries yet.
Adding more case studies
- Append a new object to the
Yarray, following the field schema above. - Implement a selection mechanism. The simplest approach is to add a top-of-page list of boss names (like a stage-select screen) where clicking a name sets a
selectedIdstate, and the body renderscaseStudies.find(c => c.id === selectedId)instead of the hardcodedY[0].
Debug Log block
Thedebug field renders inside a styled terminal block to visually separate it from narrative prose:
> ERROR: Data integrity compromised.) is hardcoded decorative text in arcade-yellow. The line below it renders the debug field value. If your case study’s debug section doesn’t involve a data integrity error, replace the hardcoded yellow line with something more appropriate for that story.