FruitMachine
A lightweight component layout engine for client and server.
FruitMachine is designed to build rich interactive layouts from modular, reusable components. It's light and unopinionated so that it can be applied to almost any layout problem. FruitMachine is currently powering the FT Web App.
// Define a module
var Apple = fruitmachine.define({
name: 'apple',
template: function(){ return 'hello' }
});
// Create a module
var apple = new Apple();
// Render it
apple.render();
apple.el.outerHTML;
//=> <div class="apple">hello</div>
Installation
$ npm install fruitmachine
or
$ bower install fruitmachine
or
Download the pre-built version (~2k gzipped).
Examples
Documentation
- Introduction
- Getting started
- Defining modules
- Slots
- View assembly
- Instantiation
- Templates
- Template markup
- Rendering
- DOM injection
- The module element
- Queries
- Helpers
- Removing & destroying
- Extending
- Server-side rendering
- API
- Events
Tests
With PhantomJS
$ npm install
$ npm test
Without PhantomJS
$ node_modules/.bin/buster-static
...then visit http://localhost:8282/ in browser
Author
- Wilson Page - @wilsonpage
Contributors
- Wilson Page - @wilsonpage
- Matt Andrews - @matthew-andrews
License
Copyright (c) 2018 The Financial Times Limited Licensed under the MIT license.
Credits and collaboration
FruitMachine is largely unmaintained/finished. All open source code released by FT Labs is licenced under the MIT licence. We welcome comments, feedback and suggestions. Please feel free to raise an issue or pull request.