diff --git a/src/App.tsx b/src/App.tsx index 33d15f9..3f99632 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -2,11 +2,13 @@ import { Routes, Route } from 'react-router-dom'; import Layout from './components/Layout'; import HomePage from './pages/HomePage'; +import ShopPage from "@/pages/ShopPage"; export default function App() { return ( }> } /> + } /> ); diff --git a/src/components/Layout.tsx b/src/components/Layout.tsx index 6a19413..ab36fbb 100644 --- a/src/components/Layout.tsx +++ b/src/components/Layout.tsx @@ -27,7 +27,9 @@ export default function Layout() { }, { "name": "Team", "href": "#team" - } + }, + { name: "Shop", href: "/shop" }, + ]; return ( diff --git a/src/pages/ShopPage.tsx b/src/pages/ShopPage.tsx new file mode 100644 index 0000000..21c4657 --- /dev/null +++ b/src/pages/ShopPage.tsx @@ -0,0 +1,135 @@ +import { routes } from "@/routes"; +import NavbarCentered from "@/components/ui/NavbarCentered"; +import HeroBillboard from "@/components/sections/hero/HeroBillboard"; +import FooterMinimal from "@/components/sections/footer/FooterMinimal"; +import Card from "@/components/ui/Card"; +import ImageOrVideo from "@/components/ui/ImageOrVideo"; +import Tag from "@/components/ui/Tag"; +import RatingStars from "@/components/ui/RatingStars"; +import PriceDisplay from "@/components/ui/PriceDisplay"; +import Button from "@/components/ui/Button"; + +const SHOP_PRODUCTS = [ + { + id: "p1", + name: "Ruby Matte Signature Lipstick", + price: 14.99, + originalPrice: 22.00, + rating: 4.9, + reviews: 1284, + isSale: true, + imageSrc: "https://images.unsplash.com/photo-1586495777744-4413f21062fa?auto=format&fit=crop&q=80" + }, + { + id: "p2", + name: "Velvet Finish Liquid Foundation", + price: 24.50, + rating: 4.7, + reviews: 856, + isSale: false, + imageSrc: "https://images.unsplash.com/photo-1608248543803-ba4f8c70ae0b?auto=format&fit=crop&q=80" + }, + { + id: "p3", + name: "Crimson Glow Highlighter Palette", + price: 18.00, + originalPrice: 25.00, + rating: 4.8, + reviews: 642, + isSale: true, + imageSrc: "https://images.unsplash.com/photo-1599305090598-fe179d501227?auto=format&fit=crop&q=80" + }, + { + id: "p4", + name: "Midnight Black Precision Eyeliner", + price: 12.99, + rating: 4.6, + reviews: 415, + isSale: false, + imageSrc: "https://images.unsplash.com/photo-1631214500515-8739516115a8?auto=format&fit=crop&q=80" + }, + { + id: "p5", + name: "Rose Petal 18-Color Eyeshadow", + price: 29.99, + originalPrice: 38.00, + rating: 4.9, + reviews: 2105, + isSale: true, + imageSrc: "https://images.unsplash.com/photo-1512496115841-8743e1d92f1a?auto=format&fit=crop&q=80" + }, + { + id: "p6", + name: "All-Day Flawless Setting Spray", + price: 16.50, + rating: 4.5, + reviews: 328, + isSale: false, + imageSrc: "https://images.unsplash.com/photo-1620916566398-39f1143ab7be?auto=format&fit=crop&q=80" + } +]; + +export default function ShopPage() { + return ( +
+ ({ name: r.label, href: r.path }))} + ctaButton={{ text: "Cart (0)", href: "/cart" }} + /> + +
+ + +
+
+

The Ruby Collection

+

Explore our complete line of premium makeup products, featuring exclusive online pricing and verified customer reviews.

+
+ +
+ {SHOP_PRODUCTS.map((product) => ( + +
+ + {product.isSale && ( +
+ +
+ )} +
+ +
+

{product.name}

+ +
+ + ({product.reviews} reviews) +
+ +
+ +
+ +
+
+ ))} +
+
+
+ + +
+ ); +} \ No newline at end of file diff --git a/src/routes.ts b/src/routes.ts index 362ecb5..0e35e4b 100644 --- a/src/routes.ts +++ b/src/routes.ts @@ -6,4 +6,5 @@ export interface Route { export const routes: Route[] = [ { path: '/', label: 'Home', pageFile: 'HomePage' }, + { path: '/shop', label: 'Shop', pageFile: 'ShopPage' }, ];