Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/dev-haunt/llms.txt
Use this file to discover all available pages before exploring further.
JackOLantern maps each skill in your portfolio to a carved pumpkin SVG. The pumpkin’s face grows more expressive as proficiency increases: expert skills get a full flickering grin with multiple teeth, intermediate skills get a simpler two-triangle smile, and familiar skills get a flat-line mouth. Hovering any pumpkin triggers a playful wobble animation via Framer Motion.
Usage
JackOLantern receives a single skill object. The Skills page renders them in a responsive grid, each wrapped in a Framer Motion spring entrance:
assets/main.js applies staggered entrance animations:
The
delay prop on the skill object is used for the CSS animate-flicker face animation, not the entrance animation. The entrance stagger is controlled by the parent mapping index * 0.1.Props
The skill label displayed beneath the pumpkin in the Spooky font. Also shown in a smaller monospace uppercase label below it.
Controls which carved face is rendered inside the pumpkin SVG:
"expert"— Three flicker triangles (two eyes + one nose), a full jagged grin with alternating teeth, and a glow bloom beneath the pumpkin."intermediate"— Two smaller triangle eyes and a smooth arc smile. Less dramatic glow."familiar"— Two minimal triangle eyes and a flat rectangular mouth. Subtle glow.
Delay in seconds applied to the
animate-flicker CSS animation on the pumpkin face and the glow bloom beneath it. Staggers the flicker timing so pumpkins don’t all pulse in unison.Face Expressions by Level
All three face variants usefill="#ffeb3b" (bright yellow) on a viewBox="0 0 100 110" SVG. The pumpkin body is layered from three concentric ellipses:
| Layer | Fill | Radius |
|---|---|---|
| Outer body | #e65100 | rx=45, ry=40 |
| Mid body | #ef6c00 | rx=35, ry=40 |
| Center highlight | #ff7a1a | rx=20, ry=40 |
M 45 20 Q 50 5 60 10 Q 55 15 55 20 Z with fill="#2e7d32".
Hover Animation
Each pumpkin is wrapped in amotion.div that responds to whileHover with a quick scale-up and a two-degree wobble sequence:
Entrance Animation
The parent page wraps eachJackOLantern in its own motion.div for a spring-based scale-in entrance:
The entrance stagger delay is derived from the grid
index (multiplied by 0.1), not from skill.delay. The skill.delay property is used exclusively for the CSS animate-flicker face animation.Skills Data
Replace theskills array in assets/main.js to update your pumpkin patch:
Customization
Add a new skill — Append an object to theskills array. Choose a delay value between 0 and 1 to spread the flicker animation out from the others:
delay spread for a more dramatic cascade, or set all delays to 0 to make every pumpkin flicker in sync.
Change pumpkin colors — Edit the three ellipse fills in JackOLantern.js to use a different color family, such as a ghostly white pumpkin: