A package for building highly interactive user interfaces in pure Python inspired by ReactJS.
Be sure to read the Documentation
IDOM is still young. If you have ideas or find a bug, be sure to post an issue or create a pull request. Thanks in advance!
Click the badge above to get started! It will take you to a Jupyter Notebooks hosted by Binder with some great examples.
pip install idom[stable]
IDOM can be used to create a simple slideshow which changes whenever a user clicks an image.
import idom @idom.component def Slideshow(): index, set_index = idom.hooks.use_state(0) url = f"https://picsum.photos/800/300?image={index}" return idom.html.img({"src": url, "onClick": lambda event: set_index(index + 1)}) idom.run(Slideshow, 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: