From 5115a4db8225252ad6b60cc540a0ccaab4ee4f32 Mon Sep 17 00:00:00 2001 From: Bastian Masanek Date: Sat, 1 Nov 2025 18:19:31 +0100 Subject: [PATCH] Add ProductCard and ProductGrid components for mobile-optimized product listings - Introduced ProductCard component to display individual product details, including image, title, description, price, and optional badges. - Added ProductGrid component to create a flexible grid layout for displaying multiple ProductCard components, supporting 1-4 columns. - Created a demo page to showcase the ProductCard and ProductGrid components in action, highlighting their responsive design and features. - Updated styleguide to include links and descriptions for the new components. --- app/components/Product/ProductCard.vue | 125 ++++++++++++++++ app/components/Product/ProductGrid.vue | 66 +++++++++ app/pages/internal/products-demo.vue | 191 +++++++++++++++++++++++++ app/pages/internal/styleguide.vue | 19 ++- 4 files changed, 400 insertions(+), 1 deletion(-) create mode 100644 app/components/Product/ProductCard.vue create mode 100644 app/components/Product/ProductGrid.vue create mode 100644 app/pages/internal/products-demo.vue diff --git a/app/components/Product/ProductCard.vue b/app/components/Product/ProductCard.vue new file mode 100644 index 0000000..f16aa9b --- /dev/null +++ b/app/components/Product/ProductCard.vue @@ -0,0 +1,125 @@ + + + diff --git a/app/components/Product/ProductGrid.vue b/app/components/Product/ProductGrid.vue new file mode 100644 index 0000000..50fac7e --- /dev/null +++ b/app/components/Product/ProductGrid.vue @@ -0,0 +1,66 @@ + + + diff --git a/app/pages/internal/products-demo.vue b/app/pages/internal/products-demo.vue new file mode 100644 index 0000000..4b56cd8 --- /dev/null +++ b/app/pages/internal/products-demo.vue @@ -0,0 +1,191 @@ + + + diff --git a/app/pages/internal/styleguide.vue b/app/pages/internal/styleguide.vue index a4819d6..77ca3b5 100644 --- a/app/pages/internal/styleguide.vue +++ b/app/pages/internal/styleguide.vue @@ -55,6 +55,7 @@ const copyCode = async (code: string) => {
  • Status Messages
  • Progress Bars
  • Components
  • +
  • → Product Cards Demo
  • @@ -655,18 +656,34 @@ const copyCode = async (code: string) => {

    Components

    -
    +

    Available Components

    • CommonHeader - Main navigation header with experimenta logo
    • CommonFooter - Footer with 4-column grid (links, contact, legal, social)
    • Button - shadcn-nuxt Button component with 7 variants
    • +
    • ProductCard - Mobile-optimized product card with image, badges, and CTA
    • +
    • ProductGrid - Flexible grid layout for product listings (1-4 columns)

    See individual component files in /app/components/

    + + +
    +

    Product Cards

    +

    + Speziell gestaltete Produktkarten für Jahreskarten und andere Produkte der experimenta. + Mobile-First Design mit Glassmorphism-Effekten, optionalen Badges und animierten Hover-Effekten. +

    +
    + + Zur Product Cards Demo → + +
    +