Libraries for creating and controlling interactive web pages with Python 3.7 and above.

Try it Now Binder

Click the badge above to get started! It will take you to a Jupyter Notebooks
hosted by Binder with some great examples.

Or Install it Now

pip install idom[stable]

At a Glance

IDOM can be used to create a simple slideshow which changes whenever a user clicks an image.

import idom

def Slideshow():
    index, set_index = idom.hooks.use_state(0)
    url = f"{index}"
    return idom.html.img({"src": url, "onClick": lambda event: set_index(index + 1)}), port=8765)

Running this will serve our slideshow to "https://localhost:8765/client/index.html"

You can even display the same thing in a Jupyter Notebook, just use idom_jupyter: