tooyoung:frontend-slides
- Repo stars 15
- Author updated Live
- Author repo oh-my-daily-skills
- Domain
- Data
- Compatible agents
-
- Claude Code
- Cursor
- Cline
- Codex
- Windsurf
- Gemini CLI
- +20
- Trust score
- 88 / 100 · community maintained
- Author / version / license
- @shiqkuangsan · no license declared
- Token usage
- Lean
- Setup complexity
- Guided setup
- External API key
- Not required
- Operating systems
- Unspecified (assume cross-platform)
- Runtime requirements
- No special requirements
- Permissions
-
- Read-only
- Write / modify
- Network behavior
- Local-only
- Install commands
- 26 variants
Profile is derived at build time from SKILL.md and install vectors. Subject to drift from author intent.
Heads up: 未限定 allowed-tools,默认拥有全部工具权限。
---
name: tooyoung:frontend-slides
description: Create beautiful, single-file HTML slide presentations. Each slide fills exactly one viewport —…
category: data
runtime: no special runtime
---
# tooyoung:frontend-slides output preview
## PART A: Task fit
- Use case: Create beautiful, single-file HTML slide presentations. Each slide fills exactly one viewport — no scrolling within slides, no build tools, no frameworks. Inspired by zarazhangrui/frontend-slides. runs entirely locally. Works with Claude Code, Cursor, Cline and 23 more..
- Inputs: target material, constraints, expected output, and acceptance criteria.
- Evidence boundary: follow “Core Principles / Viewport Fitting (Single Source of Truth) / Required Base CSS” and do not present inference as author intent.
## PART B: Execution result
- **01** The card summarizes the use case; runtime output centers on “Create beautiful, single-file HTML slide presentations. Each slide fills exactly one viewport — no scrolling within slides, no build tools, no frameworks. Inspired by zarazhangrui/frontend-slides. runs entirely locally. Works with Claude Code, Cursor, Cline and 23 more.”.
- **02** When the source has headings, the agent prioritizes “Core Principles / Viewport Fitting (Single Source of Truth) / Required Base CSS” so the result follows the author’s structure.
- **03** Typical output includes task judgment, concrete steps, required commands or file edits, validation, and follow-up options.
- **04** Risk context follows the fingerprint: read files, write/modify files; mostly runs locally; usually needs no extra API key.
## Running Rules
- read files, write/modify files; mostly runs locally; usually needs no extra API key.
- Validate with a small sample before expanding scope.
- Return the result, validation criteria, and next iteration options. The source does not require a stable slash command. After installation, invoke the skill by name and describe the task.
Name target files or source material, expected output, forbidden changes, and whether network or shell access is allowed. Permission fingerprint: read files, write/modify files.
Start with a small task and check whether the result follows “Core Principles / Viewport Fitting (Single Source of Truth) / Required Base CSS”. Inspect diffs, logs, previews, or tests before expanding scope.
Confirm the final output includes a concrete result, evidence, and next action. If it stays generic, tighten inputs, boundaries, and acceptance criteria.
---
name: tooyoung:frontend-slides
description: Create beautiful, single-file HTML slide presentations. Each slide fills exactly one viewport —…
category: data
source: shiqkuangsan/oh-my-daily-skills
---
# tooyoung:frontend-slides
## When to use
- Create beautiful, single-file HTML slide presentations. Each slide fills exactly one viewport — no scrolling within sl…
- Use it when the task has clear inputs, repeatable steps, and validation criteria.
## What to provide
- Target material, scope, expected result, and forbidden changes.
- Whether network, commands, file writes, or external services are allowed.
## Execution rules
- Organize steps around “Core Principles / Viewport Fitting (Single Source of Truth) / Required Base CSS” and keep inference separate from source facts.
- read files, write/modify files; mostly runs locally; usually needs no extra API key.
- Validate with a small sample before expanding the task.
## Output requirements
- Return the deliverable, key evidence, validation method, and next action.
- Mark missing information as unknown; do not invent commands, platforms, or dependencies. The author source anchors workflow facts; repository files anchor sources and commands; Fluxly only adds fit, limitations, and quality judgment.
skill "tooyoung:frontend-slides" {
input -> user goal + target files + boundaries + acceptance criteria
context -> Core Principles / Viewport Fitting (Single Source of Truth) / Required Base CSS
rules -> SKILL.md triggers / order / output contract
runtime -> no special runtime | read files, write/modify files | mostly runs locally
guardrails -> usually needs no extra API key + small-sample validation + diff/log review
output -> copyable result + checklist + next iteration
} Frontend Slides
Create beautiful, single-file HTML slide presentations. Each slide fills exactly one viewport — no scrolling within slides, no build tools, no frameworks. Inspired by zarazhangrui/frontend-slides.
Output: One .html file containing all CSS, JS, and slide content inline.
Font strategy: Every theme specifies a Google Fonts / Fontshare web font AND a system font fallback stack. Web fonts enhance — they are not required. Presentations must look good offline.
Reference files contain complete code templates. Load them on-demand — only read what you need for the current task.
Core Principles
- One slide = one viewport.
100dvh,overflow: hidden,scroll-snap-align: start. Content that overflows → split into more slides. - All sizes use
clamp(). No fixedpx/remfor typography or spacing. Everything scales with the viewport. - Content density limits are hard rules. See the table below — never exceed them.
- Single-file output. Fonts via CDN
<link>, everything else inline. No external CSS/JS files. - Respect
prefers-reduced-motion. All animations must have a reduced-motion fallback.
Viewport Fitting (Single Source of Truth)
This section is THE authority on viewport rules. Reference files do not repeat these — they assume this CSS is always present.
Required Base CSS
*,
*::before,
*::after {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
scroll-snap-type: y mandatory;
scroll-behavior: smooth;
height: 100%;
}
body {
font-family: var(--font-body);
background: var(--bg-primary);
color: var(--text-primary);
overflow-x: hidden;
height: 100%;
}
.slide {
width: 100vw;
height: 100vh;
height: 100dvh;
overflow: hidden;
scroll-snap-align: start;
display: flex;
flex-direction: column;
position: relative;
}
.slide-content {
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
max-height: 100%;
overflow: hidden;
padding: var(--slide-padding);
}
Required CSS Variables
:root {
/* Typography — MUST use clamp() */
--title-size: clamp(1.5rem, 5vw, 4rem);
--h2-size: clamp(1.25rem, 3.5vw, 2.5rem);
--h3-size: clamp(1rem, 2.5vw, 1.75rem);
--body-size: clamp(0.75rem, 1.5vw, 1.125rem);
--small-size: clamp(0.65rem, 1vw, 0.875rem);
/* Spacing — MUST use clamp() */
--slide-padding: clamp(1rem, 4vw, 4rem);
--content-gap: clamp(0.5rem, 2vw, 2rem);
--element-gap: clamp(0.25rem, 1vw, 1rem);
/* Animation */
--ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
--duration-normal: 0.6s;
}
Responsive Breakpoints
/* Short viewports (< 700px height) */
@media (max-height: 700px) {
:root {
--slide-padding: clamp(0.75rem, 3vw, 2rem);
--content-gap: clamp(0.4rem, 1.5vw, 1rem);
--title-size: clamp(1.25rem, 4.5vw, 2.5rem);
--h2-size: clamp(1rem, 3vw, 1.75rem);
}
}
/* Very short (< 600px height) */
@media (max-height: 600px) {
:root {
--slide-padding: clamp(0.5rem, 2.5vw, 1.5rem);
--content-gap: clamp(0.3rem, 1vw, 0.75rem);
--title-size: clamp(1.1rem, 4vw, 2rem);
--body-size: clamp(0.7rem, 1.2vw, 0.95rem);
}
.nav-dots,
.keyboard-hint,
.decorative {
display: none;
}
}
/* Landscape phones (< 500px height) */
@media (max-height: 500px) {
:root {
--slide-padding: clamp(0.4rem, 2vw, 1rem);
--title-size: clamp(1rem, 3.5vw, 1.5rem);
--h2-size: clamp(0.9rem, 2.5vw, 1.25rem);
--body-size: clamp(0.65rem, 1vw, 0.85rem);
}
}
/* Narrow viewports (< 600px width) */
@media (max-width: 600px) {
:root {
--title-size: clamp(1.25rem, 7vw, 2.5rem);
}
.grid {
grid-template-columns: 1fr;
}
}
/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
transition-duration: 0.2s !important;
}
html {
scroll-behavior: auto;
}
}
Content Density Limits
Hard maximums per slide type. If content exceeds → split into multiple slides.
| Slide Type | Maximum Content |
|---|---|
| Title | 1 heading + 1 subtitle + optional tagline |
| Content | 1 heading + 4–6 bullets OR 1 heading + 2 paragraphs |
| Feature Grid | 1 heading + 6 cards max (2×3 or 3×2) |
| Code | 1 heading + 8–10 lines of code max |
| Quote | 1 quote (max 3 lines) + attribution |
| Two-Column | 1 heading + 2 columns, each ≤ 4 bullets |
| Image | 1 heading + 1 image (max-height: min(50vh, 400px)) |
Slide Types
Seven standard types. See references/slide-components.md for complete HTML/CSS templates.
| Type | Class | Use For |
|---|---|---|
| Title | .title-slide |
Opening slide, section dividers |
| Content | .content-slide |
Bullet points, paragraphs |
| Code | .code-slide |
Code snippets with syntax highlighting |
| Feature Grid | .grid-slide |
Feature cards, comparisons |
| Quote | .quote-slide |
Testimonials, key statements |
| Two-Column | .two-col-slide |
Side-by-side comparisons |
| Image | .image-slide |
Screenshots, diagrams, photos |
Theme Collection
8 curated themes across 3 categories. Each theme includes CSS variables, font pairings with system fallbacks, layout guidance, and signature element CSS.
Dark Themes → references/themes-dark.md
| Theme | Vibe | Signature |
|---|---|---|
| Bold Signal | Confident, high-impact | Colored card on dark gradient, large section numbers |
| Creative Voltage | Energetic, retro-modern | Electric blue + neon yellow, halftone textures |
| Dark Botanical | Elegant, sophisticated | Soft gradient circles, warm gold/pink accents |
Light Themes → references/themes-light.md
| Theme | Vibe | Signature |
|---|---|---|
| Notebook Tabs | Editorial, tactile | Paper card with colored tabs, binder holes |
| Pastel Geometry | Friendly, approachable | Rounded card with vertical pills on right edge |
| Vintage Editorial | Witty, personality-driven | Geometric shapes, bold bordered CTAs, serif headlines |
Specialty Themes → references/themes-specialty.md
| Theme | Vibe | Signature |
|---|---|---|
| Neon Cyber | Futuristic, techy | Particle backgrounds, neon glow, grid patterns |
| Terminal Green | Developer, hacker | Scan lines, blinking cursor, monospace everything |
Font Fallback Strategy
Every theme has two font stacks — web (CDN) and system (offline).
| Theme | Web Font | System Fallback |
|---|---|---|
| Bold Signal | Archivo Black / Space Grotesk | Impact, Arial Black / system-ui |
| Creative Voltage | Syne / Space Mono | Trebuchet MS / Courier New, monospace |
| Dark Botanical | Cormorant / IBM Plex Sans | Georgia, Times New Roman / system-ui |
| Notebook Tabs | Bodoni Moda / DM Sans | Didot, Georgia / system-ui |
| Pastel Geometry | Plus Jakarta Sans | system-ui, -apple-system |
| Vintage Editorial | Fraunces / Work Sans | Georgia, Palatino / system-ui |
| Neon Cyber | Clash Display / Satoshi | system-ui, -apple-system |
| Terminal Green | JetBrains Mono | "SF Mono", "Cascadia Code", "Fira Code", monospace |
When web fonts fail to load, the presentation must still look intentional — system fallbacks are chosen to preserve the theme's character.
Creation Workflow
- User provides: topic, audience, optional theme preference
- Choose theme: match audience/mood to theme vibe (see table above)
- Load references:
- Always:
references/slide-template.md(HTML skeleton) - Always: the relevant
references/themes-*.md(for chosen theme) - As needed:
references/slide-components.md(for specific slide types) - As needed:
references/animation-recipes.md(for advanced effects)
- Always:
- Plan slides: outline each slide with type + key content (respect density limits)
- Generate: single HTML file using the skeleton, theme CSS, and component patterns
- Verify: every slide fits viewport, no overflow, animations have reduced-motion fallback
CSS Gotchas
Negating CSS Functions
/* WRONG — silently ignored, no console error: */
right: -clamp(28px, 3.5vw, 44px);
margin-left: -min(10vw, 100px);
/* CORRECT — wrap in calc(): */
right: calc(-1 * clamp(28px, 3.5vw, 44px));
margin-left: calc(-1 * min(10vw, 100px));
Browsers silently discard declarations with - before clamp(), min(), max().
Image Constraints
.slide-image {
max-width: 100%;
max-height: min(50vh, 400px);
object-fit: contain;
border-radius: 8px;
}
.slide-image.screenshot {
border: 1px solid rgba(255, 255, 255, 0.1);
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
}
Grid Auto-Fit
.grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
gap: clamp(0.5rem, 1.5vw, 1rem);
}
Effect-to-Feeling Guide
| Feeling | Techniques |
|---|---|
| Dramatic | Slow fade-ins (1–1.5s), scale 0.9→1, dark bg + spotlight, parallax |
| Techy | Neon glow, particle canvas, grid patterns, monospace, glitch effects |
| Playful | Bouncy easing, large border-radius, pastels, floating animations |
| Professional | Subtle fast animations (200–300ms), clean sans-serif, minimal decoration |
| Calm | Very slow subtle motion, high whitespace, muted palette, serif type |
| Editorial | Strong type hierarchy, pull quotes, grid-breaking layouts, serif + sans |
DO NOT USE
position: fixedfor slides (breaks scroll-snap)- Fixed
px/remfor typography or spacing (useclamp()) vhwithoutdvhfallback (mobile address bar issues)overflow: auto/scrollon.slide(breaks one-slide-per-viewport rule)- Google Fonts
@importin CSS (use<link>in<head>for performance) - More than 6 feature cards per grid slide
- Code blocks longer than 10 lines per slide
References
| File | Contents | When to Load |
|---|---|---|
slide-template.md |
Complete HTML/CSS/JS skeleton with navigation | Always — every presentation starts here |
slide-components.md |
7 slide type HTML templates | Always — for building individual slides |
themes-dark.md |
Bold Signal, Creative Voltage, Dark Botanical | When using a dark theme |
themes-light.md |
Notebook Tabs, Pastel Geometry, Vintage Editorial | When using a light theme |
themes-specialty.md |
Neon Cyber, Terminal Green | When using a specialty theme |
animation-recipes.md |
Reveal, stagger, typewriter, particle effects | When advanced animations are needed |
Decide Fit First
Design Intent
How To Use It
Boundaries And Review