Files
blackheart-website/CLAUDE.md

3.0 KiB

BLACK HEART DANCE HOUSE — Project Context

About

Landing page for "BLACK HEART DANCE HOUSE" — a pole dance school in Minsk, Belarus. Instagram: @blackheartdancehouse Content language: Russian

Tech Stack

  • Next.js 15 (App Router, TypeScript)
  • Tailwind CSS v4 (light + dark mode, class-based toggle)
  • lucide-react for icons
  • Fonts: Inter (body) + Oswald (headings) via next/font
  • Hosting: Vercel (planned)

Code Style

  • Function declarations for components (not arrow functions)
  • PascalCase for component files, camelCase for utils
  • @/ path alias for imports
  • Semantic CSS classes via @apply: surface-base, surface-muted, heading-text, body-text, nav-link, card, contact-item, contact-icon, theme-border
  • Only Header + ThemeToggle are client components (minimal JS shipped)
  • next/image with unoptimized for PNGs that need transparency preserved

Project Structure

src/
├── app/
│   ├── layout.tsx          # Root layout, fonts, metadata
│   ├── page.tsx            # Landing: Hero → Team → About → Classes → Contact
│   ├── globals.css         # Tailwind imports
│   ├── styles/
│   │   ├── theme.css       # Theme variables, semantic classes
│   │   └── animations.css  # Keyframes, scroll reveal, modal animations
│   ├── icon.png            # Favicon
│   └── apple-icon.png
├── components/
│   ├── layout/
│   │   ├── Header.tsx      # Sticky nav, mobile menu, theme toggle ("use client")
│   │   └── Footer.tsx
│   ├── sections/
│   │   ├── Hero.tsx
│   │   ├── Team.tsx        # "use client" — clickable cards + modal
│   │   ├── About.tsx
│   │   ├── Classes.tsx
│   │   └── Contact.tsx
│   └── ui/
│       ├── Button.tsx
│       ├── SectionHeading.tsx
│       ├── SocialLinks.tsx
│       ├── ThemeToggle.tsx
│       ├── Reveal.tsx      # Intersection Observer scroll reveal
│       └── TeamMemberModal.tsx  # "use client" — member popup
├── data/
│   └── content.ts          # ALL Russian text, structured for future CMS
├── lib/
│   └── constants.ts        # BRAND constants, NAV_LINKS
└── types/
    ├── index.ts
    ├── content.ts          # SiteContent, TeamMember, ClassItem, ContactInfo
    └── navigation.ts

Brand / Styling

  • Accent: rose/red (#e11d48)
  • Dark mode: bg #0a0a0a, surface #171717
  • Light mode: bg #fafafa, surface #ffffff
  • Logo: transparent PNG, uses dark:invert + unoptimized

Content Data

  • All text lives in src/data/content.ts (type-safe, one file to edit)
  • 13 team members with photos, Instagram links, and personal descriptions
  • 6 class types (Exotic Pole Dance, Pole Dance, Body Plastic, etc.)
  • 2 addresses in Minsk, Yandex Maps embed with markers
  • Contact: phone, Instagram

Git

  • Remote: Gitea at git.dolgolyov-family.by
  • User: diana.dolgolyova
  • Branch: main