From 602acf7a162afcd3628d6d5973eec186811366d5 Mon Sep 17 00:00:00 2001 From: "Abdullah." <125115953+mabdullahabaid@users.noreply.github.com> Date: Sun, 21 Jun 2026 18:05:51 +0500 Subject: [PATCH] fix(twenty-website): fill feature-card visual frame on wide viewports (#21876) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Problem On the home feature cards, the visual frame is capped at `max-width: 411px` (the scene's design width) and centered. Below ~411px-wide cards this is invisible, but once a card grows past 411px (wider viewports) the dark scene stops filling and the **card's light background shows on both sides** of the visual. At 1200px everything looks correct because the cards are narrower than 411px and the cap is never engaged; the issue only appears as the viewport widens. ## Fix `FeatureCard.tsx`, one file: - **Remove the `max-width: 411px` cap** (and the now-dead `margin: 0 auto`) from `CardImageFrame` so the frame fills the card width at every breakpoint. `useScaleToFit` then scales the 411×508 scene up to match — it's a CSS transform on DOM, so it stays crisp; no raster upscaling. - **Even out the card gutter** — `CardImage` padding `8px → 16px` (top + sides) so the visual's inset matches the content's 16px inset instead of stepping in. Bottom stays `0` (the content block's 16px provides the bottom gutter). The visual scenes themselves are untouched — this is purely the frame/container. ## Before image ## After image --- .../src/sections/feature-cards/FeatureCard.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/twenty-website/src/sections/feature-cards/FeatureCard.tsx b/packages/twenty-website/src/sections/feature-cards/FeatureCard.tsx index 9257a14bbb..cd6e7e7508 100644 --- a/packages/twenty-website/src/sections/feature-cards/FeatureCard.tsx +++ b/packages/twenty-website/src/sections/feature-cards/FeatureCard.tsx @@ -36,7 +36,7 @@ const CardContainer = styled.div` const CardImage = styled.div` box-sizing: border-box; - padding: ${spacing(2)} ${spacing(2)} 0; + padding: ${spacing(4)} ${spacing(4)} 0; width: 100%; `; @@ -46,14 +46,14 @@ const SCENE_DESIGN_HEIGHT_PX = 508; // Locked to the scene design box: every scene renders a fixed 411x508 // design box scaled by frame-width / 411, so the frame, the scaled scene, -// and any inner content shrink together at every breakpoint. +// and any inner content scale together at every breakpoint. The frame fills +// the card width (no max-width cap) so the dark scene reaches both edges +// instead of leaving the card background showing once the card exceeds 411. const CardImageFrame = styled.div` aspect-ratio: ${SCENE_DESIGN_WIDTH_PX} / ${SCENE_DESIGN_HEIGHT_PX}; background-color: ${color('black-10')}; border-radius: 2px; isolation: isolate; - margin: 0 auto; - max-width: ${SCENE_DESIGN_WIDTH_PX}px; overflow: hidden; position: relative; width: 100%;