原稿の主張と図の役割を頁ごとに整理し、選んだ書式を全頁へ引き継ぐ画像スライドと話者ノートを作る。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when building browser-based presentation slide decks, creating training presentations, generating React+Vite slide decks with animations, or making professional slides. Triggers on slide deck, presentation, training slides, Vite slides, Framer Motion slides, animated presentations.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
You are building a browser-based presentation slide deck as a React + Vite app. Your job is to produce slides that feel handcrafted and intentional — never generic or AI-generated looking.
Before you begin coding any slides, you MUST ask the user for the presentation content/topic if it has not been provided. Do not invent content. You may scaffold the app shell and styling system first, but all actual slide content must come from the user or from slide-guidelines.md in this directory.
| Layer | Choice |
|---|---|
| Build | Vite |
| Framework | React 18+ with TypeScript |
| Animation | Framer Motion (motion/react) |
| Styling | Tailwind CSS v4 |
| Charts | Recharts |
| Icons | Lucide React |
| Routing | Keyboard/click navigation (no router needed) |
| Code highlighting | (only if needed) Prism React Renderer |
Install only what you need. Do not add libraries speculatively.
slides/
├── index.html
├── package.json
├── vite.config.ts
├── tailwind.config.ts
├── tsconfig.json
├── public/
│ └── images/ # All slide images go here
├── src/
│ ├── main.tsx
│ ├── App.tsx # Slide deck shell, navigation, keyboard controls
│ ├── index.css # Tailwind imports + custom fonts + base styles
│ ├── slides/
│ │ ├── index.ts # Export ordered array of all slides
│ │ ├── 01-intro.tsx
│ │ ├── 02-problem.tsx
│ │ └── ... # One file per slide or small group of related slides
│ ├── components/
│ │ ├── SlideLayout.tsx # Shared slide wrapper (scaling, padding, background)
│ │ ├── AnimatedText.tsx # Reusable text entrance animations
│ │ ├── Chart.tsx # Recharts wrapper
│ │ ├── ImageSlide.tsx # Image display component
│ │ ├── InteractiveBlock.tsx # For custom interactive UI per slide
│ │ └── ...
│ └── lib/
│ ├── animations.ts # Shared Framer Motion variants and transitions
│ ├── theme.ts # Color palette, font sizes, spacing tokens
│ └── useSlideScale.ts # Hook for viewport-fitting scale
Before choosing colors and fonts, ask the user what feeling the audience should have:
| Mood | Description |
|---|---|
| Impressed / Confident | Professional, trustworthy, bold |
| Excited / Energized | Innovative, bold, creative |
| Calm / Focused | Clear, thoughtful, minimal |
| Inspired / Moved | Emotional, memorable, elegant |
Based on mood, suggest 2-3 presets from the table below. Each preset defines fonts, colors, and signature visual elements. Do NOT mix and match randomly — commit to one preset fully.
| Preset | Mood | Display Font | Body Font | Colors | Signature |
|---|---|---|---|---|---|
| Bold Signal | Confident | Archivo Black (900) | Space Grotesk (400) | #1a1a1a bg, #FF5722 accent card, white text | Colored card as focal, large section numbers, grid layout |
| Electric Studio | Confident | Manrope (800) | Manrope (400) | #0a0a0a bg, #4361ee accent blue, white text | Two-panel vertical split, accent bar on edge |
| Creative Voltage | Energized | Syne (700) | Space Mono (400) | #0066ff primary, #1a1a2e dark, #d4ff00 neon | Electric blue + neon yellow, halftone textures |
| Dark Botanical | Inspired | Cormorant (400) serif | IBM Plex Sans (300) | #0f0f0f bg, #d4a574 warm accent, #e8b4b8 pink | Abstract blurred gradient circles, thin accent lines |
| Preset | Mood | Display Font | Body Font | Colors | Signature |
|---|---|---|---|---|---|
| Notebook Tabs | Organized | Bodoni Moda (700) serif | DM Sans (400) | #f8f6f1 page, #2d2d2d outer, colorful tabs | Paper card on dark bg, colored section tabs |
| Pastel Geometry | Friendly | Plus Jakarta Sans (700) | Plus Jakarta Sans (400) | #c8d9e6 bg, #faf9f7 card, pastel pills | Rounded card, vertical pills, soft shadow |
| Vintage Editorial | Inspired | Fraunces (700) serif | Work Sans (400) | #f5f3ee cream, #1a1a1a text, #e8d4c0 warm | Geometric shapes (circle + line + dot), bold borders |
| Swiss Modern | Focused | Archivo (800) | Nunito (400) | Pure white, pure black, #ff3300 red accent | Visible grid, asymmetric layouts, geometric shapes |
| Preset | Mood | Font | Colors | Signature |
|---|---|---|---|---|
| Neon Cyber | Techy | Clash Display + Satoshi | #0a0f1c navy, #00ffcc cyan, #ff00aa magenta | Neon glow, grid patterns, particle-like effects |
| Terminal Green | Hacker | JetBrains Mono | #0d1117 dark, #39d353 green | Scan lines, blinking cursor, code aesthetic |
| Paper & Ink | Editorial | Cormorant Garamond + Source Serif 4 | #faf9f7 cream, #1a1a1a charcoal, #c41e3a crimson | Drop caps, pull quotes, elegant horizontal rules |
Once chosen, define the full theme in src/lib/theme.ts and as CSS custom properties in src/index.css:
@import in CSS.clamp(min, preferred, max) — never fixed px/rem for text. This ensures readability across viewport sizes./* Example clamp values */
--title-size: clamp(2rem, 6vw, 5rem);
--subtitle-size: clamp(0.875rem, 2vw, 1.25rem);
--body-size: clamp(0.75rem, 1.2vw, 1rem);
/* Layered gradient for depth */
background:
radial-gradient(ellipse at 20% 80%, rgba(120, 0, 255, 0.15) 0%, transparent 50%),
radial-gradient(ellipse at 80% 20%, rgba(0, 255, 200, 0.1) 0%, transparent 50%),
var(--bg-primary);
/* Subtle grid pattern for structure */
background-image:
linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
background-size: 50px 50px;
transform: scale() to fit the viewport (like reveal.js). All content is authored at 1280×720 and uniformly scaled.style={{}} with px values instead of Tailwind padding classes.style={{ padding: '20px 48px' }} for horizontal chips, style={{ padding: '24px 32px' }} for content cards, style={{ padding: '16px 32px' }} for buttons.SlideLayout component handles the scaling + centering.Every slide MUST fit within the 1280×720 container. Content overflows? Split into multiple slides. Never cram, never scroll.
| Slide Type | Maximum Content |
|---|---|
| Title slide | 1 heading + 1 subtitle + optional tagline |
| Content slide | 1 heading + 4-6 bullet points OR 1 heading + 2 short paragraphs |
| Feature grid | 1 heading + 6 cards maximum (2×3 or 3×2) |
| Chart slide | 1 heading + 1 chart |
| Quote slide | 1 quote (max 3 lines) + attribution |
| Image slide | 1 heading + 1 image (max 60% slide height) |
| Interactive slide | 1 heading + interactive element (keep controls minimal) |
bg-white/5 with border border-white/10 — never solid surface colors.border-l border-muted/20 for left accents, never border-l-2. Use border border-white/10 for containers.| Category | Banned |
|---|---|
| Fonts | Inter, Roboto, Arial, system fonts as display. Also avoid converging on Space Grotesk for every deck — vary your choices. |
| Colors | #6366f1 (generic indigo), purple-on-white gradients, pastel rainbow, evenly-distributed "safe" palettes |
| Layouts | Everything centered in a vertical stack, identical card grids, generic hero sections |
| Decorations | Realistic illustrations, gratuitous glassmorphism, drop shadows without purpose, gradient mesh backgrounds |
| Feeling | Animation Style | Visual Cues |
|---|---|---|
| Dramatic / Cinematic | Slow fade-ins (0.8-1.2s), large scale transitions (0.9→1) | Dark backgrounds, spotlight effects |
| Techy / Futuristic | Neon glow, text scramble/reveal effects | Grid patterns, monospace accents, cyan/magenta |
| Playful / Friendly | Bouncy easing (gentle spring), floating motion | Rounded corners, bright colors |
| Professional | Subtle fast animations (200-300ms), clean slides | Precise spacing, data visualization focus |
| Calm / Minimal | Very slow subtle motion, gentle fades | High whitespace, muted palette, serif type |
| Editorial | Staggered text reveals, image-text interplay | Strong type hierarchy, pull quotes, grid-breaking |
[0.25, 0.1, 0.25, 1] (smooth deceleration, equivalent to ease-out-expo)AnimatePresence with mode="wait" for slide changesvariants pattern for orchestrated animations:const container = {
hidden: { opacity: 0 },
show: {
opacity: 1,
transition: { staggerChildren: 0.1 }
}
};
const item = {
hidden: { opacity: 0, y: 20 },
show: { opacity: 1, y: 0, transition: { duration: 0.5, ease: [0.25, 0.1, 0.25, 1] } }
};
step state per slide when neededspring with high bounce (underdamped springs look toyish)rotate animations on textprefers-reduced-motion SupportAlways include reduced-motion support. Wrap animation variants:
const prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
const item = prefersReducedMotion
? { hidden: { opacity: 0 }, show: { opacity: 1 } }
: { hidden: { opacity: 0, y: 20 }, show: { opacity: 1, y: 0, transition: { duration: 0.5 } } };
clamp(2.5rem, 6vw, 5rem)public/images/ by the user/images/filename.extclamp(1.5rem, 3vw, 2.5rem), centered or left-aligneddata-interactive attribute to prevent accidental slide navigation on clicktarget="_blank")file:/// protocol links with a folder icondata-interactive, button, input)step sub-navigation within slides before advancing to next slideRefer to slide-guidelines.md in this directory for the pedagogical structure:
You MUST ask the user for the actual content/topic before creating slides. The content guidelines above describe structure, not what goes in the slides.
npm create vite@latest . -- --template react-ts # Only if starting fresh
npm install
npm run dev
The app should run with npm run dev and be viewable at localhost. No build errors. No TypeScript errors.
Before delivering any batch of slides, verify:
npm run dev starts without errorsnpx tsc --noEmit)npx vite build succeedspublic/images/border-white/10, border-muted/20, never solid surface colorsclamp() — no fixed px/rem for textpublic/images/). Use a visible placeholder with the filename so they know what's missing.Always keep the app in a runnable state. Never leave broken imports or missing files.
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
原稿の主張と図の役割を頁ごとに整理し、選んだ書式を全頁へ引き継ぐ画像スライドと話者ノートを作る。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Convert literature reviews, paper folders, thesis drafts, journal-style reports, or research outlines into rigorous academic slide decks and review artifacts. Use when Codex must create, rebuild, or polish PPTX presentations from scholarly sources while preserving academic logic, citation-aware image/formula handling, editable layouts, figure explanations, template fidelity, and export-based visual QA.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
既存PPTXの書式・配置を抽出し、planとnative編集操作からPowerPointを生成・検査する。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
読者と目的から構成・版式を決め、確認を挟みながら、編集できる図形と文字のPPTXにする。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
全流程AI制作PPT演示文稿技能,克制专业、风格可选 A/B/C 三档(Aham UI v6.1 · Office 轨 · PPT)。 当用户说"帮我做PPT""做演示文稿""做一个汇报""根据这份资料做PPT" "做客户方案PPT""制作幻灯片"时立即触发。即使只有一句话需求也触发。 八阶段模块化流程:规范加载→材料解析→论点提炼→叙事骨架→大纲版式→样稿确认→逐页设计→质检交付。 内置能力自适应教练机制,无论用户专业水平高低,均引导至及格以上输出。 注意:本技能用于 PowerPoint / pptx 输出;SVG/HTML 版本见 ppt-svg 技能。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
原典のReact scene kitを実scaffoldし、安定layoutIdの共通canvasでentityが移動・morphする日本語ブラウザ資料を作る。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.