Version 1
This commit is contained in:
@@ -0,0 +1,196 @@
|
||||
// Path: Store/src/data/royalPop.ts
|
||||
|
||||
export interface RoyalPopColorway {
|
||||
id: string;
|
||||
name: string;
|
||||
subtitle: string;
|
||||
style: "A" | "B";
|
||||
styleText: string;
|
||||
crownDescription: string;
|
||||
crownSpec: string;
|
||||
crownStatValue: string;
|
||||
crownStatLabel: string;
|
||||
swatchColor: string;
|
||||
previewBackground: string;
|
||||
previewImage: string;
|
||||
cardImage: string;
|
||||
}
|
||||
|
||||
export interface StatItem {
|
||||
id?: string;
|
||||
value: string;
|
||||
label: string;
|
||||
}
|
||||
|
||||
export interface ComparisonRow {
|
||||
label: string;
|
||||
royalPop: string;
|
||||
standardBuild: string;
|
||||
}
|
||||
|
||||
export interface SpecRow {
|
||||
label: string;
|
||||
value: string;
|
||||
dynamic?: "crownPosition";
|
||||
}
|
||||
|
||||
const styleADescription = "Traditional Lépine-style crown at 12 o'clock. A faithful pocket-watch orientation with the crown centered at the top of the wrist.";
|
||||
|
||||
const styleBDescription = "Standard sports-watch crown at 3 o'clock. Full ergonomic wrist comfort with direct time-setting access - no strap removal needed.";
|
||||
|
||||
export const colorways: RoyalPopColorway[] = [
|
||||
{
|
||||
id: "ocho-negro",
|
||||
name: "ONYX",
|
||||
subtitle: "All Black",
|
||||
style: "A",
|
||||
styleText: "Style A · 12 o'clock Crown",
|
||||
crownDescription: styleADescription,
|
||||
crownSpec: "Style A · 12 o'clock (Lépine crown)",
|
||||
crownStatValue: "12°",
|
||||
crownStatLabel: "Lépine Crown",
|
||||
swatchColor: "#1a1a1a",
|
||||
previewBackground: "linear-gradient(180deg, #f5f5f7 0%, #eeeeef 100%)",
|
||||
previewImage: "/images/royal-pop/colorways/ocho-negro.webp",
|
||||
cardImage: "/images/royal-pop/gallery/ocho-negro-card.webp",
|
||||
},
|
||||
{
|
||||
id: "pure-white",
|
||||
name: "BLANC",
|
||||
subtitle: "All White",
|
||||
style: "A",
|
||||
styleText: "Style A · 12 o'clock Crown",
|
||||
crownDescription: styleADescription,
|
||||
crownSpec: "Style A · 12 o'clock (Lépine crown)",
|
||||
crownStatValue: "12°",
|
||||
crownStatLabel: "Lépine Crown",
|
||||
swatchColor: "#e8e8e8",
|
||||
previewBackground: "linear-gradient(180deg, #f7f7f8 0%, #ececef 100%)",
|
||||
previewImage: "/images/royal-pop/colorways/pure-white.webp",
|
||||
cardImage: "/images/royal-pop/gallery/pure-white-card.webp",
|
||||
},
|
||||
{
|
||||
id: "pop-pink",
|
||||
name: "SAKURA",
|
||||
subtitle: "Pink · Red",
|
||||
style: "A",
|
||||
styleText: "Style A · 12 o'clock Crown",
|
||||
crownDescription: styleADescription,
|
||||
crownSpec: "Style A · 12 o'clock (Lépine crown)",
|
||||
crownStatValue: "12°",
|
||||
crownStatLabel: "Lépine Crown",
|
||||
swatchColor: "#f4b8c8",
|
||||
previewBackground: "linear-gradient(180deg, #f8f1f4 0%, #f1e4eb 100%)",
|
||||
previewImage: "/images/royal-pop/colorways/pop-pink.webp",
|
||||
cardImage: "/images/royal-pop/gallery/pop-pink-card.webp",
|
||||
},
|
||||
{
|
||||
id: "racer-green",
|
||||
name: "FOREST",
|
||||
subtitle: "All Green",
|
||||
style: "A",
|
||||
styleText: "Style A · 12 o'clock Crown",
|
||||
crownDescription: styleADescription,
|
||||
crownSpec: "Style A · 12 o'clock (Lépine crown)",
|
||||
crownStatValue: "12°",
|
||||
crownStatLabel: "Lépine Crown",
|
||||
swatchColor: "#2d9e48",
|
||||
previewBackground: "linear-gradient(180deg, #edf5ef 0%, #e2efe5 100%)",
|
||||
previewImage: "/images/royal-pop/colorways/racer-green.webp",
|
||||
cardImage: "/images/royal-pop/gallery/racer-green-card.webp",
|
||||
},
|
||||
{
|
||||
id: "lime-blue",
|
||||
name: "SAGE",
|
||||
subtitle: "Mint · Sky",
|
||||
style: "A",
|
||||
styleText: "Style A · 12 o'clock Crown",
|
||||
crownDescription: styleADescription,
|
||||
crownSpec: "Style A · 12 o'clock (Lépine crown)",
|
||||
crownStatValue: "12°",
|
||||
crownStatLabel: "Lépine Crown",
|
||||
swatchColor: "#b8e8c0",
|
||||
previewBackground: "linear-gradient(180deg, #eef6f5 0%, #e3eff2 100%)",
|
||||
previewImage: "/images/royal-pop/colorways/lime-blue.webp",
|
||||
cardImage: "/images/royal-pop/gallery/lime-blue-card.webp",
|
||||
},
|
||||
{
|
||||
id: "deep-blue-orange",
|
||||
name: "MIDNIGHT",
|
||||
subtitle: "Navy · Orange",
|
||||
style: "A",
|
||||
styleText: "Style A · 12 o'clock Crown",
|
||||
crownDescription: styleADescription,
|
||||
crownSpec: "Style A · 12 o'clock (Lépine crown)",
|
||||
crownStatValue: "12°",
|
||||
crownStatLabel: "Lépine Crown",
|
||||
swatchColor: "#0d1a3a",
|
||||
previewBackground: "linear-gradient(180deg, #eef1f5 0%, #e4e7ee 100%)",
|
||||
previewImage: "/images/royal-pop/colorways/deep-blue-orange.webp",
|
||||
cardImage: "/images/royal-pop/gallery/deep-blue-orange-card.webp",
|
||||
},
|
||||
{
|
||||
id: "light-blue-sprint",
|
||||
name: "GLACIER",
|
||||
subtitle: "Steel Blue",
|
||||
style: "B",
|
||||
styleText: "Style B · 3 o'clock Crown",
|
||||
crownDescription: styleBDescription,
|
||||
crownSpec: "Style B · 3 o'clock (Right-side crown)",
|
||||
crownStatValue: "3°",
|
||||
crownStatLabel: "Right Crown",
|
||||
swatchColor: "#3a6ea8",
|
||||
previewBackground: "linear-gradient(180deg, #edf3f7 0%, #e4ebf2 100%)",
|
||||
previewImage: "/images/royal-pop/colorways/light-blue-sprint.webp",
|
||||
cardImage: "/images/royal-pop/gallery/light-blue-sprint-card.webp",
|
||||
},
|
||||
{
|
||||
id: "sorbet-pop-multi-color",
|
||||
name: "SORBET",
|
||||
subtitle: "Pink · Yellow",
|
||||
style: "B",
|
||||
styleText: "Style B · 3 o'clock Crown",
|
||||
crownDescription: styleBDescription,
|
||||
crownSpec: "Style B · 3 o'clock (Right-side crown)",
|
||||
crownStatValue: "3°",
|
||||
crownStatLabel: "Right Crown",
|
||||
swatchColor: "#f5a0c0",
|
||||
previewBackground: "linear-gradient(180deg, #f6f2f4 0%, #efe7eb 100%)",
|
||||
previewImage: "/images/royal-pop/colorways/sorbet-pop-multi-color.webp",
|
||||
cardImage: "/images/royal-pop/gallery/sorbet-pop-multi-color-card.webp",
|
||||
},
|
||||
];
|
||||
|
||||
export const defaultColorway = colorways.find((colorway) => colorway.id === "sorbet-pop-multi-color") ?? colorways[0];
|
||||
|
||||
export const heroStats: StatItem[] = [
|
||||
{ id: "crown-stat", value: defaultColorway.crownStatValue, label: defaultColorway.crownStatLabel },
|
||||
{ value: "BIO", label: "Bioceramic Case" },
|
||||
{ value: "8", label: "Colorways" },
|
||||
{ id: "early-bird-stat", value: "£49.99", label: "Early Bird" },
|
||||
{ value: "50m", label: "Water Resistant" },
|
||||
{ value: "~1 Mo", label: "Preorder Ship" },
|
||||
];
|
||||
|
||||
export const comparisonRows: ComparisonRow[] = [
|
||||
{ label: "Weight", royalPop: "Ultra-light ✓", standardBuild: "Heavier" },
|
||||
{ label: "Scratch Resistance", royalPop: "Excellent ✓", standardBuild: "Moderate" },
|
||||
{ label: "Skin Feel", royalPop: "Ceramic-warm ✓", standardBuild: "Plastic-cold" },
|
||||
{ label: "Colour Stability", royalPop: "Permanent ✓", standardBuild: "Fades over time" },
|
||||
{ label: "AP Royal Pop Match", royalPop: "Exact compound ✓", standardBuild: "Visual only" },
|
||||
];
|
||||
|
||||
export const specRows: SpecRow[] = [
|
||||
{ label: "Case Material", value: "Premium Bioceramic" },
|
||||
{ label: "Strap Material", value: "High-grade Silicone" },
|
||||
{ label: "Crown Configuration", value: defaultColorway.crownSpec, dynamic: "crownPosition" },
|
||||
{ label: "Strap Width", value: "20 MM" },
|
||||
{ label: "Lug Adapter", value: "44 MM integrated" },
|
||||
{ label: "Long Band", value: "126.4 MM" },
|
||||
{ label: "Short Band", value: "104.2 MM" },
|
||||
{ label: "Wrist Fit", value: "5.6″ – 8.5″ (14.2 – 21.6 cm)" },
|
||||
{ label: "Compatibility", value: "Swatch × AP Royal Pop (all colourways)" },
|
||||
{ label: "Available Colorways", value: "8 Royal Pop references" },
|
||||
{ label: "Water Resistance", value: "50m" },
|
||||
{ label: "Preorder Dispatch", value: "Around 1 month" },
|
||||
];
|
||||
Reference in New Issue
Block a user