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 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
  • craftkit-playground Public

    Online tutorial for CraftKit

    craftkit/craftkit-playground’s past year of commit activity
    JavaScript 1 0 0 0 Updated Mar 24, 2024
  • .github Public
    craftkit/.github’s past year of commit activity
    0 0 0 0 Updated Oct 16, 2023
  • craftkit.github.io Public

    website

    craftkit/craftkit.github.io’s past year of commit activity
    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.

    craftkit/craft-widget-toast’s past year of commit activity
    JavaScript 0 0 0 0 Updated Oct 28, 2022
  • craft-uikit Public

    Clear Web OOP for Generation WebComponents

    craftkit/craft-uikit’s past year of commit activity
    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.

    craftkit/craft-widget-stickyheadernavi’s past year of commit activity
    JavaScript 1 0 0 0 Updated Sep 10, 2020
  • craft-bootloader Public

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

    craftkit/craft-bootloader’s past year of commit activity
    JavaScript 2 0 0 0 Updated Aug 30, 2020
  • craft-widget-calendar Public

    Fully customizable JavaScript calendar widget for Craftkit.

    craftkit/craft-widget-calendar’s past year of commit activity
    JavaScript 1 0 0 0 Updated Jul 4, 2020
  • craft-widget-navigationgroup Public

    Classic stack navigation for Craft-UIKit

    craftkit/craft-widget-navigationgroup’s past year of commit activity
    JavaScript 1 0 0 0 Updated Jul 4, 2020
  • craft-widget-quicktools Public

    Widgets for your first Craft-UIKit application

    craftkit/craft-widget-quicktools’s past year of commit activity
    JavaScript 1 0 0 0 Updated Jul 4, 2020

Top languages

Loading…

Most used topics

Loading…