К основному содержанию
скилл CX Codex

slidewright — скилл для Claude Code: презентации-сайты

Собирает слайды как сайт для показа на большом экране: один ведущий, аудитория только смотрит. Два варианта — один HTML-файл или проект на Vite + React.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add tronghieu/agent-skills --skill slidewright -a claude-code
Открыть на GitHub

Что делает slidewright

Скилл задаёт модели рамку доклада: один оператор, один компьютер, слайды уходят на проектор. Аудитория не кликает и не вводит данные, поэтому интерактив сводится к переключению слайдов ведущим. Из этого правила вытекают требования к кеглю: текст набирается через clamp(), а не фиксированными классами вроде text-4xl, потому что с задних рядов мелкий шрифт не читается.

Внутри два трека. Простой HTML открывается прямо из файла, без сборки, но после примерно 15–20 насыщенных слайдов становится неудобным. Проект на Vite + React берут для больших докладов, которые придётся поддерживать. Каркас создаётся скриптом, а не руками, и в нём уже есть нижняя навигация с точками, номер слайда и пульт с телефона: терминал печатает QR-код, дальше ведущий листает кнопками Next и Prev. Заметки докладчика пишутся в отдельный файл <deck-name>-notes.md, не на сами слайды.

Перед сдачей прогоняются две проверки. Скрипт bash /mnt/skills/user/slidewright/scripts/verify-slides.sh <path-to-deck> ловит слишком мелкий текст и перегруженные слайды, а аудит отступов смотрят на 1920×1080 и на меньшем экране. Требование простое: у любого элемента с видимой границей — фоном, рамкой, тенью — контент отступает от края со всех четырёх сторон. Вложенную карточку родительский padding не защищает, так что без собственного отступа текст прилипнет к рамке.

Какие задачи решает

  • собрать доклад как сайт и показать его на проекторе
  • поднять каркас презентации одной командой, без ручной вёрстки
  • листать слайды с телефона по QR-коду из терминала
  • выгрузить слайды в PDF
  • переделать оформление готовой колоды под другой стиль

Примеры запросов агенту

  • Сделай презентацию для доклада на 20 минут, стиль — минимализм Баухаус
  • Добавь слайд про метрики после третьего и переверстай под тёмную тему
  • Выгрузи колоду в PDF

Как установить slidewright

1Через Skills CLI (Vercel)

npx skills add tronghieu/agent-skills --skill slidewright -a claude-code

2Вручную: положить файлы

~/.claude/skills/slidewright/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/slidewright/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о slidewright

Как установить slidewright в Claude Code?

Выполните npx skills add tronghieu/agent-skills --skill slidewright -a claude-code — скилл встанет в ~/.claude/skills/slidewright/SKILL.md.

Что делает slidewright?

Помогает агенту построить презентацию-сайт для показа на экране: каркас, слайды, заметки докладчика и пульт с телефона. Есть два трека — одиночный HTML-файл и проект на Vite + React.

Для чего этот скилл не подходит?

Для печатных документов, обычных веб-приложений и дашбордов, где пользователь сам кликает и вводит данные. Слайды здесь только показывают.

Исходный текст

SKILL.md · MIT
---
name: slidewright
description: >-
  Build interactive presentation websites — slide decks projected to a room, controlled
  by one presenter. Use this skill WHENEVER the user wants to create, build, or design a
  presentation, slide deck, talk, or "bài thuyết trình / slide / trình chiếu", and also
  when they ask to add/edit slides, restyle a deck, scaffold a new presentation project,
  reuse their presentation setup in another repo, control slides from a phone (remote,
  QR code, "điều khiển slide bằng điện thoại"), or export slides to PDF — even if they
  don't say the word "slide" but clearly need projected talk visuals (e.g. "I'm giving a
  talk next week and need visuals", "dựng deck cho buổi chia sẻ", "làm mấy trang chiếu
  cho hội thảo"). Supports two tracks: a zero-build single HTML file, or a Vite + React
  project. Do NOT use it for printable documents, normal web apps, or dashboards meant
  for individual users to interact with.
---

# Interactive presentation builder

Build slide decks that run as a website and are **projected to a room**. The deck is the
visual half of a talk; the presenter does the talking. Two ways to build, one shared
design language.

## First, the mental model (read before writing any code)

There is **one operator** (the presenter) on **one machine**. Slides go on a big screen;
the audience only **looks** — they never click, type, or interact. Everything below
follows from this. Four failure modes to avoid:

- **Text too small.** Slides are read from across a room, not on a laptop. Never use
  web-reading sizes (`text-sm`, `16px`) or fixed Tailwind text classes (`text-4xl`).
  Always use fluid `clamp()` so text scales with the screen. Honour the typography floor
  (body ≈ 30–36px, never below 28px on a 1080p canvas). See `references/design-system.md`.
