Community이미지github.com

Verstige/로고 디자인

전문적인 로고 및 시각적 브랜드 아이덴티티 디자인: 브랜드 컨텍스트 캡처, 시각적 아이덴티티 브리프, AI 프롬프트 엔지니어링(DALL-E/Midjourney/FLUX/SDXL), SVG 로고 제작, 래스터-벡터 변환(Pixel2Motion), 로고 애니메이션(디즈니 12원칙, CSS choreography), 브랜드 시스템 문서화, 폰트 선택 및 소싱, 상표 인식, 브랜드 일관성 표준을 포함합니다. 로고 디자인, 브랜드 아이덴티티 생성, 로고 애니메이션, 래스터 로고 벡터화, 브랜드 시스템 구축, 폰트 페어링 생성 또는 상표 확인 요청 시 사용하세요.

로고 디자인란 무엇인가요?

이 로고 디자인 스킬은 AI 에이전트가 SVG 기반 로고 디자인과 브랜드 아이덴티티 작업을 처음부터 끝까지 수행할 수 있도록 하는 종합적인 지침입니다. Claude Code, Cursor, Codex 및 유사한 에이전트에서 실행되며, 사용자의 브랜드 이름, 스타일 힌트 또는 재디자인 요청을 받아 전문적인 로고를 생성합니다. 이 스킬은 SVG-first 접근 방식을 채택하여 AI 이미지 생성보다 직접 SVG 벡터를 생성하는 것을 우선시하며, Playwright를 사용하여 SVG를 PNG로 렌더링한 후 사용자에게 시각적으로 보여줍니다. 브랜드 컨텍스트 캡처, 시각적 아이덴티티 전략, SVG 로고 생성, 로고 애니메이션(디즈니 12원칙 및 CSS choreography), 래스터-벡터 변환, 브랜드 시스템 문서화, 폰트 선택 및 상표 인식 등 8가지 주요 단계를 포함합니다. 특히 gradient confirmation protocol, optical centering, Telegram/social icon 제약 조건과 같은 실제 디자인 반복에서 얻은 중요한 교훈을 문서화하여, AI 에이전트가 인간 디자이너 수준의 결과물을 제공할 수 있도록 지원합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Verstige/verstige-skills/tree/HEAD/plugins/logo-design/skills/logo-design

Installed? Explore more 이미지 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

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

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

미리보기

스킬 README에서

alt

문서

로고 디자인 스킬 — 얼티밋 에디션

포괄적인 로고 및 시각적 브랜드 아이덴티티 디자인. 다음을 포함합니다: 브랜드 컨텍스트 캡처, 시각적 아이덴티티 전략, AI 이미지 생성, 직접 SVG 제작, 래스터-벡터 변환, 로고 애니메이션, 브랜드 시스템 문서화, 폰트 선택 및 브랜드 일관성 전달.


비전 도구 — 수정 및 확인

사용자가 참고용 로고/이미지를 보내고 아이디어 결합을 요청할 때: vision_analyze가 작동해야 합니다. 분석 대신 "이미지가 보이지 않습니다"를 반환하면, MiniMax-M2.7에 기본 비전 기능이 없으며 보조 설정을 수정해야 합니다.

올바른 수정 방법 (두 명령어 모두 실행, 2026년 7월 확인):

hermes config set auxiliary.vision.provider minimax
hermes config set auxiliary.vision.model MiniMax-Image-01

실행 후 설정을 확인하세요 — ~/.hermes/config.yaml의 최상위 vision: 섹션(약 559행)에 중첩된 auxiliary.vision: 섹션과 별도로 나타나야 합니다. vision_analyze가 여전히 실패하면 이미지 URL에 접근할 수 없는 것일 수 있습니다 — 다시 다운로드하거나 다른 경로를 사용해보세요. 이 수정은 세션 간에 유지됩니다.

비전이 여전히 실패할 경우의 대비책: PIL/Pillow를 사용하여 이미지에서 픽셀 색상을 샘플링하고 분석적으로 설명합니다. 파일을 읽고, 주요 영역(상단 중앙, 중앙, 하단, 모서리)을 샘플링하며, 주요 색상, 밝기 분포 및 기본 모양을 보고합니다. 이 방법은 vision_analyze가 고장났을 때 대비책으로 작동했습니다 — 이미지는 물방울 닻 모양의 밝은 회색 위에 평평한 검은 날개로 확인되었습니다.

그라디언트 확인 프로토콜 (중요 — SVG를 작성하기 전에 필수)

사용자는 자연어로 그라디언트를 설명하여 다듬는데, 이는 시각화되기 전까지 모호합니다. SVG를 작성하기 전에 항상 사용자의 정확한 색상 이름을 사용하여 구두로 순서를 확인하십시오. 이렇게 하면 3회 반복 재작업을 방지할 수 있습니다.

코딩 전 단계 (필수):

사용자: "골드 에메랄드 시안 에메랄드 골드"
→ 올바름: "이해했습니다 — 골드 → 에메랄드 → 시안 → 에메랄드 → 골드, 양쪽 끝이 골드이고 시안이 정중앙입니다." 라고 말한 후 SVG를 작성합니다.
→ 틀림: 사용자의 의도를 스스로 이해했다고 가정하고 SVG를 작성합니다.

사용자: "시안 블루에서 골드로, 중간에 에메랄드가 있음"
→ 올바름: "그럼 골드 → 에메랄드 → 시안 → 에메랄드 → 골드 인가요? 아니면 골드 → 시안 → 에메랄드 → 시안 → 골드 인가요? 왼쪽에서 오른쪽으로 알려주세요." 라고 물어봅니다.
→ 틀림: 한 가지 해석을 선택하고 작성합니다.

실제 반복에서 얻은 주요 교훈 (2026년 7월 — 조직):

  • "중간에 에메랄드가 있는 시안 블루에서 골드로, 양쪽 끝은 골드" → 사용자가 확인한 골드 외부 끝. 에메랄드와 시안은 중간에 있습니다.

  • "중간에 시안" → 시안은 50% 오프셋에 있고, 에메랄드/기타 색상이 그 옆에 있습니다.

  • 의심스러울 때: 사용자의 정확한 색상 이름을 사용하여 왼쪽에서 오른쪽 순서를 알려주고 "이게 맞나요?"라고 물어보십시오.

  • 그라디언트 점의 색상도 명시적으로 확인해야 합니다 — 그라디언트 선과는 별개의 요소입니다.

  • 카디널 포인트(3/6/9/12시 방향)에 골드가 있는 그라디언트 테두리: foreignObject를 통한 CSS conic-gradient() 또는 border-image를 사용하십시오 — SVG 1.1은 <conicGradient>를 지원하지 않습니다. 시도하면 자동으로 실패합니다.

  • Telegram 스타일의 둥근 아이콘: 검은 원 베이스 + 그라디언트 테두리 선 + 내부 채우기가 중앙을 덮습니다. 테두리에는 fill="none" stroke="url(#grad)"을 원에 적용합니다. SVG 원의 r이 배경 r과 일치하도록 하여 틈이 생기지 않게 합니다.

  • 확인 후: SVG 작성 → Playwright를 통해 PNG로 렌더링 → 새 줄에 MEDIA:/path/to/file.png로 전송합니다.

V-딥 마크의 광학적 중앙 정렬 (조직 반복에서 얻은 주요 교훈): 기하학적 중심(50% y)은 마크에 아래로 뻗은 V-딥이 있을 때 너무 높아 보입니다 — 시각적 무게가 중심 아래에 있습니다. 마크 그룹 내 V-딥 꼭지점이 로컬 y≈28인 512×512 캔버스의 경우, 키가 큰 결합 마크(날개 + V-딥)에 대해 translate(256, 290)이 올바른 광학적 균형을 제공했습니다. 시각적으로 반복하십시오 — +20px에서 시작하여 올바르게 보일 때까지 증가시킵니다.

Telegram/소셜 아이콘 테두리 제약 조건: 검은 원 베이스 r은 테두리 선의 내부 반경과 정확히 일치해야 합니다 — 틈이 없어야 합니다. 테두리 선이 r=252에 중심을 둔 8px이면 내부 가장자리는 r=248입니다. 검은 원도 r=248이어야 합니다. 불일치 시 눈에 보이는 틈 또는 겹침이 발생합니다.

Telegram 아이콘 구성 교훈 (2026년 7월 — 조직 반복):

  • "테두리 없음, 아이콘만" → 사용자는 테두리 링 없이 검은 배경에 마크만 원합니다. <circle> 테두리 요소를 제거하고 검은 <rect> 배경과 마크 그룹만 유지합니다.
  • "전체 로고를 볼 수 있도록 아래로 이동" → 키가 큰 마크(날개 + V-딥)의 경우 기하학적 중심(50% y)이 상단을 자릅니다. 512 캔버스에서 translate y를 ~290으로 이동합니다. +20px에서 시각적으로 반복하여 상단에 여유가 생기고 하단이 비좁지 않을 때까지 증가시킵니다.
  • "로고를 더 크게" → 마크 경로 좌표와 선 폭을 비례적으로 늘립니다. 오실로스코프 마크의 경우, 팔을 ±196에서 ±234로 확장하여 공간을 채웠습니다. 팔 끝점의 골드 악센트 점은 원 가장자리 바로 안쪽(512 캔버스에서 가장자리에서 약 20px)에 위치해야 합니다.
  • "날개를 오실로스코프 V-딥과 결합" → V-딥 꼭지점이 유기적인 "물방울 닻" 수렴점이 됩니다. 날개는 신호 팔 끝점에서 위로 휘어집니다. 시안 점은 신호 원점(V-딥 하단)에 유지됩니다. 신호 팔을 구조적 베이스로 유지하십시오 — 유기적인 날개 형태를 지지합니다.
  • "중앙 정렬" → 기하학적 중앙 정렬(캔버스 중앙으로 이동)은 균형 잡힌 시각적 무게를 가진 마크에 적합합니다. 아래쪽 V-확장이 있는 마크의 경우 광학적 중앙 정렬은 기하학적 중심에서 40–60px 아래로 이동해야 합니다. +20px에서 시작하여 조정합니다.

두 로고를 하나로 결합 (디자인 합성):

  • 사용자가 "X와 Y를 결합"이라고 말하면, 각각의 의미론적 CORE를 식별합니다: X = 유기적인 날개 대칭 + 물방울 닻 (검은 실루엣), Y = 오실로스코프 V-딥 + 그라디언트 신호 + 시안 점
  • 합성: 오실로스코프 신호를 구조적 베이스로 유지하고, 유기적인 날개 형태를 신호 팔에서 흘러나오는 2차 블레이드로 추가합니다.
  • 그라디언트와 시안 점은 합성 전반에 걸쳐 유지되어야 하는 브랜드 아이덴티티 요소입니다.
  • 스타일을 무작위로 혼합하지 마십시오 — 각각에서 가장 강력한 구조적 요소를 선택하고 의도적으로 구성하십시오.

첫 번째 반복에서 잘못 읽히는 마크 유형

신호-펄스 마크 (심박수 / 스코프 / EKG). 브리프에서 "신호" 또는 "펄스" 마크를 요청하고 \_/\_(평평한 기준선, 피크, 작은 피크, 평평한 기준선)으로 그리면, 첫 번째 반복은 팔을 뻗은 사람, 파도, 또는 언덕으로 읽힐 가능성이 높습니다. 인간의 눈이 먼저 신체 모양에 패턴 매칭을 하기 때문입니다. 두 가지 구체적인 수정 방법:

  1. 평평한 기준선 세그먼트를 피크에 가깝고 짧게 유지하십시오. 피크에서 멀리 떨어진 긴 기준선 세그먼트가 "팔"로 읽힙니다. 기준선을 피크의 상승/하강에 가깝게 붙이십시오.
  2. 상승 기울기와 하강 기울기가 명확한지 확인하십시오. 중심에서 멀리 떨어진 평평한 세그먼트가 있는 대칭 피크는 신체(팔 + 머리)로 읽힙니다. 기준선에서 급격히 상승하고, 피크를 이룬 후, 하강에 더 작은 2차 범프가 있는 명확히 비대칭 하강은 활동이 있는 데이터로 읽힙니다 — 이것이 신호입니다.
  3. 지배적인 피크 외에 하나 이상의 2차 특징을 추가하십시오. 하강에 있는 작은 눈금 하나라도 읽힘을 "모양"에서 "데이터"로 바꿉니다. 2차 특징이 없으면 신호 마크는 기본적으로 신체 실루엣으로 읽힙니다.

육각형 / 다이아몬드 / 사각형 윤곽선. 브리프가 "모던 테크"이고 마크가 육각형 또는 다이아몬드인 경우, 가장자리가 실수로 문자를 형성하지 않는지 확인하십시오 (육각형 안의 "X"는 무언가를 철자하거나, 다이아몬드의 각도가 잘못된 방향을 가리키는 "V"로 읽힙니다). 모호한 경우 꼭지점 각도를 5° 조정하십시오.

앱 아이콘으로서의 둥근 모서리 사각형. 모서리 반경이 플랫폼과 일치하는지 확인하십시오. iOS는 "squircle"(연속 코너, 단순한 border-radius와 수학적으로 다름)을 사용합니다. 200×200 사각형에 단순한 border-radius: 36px는 "Android Material"로 읽히고 "iOS"로 읽히지 않습니다. 플랫폼이 중요하다면 전용 iOS 스타일 squircle 생성기를 사용하십시오.

SVG 1.1에는 기본 conic gradient 요소가 없습니다. <conicGradient>는 유효하지 않습니다. 해결 방법:

  1. foreignObject div 내부의 CSS conic-gradient() — 브라우저에서 작동, Playwright를 통해 렌더링
  2. foreignObject 내부의 <div>에 border-image: conic-gradient(...) 1
  3. 다중 정지점 linearGradient를 45° 회전시킨 원형 stroke로 대체 — 4개 지점에 골드가 있는 4색을 제공하지만 3/6/9/12시에 완벽하게 동시에 위치하지는 않음

일반적인 오독 패턴:

  • "시안에서 골드로" + "중간에 에메랄드" = 골드 → 에메랄드 → 시안 → 에메랄드 → 골드 (골드 → 시안 → 에메랄드 → 시안 → 골드가 아님)
  • "양쪽 끝 골드" = 외부 정지점은 골드, 시안이 아님
  • "중앙에 시안" = 시안은 50% 오프셋, 에메랄드/기타 색상이 옆에 있음

색상 피드백을 요청하기 전에 항상 PNG로 렌더링하고 시각적으로 보여주십시오. 텍스트로 된 색상 설명은 신뢰할 수 없습니다 — 시각적 결과물이 진실의 원천입니다.

환경 참고 사항

이미지 생성(FAL.ai FLUX.2)은 이 Hermes 환경에서 사용할 수 없습니다 — FAL_KEY가 설정되지 않았습니다. 로고 작업에 ImageGenerate를 사용하려고 시도하지 마십시오. SVG-first가 어쨌든 우수합니다: 래스터가 아닌 실제 벡터 파일을 생성합니다.

Playwright를 통한 SVG 렌더링 (2026년 7월 작동 확인):

import asyncio
from playwright.async_api import async_playwright
async def render(svg_path, png_path, width=900):
    async with async_playwright() as p:
        browser = await p.chromium.launch()
        page = await browser.new_page(viewport={'width': width, 'height': int(width*0.9)})
        await page.goto(f'file://{svg_path}')
        await asyncio.sleep(0.8)
        await page.screenshot(path=png_path, full_page=False)
        await browser.close()
asyncio.run(render('/path/to/logo.svg', '/path/to/preview.png'))

Telegram 전달: 이미지는 자체 줄에 MEDIA:/absolute/file.png로 전송되어야 합니다. 마크다운 이미지 구문 ![alt](path)는 Telegram에서 렌더링되지 않습니다 — 자동으로 실패합니다. 마크다운 텍스트 블록에 이미지 링크를 절대 포함하지 마십시오.


황금률

  1. 로고는 SVG-first. AI 이미지 생성이 아닌 직접 SVG 벡터를 생성하십시오. SVG는 무한히 확장 가능하고, 편집 가능하며, 애니메이션 가능하고, Playwright를 통해 즉시 렌더링됩니다. 개념이 사실적인 참조 또는 SVG로 달성할 수 없는 복잡한 질감이 필요할 때만 ImageGenerate를 사용하십시오. 확인된 작업 흐름 (2026년 7월): SVG 작성 → Playwright 헤드리스로 PNG 렌더링 → Telegram에 MEDIA:/path/to/file.png로 전송.
  2. 시각적으로 반복하십시오. 개념 → PNG 미리보기 → 다듬기. 사용자는 설명이 아닌 마크를 볼 때 더 잘 다듬습니다. 개념을 확정하기 전에 다양한 측면(화살표 제거, 아이콘만, 색상 변경)을 탐색하는 2-4가지 변형을 생성하십시오.
  3. 모든 측면에서 구체적이어야 합니다. "모던"은 아무 의미도 없습니다. "기하학적, 좁은 자간, 네이비 + 골드"는 의미가 있습니다.
  4. AVOID 목록을 적용하십시오. 대부분의 나쁜 AI 로고는 모델에게 무엇을 거부해야 하는지 알려주지 않기 때문에 발생합니다.
  5. 확장성은 타협할 수 없습니다. 로고는 16×16에서도 명확하게 읽혀야 합니다.
  6. 최소한의 부드러운 지오메트리는 애니메이션 가능한 지오메트리입니다. 400개의 점이 있는 복잡한 추적 경로는 choreography가 불가능합니다.

1단계: 브랜드 컨텍스트 캡처

먼저 기존 컨텍스트 읽기

.agents/brand-context.md가 존재하는지 확인하십시오. 존재한다면 읽으십시오 — 이미 캡처된 정보를 묻지 마십시오.

기존 브랜드 단축키: 브랜드에 공개 웹사이트가 있으면, 질문을 하기 전에 사이트로 이동하여 시각적으로 브랜드 컨텍스트를 추출하십시오. 히어로 카피, 태그라인, 핵심 메시징, 제품 이름 및 색상을 읽으십시오. 프로젝트 리포지토리에서 public/logo.png 또는 public/favicon.ico를 확인하여 현재 로고를 확인하십시오. 결과를 이 스킬 아래 references/<brand-name>.md에 저장하십시오.

컨텍스트가 없으면 — 빠르게 수집

3개 이상의 질문을 하지 마십시오:

  1. "브랜드 이름은 무엇이며 무엇을 하나요?" (한 문장)
  2. "성격을 설명하는 3단어는?" (예: 대담함, 기술적, 프리미엄)
  3. "끌리는 색상이나 피해야 할 색상이 있나요?" (또는 "놀라게 해주세요"라고 말함)

이 세 가지 답변에서 다른 모든 것을 추론하십시오.

브랜드 컨텍스트 저장

.agents/brand-context.md에 저장:

# 브랜드 컨텍스트

## 브랜드
- **이름**: [name]
- **카테고리**: [industry/niche]
- **설명**: [one-liner]
- **단계**: [pre-launch / early / growth / established]

## 브랜드 성격
- **성격 단어**: [word, word, word]
- **톤**: [formal/casual] · [serious/playful]
- **존경하는 경쟁사**: [optional]

## 색상
- **끌리는 색상**: [colors or "surprise me"]
- **피해야 할 색상**: [colors if specified]

## 목표
- **주요 용도**: [app icon / website / social / print / packaging / all]
- **핵심 요구사항**: [must work in one color / geometric / etc.]
- **모션**: [does the brand need animated logo / reveal / splash screen?]

2단계: 시각적 아이덴티티 전략

무언가를 생성하기 전에 디자인 방향을 정의하십시오.

8가지 차원

차원질문예시
이름무엇이 나타나야 합니까?"the target platform"
산업어떤 분야입니까?Fintech / trading
핵심 가치한 단어 브랜드 본질Precision
성격브랜드 성격은?Bold, technical, premium
색상 감정색상은 무엇을 전달합니까?Gold = wealth/premium
경쟁사 격차다른 회사들은 어떻게 생겼습니까?"Bloomberg는 복잡합니다; 우리는 미니멀을 원합니다"
로고 유형무엇이 가장 적합합니까?Combination / lettermark / abstract
사용 컨텍스트어디에 사용될 것입니까?App icon, website, dark terminal

로고 유형 선택 가이드

유형가장 적합한 경우예시
워드마크신규 브랜드, 기억에 남는 이름Google, Coca-Cola
레터마크긴 이름, 약어IBM, HBO
컴비네이션가장 다재다능Slack, Spotify
추상 마크기술, AI, 글로벌 브랜드Nike, Apple
엠블럼레스토랑, 스포츠, 공식Starbucks
마스코트소비자 앱, 식품 브랜드Mailchimp
모노그램개인 브랜드, 대행사Vogue

색상 팔레트 프레임워크

기본 브랜드 색상 — 하나의 지배적인 감정:

색상감정가장 적합한 경우
네이비 (#0A1628)신뢰, 안정성, 전문성금융, 법률, B2B
딥 버건디 (#4A0E17)사치, 열정, 강도프리미엄 소비재
포레스트 그린 (#0D2818)성장, 지속 가능성, 평온친환경, 의료, 유기농
차콜 (#1A1A1A)힘, 정밀함, 엄격함기술, 공학, 군사
미드나잇 블루 (#0B1D3A)깊이, 신비, 지성AI, 연구, 교육
프러시안 블루 (#003153)권위, 신뢰성, 안전사이버 보안, 방어
올리브 그린 (#3B5323)안정성, 전통, 단단함제조, 아웃도어
다크 퍼플 (#2D0A4E)창의성, 왕실, 혁신음악, 게임, 사치

- 2차 팔레트: 악센트 색상과 보완 색상

색상 이론 원칙에 따라 보완 색상을 선택하십시오:

  • 단색: 한 가지 색조, 다른 명도와 채도 (예: 네이비 + 미드나잇 블루 + 차콜) — 깔끔하고 전문적
  • 보완: 색상환 반대편 색상 (예: 네이비 + 골드 오렌지) — 공격적이고 기억에 남음
  • 분할 보완: 기본 색상 + 보완 색상의 양옆 색상 — 덜 대조적이지만 흥미로움
  • 유사: 인접한 색상 (예: 네이비 + 청록 + 녹청) — 조화롭고 부드러움

악센트 색상 지침:

  • 골드 (#D4A843): 신뢰, 프리미엄 느낌을 위해 사용합니다. 모든 직접적인 경쟁사는 파란색 회색을 사용합니다. 골드는 차별화 지표입니다.
  • 화이트/라이트 그레이 (유지): 배경 가독성

DALL-E/미드저니 프롬프트에 대한 색상 변환:

DALL-E 3는 #D4A843을 이해하지 못합니다 — "warm metallic gold, 80% saturation, 60% lightness"를 사용하십시오.

최종 색상 팔레트:

역할16진수이름사용처
기본#0A1628딥 네이비배경, 주요 텍스트
2차#D4A843시그니처 골드악센트, 호버 상태
백색#F5F5F5오프 화이트배경, 대비
오류#E74C3C빨간색오류(애플리케이션별)

3단계: AI 프롬프트 엔지니어링 (중간 이미지 참조)

SVG가 항상 선호되지만, 일부 개념은 래스터 렌더링에서 영감을 얻습니다.

참조 이미지 생성을 위한 프롬프트 구조:

표준 템플릿:

[로고 유형] for [브랜드 이름], [3가지 성격 단어], [색상 설명], [스타일 수식어], --aspect [비율] --style raw

예시:

  • DALL-E 3: "A modern minimalist logo for 'Noirchat', a privacy-first messaging app. Geometric, clean lines, dark navy and signature gold. Simple abstract mark with a shield and chat bubble elements. Dark background, no text, centered, professional."
  • Midjourney: "abstract fintech logo, geometric shield with upward arrow, deep navy and warm gold, minimalist, clean lines, professional, dark background, white ambient lighting --aspect 1:1 --style raw --s 400"
  • FLUX (FAL.ai): "vector minimal logo, fintech brand, geometric hexagon with pulse line, dark navy (#0A1628) and gold (#D4A843), dark background, no text, centered"

참조 전용: 이러한 프롬프트는 아이디어를 생성하거나 고객에게 방향을 제시하기 위한 래스터 참조용입니다. SVG는 항상 최종 전달물이어야 합니다.


4단계: SVG 로고 생성

SVG 생성 체크리스트

  • <svg>에 올바른 viewBox (일반적으로 "0 0 512 512")가 있습니까?
  • <defs>에 그라디언트가 올바르게 정의되었습니까?
  • linearGradient가 올바른 방향(x1, y1, x2, y2)을 가지고 있습니까?
  • 데스크탑과 모바일에서 가독성을 위해 모든 요소의 크기가 적절합니까?
  • SVG가 외부 종속성 없이 독립적입니까?
  • 형태를 단순화했습니까? (애니메이션 가능하게 유지)
  • 16×16에서 테스트했습니까? (가장 작은 렌더링)
  • 그라디언트 정지점 순서를 확인했습니까? (사용자 색상 이름 사용)
  • 광학적 중앙 정렬인가요 기하학적 중앙 정렬인가요? (V-딥 마크는 아래로 이동)

필수 SVG 요소 구조

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="100%" height="100%">
  <defs>
    <linearGradient id="brandGradient" x1="0%" y1="0%" x2="100%" y2="100%">
      <stop offset="0%" stop-color="#D4A843" />
      <stop offset="50%" stop-color="#0A1628" />
      <stop offset="100%" stop-color="#D4A843" />
    </linearGradient>
    <filter id="glow">
      <feGaussianBlur stdDeviation="3" result="coloredBlur"/>
      <feMerge>
        <feMergeNode in="coloredBlur"/>
        <feMergeNode in="SourceGraphic"/>
      </feMerge>
    </filter>
  </defs>
  <!-- 배경 -->
  <rect width="512" height="512" fill="#0A1628" rx="48" />
  <!-- 마크 -->
  <g transform="translate(256, 256)">
    <!-- 로고 요소 -->
  </g>
</svg>

마크 유형 SVG 템플릿

텔레그램/앱 아이콘 (원형 베이스):

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="100%" height="100%">
  <defs>
    <linearGradient id="borderGrad" x1="0%" y1="0%" x2="100%" y2="100%">
      <stop offset="0%" stop-color="#D4A843" />
      <stop offset="25%" stop-color="#0A1628" />
      <stop offset="50%" stop-color="#D4A843" />
      <stop offset="75%" stop-color="#0A1628" />
      <stop offset="100%" stop-color="#D4A843" />
    </linearGradient>
  </defs>
  <!-- 검은 원 베이스 — r이 테두리 선 내부 가장자리와 일치해야 함 -->
  <circle cx="256" cy="256" r="248" fill="#0A1628" />
  <!-- 그라디언트 테두리 선 -->
  <circle cx="256" cy="256" r="252" fill="none" stroke="url(#borderGrad)" stroke-width="8" />
  <!-- 마크 그룹 - 필요에 따라 이동 -->
  <g transform="translate(256, 256)">
    <!-- 로고 요소 -->
  </g>
</svg>

신호/펄스 마크:

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="100%" height="100%">
  <defs>
    <linearGradient id="signalGrad" x1="0%" y1="0%" x2="100%" y2="0%">
      <stop offset="0%" stop-color="#D4A843" />
      <stop offset="50%" stop-color="#00FFFF" />
      <stop offset="100%" stop-color="#D4A843" />
    </linearGradient>
  </defs>
  <rect width="512" height="512" fill="#0A1628" />
  <g transform="translate(256, 256)">
    <!-- 신호 라인: 왼쪽에서 오른쪽, 기준선을 피크에 가깝게 유지 -->
    <path d="M-200,0 L-150,0 L-100,-80 L-50,-20 L0,-90 L50,0 L100,0" 
          fill="none" stroke="url(#signalGrad)" stroke-width="6" stroke-linecap="round" stroke-linejoin="round" />
  </g>
</svg>

키가 큰 마크 (날개 + V-딥)에 대한 광학적 중앙 정렬: transform="translate(256, 290)" (512×512 캔버스에서). 시각적으로 반복하십시오.


5단계: 로고 애니메이션

애니메이션 가능한 SVG를 위한 준비

애니메이션 전에 SVG를 정리하십시오:

  1. 단순화: 복잡한 <path>를 더 작은 <path> 요소로 나누십시오. 각 형태에는 고유한 애니메이션이 있어야 합니다.
  2. 이름: 애니메이션을 위해 <g id="part-name">를 사용하여 그룹화하십시오.
  3. 순서: 자연스러운 애니메이션 흐름을 위해 z-색인 순서로 정렬하십시오.
  4. CSS 클래스: stroke-dasharray, opacity, transform을 위한 클래스를 추가하십시오.

로고 애니메이션에 대한 디즈니 12원칙

원칙로고 애니메이션에 적용CSS 구현
스쿼시와 스트레치로고 로드/축소 시 변형scale(x, y) — 볼륨을 유지하고 현실적인 탄성을 위해 easeOutBack 사용
예비 동작마크가 나타나기 전에 반동 또는 축소translate(-20px, 0)로 시작하여 중앙으로 — '수축 및 반동' 느낌을 위해 cubic-bezier 사용
스테이징가장 중요한 요소가 먼저 나타나도록, 다른 요소는 150ms 지연그룹 제목 텍스트를 animation-delay: 150ms로, 태그라인을 300ms로
직선 동작과 이완로고 나타남에 대한 ease-out으로 부드럽게 정지, 출현에 대한 ease-incubic-bezier(0.25, 0.46, 0.45, 0.94) 또는 ease-out (입방)
연속 동작 및 중첩선이 흐르고 점은 따라가며 약간 지연됨animation: drawLine 0.6s ease-out, fadeInDot 0.3s 0.6s ease-out both
슬로우 인 슬로우 아웃나타남/사라짐에 대한 부드러운 가속/감속transition-timing-function: cubic-bezier(0.42, 0, 0.58, 1) 또는 표준 ease-in-out
호 동작요소가 직선이 아닌 호를 그리며 움직임CSS offset-path 또는 키프레임 내에서 복잡한 translate(x, y) 사용
2차 동작미세한 빛남, 흔들림, 또는 부드러운 그라디언트 이동으로 로고에 생명을 불어넣음그라디언트 정지점 위치에 @keyframes shimmer를 사용한 미묘한 그라디언트 애니메이션 (0.8초 지속, 무한 반복, 4-6s 지연)
타이밍나타남: 300-500ms; 호버: 150-200ms; 로고 로드: 1.5-3s 총 지속animation-duration: 400ms, 로드 지속 시간 1200ms, 그라디언트 애니메이션 지속 시간 2500ms
과장미묘한 초과 확장은 생동감을 더함 (로고 로드에서 5-10% 초과)scale(1.05)로 확장한 후 scale(1) — easeOutBack은 초과를 내장
솔리드 드로잉2D 평면 로고에도 3D 신뢰성을 위한 그림자/깊이drop-shadow, 미묘한 inset-shadow 또는 여러 레이어의 opacity
매력마지막 색상 변화, 빛남, 또는 "wow" 순간3-5개 지점 간 그라디언트 정지점 애니메이션 (시안-에메랄드-골드-에메랄드-시안) — "숨쉬는 느낌" 전경화

SFX/로고 애니메이션에 대한 CSS 구현

기본 출현 (선 그리기 + 페이드 인):

@keyframes drawLine {
  from { stroke-dashoffset: 1000; }
  to { stroke-dashoffset: 0; }
}
@keyframes fadeIn {
  from { opacity: 0; transform: scale(0.8); }
  to { opacity: 1; transform: scale(1); }
}
.logo-mark {
  animation: drawLine 1.2s ease-out forwards, fadeIn 0.6s 0.3s ease-out both;
}

전체 로고 시퀀스 예시 (Cascade):

/* 12 CSS 원칙을 적용한 Cascade 로고 시퀀스 */
.logo-container {
  opacity: 0;
  animation: logoAppear 2.5s ease-out forwards;
}
@keyframes logoAppear {
  0% { opacity: 0; transform: scale(0.3) rotate(-5deg); }
  60% { opacity: 1; transform: scale(1.05) rotate(0deg); }  /* 과장 + 초과 */
  80% { transform: scale(0.98); }  /* 스쿼시/스트레치 반동 */
  100% { opacity: 1; transform: scale(1); }
}
.letter {
  display: inline-block;
  animation: letterBounce 0.5s ease-out both;
}
.letter:nth-child(1) { animation-delay: 0.5s; }
.letter:nth-child(2) { animation-delay: 0.6s; }
.letter:nth-child(3) { animation-delay: 0.7s; }
.letter:nth-child(4) { animation-delay: 0.8s; }
@keyframes letterBounce {
  0% { opacity: 0; transform: translateY(20px) scale(0.5); }
  60% { transform: translateY(-5px) scale(1.1); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}
/* 연속 동작 및 중첩: 글자 C가 흐르고, a가 따라오며, s가 지연됨 */
.logo-shimmer {
  background: linear-gradient(90deg, #D4A843 0%, #00FFFF 50%, #D4A843 100%);
  background-size: 200% 100%;
  animation: shimmer 2.5s ease-in-out infinite;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
@keyframes shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

CSS 애니메이션 로고가 있는 완전한 HTML 페이지

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>로고 애니메이션 미리보기</title>
  <style>
    * { margin: 0; padding: 0; box-sizing: border-box; }
    body {
      display: flex; justify-content: center; align-items: center;
      min-height: 100vh; background: #0A1628;
    }
    .logo-container {
      opacity: 0;
      animation: logoAppear 2.5s ease-out forwards;
    }
    .logo-svg {
      width: 400px; height: 400px;
      filter: drop-shadow(0 0 30px rgba(212, 168, 67, 0.3));
      transition: filter 0.3s ease;
    }
    .logo-svg:hover {
      filter: drop-shadow(0 0 50px rgba(212, 168, 67, 0.6));
    }
    @keyframes logoAppear {
      0% { opacity: 0; transform: scale(0.3) rotate(-5deg); }
      60% { opacity: 1; transform: scale(1.05) rotate(0deg); }
      80% { transform: scale(0.98); }
      100% { opacity: 1; transform: scale(1); }
    }
  </style>
</head>
<body>
  <div class="logo-container">
    <object class="logo-svg" type="image/svg+xml" data="logo.svg"></object>
  </div>
</body>
</html>

전체 SVG 미리보기 페이지 생성:

  • 로고 SVG를 <object>에 삽입한 HTML 파일 생성
  • 로컬에서 열거나 서빙
  • Playwright를 사용하여 스크린샷 캡처

6단계: 브랜드 시스템 구축

브랜드 시스템 문서의 필수 구성 요소

1. 로고 변형

다음 각각에 대한 SVG 파일:

  • 기본 로고 (수평)
  • 아이콘 전용 (정사각형)
  • 단색 (검정)
  • 단색 (흰색)
  • 작은 크기 (16×16, 32×32)
  • favicon

2. 색상 팔레트

역할16진수RGB용도
기본#0A162810, 22, 40배경, 주요 텍스트
2차#D4A843212, 168, 67악센트, 호버
백색#F5F5F5245, 245, 245배경, 대비
오류#E74C3C231, 76, 60오류 상태
성공#2ECC7146, 204, 113성공 상태
경고#F39C12243, 156, 18경고 상태

3. 타이포그래피 (폰트 선택 및 소싱)

선택 기준:

  • 라이선싱: 상업용 라이선스 확인 (SIL OFL, Apache 2.0, 유료 라이선스)
  • 렌더링: 웹사이트 앤티앨리어싱 일관성, 앱 픽셀 힌팅
  • 페어링: 대비 (serif + sans-serif, 가변 폭 + 고정 폭)
  • 크기 조정: 16px 이하 가독성 (작은 UI 텍스트의 경우 x-높이가 중요함)

폰트 소스 (영어):

폰트 페어링 제안 구조:

## 타이포그래피
- **헤드라인:** [폰트 이름] — [카테고리, 분위기 설명]
- **본문:** [폰트 이름] — [카테고리, 가독성 설명]
- **고정 폭:** [폰트 이름] — [카테고리, 용도 설명]
- **폴백:** [폰트 스택]
- **라이선스:** [라이선스 유형]
- **소스:** [URL]

예시:

  • 헤드라인: JetBrains Mono — 고정 폭 기술, 함체에서 현대적이고 엄격함
  • 본문: Inter — 인체 공학적 sans, UI 디스플레이에 최적화됨
  • 고정 폭 (코드): JetBrains Mono — 기술 컨텍스트와의 시각적 일관성을 위해
  • 폴백: system-ui, -apple-system, sans-serif
  • 라이선스: SIL Open Font License 1.1
  • 소스: https://fonts.google.com (Inter), https://www.jetbrains.com/lp/mono (JetBrains Mono)

폰트 크기 시스템 (typographic scale modulor):

레벨크기행간사용처
-212px16px작은 레이블, 캡션
-114px20px본문 작은 크기, 부 메뉴
016px24px본문 텍스트
120px28pxH4, 큰 본문
228px36pxH3, 중요 섹션
336px44pxH2, 페이지 헤더
448px56pxH1, 랜딩 히어로
564px72px디스플레이, 큰 히어로

4. 간격 시스템

간격 토큰픽셀용도
xs4px밀집된 그룹 내부 요소
sm8px요소 간, 버튼 내부
md16px섹션 내부, 카드 내부
lg24px섹션 간, 주요 컨테이너
xl32px큰 섹션 나누기
2xl48px페이지 영역
3xl64px주요 페이지 섹션

5. 아이콘 스타일 가이드

  • 선 두께: 2px (작은 크기), 3px (큰 크기)
  • 모서리: 둥근 모서리 (2px 반경), 날카로운 코너 (기술/기하학 마크)
  • 그리드: 모든 아이콘은 24×24 기본 그리드에 맞춤
  • 채우기: 외곽선 또는 솔리드이지만 혼용하지 않음
  • 브랜드 아이콘: 시그니처 골드 채우기, 네이비 배경

6. UI 스타일 참조

/* 버튼 */
.btn-primary { background: #D4A843; color: #0A1628; }
.btn-secondary { background: transparent; border: 2px solid #D4A843; color: #D4A843; }

/* 카드 */
.card { background: #1A2A4A; border-radius: 16px; padding: 24px; }

/* 입력 */
.input { background: #0A1628; border: 1px solid #2A3A5A; border-radius: 8px; padding: 12px 16px; }
.input:focus { border-color: #D4A843; outline: none; box-shadow: 0 0 0 3px rgba(212, 168, 67, 0.2); }

7단계: 래스터-벡터 변환

Pixel2Motion 변환 워크플로

Pixel2Motion 파이프라인을 사용하여 비트맵 로고를 애니메이션 가능한 SVG로 변환:

  1. 입력: 비트맵 이미지 (PNG, JPG, GIF)
  2. Pixel2Motion 처리: 자동 윤곽선 추출 및 통합
  3. 출력: 워블트, WebGL 배경, 또는 GIF 아바타로 내보낼 수 있는 애니메이션 가능한 3D 캐릭터

수동 변환 단계:

  1. ImageGenerate를 사용하지 마십시오 — 환경에 FAL_KEY가 없습니다.
  2. 래스터 이미지를 로드하고 PIL로 분석합니다.
  3. 픽셀 데이터에서 SVG 경로를 구성합니다:
    • PIL Image를 numpy 배열로 로드
    • 경계/가장자리 감지
    • 가장자리를 SVG <path> 요소로 변환
    • 색상 영역을 SVG <polygon> 또는 <path> 요소로 변환

ras2vec / vectorize CLI 도구 사용에 대한 참고 사항 (사용 가능한 경우):

# 가능한 경우 Potrace CLI 사용
potrace input.pgm -s -o output.svg

8단계: 상표 인식 및 법적 검토

기본 상표 검사

AI 로고 생성에는 다음이 포함되어야 합니다:

  1. 경쟁사 로고 검색 — WebSearch를 사용하여 동일 업계의 기존 로고 확인
  2. 형태 충돌 확인 — 유사한 모양, 레이아웃, 색상 조합
  3. 문자 표식 충돌 확인 — 약어가 기존 등록 상표를 형성하지 않는지 확인
  4. 경고 전달: "이는 자동화된 검사이며 법적 상표 검색을 대체하지 않습니다."

AVOID 목록

다음을 피하십시오:

  • 복잡한 사진 같은 그라디언트
  • 고대비 (텍스트 가독성은 WCAG AA를 충족해야 함)
  • 중복 이름 (이미 업계에서 사용 중인 로고 이름 생성 금지)
  • 검증되지 않은 상업용 폰트
  • 과도한 그림자/필터 효과
  • 대상 업계와 관련 없는 문화적 참조
  • 산만한 애니메이션 없는 로고 디자인
  • 사용 사례에 맞지 않는 잘못된 크기의 로고

전달 프로토콜

전달 전 체크리스트

  • 파일: .agents/brand-context.md 업데이트
  • 파일: logo/ 디렉토리에 SVG 저장
  • 파일: PNG 미리보기 생성
  • 파일: 작은 크기 변형 생성 (16×16, 32×32, 64×64)
  • 파일: 단색 변형 저장
  • 시각적: 모든 변형의 미리보기를 표시 (MEDIA 사용)
  • 피드백: "이 로고가 귀하의 브랜드를 효과적으로 대표합니까? 수정하시겠습니까?"라고 물음
  • 옵션: 2-4가지 변형 생성 (화살표 유무, 색상 변경, 아이콘 전용)

SVG 파일 명명 규칙

logo/
├── logo-primary.svg         # 기본 수평 로고
├── logo-icon.svg            # 아이콘 전용 (정사각형)
├── logo-icon-dark.svg       # 어두운 배경용 아이콘
├── logo-icon-light.svg      # 밝은 배경용 아이콘
├── logo-monochrome-black.svg # 단색 검정
├── logo-monochrome-white.svg # 단색 흰색
├── logo-small.svg           # 16×16
├── logo-mobile.svg          # 32×32
├── favicon.svg              # 파비콘
├── preview.png              # Playwright 렌더링 미리보기
└── preview-small.png        # 작은 크기 미리보기

애니메이션 파일 명명 규칙

logo/
├── animation/
│   ├── logo-reveal.html     # 전체 로고 출현 애니메이션
│   ├── logo-breathe.html    # 그라디언트 애니메이션 ("숨쉬기")
│   ├── logo-icon-reveal.svg # 기본 로고 아이콘 출현 (SVG-내장)
│   ├── logo-loading.html    # 로딩 화면 애니메이션
│   └── preview.mp4          # 스크린 레코딩 (선택 사항)

워크플로 요약

graph TD
    A[브랜드 컨텍스트 캡처] --> B[시각적 전략 정의]
    B --> C{중간 이미지 참조?}
    C -->|예| D[AI 프롬프트 엔지니어링]
    C -->|아니오| E[SVG 로고 생성]
    D --> E
    E --> F[SVG 요소 구조 검증]
    F --> G[변형 및 단색 생성]
    G --> H[Google Fonts에서 폰트 선택]
    G --> I[SVG 애니메이션 적용]
    H --> J[브랜드 시스템 문서화]
    I --> J
    J --> K[PNG로 미리보기]
    K --> L[사용자에게 전달 및 피드백 수집]
    L -->|수정| B
    L -->|완료| M[파일 저장 및 브랜드 컨텍스트 업데이트]

공통 문제 해결

SVG 렌더링 문제

문제원인해결 방법
Playwright 스크린샷이 검정 또는 비어 있음파일 경로가 잘못되었거나 SVG에 오류가 있음SVG를 브라우저에서 열어 유효성 확인; 절대 경로 사용
그라디언트가 표시되지 않음<defs>가 <use> 앞에 와야 함<defs>를 <svg> 내 첫 번째 하위 요소로 배치
SVG 내 CSS 애니메이션이 작동하지 않음<style>이 HTML에 있어야 함 (SVG 자체 아님)외부 CSS를 위한 <object> + HTML 래퍼 사용
선이 잘림viewBox에 모든 요소가 포함되지 않음모든 좌표를 포함하도록 viewBox 확장
잘못된 크기 로고viewBox가 콘텐츠와 일치하지 않음viewBox를 요소에 정확히 맞춤

이미지 분석 문제 (vision_analyze 실패)

문제원인해결 방법
vision_analyze가 "이미지가 보이지 않습니다" 반환비전 공급자가 올바르게 설정되지 않음보조 비전 설정 구성 실행
외부 URL 차단됨이미지 호스트가 액세스를 제한함이미지를 로컬로 다운로드하고 파일 경로 사용
PIL 대비책이 색상을 잘못 읽음복잡한 그라디언트가 평균 색상과 일치하지 않음가장자리 및 모서리를 포함한 여러 영역 샘플링

로고 디자인 프롬프트 예시

전체 SVG 로고 생성 프롬프트 예시 (Claude Code)

"'Noirchat' 브랜드용 로고 디자인 — 개인 정보 보호 우선 메시징 앱. 네이비와 골드. 시크한 실드 모양, 그 아래 채팅 버블. SVG-first. 512×512. 보여주기 전에 gradient stop 순서를 먼저 확인하세요."

로고 애니메이션 프롬프트 예시

"이 로고에 CSS 출현 애니메이션을 추가하세요: 예비 동작, 연속 동작, 타이밍. 2초 지속. 매력적인 그라디언트 '숨쉬기'를 포함하세요. Telegram 아이콘 버전과 전체 출현이 있는 미리보기 HTML 페이지를 만드세요."

브랜드 시스템 프롬프트 예시

"'Noirchat' 브랜드 시스템을 문서화하세요. 로고 변형(기본, 아이콘, 단색), 색상 팔레트(16진수, RGB), 타이포그래피(헤드라인 + 본문 + 고정 폭 제안), 아이콘 스타일, 간격 시스템을 포함하세요."


기여 및 확장

이 스킬을 다음과 같이 확장하십시오:

  • 새 SVG 템플릿을 templates/에 추가
  • 연구된 브랜드 컨텍스트를 references/에 추가 (스킬 하위 디렉토리)
  • 미래를 위한 상표 검사 기록 추가
  • 비표준 디자인 요청 처리를 위한 규칙 추가

관련 스킬