Bizzy

● Stable · v0.1

The 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

9:41

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) or lively (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