TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/dyed-in-the-wool/llms.txt
Use this file to discover all available pages before exploring further.
About component (internally function W) tells the human story behind the portfolio. It presents five narrative paragraphs in a vertical timeline layout — each entry slides in on scroll and is marked by an animated colored dot on a left-border rail.
What It Displays
The page is divided into three visual areas:- TieDyeBackground — full-bleed canvas with
variant="bullseye"andopacity={0.3}. The lower opacity keeps the background subtle so the text remains legible. - Header block — the title “THE HUMAN BEHIND THE DYE” and subtitle “Mixing logic and liquid since 2018” sit at the top of the content column, both animated on mount.
- Story timeline — a vertical line runs down the left side of the content area. Each of the five story paragraphs is attached to the rail with a colored circular dot marker. Each paragraph and its dot animate in together as a single
motion.divusingwhileInView.
Content Data
The five story paragraphs are stored in theV array inside the component:
Animation Details
| Element | Technique | Details |
|---|---|---|
| Page title + header block | Framer Motion initial → animate on mount | opacity: 0 → 1, x: -50 → 0 |
| Dot markers + paragraphs | whileInView combined | Each motion.div wraps both the dot and paragraph; y: 50 → 0, opacity: 0 → 1, rotate: -5 → 0; staggered by index × 0.1 s |
| Left border rail | CSS border-l-2 | Static left border on the container div |
whileInView triggers use { once: true } so paragraphs don’t re-animate on scroll back.
Customization
Edit or add story paragraphs Update theV array. Each string becomes one timeline entry. The dot and animation are generated automatically per index:
bg-dye-primary (teal). To give individual entries different colors, pass a color property into each V array item and map it to the dot’s backgroundColor style.
The timeline layout uses a CSS left-border on the container div, not an absolutely positioned line element. If you increase the number of story items significantly, ensure the container has enough
min-height to keep the rail from truncating before the last dot.