# Groups

Groups help you organize birthdays into meaningful categories. Cakeday comes with default groups and lets you create as many custom groups as you need.

## Default Groups

When you first use Cakeday, three default groups are created, each with its own icon and color:

- **Default** — tray icon, purple
- **Family** — heart icon, coral
- **Friends** — two-people icon, blue

You can rename, recolor, re-icon, or delete the default groups (as long as at least one group remains).

  Any birthday that does not belong to a group appears under an automatic
  **Ungrouped** entry in the groups management screen (and under the **All**
  chip in the group filter bar). Ungrouped is not a real group you can rename or
  delete — it simply collects everyone without a group.

## Creating a Group

Go to the groups management screen and tap the add button. Each group has three properties:

- **Name:** A text label for the group (e.g., "Colleagues", "School").
- **Color:** A color used as the visual indicator for the group. Pick from the curated palette (organized into **Bright**, **Fresh**, and **Deep** pages), or choose any color you like with the **Custom Color** option, which opens the system color picker (including the eyedropper).
- **Icon:** An SF Symbol icon displayed alongside the group name.

## Editing and Deleting Groups

Tap a group to open it, then use the toolbar to edit its name, color, or icon. To delete a group, swipe left on it (or use the context menu) and confirm. If the group contains any birthdays, they are automatically reassigned to the adjacent group — the confirmation message tells you exactly where they will go (for example, _Friends in this group will be moved to "Family"_). There is no destination picker, so if you want the members to land somewhere specific, move them first. You cannot delete the last remaining group.

## Managing a Group's Members

Tapping a group opens its detail screen, which lists every member of that group. From here you can:

- **Search** the member list by name.
- **Sort** the list by **Upcoming**, **Name**, or **Birth Month**.
- **Filter** the list by one or more conditions: **App Notification Off**, **No Reminder Time**, **No Friend Timezone**, **Next 30 Days**, **No Avatar**, and **No Birth Year**.

### Batch Actions

Enter multi-select mode to act on many friends at once. Use **Smart Select** to select everyone, the current (filtered) list, or just the friends matching a condition. With friends selected, tap **Actions** to apply a batch change:

- **Move to Group** — move the selected friends to another group, or to **Ungrouped**.
- **App Notification** — turn in-app birthday notifications on or off.
- **Notification Reminder Times…** — set the reminder times for the selected friends.
- **Birthday Alarm** and **Birthday Alarm Time…** — turn the alarm on or off and set its time (shown only when Birthday Alarm is available on your device).
- **Notify at Friend's Timezone** — turn timezone-aware notifications on or off.
- **System Calendar** — turn calendar events on or off.
- **Delete Friends** — remove the selected birthday records.

  After a non-destructive batch change, a confirmation appears with an **Undo
  Changes** button so you can revert it right away. Deleting friends is
  permanent and cannot be undone.

## Reordering Groups

Long-press and drag a group to change its position in the list. The sort order is preserved across app launches and synced via iCloud.

## Minimum Group Constraint

Cakeday requires at least one group to exist at all times. Every birthday must belong to exactly one group. When creating a new birthday, the default group is pre-selected, but you can change it in the editor.

## Group Color and Icon Consistency

A group's color and icon are stored on the group itself, not on individual people. They are set in the group editor, and every member shares them. Because the value lives in one place, editing a group's color or icon once instantly updates how all of its members are shown — you never need to update each person individually.

## Dark Mode Color Adaptation

Group colors automatically adapt to Dark Mode. In light appearance, colors appear at their standard brightness. In dark appearance, Cakeday adjusts the color lightness to maintain readability and visual contrast against dark backgrounds.
