The Articles page — titled “Newsletter from Beyond” — reimagines a standard blog index as a rack of sealed envelopes. Each envelope sits closed and mysterious until the visitor hovers over it, at which point the wax seal dissolves, the flap swings open, and the letter inside slides up to be read. It is the most tactile page in the portfolio and sets a strong first impression of the developer’s attention to interaction detail.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/apursley2012/spooky-developer/llms.txt
Use this file to discover all available pages before exploring further.
Route
Articles Data
All articles are defined in a static constant at the top of the component:| # | Title | Date |
|---|---|---|
| 1 | Why I stopped using Redux | Oct 31, 2023 |
| 2 | CSS Grid: A Love Story | Sep 13, 2023 |
| 3 | Surviving the Next.js App Router | Aug 01, 2023 |
Envelope Card Structure
Each article is a<motion.div> with class relative h-64 group cursor-pointer perspective-1000. Three layers are stacked absolutely inside it:
1. Envelope Body (back)
2. Paper Letter (middle)
-translate-y-16) and raises its z-index so it appears above the flap.
3. Envelope Flaps (top and bottom)
Two triangular shapes made withclip-path are layered to form a realistic envelope:
| Element | clip-path | Role |
|---|---|---|
| Bottom flap | polygon(0 100%, 50% 0, 100% 100%) | Static V-shape at the bottom half |
| Top flap | polygon(0 0, 50% 100%, 100% 0) | Animated inverted-V that opens on hover |
origin-top transition-transform duration-500 group-hover:rotate-x-180, so on hover it rotates 180° around its top edge — giving the illusion of the flap folding open. This rotation is a pure CSS transform driven by the Tailwind group-hover:rotate-x-180 class, not Framer Motion.
Wax Seal
The red wax seal is a child of the top-flap element, positioned at its bottom edge so it bridges both halves of the closed envelope:- Centred on the bottom edge of the top flap so it bridges the two halves
- Fades out (
opacity-0) as the flap opens, to avoid floating over the revealed letter
Hover Animation Summary
| Element | Rest state | Hover state |
|---|---|---|
| Top flap | rotate-x-0 (closed) | rotate-x-180 (open) |
| Wax seal | opacity-100 | opacity-0 |
| Paper letter | translate-y-0 | -translate-y-16 (slides up) |
Adding a New Article
Append an entry to theARTICLES array:
grid-cols-1 md:grid-cols-3, so a fourth card will begin a new row on desktop.
Articles are currently static data with no external links. To point each envelope to a real article, add a
url field to the data object and wrap the card (or the “read” area of the paper letter) in a <Link to={article.url}> or <a href={article.url} target="_blank">.