What problem does it solve? Creating animated GIFs that meet Slack's strict dimension, file size, and color constraints requires manual tuning of frames, palettes, and timing, which is tedious and error-prone. ## Core Features & Use Cases - GIF Assembly and Optimization: The GIFBuilder class assembles PIL frames into GIFs with global palette quantization, duplicate frame removal, and automatic emoji-mode resizing to 128x128. - Validation Tools: Validators check whether a GIF meets Slack's dimension and size requirements for emoji or message use. - Animation Utilities: Easing functions (bounce, elastic, back) and frame helpers (gradients, stars, text) support smooth motion effects like shake, pulse, spin, and particle bursts. - Use Case: A user asks for a bouncing star emoji GIF for Slack; the skill generates 12 frames with PIL primitives, applies ease-out interpolation, and saves an optimized 128x128 GIF under Slack's size limits. ## Quick Start Create a 128x128 animated GIF of a pulsing heart optimized for a Slack emoji.