Skip to content

Redesign Select bot grid with per-bot colors and icons#28

Merged
tpaulshippy merged 4 commits into
mainfrom
feat/select-bot-redesign
Jul 23, 2026
Merged

Redesign Select bot grid with per-bot colors and icons#28
tpaulshippy merged 4 commits into
mainfrom
feat/select-bot-redesign

Conversation

@tpaulshippy

Copy link
Copy Markdown
Owner

Summary

Redesigns the "Select bot" grid — the screen kids see to pick a tutor bot.

Before: a 2-column grid of oversized cyan tiles where every bot had the same generic chip icon, names were bottom-anchored and wrapped inconsistently ("Science Explorer" wrapped to 2 lines), and the header was plain small text.

After:

  • Distinct identity per bot — each bot gets a stable color and icon derived from a hash of its name (palette of 7 kid-friendly colors that read well in light and dark themes; 6 icons from the existing IconSymbol MAPPING: cpu, wand.and.sparkles, sparkles, star, mountain.2, text.bubble). No new icon mappings added.
  • Consistent tiles — fixed-size tiles with the bot's color, white icon centered in a translucent circle chip, name centered below on a single line (numberOfLines={1} ellipsis for long names), rounded corners, softer shadow. Name is white with a subtle text shadow for contrast.
  • Selected state — keeps the bot's color identity and shows a white border (previously the tile turned grey).
  • Friendlier header — larger centered "Select bot" title plus a "Who do you want to learn with today?" subtitle.

Selection behavior is unchanged: AsyncStorage selectedBot, setBotSelected callback, haptics, and skipAutoSelect all work exactly as before. Only front/app/selectBot.tsx was modified.

Screenshots

Select bot — light

Before After
before after

Select bot — dark

Before After
before after

Embedded in chat (home) — light

Before After
before after

Embedded in chat (home) — dark

Before After
before after

Screenshots committed to this branch under docs/screenshots/ for review; drop them before merging if undesired.

- Give each bot a stable identity: color and icon derived from a hash of
  its name (kid-friendly palette of 7 colors, 6 existing IconSymbol
  mappings)
- Restyle tiles: consistent 2-column grid, white icon centered in a
  translucent circle chip, bot name centered below on a single line with
  ellipsis, rounded corners, softer shadow
- Selected state keeps the bot's color and adds a white border instead
  of replacing the background with grey
- Friendlier header: larger centered 'Select bot' title with a
  'Who do you want to learn with today?' subtitle

Selection behavior (AsyncStorage, setBotSelected, haptics,
skipAutoSelect) is unchanged.
@tpaulshippy
tpaulshippy merged commit 5a1f1c9 into main Jul 23, 2026
1 check passed
@tpaulshippy
tpaulshippy deleted the feat/select-bot-redesign branch July 23, 2026 13:09
tpaulshippy added a commit that referenced this pull request Jul 23, 2026
Add nullable color/icon fields to Bot (API + migration) and a
BotAppearancePicker in the simple and advanced bot editors.
Select bot grid and parent bots list use the configured values,
falling back to the name-hash identity from #28 when unset.
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