DH
dharmeshgurnani/oat-animate
Oat Animate is a lightweight animation extension for Oat, plus a docs/demo website that showcases how to use it.
Oat Animate
Oat Animate is a lightweight animation extension for Oat, plus a docs/demo website that showcases how to use it.
This repository currently serves two purposes:
- Animation source:
oat-animate/oat-animate.cssandoat-animate/oat-animate.js - Documentation/demo website: file-based routes under
website/src/pages/*rendered by Astro
What It Does
- Adds declarative animations via the
ot-animateattribute - Supports three trigger styles: on load (
fade-up), on hover (hover:fade-up), and in view (view:fade-up) - Ships a static demo site for examples and visual testing
Supported Animations
fade-upfade-downzoom-inslide-leftslide-rightpopbounceflip-inpulseshake
Quick Start
- Install dependencies:
npm install- Run the demo site locally:
npm run dev- Open the URL shown by
serve(commonlyhttp://localhost:3000).
Usage
Add the assets to your page:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/ots-animate@latest/dist/oat-animate.min.css" />
<script src="https://cdn.jsdelivr.net/npm/ots-animate@latest/dist/oat-animate.min.js"></script>Then annotate elements:
<!-- on load -->
<div ot-animate="fade-up">Hello</div>
<!-- on hover -->
<button ot-animate="hover:pop">Hover me</button>
<!-- when entering viewport -->
<section ot-animate="view:slide-left">In view</section>Customization
You can customize animation durations, delays, and easings using CSS variables, either globally or inline.
<!-- Inline customization -->
<div ot-animate="fade-up" style="--ot-duration: 1.5s; --ot-delay: 0.5s;">
Slow and delayed!
</div>Available Variables:
--ot-duration(default:0.6s)--ot-delay(default:0s)--ot-easing(default:ease)
LLM Metadata
This project includes llms.txt metadata (per https://llmstxt.org/):
- Repository file:
./llms.txt - Deployed file:
/llms.txtfromwebsite/static/llms.txt
Development
npm run dev: runs the library asset sync and then the Astro docs site via the website package.npm run build: builds the library bundle and then the Astro site intowebsite/public/.npm run build:lib: builds only the library.npm run build:site: builds only the website (requiresnpm run build:libfirst for latest assets).
License
MIT. See LICENSE.
On this page
Languages
Astro86.6%JavaScript8.6%CSS4.8%
Contributors
MIT License
Created February 25, 2026
Updated March 10, 2026