From 7f715e4b01221da4dc7715a2a4ad1f1d8179b548 Mon Sep 17 00:00:00 2001 From: kayjaydee Date: Wed, 8 Apr 2026 18:34:03 +0200 Subject: [PATCH] feat(03-01): create 9 shared components for landing sections and project display - HeroSection: title + subtitle + 3 CTA UButtons - FeaturedProjectsSection: 3 featured projects via useProjects() - ServicesSection: 4 service cards with UCard + UIcon - TestimonialsSection: UCard per testimonial with ratings and stats - FAQSection: UAccordion with i18n-resolved items - CTASection: final CTA with 2 UButtons - ProjectCard: NuxtLink + NuxtImg + UBadge + schema.org microdata - TechBadge: Technology lookup with NuxtImg + UBadge level - ProjectGallery: UModal fullscreen + UCarousel + thumbnails + keyboard nav --- app/components/ProjectCard.vue | 92 +++++++++++++++++++ app/components/ProjectGallery.vue | 91 ++++++++++++++++++ app/components/TechBadge.vue | 76 +++++++++++++++ app/components/sections/CTASection.vue | 20 ++++ app/components/sections/FAQSection.vue | 32 +++++++ .../sections/FeaturedProjectsSection.vue | 22 +++++ app/components/sections/HeroSection.vue | 27 ++++++ app/components/sections/ServicesSection.vue | 48 ++++++++++ .../sections/TestimonialsSection.vue | 67 ++++++++++++++ 9 files changed, 475 insertions(+) create mode 100644 app/components/ProjectCard.vue create mode 100644 app/components/ProjectGallery.vue create mode 100644 app/components/TechBadge.vue create mode 100644 app/components/sections/CTASection.vue create mode 100644 app/components/sections/FAQSection.vue create mode 100644 app/components/sections/FeaturedProjectsSection.vue create mode 100644 app/components/sections/HeroSection.vue create mode 100644 app/components/sections/ServicesSection.vue create mode 100644 app/components/sections/TestimonialsSection.vue diff --git a/app/components/ProjectCard.vue b/app/components/ProjectCard.vue new file mode 100644 index 0000000..dd529c3 --- /dev/null +++ b/app/components/ProjectCard.vue @@ -0,0 +1,92 @@ + + + diff --git a/app/components/ProjectGallery.vue b/app/components/ProjectGallery.vue new file mode 100644 index 0000000..955e59b --- /dev/null +++ b/app/components/ProjectGallery.vue @@ -0,0 +1,91 @@ + + + diff --git a/app/components/TechBadge.vue b/app/components/TechBadge.vue new file mode 100644 index 0000000..5a96f96 --- /dev/null +++ b/app/components/TechBadge.vue @@ -0,0 +1,76 @@ + + + diff --git a/app/components/sections/CTASection.vue b/app/components/sections/CTASection.vue new file mode 100644 index 0000000..d5e00d1 --- /dev/null +++ b/app/components/sections/CTASection.vue @@ -0,0 +1,20 @@ + + + diff --git a/app/components/sections/FAQSection.vue b/app/components/sections/FAQSection.vue new file mode 100644 index 0000000..8024c45 --- /dev/null +++ b/app/components/sections/FAQSection.vue @@ -0,0 +1,32 @@ + + + diff --git a/app/components/sections/FeaturedProjectsSection.vue b/app/components/sections/FeaturedProjectsSection.vue new file mode 100644 index 0000000..3af4537 --- /dev/null +++ b/app/components/sections/FeaturedProjectsSection.vue @@ -0,0 +1,22 @@ + + + diff --git a/app/components/sections/HeroSection.vue b/app/components/sections/HeroSection.vue new file mode 100644 index 0000000..c86b8d8 --- /dev/null +++ b/app/components/sections/HeroSection.vue @@ -0,0 +1,27 @@ + + + diff --git a/app/components/sections/ServicesSection.vue b/app/components/sections/ServicesSection.vue new file mode 100644 index 0000000..0319d81 --- /dev/null +++ b/app/components/sections/ServicesSection.vue @@ -0,0 +1,48 @@ + + + diff --git a/app/components/sections/TestimonialsSection.vue b/app/components/sections/TestimonialsSection.vue new file mode 100644 index 0000000..ef23c6a --- /dev/null +++ b/app/components/sections/TestimonialsSection.vue @@ -0,0 +1,67 @@ + + +