explaingit

diary-axel-rakotoarivao/vivace

Analysis updated 2026-05-18

1SvelteAudience · developerComplexity · 2/5Setup · easy

TLDR

A small, dependency-free library that lets you add CSS animations to a webpage by writing them directly as HTML attributes.

Mindmap

mindmap
  root((vivace))
    What it does
      Attribute driven animations
      Trigger engine
      Tiny bundle size
    Tech stack
      TypeScript
      Svelte
      Cloudflare Workers
    Use cases
      Scroll animations
      Animation playground
      npm library
    Audience
      Frontend developers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Add scroll-triggered fade, slide, or spring animations to elements using only HTML attributes.

USE CASE 2

Compose and preview animations interactively using the docs site's node-based playground.

USE CASE 3

Publish the library to npm as a lightweight, dependency-free animation engine for a web project.

USE CASE 4

Browse or submit example animations to the project's community gallery.

What is it built with?

TypeScriptSvelteSCSSBunCloudflare Workers

How does it compare?

diary-axel-rakotoarivao/vivaceohmybugs/svelte-google-reviewseternal-flame-ad/alikia2x_aquavox
Stars11
LanguageSvelteSvelteSvelte
Last pushed2024-07-28
MaintenanceStale
Setup difficultyeasyeasymoderate
Complexity2/52/53/5
Audiencedeveloperdevelopergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Uses Bun for install, build, and dev commands instead of npm or yarn.

No license information is provided in the README.

In plain English

Vivace is a small library for adding CSS animations to a webpage by writing them directly as attributes on your HTML elements, instead of writing separate animation code or CSS classes. For example, adding a data-viv attribute to a div can make it fade in while sliding upward as soon as it scrolls into view, with the animation described entirely in that one attribute. According to the project description, it supports 18 different animation keys and 5 different triggers, has no external dependencies, and is under 7 kilobytes once compressed. The project is organized as a monorepo using Bun workspaces, meaning multiple related packages live in one repository and share tooling. The main package is the library itself, written in TypeScript with CSS generated from SCSS, and published to npm. A second package is a documentation website built with SvelteKit that includes a visual, node-based playground for building up animations interactively. To work on the project, you install dependencies and can build the library, run its unit tests, start the documentation site locally, or run a linter called biome, all through Bun commands. The documentation site includes a community gallery of shared animations backed by Cloudflare's D1 database, deployed through Cloudflare Workers, with submissions protected by validation, a rate limit of 5 per hour per visitor, and a check to avoid duplicates, but no CAPTCHA. Releasing new versions of the library goes through a tool called Changesets, which records changes and bumps version numbers and the changelog before publishing. The README credits another project, A.css, as the inspiration for its animation preset system, which this project rebuilt with a new trigger engine and animation keys of its own.

Copy-paste prompts

Prompt 1
Show me how to add a fade-and-slide-up animation to a div using vivace's data-viv attribute syntax.
Prompt 2
Help me set up this Bun workspaces monorepo and run the docs playground locally.
Prompt 3
Explain how the trigger system decides when an animation like 'appearing' fires.
Prompt 4
Walk me through deploying the docs app's community gallery to Cloudflare Workers and D1.

Frequently asked questions

What is vivace?

A small, dependency-free library that lets you add CSS animations to a webpage by writing them directly as HTML attributes.

What language is vivace written in?

Mainly Svelte. The stack also includes TypeScript, Svelte, SCSS.

What license does vivace use?

No license information is provided in the README.

How hard is vivace to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is vivace for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.