# Skill: Build a self-contained HTML slide presentation with no external dependencies > Lets an AI coding agent generate a fully working browser-based slide deck from raw text or an existing PowerPoint file -- applies whenever a user needs a shareable presentation that opens anywhere without installing software. Source: sodigi·learn -- vibecoding/slaydy-v-brauzere · https://sodigi.io/learn/vibecoding/slaydy-v-brauzere ## When to use - User asks for a presentation, slide deck, pitch, or portfolio page. - User wants to convert an existing .ppt / .pptx into a modern web format. - User needs a presentation that works on a projector, phone, and laptop without any app installed. - User is iterating on visual style and wants to choose from multiple previews before committing. ## Core rules - Always produce a **single self-contained HTML file** with all styles, scripts, and animations inlined. A separate assets folder is acceptable only when the deck includes the user's own photos. - **One slide = one screen, no scrolling.** If content does not fit, split it into two slides -- never shrink the font. - Wire up keyboard arrows, scroll wheel, and touch swipes for navigation from the start. Include a slide progress indicator. - Respect `prefers-reduced-motion`: animations must degrade gracefully. - Never start with "show me the whole presentation first." Always generate **2-3 style previews** and let the user pick visually before building the full deck. - Text density limits per slide: title slide = headline + subtitle + optional tagline; regular slide = 1 headline + 4-6 bullets or 2 short paragraphs; feature grid = max 6 cards; code slide = 8-10 lines; quote slide = quote + attribution only. - When converting a PowerPoint, still go through the style-picking step -- do not replicate the old template look. ## Procedure 1. Receive the user's content (raw notes, topic outline, or an uploaded .pptx). 2. Identify the audience and tone (technical, investor, academic, etc.). 3. Generate **3 distinct single-slide previews** in visually different styles (e.g., minimal, dark luxury, editorial). Show them to the user. 4. Ask: "Which style do you prefer? You can also mix elements -- e.g., headline font from option 1, colors from option 2." 5. Once style is chosen, plan the slide count from the content; split any slide that would exceed density limits. 6. Build the full deck as a single HTML file: inline CSS, inline JS navigation logic, no CDN links. 7. Verify every slide fits one viewport -- no scroll overflow. 8. Deliver the file with a one-line usage note: "Double-click to open in any browser. Use arrow keys or swipe to navigate." ## Ready-to-use prompt ``` Build me a presentation as a single HTML file that opens in a browser. Topic and content: [paste your text here] Do NOT write the full presentation first. Start by showing me 3 preview slides in three visually distinct styles so I can choose. Hard rules for every slide: 1. Each slide fits one screen -- no scrolling, no scrollbar. 2. If there is too much text, split it across multiple slides, do not shrink the font. 3. Regular slides: maximum 4-6 bullets. 4. Wire up arrow-key navigation, scroll wheel, and phone swipe from the start. 5. No default purple gradients, no system fonts. 6. Pack everything into one self-contained HTML file -- no external dependencies. After I pick a style, build the complete deck following those rules. ``` ## Pitfalls - Generating the full deck before showing style previews -- the user will ask for 10 rounds of restyling. - Cramming more than 6 bullets onto one slide instead of splitting it. - Describing the style goal in words ("clean but modern") and asking the agent to interpret it -- always use visual previews. - Adding a scrollbar inside a slide -- that is a broken slide during a live presentation. - Converting a PowerPoint without a style-picking step -- the result just wraps the old template in HTML. - Linking to external scripts or CDN resources -- the file will break offline or on a locked corporate network.