Skip to content

Material Design Web Animations Demo - Interactive grid layouts, declarative animations, and music player UI using Web Animations API. Pure vanilla JavaScript with zero dependencies.

Notifications You must be signed in to change notification settings

anton-karlovskiy/material-design-web-animations-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

63 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Material Design Web Animations Demo

License: Apache 2.0 Live Demo

A comprehensive collection of Material Design animations implemented using modern Web Animations API. This project showcases beautiful, performant animations inspired by Google's Material Design principles, featuring interactive demos for grid layouts, declarative animations, and music player interfaces.

🎯 Features

Interactive Animation Demos

  • Grid Animations: Colorful tile-based animations with smooth transitions
  • Declarative Animations: Page-based navigation with directional controls
  • Material Music Player: Full-featured music interface with album artwork and controls

Technical Highlights

  • ⚑ Web Animations API - Modern, performant animations
  • 🎨 Material Design 3 - Latest design system implementation
  • πŸ“± Responsive Design - Mobile-first approach
  • πŸš€ Zero Dependencies - Pure vanilla JavaScript
  • 🎡 Music Player UI - Complete album interface with controls

πŸš€ Quick Start

Prerequisites

  • Node.js (v14 or higher)
  • npm or yarn

Installation

# Clone the repository
git clone https://github.com/anton-karlovskiy/material-design-web-animations-demo.git
cd material-design-web-animations-demo

# Install dependencies
npm install

# Start development server
npm start

# Build for production
npm run build

Development Commands

# Start development server with live reload
npm start

# Build production files
npm run build

# Clean build directory
npm run clean

πŸ“ Project Structure

src/
β”œβ”€β”€ animations/           # Animation utilities and base classes
β”œβ”€β”€ assets/              # Images, icons, and media files
β”‚   β”œβ”€β”€ icons/           # SVG icons for UI controls
β”‚   └── images/          # Album artwork and backgrounds
β”œβ”€β”€ scripts/             # JavaScript animation implementations
β”‚   β”œβ”€β”€ grid.js          # Grid animation logic
β”‚   β”œβ”€β”€ declarative.js   # Declarative animation controls
β”‚   └── material-music.js # Music player animations
β”œβ”€β”€ styles/              # CSS styles and themes
β”‚   β”œβ”€β”€ main.css         # Core Material Design styles
β”‚   β”œβ”€β”€ grid.css         # Grid-specific animations
β”‚   β”œβ”€β”€ declarative.css  # Declarative animation styles
β”‚   └── material-music.css # Music player styles
β”œβ”€β”€ template-parts/      # Nunjucks template components
└── *.html              # Demo pages

🎨 Animation Types

1. Grid Animations

Interactive grid layouts with:

  • Ripple Effects: Material Design ripple animations
  • Color Transitions: Smooth background color changes
  • Scale Animations: Tile scaling and selection states
  • Card Transitions: Full-screen card reveals

2. Declarative Animations

Page-based navigation featuring:

  • Slide Transitions: Horizontal and vertical page sliding
  • Directional Controls: Arrow-based navigation
  • State Management: Active page highlighting
  • Smooth Easing: Custom cubic-bezier timing functions

3. Material Music Player

Complete music interface with:

  • Album Artwork: High-resolution image backgrounds
  • Play Controls: Play, pause, skip, and playlist controls
  • Track Listing: Scrollable song lists
  • Visual Feedback: Hover states and active indicators

πŸ› οΈ Technical Implementation

Web Animations API

This project leverages the modern Web Animations API for:

  • Performance: Hardware-accelerated animations
  • Control: Precise timing and sequencing
  • Compatibility: Cross-browser support
  • Flexibility: Complex animation choreography

Build System

  • Gulp: Task automation and file processing
  • Nunjucks: Template engine for HTML generation
  • BrowserSync: Live reload development server
  • Asset Optimization: CSS and JavaScript processing

Browser Support

  • βœ… Chrome 36+
  • βœ… Firefox 48+
  • βœ… Safari 13.1+
  • βœ… Edge 79+

🎯 SEO Optimization

This project is optimized for search engines with:

Meta Tags

  • Title: "Material Design Web Animations"
  • Description: Comprehensive meta descriptions
  • Open Graph: Social media sharing optimization
  • Twitter Cards: Enhanced Twitter sharing

Performance

  • Critical CSS: Inline critical styles
  • Lazy Loading: Deferred non-critical resources
  • Image Optimization: WebP and responsive images
  • Minification: Compressed assets

Accessibility

  • ARIA Labels: Screen reader support
  • Keyboard Navigation: Full keyboard accessibility
  • Color Contrast: WCAG AA compliance
  • Focus Management: Clear focus indicators

πŸ“± Live Demos

Grid Animation Demo

Experience interactive grid layouts with smooth color transitions and ripple effects.

Declarative Animation Demo

Navigate through pages with directional controls and smooth slide transitions.

Material Music Player

Explore a complete music player interface with album artwork, controls, and track listings.

🀝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

Development Setup

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit a pull request

πŸ“„ License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Google Material Design - Design system and principles
  • Web Animations API - Modern animation standards
  • Glitch - Hosting and development platform

πŸ”— Links


Keywords: Material Design, Web Animations API, CSS Animations, JavaScript Animations, Interactive UI, Music Player, Grid Layouts, Responsive Design, Modern Web Development, Animation Library, UI Components, Frontend Development, Web Performance, User Experience, Mobile-First Design

Releases

No releases published

Packages

No packages published