Enyo: A Brief Tour

Thanks for checking out Enyo! This document will help you familiarize yourself with how the framework is organized and what each piece offers.

In a given Enyo release, you will find the following folders:

Enyo

The core of the framework, known simply as enyo in the source code, provides powerful features that enable complex applications and add-on libraries that build on the Web stack in a modular way:

These pieces are actually separable (it's easy to make micro-builds of Enyo), but we believe they form a useful working set, so we provide them together as the Enyo core.

Everything else described below is an optional package built on top of the core. You may choose to include these à la carte to fit your application's needs. However, these are only reference libraries for what we envision will be a large ecosystem of add-on libraries that bring different look and feel, layout options, service wrappers, etc. Check out the Enyo Community Gallery to see just how easy it is to create and share new components and add-on libraries.

Moonstone

The Moonstone library provides a toolbox of beautifully-styled UI components for building applications. Specially designed and optimized for TV-based apps, Moonstone is ever-expanding, and currently includes the following:

Onyx

Onyx, the original UI library that shipped with the Enyo framework, remains the library of choice for mobile device apps. While Moonstone has generated most of the publicity recently, new Onyx development is also in the works. We encourage you to check out the Onyx source, and stay tuned.

Layout

While Enyo components may be laid out using pure HTML/CSS techniques, we have provided a Layout library that gives you easy-to-use, performant, cross-browser compatible containers for your common layout needs:

You can read up on these layout options here.

Canvas

Enyo's encapsulation model works equally well for structuring canvas-based components as it does for traditional UI, and we have provided a library that abstracts common canvas primitives as Enyo components:

You can easily extend these to create complex graphical applications and games, such as our Pirate Pig canvas demo app.

Extra

The "extra" library holds a number of useful utility-type components, which are used in various samples and demo applications.

Bootplate

The Bootplate templates provide complete starter projects containing everything you need to develop and deploy Enyo apps out of the box. These templates contain current versions of Enyo, along with the most common libraries used by app developers (Moonstone or Onyx, Layout, etc.) and scripts to minify and create deployable versions of the source and assets.

Additional Reading

From here, there are several paths you can take to ramp up as an Enyo developer. A few suggestions: