Sorcerer’s component model is deliberately flat and focused. Four shared components handle all chrome, navigation, and ambient visual effects — they appear on every page and live underDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/sorcerer/llms.txt
Use this file to discover all available pages before exploring further.
components/. Nine page components, one per route, own their own animations and data and are compiled into assets/main.js. This separation keeps global concerns (background, cursor, nav) isolated from page-specific concerns (flip cards, constellation graphs, scrying orbs), making each piece straightforward to reason about independently.
Shared Components
These four components are used across the entire application. They are imported byLayout.js (or by Layout itself) and render on every page regardless of the active route.
Layout
The root wrapper for every page. Applies the radial gradient background, renders
CursorTrail and MoonPhaseNav, wraps page content in a <main> element, and renders the site footer.MoonPhaseNav
The primary navigation bar. Displays navigation links styled as moon-phase icons and uses React Router’s navigation primitives to move between pages without full reloads.
CursorTrail
Tracks mouse position and renders a trailing particle effect behind the cursor, reinforcing the mystical aesthetic throughout every interaction on the site.
CandleDivider
A decorative SVG section divider styled as a row of candles. Used between content sections on longer pages to visually separate content while maintaining the theme.
Page Components
Each of the nine routes in Sorcerer maps to a dedicated page component. All page components are bundled insideassets/main.js and reference their content data from const arrays defined in the same bundle.
| Component | Route | Description |
|---|---|---|
| HomePage | / | Animated hero with a runic circle SVG centerpiece and a letter-by-letter title entrance animation powered by Framer Motion. |
| AboutPage | /about | Parallax moon orb that shifts position with scroll, surrounding bio paragraphs that move at independent scroll-driven speeds. |
| ProjectsPage | /projects | Four interactive 3D flip cards — each card rotates on hover to reveal the project’s tech stack and links on its reverse face. |
| SkillsPage | /skills | A constellation graph rendered in SVG with nine technology nodes connected by animated lines that draw in on page load. |
| WorkHistoryPage | /work | A vertically scrolling timeline of three past roles, with each entry animating into view as the user scrolls down the page. |
| CaseStudiesPage | /case-studies | Two in-depth technical case studies laid out with an ingredients / ritual / result structure to mirror an alchemical recipe format. |
| BlogPage | /blog | Three oval-shaped post cards with an SVG ripple distortion filter that activates on hover, creating a liquid portal effect. |
| TestimonialsPage | /testimonials | Client quotes that cycle inside a scrying orb SVG, with each testimonial fading in and out on a timed loop. |
| ContactPage | /contact | A contact form that triggers a Framer Motion particle-burst animation emanating from the submit button on successful submission. |
Component Hierarchy
The following tree shows how the components nest at runtime.BrowserRouter provides routing context, Layout provides the shared chrome, and Routes selects the active page component.