Commit Graph

229 Commits

Author SHA1 Message Date
admin 3eb91a3cec Task 5: Build FloatingNav component with active section tracking
- Created useActiveSection hook using IntersectionObserver for scroll tracking
- Built FloatingNav with Framer Motion animated indicator dot
- Added section IDs to App.tsx for scroll targets
- Added scrollbar-hide utility and smooth scroll to index.css
2026-02-10 16:25:14 +00:00
admin 80e4efbcb2 Ralph iteration 3: work in progress 2026-02-10 16:13:49 +00:00
admin 60b005cf3b Update progress: Task 4 completed (ECGAnimation component) 2026-02-10 16:10:27 +00:00
admin a07557091a Task 4: Build ECGAnimation component with canvas-based heartbeat and name drawing 2026-02-10 16:08:07 +00:00
admin f41c0189cc Ralph iteration 2: work in progress 2026-02-10 16:00:57 +00:00
admin 77c03144a9 Task 2 & 3: Set up project structure and build BootSequence component
- Task 2: Project structure and types already complete from Task 1
- Task 3: Create BootSequence component with Framer Motion
  - 14 boot lines with 220ms staggered delays
  - Terminal typing animation with opacity/translateY transitions
  - Blinking cursor using CSS animation
  - AnimatePresence for 800ms exit fade
  - Total boot time ~4.28s matching concept.html
- Update App.tsx to use BootSequence with phase transitions
2026-02-10 15:59:44 +00:00
admin 17ffd237a2 Ralph iteration 1: work in progress 2026-02-10 15:48:45 +00:00
admin f140c16881 Task 1: Initialize React project with Vite, TypeScript, Tailwind
- Scaffolded project with React 18, Vite, TypeScript
- Configured Tailwind CSS with custom design tokens (teal, coral, ecg colors)
- Added Framer Motion and Lucide React dependencies
- Set up Google Fonts (Fira Code, Plus Jakarta Sans, Inter Tight)
- Created TypeScript interfaces for CV data types
- Added utility function for skill gauge calculations
- Quality checks passing: typecheck, build, lint all clean
2026-02-10 15:39:29 +00:00
admin 06a312fbb7 Ralph iteration 2: work in progress 2026-02-10 15:15:45 +00:00
admin 4c1af9ecaf Ralph iteration 1: work in progress 2026-02-10 15:15:41 +00:00
admin d788d2e4cf Mark Task 9 complete, update progress log
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 13:27:23 +00:00
admin 4d27cb5dc1 Task 9: Implement scroll animations and responsive design
- Add IntersectionObserver-based scroll reveal for all sections
- Sections start at opacity:0/translateY(24px), animate to visible on scroll
- Hero section immediately visible (above fold, no animation)
- Staggered child card/item animations with 60ms delay per item
- Animations fire once only (observer unobserved after reveal)
- Fix hover transform specificity for cards, education, projects
- Fix vital-card hover at hero-level specificity

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 13:26:44 +00:00
admin 7365d2cbac Mark Task 8 complete, update progress log
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 13:21:41 +00:00
admin c0dac8fe0c Task 8: Build education, projects, contact, and footer sections
- Education section with 2-column grid: MPharm (Hons) UEA and Mary Seacole Programme
- A-Levels displayed below education cards
- Projects section with 2x2 grid and gradient hover border effect
- PharMetrics project includes live link to medicines.charlwood.xyz
- Contact section with 4-column grid: phone, email, LinkedIn, location
- Footer with decorative ECG waveform SVG and attribution text
- Responsive: projects 1fr at 768px, education 1fr and contact 2x2 at 480px

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 13:21:11 +00:00
admin e6f416410a Mark Task 7 complete, update progress log
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 11:09:04 +00:00
admin a0fc24534a Task 7: Build experience section with timeline and ECG decoration
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 11:08:38 +00:00
admin 07ec6a6121 Mark Task 6 complete, update progress log
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 11:05:29 +00:00
admin 4940beb923 Task 6: Build skills section with circular SVG progress gauges
- Skills HTML/CSS/JS already built in prior iterations; this commit
  polishes: coral hover background for clinical skills, moves
  text-align:center to .section-heading class (removes inline style),
  confirms responsive gauge sizing at 480px
