What problem does it solve?
Creating chat pet sprites that feel like one continuous character across many states is difficult because each new pose risks breaking the body anchor, baseline, or Stable/Insiders parity. This Skill provides the exact pixel grid, animation contract, and runtime wiring rules so new art integrates cleanly with the existing widget.
Core Features & Use Cases
- Logical Pixel Art Standards: Enforces an 8x8 source-pixel logical unit, nearest-neighbor rendering, and transparent backgrounds for all sprite sheets and static PNGs.
- State and Animation Contract: Defines how to author idle, rendering, transient, and reversible states, including frame durations, reduced-motion fallbacks, and DOM-eye overlay rules.
- Stable/Insiders Parity and Accessories: Requires identical geometry across palette variants and a body-owned attachment rig with a 256x192 or 384x288 atlas for wearable accessories.
- Use Case: Add a new "love" reaction sprite by deriving the body from the current idle baseline, authoring a horizontal sprite sheet plus reduced-motion PNG, updating
chatPetWidget.ts timings, and validating with the ChatPetWidget unit tests.
Quick Start
Read the current implementation under src/vs/workbench/contrib/chat/browser/widget/media/chatPet and chatPetWidget.ts, then author the new sprite by copying the idle baseline, applying the documented logical-pixel grid, and updating every runtime wiring surface listed in the skill.