adobe-webplatform/Snap.svg
38.7
Weak · 1 October 2026
27.6k
lines of production code
JavaScript
primary language
2
measurements over time
What this system is
Snap.svg is a JavaScript library for manipulating and animating SVG elements in the browser. It provides core capabilities for creating, transforming, and styling vector graphics, along with tools for managing element alignment, CSS classes, and gradients. The system includes extensive utilities for animation, matrix transformations, and event handling, supported by a comprehensive test suite and multiple interactive demos illustrating its rendering and interactivity features.
Features
Add Backbone.js and jQuery libraries to the animated game demo
The animated game demo now includes the Backbone.js 1.0.0 and jQuery 1.9.0 JavaScript libraries, enabling the demo to leverage these frameworks for model-view-controller architecture and DOM manipulation.
demos/animated-game/js · high confidence
Added Snap.svg banner ad demo
A new interactive banner ad demo has been added to the \demos/snap-ad\ directory, showcasing the Snap.svg library. The demo includes a Grunt build configuration to compile SASS to CSS and bundle JavaScript, along with source files for an animated SVG advertisement featuring a heart, burst, and 'Learn More' button. The build output includes the compiled HTML, CSS, and a bundled JavaScript file containing Snap.svg 0.2.0, RequireJS 2.1.5, Modernizr 2.7.1, and the Eve event library.
demos/snap-ad · high confidence
Added Snap.svg clock demo
A new interactive clock demonstration has been added to the demos/clock directory. The HTML file uses Snap.svg to render a clock face with numbers and tick marks, and allows users to click the center circle to animate the clock hands rotating.
demos/clock · high confidence
Added demo-card.svg asset to the pattern demos
A new SVG file, demo-card.svg, has been added to the demos/pattern directory. This file contains vector graphics assets for the pattern demo, likely serving as a visual component or icon within the demonstration interface.
demos/pattern · high confidence
Added interactive Snap.svg tutorial demos
The demos/tutorial directory now includes a set of interactive HTML tutorials (1.html through 4.html, plus index.html and tutorial.html) that demonstrate Snap.svg features such as patterns, masks, groups, and text-on-path. These pages provide step-by-step code examples with live SVG previews and syntax highlighting, along with a mascot.svg asset used in the demonstrations.
demos/tutorial · high confidence
Interactive coffee maker infographic demo added
The illustrated-infographic-coffee demo now features an interactive SVG visualization of a coffee maker. Users can drag a knob to select different coffee types (Americano, Latte, Mocha, Macchiato, Espresso), which triggers animations of the machine's internal components and displays a corresponding pie chart breakdown of ingredients. The demo relies on Snap.svg for rendering and animation.
demos/illustrated-infographic-coffee · high confidence
New alignment and class management capabilities
The library now includes an alignment module providing \Element.getAlign\ and \Element.align\ methods, allowing elements to be positioned relative to other elements or the parent SVG container using directional keywords (top, middle, bottom, left, center, right). Additionally, a new class management module adds \Element.addClass\, \Element.removeClass\, \Element.hasClass\, and \Element.toggleClass\ methods for manipulating CSS class names on SVG elements.
src · high confidence
New interactive SVG mascot demos for Snap.svg
The demos/snap-mascot directory now includes three new interactive SVG demonstrations powered by Snap.svg: a crocodile mascot that animates its head and jaw on hover, a second crocodile demo featuring animated diagram elements (map, pie, eye) triggered by hover, and an interactive Snap logo that assembles and disassembles on mouse interaction. These demos are presented via an index page using inline frames and are supported by a shared stylesheet for layout and styling.
demos/snap-mascot · high confidence
Redesigned documentation site with dark mode and improved code styling
The documentation site has been visually updated with a new CSS theme that introduces a dark mode toggle, refined typography using Source Sans Pro and Source Code Pro, and enhanced styling for code blocks and API parameter tables. This change improves readability and provides a modern look for the reference documentation.
doc · high confidence
Behavioural changes
Add animated map demo with browser compatibility workarounds
The animated-map demo now includes a workaround for a Safari rendering bug that forces a redraw during animation, and addresses a Firefox bug introduced recently to ensure correct playback. The demo also updates the flight path location to San Francisco.
demos/animated-map · high confidence
Animated game demo with cross-browser transform fixes
The animated-game demo now includes explicit vendor-prefixed CSS transforms (e.g., -webkit-transform, -moz-transform) for SVG elements and animations, ensuring consistent rendering and interaction in Firefox and WebKit-based browsers. The demo also features updated artwork with added elephant characters and a cleaned-up file structure, while the index.html file now includes Apache 2.0 license information.
demos/animated-game · high confidence
Snap.svg 0.5.1 release and project rebranding
This update releases version 0.5.1 of the library, now officially named Snap.svg (previously 'savage'), under the Apache 2.0 license. It introduces Material and FlatUI color palettes, new methods for managing gradients (\Element.stops\, \Element.addStop\, \Element.setStops\), and improved matrix splitting for better animation performance. The release also includes various bug fixes, better integration of tests and ESLint, and adds support for \viewBox\ animation and \\<symbol\>\ elements.
(repo-wide) · high confidence
Fixes
Snap.svg updated to version 0.5.1
The distributed library file dist/snap.svg-min.js has been regenerated and updated to version 0.5.1. This release includes a comprehensive set of bug fixes addressing various issues such as drag behavior, bounding box calculations, matrix transformations, and attribute handling, along with the addition of new methods like paper.use(), paper.svg(), and toDataURL().
dist · high confidence
Test coverage
Initial test suite for Snap.svg core features
Added a comprehensive test suite covering the core Snap.svg API, including element creation (circles, rects, paths, text), attribute manipulation (including relative operators like += and color parsing), DOM manipulation methods (append, prepend, clone, remove), matrix transformations, animation easing functions, SVG filters, and gradient handling.
test · high confidence
Dependencies
Initial NPM package configuration for Snap.svg
Snap.svg is now available as an NPM package (version 0.5.1), with its main entry point set to the distribution file. The library depends on eve (\~0.5.1) and includes a suite of development dependencies for building and linting, such as Grunt, ESLint, and dr.js. A separate package.json for the 'snap-ad' demo is also introduced, configuring Grunt tasks for asset processing.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 42 → 39 (-3.4)
- Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 37 → 26 (-10.7)
- Architecture 100 → 100 (+0.0)
- Maturity 38 → 38 (+0.0)
- Readiness 33 → 36 (+2.5)
- Security 88 → 91 (+3.1)
New (76)
- (anonymous) (cognitive 137) (src/attr.js)
- (anonymous) (cognitive 16) (src/attradd.js)
- (anonymous) (cognitive 26) (src/filter.js)
- (anonymous) (cognitive 30) (src/animation.js)
- (anonymous) (cognitive 32) (src/class.js)
- (anonymous) (cognitive 39) (src/matrix.js)
- (anonymous) (cognitive 51) (src/mina.js)
- (anonymous) (cognitive 52) (src/set.js)
- (anonymous) (cyclomatic 104) (src/paper.js)
- (anonymous) (cyclomatic 109) (src/element.js)
- (anonymous) (cyclomatic 23) (src/animation.js)
- (anonymous) (cyclomatic 24) (src/class.js)
- (anonymous) (cyclomatic 24) (src/filter.js)
- (anonymous) (cyclomatic 34) (src/matrix.js)
- (anonymous) (cyclomatic 40) (src/mina.js)
- (anonymous) (cyclomatic 40) (src/set.js)
- (anonymous) (cyclomatic 57) (src/mouse.js)
- (anonymous) (cyclomatic 84) (src/attr.js)
- (anonymous)::$ (cognitive 49) (src/svg.js)
- (anonymous)::$ (cyclomatic 21) (src/svg.js)
- …and 56 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
adobe-webplatform/Snap.svg was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 1 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit c8e483c9694517e24b282f8f59f985629f4994ce — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.