A beautiful, interactive tool for creating and previewing web animations with a no-code interface. Built with React, TypeScript, TailwindCSS, and Framer Motion.
- ๐ฏ Element Selection: Choose from a variety of mock webpage elements
- ๐จ Animation Presets: 9+ built-in animation types (fade, slide, scale, rotate, stagger, text-reveal)
- โ๏ธ Custom Controls: Adjust duration, delay, and easing with intuitive sliders
- ๐ Visual Timeline: See all animations on a timeline with drag-and-drop support
โถ๏ธ Live Preview: Play and reset animations in real-time- ๐ค Code Export: Generate Framer Motion or GSAP code snippets
- ๐จ Beautiful UI: Modern, clean interface with smooth animations
- Node.js 18+
- npm or yarn
-
Clone the repository
git clone <repository-url> cd simulate
-
Install dependencies
yarn install # or npm install -
Start the development server
yarn dev # or npm run dev -
Open your browser Navigate to
http://localhost:5173
- Use the dropdown in the sidebar to choose from available elements
- Elements include: Hero Title, Hero Subtitle, Hero Image, CTA Button, Feature Cards, and Stats Numbers
- Select from 9 animation presets:
- Fade In: Smooth opacity transition
- Slide Up/Down/Left/Right: Directional slide animations
- Scale In: Scale from 0 to 1
- Rotate In: Spin effect with rotation
- Stagger Up: Multiple elements with staggered timing
- Text Reveal: Character-by-character text animation
- Duration: Adjust animation length (0.1s - 3s)
- Delay: Set start delay (0s - 2s)
- Easing: Choose from 8 easing options including custom cubic-bezier curves
- Click "Add to Timeline" to add the animation
- View all animations on the visual timeline
- Remove animations by clicking the trash icon
- Use "Play" to preview all animations
- Use "Reset" to return elements to original state
- Click "Export Code" to generate Framer Motion or GSAP code
src/
โโโ components/ # React components
โ โโโ MockWebpage.tsx # Sample webpage with elements
โ โโโ ElementSelector.tsx
โ โโโ AnimationControls.tsx
โ โโโ Timeline.tsx
โ โโโ ExportModal.tsx
โโโ context/ # React Context for state management
โ โโโ AnimationContext.tsx
โโโ data/ # Mock data and presets
โ โโโ mockData.ts
โโโ types/ # TypeScript type definitions
โ โโโ index.ts
โโโ App.tsx # Main application component
โโโ main.tsx # Application entry point
- React Context: Global state management for animations
- useReducer: Predictable state updates
- TypeScript: Full type safety throughout the application
- Framer Motion: Primary animation library
- Preset System: Predefined animation configurations
- Timeline Management: Visual representation of animation timing
- Code Generation: Export to Framer Motion or GSAP
- Primary: Blue (#3B82F6)
- Secondary: Gray scale
- Accent: Purple gradients
- Success: Green (#10B981)
- Warning: Yellow (#F59E0B)
- Error: Red (#EF4444)
- Font: System UI stack
- Headings: Bold weights
- Body: Regular weights
- Code: Monospace
- Cards: Rounded corners, subtle shadows
- Buttons: Hover states, focus rings
- Inputs: Clean borders, focus states
- Modals: Backdrop blur, smooth transitions
- Edit
src/data/mockData.ts - Add new preset to
animationPresetsarray - Update the code generation logic in
ExportModal.tsx
- Add element to
mockElementsinsrc/data/mockData.ts - Add corresponding element to
MockWebpage.tsx - Ensure element has proper ID for targeting
- Modify
tailwind.config.jsfor theme changes - Update CSS variables in
src/index.css - Customize component styles in individual files
- React 19.1.1: UI library
- TypeScript 5.8.3: Type safety
- Vite 7.1.7: Build tool and dev server
- TailwindCSS 4.1.13: Utility-first CSS framework
- Lucide React: Icon library
- clsx: Conditional class names
- tailwind-merge: Tailwind class merging
- Framer Motion 12.23.22: Animation library
yarn build
# or
npm run buildyarn preview
# or
npm run previewnpx vercelnpx netlify deploy- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Framer Motion team for the amazing animation library
- TailwindCSS team for the utility-first CSS framework
- Vite team for the lightning-fast build tool
- Lucide team for the beautiful icon set
If you have any questions or need help, please:
- Open an issue on GitHub
- Check the documentation
- Review the code examples
Built with โค๏ธ using React, TypeScript, and modern web technologies.