Website profiles · Technology insights · Alternatives

useanimations.com

300 free micro animations for UI: an animated icon library for React, shadcn/ui and Lottie with hover, click and loop built in. MIT.

No paid content found Multilingual
Visit website
Profile views 1 Outbound visits 0 Normal
useAnimations Full homepage screenshot

At a glance

Category
Icons & Fonts
Language
English
Paid-content signal
No paid content foundObserved
Registered
2019
Hosting
NetlifyInferred
HTTPS certificate trusted
PassedObserved
Last updated

Website review

This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.

What is useAnimations?

useAnimations is a free library of 300 animated icons for interfaces. Instead of static SVGs, each icon ships with a built-in micro-interaction—hover, click, loop, or replay—so it moves the way it was designed to without extra animation work. It is MIT licensed and offered as React components, shadcn/ui additions, or downloadable SVG and Lottie JSON files. The project describes a player at roughly 8 kB gzipped with zero dependencies.

What you get

  • 300 icons across common UI categories—alerts, notifications, navigation, forms, media, commerce, loading, social, and more.
  • Six built-in interactions you select with a prop: loop (continuous, for loaders and ambient status), click-toggle (menu/close, play/pause), click-replay (feedback on every click), hover (forward on enter, back on leave), hover-loop (loops while hovered, finishes on leave), and hover-replay (plays once per enter).
  • Multiple delivery formats: a React component via npm i react-useanimations, shadcn/ui integration, or direct SVG/Lottie JSON downloads.
  • Styling controls for custom color and size.

Who it suits

Situation Fit
React or shadcn/ui project needing quick motion polish Strong—install and import, interactions are preconfigured
Designer handing Lottie or SVG assets to a developer Useful—downloads work outside React
Product with strict performance or bundle budgets Check the player cost against your own budget
Team wanting fully custom motion design Less ideal—you get predefined animations, not a blank canvas

A practical example: a dashboard that shows a sync status could use interaction="loop" on a loading icon, while a settings menu uses interaction="click-toggle" for the burger-to-close transition—both without writing animation code.

How to decide

Start by browsing the icon set and filtering by interaction type to see whether the specific motion you need already exists. If you are in React or shadcn/ui, the component route is the least effort; if you are on another stack, download the Lottie or SVG and wire up the interaction yourself. The main trade-off is convenience versus control: you get consistent, ready-made micro-animations quickly, but your motion vocabulary is limited to what the library provides.

How do I add animated icons to a React project with useAnimations?

Install the package, import individual icons, and choose an interaction prop. useAnimations ships animated icons as React components with the behavior built in, so you do not wire up keyframes or state yourself.

npm i react-useanimations
import { AlertCircle } from 'react-useanimations';

export default function SaveButton() {
  return <AlertCircle size={24} interaction="hover" />;
}

Pick the interaction that matches the moment

The interaction prop is the main decision. Each icon already knows how it is meant to move, and you can override it with a single prop.

Interaction Behavior Good for
loop Plays continuously Loaders, ambient status
click-toggle Switches between two states Menu/close, play/pause
click-replay Restarts on every click Action feedback
hover Forward on enter, back on leave Navigation, secondary actions
hover-loop Loops while hovered, finishes on leave Emphasized controls
hover-replay Plays once on each enter Discoverable accents

A practical default: use hover for anything in a nav bar or toolbar, click-toggle for stateful controls, and loop only where the user expects motion without interacting. Continuous motion in a dense form will read as noise.

Style and sizing

The components are described as small and accessible, with zero dependencies and a gzipped player around 8 kB. You control color and size, so the icons inherit your design tokens rather than fighting them. For shadcn/ui projects, the library is designed to slot in alongside your existing components; for non-React work, the same icons are downloadable as SVG or Lottie JSON.

A realistic first pass

Start with three icons in one screen: a click-toggle burger menu, a hover chevron in a dropdown trigger, and a loop spinner on a pending request. That covers the three interaction families you will use most, and it shows quickly whether the motion feels right at your sizes.

If you want to browse before installing, the icon index at useAnimations lets you filter by interaction and category, and each icon page shows its code plus SVG, Lottie JSON and ZIP downloads. The same set is also useful for non-React stacks where you would drop in the Lottie file with a player such as Lottie or the SVG directly in markup.

