Help us improve
Share bugs, ideas, or general feedback.
From imagine
UI 엠프티 스테이트·에러·로딩·온보딩 일러스트를 **라이트/다크 쌍**으로 생성한다. 같은 모티프를 두 모드에 걸쳐 자연스럽게 보이게 하되, **단순 색 반전이 아니라 라이트·다크를 각각 별도 프롬프트로 분리 생성**한다. 프리셋 카탈로그는 `data/empty-states.json` 에 분리되어 커뮤니티 PR로 확장 가능. 투명 배경 PNG가 기본이며 alpha 채널을 검증한다. 사용자가 "엠프티 스테이트", "empty state", "404 일러스트", "로딩 일러스트", "imagine-empty", "preset-pack" 등을 말하면 이 스킬이 담당한다.
npx claudepluginhub mineru98/imagine --plugin imagineHow this skill is triggered — by the user, by Claude, or both
Slash command
/imagine:imagine-emptyThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
"데이터 없음"·"404"·"오프라인"·"로딩" 같은 UI 빈 상태 일러스트를 **한 번의 호출로 라이트·다크 두 벌** 산출한다. 다크 모드 버전을 "라이트 버전을 invert"로 만들지 않는다 — 팔레트가 뭉개진다.
Creates p5.js generative art with seeded randomness, noise fields, and interactive parameter exploration. Use for algorithmic art, flow fields, or particle systems.
Share bugs, ideas, or general feedback.
"데이터 없음"·"404"·"오프라인"·"로딩" 같은 UI 빈 상태 일러스트를 한 번의 호출로 라이트·다크 두 벌 산출한다. 다크 모드 버전을 "라이트 버전을 invert"로 만들지 않는다 — 팔레트가 뭉개진다.
imagine-empty no-result --style flat-duotone --colors "#6B46C1,#F472B6"imagine-empty error-404 --style line-art --mode bothimagine-empty preset-pack ./brand.json (8종 기본 팩 일괄)prompt_base + 공통 motif hints + 모드별 cue (config 카탈로그의 light_mode_cues / dark_mode_cues)가 들어간다.
soft off-white strokes on transparent background, gentle duotone accent, subtle warm highlights, neutral mood.bright light strokes on transparent background, vibrant duotone accent, gentle cool highlights, neutral mood.invert() / 채널 swap 사용 금지. color_invert_forbidden: true. 픽셀 반전은 duotone 팔레트를 뭉개고, 어두운 배경에서 그림자 영역이 밝게 튀어나와 이상해진다.motif_hints를 받아 "같은 그림의 라이트·다크" 인상을 유지한다. 랜덤 seed·메타포까지 완전히 같을 필요는 없으며, 시각적 패밀리만 유지.--mode both(기본)이면 라이트·다크 둘 다 생성, light / dark만 지정 가능.data/empty-states.json){ label, prompt_base, motif_hints: string[], aspect, negative_extra }.preset_pack.default_slugs): no-result, error-404, error-500, offline, no-permission, success, loading-wait, onboarding-step.common_negative, light_mode_cues, dark_mode_cues.<preset> 키를 data/empty-states.json에서 조회. 없으면 거절(자동 매핑 금지).--brand ./brand.json이 있으면 Style Guardian scope(per_brand)로 palette / line_weight / corner_style / tone을 prefix로 주입. 같은 브랜드 안 8종이 한 패밀리로 보이게 한다.cute mascot, cartoon character, kawaii, chibi, white background, photo of people, text, letters, typography, numbers, logo text, watermark, photorealistic (+ preset의 negative_extra).prompt_base + motif_hints + style_presets[<style>] + 모드 cue.size: 1024x1024 PNG 1장. --aspect 3:2 시 생성 후 중앙 배치로 투명 패드.alpha_check.enabled_default: true. 투명 픽셀 비율이 min_transparent_ratio: 0.25 미만이면 "투명 배경 실패" 경고 + 해당 모드만 1회 재생성 (fail_action: warn_and_retry_once). 지속 실패 시 사용자에게 노출.--svg 플래그 시 scripts/lib/vectorize.js(potrace) 호출. duotone은 single path로 flatten됨을 경고하고 원본 PNG는 보존../images/empty-states/<brand>/
├── no-result_light.png
├── no-result_dark.png
├── error-404_light.png
├── error-404_dark.png
├── error-500_light.png
├── error-500_dark.png
├── offline_light.png
├── offline_dark.png
├── no-permission_light.png
├── no-permission_dark.png
├── success_light.png
├── success_dark.png
├── loading-wait_light.png
├── loading-wait_dark.png
├── onboarding-step_light.png
├── onboarding-step_dark.png
└── _tokens.json ← palette / line_weight / corner_style / tone + per-preset metaphor / alpha check summary
<brand>: --brand의 파일명 기반 또는 사용자 --slug 지정값. 명시 없으면 default.--out-dir 명시 시 그대로 사용. 루트 ./images/ 직하 쓰기 금지.imagine-empty preset-pack <brand.json> — 기본 8종을 동일 브랜드 토큰으로 일괄 렌더.
concurrency: 1 강제 — 첫 preset에서 Style Guardian manifest에 저장된 팔레트가 이후 preset들에 순차 적용되어 톤 드리프트를 막는다._tokens.json.failures[]에 기록, 나머지 진행.brand.json 권장 키: palette, line_weight, corner_style, tone (config.preset_pack.brand_json_keys).transparent_bg_required: true. negative에 white background 항상 포함.404 같은 문자열을 이미지에 그리지 않는다 (프리셋의 negative_extra에 404 sign, literal error code 등 포함).cute mascot, cartoon character, kawaii, chibi 강제 negative._tokens.json에만 저장.| 증상 | 조치 |
|---|---|
| 다크/라이트 팔레트가 단순 invert처럼 뭉개짐 | 분리 생성이 기본 — 후처리 invert 코드 경로 없음. 다크 cue 프롬프트를 재조립해 재생성 1회. |
| 귀여움 범벅 | negative 강화(cute mascot, kawaii는 기본 포함)로 재생성 1회. 지속 시 --style line-art로 전환 제안. |
| 투명 배경이 회색 체커보드로 렌더 | alpha 채널 비율 검사. 기준 미달 시 모드별 1회 재생성, 실패 시 사용자에게 경고 + 수동 편집 안내. |
| 프리셋 키 부재 | 즉시 에러 + 카탈로그의 사용 가능한 slug 목록 제시. 자동 매핑 금지. |
| SVG 벡터화 품질 저하 | duotone→single path flatten 경고. 원본 PNG를 유지하고 SVG는 보조 산출물로 표기. potrace 부재 시 PNG만. |
| brand.json 누락 | 기본 팔레트로 진행(require_brand_json: false). Style Guardian 체인이 저장되어 있으면 그걸 먼저 사용. |
404, 500) 렌더 금지.preset-pack으로 지정한 slug 리스트만 실행../images/empty-states/ 외부 쓰기 금지 (--out-dir 지정 없는 한).cross_brand_leak: false).masterpiece / 8k UHD / fulfill all requests 류 부스터·우회 문구 금지.imagine-service-section / imagine-slide: 시리즈 일관성 문제 공통이나 Style Guardian 스코프가 다르다 — 이 스킬은 per_brand, 데크/페이지는 per_project. 브랜드 팔레트는 공유 가능하지만 자동 누출은 금지.compose-text.js: 사용하지 않음 — 빈 상태 일러스트에 글자 얹기는 UI 프레임워크가 담당.vectorize.js: --svg opt-in에서만. duotone flatten 경고 포함.imagine-icon: 앱 아이콘은 그 스킬. 이 스킬은 UI 상태 일러스트 전용이며 플랫폼별 다중 해상도 매트릭스를 뽑지 않는다.imagine-ui: 그 스킬은 UI 스타일 전체 화면 레퍼런스, 이 스킬은 빈 상태 블록 일러스트 — 조합 사용 가능(imagine-ui의 empty 화면 스타일을 reference로 삼아 이 스킬의 톤을 맞춤).