Skip to content

wokwi/wokwi-elements

Repository files navigation

Wokwi Elements

Web Components for Arduino and various electronic parts.

NPM Version Gitpod ready-to-code

Check out the component catalog.

Note: these elements only provide the presentation and display of the represented hardware. They do not provide the functional simulation code of the hardware. That is dependant on the application (simulator) that you wish to use these with, and thus up to you to create.

Using Wokwi Elements

You can install the package with npm and then import it into your code:

import '@wokwi/elements';

Alternatively, you can load the Wokwi Elements bundle from unpkg's CDN:

<script src="https://unpkg.com/@wokwi/elements@0.48.3/dist/wokwi-elements.bundle.js"></script>

Replace 0.48.3 with the latest version number. You can find a list of all the versions in the releases page.

Local development

To prepare for local development, clone this repo, and then install the dependencies:

npm install

Then start storybook:

npm run storybook

This will open a local dev server at http://localhost:6006, where you can interact with the elements and see your changes live, similar to https://elements.wokwi.com.

Creating a new element

The easiest way to create a new element is to run the generator:

npm run new-element --name demo

This will generate a new element called demo. It will also create a storybook file, so you will be able to see the new element in storybook (see the "Local development" section above).

Note: updates the docstrings in the code will not be reflected in Storybook's Docs tab unless you restart Storybook, or run the following command manually and refresh the page:

npm run analyze-components

Check out the Contributing Guide for more details.

Learn how to create elements

Video tutorial

The Membrane keypad element live-coding tutorial walks through the complete process behind creating an element: research, drawing, and writing the code / stories.

Blog posts

License

Wokwi Elements are released under the MIT license.