Frontend Slides: HTML-презентации с киношным эффектом
Забудьте про PowerPoint. Frontend Slides от Zara Zhang создаёт потрясающие HTML-презентации с анимациями, которые работают в любом браузере без всяких зависимостей.
Что это за чудо
Frontend Slides — скилл, который превращает Claude Code в дизайнера презентаций. Результат: single HTML file с встроенным CSS/JS, который открывается в браузере и выглядит как презентация от Apple.
Ключевые принципы:
- Zero Dependencies** — никаких npm, сборщиков, CDN
- Show, Don't Tell** — генерирует визуальные превью, а не абстрактные варианты
- Distinctive Design** — никакого "AI-slop", только уникальные дизайны
- Viewport Fitting** — каждый слайд точно помещается в экран
Установка и возможности
Скилл находится в /skills/frontend-slides/
Режимы работы:
- Mode A:** Создать презентацию с нуля
- Mode B:** Конвертировать .pptx файл в HTML
- Mode C:** Улучшить существующую HTML-презентацию
Файловая структура:
frontend-slides/
├── SKILL.md # Главная документация
├── STYLE_PRESETS.md # 12 визуальных пресетов
├── viewport-base.css # Обязательный CSS для адаптивности
├── html-template.md # Шаблоны HTML архитектуры
├── animation-patterns.md # Паттерны анимаций
└── scripts/
└── extract-pptx.py # Конвертер PowerPointWorkflow создания презентации
Phase 0: Режим детекции
"Create a presentation about AI trends" # → Mode A
"Convert this PowerPoint file to web" # → Mode B
"Enhance this existing HTML presentation" # → Mode CPhase 1: Content Discovery
Скилл задаёт все вопросы одновременно:
- Purpose:** Pitch deck / Teaching / Conference talk / Internal
- Length:** Short 5-10 / Medium 10-20 / Long 20+
- Content:** All ready / Rough notes / Topic only
- Inline Editing:** Yes (edit in browser) / No (only viewing)
Если есть изображения: скилл их сканирует, оценивает полезность, строит outline с учётом визуалов.
Phase 2: Style Discovery
Это фишка скилла — "show, don't tell". Большинство людей не может описать дизайн словами.
Step 2.1: Mood Selection
Выберите настроение (до 2 вариантов):
- Impressed/Confident** — профессионально, солидно
- Excited/Energized** — инновационно, смело
- Calm/Focused** — чисто, вдумчиво
- Inspired/Moved** — эмоционально, запоминающе
Step 2.2: Генерация 3 превью
Основываясь на выбранном настроении, скилл генерирует 3 разных single-slide HTML превью:
Mood: Impressed/Confident → Suggested Presets: Bold Signal, Electric Studio, Dark Botanical
Mood: Excited/Energized → Suggested Presets: Creative Voltage, Neon Cyber, Split Pastel
Mood: Calm/Focused → Suggested Presets: Notebook Tabs, Paper & Ink, Swiss Modern
Mood: Inspired/Moved → Suggested Presets: Dark Botanical, Vintage Editorial, Pastel Geometry
Каждый превью — self-contained HTML файл ~50-100 строк с анимированным title slide. Открываются автоматически в браузере.
Step 2.3: Выбор стиля
Пользователь видит 3 живых примера и выбирает понравившийся.
Viewport Fitting: святая корова
Non-negotiable rule: каждый слайд ДОЛЖЕН помещаться в 100vh. Никакой прокрутки внутри слайдов.
Инварианты для каждого .slide:
.slide {
height: 100vh;
height: 100dvh;
overflow: hidden;
}Адаптивность через clamp():
/* Никогда не используйте фиксированные размеры */
font-size: clamp(1.2rem, 4vw, 2.5rem);
margin: clamp(20px, 5vh, 60px);Лимиты контента на слайд:
Тип слайда: Title slide → Максимум контента: 1 заголовок + 1 подзаголовок + tagline
Тип слайда: Content slide → Максимум контента: 1 заголовок + 4-6 пунктов ИЛИ 2 абзаца
Тип слайда: Feature grid → Максимум контента: 1 заголовок + 6 карточек max
Тип слайда: Code slide → Максимум контента: 1 заголовок + 8-10 строк кода
Тип слайда: Quote slide → Максимум контента: 1 цитата (max 3 строки) + attribution
Тип слайда: Image slide → Максимум контента: 1 заголовок + 1 изображение (max 60vh)
Превышает лимиты? Разбиваем на несколько слайдов.
Distinctive Design: борьба с AI-slop
Скилл специально борется с generic "AI-slop" эстетикой:
Запрещённое:
- Overused шрифты (Inter, Roboto, Arial, system fonts)
- Клишированные цветовые схемы (purple gradients на белом)
- Предсказуемые layouts
- Cookie-cutter дизайн без характера
Поощряется:
- Уникальные шрифты (Fontshare, Google Fonts)
- Cohesive эстетика с CSS variables
- Доминантные цвета с sharp акцентами
- Animations с impact (стaggered reveals с animation-delay)
- Атмосферные backgrounds (gradients, patterns, effects)
Пример CSS переменных:
:root {
--primary: #2D5BFF;
--secondary: #FF6B47;
--bg-primary: #0A0A0A;
--text-primary: #FFFFFF;
--accent-glow: rgba(45, 91, 255, 0.3);
}Phase 3: Generation
Финальная генерация — single self-contained HTML файл:
Обязательные требования:
- Включает полный viewport-base.css
- Inline CSS/JS (no external deps)
- Шрифты от Fontshare или Google Fonts
- Детальные комментарии с /* === SECTION === */ блоками
- Support для keyboard navigation (arrow keys, Space)
- Responsive breakpoints: 700px, 600px, 500px
- prefers-reduced-motion support
Архитектура HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Presentation Title</title>
<link href="https://api.fontshare.com/v2/css?f[]=font-name" rel="stylesheet">
<style>
/* === VIEWPORT BASE CSS === */
/* Full viewport-base.css contents here */
/* === THEME VARIABLES === */
:root { --primary: #color; }
/* === LAYOUT STYLES === */
/* === ANIMATION STYLES === */
/* === COMPONENT STYLES === */
</style>
</head>
<body>
<!-- Navigation dots -->
<nav class="slide-nav">
<div class="nav-dot active" data-slide="0"></div>
<div class="nav-dot" data-slide="1"></div>
</nav>
<!-- Slides -->
<div class="slide active" id="slide-0">
<div class="slide-content">
<h1 class="reveal">Amazing Title</h1>
<p class="reveal">Subtitle text</p>
</div>
</div>
<script>
/* === NAVIGATION === */
/* === ANIMATIONS === */
/* === UTILITIES === */
</script>
</body>
</html>PowerPoint конвертация
Phase 4: PPT → HTML
Скилл может конвертировать .pptx файлы:
# Извлечение контента
python scripts/extract-pptx.py input.pptx output_dir
# Результат:
# - Все текстовое содержимое
# - Изображения в assets/ папке
# - Порядок слайдов
# - Speaker notes (как HTML комментарии)Workflow:
- Экстракция контента → подтверждение пользователем
- Style discovery (Phase 2)
- Генерация HTML с сохранением всего контента
Интерактивность и навигация
Встроенная навигация:
- Arrow keys (←/→)
- Space / Page Down
- Scroll/swipe на мобильных
- Click по navigation dots
- Touch swipe gestures
Inline редактирование (опционально):
- Hover левый верхний угол или Press E
- Click на любой текст для редактирования
- Ctrl+S для сохранения в localStorage
- Export кнопка для скачивания файла
Keyboard shortcuts:
// F — fullscreen mode
// ESC — exit edit mode
// Ctrl+S — save to localStorage
// R — reset to original12 Style Presets
Скилл включает curated коллекцию стилей:
Preset: Bold Signal → Описание: Corporate confidence → Шрифты: Satoshi → Цвета: Blue/White
Preset: Electric Studio → Описание: Creative energy → Шрифты: Space Grotesk → Цвета: Neon/Dark
Preset: Dark Botanical → Описание: Elegant nature → Шрифты: Crimson Pro → Цвета: Green/Black
Preset: Creative Voltage → Описание: High-energy innovation → Шрифты: Inter Display → Цвета: Electric/Bold
Preset: Neon Cyber → Описание: Futuristic tech → Шрифты: JetBrains Mono → Цвета: Cyan/Purple
Preset: Notebook Tabs → Описание: Organized clarity → Шрифты: Source Sans → Цвета: Tab colors
Preset: Paper & Ink → Описание: Classic typography → Шрифты: Crimson Text → Цвета: Paper/Ink
Preset: Swiss Modern → Описание: Minimalist precision → Шрифты: Inter → Цвета: Clean/Precise
Preset: Vintage Editorial → Описание: Timeless class → Шрифты: Playfair → Цвета: Vintage tones
Preset: Pastel Geometry → Описание: Soft sophistication → Шрифты: Plus Jakarta → Цвета: Pastels
Preset: Split Pastel → Описание: Dual-tone design → Шрифты: Outfit → Цвета: Split colors
Preset: Monospace Grid → Описание: Code-inspired → Шрифты: JetBrains Mono → Цвета: Grid/Mono
Каждый preset включает:
- Цветовую палитру (CSS variables)
- Typography scale
- Animation patterns
- Signature design elements
Animation Patterns
Скилл использует sophisticated анимации для emotional impact:
Staggered reveals:
.reveal {
opacity: 0;
transform: translateY(30px);
animation: slideInUp 0.6s ease-out forwards;
}
.reveal:nth-child(1) { animation-delay: 0.1s; }
.reveal:nth-child(2) { animation-delay: 0.2s; }
.reveal:nth-child(3) { animation-delay: 0.3s; }Page transitions:
.slide {
transition: transform 0.5s cubic-bezier(0.25, 1, 0.5, 1);
}
.slide.prev { transform: translateX(-100%); }
.slide.active { transform: translateX(0); }
.slide.next { transform: translateX(100%); }Micro-interactions:
.nav-dot:hover {
transform: scale(1.2);
box-shadow: 0 0 20px var(--primary);
}Best Practices
Content density:
- Один concept per slide
- Maximum 6 bullets per slide
- Split long content across multiple slides
- Use visual hierarchy (size, color, spacing)
Performance:
- CSS-only animations когда возможно
- Preload fonts and critical assets
- Optimize images (WebP format)
- Minimal JavaScript footprint
Accessibility:
- High contrast ratios
- Keyboard navigation support
- Screen reader friendly structure
- prefers-reduced-motion respect
Responsive design:
- Viewport relative units (vh, vw, vmin, vmax)
- Clamp() для fluid typography
- Breakpoints для critical heights
- Touch-friendly navigation
Заключение
Frontend Slides — это революция в создании презентаций. Вместо борьбы с PowerPoint templates вы получаете:
- Unlimited creativity** — полный контроль над дизайном
- Zero lock-in** — простой HTML файл, работает везде
- Professional quality** — анимации уровня Apple Keynote
- Rapid iteration** — от идеи до готовой презентации за минуты
GitHub: https://github.com/zarazhangrui/frontend-slides
Скилл превращает Claude Code в персонального дизайнера, который создаёт презентации, от которых у аудитории челюсть отваливается.
Результат: self-contained HTML файл, который открывается в любом браузере и выглядит как продукт топовой дизайн-студии.
*HTML презентации: когда код становится искусством.* 🧪
> Пока нет комментариев