- 18 SVG circular gauges across 3 categories (Technical/Clinical/Strategic)
- Scroll-triggered IntersectionObserver animates stroke-dashoffset
  staggered by 100ms per gauge
- Clinical skills use coral color; technical/strategic use teal

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 11:05:08 +00:00
admin 2f48f1f1d3 Mark Task 5 complete, update progress log
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 10:47:34 +00:00
admin c428875b20 Task 5: Build hero section with vital sign cards
Add centered hero section with name, title, location pill, summary text,
and 4 vital sign metric cards (Years Experience, Analytics Stack, Focus
Area, System). Cards have teal top border and hover elevation effect.
Responsive: 2x2 grid at 768px, stacked at 480px.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 10:47:13 +00:00
admin eab8e71a48 Mark Task 4 complete, update progress log
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 10:45:00 +00:00
admin 6fdd33d981 Task 4: Build final design skeleton with floating pill nav and typography
- Add floating pill nav bar (fixed, centered, 600px max-width, pill-shaped)
- Add nav links for all 6 sections: About, Skills, Experience, Education, Projects, Contact
- Add active state with teal dot indicator via ::after pseudo-element
- Add IntersectionObserver for active section tracking (threshold 0.3, rootMargin -20%/0/-60%/0)
- Add smooth scroll on nav link click (offset -70px for nav clearance)
- Add main container with max-width 1000px and section padding
- Add .section-heading utility class for consistent section titles
- Add responsive breakpoints: 768px (scrollable nav, 20px padding) and 480px (compact nav, 16px padding)
- Initialize nav tracking after ECG phase reveal completes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 10:44:36 +00:00
admin ed7c6a9198 Mark Task 3 complete, update progress log
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 10:42:31 +00:00
admin 80ff51a1ee Task 3: Build second and third heartbeats with overflow branching
- Second heartbeat: R peak 60px, color shifts green→teal (#00C9A7), bg lightens to #0A0A0A
- Third heartbeat: R peak 100px, full teal (#00897B), bg lightens to #141414
- Overflow branching from third R peak apex: 7 SVG branch paths trace UI outlines
  - Branch 1: pill nav bar rounded rectangle at top center
  - Branches 2-3: hero section left/right edges
  - Branches 4-7: four vital sign card outlines
- Branches staggered by 50-150ms with cubic-bezier easing (800ms draw)
- Background transitions rapidly from near-black to white during branching
- All SVG lines fade out over 500ms, overlays removed from DOM, CV content revealed
- Glow filter dynamically matched to stroke color (green→teal)
- Total animation timing ~8.5s (within 8-9s guardrail)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 10:41:46 +00:00
admin 3de529ef50 Mark Task 2 complete, update progress log
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 10:38:57 +00:00
admin b5a08bb393 Task 2: Build ECG flatline and first heartbeat
Add the ECG animation phase between boot sequence fade and CV reveal.
After boot text fades out, a green flatline draws left-to-right across
the viewport center over 1000ms, followed by a PQRST heartbeat waveform
(R peak 40px) animating over 600ms. Uses SVG with stroke-dasharray/
dashoffset for line-drawing effect with green glow filter. The
drawHeartbeat() function is reusable for Task 3's escalating beats.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 10:38:22 +00:00
admin 48a37c4ee7 Mark Task 1 complete, update progress log
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 10:35:48 +00:00
admin 3541a5c81f Task 1: Build boot screen foundation
- Single self-contained HTML file with inline CSS and JS (IIFE, strict mode)
- Boot screen: fixed black overlay with Fira Code monospace font
- Boot text sequence matching guardrail format: CLINICAL TERMINAL v3.2.1,
  profile init, SYSTEM/USER/ROLE/LOCATION labels, module loading, [OK] lines
- Green (#00ff41) for values/OK, cyan (#00e5ff) for labels, dim green (#3a6b45) for text
- Blinking cursor animation (step-end blink)
- Lines appear sequentially with 220ms delay (~4s total boot)
- Boot text fades out after 400ms pause, boot screen removed after fade
- CSS variables and font loading for all 3 Google Font families
- CV content container ready for subsequent tasks

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 10:35:28 +00:00
admin f7f5b0cfbd Initial commit before Ralph loop 2026-02-09 10:33:40 +00:00