timelabs 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +30 -20
- package/package.json +1 -1
- package/skills/web-design/claude-code/SKILL.md +270 -0
- package/skills/web-design/claude-code/analyze/analyze-benchmark-rules.md +229 -0
- package/skills/web-design/claude-code/analyze/analyze-benchmark.md +302 -0
- package/skills/web-design/claude-code/analyze/analyze-mockup.md +572 -0
- package/skills/web-design/claude-code/collect/collect-app.md +258 -0
- package/skills/web-design/claude-code/collect/collect-desktop.md +231 -0
- package/skills/web-design/claude-code/collect/collect-hybrid.md +222 -0
- package/skills/web-design/claude-code/collect/collect-style.md +155 -0
- package/skills/web-design/claude-code/collect/collect-type.md +42 -0
- package/skills/web-design/claude-code/collect/collect-video.md +239 -0
- package/skills/web-design/claude-code/collect/collect-web.md +279 -0
- package/skills/web-design/claude-code/defs/ai-recommend/01-style-design-recommend.md +64 -0
- package/skills/web-design/claude-code/defs/ai-recommend.md +58 -0
- package/skills/web-design/claude-code/defs/app-layouts/02-utility.md +54 -0
- package/skills/web-design/claude-code/defs/app-layouts/03-social.md +71 -0
- package/skills/web-design/claude-code/defs/app-layouts/04-game.md +54 -0
- package/skills/web-design/claude-code/defs/app-layouts/05-fintech.md +62 -0
- package/skills/web-design/claude-code/defs/app-layouts/06-healthcare.md +66 -0
- package/skills/web-design/claude-code/defs/app-layouts/07-ecommerce.md +63 -0
- package/skills/web-design/claude-code/defs/app-layouts/08-education.md +88 -0
- package/skills/web-design/claude-code/defs/app-layouts/09-creative.md +86 -0
- package/skills/web-design/claude-code/defs/app-layouts.md +59 -0
- package/skills/web-design/claude-code/defs/app-motions/01-utility.md +51 -0
- package/skills/web-design/claude-code/defs/app-motions/02-social.md +55 -0
- package/skills/web-design/claude-code/defs/app-motions/03-game.md +52 -0
- package/skills/web-design/claude-code/defs/app-motions/04-fintech.md +52 -0
- package/skills/web-design/claude-code/defs/app-motions/05-healthcare.md +52 -0
- package/skills/web-design/claude-code/defs/app-motions/06-ecommerce.md +55 -0
- package/skills/web-design/claude-code/defs/app-motions/07-education.md +54 -0
- package/skills/web-design/claude-code/defs/app-motions/08-creative.md +53 -0
- package/skills/web-design/claude-code/defs/app-motions/10-intensity-preset-motion.md +12 -0
- package/skills/web-design/claude-code/defs/app-motions.md +64 -0
- package/skills/web-design/claude-code/defs/component-specs/01-set-component.md +24 -0
- package/skills/web-design/claude-code/defs/component-specs/02-features-flow.md +51 -0
- package/skills/web-design/claude-code/defs/component-specs/03-system-visual.md +193 -0
- package/skills/web-design/claude-code/defs/component-specs/04-interaction-pattern-visual.md +61 -0
- package/skills/web-design/claude-code/defs/component-specs/domains/admin.md +55 -0
- package/skills/web-design/claude-code/defs/component-specs/domains/dashboard.md +60 -0
- package/skills/web-design/claude-code/defs/component-specs/domains/erp.md +68 -0
- package/skills/web-design/claude-code/defs/component-specs/domains/saas.md +65 -0
- package/skills/web-design/claude-code/defs/component-specs.md +24 -0
- package/skills/web-design/claude-code/defs/design-guide-sections.md +37 -0
- package/skills/web-design/claude-code/defs/desktop-layouts/01-utility.md +69 -0
- package/skills/web-design/claude-code/defs/desktop-layouts/02-data.md +71 -0
- package/skills/web-design/claude-code/defs/desktop-layouts/03-creative.md +73 -0
- package/skills/web-design/claude-code/defs/desktop-layouts/04-communication.md +71 -0
- package/skills/web-design/claude-code/defs/desktop-layouts/05-game.md +73 -0
- package/skills/web-design/claude-code/defs/desktop-layouts/06-business.md +74 -0
- package/skills/web-design/claude-code/defs/desktop-layouts.md +49 -0
- package/skills/web-design/claude-code/defs/desktop-motions/01-utility.md +56 -0
- package/skills/web-design/claude-code/defs/desktop-motions/02-data.md +60 -0
- package/skills/web-design/claude-code/defs/desktop-motions/03-creative.md +60 -0
- package/skills/web-design/claude-code/defs/desktop-motions/04-communication.md +57 -0
- package/skills/web-design/claude-code/defs/desktop-motions/05-game.md +55 -0
- package/skills/web-design/claude-code/defs/desktop-motions/06-business.md +52 -0
- package/skills/web-design/claude-code/defs/desktop-motions.md +75 -0
- package/skills/web-design/claude-code/defs/hybrid-layouts/01-web_mobile.md +81 -0
- package/skills/web-design/claude-code/defs/hybrid-layouts/02-web_desktop.md +78 -0
- package/skills/web-design/claude-code/defs/hybrid-layouts/03-mobile_desktop.md +79 -0
- package/skills/web-design/claude-code/defs/hybrid-layouts/04-all.md +81 -0
- package/skills/web-design/claude-code/defs/hybrid-layouts.md +49 -0
- package/skills/web-design/claude-code/defs/hybrid-motions/01-web_mobile.md +69 -0
- package/skills/web-design/claude-code/defs/hybrid-motions/02-web_desktop.md +69 -0
- package/skills/web-design/claude-code/defs/hybrid-motions/03-mobile_desktop.md +74 -0
- package/skills/web-design/claude-code/defs/hybrid-motions/04-all.md +96 -0
- package/skills/web-design/claude-code/defs/hybrid-motions/07-intensity-preset-motion.md +16 -0
- package/skills/web-design/claude-code/defs/hybrid-motions.md +65 -0
- package/skills/web-design/claude-code/defs/ia-patterns/01-management-dashboard.md +37 -0
- package/skills/web-design/claude-code/defs/ia-patterns/05-video.md +33 -0
- package/skills/web-design/claude-code/defs/ia-patterns/06-video_saas-saas.md +37 -0
- package/skills/web-design/claude-code/defs/ia-patterns.md +85 -0
- package/skills/web-design/claude-code/defs/icon-mappings/04-mapping-design-system.md +25 -0
- package/skills/web-design/claude-code/defs/icon-mappings.md +49 -0
- package/skills/web-design/claude-code/defs/icon-usage.md +56 -0
- package/skills/web-design/claude-code/defs/illustration-guide.md +44 -0
- package/skills/web-design/claude-code/defs/image-strategies/01-landing.md +76 -0
- package/skills/web-design/claude-code/defs/image-strategies/02-dashboard.md +51 -0
- package/skills/web-design/claude-code/defs/image-strategies/03-ecommerce.md +47 -0
- package/skills/web-design/claude-code/defs/image-strategies/04-blog.md +58 -0
- package/skills/web-design/claude-code/defs/image-strategies/05-saas.md +56 -0
- package/skills/web-design/claude-code/defs/image-strategies/06-portfolio.md +62 -0
- package/skills/web-design/claude-code/defs/image-strategies/08-strategy-common-image.md +57 -0
- package/skills/web-design/claude-code/defs/image-strategies.md +58 -0
- package/skills/web-design/claude-code/defs/seo-guide.md +79 -0
- package/skills/web-design/claude-code/defs/styles/02-style-list.md +421 -0
- package/skills/web-design/claude-code/defs/styles/03-custom-animation-keyframes.md +39 -0
- package/skills/web-design/claude-code/defs/styles.md +50 -0
- package/skills/web-design/claude-code/defs/tokens/01-token-format.md +75 -0
- package/skills/web-design/claude-code/defs/tokens/02-token-scope.md +251 -0
- package/skills/web-design/claude-code/defs/tokens.md +24 -0
- package/skills/web-design/claude-code/defs/video-compositions/01-composition-single.md +66 -0
- package/skills/web-design/claude-code/defs/video-compositions/02-composition-multi.md +66 -0
- package/skills/web-design/claude-code/defs/video-compositions/03-composition-parametric.md +81 -0
- package/skills/web-design/claude-code/defs/video-compositions.md +37 -0
- package/skills/web-design/claude-code/defs/video-motions/01-animation-basic.md +49 -0
- package/skills/web-design/claude-code/defs/video-motions/02-animation.md +52 -0
- package/skills/web-design/claude-code/defs/video-motions/03-reference.md +17 -0
- package/skills/web-design/claude-code/defs/video-motions/05-pattern-composition.md +61 -0
- package/skills/web-design/claude-code/defs/video-motions/06-transition-effects.md +49 -0
- package/skills/web-design/claude-code/defs/video-motions/07-audio-sync.md +29 -0
- package/skills/web-design/claude-code/defs/video-motions.md +55 -0
- package/skills/web-design/claude-code/defs/web-layouts/01-landing.md +101 -0
- package/skills/web-design/claude-code/defs/web-layouts/02-dashboard.md +85 -0
- package/skills/web-design/claude-code/defs/web-layouts/03-ecommerce.md +73 -0
- package/skills/web-design/claude-code/defs/web-layouts/04-blog.md +69 -0
- package/skills/web-design/claude-code/defs/web-layouts/05-saas.md +83 -0
- package/skills/web-design/claude-code/defs/web-layouts/06-portfolio.md +62 -0
- package/skills/web-design/claude-code/defs/web-layouts.md +38 -0
- package/skills/web-design/claude-code/defs/web-motions/01-landing.md +91 -0
- package/skills/web-design/claude-code/defs/web-motions/02-dashboard.md +55 -0
- package/skills/web-design/claude-code/defs/web-motions/03-ecommerce.md +52 -0
- package/skills/web-design/claude-code/defs/web-motions/04-blog.md +57 -0
- package/skills/web-design/claude-code/defs/web-motions/05-saas.md +49 -0
- package/skills/web-design/claude-code/defs/web-motions/06-portfolio.md +73 -0
- package/skills/web-design/claude-code/defs/web-motions/08-intensity-preset-motion.md +14 -0
- package/skills/web-design/claude-code/defs/web-motions.md +55 -0
- package/skills/web-design/claude-code/gen/gen-design-guide/01-project-overview.md +304 -0
- package/skills/web-design/claude-code/gen/gen-design-guide-interaction/01-interaction-motion.md +129 -0
- package/skills/web-design/claude-code/gen/gen-design-guide-interaction/04-project-video.md +69 -0
- package/skills/web-design/claude-code/gen/gen-design-guide-interaction.md +45 -0
- package/skills/web-design/claude-code/gen/gen-design-guide.md +43 -0
- package/skills/web-design/claude-code/gen/gen-tokens/01-generate-process.md +318 -0
- package/skills/web-design/claude-code/gen/gen-tokens/02-structure-output-file.md +31 -0
- package/skills/web-design/claude-code/gen/gen-tokens/03-connect-frontend.md +150 -0
- package/skills/web-design/claude-code/gen/gen-tokens.md +54 -0
- package/skills/web-design/claude-code/gen/gen-video.md +73 -0
- package/skills/web-design/claude-code/verify/verify-components.md +52 -0
- package/skills/web-design/claude-code/verify/verify-motions.md +74 -0
- package/skills/web-design/claude-code/verify/verify-pipeline.md +69 -0
- package/skills/web-design/claude-code/verify/verify-report.md +75 -0
- package/skills/web-design/claude-code/verify/verify-responsive.md +49 -0
- package/skills/web-design/claude-code/verify/verify-tokens.md +84 -0
- package/skills/test-skill/claude-code/SKILL.md +0 -7
- package/skills/test-skill/cursor/test-skill.md +0 -7
- package/skills/test-skill/openclaw/SKILL.md +0 -13
- package/skills/test-skill/skill.json +0 -6
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# 1. 랜딩페이지 (`landing`)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### L-I1. Hero Optimized (히어로 최적화)
|
|
5
|
+
|
|
6
|
+
```
|
|
7
|
+
기법: Hero 영역 고품질 이미지 + below-fold 지연 로딩
|
|
8
|
+
방식: srcset+picture | gradient overlay | LQIP blur-up
|
|
9
|
+
|
|
10
|
+
┌─────────────────────────────┐
|
|
11
|
+
│ <picture> │
|
|
12
|
+
│ <source srcset="hero.avif" type="image/avif">
|
|
13
|
+
│ <source srcset="hero.webp" type="image/webp">
|
|
14
|
+
│ <img src="hero.jpg" fetchpriority="high">
|
|
15
|
+
│ </picture> │
|
|
16
|
+
│ ┌───────────────────────┐ │
|
|
17
|
+
│ │ Gradient Overlay │ │
|
|
18
|
+
│ │ + Hero Text │ │
|
|
19
|
+
│ └───────────────────────┘ │
|
|
20
|
+
└─────────────────────────────┘
|
|
21
|
+
above-fold: eager | below-fold: lazy
|
|
22
|
+
|
|
23
|
+
적합: 프로모션, 제품 런칭, 브랜드 랜딩
|
|
24
|
+
CSS: object-fit: cover; aspect-ratio: 16/9
|
|
25
|
+
라이브러리: next/image, @unpic/astro
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### L-I2. Visual Storytelling (비주얼 스토리텔링)
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
기법: 풀블리드 배경 이미지 + 패럴랙스 + 스크롤 리빌
|
|
32
|
+
방식: parallax BG | fullbleed section | fade-in reveal
|
|
33
|
+
|
|
34
|
+
┌─────────────────────────────┐
|
|
35
|
+
│ BG Image (fixed/parallax) │ ← background-attachment
|
|
36
|
+
│ ┌─────────────────────┐ │
|
|
37
|
+
│ │ Section Content │ │
|
|
38
|
+
│ │ (scroll reveal) │ │
|
|
39
|
+
│ └─────────────────────┘ │
|
|
40
|
+
│ │
|
|
41
|
+
│ ┌─────────────────────┐ │
|
|
42
|
+
│ │ Next Section │ │ ← fade-in on scroll
|
|
43
|
+
│ └─────────────────────┘ │
|
|
44
|
+
└─────────────────────────────┘
|
|
45
|
+
|
|
46
|
+
적합: 브랜드 스토리, 크리에이티브 에이전시
|
|
47
|
+
CSS: background-attachment: fixed; background-size: cover
|
|
48
|
+
라이브러리: GSAP ScrollTrigger, Framer Motion
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### L-I3. Performance First (성능 우선)
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
기법: SVG 일러스트 중심 + 최소 래스터, 네이티브 lazy
|
|
55
|
+
방식: native lazy | SVG illustration | skeleton placeholder
|
|
56
|
+
|
|
57
|
+
┌─────────────────────────────┐
|
|
58
|
+
│ Hero: SVG Illustration │ ← 벡터, 무한 확장
|
|
59
|
+
│ (인라인 SVG, 애니메이션) │
|
|
60
|
+
├─────────────────────────────┤
|
|
61
|
+
│ Section: 텍스트 중심 │
|
|
62
|
+
│ [SVG icon] Feature 1 │
|
|
63
|
+
│ [SVG icon] Feature 2 │ ← 래스터 이미지 최소화
|
|
64
|
+
│ [SVG icon] Feature 3 │
|
|
65
|
+
├─────────────────────────────┤
|
|
66
|
+
│ <img loading="lazy"> │ ← 필요 시 native lazy
|
|
67
|
+
│ skeleton → loaded │
|
|
68
|
+
└─────────────────────────────┘
|
|
69
|
+
|
|
70
|
+
적합: SaaS, 기술 서비스, 성능 중시 프로젝트
|
|
71
|
+
CSS: content-visibility: auto
|
|
72
|
+
라이브러리: SVGR, Lottie (애니메이션 SVG)
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# 2. 대시보드 (`dashboard`)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### D-I1. Data Focused (데이터 중심)
|
|
5
|
+
|
|
6
|
+
```
|
|
7
|
+
기법: 아바타 시스템 + SVG 상태 아이콘 + 테이블 이미지 lazy
|
|
8
|
+
방식: avatar+initials fallback | SVG status icon | lazy table image
|
|
9
|
+
|
|
10
|
+
┌──────┬───────────────────────┐
|
|
11
|
+
│ Nav │ ┌─────────────────┐ │
|
|
12
|
+
│ │ │ 👤 Avatar │ │ ← 이미지 실패 시 이니셜
|
|
13
|
+
│ │ │ (fallback: JK) │ │
|
|
14
|
+
│ │ └─────────────────┘ │
|
|
15
|
+
│ │ ┌─────────────────┐ │
|
|
16
|
+
│ SVG │ │ Table │ │
|
|
17
|
+
│icons │ │ [lazy thumb] 행1│ │ ← 테이블 내 썸네일 lazy
|
|
18
|
+
│ │ │ [lazy thumb] 행2│ │
|
|
19
|
+
│ │ └─────────────────┘ │
|
|
20
|
+
└──────┴───────────────────────┘
|
|
21
|
+
|
|
22
|
+
적합: 관리자 패널, CRM, 데이터 관리
|
|
23
|
+
CSS: border-radius: 50%; object-fit: cover
|
|
24
|
+
라이브러리: Boring Avatars, DiceBear
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### D-I2. Media Manager (미디어 매니저)
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
기법: 썸네일 그리드 + 업로드 미리보기 + CDN 최적화
|
|
31
|
+
방식: thumbnail grid | upload preview | CDN resize
|
|
32
|
+
|
|
33
|
+
┌──────┬───────────────────────┐
|
|
34
|
+
│ Nav │ ┌──┬──┬──┬──┐ │
|
|
35
|
+
│ │ │📷│📷│📷│📷│ │ ← 썸네일 그리드
|
|
36
|
+
│ │ ├──┼──┼──┼──┤ │ (lazy + shimmer)
|
|
37
|
+
│ │ │📷│📷│📷│📷│ │
|
|
38
|
+
│ │ └──┴──┴──┴──┘ │
|
|
39
|
+
│ │ ┌─────────────────┐ │
|
|
40
|
+
│ │ │ ⬆ Upload Zone │ │ ← 드래그 앤 드롭
|
|
41
|
+
│ │ │ [preview thumb] │ │ 업로드 미리보기
|
|
42
|
+
│ │ └─────────────────┘ │
|
|
43
|
+
└──────┴───────────────────────┘
|
|
44
|
+
|
|
45
|
+
적합: CMS 미디어 라이브러리, 파일 관리
|
|
46
|
+
CSS: aspect-ratio: 1; object-fit: cover
|
|
47
|
+
라이브러리: react-dropzone, Cloudinary SDK
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# 3. 이커머스 (`ecommerce`)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### E-I1. Product Showcase (상품 쇼케이스)
|
|
5
|
+
|
|
6
|
+
```
|
|
7
|
+
기법: 멀티앵글 줌 갤러리 + 호버 줌 + 차세대 포맷
|
|
8
|
+
방식: multi-angle gallery | hover zoom | WebP/AVIF srcset
|
|
9
|
+
|
|
10
|
+
┌─────────────────────────────┐
|
|
11
|
+
│ ┌───────────────┐ ┌─────┐ │
|
|
12
|
+
│ │ │ │thumb│ │
|
|
13
|
+
│ │ Main Image │ │─────│ │ ← 메인 이미지 교체
|
|
14
|
+
│ │ (hover zoom) │ │thumb│ │ 마우스 오버 줌
|
|
15
|
+
│ │ 🔍 │ │─────│ │
|
|
16
|
+
│ │ │ │thumb│ │ ← 썸네일 갤러리
|
|
17
|
+
│ └───────────────┘ └─────┘ │
|
|
18
|
+
│ ● ○ ○ ○ (indicator) │
|
|
19
|
+
└─────────────────────────────┘
|
|
20
|
+
|
|
21
|
+
적합: 상품 상세, 제품 쇼케이스
|
|
22
|
+
CSS: transform: scale(2); transform-origin: var(--mouse-x) var(--mouse-y)
|
|
23
|
+
라이브러리: react-zoom-pan-pinch, Drift
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### E-I2. Catalog Grid (카탈로그 그리드)
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
기법: 상품 목록 lazy 그리드 + shimmer 플레이스홀더 + srcset
|
|
30
|
+
방식: lazy grid | shimmer placeholder | responsive srcset
|
|
31
|
+
|
|
32
|
+
┌──┬──┬──┬──┐ ┌──┬──┬──┬──┐
|
|
33
|
+
│░░│░░│░░│░░│ → │📷│📷│📷│📷│
|
|
34
|
+
│░░│░░│░░│░░│ │명│명│명│명│ ← shimmer → 실제 이미지
|
|
35
|
+
│₩░│₩░│₩░│₩░│ │₩₩│₩₩│₩₩│₩₩│
|
|
36
|
+
├──┼──┼──┼──┤ ├──┼──┼──┼──┤
|
|
37
|
+
│░░│░░│░░│░░│ │📷│📷│📷│📷│ ← Intersection Observer
|
|
38
|
+
│░░│░░│░░│░░│ │명│명│명│명│ 스크롤 시 순차 로딩
|
|
39
|
+
└──┴──┴──┴──┘ └──┴──┴──┴──┘
|
|
40
|
+
|
|
41
|
+
적합: 상품 목록, 카테고리 페이지
|
|
42
|
+
CSS: aspect-ratio: 3/4; object-fit: cover
|
|
43
|
+
라이브러리: next/image, @unpic/react
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# 4. 블로그/콘텐츠 (`blog`)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### B-I1. Editorial Rich (에디토리얼 리치)
|
|
5
|
+
|
|
6
|
+
```
|
|
7
|
+
기법: 피처드 이미지 + 본문 반응형 이미지 + OG/소셜 최적화
|
|
8
|
+
방식: featured hero | inline responsive | OG image auto-gen
|
|
9
|
+
|
|
10
|
+
┌─────────────────────────────┐
|
|
11
|
+
│ Featured Image │ ← 16:9, srcset, eager load
|
|
12
|
+
│ (hero, above-fold) │
|
|
13
|
+
├─────────────────────────────┤
|
|
14
|
+
│ ## Article Title │
|
|
15
|
+
│ │
|
|
16
|
+
│ 본문 텍스트... │
|
|
17
|
+
│ ┌─────────────────────┐ │
|
|
18
|
+
│ │ Inline Image │ │ ← lazy, figure+figcaption
|
|
19
|
+
│ │ <figcaption>설명 │ │ 반응형 srcset
|
|
20
|
+
│ └─────────────────────┘ │
|
|
21
|
+
│ 본문 계속... │
|
|
22
|
+
├─────────────────────────────┤
|
|
23
|
+
│ OG: og:image 1200x630 │ ← 소셜 공유 최적화
|
|
24
|
+
└─────────────────────────────┘
|
|
25
|
+
|
|
26
|
+
적합: 기술 블로그, 뉴스, 매거진
|
|
27
|
+
CSS: max-width: 100%; height: auto
|
|
28
|
+
라이브러리: next/og, @vercel/og (OG 자동 생성)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### B-I2. Minimal Content (미니멀 콘텐츠)
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
기법: SVG 일러스트 중심 + 최소 사진 + 성능 최적화
|
|
35
|
+
방식: SVG illustration | minimal photos | performance-first
|
|
36
|
+
|
|
37
|
+
┌─────────────────────────────┐
|
|
38
|
+
│ ## Article Title │
|
|
39
|
+
│ ┌─────────┐ │
|
|
40
|
+
│ │ SVG │ ← 커스텀 일러스트│
|
|
41
|
+
│ │ Hero │ (인라인 SVG) │
|
|
42
|
+
│ └─────────┘ │
|
|
43
|
+
│ │
|
|
44
|
+
│ 본문 텍스트 중심... │
|
|
45
|
+
│ (이미지 최소화) │
|
|
46
|
+
│ │
|
|
47
|
+
│ [SVG divider] │ ← 장식용 SVG 구분선
|
|
48
|
+
│ │
|
|
49
|
+
│ 본문 계속... │
|
|
50
|
+
└─────────────────────────────┘
|
|
51
|
+
|
|
52
|
+
적합: 개인 블로그, 에세이, 기술 문서
|
|
53
|
+
CSS: max-inline-size: 65ch (가독성)
|
|
54
|
+
라이브러리: unDraw, Storyset (무료 SVG)
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# 5. SaaS/웹앱 (`saas`)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### S-I1. App Interface (앱 인터페이스)
|
|
5
|
+
|
|
6
|
+
```
|
|
7
|
+
기법: 아바타 시스템 + 빈 상태 SVG + 파일 미리보기
|
|
8
|
+
방식: avatar system | empty state SVG | file preview thumb
|
|
9
|
+
|
|
10
|
+
┌──────┬───────────────────────┐
|
|
11
|
+
│ Nav │ ┌─────────────────┐ │
|
|
12
|
+
│ │ │ 👤 JK 홍길동 │ │ ← 아바타 (fallback 지원)
|
|
13
|
+
│ [📷] │ └─────────────────┘ │
|
|
14
|
+
│ logo │ ┌─────────────────┐ │
|
|
15
|
+
│ │ │ Empty State │ │
|
|
16
|
+
│ │ │ ┌─────┐ │ │ ← 빈 상태 SVG 일러스트
|
|
17
|
+
│ │ │ │ SVG │ │ │
|
|
18
|
+
│ │ │ └─────┘ │ │
|
|
19
|
+
│ │ │ 데이터 없음 │ │
|
|
20
|
+
│ │ └─────────────────┘ │
|
|
21
|
+
│ │ ┌──┬──┬──┐ │
|
|
22
|
+
│ │ │📄│📷│📊│ │ ← 파일 미리보기 썸네일
|
|
23
|
+
│ │ └──┴──┴──┘ │
|
|
24
|
+
└──────┴───────────────────────┘
|
|
25
|
+
|
|
26
|
+
적합: 프로젝트 관리, CRM, 협업 도구
|
|
27
|
+
CSS: width: 32px; height: 32px; border-radius: 50%
|
|
28
|
+
라이브러리: Boring Avatars, undraw (empty state)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### S-I2. Marketing Hybrid (마케팅 하이브리드)
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
기법: 마케팅 랜딩 + 앱 스크린샷 + 그래디언트 오버레이
|
|
35
|
+
방식: hero+screenshot | gradient overlay | responsive srcset
|
|
36
|
+
|
|
37
|
+
┌─────────────────────────────┐
|
|
38
|
+
│ Hero Section │
|
|
39
|
+
│ ┌─────────────────────┐ │
|
|
40
|
+
│ │ Gradient Overlay │ │ ← 그래디언트 + 텍스트
|
|
41
|
+
│ │ ┌───────────────┐ │ │
|
|
42
|
+
│ │ │ App Screenshot│ │ │ ← 반응형 스크린샷
|
|
43
|
+
│ │ │ (mockup) │ │ │ srcset으로 해상도 대응
|
|
44
|
+
│ │ └───────────────┘ │ │
|
|
45
|
+
│ └─────────────────────┘ │
|
|
46
|
+
├─────────────────────────────┤
|
|
47
|
+
│ Features (SVG icons) │ ← SVG 아이콘 + 텍스트
|
|
48
|
+
└─────────────────────────────┘
|
|
49
|
+
|
|
50
|
+
적합: SaaS 마케팅 사이트, 제품 소개
|
|
51
|
+
CSS: object-fit: contain; border-radius: 12px
|
|
52
|
+
라이브러리: next/image, Cloudinary
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# 6. 포트폴리오 (`portfolio`)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### P-I1. Gallery Showcase (갤러리 쇼케이스)
|
|
5
|
+
|
|
6
|
+
```
|
|
7
|
+
기법: Masonry 그리드 + 라이트박스 + LQIP blur-up + 고해상도
|
|
8
|
+
방식: masonry layout | lightbox zoom | LQIP blur-up | HQ responsive
|
|
9
|
+
|
|
10
|
+
┌──┬─────┬──┐
|
|
11
|
+
│ │ │ │
|
|
12
|
+
│📷│ 📷 │📷│ ← Masonry 그리드
|
|
13
|
+
│ │ │ │ (다양한 aspect-ratio)
|
|
14
|
+
├──┤ ├──┤
|
|
15
|
+
│📷│ │📷│ ← LQIP: 블러 → 선명
|
|
16
|
+
├──┼─────┼──┤
|
|
17
|
+
│ │ 📷 │ │
|
|
18
|
+
│📷│ │📷│ ← 클릭 → 라이트박스
|
|
19
|
+
│ │ │ │
|
|
20
|
+
└──┴─────┴──┘
|
|
21
|
+
|
|
22
|
+
click → ┌─────────────────┐
|
|
23
|
+
│ │
|
|
24
|
+
│ Full-size HQ │ ← 고해상도 원본
|
|
25
|
+
│ ← → navigate │ srcset 2x/3x
|
|
26
|
+
│ │
|
|
27
|
+
└─────────────────┘
|
|
28
|
+
|
|
29
|
+
적합: 사진작가, 디자이너, 아티스트
|
|
30
|
+
CSS: columns: 3; break-inside: avoid (또는 CSS Grid masonry)
|
|
31
|
+
라이브러리: Photoswipe, GLightbox, Masonry.js
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### P-I2. Minimal Elegant (미니멀 엘레건트)
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
기법: 엄선된 히어로 이미지 + aspect-ratio 정밀 제어 + 페이드 인
|
|
38
|
+
방식: curated hero | aspect-ratio control | fade-in reveal
|
|
39
|
+
|
|
40
|
+
┌─────────────────────────────┐
|
|
41
|
+
│ │
|
|
42
|
+
│ Curated Hero Image │ ← 엄선된 대표 이미지
|
|
43
|
+
│ (aspect-ratio: 21/9) │ 와이드 시네마틱
|
|
44
|
+
│ │
|
|
45
|
+
├─────────────────────────────┤
|
|
46
|
+
│ ┌─────────┐ ┌─────────┐ │
|
|
47
|
+
│ │ Project │ │ Project │ │ ← 균일한 aspect-ratio
|
|
48
|
+
│ │ (4:3) │ │ (4:3) │ │ fade-in on scroll
|
|
49
|
+
│ └─────────┘ └─────────┘ │
|
|
50
|
+
│ ┌─────────┐ ┌─────────┐ │
|
|
51
|
+
│ │ Project │ │ Project │ │ ← 미니멀 그리드
|
|
52
|
+
│ │ (4:3) │ │ (4:3) │ │
|
|
53
|
+
│ └─────────┘ └─────────┘ │
|
|
54
|
+
└─────────────────────────────┘
|
|
55
|
+
|
|
56
|
+
적합: 미니멀리스트, 건축, 브랜딩 포트폴리오
|
|
57
|
+
CSS: aspect-ratio: 4/3; object-fit: cover; opacity 전환
|
|
58
|
+
라이브러리: Framer Motion (fade-in), GSAP
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# 공통 이미지 전략
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### 포맷 전략
|
|
5
|
+
|
|
6
|
+
| 포맷 | 용도 | 압축 | 브라우저 지원 | 우선순위 |
|
|
7
|
+
|------|------|------|-------------|---------|
|
|
8
|
+
| **AVIF** | 사진, 복잡한 이미지 | 최고 (50% < WebP) | Chrome 85+, Firefox 93+ | 1순위 |
|
|
9
|
+
| **WebP** | 사진, 일러스트 | 좋음 (25-35% < JPEG) | 모든 모던 브라우저 | 2순위 (폴백) |
|
|
10
|
+
| **SVG** | 아이콘, 로고, 일러스트 | 벡터 (무한 확장) | 전체 | 벡터 전용 |
|
|
11
|
+
| **PNG** | 투명 필요, 스크린샷 | 무손실 | 전체 | 투명 폴백 |
|
|
12
|
+
| **JPEG** | 사진 폴백 | 보통 | 전체 | 최종 폴백 |
|
|
13
|
+
|
|
14
|
+
**`<picture>` 폴백 패턴:**
|
|
15
|
+
|
|
16
|
+
```html
|
|
17
|
+
<picture>
|
|
18
|
+
<source srcset="image.avif" type="image/avif">
|
|
19
|
+
<source srcset="image.webp" type="image/webp">
|
|
20
|
+
<img src="image.jpg" alt="설명" loading="lazy">
|
|
21
|
+
</picture>
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Favicon & OG 이미지 스펙
|
|
25
|
+
|
|
26
|
+
| 항목 | 크기 | 포맷 | 용도 |
|
|
27
|
+
|------|------|------|------|
|
|
28
|
+
| **favicon.ico** | 32x32 | ICO | 브라우저 탭 |
|
|
29
|
+
| **favicon.svg** | any | SVG | 모던 브라우저 (다크모드 대응) |
|
|
30
|
+
| **apple-touch-icon** | 180x180 | PNG | iOS 홈 화면 |
|
|
31
|
+
| **og:image** | 1200x630 | PNG/JPEG | 소셜 미리보기 (Facebook, LinkedIn) |
|
|
32
|
+
| **twitter:image** | 1200x600 | PNG/JPEG | Twitter/X 카드 |
|
|
33
|
+
| **manifest icon** | 192x192, 512x512 | PNG | PWA 아이콘 |
|
|
34
|
+
|
|
35
|
+
### 접근성 규칙
|
|
36
|
+
|
|
37
|
+
| 규칙 | 구현 | 설명 |
|
|
38
|
+
|------|------|------|
|
|
39
|
+
| **alt 텍스트 필수** | `<img alt="구체적 설명">` | 정보성 이미지는 내용 설명 |
|
|
40
|
+
| **장식 이미지** | `<img alt="" role="presentation">` | 장식용은 빈 alt + role |
|
|
41
|
+
| **복잡한 이미지** | `aria-describedby` + 별도 설명 | 차트, 인포그래픽 등 |
|
|
42
|
+
| **prefers-reduced-motion** | `@media (prefers-reduced-motion: reduce)` | 패럴랙스, 페이드 비활성화 |
|
|
43
|
+
| **prefers-color-scheme** | `<picture>` media 속성 | 다크모드 대응 이미지 교체 |
|
|
44
|
+
| **고대비 모드** | `forced-colors` 미디어 쿼리 | 윈도우 고대비 대응 |
|
|
45
|
+
|
|
46
|
+
### 고급 기법
|
|
47
|
+
|
|
48
|
+
| 기법 | CSS | 용도 |
|
|
49
|
+
|------|-----|------|
|
|
50
|
+
| **clip-path** | `clip-path: polygon(...)` | 비정형 이미지 마스킹 |
|
|
51
|
+
| **mask-image** | `mask-image: linear-gradient(...)` | 그래디언트 마스크, 페이드 아웃 |
|
|
52
|
+
| **mix-blend-mode** | `mix-blend-mode: multiply` | 이미지 블렌딩, 오버레이 효과 |
|
|
53
|
+
| **filter** | `filter: blur() brightness() contrast()` | 실시간 이미지 필터 |
|
|
54
|
+
| **aspect-ratio** | `aspect-ratio: 16/9` | CLS 방지, 레이아웃 안정화 |
|
|
55
|
+
| **object-fit** | `object-fit: cover / contain` | 컨테이너 내 이미지 맞춤 |
|
|
56
|
+
| **image-rendering** | `image-rendering: crisp-edges` | 픽셀아트, 로고 선명도 |
|
|
57
|
+
| **content-visibility** | `content-visibility: auto` | 화면 밖 이미지 렌더링 최적화 |
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# 웹 이미지 전략 패턴 정의
|
|
2
|
+
|
|
3
|
+
> 참조 위치: `stages/stage2-web.md`에서 분기 사용
|
|
4
|
+
> web_type별 추천 이미지 전략 패턴 정의
|
|
5
|
+
> Dependencies: 없음 (독립 참조 데이터)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 공통 이미지 카테고리
|
|
10
|
+
|
|
11
|
+
| 카테고리 | 설명 |
|
|
12
|
+
|----------|------|
|
|
13
|
+
| **Responsive Image** | srcset, sizes, `<picture>` 기반 반응형 이미지 |
|
|
14
|
+
| **Lazy Loading** | native lazy, Intersection Observer 기반 지연 로딩 |
|
|
15
|
+
| **Placeholder** | LQIP blur-up, skeleton, dominant-color 플레이스홀더 |
|
|
16
|
+
| **Format Optimization** | WebP, AVIF, SVG 최적 포맷 전략 |
|
|
17
|
+
| **Gallery & Zoom** | 라이트박스, 줌, 캐러셀 등 갤러리 인터랙션 |
|
|
18
|
+
| **OG & Favicon** | 소셜 미리보기(Open Graph) 및 파비콘 설정 |
|
|
19
|
+
| **SVG System** | 아이콘, 일러스트, 장식용 SVG 관리 |
|
|
20
|
+
| **Accessibility** | alt 텍스트, 장식 이미지, reduced-motion 대응 |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 1. 랜딩페이지 (`landing`)
|
|
25
|
+
|
|
26
|
+
> 상세: `defs/image-strategies/01-landing.md` 참조
|
|
27
|
+
|
|
28
|
+
기법: Hero 영역 고품질 이미지 + below-fold 지연 로딩
|
|
29
|
+
## 2. 대시보드 (`dashboard`)
|
|
30
|
+
|
|
31
|
+
> 상세: `defs/image-strategies/02-dashboard.md` 참조
|
|
32
|
+
|
|
33
|
+
기법: 아바타 시스템 + SVG 상태 아이콘 + 테이블 이미지 lazy
|
|
34
|
+
## 3. 이커머스 (`ecommerce`)
|
|
35
|
+
|
|
36
|
+
> 상세: `defs/image-strategies/03-ecommerce.md` 참조
|
|
37
|
+
|
|
38
|
+
기법: 멀티앵글 줌 갤러리 + 호버 줌 + 차세대 포맷
|
|
39
|
+
## 4. 블로그/콘텐츠 (`blog`)
|
|
40
|
+
|
|
41
|
+
> 상세: `defs/image-strategies/04-blog.md` 참조
|
|
42
|
+
|
|
43
|
+
기법: 피처드 이미지 + 본문 반응형 이미지 + OG/소셜 최적화
|
|
44
|
+
## 5. SaaS/웹앱 (`saas`)
|
|
45
|
+
|
|
46
|
+
> 상세: `defs/image-strategies/05-saas.md` 참조
|
|
47
|
+
|
|
48
|
+
기법: 아바타 시스템 + 빈 상태 SVG + 파일 미리보기
|
|
49
|
+
## 6. 포트폴리오 (`portfolio`)
|
|
50
|
+
|
|
51
|
+
> 상세: `defs/image-strategies/06-portfolio.md` 참조
|
|
52
|
+
|
|
53
|
+
기법: Masonry 그리드 + 라이트박스 + LQIP blur-up + 고해상도
|
|
54
|
+
## 공통 이미지 전략
|
|
55
|
+
|
|
56
|
+
> 상세: `defs/image-strategies/08-strategy-common-image.md` 참조
|
|
57
|
+
|
|
58
|
+
**`<picture>` 폴백 패턴:**
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# SEO 전략 가이드
|
|
2
|
+
|
|
3
|
+
> Dependencies: `defs/config-schema.md` (seo_level 필드), `defs/styles.md` (OG 이미지 색상)
|
|
4
|
+
> 참조원: `gen/gen-design-guide.md` (섹션 4j), `gen/gen-docs.md` (23-seo-strategy.md), `gen/gen-structure.md` (SEO 파일 스캐폴딩)
|
|
5
|
+
> 조건: `config.project_type == "web"` && `config.type_detail.seo_level != "none"`
|
|
6
|
+
|
|
7
|
+
## 1. Google SEO
|
|
8
|
+
|
|
9
|
+
> 상세: `defs/seo-guide/01-google-seo.md` 참조
|
|
10
|
+
|
|
11
|
+
<!-- 필수 meta -->
|
|
12
|
+
## 2. Naver SEO
|
|
13
|
+
|
|
14
|
+
> 상세: `defs/seo-guide/02-naver-seo.md` 참조
|
|
15
|
+
|
|
16
|
+
1. [Naver Search Advisor](https://searchadvisor.naver.com/) 접속
|
|
17
|
+
## 3. Daum SEO
|
|
18
|
+
|
|
19
|
+
### 3.1 다음 검색등록
|
|
20
|
+
|
|
21
|
+
1. [Daum 검색등록](https://register.search.daum.net/index.daum) 접속
|
|
22
|
+
2. 사이트 URL 등록
|
|
23
|
+
3. 핑 서비스로 색인 요청 가능
|
|
24
|
+
|
|
25
|
+
### 3.2 다음봇 대응
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
# robots.txt - Daum 전용 규칙
|
|
29
|
+
User-agent: Daum
|
|
30
|
+
Allow: /
|
|
31
|
+
Disallow: /api/
|
|
32
|
+
Disallow: /admin/
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### 3.3 다음 웹마스터 도구
|
|
36
|
+
|
|
37
|
+
- RSS/Atom 피드 제출로 콘텐츠 색인 촉진
|
|
38
|
+
- `og:` 태그를 통한 카카오톡 미리보기 최적화 (카카오 = 다음)
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 4. Open Graph / Twitter Card 전체 스펙
|
|
43
|
+
|
|
44
|
+
> 상세: `defs/seo-guide/04-all.md` 참조
|
|
45
|
+
|
|
46
|
+
<!-- 필수 -->
|
|
47
|
+
## 5. 프레임워크별 구현 패턴
|
|
48
|
+
|
|
49
|
+
> 상세: `defs/seo-guide/05-pattern-framework.md` 참조
|
|
50
|
+
|
|
51
|
+
// app/layout.tsx - 전역 메타데이터
|
|
52
|
+
## 6. 웹 유형별 SEO 전략
|
|
53
|
+
|
|
54
|
+
> 상세: `defs/seo-guide/06-strategy.md` 참조
|
|
55
|
+
|
|
56
|
+
## 7. 페이지별 Meta 템플릿
|
|
57
|
+
|
|
58
|
+
> 상세: `defs/seo-guide/07-meta.md` 참조
|
|
59
|
+
|
|
60
|
+
page_meta:
|
|
61
|
+
## 8. SEO 레벨별 생성 범위
|
|
62
|
+
|
|
63
|
+
| 항목 | basic | advanced |
|
|
64
|
+
|------|-------|----------|
|
|
65
|
+
| meta tags (title, description) | O | O |
|
|
66
|
+
| canonical URL | O | O |
|
|
67
|
+
| robots.txt | O | O |
|
|
68
|
+
| sitemap.xml (기본) | O | O |
|
|
69
|
+
| Open Graph 기본 | O | O |
|
|
70
|
+
| Twitter Card | X | O |
|
|
71
|
+
| JSON-LD / Schema.org | X | O |
|
|
72
|
+
| OG 이미지 자동 생성 가이드 | X | O |
|
|
73
|
+
| 자동 sitemap (빌드 시) | X | O |
|
|
74
|
+
| Naver 서치어드바이저 가이드 | O | O |
|
|
75
|
+
| Naver 신디케이션 | X | O |
|
|
76
|
+
| Daum 검색등록 가이드 | X | O |
|
|
77
|
+
| 페이지별 meta 매트릭스 | X | O |
|
|
78
|
+
| Core Web Vitals 체크리스트 | X | O |
|
|
79
|
+
| SSR/SSG 전략 가이드 | X | O |
|