Skip to content

feat: add grid layout for Material/Samsung collection attachments (5/7) - #3181

Open
DeveloperBlue wants to merge 54 commits into
BlueBubblesApp:masterfrom
DeveloperBlue:developerblue/collections/grid
Open

feat: add grid layout for Material/Samsung collection attachments (5/7)#3181
DeveloperBlue wants to merge 54 commits into
BlueBubblesApp:masterfrom
DeveloperBlue:developerblue/collections/grid

Conversation

@DeveloperBlue

@DeveloperBlue DeveloperBlue commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Adds a Google Message/Material-inspired grid for multi-attachment media collections on Material and Samsung skins.

Built on top of #3176 (collage layout) and continues toward #3147 / #3122.

  • New CollectionGroupGrid — composable layout bands on a shared 3-column grid
  • Route Material / Samsung collections (2+) to grid; iOS collage/stack routing unchanged
  • +N overflow cell when count > 7 — tap opens fullscreen; long-press expands remaining items inline
  • Author-edge reaction overhang + tightened corners when subject/body is adjacent
  • bugfix: drop extra avatar inset on collections
  • bugfix: restore bottom spacing under Material reply bubble

I had a lot of fun with this one, the way the grid composes itself and expands is pretty nice.

2–3 Items +N Inline Expand
2-3-items
long-press-expand.mp4
7 Items + Reactions 5 Items + Subject/Body
7-reactions 5-subject-body-video

Changes (commit-by-commit)

  1. CollectionGroupGrid — Material/Samsung grid widget (bands, chrome, reactions, download wrap)
  2. Route Material/Samsung → gridMessagePartContent / layout resolve uses grid for non-iOS collections
  3. Reaction clipping — keep grid cell reactions from clipping; tighter author-edge overhang
  4. No card shadows on tiles — flat grid chrome vs collage/stack cards
  5. +N see-more cell — overlay count when truncated; tap → fullscreen
  6. Square media in cells — cover-fill without letterboxing inside grid tiles
  7. Outer silhouette clip — clip the whole grid instead of per-cell rounding
  8. Author-edge corner tighten — when subject or body sits above/below the grid
  9. Docs — grid layout + routing notes in collections/CLAUDE.md
  10. Material reply spacing — missing bottom gap under reply bubble
  11. Drop extra avatar inset on collections
  12. Composable bands rework — banner / HeroStack(n) / SquareRow(n) packing for expanded layouts
  13. Skin corner radii — Material / Samsung / iOS radius tuning
  14. Long-press +N inline expand — load remaining items in place + haptics
Per-file changes

collections/collection_group_grid.dart

New grid layout: composable bands, +N truncate/expand, silhouette clip, reactions, download wrap.

collections/collection_attachment_card.dart

Grid-aware chrome (no shadow, square cells, reaction overhang).

message_part_content.dart

Route Material/Samsung media collections to CollectionGroupGrid.

resolved_file_content.dart

Square/cover fill behavior for grid cells.

message_holder.dart / reply_bubble_section.dart

Avatar inset + Material reply bottom spacing fixes.

collections/CLAUDE.md

Routing table (iOS collage/stack vs Material/Samsung grid) and grid ownership notes.

Partially addresses #3122 and #2605 and lays groundwork for #2812

…ttachments (swipe-to-reply, popover, reply preview)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant