Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/sys-witch/llms.txt
Use this file to discover all available pages before exploring further.
RitualReport is the full-page case study renderer used on the Case Studies page. It accepts a single case study object and lays out every section of the narrative in a flowing vertical timeline — each section scrolls into view with a Framer Motion fade-and-rise animation as the user reaches it. A large, watermark-scale sigil icon sits behind the entire article at 5% opacity to ground the piece in the site’s occult visual language.
How It Renders
The component wraps its output in an<article> element. At the top sits a centred header containing a circular sigil icon (neon-cyan, drop-shadow-glow-cyan) and an <h2> title in font-display with a neon-cyan text glow. Below the header, each entry in the sections array is rendered as an animated <section> block inside a space-y-12 stack.
Every section follows the same structure:
- Section heading row — a rotating rune sigil (
rune-1throughrune-7, cycling by index) followed by the heading text infont-display uppercase. - Content block — the body paragraph, indented with
pl-9and bordered on the left by aborder-neon-cyan/20line that visually connects it to the heading sigil.
RuneDivider component in neon-cyan is appended after all sections to close the article.
All entrance animations use
whileInView with viewport={{ once: true, margin: "-100px" }}, so each section triggers only once as it enters the visible area.Props
| Prop | Type | Required | Description |
|---|---|---|---|
caseStudy | object | Yes | A case study entry from data/caseStudies.js |
Data Structure
Each case study indata/caseStudies.js has a flat header and a sections array. There is no fixed schema for the sections — heading strings are free-form, but the existing entries establish the canonical set used in practice.
Real Case Study Data
Both case studies currently indata/caseStudies.js are reproduced below.
Not every case study needs to include all eight canonical sections. The Accessible Alchemy UI entry omits Design Decisions, Testing & Debugging, and Skills Demonstrated — the component renders whatever sections are present and nothing more.
Canonical Section Headings
The following headings appear across the existing case studies and establish the expected narrative arc for new entries:Problem
What was broken, slow, or missing before the work began.
Goal
The measurable outcome the work aimed to achieve.
Process
How the problem was investigated and a strategy chosen.
Design Decisions
Visual and UX trade-offs made during the project.
Dev Decisions
Technical implementation choices and architectural rationale.
Testing & Debugging
Specific bugs encountered and how they were resolved.
Result
Concrete outcomes — performance numbers, audit scores, delivery metrics.
Skills Demonstrated
A comma-separated list of technologies and competencies exercised.
JSX Usage
Adding a New Case Study
Set the header fields
Provide a unique
id, a title that follows the "RITUAL REPORT: ..." naming convention, and a valid sigilId (e.g. "case-studies" or "projects").Write the sections array
Add one object per narrative beat. Use the canonical headings above for consistency, but only include the sections that are relevant to the project.