From 2dcf53619f568d397eae272fcd20dcbe2a06bf10 Mon Sep 17 00:00:00 2001 From: Thomas Trompette Date: Wed, 15 Jul 2026 18:43:37 +0200 Subject: [PATCH] fix(front): keep kanban header columns full-width when board overflows viewport (#22926) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Problem Before Capture d’écran 2026-07-15 à 18 26
22 After Capture d’écran 2026-07-15 à 18 26
12 The record board (Kanban) header breaks when the screen is narrower than the total column width. The stage header columns squish together to fit the viewport while the cards below keep their fixed 220px width and scroll horizontally, so the header labels no longer line up with their columns. Regression from #22323. ## Cause #22323 wrapped each column header in `DragDropColumnSortableCell`. In `fill` mode its `StyledSortableRoot` uses `min-width: 0` with the default `flex-shrink: 1`, so the header cells collapse below their column width when the board is wider than the viewport, instead of overflowing into horizontal scroll like the body. ## Fix Pin `flex-shrink: 0` in `fill` mode so header cells keep their column width and overflow in step with the body. `fill` is board-only; the record table header uses non-fill mode and is unaffected. ## Testing Opportunities → "By Stage" Kanban, narrow the window below the total column width: header stays aligned with the cards and scrolls horizontally with them. Review in cubic --- .../drag-and-drop/components/DragDropColumnSortableCell.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/twenty-front/src/modules/ui/utilities/drag-and-drop/components/DragDropColumnSortableCell.tsx b/packages/twenty-front/src/modules/ui/utilities/drag-and-drop/components/DragDropColumnSortableCell.tsx index b29e559b90..cfc7e9b009 100644 --- a/packages/twenty-front/src/modules/ui/utilities/drag-and-drop/components/DragDropColumnSortableCell.tsx +++ b/packages/twenty-front/src/modules/ui/utilities/drag-and-drop/components/DragDropColumnSortableCell.tsx @@ -21,6 +21,7 @@ const SORTABLE_TRANSITION = { const StyledSortableRoot = styled.div<{ $fill?: boolean }>` display: ${({ $fill }) => ($fill ? 'flex' : 'block')}; + flex-shrink: ${({ $fill }) => ($fill ? 0 : 'initial')}; height: ${({ $fill }) => ($fill ? '100%' : 'auto')}; min-height: 0; min-width: ${({ $fill }) => ($fill ? '0' : 'auto')};