|
| 1 | +# CLAUDE.md |
| 2 | + |
| 3 | +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. |
| 4 | + |
| 5 | +## Project Overview |
| 6 | + |
| 7 | +This is the teaser landing page for **Fedify Studio**, an upcoming ActivityPub development and debugging platform (releasing H2 2026). It's a static Vue 3 application built with Vite and UnoCSS. |
| 8 | + |
| 9 | +## Tech Stack |
| 10 | + |
| 11 | +- **Vue 3** with Composition API and `<script setup>` syntax |
| 12 | +- **Vite 7** as the build tool |
| 13 | +- **UnoCSS** for atomic CSS (Tailwind-compatible utilities) |
| 14 | +- **TypeScript** for type safety |
| 15 | +- **pnpm** as the package manager |
| 16 | + |
| 17 | +## Common Commands |
| 18 | + |
| 19 | +```bash |
| 20 | +pnpm install # Install dependencies |
| 21 | +pnpm dev # Start dev server at http://localhost:5173 |
| 22 | +pnpm build # Type-check and build for production |
| 23 | +pnpm preview # Preview production build |
| 24 | +``` |
| 25 | + |
| 26 | +## Project Structure |
| 27 | + |
| 28 | +- `src/components/` - Vue single-file components for each section |
| 29 | +- `src/composables/` - Reusable composition functions (e.g., `useDarkMode`) |
| 30 | +- `src/style.css` - Global styles, CSS variables for theming |
| 31 | +- `uno.config.ts` - UnoCSS configuration (presets, theme colors, shortcuts) |
| 32 | +- `public/` - Static assets (logos) |
| 33 | + |
| 34 | +## Key Patterns |
| 35 | + |
| 36 | +### Dark Mode |
| 37 | +Dark mode is implemented via: |
| 38 | +1. CSS class `.dark` on `<html>` element |
| 39 | +2. CSS variables in `src/style.css` that change based on `.dark` class |
| 40 | +3. `useDarkMode` composable for toggle logic |
| 41 | +4. Initial detection in `index.html` script (prevents flash) |
| 42 | + |
| 43 | +### Styling |
| 44 | +- Use UnoCSS utility classes (Tailwind-compatible) |
| 45 | +- Custom colors defined in `uno.config.ts` under `theme.colors.fedify` |
| 46 | +- Shortcuts defined for common patterns (`btn`, `btn-primary`, `card`, etc.) |
| 47 | +- Global animations defined in `src/style.css` |
| 48 | + |
| 49 | +### Components |
| 50 | +All section components are in `src/components/`: |
| 51 | +- `TheHeader.vue` - Fixed header with nav and dark mode toggle |
| 52 | +- `HeroSection.vue` - Hero with animated background |
| 53 | +- `PainPointsSection.vue` - Problem statement cards |
| 54 | +- `FeaturesSection.vue` - Feature grid with icons |
| 55 | +- `RoadmapSection.vue` - Timeline of development phases |
| 56 | +- `NewsletterSection.vue` - Email subscription form (UI only, no backend) |
| 57 | +- `TheFooter.vue` - Footer with links |
| 58 | + |
| 59 | +## Design Guidelines |
| 60 | + |
| 61 | +- **Color palette**: Based on Fedify logo (sky blue #0ea5e9, violet #a855f7, pink #ec4899) |
| 62 | +- **Typography**: IBM Plex Sans (body), Instrument Sans (display) |
| 63 | +- **Style**: Clean, professional, subtle gradients, not overly flashy |
| 64 | +- **Responsive**: Mobile-first, breakpoints at sm/md/lg |
| 65 | + |
| 66 | +## Notes |
| 67 | + |
| 68 | +- Newsletter form is frontend-only (no backend integration yet) |
| 69 | +- The `WHITEPAPER.md` file contains detailed feature specifications |
| 70 | +- Logo files are in both root directory and `public/` folder |
0 commit comments