Bizzy
● Stable · v0.1The DayTwo coach mascot — a small aqua owl that gives the assistant a face. A first-time user trusts a character more than a faceless "AI", so Bizzy marks where the coaching voice speaks: the chat avatar, a thread header, an empty state.
In context
Purpose
Bizzy makes the assistant feel present and friendly rather than technical. It's identity, not decoration: use it to signal "this is your coach talking" — beside ChatBubbles in AI tone, atop the Bizzy thread, or on a coaching empty state. One Bizzy per surface; it's a mascot, not a pattern fill.
Anatomy
- The owl — a square aqua character.
- Life — optional animation:
blink(a periodic blink) orlively(blink + eyes looking around + an occasional head wiggle). Animates on both web and native. - Size / faceColor — a single
size; the face defaults to the mascot's aqua.
Variants
- Static — a plain mark (default), fine on low-end devices.
blink— subtle life for a header.lively— full character on the chat avatar so it feels present.
Code
import { Bizzy } from '@daytwo/components'<Bizzy size={72} lively label="Bizzy" />
When to use
- The AI/coach avatar in a conversation.
- A thread header or coaching empty state.
When NOT to use
- As a generic icon — it's a named character, not a glyph.
- Repeated across a screen — one mascot moment, not wallpaper.
Good vs bad
- Good: a lively Bizzy at the top of the coach thread, then quiet violet AI bubbles below — the character introduces the voice, the messages carry it.
- Bad: a blinking Bizzy on every list row and button — the animation distracts and, on low-end Android, costs frames for nothing.
Edge cases
Low-end device
Use the static mark (no lively) off the focal surface
WhyAnimation should earn its cost; most placements don't need it
Native
blink/lively animate on device via the Animated API; both honour reduce-motion
WhyThe mascot should feel alive on the phone, not just on the web
Accessibility
Defaults to label 'Bizzy'; pass '' to hide decorative uses
WhyScreen readers shouldn't announce a repeated mascot
Dark mode
Face color holds; sits on any surface
WhyThe character must read in both schemes
A character, used sparingly
Bizzy works because it's a moment, not a texture. One per surface, animated only where presence matters.
Tokens used
color.brand.accentcolor.ai.tintmotion.duration