25.1.0 • Published 1 month ago

element-book v25.1.0

Weekly downloads
-
License
(MIT or CC0 1.0)
Repository
github
Last release
1 month ago

element-book

An element-vir drop-in element for building, testing, and demonstrating a collection of elements (or, in other words, a design system).

Installation

npm i element-book

Terminology

  • Page: a group of pages and / or element examples. Pages can be infinitely nested.
  • Element Example: an individual element example with independent state, styles, title, etc.

Usage

  1. Define element-book pages with defineBookPage:

    import {defineBookPage} from '../data/book-entry/book-page/define-book-page.js';
    
    export const myPage = defineBookPage({
        /** Use `undefined` if your page is at the top level. */
        parent: undefined,
        title: 'My Page',
    });
  2. Inside of a page definition, define an element example:

    import {html} from 'element-vir';
    import {defineBookPage} from '../data/book-entry/book-page/define-book-page.js';
    
    export const myPage = defineBookPage({
        /** Use `undefined` if your page is at the top level. */
        parent: undefined,
        title: 'My Page',
        defineExamples({defineExample}) {
            defineExample({
                title: 'My Example',
                render() {
                    return html`
                        <p>Render your element here.</p>
                    `;
                },
            });
        },
    });
  3. Instantiate an instance of the element book app into your app and pass in all your pages:

    import {defineElementNoInputs, html} from 'element-vir';
    import {ElementBookApp} from '../ui/elements/element-book-app/element-book-app.element.js';
    import {myPage} from './define-page.example.js';
    
    export const MyApp = defineElementNoInputs({
        tagName: 'my-app',
        render() {
            return html`
                <${ElementBookApp.assign({
                    pages: [
                        myPage,
                    ],
                })}></${ElementBookApp}>
            `;
        },
    });

Why not Storybook?

Because Storybook is un-composable, impossible to debug, and full of behind-the-scenes *magic* that you can't backtrack without already understanding the inner workings of Storybook itself. With element-book, it's all just imports that you can directly follow with the TypeScript compiler.

25.1.0

1 month ago

25.0.2

2 months ago

25.0.1

2 months ago

25.0.0

2 months ago

24.0.0

2 months ago

23.4.0

2 months ago

23.4.2

2 months ago

23.4.1

2 months ago

23.3.1

2 months ago

23.2.1

3 months ago

23.2.0

3 months ago

23.1.3

3 months ago

23.3.0

3 months ago

23.1.2

3 months ago

23.1.1

5 months ago

23.1.0

5 months ago

23.0.0

6 months ago

22.2.2

12 months ago

22.2.1

12 months ago

22.2.0

12 months ago

22.1.2

1 year ago

22.1.3

1 year ago

22.1.1

1 year ago

22.1.0

1 year ago

22.0.5

1 year ago

22.0.4

1 year ago

22.0.3

1 year ago

22.0.2

1 year ago

22.0.1

1 year ago

22.0.0

1 year ago

21.0.0

1 year ago

20.0.9

1 year ago

20.0.8

1 year ago

20.0.7

1 year ago

20.0.5

1 year ago

20.0.4

1 year ago

20.0.3

1 year ago

20.0.6

1 year ago

20.0.2

1 year ago

20.0.1

1 year ago

10.1.10

1 year ago

10.1.4

1 year ago

10.1.5

1 year ago

10.1.6

1 year ago

10.1.7

1 year ago

10.1.8

1 year ago

10.1.9

1 year ago

10.1.3

2 years ago

10.1.0

2 years ago

10.1.1

2 years ago

10.1.2

2 years ago

10.0.0

2 years ago

10.0.1

2 years ago

10.0.2

2 years ago

7.0.0

2 years ago

7.0.4

2 years ago

7.0.3

2 years ago

7.0.2

2 years ago

7.0.1

2 years ago

7.0.8

2 years ago

7.0.7

2 years ago

7.0.6

2 years ago

7.0.5

2 years ago

8.0.0

2 years ago

9.0.1

2 years ago

9.0.0

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

5.0.1

2 years ago

5.0.0

2 years ago

6.0.1

2 years ago

6.0.0

2 years ago

6.0.3

2 years ago

6.0.2

2 years ago

1.0.3

2 years ago

2.0.0

2 years ago

3.0.2

2 years ago

3.0.1

2 years ago

3.0.0

2 years ago

4.1.0

2 years ago

4.0.0

2 years ago

0.0.10

2 years ago

0.0.11

2 years ago

0.0.12

2 years ago

0.0.13

2 years ago

0.0.14

2 years ago

0.0.1

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.9

2 years ago

0.0.8

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.0

2 years ago