Files
hotschpotsh/Pottery-website/pages/FAQ.tsx
2026-03-23 19:00:17 -05:00

187 lines
9.7 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import React, { useState } from 'react';
import { Link } from 'react-router-dom';
import { motion, AnimatePresence } from 'framer-motion';
import SEO, { SITE_URL } from '../components/SEO';
interface FAQItem {
question: string;
answer: string;
}
const faqData: FAQItem[] = [
{
question: "Are your ceramics safe for food, oven, and dishwasher use?",
answer: "Yes all our pottery is glazed and food-safe. We use durable, non-toxic glazes that are oven-, microwave-, and dishwasher-safe. To extend their life, we still recommend hand-washing and avoiding harsh scrubbing. Treat your ceramicware gently (like any quality dishware) to keep the colors vibrant and the glaze strong."
},
{
question: "How unique is each piece?",
answer: "Every piece we create is handcrafted in small batches at our Corpus Christi studio. No two pieces are exactly alike — you will see slight variations and unique markings that make each item one-of-a-kind. These natural imperfections are a sign of true craftsmanship and the human hand behind every piece."
},
{
question: "Is the online shop currently open?",
answer: "Our online shop is temporarily closed while we focus on new collections and studio work. You can still reach us directly for custom commissions or inquiries. Sign up for our newsletter or follow us on Instagram to be the first to know when the shop reopens."
},
{
question: "Do you take custom orders or commissions?",
answer: "Yes — we accept a limited number of custom commissions each year. Claudia's work is rooted in the Art Center of Corpus Christi community. Whether you are looking for a bespoke dinnerware set or a one-of-a-kind gift, reach out directly at knuth.claudia@gmail.com to discuss your vision, timeline, and pricing."
},
{
question: "Do you offer pottery classes or workshops?",
answer: "Pottery classes and wheel-throwing workshops are available through the Art Center of Corpus Christi. Visit the Art Center for current class schedules and registration."
},
{
question: "How do I contact you with questions?",
answer: "We are here to help! You can reach us directly at knuth.claudia@gmail.com or use the contact form on our site. We aim to respond within 12 business days. Thank you for your interest in KNUTH Ceramics — we love hearing from you."
}
];
const faqSchema = {
"@context": "https://schema.org",
"@type": "FAQPage",
"name": "FAQ | KNUTH Ceramics — Handcrafted Pottery Corpus Christi",
"url": `${SITE_URL}/faq`,
"breadcrumb": {
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": `${SITE_URL}/` },
{ "@type": "ListItem", "position": 2, "name": "FAQ", "item": `${SITE_URL}/faq` }
]
},
"mainEntity": faqData.map(item => ({
"@type": "Question",
"name": item.question,
"acceptedAnswer": {
"@type": "Answer",
"text": item.answer
}
}))
};
const FAQ: React.FC = () => {
const [openIndex, setOpenIndex] = useState<number | null>(null);
const toggleFAQ = (index: number) => {
setOpenIndex(openIndex === index ? null : index);
};
return (
<div className="bg-stone-50 dark:bg-stone-900 min-h-screen pt-32 pb-24">
<SEO
title="FAQ — Handcrafted Ceramics & Pottery Classes | KNUTH Ceramics"
description="Answers to common questions about KNUTH Ceramics: food safety, custom commissions, pottery classes in Corpus Christi TX, clay bodies, glazes, and how to order."
canonical={`${SITE_URL}/faq`}
schema={faqSchema}
/>
<div className="max-w-[1200px] mx-auto px-6 md:px-12">
{/* Header */}
<div className="mb-24">
<motion.span
initial={{ opacity: 0 }}
animate={{ opacity: 1 }}
transition={{ duration: 1 }}
className="block text-xs uppercase tracking-[0.3em] text-stone-400 mb-6"
>
Help Center
</motion.span>
<motion.h1
initial={{ y: 30, opacity: 0 }}
animate={{ y: 0, opacity: 1 }}
transition={{ delay: 0.2, duration: 0.8 }}
className="font-display text-5xl md:text-7xl lg:text-8xl leading-none text-text-main dark:text-white mb-8"
>
Frequently Asked<br />Questions
</motion.h1>
<motion.p
initial={{ y: 30, opacity: 0 }}
animate={{ y: 0, opacity: 1 }}
transition={{ delay: 0.4, duration: 0.8 }}
className="font-body text-lg font-light text-stone-500 leading-relaxed max-w-2xl"
>
Find answers to common questions about our handcrafted ceramics, shipping, care instructions, and more.
</motion.p>
</div>
{/* FAQ Items */}
<div className="space-y-4">
{faqData.map((item, index) => (
<motion.div
key={index}
initial={{ y: 20, opacity: 0 }}
animate={{ y: 0, opacity: 1 }}
transition={{ delay: index * 0.1, duration: 0.6 }}
className="border border-stone-200 dark:border-stone-800 bg-white dark:bg-black"
>
<button
onClick={() => toggleFAQ(index)}
className="w-full px-8 py-6 flex justify-between items-center hover:bg-stone-50 dark:hover:bg-stone-900 transition-colors"
>
<h3 className="font-body text-lg md:text-xl text-left text-text-main dark:text-white pr-8">
{item.question}
</h3>
<motion.div
animate={{ rotate: openIndex === index ? 45 : 0 }}
transition={{ duration: 0.3 }}
className="flex-shrink-0"
>
<svg
className="w-6 h-6 text-stone-400"
fill="none"
stroke="currentColor"
viewBox="0 0 24 24"
>
<path
strokeLinecap="round"
strokeLinejoin="round"
strokeWidth={1.5}
d="M12 4v16m8-8H4"
/>
</svg>
</motion.div>
</button>
<AnimatePresence>
{openIndex === index && (
<motion.div
initial={{ height: 0, opacity: 0 }}
animate={{ height: "auto", opacity: 1 }}
exit={{ height: 0, opacity: 0 }}
transition={{ duration: 0.3 }}
className="overflow-hidden"
>
<div className="px-8 pb-6 border-t border-stone-100 dark:border-stone-800 pt-6">
<p className="font-body font-light text-stone-600 dark:text-stone-400 leading-relaxed">
{item.answer}
</p>
</div>
</motion.div>
)}
</AnimatePresence>
</motion.div>
))}
</div>
{/* Contact CTA */}
<motion.div
initial={{ y: 30, opacity: 0 }}
animate={{ y: 0, opacity: 1 }}
transition={{ delay: 0.8, duration: 0.8 }}
className="mt-24 p-12 bg-primary dark:bg-black text-white text-center border border-stone-800"
>
<h2 className="font-display text-3xl md:text-4xl mb-4">Still have questions?</h2>
<p className="font-body font-light text-stone-400 mb-8 max-w-xl mx-auto">
We're here to help. Reach out to our customer support team.
</p>
<Link
to="/contact"
className="inline-block bg-white text-black px-10 py-4 text-xs font-bold uppercase tracking-widest hover:bg-stone-200 transition-colors"
>
Contact Us
</Link>
</motion.div>
</div>
</div>
);
};
export default FAQ;