fix: use CSS grid + plain divs for decoration grid, eliminate flex-shrink overlap
CI / Build & Quality Checks (push) Successful in 10m33s
Trigger Desktop Build / trigger (push) Successful in 15s

The outer Box(direction=Column, gap=300) was a flex column with flex-shrink:1
on children. With maxHeight:480 + overflowY:auto, when total content exceeded
480px the flex children compressed into each other, making cells appear to
overlap regardless of the gap on the inner flex container.

Replace with:
- Plain div scroll container (display:flex flex-direction:column gap:24)
  so children never shrink — they overflow into scroll area
- Plain div per category (gap:10 between label and grid)
- CSS grid (auto-fill, 72px columns, gap:20) for cells so row spacing is
  explicit and cannot be affected by flex layout math

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-14 15:32:19 -04:00
parent a5fe358313
commit 99e6a456a7
@@ -220,26 +220,27 @@ export function ProfileDecoration() {
)} )}
{/* Category grid */} {/* Category grid */}
<Box <div
direction="Column"
gap="300"
style={{ style={{
maxHeight: 480, maxHeight: 480,
overflowY: 'auto', overflowY: 'auto',
overflowX: 'hidden',
paddingRight: 4, paddingRight: 4,
display: 'flex',
flexDirection: 'column',
gap: 24,
}} }}
> >
{DECORATION_CATEGORIES.map((category) => ( {DECORATION_CATEGORIES.map((category) => (
<Box key={category.id} direction="Column" gap="200"> <div key={category.id} style={{ display: 'flex', flexDirection: 'column', gap: 10 }}>
<Text size="L400" style={{ opacity: 0.7 }}> <Text size="L400" style={{ opacity: 0.7 }}>
{category.label} {category.label}
</Text> </Text>
<div <div
style={{ style={{
display: 'flex', display: 'grid',
flexWrap: 'wrap', gridTemplateColumns: `repeat(auto-fill, ${CELL_SIZE}px)`,
gap: 16, gap: 20,
padding: 4,
}} }}
> >
{category.decorations.map((d) => ( {category.decorations.map((d) => (
@@ -252,9 +253,9 @@ export function ProfileDecoration() {
/> />
))} ))}
</div> </div>
</Box> </div>
))} ))}
</Box> </div>
</Box> </Box>
</SettingTile> </SettingTile>
); );