Spec: Doc — "The following faces are cycled through at every prompt sent to the chatbot. States: Happy, Sad, Unimpressed, Geeked, LockedIn, ImposterAmongus, TopHat, Dictator, Duck, Persona 5." Also: "Full screen. Gif for the pictures."
Scope
- A mascot component with the ten named states, advancing on each prompt sent.
- Assets: the doc calls for GIFs. Budget for it — a set of animated GIFs is a meaningful payload. Prefer optimized formats, lazy-load off the initial paint, and preload only the next state rather than all ten.
- Fullscreen chat mode alongside the existing panel/inline presentation.
- Respect
prefers-reduced-motion: fall back to a static frame per state when the user has asked for reduced motion. Animation is decoration here; it must never be mandatory.
- Give each state a meaningful
alt so the mascot is not noise for screen reader users, and keep it decorative (aria-hidden) if it carries no information.
- Works in light and dark mode (AGENTS.md §7).
Acceptance criteria
Spec: Doc — "The following faces are cycled through at every prompt sent to the chatbot. States: Happy, Sad, Unimpressed, Geeked, LockedIn, ImposterAmongus, TopHat, Dictator, Duck, Persona 5." Also: "Full screen. Gif for the pictures."
Scope
prefers-reduced-motion: fall back to a static frame per state when the user has asked for reduced motion. Animation is decoration here; it must never be mandatory.altso the mascot is not noise for screen reader users, and keep it decorative (aria-hidden) if it carries no information.Acceptance criteria