- **Content hugging an edge.** Padding is a two-layer contract. Slide content must stay
  inside the viewport safe area, and content inside a card, panel, callout, bordered box,
  or other visible container must stay inset from that container's own edge. A parent
  slide's padding does not protect a nested container; `gap` and child margins are not a
  substitute for the container's own padding. Both scaffolds provide safe-area padding
  and a `.slide-surface` inset helper. Even `fullBleed` slides keep text content inset.
- **Building an app.** No input fields, no "Submit", no login, no data collection — there
  is no backend and nowhere for data to go. Interaction is only the presenter clicking to
  reveal/advance content. If a component asks "where does this data go?", it's wrong.
- **Wrong voice for the audience.** A board report is not a lesson and a pitch is not a
  status update. The deck type sets the structure and the voice. Decide it first — see
  `references/deck-types.md`.

The presenter may hold a **phone remote** (scan a QR code from the terminal, then tap
Next/Prev). It is the same single operator on a second device, not audience interaction.

`references/design-system.md` is the heart of this skill — the typography floor, two-layer
padding contract, content overflow, layout recipes, motion, and palette. Read it whenever
you design or restyle slide content.

## Workflow

1. **Understand and clarify the talk.**
   - **Content:** If the presentation content is vague or unclear, ask questions to clarify the topic, audience, speaker (name/role), and key message before building. For Vietnamese content, the default voice is plain, honest, direct — no marketing hype.
   - **Deck type:** Decide what the deck is for before writing: report upward, decision request, pitch, training, talk, or internal update. Infer it from the request and tell the user your choice in one line; ask only when two types fit equally. Then read `references/deck-types.md` and follow that type's arc, voice, and prohibitions.
   - **Style:** Ask the user for their preferred visual style and suggest these 5 modern options:
     1. *Minimalist Bauhaus*: High contrast, geometric typography, generous whitespace.
     2. *Dark Mode Cinematic*: Deep slate/black backgrounds, dramatic contrast, glowing accents.
     3. *Editorial / Magazine*: Sophisticated font pairings (serif + sans), structured grid layouts.
     4. *Glassmorphism*: Soft background gradients with blurred, translucent content panels.
     5. *Neo-Brutalism*: Bold typography, raw borders, hard shadows, high energy.
2. **Pick a track** (below). If unsure, ask once; otherwise default to plain HTML for
   small/quick decks and React for substantial, maintained talks.
3. **Scaffold** with the matching script — don't hand-assemble the boilerplate.
4. **Build slides** in the arc and voice of the deck type, following
   `references/design-system.md`: one idea per slide, few
   words, real visuals, projection-legible type, presenter-only interaction, and the
   two-layer padding contract for both viewport and content containers. Respect the
   density limits — never exceed 5 bullets, ~60 words, or 5×4 table cells per slide.
   If content doesn't fit at the typography floor, split into more slides — never shrink
   past the floor and never produce a slide that scrolls vertically.
5. **Keep the required chrome:** a visible bottom navigation slider (dot strip) and slide
   number. Both scaffolds include it — don't remove it.
6. **Write speaker notes** in the `<deck-name>-notes.md` file the scaffold creates (never
   on the slides themselves).
7. **Run the verify script** to catch text-too-small and content-too-dense violations:
   ```bash
   bash /mnt/skills/user/slidewright/scripts/verify-slides.sh <path-to-deck>
   ```
   Fix every reported issue before proceeding.
8. **Run the spacing audit before handoff.** Check every slide at 1920×1080 and at one
   smaller viewport. No text or primary content may cross the viewport safe area. For
   every element that draws a visible boundary (`background`, `border`, `outline`,
   `shadow`, rounded surface, or text-overlay panel), verify that its content has
   padding on all four sides. Media and purely decorative edge-to-edge layers are the
   only exceptions; text over them belongs in a nested padded surface.
9. **Tell the user how to present with the phone remote.** Both scaffolds include it.
   The HTML track runs `node <deck>/slidewright-remote.mjs`. The React track runs `npm run dev`.
   The terminal prints a QR code for the phone. See `references/remote-control.md`.
   Keep the deck's `window.slidewright` API and `slidewright:change` event when you edit
   navigation code.
10. **Export to PDF** if asked — see `references/export-pdf.md`.

Put each deck in its own folder. Keep any live-demo app as a separate project, not inside
the deck.

## Choosing a track

| Pick | When | Reference |
| --- | --- | --- |
| **Plain HTML** | Zero setup wanted; runs by opening a file; quick deck; shareable anywhere; no toolchain. Gets unwieldy past ~15–20 rich slides. | `references/html-track.md` |
| **Vite + React** | Many slides, reusable components, state-driven interactions, TypeScript, Framer Motion, maintained/re-run talks. | `references/react-track.md` |

Both produce the same projected experience and obey the same design system; they differ
only in implementation.

## Scaffolding

**Plain HTML** — single self-contained `index.html`, Tailwind via CDN, no build:

