Zepto.js – a minimalist JavaScript library

Zepto is a minimalist JavaScript library for modern browsers with a
largely jQuery-compatible API. If you use jQuery, you already know how to use Zepto.

See zeptojs.com for an extended introduction, downloads
and documentation.

Zepto.js is licensed under the terms of the MIT License.

Building

Build Status

The official site offers a download of the default distribution of Zepto. This
is good for starting out. However, at some point you might want to add some
optional modules and remove some of the default ones you don't need, to keep the
size at minimum. That's when you need to check out Zepto's source code and use
the build commands.

You will need ruby, RubyGems, and rake installed on your system.

~~~ sh

dependencies:

$ ruby -v
$ gem -v
$ rake -V

required to generate the minified version:

$ gem install uglifier
~~~

Build Zepto by running rake:

~~~ sh
$ rake
Original version: 40.423k
Minified: 18.776k
Minified and gzipped: 7.033k, compression factor 5.747
~~~

The resulting files are:

  1. dist/zepto.js
  2. dist/zepto.min.js

To include optional modules and remove default ones, use the concat task. In
this example, "fx" is removed, but "data" and "selector" are added:

~~~
$ rake concat[-fx:data:selector] dist
~~~

Zepto modules

Zepto modules are individual files in the "src/" directory. You can also list
the available modules by running rake modules.

module default description
polyfill Provides String.prototype.trim and Array.prototype.reduce methods if they are missing (required for iOS 3.x)
zepto Core module; contains most methods
event Event handling via on() & off()
detect Provides $.os and $.browser information
fx The animate() method
fx_methods Animated show, hide, toggle, and fade*() methods.
ajax XMLHttpRequest and JSONP functionality
form Serialize & submit web forms
assets Experimental support for cleaning up iOS memory after removing image elements from the DOM.
data A full-blown data() method, capable of storing arbitrary objects in memory.
selector Experimental jQuery CSS extensions support for functionality such as $('div:first') and el.is(':visible').
touch Fires tap– and swipe–related events on touch devices
gesture Fires pinch gesture events on touch devices
stack Provides andSelf & end() chaining methods

Contributing

Get in touch:

Report a bug

  1. Check if the bug is already fixed in the master branch since the last release.
  2. Check existing issues. Open a new one, including exact browser & platform information. For better formatting of your report, see GitHub-flavored Markdown.

Running tests

Zepto test suite is in "test/*.html" files. Open the individual files in a web
browser to run the tests. Files named with "_functional" are not automated
tests, but require interaction. Automated tests are written using
Evidence.js.

Detailed test information such as specific failures is logged to the JavaScript
console of your browser.

It's possible to run automated tests from the command-line in headless Webkit
with PhantomJS:

~~~ sh

install on Mac OS

$ brew install phantomjs

run all tests

$ rake test

run individual files

$ script/test test/selector.html
~~~

Code style guidelines