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.
HeroText is the primary identity block of the Digital Coven home page. It announces the portfolio owner’s name — Alex Morgan — as a staggered cascade of animated letters, then types out the tagline "Source Code, Summoned." character by character. The result is a slow, ceremonial entrance that sets the occult-retro mood before any other content draws the eye.
Visual Role on the Home Page
HeroText renders second in the home page stack, immediately after SummoningCircle. It is absolutely positioned above the circle graphic (z-10) and fills at least 60 % of the viewport height (min-h-[60vh]), keeping the name and tagline vertically centred on first load. Because SummoningCircle sits at z-0 and is purely decorative, HeroText is effectively the first element a visitor can meaningfully read.
Home page render order:
| Position | Component |
|---|---|
| 1 | SummoningCircle |
| 2 | HeroText |
| 3 | CardsOfFate |
| 4 | TerminalStatus |
| 5 | ProjectMarquee |
Props
HeroText accepts no props. All text content, animation parameters, and state are self-contained within the component.
Because the name and tagline are hard-coded strings (
"Alex Morgan" and "Source Code, Summoned."), customising either value requires editing the component source directly.Framer Motion Animations
The component uses three distinct Framer Motion animation sequences.1 — Name heading reveal
The outermotion.h1 wrapper fades in with a blur and scale transition:
2 — Per-letter stagger
"Alex Morgan" is split with .split("") and each character is wrapped in a motion.span. Each letter starts below its resting position and fades in:
( ) to preserve spacing between first and last name.
3 — Typewriter cursor blink
Amotion.span sits after the typed text and oscillates its opacity between 1 and 0 on infinite repeat:
Typewriter Effect — useEffect + setInterval
The tagline is rendered via two useState values:
| State | Initial value | Purpose |
|---|---|---|
displayedText (o) | "" | The portion of the tagline currently visible |
showGlitch (m) | false | Triggers a CSS glitch class on the paragraph |
setInterval (100 ms tick) appends one character per tick until the full string "Source Code, Summoned." is displayed. Once complete, a second interval fires every 3 s to toggle showGlitch to true for 200 ms, then back to false:
CSS Classes and Color Tokens
Name heading (motion.h1)
--electric-purple custom property, making the tops of letterforms bright and the bottoms glow violet. glow-text-purple is a custom utility that applies a purple text-shadow.
Tagline paragraph (motion.p)
showGlitch is true, the class animate-glitch is appended, triggering a keyframe animation defined in the project’s global CSS.
Cursor block (motion.span)
Container
Interactive Behaviour
HeroText has no click or hover handlers. The only interactive-feeling behaviour is the autonomous glitch pulse on the tagline, which fires on a 3-second timer after typing completes. The name letters and cursor blink continuously as long as the component is mounted.