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,61 @@
|
|
|
1
|
+
# 5. 컴포지션 패턴
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Stagger (순차 등장)
|
|
5
|
+
|
|
6
|
+
```tsx
|
|
7
|
+
const items = ["Item 1", "Item 2", "Item 3"];
|
|
8
|
+
const STAGGER_DELAY = 10; // 프레임 단위
|
|
9
|
+
|
|
10
|
+
return (
|
|
11
|
+
<AbsoluteFill>
|
|
12
|
+
{items.map((item, i) => (
|
|
13
|
+
<Sequence key={item} from={i * STAGGER_DELAY}>
|
|
14
|
+
<FadeIn>
|
|
15
|
+
<div>{item}</div>
|
|
16
|
+
</FadeIn>
|
|
17
|
+
</Sequence>
|
|
18
|
+
))}
|
|
19
|
+
</AbsoluteFill>
|
|
20
|
+
);
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Sequence 기반 장면 전환
|
|
24
|
+
|
|
25
|
+
```tsx
|
|
26
|
+
const INTRO = 90; // 3초
|
|
27
|
+
const CONTENT = 300; // 10초
|
|
28
|
+
const OUTRO = 90; // 3초
|
|
29
|
+
|
|
30
|
+
return (
|
|
31
|
+
<AbsoluteFill>
|
|
32
|
+
<Sequence from={0} durationInFrames={INTRO} name="Intro">
|
|
33
|
+
<Intro />
|
|
34
|
+
</Sequence>
|
|
35
|
+
<Sequence from={INTRO} durationInFrames={CONTENT} name="Content">
|
|
36
|
+
<Content />
|
|
37
|
+
</Sequence>
|
|
38
|
+
<Sequence from={INTRO + CONTENT} durationInFrames={OUTRO} name="Outro">
|
|
39
|
+
<Outro />
|
|
40
|
+
</Sequence>
|
|
41
|
+
</AbsoluteFill>
|
|
42
|
+
);
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 프레임 기반 조건부 렌더링
|
|
46
|
+
|
|
47
|
+
```tsx
|
|
48
|
+
const frame = useCurrentFrame();
|
|
49
|
+
const { durationInFrames } = useVideoConfig();
|
|
50
|
+
|
|
51
|
+
// 마지막 30프레임에서 페이드 아웃
|
|
52
|
+
const fadeOutStart = durationInFrames - 30;
|
|
53
|
+
const opacity = frame >= fadeOutStart
|
|
54
|
+
? interpolate(frame, [fadeOutStart, durationInFrames], [1, 0], {
|
|
55
|
+
extrapolateRight: "clamp",
|
|
56
|
+
})
|
|
57
|
+
: 1;
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# 6. 전환 효과 (@remotion/transitions)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
> 조건: `config.type_detail.video_features`에 `transitions` 포함 시
|
|
5
|
+
|
|
6
|
+
### CrossFade
|
|
7
|
+
|
|
8
|
+
```tsx
|
|
9
|
+
import { linearTiming, TransitionSeries } from "@remotion/transitions";
|
|
10
|
+
import { fade } from "@remotion/transitions/fade";
|
|
11
|
+
|
|
12
|
+
<TransitionSeries>
|
|
13
|
+
<TransitionSeries.Sequence durationInFrames={90}>
|
|
14
|
+
<Scene1 />
|
|
15
|
+
</TransitionSeries.Sequence>
|
|
16
|
+
<TransitionSeries.Transition
|
|
17
|
+
presentation={fade()}
|
|
18
|
+
timing={linearTiming({ durationInFrames: 30 })}
|
|
19
|
+
/>
|
|
20
|
+
<TransitionSeries.Sequence durationInFrames={90}>
|
|
21
|
+
<Scene2 />
|
|
22
|
+
</TransitionSeries.Sequence>
|
|
23
|
+
</TransitionSeries>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Slide Wipe
|
|
27
|
+
|
|
28
|
+
```tsx
|
|
29
|
+
import { slide } from "@remotion/transitions/slide";
|
|
30
|
+
|
|
31
|
+
<TransitionSeries.Transition
|
|
32
|
+
presentation={slide({ direction: "from-left" })}
|
|
33
|
+
timing={linearTiming({ durationInFrames: 20 })}
|
|
34
|
+
/>
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### 사용 가능 전환 목록
|
|
38
|
+
|
|
39
|
+
| 전환 | import | 설명 |
|
|
40
|
+
|------|--------|------|
|
|
41
|
+
| fade | `@remotion/transitions/fade` | 크로스페이드 |
|
|
42
|
+
| slide | `@remotion/transitions/slide` | 슬라이드 (4방향) |
|
|
43
|
+
| wipe | `@remotion/transitions/wipe` | 와이프 (4방향) |
|
|
44
|
+
| flip | `@remotion/transitions/flip` | 3D 플립 |
|
|
45
|
+
| clockWipe | `@remotion/transitions/clock-wipe` | 시계 방향 와이프 |
|
|
46
|
+
| none | `@remotion/transitions/none` | 전환 없음 (컷) |
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# 7. 오디오 동기화
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
> 조건: `config.type_detail.video_features`에 `audio` 포함 시
|
|
5
|
+
|
|
6
|
+
### 볼륨 페이드
|
|
7
|
+
|
|
8
|
+
```tsx
|
|
9
|
+
import { Audio, interpolate, useCurrentFrame } from "remotion";
|
|
10
|
+
import { staticFile } from "remotion";
|
|
11
|
+
|
|
12
|
+
const frame = useCurrentFrame();
|
|
13
|
+
const volume = interpolate(frame, [0, 30, 270, 300], [0, 0.8, 0.8, 0], {
|
|
14
|
+
extrapolateLeft: "clamp",
|
|
15
|
+
extrapolateRight: "clamp",
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
return <Audio src={staticFile("bgm.mp3")} volume={volume} />;
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### 비트 싱크
|
|
22
|
+
|
|
23
|
+
```tsx
|
|
24
|
+
import { getAudioDurationInSeconds } from "@remotion/media-utils";
|
|
25
|
+
|
|
26
|
+
// calculateMetadata에서 오디오 길이 기반 duration 계산
|
|
27
|
+
const audioDuration = await getAudioDurationInSeconds(audioSrc);
|
|
28
|
+
const durationInFrames = Math.ceil(audioDuration * fps);
|
|
29
|
+
```
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Remotion 애니메이션 패턴
|
|
2
|
+
|
|
3
|
+
> 참조: `stages/stage2-video.md`, `gen/gen-video.md`
|
|
4
|
+
> Dependencies: `defs/conventions/remotion.md`
|
|
5
|
+
|
|
6
|
+
## 개요
|
|
7
|
+
|
|
8
|
+
Remotion 비디오에서 사용하는 애니메이션 패턴을 정의합니다.
|
|
9
|
+
웹 프로젝트의 `web-motions.md`에 대응하는 비디오 버전입니다.
|
|
10
|
+
|
|
11
|
+
> **핵심 원칙**: CSS transitions/animations 금지. `useCurrentFrame()` + `interpolate()` / `spring()` 기반만 허용.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 1. 기본 애니메이션 (interpolate)
|
|
16
|
+
|
|
17
|
+
> 상세: `defs/video-motions/01-animation-basic.md` 참조
|
|
18
|
+
|
|
19
|
+
const frame = useCurrentFrame();
|
|
20
|
+
## 2. 스프링 애니메이션 (spring)
|
|
21
|
+
|
|
22
|
+
> 상세: `defs/video-motions/02-animation.md` 참조
|
|
23
|
+
|
|
24
|
+
const frame = useCurrentFrame();
|
|
25
|
+
## 3. Easing 함수 레퍼런스
|
|
26
|
+
|
|
27
|
+
> 상세: `defs/video-motions/03-reference.md` 참조
|
|
28
|
+
|
|
29
|
+
## 4. Spring Config 프리셋
|
|
30
|
+
|
|
31
|
+
| 프리셋 | damping | stiffness | mass | 용도 |
|
|
32
|
+
|--------|---------|-----------|------|------|
|
|
33
|
+
| Gentle | 20 | 120 | 1 | 텍스트 등장 |
|
|
34
|
+
| Bouncy | 8 | 200 | 0.5 | 아이콘/버튼 팝 |
|
|
35
|
+
| Stiff | 30 | 300 | 1 | 빠른 전환 |
|
|
36
|
+
| Slow | 25 | 60 | 2 | 느린 부유 효과 |
|
|
37
|
+
| Wobbly | 10 | 150 | 1 | 장난스러운 움직임 |
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 5. 컴포지션 패턴
|
|
42
|
+
|
|
43
|
+
> 상세: `defs/video-motions/05-pattern-composition.md` 참조
|
|
44
|
+
|
|
45
|
+
const items = ["Item 1", "Item 2", "Item 3"];
|
|
46
|
+
## 6. 전환 효과 (@remotion/transitions)
|
|
47
|
+
|
|
48
|
+
> 상세: `defs/video-motions/06-transition-effects.md` 참조
|
|
49
|
+
|
|
50
|
+
import { linearTiming, TransitionSeries } from "@remotion/transitions";
|
|
51
|
+
## 7. 오디오 동기화
|
|
52
|
+
|
|
53
|
+
> 상세: `defs/video-motions/07-audio-sync.md` 참조
|
|
54
|
+
|
|
55
|
+
import { Audio, interpolate, useCurrentFrame } from "remotion";
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# 랜딩페이지 (`landing`) 전용 레이아웃
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### [L1] 📜 클래식 스크롤 (Classic Scroll)
|
|
5
|
+
- **구조**: Hero → 섹션 순차 스크롤
|
|
6
|
+
- **적합**: 프로모션, 제품 소개, 서비스 랜딩
|
|
7
|
+
- **특징**: 풀 와이드 섹션, CTA 반복 배치
|
|
8
|
+
```
|
|
9
|
+
┌─────────────────────────────┐
|
|
10
|
+
│ Navigation │
|
|
11
|
+
├─────────────────────────────┤
|
|
12
|
+
│ │
|
|
13
|
+
│ HERO (Full Width) │
|
|
14
|
+
│ [CTA Button] │
|
|
15
|
+
│ │
|
|
16
|
+
├─────────────────────────────┤
|
|
17
|
+
│ Features Section │
|
|
18
|
+
│ ┌───┐ ┌───┐ ┌───┐ │
|
|
19
|
+
│ │ 1 │ │ 2 │ │ 3 │ │
|
|
20
|
+
│ └───┘ └───┘ └───┘ │
|
|
21
|
+
├─────────────────────────────┤
|
|
22
|
+
│ Social Proof │
|
|
23
|
+
├─────────────────────────────┤
|
|
24
|
+
│ Pricing │
|
|
25
|
+
├─────────────────────────────┤
|
|
26
|
+
│ CTA (Repeat) │
|
|
27
|
+
├─────────────────────────────┤
|
|
28
|
+
│ Footer │
|
|
29
|
+
└─────────────────────────────┘
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### [L2] 📸 풀스크린 섹션 (Fullscreen Snap)
|
|
33
|
+
- **구조**: 풀스크린 섹션 단위 스냅 스크롤
|
|
34
|
+
- **적합**: 브랜드 스토리텔링, 제품 런칭, 이벤트
|
|
35
|
+
- **특징**: scroll-snap, 몰입감, 시네마틱
|
|
36
|
+
```
|
|
37
|
+
┌─────────────────────────────┐
|
|
38
|
+
│ Section 1 (100vh) │
|
|
39
|
+
│ ┌───────────────────────┐ │
|
|
40
|
+
│ │ Hero + Video BG │ │
|
|
41
|
+
│ └───────────────────────┘ │
|
|
42
|
+
│ ↓ snap │
|
|
43
|
+
├─────────────────────────────┤
|
|
44
|
+
│ Section 2 (100vh) │
|
|
45
|
+
│ ┌───────────────────────┐ │
|
|
46
|
+
│ │ Feature Showcase │ │
|
|
47
|
+
│ └───────────────────────┘ │
|
|
48
|
+
│ ↓ snap │
|
|
49
|
+
├─────────────────────────────┤
|
|
50
|
+
│ Section 3 (100vh) │
|
|
51
|
+
│ ┌───────────────────────┐ │
|
|
52
|
+
│ │ CTA + Form │ │
|
|
53
|
+
│ └───────────────────────┘ │
|
|
54
|
+
└─────────────────────────────┘
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### [L3] ↔️ 스플릿 레이아웃 (Split Layout)
|
|
58
|
+
- **구조**: 좌우 분할 (이미지 | 텍스트) 교차
|
|
59
|
+
- **적합**: 앱 소개, 기능 비교, 스타트업
|
|
60
|
+
- **특징**: 좌우 교차 배치, 시각적 리듬
|
|
61
|
+
```
|
|
62
|
+
┌─────────────────────────────┐
|
|
63
|
+
│ Navigation │
|
|
64
|
+
├──────────────┬──────────────┤
|
|
65
|
+
│ │ │
|
|
66
|
+
│ Image │ Text + CTA │
|
|
67
|
+
│ │ │
|
|
68
|
+
├──────────────┼──────────────┤
|
|
69
|
+
│ │ │
|
|
70
|
+
│ Text + CTA │ Image │
|
|
71
|
+
│ │ │
|
|
72
|
+
├──────────────┼──────────────┤
|
|
73
|
+
│ │ │
|
|
74
|
+
│ Image │ Text + CTA │
|
|
75
|
+
│ │ │
|
|
76
|
+
├──────────────┴──────────────┤
|
|
77
|
+
│ Footer │
|
|
78
|
+
└─────────────────────────────┘
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### [L4] 🎬 비디오 중심 (Video Hero)
|
|
82
|
+
- **구조**: 비디오 백그라운드 Hero + 하단 섹션
|
|
83
|
+
- **적합**: SaaS 데모, 게임, 크리에이티브 서비스
|
|
84
|
+
- **특징**: 자동재생 비디오 배경, 오버레이 텍스트
|
|
85
|
+
```
|
|
86
|
+
┌─────────────────────────────┐
|
|
87
|
+
│ ┌───────────────────────┐ │
|
|
88
|
+
│ │ ▶ Video Background │ │
|
|
89
|
+
│ │ Overlay Text + CTA │ │
|
|
90
|
+
│ └───────────────────────┘ │
|
|
91
|
+
├─────────────────────────────┤
|
|
92
|
+
│ Features / Content │
|
|
93
|
+
├─────────────────────────────┤
|
|
94
|
+
│ Testimonials │
|
|
95
|
+
├─────────────────────────────┤
|
|
96
|
+
│ Footer │
|
|
97
|
+
└─────────────────────────────┘
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# 대시보드 (`dashboard`) 전용 레이아웃
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### [D1] 📊 사이드바 + 콘텐츠 (Classic Admin)
|
|
5
|
+
- **구조**: 좌측 고정 사이드바 + 우측 메인 영역
|
|
6
|
+
- **적합**: 관리자 패널, CMS, 모니터링
|
|
7
|
+
- **특징**: 사이드바 네비게이션, 브레드크럼, 상단 바
|
|
8
|
+
```
|
|
9
|
+
┌────┬────────────────────────┐
|
|
10
|
+
│ │ Top Bar / Breadcrumb │
|
|
11
|
+
│ S ├────────────────────────┤
|
|
12
|
+
│ I │ │
|
|
13
|
+
│ D │ ┌────┐ ┌────┐ ┌────┐│
|
|
14
|
+
│ E │ │Card│ │Card│ │Card││
|
|
15
|
+
│ B │ └────┘ └────┘ └────┘│
|
|
16
|
+
│ A │ │
|
|
17
|
+
│ R │ ┌───────────────────┐│
|
|
18
|
+
│ │ │ Data Table ││
|
|
19
|
+
│ N │ │ ││
|
|
20
|
+
│ A │ └───────────────────┘│
|
|
21
|
+
│ V │ │
|
|
22
|
+
└────┴────────────────────────┘
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### [D2] 📱 탑 네비 + 그리드 카드 (Card Grid)
|
|
26
|
+
- **구조**: 상단 네비게이션 + 카드 그리드 메인
|
|
27
|
+
- **적합**: 분석 대시보드, 개요 화면, 리포트
|
|
28
|
+
- **특징**: 사이드바 없이 넓은 콘텐츠 영역
|
|
29
|
+
```
|
|
30
|
+
┌─────────────────────────────┐
|
|
31
|
+
│ Logo │ Nav │ Search │ 👤 │
|
|
32
|
+
├─────────────────────────────┤
|
|
33
|
+
│ ┌──────┐ ┌──────┐ │
|
|
34
|
+
│ │ KPI │ │ KPI │ │
|
|
35
|
+
│ │ Card │ │ Card │ │
|
|
36
|
+
│ └──────┘ └──────┘ │
|
|
37
|
+
│ ┌──────┐ ┌──────┐ │
|
|
38
|
+
│ │Chart │ │Chart │ │
|
|
39
|
+
│ │ Card │ │ Card │ │
|
|
40
|
+
│ └──────┘ └──────┘ │
|
|
41
|
+
│ ┌─────────────────┐ │
|
|
42
|
+
│ │ Activity Feed │ │
|
|
43
|
+
│ └─────────────────┘ │
|
|
44
|
+
└─────────────────────────────┘
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### [D3] 📂 접이식 사이드바 + 테이블 (Data Heavy)
|
|
48
|
+
- **구조**: 접이식 사이드바 + 필터 + 데이터 테이블 중심
|
|
49
|
+
- **적합**: CRUD 관리, 데이터 관리, 재고 시스템
|
|
50
|
+
- **특징**: 아이콘 모드 전환 가능, 복잡한 필터링
|
|
51
|
+
```
|
|
52
|
+
┌──┬──────────────────────────┐
|
|
53
|
+
│ │ Breadcrumb + Actions │
|
|
54
|
+
│☰ ├──────────────────────────┤
|
|
55
|
+
│ │ [Filter] [Search] [+Add]│
|
|
56
|
+
│📊├──────────────────────────┤
|
|
57
|
+
│📋│ ☐ │ Name │ Date │ Stat │
|
|
58
|
+
│👥│ ☐ │ ... │ ... │ ... │
|
|
59
|
+
│⚙ │ ☐ │ ... │ ... │ ... │
|
|
60
|
+
│ │ ☐ │ ... │ ... │ ... │
|
|
61
|
+
│ ├──────────────────────────┤
|
|
62
|
+
│ │ ← 1 2 3 ... 10 → │
|
|
63
|
+
└──┴──────────────────────────┘
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### [D4] 📈 대시보드 + 디테일 (Master-Detail)
|
|
67
|
+
- **구조**: 좌측 목록/차트 + 우측 상세 패널
|
|
68
|
+
- **적합**: CRM, 이메일 클라이언트, 프로젝트 관리
|
|
69
|
+
- **특징**: 3단 레이아웃, 클릭 시 우측 상세 열림
|
|
70
|
+
```
|
|
71
|
+
┌────┬──────────┬─────────────┐
|
|
72
|
+
│ │ List │ Detail │
|
|
73
|
+
│ N │ ┌────┐ │ Name: ... │
|
|
74
|
+
│ A │ │Item│ │ Status: ...│
|
|
75
|
+
│ V │ ├────┤ │ │
|
|
76
|
+
│ │ │Item│ │ ┌─────────┐│
|
|
77
|
+
│ │ ├────┤ │ │ Chart ││
|
|
78
|
+
│ │ │Item│ │ └─────────┘│
|
|
79
|
+
│ │ ├────┤ │ │
|
|
80
|
+
│ │ │Item│ │ Actions... │
|
|
81
|
+
└────┴──────────┴─────────────┘
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# 이커머스 (`ecommerce`) 전용 레이아웃
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### [EC1] 🛍️ 그리드 + 사이드 필터 (Catalog Grid)
|
|
5
|
+
- **구조**: 좌측 필터 사이드바 + 상품 그리드
|
|
6
|
+
- **적합**: 종합 쇼핑몰, 마켓플레이스, 패션
|
|
7
|
+
- **특징**: 정렬/필터, 무한 스크롤 또는 페이지네이션
|
|
8
|
+
```
|
|
9
|
+
┌─────────────────────────────┐
|
|
10
|
+
│ Logo │ Search │ Cart │ 👤 │
|
|
11
|
+
│ [카테고리 메가메뉴] │
|
|
12
|
+
├────────┬────────────────────┤
|
|
13
|
+
│ │ Sort ▼ │ View ▦▤ │
|
|
14
|
+
│ Filter │ ┌───┐ ┌───┐ │
|
|
15
|
+
│ ☐ 브랜드│ │ 📦│ │ 📦│ │
|
|
16
|
+
│ ☐ 가격 │ └───┘ └───┘ │
|
|
17
|
+
│ ☐ 색상 │ ┌───┐ ┌───┐ │
|
|
18
|
+
│ ☐ 사이즈│ │ 📦│ │ 📦│ │
|
|
19
|
+
│ │ └───┘ └───┘ │
|
|
20
|
+
├────────┴────────────────────┤
|
|
21
|
+
│ Footer │
|
|
22
|
+
└─────────────────────────────┘
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### [EC2] 🎠 캐러셀 + 그리드 (Homepage Shop)
|
|
26
|
+
- **구조**: 메인 배너 캐러셀 + 카테고리 + 추천 상품
|
|
27
|
+
- **적합**: 홈 화면 중심 쇼핑몰, 큐레이션
|
|
28
|
+
- **특징**: 프로모션 배너, 카테고리 아이콘, 섹션별 상품
|
|
29
|
+
```
|
|
30
|
+
┌─────────────────────────────┐
|
|
31
|
+
│ Logo │ Search │ Cart │ 👤 │
|
|
32
|
+
├─────────────────────────────┤
|
|
33
|
+
│ ◀ [ Banner Carousel ] ▶ │
|
|
34
|
+
├─────────────────────────────┤
|
|
35
|
+
│ 🥗 👕 📱 🏠 📚 🎮 │ ← 카테고리
|
|
36
|
+
├─────────────────────────────┤
|
|
37
|
+
│ 🔥 인기 상품 │
|
|
38
|
+
│ ┌───┐ ┌───┐ ┌───┐ ┌───┐ │
|
|
39
|
+
│ │ 📦│ │ 📦│ │ 📦│ │ 📦│ │
|
|
40
|
+
│ └───┘ └───┘ └───┘ └───┘ │
|
|
41
|
+
├─────────────────────────────┤
|
|
42
|
+
│ ⭐ 추천 상품 │
|
|
43
|
+
│ ┌───┐ ┌───┐ ┌───┐ ┌───┐ │
|
|
44
|
+
│ └───┘ └───┘ └───┘ └───┘ │
|
|
45
|
+
├─────────────────────────────┤
|
|
46
|
+
│ Footer │
|
|
47
|
+
└─────────────────────────────┘
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### [EC3] 📰 매거진 스타일 (Magazine Shop)
|
|
51
|
+
- **구조**: 에디토리얼 레이아웃 + 상품 연동
|
|
52
|
+
- **적합**: 럭셔리, 패션, 라이프스타일
|
|
53
|
+
- **특징**: 비정형 그리드, 콘텐츠와 상품 혼합
|
|
54
|
+
```
|
|
55
|
+
┌─────────────────────────────┐
|
|
56
|
+
│ Logo │ Nav │ Search │ Cart │
|
|
57
|
+
├─────────────┬───────────────┤
|
|
58
|
+
│ │ │
|
|
59
|
+
│ Featured │ Side │
|
|
60
|
+
│ Product │ Story │
|
|
61
|
+
│ (Large) │ │
|
|
62
|
+
│ │ │
|
|
63
|
+
├──────┬──────┴───────────────┤
|
|
64
|
+
│ Edit │ ┌───┐ ┌───┐ ┌───┐ │
|
|
65
|
+
│ Pick │ │ 📦│ │ 📦│ │ 📦│ │
|
|
66
|
+
│ │ └───┘ └───┘ └───┘ │
|
|
67
|
+
├──────┴──────────────────────┤
|
|
68
|
+
│ Footer │
|
|
69
|
+
└─────────────────────────────┘
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# 블로그/콘텐츠 (`blog`) 전용 레이아웃
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### [B1] 📝 클래식 블로그 (Classic Blog)
|
|
5
|
+
- **구조**: 메인 콘텐츠 + 우측 사이드바
|
|
6
|
+
- **적합**: 기술 블로그, 뉴스, 미디어
|
|
7
|
+
- **특징**: 사이드바 위젯, 카테고리, 태그
|
|
8
|
+
```
|
|
9
|
+
┌─────────────────────────────┐
|
|
10
|
+
│ Logo │ Nav │ Search │
|
|
11
|
+
├───────────────────┬─────────┤
|
|
12
|
+
│ │ About │
|
|
13
|
+
│ 📝 Post Title │ Popular │
|
|
14
|
+
│ Content... │ Tags │
|
|
15
|
+
│ │ Archive │
|
|
16
|
+
│ 📝 Post Title │ Ad │
|
|
17
|
+
│ Content... │ │
|
|
18
|
+
│ │ │
|
|
19
|
+
├───────────────────┴─────────┤
|
|
20
|
+
│ Footer │
|
|
21
|
+
└─────────────────────────────┘
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### [B2] 📰 매거진 그리드 (Magazine Grid)
|
|
25
|
+
- **구조**: 피처드 포스트 + 카드 그리드
|
|
26
|
+
- **적합**: 미디어, 뉴스 포털, 콘텐츠 허브
|
|
27
|
+
- **특징**: 비정형 그리드, 카테고리별 섹션
|
|
28
|
+
```
|
|
29
|
+
┌─────────────────────────────┐
|
|
30
|
+
│ Logo │ Categories │ Search │
|
|
31
|
+
├─────────────┬───────────────┤
|
|
32
|
+
│ │ ┌──────────┐│
|
|
33
|
+
│ Featured │ │ Post 2 ││
|
|
34
|
+
│ Post 1 │ ├──────────┤│
|
|
35
|
+
│ (Hero) │ │ Post 3 ││
|
|
36
|
+
│ │ └──────────┘│
|
|
37
|
+
├──────┬──────┬───────┬───────┤
|
|
38
|
+
│Post 4│Post 5│Post 6│Post 7│
|
|
39
|
+
├──────┴──────┴───────┴───────┤
|
|
40
|
+
│ Footer │
|
|
41
|
+
└─────────────────────────────┘
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### [B3] 📄 미니멀 싱글 컬럼 (Minimal Single)
|
|
45
|
+
- **구조**: 중앙 정렬 단일 컬럼
|
|
46
|
+
- **적합**: 개인 블로그, 에세이, 기술 문서
|
|
47
|
+
- **특징**: 타이포그래피 중심, 넓은 여백
|
|
48
|
+
```
|
|
49
|
+
┌─────────────────────────────┐
|
|
50
|
+
│ Logo │ Nav │
|
|
51
|
+
├─────────────────────────────┤
|
|
52
|
+
│ │
|
|
53
|
+
│ 📝 Post Title │
|
|
54
|
+
│ Author · Date │
|
|
55
|
+
│ │
|
|
56
|
+
│ Content paragraph... │
|
|
57
|
+
│ Content paragraph... │
|
|
58
|
+
│ │
|
|
59
|
+
│ --- │
|
|
60
|
+
│ │
|
|
61
|
+
│ 📝 Next Post │
|
|
62
|
+
│ │
|
|
63
|
+
├─────────────────────────────┤
|
|
64
|
+
│ Footer │
|
|
65
|
+
└─────────────────────────────┘
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# SaaS/웹앱 (`saas`) 전용 레이아웃
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### [SA1] 📊 사이드바 네비 + 메인 (App Shell)
|
|
5
|
+
- **구조**: 좌측 사이드바 네비 + 메인 콘텐츠 영역
|
|
6
|
+
- **적합**: 프로젝트 관리, CRM, 복잡한 SaaS
|
|
7
|
+
- **특징**: 멀티 레벨 네비, 모달/드로어 활용
|
|
8
|
+
```
|
|
9
|
+
┌────┬────────────────────────┐
|
|
10
|
+
│ 📌 │ Page Title [+ New] │
|
|
11
|
+
│ L ├────────────────────────┤
|
|
12
|
+
│ O │ Tab1 │ Tab2 │ Tab3 │
|
|
13
|
+
│ G ├────────────────────────┤
|
|
14
|
+
│ O │ │
|
|
15
|
+
│ │ Main Content Area │
|
|
16
|
+
│ 🏠 │ │
|
|
17
|
+
│ 📋 │ │
|
|
18
|
+
│ 👥 │ ┌────────────────┐ │
|
|
19
|
+
│ 📊 │ │ Component │ │
|
|
20
|
+
│ ⚙ │ └────────────────┘ │
|
|
21
|
+
└────┴────────────────────────┘
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### [SA2] 🗂️ 탑 네비 + 탭 패널 (Tab App)
|
|
25
|
+
- **구조**: 상단 네비 + 탭 기반 콘텐츠 전환
|
|
26
|
+
- **적합**: 설정 패널, 간단한 SaaS, 도구형
|
|
27
|
+
- **특징**: 플랫 네비게이션, 탭으로 기능 분리
|
|
28
|
+
```
|
|
29
|
+
┌─────────────────────────────┐
|
|
30
|
+
│ Logo │ Nav Items │ 👤 Menu │
|
|
31
|
+
├─────────────────────────────┤
|
|
32
|
+
│ Tab 1 │ Tab 2 │ Tab 3 │
|
|
33
|
+
├─────────────────────────────┤
|
|
34
|
+
│ │
|
|
35
|
+
│ Tab Panel Content │
|
|
36
|
+
│ │
|
|
37
|
+
│ ┌──────┐ ┌──────┐ │
|
|
38
|
+
│ │ Card │ │ Card │ │
|
|
39
|
+
│ └──────┘ └──────┘ │
|
|
40
|
+
│ │
|
|
41
|
+
│ [Action Button] │
|
|
42
|
+
│ │
|
|
43
|
+
└─────────────────────────────┘
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### [SA3] 📋 칸반/보드 (Kanban Board)
|
|
47
|
+
- **구조**: 수평 스크롤 칸반 컬럼
|
|
48
|
+
- **적합**: 프로젝트 보드, 태스크 관리, 파이프라인
|
|
49
|
+
- **특징**: 드래그 앤 드롭, 카드 기반, 수평 스크롤
|
|
50
|
+
```
|
|
51
|
+
┌─────────────────────────────────────┐
|
|
52
|
+
│ Logo │ Board Name │ Filter │ 👤 │
|
|
53
|
+
├─────────────────────────────────────┤
|
|
54
|
+
│ Todo │ In Progress │ Done │
|
|
55
|
+
│ ┌──────┐ │ ┌──────┐ │ ┌──────┐ │
|
|
56
|
+
│ │ Card │ │ │ Card │ │ │ Card │ │
|
|
57
|
+
│ └──────┘ │ └──────┘ │ └──────┘ │
|
|
58
|
+
│ ┌──────┐ │ ┌──────┐ │ ┌──────┐ │
|
|
59
|
+
│ │ Card │ │ │ Card │ │ │ Card │ │
|
|
60
|
+
│ └──────┘ │ └──────┘ │ └──────┘ │
|
|
61
|
+
│ [+ Add] │ [+ Add] │ │
|
|
62
|
+
└──────────┴─────────────┴──────────┘
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### [SA4] 📬 인박스/피드 (Inbox Layout)
|
|
66
|
+
- **구조**: 좌측 목록 + 우측 상세 (이메일 스타일)
|
|
67
|
+
- **적합**: 메시지, 알림, 이메일 클라이언트, 고객 지원
|
|
68
|
+
- **특징**: 목록-상세 분할, 읽음/안읽음, 액션
|
|
69
|
+
```
|
|
70
|
+
┌────┬──────────┬─────────────┐
|
|
71
|
+
│ │ 📬 Inbox │ Message │
|
|
72
|
+
│ N │ ┌──────┐ │ From: ... │
|
|
73
|
+
│ A │ │▪ Msg1│ │ Date: ... │
|
|
74
|
+
│ V │ ├──────┤ │ │
|
|
75
|
+
│ │ │ Msg2│ │ Content... │
|
|
76
|
+
│ │ ├──────┤ │ Content... │
|
|
77
|
+
│ │ │ Msg3│ │ │
|
|
78
|
+
│ │ └──────┘ │ [Reply] │
|
|
79
|
+
└────┴──────────┴─────────────┘
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# 포트폴리오 (`portfolio`) 전용 레이아웃
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### [P1] 🖼️ 갤러리 그리드 (Gallery Grid)
|
|
5
|
+
- **구조**: 프로젝트 썸네일 그리드 + 라이트박스
|
|
6
|
+
- **적합**: 사진작가, 디자이너, 아티스트
|
|
7
|
+
- **특징**: Masonry 그리드, 호버 효과, 필터
|
|
8
|
+
```
|
|
9
|
+
┌─────────────────────────────┐
|
|
10
|
+
│ Name │ Work │ About │ 연락 │
|
|
11
|
+
├─────────────────────────────┤
|
|
12
|
+
│ [All] [Web] [App] [Brand] │
|
|
13
|
+
├──────┬──────┬───────────────┤
|
|
14
|
+
│ 📸 │ 📸 │ 📸 │
|
|
15
|
+
│ │ │ (tall) │
|
|
16
|
+
├──────┼──────┤ │
|
|
17
|
+
│ 📸 │ 📸 │ │
|
|
18
|
+
│(wide)│ ├───────────────┤
|
|
19
|
+
│ │ │ 📸 │
|
|
20
|
+
├──────┴──────┴───────────────┤
|
|
21
|
+
│ Footer │
|
|
22
|
+
└─────────────────────────────┘
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### [P2] 📖 케이스 스터디 (Case Study Flow)
|
|
26
|
+
- **구조**: 프로젝트 목록 → 상세 케이스 스터디
|
|
27
|
+
- **적합**: UX 디자이너, 에이전시, 컨설팅
|
|
28
|
+
- **특징**: 스토리텔링, 프로세스 설명, Before/After
|
|
29
|
+
```
|
|
30
|
+
┌─────────────────────────────┐
|
|
31
|
+
│ Name │ Work │ About │ 연락 │
|
|
32
|
+
├─────────────────────────────┤
|
|
33
|
+
│ ┌─────────────────────┐ │
|
|
34
|
+
│ │ Project 1 (Hero) │ │
|
|
35
|
+
│ │ Title + Description │ │
|
|
36
|
+
│ └─────────────────────┘ │
|
|
37
|
+
│ ┌─────────────────────┐ │
|
|
38
|
+
│ │ Project 2 │ │
|
|
39
|
+
│ └─────────────────────┘ │
|
|
40
|
+
│ ┌─────────────────────┐ │
|
|
41
|
+
│ │ Project 3 │ │
|
|
42
|
+
│ └─────────────────────┘ │
|
|
43
|
+
├─────────────────────────────┤
|
|
44
|
+
│ Footer │
|
|
45
|
+
└─────────────────────────────┘
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### [P3] ↔️ 수평 스크롤 (Horizontal Scroll)
|
|
49
|
+
- **구조**: 수평으로 스크롤하는 프로젝트 쇼케이스
|
|
50
|
+
- **적합**: 크리에이티브, 실험적, 인터랙티브
|
|
51
|
+
- **특징**: 수평 스크롤, 인터랙션, 독특한 UX
|
|
52
|
+
```
|
|
53
|
+
┌─────────────────────────────────────────────────┐
|
|
54
|
+
│ Name About │
|
|
55
|
+
├────────────┬────────────┬────────────┬──────────┤
|
|
56
|
+
│ │ │ │ │
|
|
57
|
+
│ Project 1 │ Project 2 │ Project 3 │ Contact │
|
|
58
|
+
│ (100vw) │ (100vw) │ (100vw) │ (100vw) │
|
|
59
|
+
│ │ │ │ │
|
|
60
|
+
│ ← scroll → │
|
|
61
|
+
└────────────┴────────────┴────────────┴──────────┘
|
|
62
|
+
```
|