Skip to content
@craftkit

craftkit

Unlock WebUI OOP excellence with pure JavaScript and ShadowDOM for dynamic, encapsulated web interfaces.

Write web apps as if they're native apps!

craftkit is a cutting-edge library designed for imperative programming on the web, harnessing the power of the Shadow DOM.

It's time to embrace the Shadow DOM and leave the Virtual DOM behind!

code2

Show as text
class Greeting extends Craft.UI.View {
    constructor() {
        super();
        this.views = {
            local: new Local(),
            world: new World()
        };
    }
    viewDidLoad(callback) {
        this.appendView({
            id: "whom",
            component: this.views.local
        });
        if (callback) { callback(); }
    }
    greet() {
        this.replaceView({
            id: "whom",
            component: this.views.world
        });
    }
    style(componentId) {
        return `
            .container { display: flex; flex-direction: row; }
        `;
    }
    template(componentId) {
        return `
            <div class="root">
                <div class="container>
                    <div>Hello</div>
                    <div id="whom"></div>
                </div>
                <button onclick="${componentId}.greet()">Greet</button>
            </div>
        `;
    }
}

class HelloPlace extends Craft.UI.View {
    constructor() {
        super();
        this.data = { place: "Any Where" };
    }
    style(componentId) {
        return `
            .msg { color: blue; }
        `;
    }
    template(componentId) {
        return `
            <div class="root">
                <span class="msg">${this.data.place}<\span>
            </div>
        `;
    }
}

class Local extends HelloPlace {
    constructor() {
        super();
        this.data = { place: "Local" };
    }
}

class World extends HelloPlace {
    constructor() {
        super();
        this.data = { place: "World!" };
    }
    style(componentId) {
        return super.style(componentId) + `
            .msg { color: red; }
        `;
    }
}

Pinned

  1. craft-uikit craft-uikit Public

    Clear Web OOP for Generation WebComponents

    JavaScript 1

  2. craft-bootloader craft-bootloader Public

    Ultra fast web application loader by caching all libraries in IndexedDB.

    JavaScript 2

  3. craft-widget-stickyheadernavi craft-widget-stickyheadernavi Public

    Sticky header navigation system with parallax scrolling effect, for both browser and PWA.

    JavaScript 1

  4. craft-widget-navigationgroup craft-widget-navigationgroup Public

    Classic stack navigation for Craft-UIKit

    JavaScript 1

  5. craftkit-playground craftkit-playground Public

    Online tutorial for CraftKit

    JavaScript 1

  6. craft-widget-quicktools craft-widget-quicktools Public

    Widgets for your first Craft-UIKit application

    JavaScript 1

Repositories

Showing 10 of 14 repositories

Top languages

Loading…

Most used topics

Loading…