# CRUSH.md - Healthy Oil Project Guide ## Development Commands - `npm run dev` - Start development server on port 3000 - `npm run build` - Build for production (`tsc -b && vite build`) - `npm run lint` - Run ESLint on entire codebase - `npm run preview` - Preview production build on port 3000 ## Code Style Guidelines ### File Naming & Structure - Components: lowercase filenames (header.tsx, hero1.tsx, oil_info.tsx) - UI components: `/src/components/ui/` directory - Use function declarations for components, not arrow functions ### Import Conventions ```typescript // Chakra UI imports (named, grouped) import { Box, Flex, Image } from '@chakra-ui/react'; // TanStack Router imports import { createRouter, createRootRoute, createRoute } from '@tanstack/react-router'; import { Outlet, Link } from '@tanstack/react-router'; // Local imports (default preferred) import Header from './components/header'; ``` ### Component Pattern ```typescript function ComponentName() { return ( {/* JSX content */} ); } export default ComponentName; ``` ### Routing Pattern ```typescript // Create routes in src/router.tsx const route = createRoute({ getParentRoute: () => rootRoute, path: '/example', component: ExampleComponent, }); // Use for nested routes // Use for navigation ``` ### TypeScript & Configuration - Strict mode enabled with `noUnusedLocals`, `noUnusedParameters` - Path aliases available: `@/*` → `./src/*` - Use Chakra UI props for responsive design - Framer Motion for animations (`motion()` wrapper pattern) - TanStack Router for navigation and routing ### Styling Approach - Primary: Chakra UI props and components - External: colors.tsx for color system, fonts.css for typography - Responsive: `useBreakpointValue()` hook for breakpoints