Git Product home page Git Product logo

Aurelia

License: MIT npm version CircleCI TypeScript Twitter

Backers on Open Collective Sponsors on Open Collective Discord Chat

Aurelia 2

This is the Aurelia 2 monorepo, containing core and plugin packages, examples, benchmarks, and documentation for the upcoming major version of everybody's favorite modern JavaScript framework, Aurelia.

Introduction

Aurelia is a modern, front-end JavaScript framework for building browser, mobile, and desktop applications. It focuses on aligning closely with web platform specifications, using convention over configuration, and having minimal framework intrusion. Basically, we want you to just write your code without the framework getting in your way. 😉

Aurelia applications are built by composing a series of simple components. By convention, components are made up of a vanilla JavaScript or Typescript class, with a corresponding HTML template.

//app.js
export class App {
  welcome = "Welcome to Aurelia";

  quests = [
    "To seek the holy grail",
    "To take the ring to Mordor",
    "To rescue princess Leia"
  ];
}
<!-- app.html -->
<form>
  <label>
    <span>What is your name?</span>
    <input value.bind="name & debounce:500">
  </label>

  <label>
    <span>What is your quest?</span>
    <select value.bind="quest">
      <option></option>
      <option repeat.for="q of quests">${q}</option>
    </select>
  </label>
</form>

<p if.bind="name">${welcome}, ${name}!</p>
<p if.bind="quest">Now set forth ${quest.toLowerCase()}!</p>

This example shows you some of the powerful features of the aurelia binding syntax. To learn further, please see our documentation.

Feeling excited? Check out how to use makes to get started in the next section.

Note: Please keep in mind that Aurelia 2 is still in beta. A number of features and use cases around the public API are still untested and there will be a few more breaking changes.

Getting Started

First, ensure that you have Node.js v8.9.0 or above installed on your system. Next, using npx, a tool distributed as part of Node.js, we'll create a new Aurelia 2 app. At a command prompt, run the following command:

npx makes aurelia

This will cause npx to download the makes scaffolding tool, along with the aurelia generator, which it will use to guide you through the setup process. Once complete, you'll have a new Aurelia 2 project ready to run. For more information on Aurelia's use of makes, see here. If you aren't interested in taking our preferred approach to generating a project, you can also see the examples folder in this repo for pure JIT setups (no conventions) with various loaders and bundlers.

Documentation

You can read the documentation on Aurelia 2 here. Our new docs are currently a work-in-progress, so the most complete documentation is available in our getting started section. If you've never used Aurelia before, you'll want to begin with our Quick Start Guide.

Contributing

If you are interested in contributing to Aurelia, please see our contributor documentation for more information. You'll learn how to build the code and run tests, how best to engage in our social channels, how to submit PRs, and even how to contribute to our documentation. We welcome you and thank you in advance for joining with us in this endeavor.

Staying Up-to-Date

To keep up to date on Aurelia, please visit and subscribe to the official blog and our email list. We also invite you to follow us on twitter. If you have questions, have a look around our Discourse forum. For chat on Aurelia 2, join our new Aurelia 2 community on Discord. If you'd like to join the growing list of Aurelia sponsors, please back us on Open Collective.

License

Aurelia is MIT licensed. You can find out more and read the license document here.

aurelia's Projects

http-client icon http-client

A simple, restful, message-based wrapper around XMLHttpRequest.

http-client-mock icon http-client-mock

Provides a mock implementation of Aurelia's http-client for use in testing.

i18n icon i18n

A plugin that provides i18n support.

inspector icon inspector

The Aurelia 1 Chrome plugin which provides Aurelia-specific information about elements selected in the inspector.

loader icon loader

An abstract module which specifies an interface for loading modules and view templates.

loader-default icon loader-default

A default implementation of the loader interface compatible with system.js and require-based loaders.

loader-esm icon loader-esm

An ESNext spec-compliant loader plugin for Aurelia.

loader-nodejs icon loader-nodejs

An implementation of the abstract Loader interface for NodeJS

loader-webpack icon loader-webpack

An implementation of Aurelia's loader interface to enable webpack.

logging icon logging

A minimal but effective logging mechanism with support for log levels and pluggable log appenders.

metadata icon metadata

Utilities for reading and writing the metadata of JavaScript functions.

middleware-rack icon middleware-rack

The Rack middleware to support Aurelia SSR for Ruby web applications.

new icon new

The Aurelia 2 scaffolding repo used by our tools to setup new projects.

pal icon pal

Aurelia's Platform Abstraction Layer

pal-browser icon pal-browser

The browser-based implementation of Aurelia's platform abstraction layer.

pal-nodejs icon pal-nodejs

The NodeJS-based implementation of Aurelia's platform abstraction layer.

pal-worker icon pal-worker

The web-worker-based implementation of Aurelia's platform abstraction layer.

path icon path

Utilities for path manipulation.

polyfills icon polyfills

The minimal set of polyfills needed to run Aurelia.

registry icon registry

A registry of Aurelia plugins, cli plugins, gists and other awesome goodies you can use with Aurelia and its tools.

route-recognizer icon route-recognizer

A lightweight JavaScript library that matches paths against registered routes. It includes support for dynamic and star segments and nested handlers.

routing-application icon routing-application

A simple application showcasing how easy it is to configure Aurelia 2 applications with routes.

script icon script

The home for Aurelia's concatenated script-tag-ready build.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.