@ohos-ports/slides-grab 1.5.0-beta.0
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/LICENSE +21 -0
- package/README-ko.md +292 -0
- package/README.md +301 -0
- package/bin/ohos-postinstall.cjs +118 -0
- package/bin/ppt-agent.js +620 -0
- package/convert.cjs +20 -0
- package/native/@img/sharp-libvips-openharmony-arm64/lib/glib-2.0/include/glibconfig.h +220 -0
- package/native/@img/sharp-libvips-openharmony-arm64/lib/index.js +1 -0
- package/native/@img/sharp-libvips-openharmony-arm64/lib/libexpat.so +0 -0
- package/native/@img/sharp-libvips-openharmony-arm64/lib/libffi.so +0 -0
- package/native/@img/sharp-libvips-openharmony-arm64/lib/libjpeg.so +0 -0
- package/native/@img/sharp-libvips-openharmony-arm64/lib/libpcre2-8.so.0 +0 -0
- package/native/@img/sharp-libvips-openharmony-arm64/lib/libvips-cpp.so.42.20.3 +0 -0
- package/native/@img/sharp-libvips-openharmony-arm64/lib/libvips.so.42.20.3 +0 -0
- package/native/@img/sharp-libvips-openharmony-arm64/package.json +13 -0
- package/native/@img/sharp-openharmony-arm64/lib/sharp-openharmony-arm64.node +0 -0
- package/native/@img/sharp-openharmony-arm64/package.json +16 -0
- package/package.json +95 -0
- package/runtimes/claude-code/agents/design-critic-agent.md +23 -0
- package/runtimes/codex/agents/slides-grab-design-critic.md +22 -0
- package/scripts/build-viewer.js +444 -0
- package/scripts/design-gate.js +258 -0
- package/scripts/download-video.js +213 -0
- package/scripts/editor-server.js +1167 -0
- package/scripts/figma-export.js +169 -0
- package/scripts/generate-image.js +116 -0
- package/scripts/generate-images.js +164 -0
- package/scripts/html2pdf.js +822 -0
- package/scripts/html2png.js +246 -0
- package/scripts/html2pptx.js +162 -0
- package/scripts/import-template.js +86 -0
- package/scripts/install-runtime.js +216 -0
- package/scripts/render-tldraw.js +44 -0
- package/scripts/validate-slides.js +221 -0
- package/skills/slides-grab/SKILL.md +65 -0
- package/skills/slides-grab/references/presentation-workflow-reference.md +61 -0
- package/skills/slides-grab-card-news/SKILL.md +35 -0
- package/skills/slides-grab-design/SKILL.md +88 -0
- package/skills/slides-grab-design/references/beautiful-slide-defaults.md +88 -0
- package/skills/slides-grab-design/references/design-gate.md +349 -0
- package/skills/slides-grab-design/references/design-rules.md +76 -0
- package/skills/slides-grab-design/references/design-system-full.md +568 -0
- package/skills/slides-grab-design/references/detailed-design-rules.md +70 -0
- package/skills/slides-grab-export/SKILL.md +55 -0
- package/skills/slides-grab-export/references/export-rules.md +27 -0
- package/skills/slides-grab-export/references/html2pptx.md +627 -0
- package/skills/slides-grab-export/references/ooxml.md +427 -0
- package/skills/slides-grab-export/references/pptx-skill-reference.md +189 -0
- package/skills/slides-grab-html/SKILL.md +67 -0
- package/skills/slides-grab-image/SKILL.md +82 -0
- package/skills/slides-grab-plan/SKILL.md +68 -0
- package/skills/slides-grab-plan/references/design-md-to-slides-conversion.md +135 -0
- package/skills/slides-grab-plan/references/outline-format.md +47 -0
- package/skills/slides-grab-plan/references/plan-workflow-reference.md +140 -0
- package/src/codex-imagen.js +182 -0
- package/src/design-diversity-data.js +6932 -0
- package/src/design-gate-report.js +244 -0
- package/src/design-gate-state.js +329 -0
- package/src/design-import.js +164 -0
- package/src/design-md-parser.js +415 -0
- package/src/design-styles-data.js +1928 -0
- package/src/design-styles.js +209 -0
- package/src/editor/codex-edit.js +584 -0
- package/src/editor/edit-subprocess.js +170 -0
- package/src/editor/editor-codex-prompt.md +50 -0
- package/src/editor/editor.html +1785 -0
- package/src/editor/js/editor-bbox.js +332 -0
- package/src/editor/js/editor-chat.js +56 -0
- package/src/editor/js/editor-direct-edit.js +238 -0
- package/src/editor/js/editor-dom.js +59 -0
- package/src/editor/js/editor-init.js +405 -0
- package/src/editor/js/editor-navigation.js +54 -0
- package/src/editor/js/editor-select.js +558 -0
- package/src/editor/js/editor-send.js +175 -0
- package/src/editor/js/editor-sse.js +163 -0
- package/src/editor/js/editor-state.js +41 -0
- package/src/editor/js/editor-type.js +71 -0
- package/src/editor/js/editor-utils.js +167 -0
- package/src/editor/js/model-registry.js +37 -0
- package/src/editor/screenshot.js +82 -0
- package/src/export-resolution.cjs +68 -0
- package/src/figma.js +71 -0
- package/src/html2pptx-scale.cjs +120 -0
- package/src/html2pptx.cjs +1262 -0
- package/src/image-contract.js +329 -0
- package/src/image-native.js +468 -0
- package/src/nano-banana.js +841 -0
- package/src/ohos-browser-bridge.cjs +272 -0
- package/src/pptx-raster-export.cjs +299 -0
- package/src/resolve.js +110 -0
- package/src/slide-mode.cjs +72 -0
- package/src/template-fidelity.js +267 -0
- package/src/template-import.js +505 -0
- package/src/template-layout.js +261 -0
- package/src/template-pack.js +255 -0
- package/src/tldraw/render.js +473 -0
- package/src/validation/cli.js +120 -0
- package/src/validation/core.js +1023 -0
- package/templates/chart.html +121 -0
- package/templates/closing.html +54 -0
- package/templates/content.html +50 -0
- package/templates/contents.html +60 -0
- package/templates/cover.html +64 -0
- package/templates/custom/.gitkeep +0 -0
- package/templates/custom/README.md +7 -0
- package/templates/design-styles/README.md +20 -0
- package/templates/design-styles/preview.html +4438 -0
- package/templates/diagram-tldraw.html +56 -0
- package/templates/diagram.html +98 -0
- package/templates/quote.html +31 -0
- package/templates/section-divider.html +43 -0
- package/templates/split-layout.html +43 -0
- package/templates/statistics.html +55 -0
- package/templates/team.html +49 -0
- package/templates/timeline.html +59 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css">
|
|
5
|
+
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
|
6
|
+
<style>
|
|
7
|
+
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
8
|
+
body {
|
|
9
|
+
width: 720pt;
|
|
10
|
+
height: 405pt;
|
|
11
|
+
font-family: 'Pretendard', sans-serif;
|
|
12
|
+
background: #ffffff;
|
|
13
|
+
padding: 36pt 40pt;
|
|
14
|
+
display: flex;
|
|
15
|
+
flex-direction: column;
|
|
16
|
+
color: #111827;
|
|
17
|
+
}
|
|
18
|
+
.chart-grid {
|
|
19
|
+
flex: 1;
|
|
20
|
+
display: grid;
|
|
21
|
+
grid-template-columns: repeat(3, 1fr);
|
|
22
|
+
gap: 14pt;
|
|
23
|
+
margin-top: 18pt;
|
|
24
|
+
}
|
|
25
|
+
.chart-card {
|
|
26
|
+
border: 1px solid #e5e7eb;
|
|
27
|
+
border-radius: 10pt;
|
|
28
|
+
padding: 10pt;
|
|
29
|
+
display: flex;
|
|
30
|
+
flex-direction: column;
|
|
31
|
+
}
|
|
32
|
+
.chart-canvas-wrap {
|
|
33
|
+
flex: 1;
|
|
34
|
+
min-height: 0;
|
|
35
|
+
position: relative;
|
|
36
|
+
}
|
|
37
|
+
canvas {
|
|
38
|
+
width: 100% !important;
|
|
39
|
+
height: 100% !important;
|
|
40
|
+
}
|
|
41
|
+
</style>
|
|
42
|
+
</head>
|
|
43
|
+
<body>
|
|
44
|
+
<div style="display: flex; justify-content: space-between; align-items: baseline;">
|
|
45
|
+
<h2 style="font-size: 28pt; font-weight: 700; letter-spacing: -0.01em;">Quarterly Performance</h2>
|
|
46
|
+
<p style="font-size: 10pt; color: #6b7280;">DATA / CHART.JS</p>
|
|
47
|
+
</div>
|
|
48
|
+
|
|
49
|
+
<p style="font-size: 12pt; color: #4b5563; margin-top: 8pt;">
|
|
50
|
+
Bar, line, pie 차트를 하나의 슬라이드에서 비교하는 템플릿
|
|
51
|
+
</p>
|
|
52
|
+
|
|
53
|
+
<div class="chart-grid">
|
|
54
|
+
<div class="chart-card">
|
|
55
|
+
<p style="font-size: 10pt; color: #374151; margin-bottom: 6pt;">Bar Chart</p>
|
|
56
|
+
<div class="chart-canvas-wrap">
|
|
57
|
+
<canvas id="barChart"></canvas>
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
60
|
+
<div class="chart-card">
|
|
61
|
+
<p style="font-size: 10pt; color: #374151; margin-bottom: 6pt;">Line Chart</p>
|
|
62
|
+
<div class="chart-canvas-wrap">
|
|
63
|
+
<canvas id="lineChart"></canvas>
|
|
64
|
+
</div>
|
|
65
|
+
</div>
|
|
66
|
+
<div class="chart-card">
|
|
67
|
+
<p style="font-size: 10pt; color: #374151; margin-bottom: 6pt;">Pie Chart</p>
|
|
68
|
+
<div class="chart-canvas-wrap">
|
|
69
|
+
<canvas id="pieChart"></canvas>
|
|
70
|
+
</div>
|
|
71
|
+
</div>
|
|
72
|
+
</div>
|
|
73
|
+
|
|
74
|
+
<p style="font-size: 9pt; color: #9ca3af; margin-top: 10pt;">Source: Sample Dataset</p>
|
|
75
|
+
|
|
76
|
+
<script>
|
|
77
|
+
const labels = ['Q1', 'Q2', 'Q3', 'Q4'];
|
|
78
|
+
const values = [14, 22, 19, 27];
|
|
79
|
+
const colors = ['#2563eb', '#10b981', '#f59e0b', '#ef4444'];
|
|
80
|
+
const shared = { animation: false, responsive: true, maintainAspectRatio: false };
|
|
81
|
+
|
|
82
|
+
new Chart(document.getElementById('barChart'), {
|
|
83
|
+
type: 'bar',
|
|
84
|
+
data: { labels, datasets: [{ data: values, backgroundColor: colors, borderRadius: 4 }] },
|
|
85
|
+
options: {
|
|
86
|
+
...shared,
|
|
87
|
+
plugins: { legend: { display: false } },
|
|
88
|
+
scales: { y: { beginAtZero: true, grid: { color: '#e5e7eb' } } }
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
new Chart(document.getElementById('lineChart'), {
|
|
93
|
+
type: 'line',
|
|
94
|
+
data: {
|
|
95
|
+
labels,
|
|
96
|
+
datasets: [{
|
|
97
|
+
data: values,
|
|
98
|
+
borderColor: '#2563eb',
|
|
99
|
+
backgroundColor: 'rgba(37,99,235,0.15)',
|
|
100
|
+
fill: true,
|
|
101
|
+
tension: 0.35
|
|
102
|
+
}]
|
|
103
|
+
},
|
|
104
|
+
options: {
|
|
105
|
+
...shared,
|
|
106
|
+
plugins: { legend: { display: false } },
|
|
107
|
+
scales: { y: { beginAtZero: true, grid: { color: '#e5e7eb' } } }
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
new Chart(document.getElementById('pieChart'), {
|
|
112
|
+
type: 'pie',
|
|
113
|
+
data: { labels, datasets: [{ data: [34, 26, 21, 19], backgroundColor: colors }] },
|
|
114
|
+
options: {
|
|
115
|
+
...shared,
|
|
116
|
+
plugins: { legend: { position: 'bottom', labels: { boxWidth: 10, font: { size: 9 } } } }
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
</script>
|
|
120
|
+
</body>
|
|
121
|
+
</html>
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css">
|
|
5
|
+
<style>
|
|
6
|
+
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
7
|
+
body {
|
|
8
|
+
width: 720pt;
|
|
9
|
+
height: 405pt;
|
|
10
|
+
font-family: 'Pretendard', sans-serif;
|
|
11
|
+
background: #1a1a1a;
|
|
12
|
+
padding: 48pt;
|
|
13
|
+
display: flex;
|
|
14
|
+
flex-direction: column;
|
|
15
|
+
justify-content: space-between;
|
|
16
|
+
}
|
|
17
|
+
</style>
|
|
18
|
+
</head>
|
|
19
|
+
<body>
|
|
20
|
+
<!-- 로고 -->
|
|
21
|
+
<div style="display: flex; align-items: center; gap: 8pt;">
|
|
22
|
+
<div style="width: 20pt; height: 20pt; background: #fff; border-radius: 4pt; display: flex; align-items: center; justify-content: center;">
|
|
23
|
+
<p style="color: #1a1a1a; font-size: 12pt;">*</p>
|
|
24
|
+
</div>
|
|
25
|
+
<p style="font-size: 12pt; font-weight: 600; color: #ffffff;">LogoName</p>
|
|
26
|
+
</div>
|
|
27
|
+
|
|
28
|
+
<!-- 메인 메시지 -->
|
|
29
|
+
<div>
|
|
30
|
+
<h1 style="font-size: 56pt; font-weight: 500; color: #ffffff; letter-spacing: -0.02em; line-height: 1.1;">
|
|
31
|
+
Thank You
|
|
32
|
+
</h1>
|
|
33
|
+
<p style="font-size: 16pt; color: #888; margin-top: 16pt;">
|
|
34
|
+
Questions? Let's discuss.
|
|
35
|
+
</p>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
<!-- 연락처 정보 -->
|
|
39
|
+
<div style="display: flex; gap: 64pt;">
|
|
40
|
+
<div>
|
|
41
|
+
<p style="font-size: 9pt; color: #666; margin-bottom: 4pt;">Email</p>
|
|
42
|
+
<p style="font-size: 12pt; font-weight: 500; color: #ffffff;">hello@company.com</p>
|
|
43
|
+
</div>
|
|
44
|
+
<div>
|
|
45
|
+
<p style="font-size: 9pt; color: #666; margin-bottom: 4pt;">Phone</p>
|
|
46
|
+
<p style="font-size: 12pt; font-weight: 500; color: #ffffff;">+82 10-1234-5678</p>
|
|
47
|
+
</div>
|
|
48
|
+
<div>
|
|
49
|
+
<p style="font-size: 9pt; color: #666; margin-bottom: 4pt;">Website</p>
|
|
50
|
+
<p style="font-size: 12pt; font-weight: 500; color: #ffffff;">www.company.com</p>
|
|
51
|
+
</div>
|
|
52
|
+
</div>
|
|
53
|
+
</body>
|
|
54
|
+
</html>
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css">
|
|
5
|
+
<style>
|
|
6
|
+
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
7
|
+
body {
|
|
8
|
+
width: 720pt;
|
|
9
|
+
height: 405pt;
|
|
10
|
+
font-family: 'Pretendard', sans-serif;
|
|
11
|
+
background: #ffffff;
|
|
12
|
+
padding: 40pt 48pt;
|
|
13
|
+
display: flex;
|
|
14
|
+
flex-direction: column;
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
<body>
|
|
19
|
+
<!-- 헤더 -->
|
|
20
|
+
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 32pt;">
|
|
21
|
+
<div style="display: flex; align-items: center; gap: 12pt;">
|
|
22
|
+
<p style="display: inline-block; padding: 4pt 10pt; background: #1a1a1a; color: #fff; border-radius: 4pt; font-size: 8pt; font-weight: 600;">SECTION 1</p>
|
|
23
|
+
<h2 style="font-size: 24pt; font-weight: 600; color: #1a1a1a;">Main Topic</h2>
|
|
24
|
+
</div>
|
|
25
|
+
<p style="font-size: 10pt; color: #999;">02</p>
|
|
26
|
+
</div>
|
|
27
|
+
|
|
28
|
+
<!-- 콘텐츠 영역 -->
|
|
29
|
+
<div style="flex: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 32pt;">
|
|
30
|
+
<div>
|
|
31
|
+
<h3 style="font-size: 18pt; font-weight: 600; color: #1a1a1a; margin-bottom: 16pt;">Key Point One</h3>
|
|
32
|
+
<p style="font-size: 13pt; color: #666; line-height: 1.7;">
|
|
33
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore.
|
|
34
|
+
</p>
|
|
35
|
+
</div>
|
|
36
|
+
<div>
|
|
37
|
+
<h3 style="font-size: 18pt; font-weight: 600; color: #1a1a1a; margin-bottom: 16pt;">Key Point Two</h3>
|
|
38
|
+
<p style="font-size: 13pt; color: #666; line-height: 1.7;">
|
|
39
|
+
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip.
|
|
40
|
+
</p>
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
|
|
44
|
+
<!-- 푸터 -->
|
|
45
|
+
<div style="display: flex; justify-content: space-between; align-items: center; padding-top: 16pt; border-top: 1px solid #eee;">
|
|
46
|
+
<p style="font-size: 9pt; color: #999;">www.yourwebsite.com</p>
|
|
47
|
+
<p style="font-size: 9pt; color: #999;">©2025 YOUR BRAND</p>
|
|
48
|
+
</div>
|
|
49
|
+
</body>
|
|
50
|
+
</html>
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css">
|
|
5
|
+
<style>
|
|
6
|
+
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
7
|
+
body {
|
|
8
|
+
width: 720pt;
|
|
9
|
+
height: 405pt;
|
|
10
|
+
font-family: 'Pretendard', sans-serif;
|
|
11
|
+
background: #b8c4b8;
|
|
12
|
+
padding: 48pt;
|
|
13
|
+
display: grid;
|
|
14
|
+
grid-template-columns: 1fr 1.8fr;
|
|
15
|
+
gap: 48pt;
|
|
16
|
+
}
|
|
17
|
+
</style>
|
|
18
|
+
</head>
|
|
19
|
+
<body>
|
|
20
|
+
<!-- 왼쪽: 타이틀 -->
|
|
21
|
+
<div style="display: flex; flex-direction: column; justify-content: flex-end;">
|
|
22
|
+
<p style="font-size: 9pt; color: #3d3d3d; margin-bottom: 16pt;">©2025 YOUR BRAND. ALL RIGHTS RESERVED.</p>
|
|
23
|
+
<h1 style="font-size: 56pt; font-weight: 500; color: #1a1a1a; letter-spacing: -0.02em; line-height: 1.1;">
|
|
24
|
+
Our<br>Contents
|
|
25
|
+
</h1>
|
|
26
|
+
<div style="width: 32pt; height: 32pt; border: 1px solid #1a1a1a; border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-top: 24pt;">
|
|
27
|
+
<p style="font-size: 14pt; color: #1a1a1a;">↗</p>
|
|
28
|
+
</div>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
<!-- 오른쪽: 목차 리스트 -->
|
|
32
|
+
<div style="display: flex; flex-direction: column; justify-content: center; gap: 16pt;">
|
|
33
|
+
<div style="display: flex; align-items: center; gap: 16pt; padding: 12pt 0; border-bottom: 1px solid rgba(0,0,0,0.1);">
|
|
34
|
+
<p style="display: inline-block; padding: 4pt 10pt; background: #1a1a1a; color: #fff; border-radius: 4pt; font-size: 8pt; font-weight: 600;">SECTION 1</p>
|
|
35
|
+
<p style="flex: 1; font-size: 14pt; font-weight: 500; color: #1a1a1a;">SECTION TITLE</p>
|
|
36
|
+
<p style="font-size: 14pt; color: #666;">(1)</p>
|
|
37
|
+
</div>
|
|
38
|
+
<div style="display: flex; align-items: center; gap: 16pt; padding: 12pt 0; border-bottom: 1px solid rgba(0,0,0,0.1);">
|
|
39
|
+
<p style="display: inline-block; padding: 4pt 10pt; background: #1a1a1a; color: #fff; border-radius: 4pt; font-size: 8pt; font-weight: 600;">SECTION 2</p>
|
|
40
|
+
<p style="flex: 1; font-size: 14pt; font-weight: 500; color: #1a1a1a;">SECTION TITLE</p>
|
|
41
|
+
<p style="font-size: 14pt; color: #666;">(2)</p>
|
|
42
|
+
</div>
|
|
43
|
+
<div style="display: flex; align-items: center; gap: 16pt; padding: 12pt 0; border-bottom: 1px solid rgba(0,0,0,0.1);">
|
|
44
|
+
<p style="display: inline-block; padding: 4pt 10pt; background: #1a1a1a; color: #fff; border-radius: 4pt; font-size: 8pt; font-weight: 600;">SECTION 3</p>
|
|
45
|
+
<p style="flex: 1; font-size: 14pt; font-weight: 500; color: #1a1a1a;">SECTION TITLE</p>
|
|
46
|
+
<p style="font-size: 14pt; color: #666;">(3)</p>
|
|
47
|
+
</div>
|
|
48
|
+
<div style="display: flex; align-items: center; gap: 16pt; padding: 12pt 0; border-bottom: 1px solid rgba(0,0,0,0.1);">
|
|
49
|
+
<p style="display: inline-block; padding: 4pt 10pt; background: #1a1a1a; color: #fff; border-radius: 4pt; font-size: 8pt; font-weight: 600;">SECTION 4</p>
|
|
50
|
+
<p style="flex: 1; font-size: 14pt; font-weight: 500; color: #1a1a1a;">SECTION TITLE</p>
|
|
51
|
+
<p style="font-size: 14pt; color: #666;">(4)</p>
|
|
52
|
+
</div>
|
|
53
|
+
<div style="display: flex; align-items: center; gap: 16pt; padding: 12pt 0;">
|
|
54
|
+
<p style="display: inline-block; padding: 4pt 10pt; background: #1a1a1a; color: #fff; border-radius: 4pt; font-size: 8pt; font-weight: 600;">SECTION 5</p>
|
|
55
|
+
<p style="flex: 1; font-size: 14pt; font-weight: 500; color: #1a1a1a;">SECTION TITLE</p>
|
|
56
|
+
<p style="font-size: 14pt; color: #666;">(5)</p>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
</body>
|
|
60
|
+
</html>
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css">
|
|
5
|
+
<style>
|
|
6
|
+
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
7
|
+
body {
|
|
8
|
+
width: 720pt;
|
|
9
|
+
height: 405pt;
|
|
10
|
+
font-family: 'Pretendard', sans-serif;
|
|
11
|
+
background: #f5f5f0;
|
|
12
|
+
padding: 32pt 48pt;
|
|
13
|
+
display: flex;
|
|
14
|
+
flex-direction: column;
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
<body>
|
|
19
|
+
<!-- 헤더 -->
|
|
20
|
+
<div style="display: flex; justify-content: space-between; align-items: center;">
|
|
21
|
+
<div style="display: flex; align-items: center; gap: 16pt;">
|
|
22
|
+
<div style="display: flex; align-items: center; gap: 8pt;">
|
|
23
|
+
<div style="width: 18pt; height: 18pt; background: #1a1a1a; border-radius: 3pt; display: flex; align-items: center; justify-content: center;">
|
|
24
|
+
<p style="color: #fff; font-size: 10pt;">*</p>
|
|
25
|
+
</div>
|
|
26
|
+
<p style="font-size: 11pt; font-weight: 600; color: #1a1a1a;">LogoName</p>
|
|
27
|
+
</div>
|
|
28
|
+
<p style="display: inline-block; padding: 4pt 10pt; border: 1px solid #1a1a1a; border-radius: 12pt; font-size: 9pt; font-weight: 500;">PRESENTATION</p>
|
|
29
|
+
</div>
|
|
30
|
+
<div style="display: flex; align-items: center; gap: 8pt;">
|
|
31
|
+
<p style="display: inline-block; padding: 4pt 10pt; border: 1px solid #1a1a1a; border-radius: 12pt; font-size: 9pt; font-weight: 500;">OUR PROJECT</p>
|
|
32
|
+
<div style="width: 28pt; height: 28pt; border: 1px solid #1a1a1a; border-radius: 50%; display: flex; align-items: center; justify-content: center;">
|
|
33
|
+
<p style="font-size: 12pt; color: #1a1a1a;">↘</p>
|
|
34
|
+
</div>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
<!-- 메인 타이틀 -->
|
|
39
|
+
<div style="flex: 1; display: flex; flex-direction: column; justify-content: center;">
|
|
40
|
+
<h1 style="font-size: 72pt; font-weight: 500; color: #1a1a1a; letter-spacing: -0.02em; line-height: 1.1;">
|
|
41
|
+
Business Deck
|
|
42
|
+
</h1>
|
|
43
|
+
<p style="font-size: 14pt; color: #666; margin-top: 24pt;">
|
|
44
|
+
<span style="color: #999;">Presented by</span> <span style="font-weight: 500; color: #1a1a1a;">Luna Martinez</span>
|
|
45
|
+
</p>
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<!-- 푸터 정보 -->
|
|
49
|
+
<div style="display: flex; gap: 64pt;">
|
|
50
|
+
<div>
|
|
51
|
+
<p style="font-size: 9pt; color: #999; margin-bottom: 4pt;">Contact</p>
|
|
52
|
+
<p style="font-size: 11pt; font-weight: 500; color: #1a1a1a;">334556774</p>
|
|
53
|
+
</div>
|
|
54
|
+
<div>
|
|
55
|
+
<p style="font-size: 9pt; color: #999; margin-bottom: 4pt;">Date</p>
|
|
56
|
+
<p style="font-size: 11pt; font-weight: 500; color: #1a1a1a;">March 2025</p>
|
|
57
|
+
</div>
|
|
58
|
+
<div>
|
|
59
|
+
<p style="font-size: 9pt; color: #999; margin-bottom: 4pt;">Website</p>
|
|
60
|
+
<p style="font-size: 11pt; font-weight: 500; color: #1a1a1a;">www.yourwebsite.com</p>
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
</body>
|
|
64
|
+
</html>
|
|
File without changes
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Design Style Collections
|
|
2
|
+
|
|
3
|
+
slides-grab bundles 95 design styles: 30 derived from [corazzon/pptx-design-styles](https://github.com/corazzon/pptx-design-styles) (MIT), 5 slides-grab originals, and 60 PPT packs derived from [epoko77-ai/design-diversity](https://github.com/epoko77-ai/design-diversity) (MIT).
|
|
4
|
+
|
|
5
|
+
These styles are reference directions for slide generation, not drop-in HTML slide templates. Agents may also design fully custom visuals beyond the bundled collection.
|
|
6
|
+
|
|
7
|
+
## Recommended workflow
|
|
8
|
+
|
|
9
|
+
1. `slides-grab list-styles`
|
|
10
|
+
2. `slides-grab preview-styles` to open the visual gallery in browser
|
|
11
|
+
3. Tell the agent which style to use, or ask for something custom
|
|
12
|
+
|
|
13
|
+
The preview/select flow is intentionally simple: it keeps design approval inside the CLI and a local HTML preview page instead of adding a separate app.
|
|
14
|
+
|
|
15
|
+
## Citation
|
|
16
|
+
|
|
17
|
+
- Upstream collection: `corazzon/pptx-design-styles`
|
|
18
|
+
- Upstream design catalog: `epoko77-ai/design-diversity`
|
|
19
|
+
- URL: <https://github.com/corazzon/pptx-design-styles>
|
|
20
|
+
- Reference used in this repo: `references/styles.md`
|