Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/apursley2012/cosmic-developer/llms.txt

Use this file to discover all available pages before exploring further.

The Case Studies page (/case-studies) presents detailed project work as “Flight Recordings” — declassified mission logs that walk through the problem, approach, and measurable outcome of each engagement. The layout uses alternating full-width panels so that every case study commands the full horizontal canvas of the viewport, alternating the image and text sides to create visual rhythm as the user scrolls.

Layout Overview

The page uses a PageTransition wrapper and is divided into: Header
  • TeletypeText types "Decrypting flight recordings..." in aurora-teal mono font
  • H1 reads “Flight Recordings”"Recordings" highlighted in text-aurora-teal
Case Study List
  • A flex flex-col gap-24 pb-20 container holds all panels
  • Each panel is a motion.div with a staggered whileInView entrance (opacity: 0 → 1, y: 50 → 0)
  • Viewport margin -100px allows the animation to trigger slightly before the element fully enters the viewport

Alternating Direction

The flex row direction reverses based on the entry’s array index:
IndexFlex directionImage sideText side
Even (0, 2…)md:flex-rowLeftRight
Odd (1, 3…)md:flex-row-reverseRightLeft

Case Studies Data

The two case studies are defined in the caseStudies array inside the jt component:
const caseStudies = [
  {
    title: 'Project Apollo',
    subtitle: 'E-commerce Redesign',
    desc: 'A complete overhaul of a legacy platform, increasing conversion by 24% and reducing load times to sub-second levels.',
    image: 'bg-gradient-to-br from-slate-800 to-slate-900',
    accent: 'text-aurora-teal',
  },
  {
    title: 'Voyager Dashboard',
    subtitle: 'Data Visualization',
    desc: 'Complex data streams simplified into an intuitive, accessible interface for financial analysts.',
    image: 'bg-gradient-to-br from-indigo-900 to-slate-900',
    accent: 'text-aurora-magenta',
  },
]

Panel Breakdown

Each panel consists of two halves:

Image Panel (left or right, w-full md:w-1/2)

ElementDetails
Containeraspect-video rounded-2xl with gradient background class from data
Noise overlaySubtle SVG base64 checkerboard at 5% opacity for a “visual static” texture
Default stateCentered "Visual Data Encrypted" label in star-dim/50
Hover overlaybg-black/20 fades in (opacity 0 → 100) revealing “View Record →” with an ArrowRight icon
The hover reveal uses Framer Motion’s group-hover:opacity-100 transition-opacity pattern — no JS state is needed, pure CSS group hover.

Text Panel (right or left, w-full md:w-1/2)

ElementDetails
Subtitlefont-mono text-sm in the entry’s accent color (e.g. text-aurora-teal)
Titletext-3xl md:text-4xl font-heading font-bold text-star-white
Descriptiontext-star-dim text-lg leading-relaxed
CTA button"Initialize Playback" — outlined pill button, hovers to border-aurora-teal text-aurora-teal

Entry Accents

Each case study has its own accent color that applies to the subtitle label:
Case StudyAccent class
Project Apollotext-aurora-teal
Voyager Dashboardtext-aurora-magenta
The image gradient also visually reinforces this distinction — Apollo uses a cooler slate gradient, while Voyager uses a deeper indigo-to-slate.

Animation Details

<motion.div
  initial={{ opacity: 0, y: 50 }}
  whileInView={{ opacity: 1, y: 0 }}
  viewport={{ once: true, margin: '-100px' }}
>
The -100px viewport margin means the reveal fires 100 pixels before the element fully scrolls into view, preventing a jarring pop-in at the exact scroll boundary.

Customization

Adding a new case study — append an object to caseStudies:
{
  title: 'Pulsar CMS',
  subtitle: 'Content Platform',
  desc: 'Rebuilt the editorial workflow for a high-traffic publication, reducing publish latency by 60%.',
  image: 'bg-gradient-to-br from-violet-900 to-slate-900',
  accent: 'text-aurora-violet',
}
The alternating layout will automatically handle positioning of the new panel. Replacing the placeholder image — swap the image gradient class with a real image background:
image: 'bg-[url("/images/pulsar-cms-preview.png")] bg-cover bg-center',
Changing the CTA label — find "Initialize Playback" in the button and replace with your desired label (e.g. "Read Full Report").
The image panel currently shows "Visual Data Encrypted" as a placeholder. This is intentional to maintain the encryption/decryption narrative. Replace the inner content of the image div with a real screenshot or illustration when the portfolio is live.
Each panel entry supports any valid Tailwind gradient class for image. Use from-, via-, and to- stops to match the project’s brand palette — the gradient acts as both a placeholder and a subtle brand signal.

Build docs developers (and LLMs) love