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 Loading

  1. craft-uikit Public

    Clear Web OOP for Generation WebComponents

    JavaScript 1

  2. craft-bootloader Public

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

    JavaScript 2

  3. craft-widget-stickyheadernavi Public

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

    JavaScript 1

  4. craft-widget-navigationgroup Public

    Classic stack navigation for Craft-UIKit

    JavaScript 1

  5. craftkit-playground Public

    Online tutorial for CraftKit

    JavaScript 1

  6. craft-widget-quicktools Public

    Widgets for your first Craft-UIKit application

    JavaScript 1

Repositories

Showing 10 of 14 repositories
  • craftkit-playground Public

    Online tutorial for CraftKit

    JavaScript 1 0 0 0 Updated Mar 24, 2024
  • .github Public
    0 0 0 0 Updated Oct 16, 2023
  • craftkit.github.io Public

    website

    HTML 0 0 0 0 Updated Aug 9, 2023
  • craft-widget-toast Public

    Toast is a Craft-UIKit component that provides a simple way to display a message to the user.

    JavaScript 0 0 0 0 Updated Oct 28, 2022
  • craft-uikit Public

    Clear Web OOP for Generation WebComponents

    JavaScript 1 0 0 0 Updated Oct 27, 2020
  • craft-widget-stickyheadernavi Public

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

    JavaScript 1 0 0 0 Updated Sep 10, 2020
  • craft-bootloader Public

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

    JavaScript 2 0 0 0 Updated Aug 30, 2020
  • craft-widget-calendar Public

    Fully customizable JavaScript calendar widget for Craftkit.

    JavaScript 1 0 0 0 Updated Jul 4, 2020
  • craft-widget-navigationgroup Public

    Classic stack navigation for Craft-UIKit

    JavaScript 1 0 0 0 Updated Jul 4, 2020
  • craft-widget-quicktools Public

    Widgets for your first Craft-UIKit application

    JavaScript 1 0 0 0 Updated Jul 4, 2020

Top languages

Loading…

Most used topics

Loading…