How do I use useAnimations icons with shadcn/ui?

useAnimations ships a shadcn/ui integration path: you add the animated icon as a component and control its motion with an interaction prop rather than writing your own animation logic. The library describes 300 icons, six built-in interactions (loop, click-toggle, click-replay, hover, hover-loop, hover-replay), a gzipped player around 8 kB, zero dependencies and an MIT licence, with output available as a React component, a shadcn addition, or downloadable SVG and Lottie JSON.

The practical workflow

  1. Install the package with the command shown on the site, npm i react-useanimations (or your package manager's equivalent).
  2. Import the specific icon you need rather than the whole set, so bundlers only pull in what you use.
  3. Render it like any React component and pass interaction="..." to choose the behaviour. The default is whatever interaction that icon was designed for, so a loader icon loops and a menu icon toggles unless you override it.
  4. Style it with your existing system — the site notes custom colour and size, which in a shadcn project usually means passing your Tailwind-driven classes or CSS variables through rather than hard-coding values.
  5. Use the shadcn route if you prefer owning the source: adding it through shadcn puts the component in your codebase so you can edit it like your other UI primitives. The React package route keeps it as a dependency you upgrade. Choose based on whether you want to fork the code or track upstream.

Choosing an interaction for a real interface

Situation Sensible interaction Why
Button that submits or refreshes click-replay Confirms the click registered
Menu button opening a drawer click-toggle Two states map to open/closed
Icon button in a toolbar hover Plays forward, reverses on leave, no state to manage
Loading placeholder or status dot loop Continuous motion reads as "working"
Card or row the user is considering hover-replay Draws the eye without holding state

Accessibility and restraint

Animated icons are decoration plus feedback, not information. If an icon conveys a state, keep a text label or aria-label alongside it, and respect prefers-reduced-motion in your own wrapper — a looping icon in a dense table can be genuinely distracting. On a dashboard with twenty rows, one looping icon is a signal; twenty is noise. Reserve continuous motion for things that are actually in progress.

If you want a second animated-icon source to compare interaction models and licensing, LottieFiles is the official home of the Lottie format this library exports to.

What are the differences between the six interaction types like hover, click-toggle, and loop?

The six interaction types decide when an animation plays, not what the icon looks like. Each icon ships with a sensible default, and you can override it with a single interaction prop.

Interaction Trigger Behavior Typical use
loop None Plays continuously Loaders, ambient status, "syncing"
click-toggle Click Switches between two states Menu ↔ close, play ↔ pause
click-replay Click Restarts from the beginning each click Confirming an action landed
hover Pointer enter/leave Plays forward on enter, reverses on leave Navigation arrows, chevrons
hover-loop Pointer enter Loops while hovered, finishes its cycle on leave Attention-seeking but reversible
hover-replay Pointer enter Plays once from the start on every enter Repeated, non-reversible feedback

The practical split is between state-switching (click-toggle), where the icon must communicate which of two states is active, and one-shot feedback (click-replay, hover-replay), where the motion is a confirmation rather than information. hover and hover-loop sit in between: they respond to attention, and hover is the safer choice when the icon also needs to look correct in a static screenshot, since it returns to rest.

For a concrete scenario: a dark-mode toggle in a settings panel wants click-toggle, because the icon must stay in the "on" position after the click. A "refresh" button wants click-replay, because the motion signals that the request was accepted while the icon itself stays put. A decorative arrow in a carousel wants hover, because reversing on leave keeps the interface feeling responsive rather than stuck mid-animation.

Next step: pick the interaction by asking whether the icon represents a state or an event. States get click-toggle; events get click-replay or hover-replay; ambient processes get loop. You can preview all six on the icon pages at useAnimations, where each icon lists its code and downloads for React, shadcn/ui, SVG and Lottie JSON.

Can I customize the color and size of useAnimations icons, and how?

Yes. useAnimations is built to be styled rather than locked down: the page lists a custom color control and a size filter alongside the icon browser, and describes the set as "yours to style." You can recolor and resize icons through the component props in React, or by editing the SVG and Lottie files you download.

How customization works in practice

  • In React: install the package (npm i react-useanimations), import an individual icon, and pass color and size values as props on the component. The page's demo mentions switching the interaction with a single prop, which tells you the API is prop-driven — color and size follow the same pattern.
  • In shadcn/ui: add the icon through the shadcn workflow, then style it with the same props or with your existing utility classes and theme tokens.
  • As files: download SVG or Lottie JSON from an individual icon page and edit the fill/stroke colors or dimensions directly in your design tool or code. This suits static sites, Framer, After Effects or any stack that isn't React.

Choosing an approach

Your situation Best route Trade-off
React or shadcn/ui app Component with color/size props Tied to the package version
Non-React stack or email/static HTML Downloaded SVG You maintain the file yourself
Motion design or video Lottie JSON Needs a Lottie player; heavier than SVG
Theming across a design system Props mapped to CSS variables or theme tokens Requires an initial setup pass

A concrete case: a dashboard team using shadcn/ui wants alert icons that match their brand red and sit at 20px in a table but 48px in an empty state. They import one icon component, bind color to their destructive token and size to a prop, and get both sizes without duplicating assets. A marketing developer building a static landing page instead grabs the SVG and sets fill in CSS — no React needed.

Next step: open a single icon page on useAnimations, check the code snippet shown there, and confirm the exact prop names before wiring it into your theme.

How can I download useAnimations icons as SVG or Lottie JSON for non-React projects?

Yes. useAnimations is not React-only: on useAnimations, each icon page offers downloads in Lottie JSON, SVG and ZIP alongside the React component, so you can pull assets into plain HTML, Vue, Svelte, native mobile, or a design tool without installing the npm package.

How to get the files

  1. Open the icon library and search or filter by interaction type (loop, click toggle, click replay, hover, hover replay, hover loop) and category.
  2. Open the individual icon — the site says the icon detail view is where its code and downloads live.
  3. Choose the format you need: Lottie JSON for animation players, SVG for static or hand-built animation, ZIP if you want the bundled asset set.

Which format fits which project

Format Best for Trade-off
Lottie JSON Web and mobile apps using a Lottie player; keeps the built-in motion intact Needs a Lottie runtime in your stack; JSON is less editable by hand
SVG Plain HTML/CSS, icon systems, design tools; easy to recolor and resize You lose the authored interaction unless you rebuild it in CSS or JS
ZIP Bulk import into a repo or design library You still have to wire up playback yourself

The built-in interactions are the main reason to use this set rather than a generic icon pack: each icon ships with the behaviour it was designed for, so a loader loops and a menu button toggles between two states. Outside React, that behaviour is not automatic — if you download the Lottie JSON you get the animation but you must trigger it with your player (play on hover, replay on click, and so on). If you download the SVG, you get the artwork and nothing else.

Licensing is permissive: the library is MIT-licensed, so commercial use and modification are generally fine, though you should keep the licence notice with redistributed assets.

A practical next step: pick one icon you actually need, such as a loader or a menu toggle, download both the Lottie JSON and the SVG, and test which one your framework handles with less code. For a Vue or Svelte app, a Lottie player plus the JSON is usually the faster route; for a static marketing page, the SVG with a small CSS animation is often lighter.

Related questions

More questions →
What built-in interactions do useAnimations icons support?

useAnimations ships every icon with one of six built-in interactions, and you can swap the default for another with a single interaction prop. The six options are loop, click-toggle, click-replay, hover, hover-loop, and hover-replay. Pick based on what should trigger the motion and whether the icon needs to hold a state or just give feedback.

The six interactions

interaction value Trigger Behavior Typical use
loop None (automatic) Plays continuously Loaders, ambient status
click-toggle Click Switches between two states Menu/close, play/pause
click-replay Click Replays from the start on every click Action feedback
hover Pointer enter/leave Plays forward on enter, back on leave Subtle affordance on cards or buttons
hover-loop Pointer enter/leave Loops while hovered, finishes its cycle on leave Drawing attention to an interactive element
hover-replay Pointer enter Plays once from the start on every enter Repeated hover feedback

Each icon "ships with the interaction it was designed for," so the default already fits the icon's purpose — you only change it when your context calls for something different.

How to choose

  • No user action needed? Use loop. It runs on its own, which suits loaders and status indicators.
  • Two visual states? Use click-toggle. The icon flips between them on each click — the natural fit for menu/close or play/pause.
  • One-shot feedback on click? Use click-replay. It restarts the animation every time, so the user sees a response to their action.
  • Motion tied to pointing? The three hover variants differ in how they end: hover reverses back on leave, hover-loop completes its current cycle after you move away, and hover-replay restarts on each new enter.

Switching the interaction

Set the interaction prop to any of the six values. For example, to make an icon loop continuously:

<SomeIcon interaction="loop" />

The prop is the single point of control — the icon component, its animation data, and its styling stay the same.

What you get alongside the interactions

  • 300 icons, hand-crafted, with the interaction built in.
  • Zero dependencies, and the player is about 8 kB gzipped.
  • MIT licensed, so you can use and modify them freely.
  • Multiple delivery formats: a React component, shadcn/ui integration, or downloadable SVG and Lottie JSON (plus ZIP). Install via npm i react-useanimations.
  • Customizable: color and size are adjustable, and the icons are described as accessible and yours to style.

If you want to see the motion before committing, the site lets you hover or click icons in the library and open any icon for its code and downloads.

How to Use Ahrefs for Your First SEO Audit: A Step-by-Step Tutorial

If you're new to Ahrefs and want to run your first SEO audit, the fastest path is: open Site Explorer, enter your target URL, review the Overview for a health snapshot, then dig into Organic Keywords, Top Pages, and Site Audit to find specific problems. From there, build a short prioritized to-do list instead of trying to fix everything at once.

This tutorial walks through that workflow using a realistic starting scenario, explains what the numbers mean, and shows how to turn findings into actions.

Before You Start: Pick a Narrow Scope

A common beginner mistake is auditing an entire large website on day one. The reports become overwhelming, and you can't tell which issues matter.

Instead, choose one of these starting points:

  • A single important page (your homepage or a key product/service page)
  • A small site (under ~50 pages, e.g., a personal blog or small business site)
  • One section of a bigger site (e.g., /blog/)

For this tutorial, assume you're auditing a small business site with about 30 pages. The same steps scale up later.

You'll need an Ahrefs account to follow along. Ahrefs offers paid plans, and pricing and feature limits change over time, so check the current Pricing page for what's included in each tier before committing.

Step 1: Enter Your Target in Site Explorer

Site Explorer is Ahrefs' core tool for analyzing any website or URL.

  1. Open Site Explorer from the top navigation.
  2. In the search box, paste your domain (e.g., example.com).
  3. Choose the Exact URL or Domain mode depending on scope. For a full-site view, use Domain or Prefix; for a single page, use Exact URL.
  4. Press Enter.

You'll land on the Overview report. Don't try to absorb everything — focus on four numbers first.

Reading the Overview Snapshot

Metric What it tells you How to use it
Ahrefs Rank (AR) Relative strength of the site's backlink profile vs. others in the database Useful for comparing against competitors, not as a standalone goal
Organic traffic Estimated monthly visits from search A rough trend indicator, not exact analytics
Organic keywords Estimated number of keywords the site ranks for Shows breadth of visibility
Backlinks / Referring domains Total links and unique sites linking to you Referring domains matter more than raw backlink count

Important caveat: Ahrefs' traffic and keyword numbers are estimates based on its own data. They won't match Google Search Console or your analytics exactly. Treat them as directional, not absolute.

Step 2: See What You Already Rank For

Go to Organic Keywords in the left sidebar. This shows queries where your site appears in search results.

Sort by Traffic (descending) to see which pages bring the most estimated visitors. Then look for:

  • Keywords ranking in positions 4–15 — these are often the easiest wins. A small content or on-page improvement can push them onto page one.
  • Keywords with high volume but low position — potential opportunities if the topic is relevant.
  • Irrelevant keywords — if you rank for something off-topic, it may signal thin or mismatched content.

Write down 5–10 of the position 4–15 keywords. These become your first optimization targets.

Step 3: Find Your Best and Weakest Pages

Open Top Pages. This ranks your URLs by estimated organic traffic.

Look for two things:

  1. Your top performers — understand what topics and formats work. Can you create more content like this?
  2. Pages with traffic but poor rankings — these may need on-page fixes (title, headings, internal links).

If a page gets zero traffic and targets a topic you care about, it's a candidate for a rewrite or consolidation.

Step 4: Run a Technical Site Audit

Now move to Site Audit. This crawls your site and flags technical and on-page issues.

  1. Click Site Audit → New project.
  2. Enter your domain and set crawl settings (default is usually fine for a small site).
  3. Start the crawl and wait for it to finish.

Once complete, you'll see a Health Score and a list of issues grouped by category.

Which Issues to Fix First

Not all issues are equal. Prioritize in this order:

Priority Issue type Why it matters
1 Broken links (404s) Bad for users and crawl efficiency
2 Pages blocked from indexing They can't rank at all
3 Missing or duplicate title tags Directly affects click-through and relevance
4 Slow-loading pages Affects experience and rankings
5 Thin content Low value to users and search engines

Ignore low-impact warnings (like minor meta description length) until the big items are handled.

Step 5: Turn Findings Into a To-Do List

You now have raw data. Convert it into a short, actionable list. Example:

  1. Fix 3 broken links found in Site Audit.
  2. Rewrite title tags on 5 pages with duplicate titles.
  3. Improve 4 pages ranking in positions 6–12 by adding missing subtopics and internal links.
  4. Remove or update 2 thin pages with no traffic.

Keep the list to 5–10 items max for your first audit. Finishing a short list beats starting a long one.

Common Beginner Mistakes

  • Chasing every red flag. Site Audit flags many minor issues. Fix what affects rankings and users first.
  • Trusting estimates as exact numbers. Ahrefs data is modeled, not measured from your analytics.
  • Auditing a huge site too early. Start small to learn the interface.
  • Ignoring search intent. A page can be technically perfect but still fail if it doesn't match what searchers want.
  • Forgetting to re-crawl. After fixes, run Site Audit again to confirm improvements.

Where to Go Next

Once your first audit is done:

  • Compare with competitors using Site Explorer's Competing Domains and Content Gap reports.
  • Track keyword rankings over time with Rank Tracker.
  • Explore backlink opportunities in the Backlinks and Link Intersect reports.
  • Set up recurring Site Audit crawls so new issues surface automatically.

Your first audit isn't about perfection — it's about building a repeatable habit: enter a target, read the key reports, pick the highest-impact fixes, and act. Do that once a month and your site's health compounds.

How to Install and Use useAnimations Icons in React or shadcn/ui

Install the package with npm i react-useanimations, import the icon component you want, and render it with an interaction prop. That's the whole loop for React. For shadcn/ui, you add the icon the same way — it's a standard React component, so it drops into any shadcn component tree. If you're not on React at all, you can skip the package and download the SVG or Lottie JSON directly from the site.

What you're working with

useAnimations is a library of 300 hand-crafted micro animations for UI. Each icon ships with the interaction it was designed for, so you don't wire up animation logic yourself — you pick an interaction and it works. The library is MIT licensed, has zero dependencies, and the player is about 8 kB gzipped.

The icons are distributed three ways:

  • React component — via the react-useanimations package
  • shadcn/ui — added as a component in your shadcn setup
  • Raw files — SVG and Lottie JSON downloads for any other environment

Install and render in React

Step 1 — Install the package.

npm i react-useanimations

Step 2 — Import the icon you need. Each icon is its own component, so you import by name rather than pulling the whole set.

Step 3 — Render it with an interaction prop. The interaction prop controls the behavior. If you don't pass one, the icon uses the interaction it was designed for.

import { AlertCircle } from 'react-useanimations';

export default function Status() {
  return <AlertCircle interaction="loop" />;
}

Expected result: the icon renders and plays according to the interaction you set. Change the prop to switch behavior — no extra wiring.

The six built-in interactions

Every icon supports these, and you select one with a single prop.

interaction value What it does Good for
loop Plays continuously Loaders, ambient status
click-toggle Switches between two states (menu/close, play/pause) Toggles
click-replay Replays from the start on every click Click feedback
hover Plays forward on enter, back on leave Hover affordances
hover-loop Loops while hovered, finishes its cycle on leave Attention on hover
hover-replay Plays once from the start on every enter Repeated hover feedback

The prop is the only thing you change to move between these — the icon itself stays the same.

Using icons in a shadcn/ui project

Because each icon is a plain React component, it composes into shadcn/ui the same way any other component does. Add it inside your shadcn components (buttons, dropdown items, nav links) and pass the interaction prop where you want motion.

The practical difference from a bare React app is placement, not setup: you're dropping the animated icon into slots that shadcn already styles, so check that the icon's size and color fit the surrounding component. The library supports custom color and size, so you can match it to your theme rather than fighting the defaults.

Using SVG or Lottie outside React

If your project isn't React, you don't need the npm package. Open any icon on the site and you get its code plus downloads:

  • SVG — for static or CSS-driven use
  • Lottie JSON — for players like lottie-web in any framework
  • ZIP — bundled assets

This is the path for Vue, Svelte, plain HTML, or design handoff.

Finding the right icon

The library is browsable by interaction type and by category. Categories include Alerts, Notifications, Navigation, Action, Content, Form, Media, Text editing, Communication, Devices, Weather, Maps & location, Commerce, Charts, Development, Design & layout, Shapes & math, Loading, Social media, and Other.

To narrow down:

  1. Filter by interaction if the behavior matters more than the glyph (e.g. everything that loops).
  2. Filter by category if you know the semantic slot (e.g. Navigation).
  3. Use search for a specific concept.
  4. Open an icon to get its code and downloads.

Common snags

  • Wrong interaction for the context. A loop icon in a static toolbar reads as a loading state. Match the interaction to intent — hover for affordances, click-toggle for state switches.
  • Assuming you must use the package. You don't. SVG and Lottie JSON cover non-React stacks.
  • Ignoring size and color. The icons are styleable; set these to fit your UI instead of accepting defaults that clash.
  • Forgetting the license is permissive. MIT means you can use and modify them, but keep attribution expectations in mind for your own distribution.
How to Find the Right Animated Icon in useAnimations

The fastest way to find an icon on useAnimations is to combine three tools on the library page: the search box for name matching, the Interaction filter for behavior, and the category list for browsing. If you already know the icon name, search it directly. If you know how it should behave but not what it looks like, filter by interaction first. If you're exploring, browse by category. Once you open an icon, you get its code and download options (Lottie JSON, SVG, and ZIP).

Search by icon name

Use the search box when you have a specific icon in mind — for example, a notification bell or a burger menu.

  1. Go to the library section of useAnimations.
  2. Type the icon name into the Search icons field.
  3. Scan the results, which show the icon, its name, and its interaction type.

The results list labels each icon with its interaction (for example, "Loop," "Click," or "Hover"), so you can confirm you've found the right behavior before opening it.

Filter by interaction type

If your decision is driven by how the icon should move rather than what it depicts, filter by interaction. useAnimations ships six built-in interactions, and each icon is designed around one of them:

Interaction Behavior Typical use
loop Plays continuously Loaders, ambient status
click-toggle Switches between two states (menu/close, play/pause) Toggle controls
click-replay Replays from the start on every click Click feedback
hover Plays forward on enter, back on leave Hover affordances
hover-loop Loops while hovered, finishes its cycle on leave Attention on hover
hover-replay Plays once from the start on every enter Repeated hover feedback

To filter: open the Interaction dropdown and select one option (or All interactions to see everything). The grid updates to show only icons with that behavior.

A practical note: the interaction is built in, but you can override it with a single prop when using the React component — so an icon's default interaction isn't a hard constraint. Filtering is still the quickest way to find icons that were designed for the motion you want.

Browse by category

When you don't have a name or behavior in mind, browse by category. useAnimations organizes its 300 icons into groups including:

  • Alerts
  • Notifications
  • Navigation
  • Action
  • Content
  • Form
  • Media
  • Text editing
  • Communication
  • Devices
  • Weather
  • Maps & location
  • Commerce
  • Charts
  • Development
  • Design & layout
  • Shapes & math
  • Loading
  • Social media
  • Other

Pick the category closest to your UI context, then scan the grid. Each card shows the icon and its interaction label, so you can judge both look and motion at a glance.

Open an icon for code and downloads

Clicking any icon card opens its detail view. This is where you get what you actually need to ship it:

  • Code — the snippet for using the icon (for example, as a React component or via shadcn/ui).
  • Downloads — Lottie JSON, SVG, and a ZIP.

If you're working in React, the package install command shown on the site is:

npm i react-useanimations

The library is MIT licensed, has zero dependencies, and the player is about 8 kB gzipped — useful context if bundle size is part of your decision.

A quick decision path

  • Know the name? → Search.
  • Know the behavior? → Filter by Interaction.
  • Know the context but not the icon? → Browse by category.
  • Ready to use it? → Open the icon for code and downloads.

One caveat worth checking yourself: the site lists 300 icons and six interactions, but not every category is guaranteed to contain every interaction. If you need a specific combination (say, a hover-loop icon in Commerce), filter by interaction first and then scan the categories in the results rather than the other way around.

Are useAnimations Icons Free, Lightweight, and Customizable?

Yes on all three counts, based on the site's own description. useAnimations ships 300 animated icons under the MIT license, with a player that is about 8 kB gzipped and has zero dependencies, and the icons support custom color and size. The MIT license is the part that matters most for commercial work: it permits use, modification, and redistribution, typically requiring only that the copyright notice and license text are preserved. If you need a permissive, no-cost animated icon set for a React or shadcn/ui project, this fits. If you need guaranteed long-term support, a formal SLA, or a vendor to hold accountable, a free MIT library is not that — you would be relying on the community and the repository.

License: what MIT means for your project

The site states the library is MIT licensed. In practice that means:

  • You can use the icons in personal and commercial projects.
  • You can modify them and redistribute them.
  • You generally must keep the license and copyright notice with the code.

The site does not describe any paid tier, account requirement, or usage cap, so there is no indication of a commercial-use restriction. It also does not state anything about attribution requirements beyond the license itself, so treat the standard MIT notice as the requirement rather than assuming attribution is optional.

Size: what the 8 kB figure covers

The published numbers are:

Metric Value
Player size ~8 kB gzipped
Dependencies 0
Icons 300

The 8 kB applies to the player, not to every icon you import. That distinction matters: the player is the shared runtime, and individual icons are separate assets. Zero dependencies means the library does not pull in a chain of transitive packages, which keeps your bundle predictable and avoids version conflicts.

For a concrete sense of scale: adding the player plus a handful of icons is a small addition next to most UI libraries. If you import many icons, check your bundler's output rather than assuming the total stays at 8 kB.

Customization: color, size, and styling

The library exposes custom color and size controls, and the site describes the icons as "yours to style." That means you can match them to your design tokens instead of being locked to a fixed palette.

The icons are also described as accessible. The site does not detail the specific accessibility implementation, so verify the rendered markup in your own project — particularly whether icons that convey meaning have appropriate labels and whether purely decorative ones are hidden from assistive technology.

Interactions you get without extra code

Each icon ships with the interaction it was designed for, and you can switch interactions with a single prop. The documented set:

  • loop — plays continuously, for loaders and ambient status.
  • click-toggle — switches between two states, such as menu and close, or play and pause.
  • click-replay — replays from the start on every click, as feedback.
  • hover — plays forward on enter and back on leave.
  • hover-loop — loops while hovered and finishes its cycle on leave.
  • hover-replay — plays once from the start on every enter.

The practical benefit is that you are not wiring animation state by hand for common cases. The trade-off is that these are the built-in behaviors; anything more custom means working with the underlying SVG or Lottie assets.

Formats and integration paths

The site lists three ways to consume the icons:

  1. React component — install via npm i react-useanimations, then import.
  2. shadcn/ui — add icons through the shadcn workflow.
  3. Raw assets — download SVG and Lottie JSON, or a ZIP, per icon.

If you are not on React, the SVG and Lottie downloads are the relevant path. Lottie JSON works with Lottie players across platforms; SVG gives you a static or hand-animatable asset.

When this is the right choice — and when it isn't

Choose useAnimations if you want a permissive license, a small dependency-free player, built-in hover/click/loop behaviors, and easy color and size control for a React or shadcn/ui interface.

Look elsewhere if you need vendor support with commitments, a large icon count beyond 300, or animation behaviors that go well past the six built-in interactions. The site does not publish pricing, so there is no paid tier described here to compare against — the offering as documented is the free MIT library.

Website Overview

An established domain and managed infrastructure suggest continuity of operations and may support dependable delivery, although neither guarantees service quality. Page metadata, canonical configuration and social previews work together to provide more consistent search and sharing presentation.

Domain and Registration

Registered in 2019, this domain has about 7 years of history. That suggests continuity, although ownership and purpose may have changed. Transfer-protection status is present, helping reduce the risk of unauthorized domain transfers. The domain uses the common .com extension, which is not an independent safety signal.

DNS and Email

The observed email authentication setup is incomplete: DMARC is missing. Nameservers are provided by gigaserver.cz, indicating managed DNS hosting. MX records point to the gigaserver.cz email service. No CNAME was found; the observed records resolve directly to addresses. TXT records include verification markers for Google. Such markers may also remain after a service stops being used.

TLS and Certificates

The public key uses EC with 256 bits. The server supplied a complete certificate chain. No organization name is present in the certificate; the available fields are consistent with domain validation. The certificate was issued by Let's Encrypt, commonly associated with automated certificate services. The certificate's total validity is about 89 days, consistent with a short renewal cycle.

HTTP and Browser Security

The response lacks these common security headers: CSP, Permissions-Policy. No X-Powered-By header was found, reducing one common source of backend fingerprinting information. No obvious internal addresses or debug information were found in the headers. The Server header contains the custom value Netlify. No explicit CDN or WAF marker was found in the response headers.

Technology Stack Analysis

The public page identifies Netlify without precise versions, leaving fewer clues for version-specific scanning.

Search and Social Sharing

Twitter Card metadata is configured. JSON-LD includes Organization data, helping describe the organization as an entity. The page declares 3 language or regional alternatives using hreflang. The title has 56 characters, within a common display range. A meta description is present, with 132 characters.

Hosting and Email

DNSgigaserver.cz
HostingNetlify
Emailgigaserver.cz
Approximate IP geolocation (inferred; a CDN or proxy may differ from the origin server) United States flagThe Dalles, Oregon, United States Inferred 104.198.14.52

Registration details

RDAP / WHOIS

RegistrarSav.com, LLC
Registered2019-01-29
Expires2027-01-29
Domain statusclient transfer prohibited
Nameservers1.ns.gigaserver.cz、2.ns.gigaserver.cz、3.ns.gigaserver.cz、4.ns.gigaserver.cz
DNSSECunsigned

DNS records

DNS

TypeNameValueTTLPriority
Auseanimations.com104.198.14.523600—
MXuseanimations.commail.gigaserver.cz360050
NSuseanimations.com1.ns.gigaserver.cz3600—
NSuseanimations.com2.ns.gigaserver.cz3600—
NSuseanimations.com3.ns.gigaserver.cz3600—
NSuseanimations.com4.ns.gigaserver.cz3600—
TXTuseanimations.comgoogle-site-verification=9sOWJPqLmMNJizccTjS-Ui1GiJTdnUcsWhj9XoFtIXc3600—
TXTuseanimations.comv=spf1 mx a include:smtp-gw.gigaserver.cz ~all3600—

TLS and certificates

TLS / SSL

AssessmentNormal configuration
Supported protocolsTLSv1.2、TLSv1.3
Negotiated protocolTLSv1.3
Certificate subjectuseanimations.com
IssuerLet's Encrypt
Valid until2027-01-09T16:13 · Remaining when checked: 87 days
Verification detailsCertificate trust: Passed · Hostname match: Passed

HTTP response headers

HTTP

HeaderValue
content-typetext/html; charset=UTF-8
cache-controlpublic,max-age=0,must-revalidate
serverNetlify
strict-transport-securitymax-age=31536000; includeSubDomains; preload
x-frame-optionsSAMEORIGIN
x-content-type-optionsnosniff
referrer-policystrict-origin-when-cross-origin

Identified technologies

Netlify

Pages, Search and Sharing

Meta description300 free micro animations for UI: an animated icon library for React, shadcn/ui and Lottie with hover, click and loop built in. MIT.
Canonical URLhttps://useanimations.com/
LanguageEnglish (default) · Multilingual
Twitter Cardsummary_large_image
All bots 1 allowed · 0 disallowed
  • Allow/
gptbot 1 allowed · 0 disallowed
  • Allow/
oai-searchbot 1 allowed · 0 disallowed
  • Allow/
claudebot 1 allowed · 0 disallowed
  • Allow/
perplexitybot 1 allowed · 0 disallowed
  • Allow/
google-extended 1 allowed · 0 disallowed
  • Allow/
bytespider 0 allowed · 1 disallowed
  • Disallow/

User reviews (0)

  • No reviews yet.