Install
openclaw skills install presentation-by-htmlUse when the user needs to create a technical sharing, presentation, or talk material. Triggered by requests like "prepare a sharing", "make slides", "build a presentation", or any scenario requiring structured visual storytelling for an audience.
openclaw skills install presentation-by-htmlBuild presentation materials as HTML through a two-phase process: brainstorm first, build second. Never produce slides before the narrative structure is solid.
Conduct a structured dialogue before writing any code.
Audience & Format:
Content Core:
Narrative Intent:
Continue dialogue until:
Separate concerns into three files for maintainability:
project/
presentation.html # Semantic structure only, no inline styles except layout-specific
css/style.css # All visual styling, animations, component patterns
js/deck.js # Navigation, interactions, TOC, expandable logic
images/ # Screenshots, avatars, demo videos
The presentation is NOT a static slide deck. It uses interactive detail-on-demand patterns:
1. Tab Cards — Clickable cards that switch a shared detail area below
<div class="grid-3">
<div class="card tab-card active" data-tab="topic-a">Summary A</div>
<div class="card tab-card" data-tab="topic-b">Summary B</div>
</div>
<div class="tab-detail-area">
<div class="tab-detail active" data-tab="topic-a">...full detail...</div>
<div class="tab-detail" data-tab="topic-b">...full detail...</div>
</div>
Use when: Multiple sub-topics exist under one slide, each with rich detail.
2. Expandable Details — Cards that expand to reveal deeper content
<div class="card expandable" data-expand-target="detail-id">Summary</div>
<div class="expand-content-full" id="detail-id">
<div class="expand-inner">...detailed content...</div>
</div>
Use when: A slide has layered information — show summary by default, expand for evidence/examples. Supports data-default-open attribute.
3. Left-Tab + Right-Detail Panel — Vertical tab list with adjacent detail pane
Use when: Each tab has substantial content (code blocks, diagrams) that benefits from full-width display. Example: security isolation details.
| Component | CSS Class | Usage |
|---|---|---|
| Cards | .card .card-accent .card-{color} | Discrete points, categorized items |
| Tags | .tag .tag-{color} | Labels, keywords, status badges |
| Grids | .grid-2 .grid-3 | Parallel comparisons |
| Quote | .quote | Key insights, memorable one-liners |
| Architecture boxes | .arch-box .arch-box.primary | System diagrams |
| Code blocks | <pre> with .comment .keyword .string .func .op spans | Syntax-highlighted dark code |
| Comparison | .compare-box .compare-before .compare-after | Before/after with positioned labels |
| Timeline | .timeline .timeline-item | Sequential events with time markers |
| Pitfall insight | .pitfall-step .pitfall-insight | Highlighted takeaway badges |
| Big numbers | .big-number | Metrics with placeholder __ for pending data |
--primary: #1a73e8; /* neutral/default/architecture */
--accent: #ea4335; /* problem/danger/before */
--accent-green: #34a853; /* solution/success/after */
--accent-yellow: #fbbc04; /* caution/intermediate */
--accent-purple: #9334e6; /* advanced/depth/evaluator */
.fade-in .fade-in-d1 through .fade-in-d6 for progressive reveal.anim-step + .anim-flow container, revealed sequentially by JS.flow-node + .flow-connector revealed node-by-node with delays@keyframes tabFadeIn for smooth panel switching.slide-title): Gradient background, white text.slide-section): Large faded number + heading.arch-box nodes.compare-before / .compare-after side-by-side.big-number with __ placeholders for pending metricsdeck.js handles:
- Slide navigation (keyboard ←→/Space/PgUp/PgDn, touch swipe, ESC for TOC)
- Progress bar + counter update
- Tab card switching (click → toggle active class on cards and detail panels)
- Expandable toggle (click → open/close with accordion behavior)
- Security panel switching
- Animated flow triggering (reset + staggered reveal on slide enter)
- Default-open restoration on slide enter
- Expand state cleanup on slide leave
data-title on section/key slides for TOC generation