Ascript is minimlist-friendly Javascript UI library (hopefully beginner-friendly too). It doesn't require templates, dependencies, minifications, etc.


When you load <script src=//></script> into the webpage, global variable a is set. You can then instantiate element instances (which is so-called virtual dom) in various ways.


// creates div tag containing link
a.div('test div', a.a({href:''}), document.body);

// doesn't require targetElement as it is obvious`body{background-color:black;}`);
        src: '',
        position: 'center',
        scale: 0.7
If you don't care old browsers, use ES Module m.js version. (Put <script> with type=module attribute and start with import a from //
<script type="module">
import a from //
var md = a.div({
    text : 'sample',
    content : function(){ return a.parse(this.param.text); }
}, document.body);
a.textarea({cols: 100, rows: 20, oninput: function(event){
    md.param.text =;
}}, document.body);

Elements can be directly created through new a.Element() or a.create(), but in most cases, using predefined methods is easy. e.g., a.textarea().

Three variations above would result in the same results.

Component Definition

Just call a.define(name, optionalParent, parameters) to define your custom components. It also returns the object just defined so you can export.
// Calling inside codes:
a.define('Test', {
    init : function(){
// Wrap into independent file Widen.js and export:
export default a.define('Widen', a.textarea, {

Typical Properties / Methods


Created element has many methods to help handle events, animations, and page construction. Partly, especially in recent versions it contains jQuery-sh methods to shorten codes.


Page Load : a.ready()
a.ready(<callback>) : callback will be executed after webpage load and other a.js components are ready. It takes callback or returns Promise which resolves after page load.
Element selector : a(<elementid>)
a(<elementID>) : returns Element specified by ID on webpage.

Source Repository

Currently preparing the server. For the moment, please email: