3. 종류별 규격
3-1. 아이콘 icon
| 항목 | 규격 | 확인 |
|---|
| 격자 | SVG viewBox="0 0 24 24", 그림은 2~22 안 (가장자리 2px 여백) | 검수 |
| 그림 방식 | 웹토리 두 가지 톤: 큰 면 class="f"(연한 채움), 안쪽 선 class="d", 바깥 선 class="o" | 검수 |
| 선 | 굵기 1.6, 끝·모서리 둥글게 (stroke-linecap="round", stroke-linejoin="round") | 검수 |
| 색 | 선은 currentColor. 면 색은 지정하지 않아도 편집기가 블록 색으로 칠해요 | 검수 |
| PNG·WebP | 256×256, 투명 배경 | 검수 |
| 묶음 | 같은 묶음은 선 굵기·둥글기·크기를 똑같이. 6개 이상 권장 | 검수 |
예시 (두 가지 톤 별):
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round">
<path class="f" d="M12 3l2.7 5.6 6.1.9-4.4 4.3 1 6.1L12 17l-5.4 2.9 1-6.1-4.4-4.3 6.1-.9z"/>
</svg>
3-2. 이모티콘 emoji
| 항목 | 규격 | 확인 |
|---|
| 크기 | 128×128 (SVG면 viewBox="0 0 128 128") | 검수 |
| 배경 | 투명 | 검수 |
| 움직이는 것 | GIF·WebP, 3초 안쪽에서 반복, 1초에 3번 넘게 번쩍이지 않기 | 검수 |
| 묶음 | 4개 이상 권장, 같은 캐릭터·같은 그림체 | 검수 |
3-3. 스킨 skin
스킨은 블록 디자인 값(JSON) 과 그에 쓰는 그림(bg_, ui_)을 묶은 것이에요.
| 파일 | 내용 |
|---|
skin_<블록>_<이름>_01.json | 그 블록의 디자인 (1개 이상 필수 — 서버 자동 검사) |
skin_any_<이름>_01.json | 모든 블록 공통 디자인. 이게 있거나 모든 블록이 있으면 전체 스킨, 아니면 부분 스킨으로 표시돼요 |
bg_<블록>_<이름>_01.webp | 배경 그림 |
ui_<블록>_<이름>_01.svg | 구분선·버튼 장식 같은 작은 부품 |
JSON 모양 (서버 자동 검사: JSON 객체여야 하고 style은 객체):
{
"name": "클레이 블루",
"block": "banner",
"style": { "bg": "#e6eef9", "color": "#2c3a55", "pad": "l", "align": "center", "width": "wide", "round": true, "rad": 18, "font": "round", "anim": "up", "hover": "lift" }
}
style에 쓸 수 있는 값 (이것 말고는 편집기가 무시해요):
| 값 | 고를 수 있는 것 |
|---|
bg, color | 색 #rrggbb (글자와 배경 밝기 대비 4.5:1 이상 — 검수) |
pad / py | s·m·l / 0~200 (px) |
align | left·center·right·justify |
width | narrow·normal·wide·full |
size / scale | s·m·l / 60~180 (%) — 휴대폰을 위해 140 이하 권장 |
font | sans·serif·round·mono·hand |
fw | 300·400·500·700·800 |
lh / ls | 1.2~2.4 / -5~20 |
round / rad | 사진 모서리 둥글게 / 0~60 (px) |
anim | fade·up·zoom·left·right |
hover | lift·zoom |
boxW / boxH | 30~100 (%) / 최소 높이 px |
스킨 그림 크기 (검수):
| 그림 | 크기 |
|---|
배너 배경 bg_banner_… | 1920×800 (중요한 부분은 가운데 1200×600 안) |
구역 배경 bg_any_… | 1920×1080 |
| 반복 무늬 | 512×512, 이어 붙여도 이음새 없게 |
구분선 ui_divider_… | SVG viewBox="0 0 1200 40" |
| 버튼 장식 | SVG viewBox="0 0 24 24" (아이콘 규칙과 같음) |
스킨 색 규칙 (검수): 주 색 1개 + 보조 색 1~2개. 밝은·어두운 버전은 이름 끝에 -light, -dark.
3-4. 테마 세트 theme
한 가지 색 묶음으로 맞춘 스킨 + 아이콘 + 이모티콘을 상품 하나로 팔거나 나눠요. 받는 사람은 한 번에 홈페이지 전체 분위기를 맞출 수 있어요.
| 항목 | 규격 | 확인 |
|---|
| 꼭 든 것 | skin_…json 1개 이상 + icon_…이나 emoji_… 1개 이상 | 서버 자동 검사 |
| 공통 색 | manifest palette에 #rrggbb 2~8개 (첫 색 = 주 색) | 서버 자동 검사 |
| 색 맞춤 | 아이콘 채움·이모티콘·스킨 색이 palette 안의 색 | 검수 |
| 각 파일 | 아이콘·이모티콘·스킨 규격 그대로 | 위 규격과 같음 |
3-5. 홈페이지 템플릿 template
편집기에서 만든 홈페이지 전체를 템플릿으로 팔거나 나눠요. 받은 사람은 시작 화면 템플릿 목록에서 골라 바로 고쳐 써요.
| 항목 | 규격 | 확인 |
|---|
| 파일 | tpl_any_이름_01.json 1개 = 편집기 '파일 > 내보내기(JSON)' 모양 {version, settings, pages:[{blocks}], header, footer} | 서버 자동 검사 |
| 크기 | 페이지 30개, 블록 400개까지 | 서버 자동 검사 |
| 그림 | zip 안에 img_…·bg_…·logo_…로 넣고, JSON 에서는 파일 이름으로 불러요 (예: "bgImage": "img_banner_cafe_01.jpg") | 서버 자동 검사 |
| 바깥 주소 | https://… 그림·링크, javascript: 등은 서버가 비워요 (자동 고침) | 서버 자동 |
| 빼는 것 | 광고·임의 코드 블록(애드센스, 애드핏, 쿠팡, 광고 코드, 제휴 링크, 음악), 만든 사람 설정(headCode, ads, floating 전화·카톡, 검색 인증 코드, 사이트 주소) | 서버 자동 |
| 글 | 견본 글은 업종에 맞는 자연스러운 문장. 실제 가게 이름·전화번호·주소 금지 | 검수 |
| 미리보기 | 꼭 넣기 (서버가 그릴 수 없어요): 첫 페이지 1200×900 + 휴대폰 화면 권장 | 서버 자동 검사 |
3-6. 섹션 디자인 section
블록 여러 개를 한 번에 넣는 '섹션'이에요 (예: 특징 3칸 + 문의 버튼).
| 항목 | 규격 | 확인 |
|---|
| 파일 | sec_블록_이름_01.json = {"name": "…", "blocks": [{"id","type","props","style"}]} | 서버 자동 검사 |
| 크기 | 섹션 하나에 블록 20개까지 | 서버 자동 검사 |
| 블록 이름 | 파일 이름의 블록은 섹션의 대표 블록 (예: sec_features_…) | 검수 |
| 그 밖 | 그림·바깥 주소·빼는 블록은 템플릿과 같아요 | 서버 자동 |
| 미리보기 | 꼭 넣기 | 서버 자동 검사 |
3-7. 📷 사진 photo (사진·그림 묶음)
내가 찍은 사진(그림도 돼요)을 팔거나 나누는 상품이에요. 회원은 캔디로 사서 홈페이지 사진 칸·배경에 바로 넣어요.
가장 쉬운 방법: 편집기 마켓 → 크리에이터 → 📷 사진 올리기. 사진만 고르면 아래 규격(이름·방향·정보 지우기·미리보기·manifest)을 자동으로 맞춰서 올려요.
| 항목 | 규격 | 확인 |
|---|
| 파일 | img_블록_이름_01.jpg (사진 칸), bg_블록_이름_01.jpg (배경). 이름이 달라도 서버가 img_any_… 로 바꿔요 | 서버 자동 검사 |
| 크기 | 긴 쪽 1200~4000px, 배너 배경은 1920×800. 사진 하나 10MB까지, zip 32MB까지 | 알림 |
| 형식 | 사진은 jpg·webp (품질 85 정도), 그림은 png·svg | 검수 |
| 방향 | 똑바로 선 사진. 휴대폰 방향 정보(EXIF 회전)만으로 세운 jpg 는 받지 않아요 (사진 올리기 창은 자동으로 세워요) | 서버 자동 거절 |
| 사진 속 정보 | 찍은 곳 위치(GPS)·카메라·날짜(EXIF·XMP) 는 서버가 자동으로 지워요 (다시 압축하지 않아 화질 그대로) | 서버 자동 |
| 미리보기 | 사진(jpg·png·webp)이 있으면 꼭 넣기: 긴 쪽 1600px 이하로 줄이고 "미리보기" 글씨를 얹은 preview_01.jpg. 원본과 똑같은 파일은 안 돼요. 그림(svg)만 있으면 서버가 한 장에 모아 만들어요 | 서버 자동 검사 |
| 권리 확인 | manifest photoRights 필수 (아래). 직접 찍었거나 만든 것, 팔 권리가 있는 것만 | 서버 자동 검사 + 검수 |
| 사람·상표 | 알아볼 수 있는 사람은 모두 동의(모델 동의서) 받기. 상표·로고·남의 작품·사유지 건물이 크게 보이면 허락 받기 | 검수 (신고되면 바로 숨김) |
photoRights (manifest.json):
"photoRights": { "own": true, "origin": "shot", "people": "none", "property": "none", "author": "활동명" }
| 칸 | 값 |
|---|
own | true = 내가 찍었거나 만들었고 팔 권리가 있어요 (남의 사진·인터넷에서 받은 사진 금지) |
origin | shot 직접 찍음 · made 직접 그림·합성 · ai AI 로 만듦 (ai: true 면 자동으로 ai) |
people | none 알아볼 수 있는 사람 없음 · release 나온 사람 모두에게 동의 받음 |
property | none 상표·로고·남의 작품 없음 · release 허락 받음 |
author | 찍은 사람 이름·활동명 (선택, 80자) |
산 사람 이용 조건 (마켓 상세 화면에 그대로 보여요)
- 할 수 있어요: 내가 만드는 홈페이지·상세페이지 어디에나 (의뢰받은 것 포함, 개수 제한 없음) · 자르기·밝기·글씨 얹기 같은 편집 · 내 가게·회사 홍보 (광고 배너·SNS 소개 포함) · 작가 이름 표시는 안 해도 돼요
- 안 돼요: 원본 파일을 그대로 팔거나 나눠 주기 (다른 마켓·사진 사이트 포함) · 로고·상표로 등록 · 사진 속 사람을 나쁘게 보이게 쓰기 (성인·정치·약·차별 광고 등) · 사진이 주인공인 굿즈(액자·티셔츠·달력) 만들어 팔기
3-8. 움직임 묶음 anim
블록이 나타날 때·마우스를 올릴 때의 움직임이에요. 두 가지 중 하나로 만들어요.
① Lottie (After Effects + Bodymovin, LottieFiles 등에서 내보낸 JSON)
| 항목 | 규격 | 확인 |
|---|
| 파일 | anim_블록_이름_01.json | 서버 자동 검사 |
| 길이·크기 | 30초 이하, 초당 30 또는 60장면, 500KB 이하 권장 | 알림 |
| 그림 | JSON 안에 넣기 (내보내기 'Embed'). 바깥 그림 주소는 서버가 비워요 | 서버 자동 |
| 표현식 | Lottie 표현식(x, 코드)은 서버가 지워요 | 서버 자동 |
| 글자 | 글꼴 대신 모양(Shape)으로 바꾸기 | 알림 |
② 움직임 프리셋 (코드 없이 값만)
{ "name": "부드럽게 올라오기", "trigger": "scroll", "effect": "up", "duration": 700, "delay": 0, "stagger": 120, "distance": 40, "easing": "ease-out" }
| 값 | 고를 수 있는 것 |
|---|
trigger | scroll 화면에 보일 때 · hover 마우스 올릴 때 · load 열릴 때 · loop 계속 |
effect | fade up down left right zoom flip blur parallax stagger float pulse shake spin |
duration / delay | 100~5000 / 0~5000 (ms) |
stagger | 0~1000 (ms, 여러 항목이 차례로) |
distance | 0~400 (px) |
easing | linear ease ease-in ease-out ease-in-out spring |
repeat | loop 일 때 0(계속)~100 |
- 범위를 벗어난 값은 서버가 맞추고, 모르는 값은 빼요. '움직임 줄이기'를 켠 방문자에게는 편집기가 자동으로 꺼요.
- 미리보기는 꼭 넣기 (움직이는 gif 권장).
3-9. 로고 키트 logo
| 항목 | 규격 | 확인 |
|---|
| 파일 | logo_any_이름_01.svg | 서버 자동 검사 |
| 구성 권장 | 가로형 …-full, 기호만 …-mark, 한 색 …-mono, 어두운 배경용 …-white | 검수 |
| 형식 | SVG 권장 (1개 이상 없으면 알림). 그림이면 긴 쪽 512px 이상, 배경 투명 | 알림 |
| 글자 | 로고 글자는 모양(path)으로 바꾸기 | 알림 |
| 권리 | 실제 회사·상표를 흉내 낸 로고 금지. 받은 사람이 상표 등록을 하려면 크리에이터와 따로 계약 | 검수 |
3-10. 글꼴 font
| 항목 | 규격 | 확인 |
|---|
| 파일 | font_any_이름_01.woff2 (굵기마다 번호: _01 보통, _02 굵게…) | 서버 자동 검사 |
| 형식 | woff2 권장 (woff·ttf·otf 는 알림). 파일 하나 10MB까지 | 서버 자동 검사 |
| 라이선스 | 홈페이지(웹폰트)에 써도 되는 것만: manifest fontLicense 필수 | 서버 자동 검사 |
| 미리보기 | 꼭 넣기: 글꼴로 쓴 견본 문장 그림 1200×900 | 서버 자동 검사 |
"fontLicense": { "type": "own", "webUse": true, "author": "만든 사람", "source": "https://…", "text": "" }
type | 뜻 | 가격 |
|---|
own | 내가 직접 만든 글꼴 | 무료·유료 |
ofl | SIL Open Font License 공개 글꼴 | 무료만 (OFL 은 글꼴만 따로 팔 수 없어요) |
apache-2.0 | Apache 2.0 공개 글꼴 | 무료만 |
webUse: true 가 아니면 올릴 수 없어요. 산 글꼴, '무료 배포 금지'·'웹 사용 금지' 글꼴은 올릴 수 없어요.ofl·apache-2.0 은 라이선스 전문이 필요해요: fontLicense.text 에 넣거나 zip 에 OFL.txt / LICENSE.txt 를 넣어요.- 마켓 상세 화면에 라이선스 종류·만든 사람·출처·전문이 그대로 보여요.
3-11. 3D 모델 model3d
| 항목 | 규격 | 확인 |
|---|
| 파일 | model_model3d_이름_01.glb (색·모양 바꾼 판은 _02…) | 서버 자동 검사 |
| 형식 | glTF 2.0 GLB 한 파일. 그림(텍스처)도 안에 넣기. .gltf+.bin 따로는 안 됨 | 서버 자동 검사 |
| 크기 | 파일 하나 30MB까지 (10MB 이하 권장), 면 20만 개 이하 권장 | 서버 자동 검사 (넘으면 알림) |
| 바깥 주소 | 바깥 파일·그림 주소를 부르면 올릴 수 없어요 | 서버 자동 검사 |
| 압축 | Draco·Meshopt·KTX2 압축 가능 (처음 볼 때 조금 늦음 알림) | 서버 자동 검사 |
| 미리보기 | 꼭 넣기: 모델을 찍은 그림 1200×900 (블록 첫 화면 그림으로도 써요) | 서버 자동 검사 |
- 편집기 🧊 3D 모델 블록에서 돌려 보고, 휴대폰에서는 AR 로 놓아 볼 수 있어요.
- 남의 모델(게임·영화 캐릭터, 상표가 있는 제품)은 올릴 수 없어요. CC BY 모델은
license: "cc-by" 와 원작자를 설명에 적어 주세요.
3-12. 마인드맵 틀 mindmap
| 항목 | 규격 | 확인 |
|---|
| 파일 | mind_any_이름_01.json (편집기 🧠 마인드맵 → 내보내기) | 서버 자동 검사 |
| 모양 | {"type":"webtory-mindmap","v":1,"root":{...},"vars":[],"lay":"mind"} (lay 는 mind · right · org) | 서버 자동 검사 |
| 크기 | 파일 하나 2MB, 칸 500개, 가지 12단계, 칸 하나의 블록 60KB · 액션 20KB 까지 | 서버 자동 검사 |
| 빠지는 것 | 광고·쇼핑몰 블록(coupang · adCode · ads · shopify 등)은 빼고, code·html·script·embed 칸과 javascript: 같은 주소는 비워요. 내 작업 연결 정보(src·pid)도 빼요 | 서버 자동 고침 (편집기도 열 때 한 번 더) |
| 미리보기 | 마인드맵 화면을 찍은 PNG 1200×900 권장. 없으면 기본 🧠 그림 | 서버 자동 |
- 파일에는 마인드맵만 들어가고 계정 정보는 없어요. 판매 화면에도 이 안내가 함께 보여요.
- 무료 공유와 유료 판매 모두 할 수 있어요.
4. zip 묶음과 manifest.json
my-cafe-icons.zip
├─ manifest.json ← 꼭 있어야 해요
├─ preview_01.png ← 미리보기 (없으면 서버가 자동으로 만들어요)
├─ icon_features_coffee_01.svg
├─ icon_features_cake_01.svg
└─ …
- 폴더 한 겹은 괜찮아요 (안의 파일 이름만 써요). 같은 이름 파일이 두 개면 안 돼요.
- 숨김 파일(
.으로 시작)과 __MACOSX 폴더는 자동으로 빼요. - 그림·JSON이 아닌 다른 파일(설명서, psd 등)은 서버가 자동으로 빼요.
manifest.json (서버 자동 검사):
{
"kind": "icon",
"title": { "ko": "카페 아이콘", "en": "Cafe icons", "ja": "カフェアイコン" },
"description": { "ko": "카페·베이커리 홈페이지에 어울리는 두 가지 톤 아이콘 12개" },
"story": "만든 이야기, 쓰는 법",
"price": 0,
"license": "free",
"ai": false,
"tags": ["cafe", "bakery"],
"previews": ["preview_01.png"],
"palette": ["#ee6a3a", "#3b4252", "#e6e9ef"]
}
| 칸 | 규칙 |
|---|
kind | icon · emoji · skin · theme · template · section · photo · anim · logo · font · model3d · mindmap 중 하나 (필수) |
title | 한국어·영어·일본어 중 하나 이상, 60자까지 (필수) |
description | 2000자까지 |
story | 5000자까지 |
priceUsd | 가격 (달러, 권장). 0, 1, 2, 3, 5, 7, 10, 15, 20, 30 중 하나. 0이 아니면 유료 판매 승인을 받은 크리에이터만. 원화 정가는 $1 = ₩1,500 (관리자 설정)으로 계산하고, 캔디로 사는 사람은 약 7% 할인된 캔디 값으로 사요. 작가 몫 80%는 실제로 받은 금액 기준 |
price | (예전 방식) 원화 정가. priceUsd 를 쓰면 안 써도 돼요. 쓰면 0, 1500, 3000, 4500 … (달러 × 1,500) 중 하나 |
license | 무료면 free 또는 cc-by, 유료면 자동으로 standard |
ai | AI로 만들었으면 true (마켓에 'AI 제작'으로 표시) |
tags | 10개까지, 하나에 20자 |
previews | 미리보기 파일 이름 1~10개. 아이콘·이모티콘·스킨·테마·그림(svg)만 든 사진 묶음·로고는 비워 두면 서버가 자동으로 1장 만들어요 (그러면 배지는 안 붙어요). 템플릿·섹션·움직임·글꼴·3D 모델, 그리고 jpg·png·webp 사진이 든 사진 묶음은 꼭 넣어야 해요. 마인드맵 틀은 없으면 기본 🧠 그림이 들어가요 |
fontLicense | 글꼴만, 필수 (3-10) |
photoRights | 📷 사진만, 필수 (3-7) |
palette | 함께 쓰는 색 #rrggbb 2~8개. 테마 세트는 필수, 다른 종류는 선택 |
tool, toolVersion | 만든 도구 표시 (크리에이터 모드는 "webtory-creator", 1). 통계에만 써요 |