
Lightweight 3d Effects
Add lightweight Vanta.js, Zdog, and Vanilla-Tilt patterns to marketing heroes, cards, and landing pages without heavy WebGL frameworks.
Overview
Lightweight 3D Effects is an agent skill for the Build phase that teaches production HTML/CSS/JS patterns combining Vanta.js, Zdog, and Vanilla-Tilt for heroes, cards, and marketing layouts.
Install
npx skills add https://github.com/freshtechbro/claudedesignskills --skill lightweight-3d-effectsWhat is this skill?
- Eight production pattern chapters: heroes, product cards, portfolios, dashboards, marketing, e-commerce, SaaS landings,
- Combines Vanta.js animated backgrounds, Zdog canvas logos, and Vanilla-Tilt on CTAs in one split-hero example
- Includes split-hero, tilt buttons, and layered z-index layout recipes with inline HTML and CSS
- Targets trust-building marketing UI for SaaS and e-commerce without a full 3D engine
- Documents performance-oriented patterns for keeping effects lightweight in production
- 8 production pattern chapters in the table of contents
Adoption & trust: 757 installs on skills.sh; 227 GitHub stars; 2/3 security scanners passed (skills.sh audits).
What problem does it solve?
You want modern 3D-feel UI on a landing page or storefront but full WebGL stacks feel too heavy, slow, or hard for a solo builder to ship.
Who is it for?
Indie SaaS or e-commerce founders polishing marketing pages and portfolios with animated backgrounds and tilt interactions.
Skip if: Teams needing complex game-grade 3D scenes, native mobile-only UI, or backend-only work with no front-end surface.
When should I use this skill?
User wants lightweight 3D or motion effects on heroes, cards, portfolios, dashboards, or SaaS/e-commerce marketing pages using Vanta, Zdog, or Vanilla-Tilt.
What do I get? / Deliverables
You get chaptered, copy-ready hero, card, and page layouts with the three libraries wired together plus performance guidance you can drop into your repo.
- Hero and card layout snippets
- Combined Vanta + Zdog + tilt interaction patterns
- Performance-oriented effect wiring notes
Recommended Skills
Journey fit
How it compares
Use instead of importing a full Three.js scene when you only need marketing-grade depth and motion on static pages.
Common Questions / FAQ
Who is lightweight-3d-effects for?
Solo and indie builders using Claude Code, Cursor, or Codex who own front-end marketing pages and want lightweight 3D-style effects without a dedicated 3D team.
When should I use lightweight-3d-effects?
During Build when you are implementing SaaS heroes, product cards, dashboards, or e-commerce landings; also when refreshing Launch-facing pages that need visual punch before distribution.
Is lightweight-3d-effects safe to install?
Treat it as procedural documentation and example snippets—review the Security Audits panel on this Prism page and vet any CDN script URLs before production.
SKILL.md
READMESKILL.md - Lightweight 3d Effects
# Lightweight 3D Effects - Production Examples Real-world patterns and examples combining Vanta.js, Zdog, and Vanilla-Tilt for production applications. --- ## Table of Contents 1. [Hero Sections](#1-hero-sections) 2. [Product Cards](#2-product-cards) 3. [Portfolio Layouts](#3-portfolio-layouts) 4. [Interactive Dashboards](#4-interactive-dashboards) 5. [Marketing Pages](#5-marketing-pages) 6. [E-Commerce](#6-e-commerce) 7. [SaaS Landing Pages](#7-saas-landing-pages) 8. [Performance Patterns](#8-performance-patterns) --- ## 1. Hero Sections ### Example 1.1: Split Hero with Vanta + Zdog Logo **Use Case**: SaaS landing page with animated background and brand icon ```html <div class="hero-split"> <div id="vanta-bg"></div> <div class="hero-content"> <canvas class="logo-zdog" width="200" height="200"></canvas> <h1>Welcome to Your Product</h1> <p>Tagline describing your amazing service</p> <button class="cta-button tilt-btn" data-tilt>Get Started</button> </div> </div> ``` ```css .hero-split { position: relative; min-height: 100vh; display: flex; align-items: center; justify-content: center; } #vanta-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; } .hero-content { text-align: center; z-index: 1; color: white; } .logo-zdog { display: block; margin: 0 auto 2rem; filter: drop-shadow(0 10px 30px rgba(0,0,0,0.3)); } .cta-button { padding: 1rem 3rem; font-size: 1.2rem; background: rgba(255, 255, 255, 0.2); color: white; border: 2px solid white; border-radius: 50px; cursor: pointer; backdrop-filter: blur(10px); transform-style: preserve-3d; } ``` ```javascript // Vanta background VANTA.NET({ el: "#vanta-bg", mouseControls: true, touchControls: true, color: 0x3fafff, backgroundColor: 0x23153c, points: 10, maxDistance: 20 }); // Zdog logo const logoIllo = new Zdog.Illustration({ element: '.logo-zdog', zoom: 3, dragRotate: false }); // Create your brand icon here const logo = new Zdog.Shape({ addTo: logoIllo, path: [ { x: -30, y: -30 }, { x: 30, y: -30 }, { x: 0, y: 30 } ], closed: true, stroke: 8, color: '#fff', fill: true }); function animate() { logo.rotate.y += 0.02; logoIllo.updateRenderGraph(); requestAnimationFrame(animate); } animate(); // Tilt button VanillaTilt.init(document.querySelector(".cta-button"), { max: 15, glare: true, "max-glare": 0.5, scale: 1.1 }); ``` --- ### Example 1.2: Full-Screen Hero with Scroll Indicator **Use Case**: Portfolio site with immersive background and scroll prompt ```html <section class="hero-fullscreen"> <div id="vanta-bg"></div> <div class="hero-content"> <h1 class="hero-title">Creative Developer</h1> <p class="hero-subtitle">Building beautiful experiences</p> <div class="scroll-indicator"> <canvas class="scroll-zdog" width="60" height="80"></canvas> <span>Scroll to explore</span> </div> </div> </section> ``` ```javascript // Vanta clouds VANTA.CLOUDS({ el: "#vanta-bg", skyColor: 0x68b8d7, cloudColor: 0xadc1de, speed: 0.5 }); // Animated scroll indicator const scrollIllo = new Zdog.Illustration({ element: '.scroll-zdog', zoom: 2 }); // Mouse with scrolling animation const mouse = new Zdog.RoundedRect({ addTo: scrollIllo, width: 20, height: 30, cornerRadius: 10, stroke: 2, color: '#fff' }); const wheel = new Zdog.Ellipse({ addTo: scrollIllo, diameter: 4, translate: { y: -8 }, stroke: 2, color: '#fff', fill: true }); let wheelY = -8; function animate() { wheelY += 0.5; if (wheelY > 8) wheelY = -8; wheel.translate.y = wheelY; scrollIllo.updateRenderGraph(); requestAnimationFrame(animate); } animate(); ``` --- ## 2. Product Cards ### Example 2.1: Pricing Cards with Tilt + Zdog Icons **Use Case**: SaaS pricing page with interactive plan cards ```html <div class="pricing-grid"> <div class="pricing-card tilt-card" data-tilt>