Lineage is the work history page of the Digital Alchemy portfolio, rendered at routeDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/digital-alchemy/llms.txt
Use this file to discover all available pages before exploring further.
/work. It presents a chronological record of professional experience as a candlelit timeline — a vertical wax column that slowly illuminates as the visitor scrolls down the page, burning brighter as each new role is revealed.
What Renders on This Page
The page opens with the site-standard heading block:- Heading: “Lineage” in large parchment serif
- Subheading: “A history of magical endeavors” in uppercase turquoise
CandleTimeline component takes over the full remaining content area.
CandleTimeline Component
A scroll-driven timeline where a glowing turquoise gradient fills a vertical track in sync with scroll progress. Work history entries animate in from alternating sides as they enter the viewport.
Timeline Entries
TheCandleTimeline contains three work history entries drawn directly from the source data. Entries alternate left and right on the timeline for visual rhythm, and each entry springs into view when it enters the viewport (whileInView, once: true, margin: -100px).
2023 – Present: Senior Alchemist (Frontend) at Mystic Tech Corp
2023 – Present: Senior Alchemist (Frontend) at Mystic Tech Corp
Role: Senior Alchemist (Frontend)
Company: Mystic Tech Corp
Years: 2023 – Present
Side: Left (entry 0, even index)
Company: Mystic Tech Corp
Years: 2023 – Present
Side: Left (entry 0, even index)
“Leading a coven of 5 developers to rebuild the core spellbook (dashboard) using React and Framer Motion. Reduced load times by 40%.”This is the current position. The entry slides in from the left with a spring animation and connects to the timeline track via a horizontal turquoise connector line with a glowing dot endpoint.
2020 – 2023: UI Sorcerer at Ethereal Agency
2020 – 2023: UI Sorcerer at Ethereal Agency
Role: UI Sorcerer
Company: Ethereal Agency
Years: 2020 – 2023
Side: Right (entry 1, odd index)
Company: Ethereal Agency
Years: 2020 – 2023
Side: Right (entry 1, odd index)
“Crafted bespoke, highly animated landing pages for arcane clients. Mastered the arts of CSS animations and SVG manipulation.”A three-year agency role focused on motion-rich marketing pages. The entry slides in from the right.
2018 – 2020: Apprentice Developer at The Guild
2018 – 2020: Apprentice Developer at The Guild
Role: Apprentice Developer
Company: The Guild
Years: 2018 – 2020
Side: Left (entry 2, even index)
Company: The Guild
Years: 2018 – 2020
Side: Left (entry 2, even index)
“Learned the ancient rites of JavaScript and responsive design. Maintained legacy jQuery scrolls and gradually migrated them to modern React.”The earliest role, representing the beginning of the developer’s professional journey. Slides in from the left.
Scroll-Driven Animation
TheCandleTimeline implements a sophisticated scroll-progress system:
Scroll progress tracking
Scroll progress tracking
The component uses Framer Motion’s
useScroll with target and offset: ['start center', 'end center'] to track how far the timeline container has scrolled through the viewport. The resulting scrollYProgress value (0 → 1) drives the candle fill height.Animated candle track
Animated candle track
A vertical track runs down the center of the timeline. A
motion.div inside the track uses useTransform to map scrollYProgress from [0, 1] to ['0%', '100%'], producing a height value that grows as you scroll. The fill uses a bg-gradient-to-b from-turquoise/80 to-teal/40 with a bottom glow shadow (shadow-[0_5px_15px_rgba(64,224,208,0.5)]).Candle flame at the top
Candle flame at the top
A decorative animated flame sits at the very top of the timeline track, composed of two layered divs — an outer amber blur (the warm glow) and an inner white blur (the bright core) — both running the
animate-flicker CSS keyframe. This is the same flame aesthetic used in the ambient Candle components on the home page.Per-entry viewport animations
Per-entry viewport animations
Each timeline entry uses
whileInView with once: true, meaning the slide-in animation plays exactly once as the entry enters the visible area and does not replay on scroll-back. Entries on even indices slide from x: -50 (left), odd indices from x: 50 (right).Route Information
| Property | Value |
|---|---|
| Route path | /work |
| React component | Work (internal name L) |
| Key components | CandleTimeline |
| Animation library | Framer Motion (useScroll, useTransform, whileInView) |