# Mehraein Reference ## Shared Components (`app/components/`) | Component | Purpose | Key props | |-----------|---------|-----------| | `Button` | Primary/outline CTA | `variant: "primary" \| "outline"` | | `Input` | Text/search input | `variant: "primary" \| "search"` | | `Carousel` | Embla image slider | — | | `GridWrapper` | Responsive grid layout | — | | `Select` | Dropdown select | — | | `Seprator` | Visual divider | — | ## Layout Shell (`app/shared/`) | File | Role | |------|------| | `Header.tsx` | Top bar, logo, search, nav, cart | | `Footer.tsx` | Footer sections | | `components/HeaderMenu.tsx` | Navigation menu | | `components/AllProductsMenu.tsx` | Products mega-menu | | `components/Footer*.tsx` | Footer sub-sections | ## Feature Routes | Route | Entry | Root component | |-------|-------|----------------| | `/` | `app/page.tsx` | `app/home/Home.tsx` | | `/category` | `app/category/page.tsx` | inline in page | | `/product/[id]` | `app/product/[id]/page.tsx` | `ProductDetail` | ## Home Sections (`app/home/components/`) `BannerSection`, `StepSection`, `CategorySection`, `ProductSection`, `OrderByApplication`, `BestSellerCategories`, `OrderRegistrationSteps`, `BlogsSection`, `ContactCtaSection`, `ProductCard`, `CategoryCard`, `BlogCard` ## Product Sections (`app/product/components/`) `ProductDetail`, `ProductGallery`, `ProductPurchaseOptions`, `ProductOrderActions`, `ProductTabs`, `ProductRelated`, `ProductBreadcrumb` ## Category Sections (`app/category/components/`) `CategoryHero`, `CategoryToolbar`, `CategoryFilters`, `CategoryProducts` ## Color Palette (beyond theme tokens) | Hex | Typical use | |-----|-------------| | `#194873` | Body accent text | | `#2A3950` | Card titles | | `#3A4147` | Header/promo text | | `#6C7680` | Secondary nav icons | | `#D00003` | Strikethrough price | | `#E9EEF2` | Card borders | | `#004A9005` | Tinted info box background | ## Responsive Breakpoints Follow Tailwind defaults (`sm`, `md`, `lg`). Common layout shifts: - Mobile: stacked columns, compact padding - `lg`: side-by-side layouts, wider padding (`lg:px-[120px]` or `lg:px-30`) - Header: mobile cart/actions vs desktop full nav ## Docker Build Notes - Multi-stage build with Liara npm mirror - Standalone Next.js output - Runs as non-root `appuser` on port 3000