```bash
bash scripts/new-html-deck.sh <deck-name> [target-dir] [--title "Deck title"]
```

**Vite + React** — scaffolds with the official Vite tool and installs the **latest**
React, Tailwind, Framer Motion, and Lucide (versions are intentionally not pinned, so
each deck starts on current tooling), then layers the `App → Deck → Slide` architecture:

```bash
bash scripts/new-react-deck.sh <deck-name> [target-dir] [--no-install]
cd <deck-name> && npm run dev
```

Both scaffolds include the phone remote (`slidewright-remote.mjs`, zero dependencies).
For a deck scaffolded before the remote existed:

```bash
bash scripts/add-remote.sh <path-to-deck>
```

After scaffolding, read the matching track reference for how slides are structured and how
to add/reorder them, then build the content.

## Files in this skill

- `references/design-system.md` — projection rules, typography floor, layout recipes,
  motion, palette. The core; consult for any content/design work.
- `references/deck-types.md` — the six deck types and each one's arc, voice, and
  prohibitions. Read it before writing slide content.
- `references/html-track.md` — plain-HTML deck structure, template internals, adding slides.
- `references/react-track.md` — Vite+React architecture, slide ordering, Tailwind wiring.
- `references/export-pdf.md` — PDF export options and speaker-notes convention.
- `references/remote-control.md` — phone remote: running it, the deck API contract,
  security, troubleshooting (wrong IP, firewall, venue Wi-Fi).
- `scripts/new-html-deck.sh` — scaffold a plain-HTML deck.
- `scripts/new-react-deck.sh` — scaffold a Vite + React deck.
- `scripts/add-remote.sh` — add the phone remote to an existing deck.
- `assets/remote/slidewright-remote.mjs` — the phone remote: WebSocket relay, remote
  page, terminal QR code, static server (HTML track) and Vite plugin (React track).
  The scaffolds copy it into each deck; edit this source, not the copies.
- `scripts/export-deck-pdf.py` — export a deck to a content-complete PDF (waits for render
  and reveals hidden content; image-based).
- `scripts/verify-slides.sh` — static analysis of deck files: flags text below the
  typography floor, fixed-px font sizes, excessive bullet counts, and high word density
  per slide. Run after building slides and before handoff.

© tronghieu · MIT · tronghieu/agent-skills

Похожие скиллы

Всё по теме «Фронтенд и UI» →
frontend-design официальный anthropics Скилл задаёт осмысленное визуальное направление для новых интерфейсов и редизайна. Подойдёт, когда стандартный шаблонный UI не устраивает. 1 025 790установок design-taste-frontend Leonxlnx Скилл задаёт арт-дирекцию для публичных страниц и рабочих экранов, а затем проверяет результат в браузере по скриншотам. Нужен, когда интерфейс выглядит шаблонным или недоработанным. CX Codex +1 678 700установок prototype Matt Pocock Создаёт временный прототип, чтобы проверить логику, модель состояния или вид интерфейса до работы над основным кодом. 986 201установок hyperframes heygen-com Скилл задаёт агенту правила рендера HTML-кода в видео через HyperFrames. Помогает собирать проморолики, эксплейнеры и титры прямо в коде проекта. CX Codex +1 1 200 000установок hyperframes-cli heygen-com Управляет проектами HyperFrames через терминал: собирает таймлайн, проверяет контраст кадров, запускает предпросмотр и рендерит видео локально или в облаке. CX Codex +1 1 300 000установок webapp-testing официальный anthropics Скилл запускает проверки локальных веб-приложений через Playwright: помогает отлаживать UI, делать скриншоты и смотреть логи браузера. 186 758установок

Из того же набора6

product-manager Скилл превращает данные и гипотезы в готовые артефакты: PRD, бэклоги, метрики, OKR и планы запуска. Работает как живой рабочий стол PM, который помнит все решения и не даёт выдумать числа вместо анализа. CX Codex +1 ★ 86звёзд репо manual-tester Скилл гоняет ручные тест-сессии на запущенном приложении: исследует, проверяет багфиксы, оценивает UX и ответы ИИ-агента. CX Codex +1 ★ 86звёзд репо design-thinking Ведёт проект через этапы Empathize, Define, Ideate, Prototype и Test, опираясь только на реальные данные о пользователях. Пригодится, когда нужно разобраться, почему люди уходят или чего им не хватает. CX Codex +1 ★ 86звёзд репо cv-scorer Скилл сравнивает резюме кандидатов с описанием вакансии и выставляет балл из 100. Пригодится, когда нужно быстро отсеять поток откликов. CX Codex +1 ★ 86звёзд репо bmad-run-inspector Читает артефакты bmad-loop из .bmad-loop/runs/ — логи, журналы, состояние задач. Помогает понять, что происходит в живом цикле агента и почему прошлый запуск сломался. CX Codex +1 ★ 86звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой