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.
TerminalStatus is a fake operating-system terminal window that narrates the portfolio’s existence in deadpan status-log format. It sits in the lower section of the home page and prints eight pre-written status lines one at a time, simulating a real boot sequence or deployment pipeline — complete with a WARN message about an unused variable called sleep. The component blends dark humour with the coven’s retro-terminal aesthetic.
Visual Role on the Home Page
TerminalStatus renders fourth in the home page stack, between CardsOfFate and ProjectMarquee. Centered with a max-w-4xl constraint, it acts as a palate cleanser between the navigation cards and the scrolling footer ticker — an intimate, readable moment before the page ends.
Home page render order:
| Position | Component |
|---|---|
| 1 | SummoningCircle |
| 2 | HeroText |
| 3 | CardsOfFate |
| 4 | TerminalStatus |
| 5 | ProjectMarquee |
Props
TerminalStatus accepts no props. The status lines are defined as a module-level constant array:
To change the terminal output, edit
STATUS_LINES in TerminalStatus.js. Lines beginning with WARN are automatically rendered in yellow (text-yellow-400) — all other lines inherit the default text-neon-lime.Framer Motion Animations
Scroll-triggered panel entrance
The entire terminal window fades in and scales up when it enters the viewport:viewport: { once: true } ensures the animation plays only once.
Per-line entrance
Each line appended to the display animates in from the left:transition duration is set for line entrances, so Framer Motion uses its default spring.
Blinking cursor
After all eight lines have printed, an idle cursor block appears and blinks on a 0.8-second cycle:displayedLines.length === STATUS_LINES.length, so it appears only after the final status line has been added.
Line-by-Line Printing — useEffect + setInterval
A single useState value — displayedLines — holds the array of lines currently shown. A setInterval running every 800 ms appends the next line from STATUS_LINES until all eight are displayed, then clears itself:
CSS Classes and Color Tokens
Outer section wrapper
Terminal window (motion.div)
crt-overlay is a custom Tailwind utility that applies a scanline or phosphor-screen overlay effect, reinforcing the retro-CRT aesthetic. The background #0a0a0a (near-black with a warm undertone) differs from the site’s standard --void black to simulate an older display.
Title bar
Output area
WARN line override
Any line that starts with "WARN" receives the class text-yellow-400 instead of inheriting text-neon-lime:
Interactive Behaviour
TerminalStatus has no hover or click handlers. It is entirely time-driven:
| Time | Event |
|---|---|
| Component mounts | setInterval begins, 800 ms tick |
| Every 800 ms | One new status line appends and animates in |
| After ~6.4 s (8 lines × 800 ms) | Interval clears; idle cursor appears |
| Scroll into view | Terminal window fades in and scales from 0.95 to 1.0 |