The Workings section spans two routes: a listing page atDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/nightshade/llms.txt
Use this file to discover all available pages before exploring further.
/case-studies that presents each case study as a decorative candle bookmark, and an individual detail page at /case-studies/:slug that renders the full account on a parchment-styled surface. The CaseStudiesPage (Ue) handles the listing; CaseStudyDetailPage (Ve) handles the detail view.
Routes
| Route | Component |
|---|---|
/case-studies | CaseStudiesPage (Ue) |
/case-studies/:slug | CaseStudyDetailPage (Ve) |
Listing Page — /case-studies
Layout
The page centers undermax-w-5xl. A heading block at the top reads “Major Workings” with the subtitle “Detailed accounts of complex incantations.” Below it, three candle bookmark components are arranged in a horizontal flex row with gap-12 spacing on mobile and gap-24 on md and wider viewports.
Candle Bookmark Anatomy
Each candle is built from three stacked layers:- Hanging thread — a
w-0.5 h-24gradient line running fromwitch-darkat the top, throughwitch-plum/50at mid-point, towitch-plum/80at the bottom. - Candle body — a
w-24 h-32motion.divwith rounded top edges (rounded-t-full) that shiftsy: -5on hover. A radial-gradientmotion.divinside simulates the flame, scaling from0.8(unlit) to1.2(lit) asopacityrises from0.3to1.0on hover. - Label — title in
font-headingand category infont-code uppercase tracking-widestbeneath the candle body.
border-witch-plum/60 to border-witch-amber on hover. Clicking anywhere on the candle group calls useNavigate to push /case-studies/:slug.
Case Study Data
Detail Page — /case-studies/:slug
Title Derivation
The page title is not stored in data — it is derived from the URL slug at render time:/case-studies/warding-against-ddos renders “Warding Against Ddos”. If you need exact capitalisation (e.g. “DDoS”), store a title field in the data and look it up by slug instead.
Parchment Layout
The detail view uses amax-w-3xl mx-auto container with a ← Return button anchored absolutely at -left-16 (visible on wide viewports). The content panel is a parchment-bg p-12 border border-witch-plum/30 rounded-sm card that fades and rises in via:
Three-Section Structure
Every case study detail page renders the same three sections:I. The Curse (Problem)
Describes the initial state of the system — the pain points, legacy debt, or threat vector that required intervention.
II. The Working (Approach)
Explains the strategy and technical choices made. Includes a fenced code block illustrating the key implementation step.
Binding Ritual Code Block
The approach section contains a styled code example. Inmain.js this is rendered as a raw <pre><code> block inside a bg-witch-dark p-4 rounded border border-witch-plum/30 font-code text-sm text-witch-turquoise/80 container:
Customization
Adding a New Case Study
Step 1 — Add the entry to the listing array:CaseStudyDetailPage handles any slug under /case-studies/. The three-section body text is currently hard-coded in Ve; to make each case study unique, replace the static paragraph content with a data lookup keyed on the slug.
Updating Static Body Content
The three section paragraphs inCaseStudyDetailPage are hard-coded prose strings. To vary content per study, create a caseStudyContent map:
caseStudyContent[slug] inside CaseStudyDetailPage and pass each field to the matching section.