The Projects page — titled “Incantations” — presents each portfolio piece as a physical card that flips in three dimensions when hovered. The front of every card displays an arcane SVG sigil with an interactive radial glow that follows the mouse cursor. The back reveals the project name (written as a Roman numeral), a plain-language description, a row of technology badges, and a link to inspect the work. Cards stagger into view on page load so the grid assembles itself sequentially rather than all at once.Documentation 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.
Project Cards
3D Flip Mechanic
Each card is built from three nested divs:- Container — sets
perspectiveon the CSS context so child transforms look three-dimensional. - Inner wrapper — has
transform-style: preserve-3dand transitionsrotateYfrom0degto180degon:hover. This is the element that physically rotates. - Front and back faces — both are
position: absolute, full-size, and set tobackface-visibility: hidden. The back face starts pre-rotated atrotateY(180deg)so it is hidden at rest and visible after the flip.
Front Face — Arcane Symbol and Radial Glow
The front of each card renders an SVG arcane sigil composed of:- An outer circle that frames the symbol
- Two triangles pointing in opposite directions, overlapping to form a hexagram-like shape
- A smaller inner circle at the centre
onMouseMove events. As the cursor moves across the front face, its position is tracked relative to the card’s bounding box and used to paint a CSS radial-gradient highlight that follows the pointer in real time:
Back Face — Details and Link
Once flipped, the card shows:- Roman numeral (
I,II,III, orIV) as a large decorative heading - Project title in full
- Plain-language description of what the project does
- Tech stack badges — each technology name rendered as a small pill
- An “Inspect Spell →” anchor that points to the project URL
Card Entrance Animation
Cards are animated in with Framer Motion. Each card starts shifted 50 px below its final position and invisible, then rises and fades in. The delay is proportional to the card’s index in the array so they arrive one after another:| Card index | Entrance delay |
|---|---|
0 | 0.0 s |
1 | 0.2 s |
2 | 0.4 s |
3 | 0.6 s |
Project Data
All four projects are stored in a single array inside theProjectsPage component. Each entry carries an id, display title, short numeral, description, tech array, and a link:
Adding a Project
Locate the projects array in ProjectsPage
Open the
ProjectsPage component and find the projects array defined near the top of the component. The array contains four object literals matching the structure above.Append a new project object
Add a fifth object at the end of the array, incrementing The card grid uses CSS to auto-flow new entries, so no layout changes are needed — the fifth card will appear after the existing four.
id to 5 and choosing the next Roman numeral (V) for numeral. Fill in the remaining fields: