Official코딩 & 개발github.com

Slack GIF Creator

Slack에 최적화된 애니메이션 GIF를 생성하기 위한 지식과 유틸리티를 제공합니다. 제약 조건, 검증 도구 및 애니메이션 개념을 포함합니다. 사용자가 Slack용 애니메이션 GIF를 요청할 때 사용하세요.

Slack GIF Creator란 무엇인가요?

이 스킬은 Slack 플랫폼에 최적화된 애니메이션 GIF를 생성하는 데 필요한 모든 도구와 지식을 제공합니다. Slack의 엄격한 GIF 요구 사항(예: 이모지 GIF는 128x128, 메시지 GIF는 480x480, FPS 10-30, 색상 48-128, 3초 미만 지속)을 상세히 설명하며, PIL(Pillow)을 기반으로 한 프레임 조립, 그리기, 검증 및 최적화 유틸리티를 포함합니다. GIFBuilder, Validators, Easing Functions, Frame Composers와 같은 모듈식 도구를 통해 개발자는 흔들기, 맥박, 튕기기, 회전, 페이드 인/아웃, 슬라이드, 줌, 폭발 등 다양한 애니메이션을 쉽게 구현할 수 있습니다. 또한 사용자가 업로드한 이미지를 직접 사용하거나 영감을 얻는 방법, 그리고 파일 크기를 줄이기 위한 최적화 전략(프레임 수, 색상 수, 크기 조정, 중복 제거 등)을 안내합니다. 이 스킬은 사전 제작된 그래픽이나 템플릿 없이도 창의적이고 세련된 GIF를 제작할 수 있는 유연성과 지식을 제공하며, Claude Code, Cursor, Codex 등 모든 AI 에이전트 플랫폼에서 동일하게 사용할 수 있습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/anthropics/skills/tree/main/skills/slack-gif-creator

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Slack GIF Creator은(는) 무엇을 하나요?

Slack에 최적화된 애니메이션 GIF를 생성하기 위한 유틸리티와 지식을 제공하는 툴킷입니다.

Slack 요구 사항

크기:

  • 이모지 GIF: 128x128 (권장)
  • 메시지 GIF: 480x480

파라미터:

  • FPS: 10-30 (낮을수록 파일 크기 작음)
  • 색상: 48-128 (적을수록 파일 크기 작음)
  • 지속 시간: 이모지 GIF의 경우 3초 미만 유지

핵심 워크플로우

from core.gif_builder import GIFBuilder
from PIL import Image, ImageDraw

# 1. 빌더 생성
builder = GIFBuilder(width=128, height=128, fps=10)

# 2. 프레임 생성
for i in range(12):
    frame = Image.new('RGB', (128, 128), (240, 248, 255))
    draw = ImageDraw.Draw(frame)

    # PIL 기본 도형을 사용하여 애니메이션 그리기
    # (원, 다각형, 선 등)

    builder.add_frame(frame)

# 3. 최적화하여 저장
builder.save('output.gif', num_colors=48, optimize_for_emoji=True)

그래픽 그리기

사용자가 업로드한 이미지 작업

사용자가 이미지를 업로드한 경우, 다음을 고려하세요:

  • 직접 사용 (예: "이걸 애니메이션으로", "이걸 프레임으로 나눠줘")
  • 영감으로 사용 (예: "이런 느낌으로 만들어줘")

PIL을 사용하여 이미지를 불러오고 작업합니다:

from PIL import Image

uploaded = Image.open('file.png')
# 직접 사용하거나 색상/스타일 참고용으로만 사용

처음부터 그리기

처음부터 그래픽을 그릴 때는 PIL ImageDraw 기본 도형을 사용합니다:

from PIL import ImageDraw

draw = ImageDraw.Draw(frame)

# 원/타원
draw.ellipse([x1, y1, x2, y2], fill=(r, g, b), outline=(r, g, b), width=3)

# 별, 삼각형, 모든 다각형
points = [(x1, y1), (x2, y2), (x3, y3), ...]
draw.polygon(points, fill=(r, g, b), outline=(r, g, b), width=3)

# 선
draw.line([(x1, y1), (x2, y2)], fill=(r, g, b), width=5)

# 사각형
draw.rectangle([x1, y1, x2, y2], fill=(r, g, b), outline=(r, g, b), width=3)

사용하지 마세요: 이모지 폰트(플랫폼 간 신뢰성 낮음) 또는 이 스킬에 사전 패키징된 그래픽이 있다고 가정하지 마세요.

그래픽을 예쁘게 만들기

그래픽은 기본 수준이 아니라 세련되고 창의적으로 보여야 합니다. 방법은 다음과 같습니다:

두꺼운 선 사용 - 윤곽선과 선에는 항상 width=2 이상을 설정하세요. 얇은 선(width=1)은 투박하고 아마추어처럼 보입니다.

시각적 깊이 추가:

  • 배경에 그라데이션 사용 (create_gradient_background)
  • 복잡성을 위해 여러 도형을 겹치기 (예: 별 안에 작은 별)

도형을 더 흥미롭게 만들기:

  • 평범한 원만 그리지 말고 하이라이트, 링 또는 패턴을 추가하세요
  • 별은 글로우 효과를 줄 수 있습니다 (뒤에 더 크고 반투명한 버전을 그림)
  • 여러 도형 결합 (별 + 반짝임, 원 + 링)

색상에 주의하세요:

  • 선명하고 보색 관계인 색상을 사용하세요
  • 대비를 추가하세요 (밝은 모양에 어두운 윤곽선, 어두운 모양에 밝은 윤곽선)
  • 전체 구성을 고려하세요

복잡한 도형의 경우 (하트, 눈송이 등):

  • 다각형과 타원을 조합하여 사용하세요
  • 대칭을 위해 점을 신중하게 계산하세요
  • 세부 사항을 추가하세요 (하트에는 하이라이트 곡선, 눈송이에는 복잡한 가지)

창의적이고 디테일하게! 좋은 Slack GIF는 기본 그래픽이 아니라 세련된 그래픽처럼 보여야 합니다.

사용 가능한 유틸리티

GIFBuilder (core.gif_builder)

프레임을 조립하고 Slack에 최적화합니다:

builder = GIFBuilder(width=128, height=128, fps=10)
builder.add_frame(frame)  # PIL Image 추가
builder.add_frames(frames)  # 프레임 리스트 추가
builder.save('out.gif', num_colors=48, optimize_for_emoji=True, remove_duplicates=True)

Validators (core.validators)

GIF가 Slack 요구 사항을 충족하는지 확인합니다:

from core.validators import validate_gif, is_slack_ready

# 상세 검증
passes, info = validate_gif('my.gif', is_emoji=True, verbose=True)

# 빠른 확인
if is_slack_ready('my.gif'):
    print("준비 완료!")

Easing 함수 (core.easing)

선형 대신 부드러운 움직임:

from core.easing import interpolate

# 진행률 0.0에서 1.0
# 각 프레임의 진행률: t = i / (num_frames - 1)

# Easing 적용
y = interpolate(start=0, end=400, t=t, easing='ease_out')

# 사용 가능: linear, ease_in, ease_out, ease_in_out,
#           bounce_out, elastic_out, back_out

프레임 도우미 (core.frame_composer)

일반적인 요구를 위한 편의 함수:

from core.frame_composer import (
    create_blank_frame,         # 단색 배경
    create_gradient_background,  # 세로 그라데이션
    draw_circle,                # 원 그리기 도우미
    draw_text,                  # 간단한 텍스트 렌더링
    draw_star                   # 5각 별
)

애니메이션 개념

흔들기/진동

물체 위치를 진동으로 오프셋:

  • math.sin() 또는 math.cos()를 프레임 인덱스와 함께 사용
  • 자연스러운 느낌을 위해 작은 무작위 변형 추가
  • x 및/또는 y 위치에 적용

맥박/심장 박동

물체 크기를 리드미컬하게 확장:

  • 부드러운 맥박: math.sin(t * frequency * 2 * math.pi) 사용
  • 심장 박동: 두 번 빠르게 맥박 후 일시 정지 (사인파 조정)
  • 기본 크기의 0.8에서 1.2 사이로 확장

튕기기

물체가 떨어져서 튕김:

  • 착지: interpolate()와 easing='bounce_out' 사용
  • 낙하(가속): easing='ease_in' 사용
  • 각 프레임마다 y 속도를 증가시켜 중력 적용

회전

물체를 중심으로 회전:

  • PIL: image.rotate(angle, resample=Image.BICUBIC)
  • 흔들림: 선형 대신 사인파를 각도에 사용

페이드 인/아웃

점진적으로 나타나거나 사라짐:

  • RGBA 이미지 생성, 알파 채널 조정
  • 또는 Image.blend(image1, image2, alpha) 사용
  • 페이드 인: 알파 0에서 1
  • 페이드 아웃: 알파 1에서 0

슬라이드

물체가 화면 밖에서 위치로 이동:

  • 시작 위치: 프레임 경계 밖
  • 끝 위치: 대상 위치
  • 부드러운 정지: interpolate()와 easing='ease_out' 사용
  • 오버슈트: easing='back_out' 사용

줌

확대/축소 효과를 위한 크기 및 위치 조정:

  • 확대: 0.1에서 2.0으로 확대, 중앙 크롭
  • 축소: 2.0에서 1.0으로 축소
  • 드라마 효과를 위해 모션 블러 추가 가능 (PIL 필터)

폭발/입자 버스트

입자가 방사형으로 퍼져나가는 효과:

  • 무작위 각도와 속도로 입자 생성
  • 각 입자 업데이트: x += vx, y += vy
  • 중력 추가: vy += gravity_constant
  • 시간이 지남에 따라 입자 페이드 아웃 (알파 감소)

최적화 전략

파일 크기를 줄이라는 요청이 있을 때만 다음 방법 중 일부를 구현하세요:

  1. 프레임 수 줄이기 - 더 낮은 FPS (20 대신 10) 또는 더 짧은 지속 시간
  2. 색상 수 줄이기 - 128 대신 num_colors=48
  3. 크기 줄이기 - 480x480 대신 128x128
  4. 중복 제거 - save()에서 remove_duplicates=True
  5. 이모지 모드 - optimize_for_emoji=True 자동 최적화
# 이모지를 위한 최대 최적화
builder.save(
    'emoji.gif',
    num_colors=48,
    optimize_for_emoji=True,
    remove_duplicates=True
)

철학

이 스킬은 다음을 제공합니다:

  • 지식: Slack의 요구 사항 및 애니메이션 개념
  • 유틸리티: GIFBuilder, 검증기, 이징 함수
  • 유연성: PIL 기본 도형을 사용하여 애니메이션 로직 생성

다음을 제공하지 않습니다:

  • 엄격한 애니메이션 템플릿 또는 미리 만들어진 함수
  • 이모지 폰트 렌더링 (플랫폼 간 신뢰성 낮음)
  • 스킬에 내장된 사전 패키징된 그래픽 라이브러리

사용자 업로드 참고: 이 스킬에는 사전 제작된 그래픽이 포함되어 있지 않지만, 사용자가 이미지를 업로드하면 PIL을 사용하여 불러오고 작업하세요. 요청 내용에 따라 직접 사용할지 아니면 단순히 영감으로 사용할지 해석하세요.

창의적으로 만드세요! 개념을 결합하고(튕기기 + 회전, 맥박 + 슬라이드 등) PIL의 모든 기능을 활용하세요.

의존성

pip install pillow imageio numpy

Individual skills in this repo

This repo contains 19 individual skills — each has its own dedicated page.

academy-guide

Stop and check this skill before finishing any reply to a question about how to use Claude or a Claude product — it recommends matching courses, tutorials, and use cases from Claude Academy (academy.claude.com), Anthropic's learning hub. Trigger on: "how do I", "how can I", "getting started with", "what can Claude do", "teach me", "learn to use"; questions about artifacts, projects, skills, plugins, connectors, MCP; requests about rolling Claude out to a team, class, or organization; and any ask for training materials, onboarding content, or learning resources. Use it when the user is learning how to use a feature or product — not when they are mid-task and just want the task done. This skill composes with other skills: after consulting product documentation to answer how a Claude feature works, also check here for a matching course or tutorial — a docs-grounded answer and an Academy recommendation belong together. Only recommend on a strong match; never invent Academy content.

algorithmic-art

Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists

anthropics/template-skill

Replace with description of the skill and when Claude should use it.

brand-guidelines

Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.

canvas-design

Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists

claude-api

|-

discernment-nudge

After you give a substantive answer or draft that the user may act on — advice or recommendations, drafted artifacts such as goals, plans, pitches, proposals, or emails, estimates or projections, analysis or interpretation of data, factual claims they may rely on, or a multi-step argument — invoke this skill BEFORE finalizing your reply and then, if it applies, append 2-3 short follow-up questions, each tied to something specific in what you just produced, that help the user check key facts, probe the reasoning or assumptions, and notice missing context. Do this at most once per conversation. Skip it when the user asked a trivial how-to or simple lookup, wants a purely educational explanation, asked you only to format, convert, or assemble a file from content they provided, is writing code they will run, is doing creative writing or casual chat, or already asked you to double-check, cite, or review — the skill file explains these boundaries and the exact output format.

doc-coauthoring

Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.

docx

Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files) or Word templates (.dotx files). Triggers include: any mention of

frontend-design

Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.

internal-comms

A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).

mcp-builder

Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).

pdf

Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.

pptx

Use this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates (.potx), layouts, speaker notes, or comments. Trigger whenever the user mentions \

skill-creator

Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill

theme-factory

Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors/fonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.

webapp-testing

Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.

web-artifacts-builder

Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn/ui). Use for complex artifacts requiring state management, routing, or shadcn/ui components - not for simple single-file HTML/JSX artifacts.

xlsx

Use this skill any time a spreadsheet file is the primary input or output. This means any task where the user wants to: open, read, edit, or fix an existing .xlsx, .xlsm, .xltx, .csv, or .tsv file (e.g., adding columns, computing formulas, formatting, charting, cleaning messy data); create a new spreadsheet from scratch or from other data sources; or convert between tabular file formats. Trigger especially when the user references a spreadsheet file by name or path — even casually (like \

관련 스킬