From eebf2a4b7defe3f67b53f5da715d3abdd62c3662 Mon Sep 17 00:00:00 2001 From: Pierre Brisorgueil Date: Fri, 3 Apr 2026 15:30:41 +0200 Subject: [PATCH 1/4] feat(home): add HomeCtaComponent for final CTA section Add a reusable call-to-action component with centered layout, title, subtitle, and dual CTA buttons (primary + secondary). Supports variant for background alternation. Registered between FAQ and contact sections. Closes #3837 --- .../home/components/home.cta.component.vue | 111 ++++++++++++++++++ src/modules/home/views/home.view.vue | 3 + 2 files changed, 114 insertions(+) create mode 100644 src/modules/home/components/home.cta.component.vue diff --git a/src/modules/home/components/home.cta.component.vue b/src/modules/home/components/home.cta.component.vue new file mode 100644 index 000000000..0c5f46b27 --- /dev/null +++ b/src/modules/home/components/home.cta.component.vue @@ -0,0 +1,111 @@ + + + + diff --git a/src/modules/home/views/home.view.vue b/src/modules/home/views/home.view.vue index c929f69b1..9f6bcb4a2 100644 --- a/src/modules/home/views/home.view.vue +++ b/src/modules/home/views/home.view.vue @@ -35,6 +35,7 @@ :color-mode="config.home.statistics.colorMode" > + @@ -59,6 +60,7 @@ import homeSocialComponent from '../components/home.social.component.vue'; import homeArticlesComponent from '../components/home.articles.component.vue'; import homeStatisticsComponent from '../components/home.statistics.component.vue'; import homeFaqComponent from '../components/home.faq.component.vue'; +import homeCtaComponent from '../components/home.cta.component.vue'; import homeContactComponent from '../components/home.contact.component.vue'; /** @@ -79,6 +81,7 @@ export default { homeArticlesComponent, homeStatisticsComponent, homeFaqComponent, + homeCtaComponent, homeContactComponent, }, data() { From 688430e8cb24353c9c0d042ffa389a3329be61d4 Mon Sep 17 00:00:00 2001 From: Pierre Brisorgueil Date: Fri, 3 Apr 2026 15:30:59 +0200 Subject: [PATCH 2/4] feat(home): add imgMode prop to features cards for SVG illustrations Support 'cover' (default) and 'contain' image fit modes on homeImgComponent, passed through from features card config. Allows SVG illustrations to display without cropping. Closes #3839 --- .../home/components/home.features.component.vue | 5 +++-- .../home/components/utils/home.img.component.vue | 13 ++++++++++++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/modules/home/components/home.features.component.vue b/src/modules/home/components/home.features.component.vue index 16aa2fe95..97cc3c268 100644 --- a/src/modules/home/components/home.features.component.vue +++ b/src/modules/home/components/home.features.component.vue @@ -19,6 +19,7 @@ { subtitle: 'Product Name', img: '/images/card01.webp', + imgMode: 'cover', // 'cover' (default) or 'contain' for SVG illustrations text: 'Description with **markdown** support.', reversed: false, // Image position (false = top, true = bottom) fullWidth: false, // Full width card @@ -60,14 +61,14 @@ - + - + diff --git a/src/modules/home/components/utils/home.img.component.vue b/src/modules/home/components/utils/home.img.component.vue index 78155aebe..d4247f551 100644 --- a/src/modules/home/components/utils/home.img.component.vue +++ b/src/modules/home/components/utils/home.img.component.vue @@ -19,6 +19,7 @@ - title (String): Title text displayed on image - text (String): Description text displayed on image - alt (String): Alt text for accessibility (falls back to title, then empty string for decorative images) + - imgMode (String): Image fit mode — 'cover' (default) or 'contain' for SVG illustrations NOTES: - Uses lazy-src for placeholder during loading @@ -32,7 +33,8 @@ :class="`${config.vuetify.theme.rounded}`" :height="height || ($vuetify.display.xsAndDown ? '225px' : $vuetify.display.smAndDown ? '300px' : '350px')" :gradient="gradient" - cover + :cover="imgMode !== 'contain'" + :style="imgMode === 'contain' ? 'object-fit: contain' : ''" :alt="alt || title || ''" >