Important Design Notes
This document records important product/design implementation ideas that should be easy to recover later.
View 2: Colorless Container
The colorless container view groups apps by tag into independent frosted-material cards.
Layout logic:
- Use a masonry/waterfall layout.
- Calculate how many columns fit in the available overlay width.
- Estimate each tag card's height from its app count, current icon size, and card width.
- Place each next tag group into the currently shortest column.
- Each card uses a transparent background over
.ultraThinMaterial, with only a subtle border by default.
- When the user hovers or clicks a tag/card, the corresponding card is filled with that tag's color at low opacity, creating a temporary focus state.
- Tag navigation hover/click scrolls to the matching card and also activates the same color fill.
Design intent:
- Keep the whole view visually light and non-color-dominant.
- Use color only as an interaction/focus signal.
- Let groups with different app counts occupy natural heights, so dense groups do not force empty space in neighboring groups.
View 4: Colorless Grid
The colorless grid view also groups apps by tag into frosted-material cards, but aligns cards into row-based grid tracks instead of waterfall columns.
Layout logic:
- Choose a preferred number of grid tracks per row based on available width:
- 3 tracks on wide screens
- 2 tracks on medium screens
- 1 track on narrow screens
- For each row, test span patterns:
- 3-track row:
1+1+1, 1+2, 2+1, or 3
- 2-track row:
1+1 or 2
- 1-track row:
1
- Pick the lowest-cost pattern by estimating how many icon rows each card needs.
- Cards in the same row share the same fixed icon-row height, so their bottoms align.
- Inside each card, apps are manually split into rows and empty cells are filled with clear placeholders to preserve grid alignment.
- Like colorless container view, the card is transparent over
.ultraThinMaterial by default and only receives low-opacity tag color on hover/click focus.
Design intent:
- Preserve the clarity of grouped cards while making rows visually orderly.
- Avoid the uneven bottom edges of masonry when the user wants a stricter grid feeling.
- Keep the "colorless by default, colored only on focus" interaction model consistent with View 2.
View 3: Colored Container
The colored container view uses the same masonry/waterfall layout as View 2, but each tag card is always tinted with its tag color.
Interaction logic:
- The card background is always filled with the tag color at low opacity over
.ultraThinMaterial.
- Hovering a card raises visual emphasis with shadow and a slight scale-up.
- Unlike the colorless container view, clicking the card does not toggle a persistent fill state because the card is already colored.
- Tag navigation hover/click still scrolls to the matching card, but the key visual distinction comes from the card's permanent tag color.
- App drag/drop behavior remains the same: dropping an app onto a card moves or copies it into that tag group.
Design intent:
- Make tag grouping immediately visible without requiring hover.
- Use color as a persistent category marker.
- Keep the masonry layout's compactness while making group identity stronger than View 2.
View 5: Colored Grid
The colored grid view uses the same row-aligned grid layout as View 4, but each tag card is always tinted with its tag color.
Interaction logic:
- Cards are arranged with the View 4 grid-row algorithm: adaptive track count, span pattern selection, and equal fixed icon-row height per row.
- Each card background is always filled with the tag color at low opacity over
.ultraThinMaterial.
- Hovering a card adds shadow and a slight scale-up to show focus.
- Clicking does not toggle a fill state because the colored background is permanent.
- Empty cells are still inserted inside each card to keep icon rows aligned.
- App drag/drop behavior remains the same as other container views.
Design intent:
- Combine the stronger category recognition of colored cards with the orderly rhythm of the grid layout.
- Make dense app libraries easier to scan by preserving row alignment.
- Use hover only for focus emphasis, not for revealing color.