Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/digital-coven/llms.txt
Use this file to discover all available pages before exploring further.
ProjectMarquee is the closing flourish of the Digital Coven home page — a horizontal ticker strip that endlessly scrolls through a list of project names against a dark void background, bordered top and bottom with an electric-purple hairline. It echoes the scrolling news tickers of the 80s and 90s retro-tech aesthetic while serving as a low-key portfolio inventory for visitors who glance at the bottom of the page.
Visual Role on the Home Page
ProjectMarquee is the last component rendered on the home page, appearing below TerminalStatus and stretching edge-to-edge. Its overflow-hidden container and border-y treatment give it the visual weight of a footer band without being a traditional footer. The py-24 padding makes it a standalone visual statement rather than a thin afterthought.
Home page render order:
| Position | Component |
|---|---|
| 1 | SummoningCircle |
| 2 | HeroText |
| 3 | CardsOfFate |
| 4 | TerminalStatus |
| 5 | ProjectMarquee |
Props
ProjectMarquee accepts no props. The list of project names is a module-level constant:
0% to -50% on the x-axis, creating an infinite loop where the second half of the array visually matches the beginning of the first.
When adding new project names, add them to both the first half and duplicate them in the second half to preserve the seamless loop. The animation always scrolls exactly to
-50% of the track width.Framer Motion Animation
The entire row of names is wrapped in a singlemotion.div that translates continuously along the x-axis:
ease: "linear" is critical here — any easing curve would cause the ticker to visibly accelerate or decelerate at the loop boundary, breaking the illusion of continuous motion.
The "0%" → "-50%" range works because the track contains exactly twice the unique content: translating by half the track width brings the duplicate set into view, which is visually identical to the original set, creating a perfect loop.
CSS Classes and Color Tokens
Outer section wrapper
overflow-hidden clips the scrolling content at the component’s edges, preventing any horizontal page overflow. border-y adds a single-pixel top and bottom border in electric-purple at 20 % opacity — a subtle framing rule. bg-deep-void/50 gives the strip a semi-transparent dark background, allowing any parallax atmosphere elements behind it to faintly bleed through.
Flex track wrapper
whitespace-nowrap is essential — without it, individual project names would wrap to new lines rather than remaining in a single horizontal row.
Per-name <div>
--electric-purple to --magenta, with the text clipped to the gradient fill. At rest, names sit at 50 % opacity. On hover, they snap to full opacity and scale up by 10 %, drawing attention to the name under the cursor.
cursor-none suppresses the browser’s default cursor — the site uses a custom cursor component (CustomCursor) site-wide.
Interactive Behaviour
| Interaction | Effect |
|---|---|
| Automatic (continuous) | Track scrolls leftward at constant speed — one full loop every 20 seconds |
| Hover over a name | Name fades from 50 % → 100 % opacity and scales up by 10 % (hover:scale-110) |
| Click | No click handler; the names are purely decorative <div> elements |