PROGRESSIVE ENHANCEMENT, RELOADED Demo Update a page fragment via AJAX Animate a page transition Open a link in a modal dialog Custom HTML tags Batteries included We will ship a basic implementation for the most established UI patterns like navigation bars, infinite scrolling, drop-down menus, modals dialogs, etc. Plays nice with existing JavaScript Convert to up.compiler directives. Plays nice with existing styles Unoppinionated about style Bootstrap users can include `up-bootstrap`. Plays nice with existing JS code You can wire your existing JS code into the Unpoly page flow. URLs are important In Unpoly every page or screen state has a URL which you can bookmark and share. This also means you get all the SEO love from Google. Server-side code should stay the same (Rewrite) Lightweight Unpoly is 13 KB gzipped. The only dependency is jQuery. Both UJS and programmatic interfaces All Unpoly functionality is available as both unobtrusive behavior (through HTML attributes like up-target) and JavaScript functions for programmatic access and integration with your code. .example .example__column .example__title page.html .example__asset <%= ... %> .example__column .example__title Demo iframe.example__demo Update a page fragment via AJAX:
Story summary. Read full story
Animate a page transition: Next page
Story summary. Read full story
Infinite pagination:
Foo Bar Baz
Load more Open a link in a modal dialog: Log in to continue Custom tag: /examples/timestamp-tag/ page.html

The time is

scripts.js up.compiler('timestamp', function($element) { now = new Date(); $element.text(now); }); /examples/clock-tag/ page.html scripts.js up.compiler('clock', function($element) { function update() { var now = new Date(); $element.text(now); } setInterval(update, 1000); return function() { clearInterval(update) }; }); /examples/transition story1.html

The first story

Show next story
story2.html

The second story

Show previous story
/examples/transition summary.html
Story summary. Read full story
full.html
Full story here Show summary
Example: