7 Commits

Author SHA1 Message Date
bc6d3cfa38 Update src/app/shop/page.tsx 2026-01-24 17:17:37 +00:00
b2c93f4d41 Update src/app/page.tsx 2026-01-24 17:17:37 +00:00
ea0644f5d5 Update src/app/layout.tsx 2026-01-24 17:17:36 +00:00
b8ea73173c Update src/app/globals.css 2026-01-24 17:17:35 +00:00
7ed4909ead Update src/app/contact/page.tsx 2026-01-24 17:17:34 +00:00
1df7093b01 Update src/app/blog/page.tsx 2026-01-24 17:17:33 +00:00
165a23fa5a Update src/app/about/page.tsx 2026-01-24 17:17:32 +00:00
7 changed files with 64 additions and 168 deletions

View File

@@ -15,7 +15,7 @@ export default function AboutPage() {
borderRadius="rounded" borderRadius="rounded"
contentWidth="mediumSmall" contentWidth="mediumSmall"
sizing="largeSizeMediumTitles" sizing="largeSizeMediumTitles"
background="circleGradient" background="floatingGradient"
cardStyle="gradient-mesh" cardStyle="gradient-mesh"
primaryButtonStyle="diagonal-gradient" primaryButtonStyle="diagonal-gradient"
secondaryButtonStyle="solid" secondaryButtonStyle="solid"
@@ -41,27 +41,16 @@ export default function AboutPage() {
description="Discover how I transform vintage and pre-loved garments into stunning new creations through careful curation, design, and craftsmanship." description="Discover how I transform vintage and pre-loved garments into stunning new creations through careful curation, design, and craftsmanship."
features={[ features={[
{ {
id: "1", id: "1", title: "Sourcing Quality Materials", author: "Step 1", description: "I carefully hunt for vintage, secondhand, and surplus garments with great potential. Each piece is inspected for quality, durability, and unique characteristics that will shine in its new form.", tags: ["Selection", "Sourcing"],
title: "Sourcing Quality Materials",
author: "Step 1",
description: "I carefully hunt for vintage, secondhand, and surplus garments with great potential. Each piece is inspected for quality, durability, and unique characteristics that will shine in its new form.",
tags: ["Selection", "Sourcing"],
imageSrc: "https://img.b2bpic.net/free-photo/woman-shopping-thrift-store_23-2150952333.jpg" imageSrc: "https://img.b2bpic.net/free-photo/woman-shopping-thrift-store_23-2150952333.jpg"
}, },
{ {
id: "2", id: "2", title: "Design & Planning", author: "Step 2", description: "I sketch and plan the transformation, envisioning how the fabric and original design elements can be reimagined. This is where creativity meets sustainability.", tags: ["Design", "Planning"],
title: "Design & Planning",
author: "Step 2",
description: "I sketch and plan the transformation, envisioning how the fabric and original design elements can be reimagined. This is where creativity meets sustainability.",
tags: ["Design", "Planning"],
imageSrc: "https://img.b2bpic.net/free-photo/man-owner-counter-packing-clothes-yellow-plastic-bag_23-2148175679.jpg" imageSrc: "https://img.b2bpic.net/free-photo/man-owner-counter-packing-clothes-yellow-plastic-bag_23-2148175679.jpg"
}, },
{ {
id: "3", id: "3",
title: "Handcrafted Construction", title: "Handcrafted Construction", author: "Step 3", description: "Each piece is carefully cut, sewn, and finished by hand. This meticulous process ensures quality and allows for unique details that make each garment one-of-a-kind.", tags: ["Crafting", "Handmade"],
author: "Step 3",
description: "Each piece is carefully cut, sewn, and finished by hand. This meticulous process ensures quality and allows for unique details that make each garment one-of-a-kind.",
tags: ["Crafting", "Handmade"],
imageSrc: "https://img.b2bpic.net/free-photo/various-type-clothes-clothing-store_23-2148175674.jpg" imageSrc: "https://img.b2bpic.net/free-photo/various-type-clothes-clothing-store_23-2148175674.jpg"
} }
]} ]}
@@ -77,14 +66,10 @@ export default function AboutPage() {
tag="Impact" tag="Impact"
metrics={[ metrics={[
{ {
id: "1", id: "1", value: "80%", description: "Less water used compared to conventional clothing production"
value: "80%",
description: "Less water used compared to conventional clothing production"
}, },
{ {
id: "2", id: "2", value: "Zero", description: "Waste sent to landfill from our production process"
value: "Zero",
description: "Waste sent to landfill from our production process"
} }
]} ]}
useInvertedBackground="invertDefault" useInvertedBackground="invertDefault"

View File

@@ -88,7 +88,7 @@ export default function BlogPage() {
borderRadius="rounded" borderRadius="rounded"
contentWidth="mediumSmall" contentWidth="mediumSmall"
sizing="largeSizeMediumTitles" sizing="largeSizeMediumTitles"
background="circleGradient" background="floatingGradient"
cardStyle="gradient-mesh" cardStyle="gradient-mesh"
primaryButtonStyle="diagonal-gradient" primaryButtonStyle="diagonal-gradient"
secondaryButtonStyle="solid" secondaryButtonStyle="solid"

View File

@@ -15,7 +15,7 @@ export default function ContactPage() {
borderRadius="rounded" borderRadius="rounded"
contentWidth="mediumSmall" contentWidth="mediumSmall"
sizing="largeSizeMediumTitles" sizing="largeSizeMediumTitles"
background="circleGradient" background="floatingGradient"
cardStyle="gradient-mesh" cardStyle="gradient-mesh"
primaryButtonStyle="diagonal-gradient" primaryButtonStyle="diagonal-gradient"
secondaryButtonStyle="solid" secondaryButtonStyle="solid"
@@ -55,34 +55,22 @@ export default function ContactPage() {
useInvertedBackground="invertDefault" useInvertedBackground="invertDefault"
faqs={[ faqs={[
{ {
id: "1", id: "1", title: "Are all pieces truly one-of-a-kind?", content: "Yes! Each garment is handcrafted from unique vintage and secondhand materials. While I may create similar styles, no two pieces are exactly alike. This is what makes upcycled fashion so special."
title: "Are all pieces truly one-of-a-kind?",
content: "Yes! Each garment is handcrafted from unique vintage and secondhand materials. While I may create similar styles, no two pieces are exactly alike. This is what makes upcycled fashion so special."
}, },
{ {
id: "2", id: "2", title: "How are garments sized?", content: "Each item includes detailed measurements and sizing information. Since pieces are upcycled, they may vary slightly. I recommend checking the specific measurements for your chosen garment."
title: "How are garments sized?",
content: "Each item includes detailed measurements and sizing information. Since pieces are upcycled, they may vary slightly. I recommend checking the specific measurements for your chosen garment."
}, },
{ {
id: "3", id: "3", title: "What materials do you use?", content: "I source vintage clothing, deadstock fabrics, and quality secondhand garments. All materials are carefully selected for durability and beauty. No virgin polyester—only sustainable choices."
title: "What materials do you use?",
content: "I source vintage clothing, deadstock fabrics, and quality secondhand garments. All materials are carefully selected for durability and beauty. No virgin polyester—only sustainable choices."
}, },
{ {
id: "4", id: "4", title: "How long does shipping take?", content: "Orders are handcrafted to order. Typical processing time is 2-3 weeks, plus 5-10 business days for shipping within Europe. Custom requests may take longer."
title: "How long does shipping take?",
content: "Orders are handcrafted to order. Typical processing time is 2-3 weeks, plus 5-10 business days for shipping within Europe. Custom requests may take longer."
}, },
{ {
id: "5", id: "5", title: "Can I request custom pieces?", content: "Absolutely! I love creating custom upcycled pieces. Please reach out with your vision, and we can discuss materials, style, and timeline for your unique garment."
title: "Can I request custom pieces?",
content: "Absolutely! I love creating custom upcycled pieces. Please reach out with your vision, and we can discuss materials, style, and timeline for your unique garment."
}, },
{ {
id: "6", id: "6", title: "What's your return policy?", content: "Since each piece is handcrafted and unique, returns are accepted within 14 days if the item is unworn and in original condition. Please contact me to discuss any issues."
title: "What's your return policy?",
content: "Since each piece is handcrafted and unique, returns are accepted within 14 days if the item is unworn and in original condition. Please contact me to discuss any issues."
} }
]} ]}
/> />

View File

@@ -4,21 +4,21 @@
/* Base units */ /* Base units */
/* --vw is set by ThemeProvider */ /* --vw is set by ThemeProvider */
/* --background: #fafffb;; /* --background: #f9f5f0;;
--card: #f7fffa;; --card: #efe5d8;;
--foreground: #001a0a;; --foreground: #3d2817;;
--primary-cta: #0a7039;; --primary-cta: #c8704c;;
--secondary-cta: #ffffff;; --secondary-cta: #f9f5f0;;
--accent: #a8d9be;; --accent: #d9a884;;
--background-accent: #6bbf8e;; */ --background-accent: #c4926f;; */
--background: #fafffb;; --background: #f9f5f0;;
--card: #f7fffa;; --card: #efe5d8;;
--foreground: #001a0a;; --foreground: #3d2817;;
--primary-cta: #0a7039;; --primary-cta: #c8704c;;
--secondary-cta: #ffffff;; --secondary-cta: #f9f5f0;;
--accent: #a8d9be;; --accent: #d9a884;;
--background-accent: #6bbf8e;; --background-accent: #c4926f;;
/* text sizing - set by ThemeProvider */ /* text sizing - set by ThemeProvider */
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem); /* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);
@@ -578,7 +578,7 @@ html {
body { body {
background-color: var(--background); background-color: var(--background);
color: var(--foreground); color: var(--foreground);
font-family: var(--font-source-sans-3), sans-serif; font-family: var(--font-poppins), sans-serif;
position: relative; position: relative;
min-height: 100vh; min-height: 100vh;
overscroll-behavior: none; overscroll-behavior: none;
@@ -591,5 +591,5 @@ h3,
h4, h4,
h5, h5,
h6 { h6 {
font-family: var(--font-source-sans-3), sans-serif; font-family: var(--font-poppins), sans-serif;
} }

View File

@@ -1,27 +1,18 @@
import type { Metadata } from "next"; import type { Metadata } from "next";
import { Source_Sans_3 } from "next/font/google"; import { Poppins } from "next/font/google";
import "./globals.css"; import "./globals.css";
const sourceSans3 = Source_Sans_3({ const poppins = Poppins({
variable: "--font-source-sans-3", variable: "--font-poppins", subsets: ["latin"],
subsets: ["latin"], weight: ["100", "200", "300", "400", "500", "600", "700", "800", "900"],
}); });
export const metadata: Metadata = { export const metadata: Metadata = {
title: "Upcycled Threads | Sustainable Fashion & Handcrafted Clothing", title: "Upcycled Threads | Sustainable Fashion & Handcrafted Clothing", description: "Transform your wardrobe with unique, handcrafted upcycled fashion. Shop one-of-a-kind pieces made from vintage & sustainable materials. Eco-conscious style.", keywords: ["upcycled fashion", "sustainable clothing", "handmade garments", "vintage fashion", "eco-friendly apparel", "second-hand style"],
description: "Transform your wardrobe with unique, handcrafted upcycled fashion. Shop one-of-a-kind pieces made from vintage & sustainable materials. Eco-conscious style.",
keywords: ["upcycled fashion", "sustainable clothing", "handmade garments", "vintage fashion", "eco-friendly apparel", "second-hand style"],
openGraph: { openGraph: {
title: "Upcycled Threads | Sustainable Fashion", title: "Upcycled Threads | Sustainable Fashion", description: "Discover unique, handcrafted upcycled fashion pieces that celebrate creativity and environmental responsibility.", siteName: "Upcycled Threads", type: "website"},
description: "Discover unique, handcrafted upcycled fashion pieces that celebrate creativity and environmental responsibility.",
siteName: "Upcycled Threads",
type: "website",
},
twitter: { twitter: {
card: "summary_large_image", card: "summary_large_image", title: "Upcycled Threads | Sustainable Fashion", description: "Transform your wardrobe with unique, handcrafted upcycled pieces"},
title: "Upcycled Threads | Sustainable Fashion",
description: "Transform your wardrobe with unique, handcrafted upcycled pieces",
},
robots: { robots: {
index: true, index: true,
follow: true, follow: true,
@@ -35,7 +26,7 @@ export default function RootLayout({
}>) { }>) {
return ( return (
<html lang="en"> <html lang="en">
<body className={`${sourceSans3.variable} antialiased`}> <body className={`${poppins.variable} antialiased`}>
{children} {children}
<script <script

View File

@@ -20,7 +20,7 @@ export default function HomePage() {
borderRadius="rounded" borderRadius="rounded"
contentWidth="mediumSmall" contentWidth="mediumSmall"
sizing="largeSizeMediumTitles" sizing="largeSizeMediumTitles"
background="circleGradient" background="floatingGradient"
cardStyle="gradient-mesh" cardStyle="gradient-mesh"
primaryButtonStyle="diagonal-gradient" primaryButtonStyle="diagonal-gradient"
secondaryButtonStyle="solid" secondaryButtonStyle="solid"
@@ -77,32 +77,16 @@ export default function HomePage() {
tagIcon={ShoppingBag} tagIcon={ShoppingBag}
products={[ products={[
{ {
id: "1", id: "1", name: "Vintage Denim Jacket", price: "€75", imageSrc: "https://img.b2bpic.net/free-photo/medium-shot-young-women-posing-outdoors_23-2149412643.jpg", imageAlt: "Upcycled vintage denim jacket"
name: "Vintage Denim Jacket",
price: "€75",
imageSrc: "https://img.b2bpic.net/free-photo/medium-shot-young-women-posing-outdoors_23-2149412643.jpg",
imageAlt: "Upcycled vintage denim jacket"
}, },
{ {
id: "2", id: "2", name: "Patchwork Summer Dress", price: "€95", imageSrc: "https://img.b2bpic.net/free-photo/front-view-woman-wearing-vacation-outfit_23-2150668926.jpg", imageAlt: "Handcrafted patchwork summer dress"
name: "Patchwork Summer Dress",
price: "€95",
imageSrc: "https://img.b2bpic.net/free-photo/front-view-woman-wearing-vacation-outfit_23-2150668926.jpg",
imageAlt: "Handcrafted patchwork summer dress"
}, },
{ {
id: "3", id: "3", name: "Organic Cotton Shirt", price: "€65", imageSrc: "https://img.b2bpic.net/free-photo/casual-curly-man-handrail_23-2147678271.jpg", imageAlt: "Sustainable organic cotton shirt"
name: "Organic Cotton Shirt",
price: "€65",
imageSrc: "https://img.b2bpic.net/free-photo/casual-curly-man-handrail_23-2147678271.jpg",
imageAlt: "Sustainable organic cotton shirt"
}, },
{ {
id: "4", id: "4", name: "Upcycled Joggers", price: "€85", imageSrc: "https://img.b2bpic.net/free-photo/woman-holding-bag-fruit-park_23-2148595056.jpg", imageAlt: "Comfortable upcycled joggers"
name: "Upcycled Joggers",
price: "€85",
imageSrc: "https://img.b2bpic.net/free-photo/woman-holding-bag-fruit-park_23-2148595056.jpg",
imageAlt: "Comfortable upcycled joggers"
} }
]} ]}
gridVariant="four-items-2x2-equal-grid" gridVariant="four-items-2x2-equal-grid"
@@ -121,40 +105,22 @@ export default function HomePage() {
description="Real reviews from people who've discovered their perfect upcycled piece" description="Real reviews from people who've discovered their perfect upcycled piece"
testimonials={[ testimonials={[
{ {
id: "1", id: "1", name: "Emma S.", role: "Fashion Lover", company: "Amsterdam", rating: 5,
name: "Emma S.", imageSrc: "https://img.b2bpic.net/free-photo/front-view-business-woman-suit_23-2148603018.jpg", imageAlt: "Customer Emma"
role: "Fashion Lover",
company: "Amsterdam",
rating: 5,
imageSrc: "https://img.b2bpic.net/free-photo/front-view-business-woman-suit_23-2148603018.jpg",
imageAlt: "Customer Emma"
}, },
{ {
id: "2", id: "2", name: "Sophie D.", role: "Sustainability Advocate",
name: "Sophie D.", company: "Paris", rating: 5,
role: "Sustainability Advocate", imageSrc: "https://img.b2bpic.net/free-photo/happy-professional_1098-12931.jpg", imageAlt: "Customer Sophie"
company: "Paris",
rating: 5,
imageSrc: "https://img.b2bpic.net/free-photo/happy-professional_1098-12931.jpg",
imageAlt: "Customer Sophie"
}, },
{ {
id: "3", id: "3", name: "Marcus B.", role: "Design Professional", company: "Berlin",
name: "Marcus B.",
role: "Design Professional",
company: "Berlin",
rating: 5, rating: 5,
imageSrc: "https://img.b2bpic.net/free-photo/smiling-beautiful-middle-aged-business-woman_1262-3085.jpg", imageSrc: "https://img.b2bpic.net/free-photo/smiling-beautiful-middle-aged-business-woman_1262-3085.jpg", imageAlt: "Customer Marcus"
imageAlt: "Customer Marcus"
}, },
{ {
id: "4", id: "4", name: "Lisa M.", role: "Eco-Warrior", company: "Copenhagen", rating: 5,
name: "Lisa M.", imageSrc: "https://img.b2bpic.net/free-photo/close-up-confident-corporate-woman-professional-entrepreneur-smiling-cross-arms-chest-smiling-enthusiastic-standing-white-background_1258-85600.jpg", imageAlt: "Customer Lisa"
role: "Eco-Warrior",
company: "Copenhagen",
rating: 5,
imageSrc: "https://img.b2bpic.net/free-photo/close-up-confident-corporate-woman-professional-entrepreneur-smiling-cross-arms-chest-smiling-enthusiastic-standing-white-background_1258-85600.jpg",
imageAlt: "Customer Lisa"
} }
]} ]}
gridVariant="uniform-all-items-equal" gridVariant="uniform-all-items-equal"

View File

@@ -16,7 +16,7 @@ export default function ShopPage() {
borderRadius="rounded" borderRadius="rounded"
contentWidth="mediumSmall" contentWidth="mediumSmall"
sizing="largeSizeMediumTitles" sizing="largeSizeMediumTitles"
background="circleGradient" background="floatingGradient"
cardStyle="gradient-mesh" cardStyle="gradient-mesh"
primaryButtonStyle="diagonal-gradient" primaryButtonStyle="diagonal-gradient"
secondaryButtonStyle="solid" secondaryButtonStyle="solid"
@@ -44,46 +44,22 @@ export default function ShopPage() {
tagIcon={ShoppingBag} tagIcon={ShoppingBag}
products={[ products={[
{ {
id: "1", id: "1", name: "Vintage Denim Jacket", price: "€75", imageSrc: "https://img.b2bpic.net/free-photo/medium-shot-young-women-posing-outdoors_23-2149412643.jpg", imageAlt: "Upcycled vintage denim jacket"
name: "Vintage Denim Jacket",
price: "€75",
imageSrc: "https://img.b2bpic.net/free-photo/medium-shot-young-women-posing-outdoors_23-2149412643.jpg",
imageAlt: "Upcycled vintage denim jacket"
}, },
{ {
id: "2", id: "2", name: "Patchwork Summer Dress", price: "€95", imageSrc: "https://img.b2bpic.net/free-photo/front-view-woman-wearing-vacation-outfit_23-2150668926.jpg", imageAlt: "Handcrafted patchwork summer dress"
name: "Patchwork Summer Dress",
price: "€95",
imageSrc: "https://img.b2bpic.net/free-photo/front-view-woman-wearing-vacation-outfit_23-2150668926.jpg",
imageAlt: "Handcrafted patchwork summer dress"
}, },
{ {
id: "3", id: "3", name: "Organic Cotton Shirt", price: "€65", imageSrc: "https://img.b2bpic.net/free-photo/casual-curly-man-handrail_23-2147678271.jpg", imageAlt: "Sustainable organic cotton shirt"
name: "Organic Cotton Shirt",
price: "€65",
imageSrc: "https://img.b2bpic.net/free-photo/casual-curly-man-handrail_23-2147678271.jpg",
imageAlt: "Sustainable organic cotton shirt"
}, },
{ {
id: "4", id: "4", name: "Upcycled Joggers", price: "€85", imageSrc: "https://img.b2bpic.net/free-photo/woman-holding-bag-fruit-park_23-2148595056.jpg", imageAlt: "Comfortable upcycled joggers"
name: "Upcycled Joggers",
price: "€85",
imageSrc: "https://img.b2bpic.net/free-photo/woman-holding-bag-fruit-park_23-2148595056.jpg",
imageAlt: "Comfortable upcycled joggers"
}, },
{ {
id: "5", id: "5", name: "Reworked Blazer", price: "€110", imageSrc: "https://img.b2bpic.net/free-photo/medium-shot-young-women-posing-outdoors_23-2149412643.jpg", imageAlt: "Professional reworked blazer"
name: "Reworked Blazer",
price: "€110",
imageSrc: "https://img.b2bpic.net/free-photo/medium-shot-young-women-posing-outdoors_23-2149412643.jpg",
imageAlt: "Professional reworked blazer"
}, },
{ {
id: "6", id: "6", name: "Sustainable Skirt", price: "€55", imageSrc: "https://img.b2bpic.net/free-photo/front-view-woman-wearing-vacation-outfit_23-2150668926.jpg", imageAlt: "Eco-friendly sustainable skirt"
name: "Sustainable Skirt",
price: "€55",
imageSrc: "https://img.b2bpic.net/free-photo/front-view-woman-wearing-vacation-outfit_23-2150668926.jpg",
imageAlt: "Eco-friendly sustainable skirt"
} }
]} ]}
gridVariant="three-columns-all-equal-width" gridVariant="three-columns-all-equal-width"
@@ -102,22 +78,12 @@ export default function ShopPage() {
description="See what our customers say about their upcycled fashion experience" description="See what our customers say about their upcycled fashion experience"
testimonials={[ testimonials={[
{ {
id: "1", id: "1", name: "Emma S.", role: "Fashion Enthusiast", company: "Amsterdam", rating: 5,
name: "Emma S.", imageSrc: "https://img.b2bpic.net/free-photo/front-view-business-woman-suit_23-2148603018.jpg", imageAlt: "Customer Emma"
role: "Fashion Enthusiast",
company: "Amsterdam",
rating: 5,
imageSrc: "https://img.b2bpic.net/free-photo/front-view-business-woman-suit_23-2148603018.jpg",
imageAlt: "Customer Emma"
}, },
{ {
id: "2", id: "2", name: "Sophie D.", role: "Eco Advocate", company: "Paris", rating: 5,
name: "Sophie D.", imageSrc: "https://img.b2bpic.net/free-photo/happy-professional_1098-12931.jpg", imageAlt: "Customer Sophie"
role: "Eco Advocate",
company: "Paris",
rating: 5,
imageSrc: "https://img.b2bpic.net/free-photo/happy-professional_1098-12931.jpg",
imageAlt: "Customer Sophie"
} }
]} ]}
gridVariant="uniform-all-items-equal" gridVariant="uniform-all-items-equal"