Index of every page on this site: llms.txt
All skills
affaan-m avatar

/frontend-slides

@90606c8
by Affaan Mustafaaffaan-m/ecc287k stars
42,569
Run it yourself

Create stunning, animation-rich HTML presentations from scratch or by converting PowerPoint files. Use when the user wants to build a presentation, convert a PPT/PPTX to web, or create slides for a talk/pitch. Helps non-designers discover their aesthetic through visual exploration rather than abstract choices.

Use this Skill: https://skilld.dev/gh/affaan-m/ecc/frontend-slides

Nothing lands on disk. Nothing to clean up.

Fork this Skill

Edit a local copy. It keeps the author and licence.

animation-patterns.md

≈1.1k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Animation Patterns Reference

Use this reference when generating presentations. Match animations to the intended feeling.

Effect-to-Feeling Guide

Feeling Animations Visual Cues
Dramatic / Cinematic Slow fade-ins (1-1.5s), large-scale transitions (0.9 to 1), parallax scrolling Dark backgrounds, spotlight effects, full-bleed images
Techy / Futuristic Neon glow (box-shadow), glitch/scramble text, grid reveals Particle systems (canvas), grid patterns, monospace accents, cyan/magenta/electric blue
Playful / Friendly Bouncy easing (spring physics), floating/bobbing Rounded corners, pastel/bright colors, hand-drawn elements
Professional / Corporate Subtle fast animations (200-300ms), clean slides Navy/slate/charcoal, precise spacing, data visualization focus
Calm / Minimal Very slow subtle motion, gentle fades High whitespace, muted palette, serif typography, generous padding
Editorial / Magazine Staggered text reveals, image-text interplay Strong type hierarchy, pull quotes, grid-breaking layouts, serif headlines + sans body

Entrance Animations

/* Fade + Slide Up (most versatile) */
.reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.6s var(--ease-out-expo),
                transform 0.6s var(--ease-out-expo);
}
.visible .reveal {
    opacity: 1;
    transform: translateY(0);
}

/* Scale In */
.reveal-scale {
    opacity: 0;
    transform: scale(0.9);
    transition: opacity 0.6s, transform 0.6s var(--ease-out-expo);
}
.visible .reveal-scale {
    opacity: 1;
    transform: scale(1);
}

/* Slide from Left */
.reveal-left {
    opacity: 0;
    transform: translateX(-50px);
    transition: opacity 0.6s, transform 0.6s var(--ease-out-expo);
}
.visible .reveal-left {
    opacity: 1;
    transform: translateX(0);
}

/* Blur In */
.reveal-blur {
    opacity: 0;
    filter: blur(10px);
    transition: opacity 0.8s, filter 0.8s var(--ease-out-expo);
}
.visible .reveal-blur {
    opacity: 1;
    filter: blur(0);
}

Background Effects

/* Gradient Mesh — layered radial gradients for depth */
.gradient-bg {
    background:
        radial-gradient(ellipse at 20% 80%, rgba(120, 0, 255, 0.3) 0%, transparent 50%),
        radial-gradient(ellipse at 80% 20%, rgba(0, 255, 200, 0.2) 0%, transparent 50%),
        var(--bg-primary);
}

/* Noise Texture — inline SVG for grain */
.noise-bg {
    background-image: url("data:image/svg+xml,..."); /* Inline SVG noise */
}

/* Grid Pattern — subtle structural lines */
.grid-bg {
    background-image:
        linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
    background-size: 50px 50px;
}

Interactive Effects

/* 3D Tilt on Hover — adds depth to cards/panels */
class TiltEffect {
    constructor(element) {
        this.element = element;
        this.element.style.transformStyle = 'preserve-3d';
        this.element.style.perspective = '1000px';

        this.element.addEventListener('mousemove', (e) => {
            const rect = this.element.getBoundingClientRect();
            const x = (e.clientX - rect.left) / rect.width - 0.5;
            const y = (e.clientY - rect.top) / rect.height - 0.5;
            this.element.style.transform = `rotateY(${x * 10}deg) rotateX(${-y * 10}deg)`;
        });

        this.element.addEventListener('mouseleave', () => {
            this.element.style.transform = 'rotateY(0) rotateX(0)';
        });
    }
}

Troubleshooting

Problem Fix
Fonts not loading Check Fontshare/Google Fonts URL; ensure font names match in CSS
Animations not triggering Verify Intersection Observer is running; check .visible class is being added
Scroll snap not working Ensure scroll-snap-type: y mandatory on html; each slide needs scroll-snap-align: start
Mobile issues Disable heavy effects at 768px breakpoint; test touch events; reduce particle count
Performance issues Use will-change sparingly; prefer transform/opacity animations; throttle scroll handlers

Source: SKILL.md on GitHub

skilld matched fixed text patterns in SKILL.md and file names. Patterns miss obfuscated code.

skilld run checks every file with the same patterns. It asks for approval before it loads a Skill with a behavior marked Needs approval.

1 warningtoday3 checks · Risk SAFE
  • Gen Agent Trust Hubtoday

    The skill is designed to generate HTML presentations and includes utilities for converting PowerPoint files and exporting to PDF. It uses standard libraries and implements security controls for its local temporary export server. The primary security consideration is the indirect prompt injection surface when processing user-provided PowerPoint files.

  • Sockettoday

    No alerts

  • Snyktoday

    Risk: MEDIUM · 1 issue

Signed by skilld at 90606c8. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 3 days ago.

Activeupdated 4 months ago
metadata
{
  "origin": "ECC"
}
  • html
  • presentations
  • slides
  • ppt
  • pptx
  • animation
  • css
  • javascript
  • responsive
  • accessibility

README badge

README badge for affaan-m/ecc/frontend-slides

Creates zero-dependency HTML presentations with animation and responsive design, running entirely in the browser. Supports building decks from scratch, converting PowerPoint files, or enhancing existing HTML slides while enforcing viewport-fit constraints and visual exploration of design direction.

Generated from the current SKILL.md.

Does this skill convert PowerPoint files to HTML?
Yes. The skill uses python-pptx to extract text, images, and notes from .ppt or .pptx files, then builds an HTML presentation from the extracted content. It falls back to manual export if python-pptx is unavailable.
Can I use external libraries or dependencies?
No. The skill defaults to zero-dependency, self-contained HTML files with inline CSS and JavaScript. External fonts may come from Google Fonts or Fontshare, but no build tools or npm packages.
What happens if my content doesn't fit on one slide?
The skill splits content across multiple slides rather than allowing scrolling. Viewport fit is a hard requirement: every slide must display fully within the browser window without internal scrollbars.
Does the skill generate a design automatically or ask me questions first?
It uses visual exploration by default. The skill generates 3 single-slide preview files showing different styles, then asks you which preset to keep or which elements to mix, rather than using abstract questionnaires.
What navigation methods are supported?
Keyboard navigation, touch/swipe navigation, and mouse wheel navigation. The skill also includes a progress indicator and respects reduced-motion preferences.

Generated from the current SKILL.md. These answers refresh after source changes.