Streamlit Components - Community Tracker

Since the release of Streamlit Components, we’ve been thrilled to read the many new widgets and integrations to external librairies you have suggested and published ! There’s so many ideas around, we wanted to reference them all in one place, and make it easy for you to contribute to the growing Streamlit Components ecosystem !

:fireworks: Say hello to the first Streamlit community-driven wiki post, which you can freely edit to help track down components ideas or currently in development.

How can I contribute ?

Contributing to this wiki is easy and open to anyone (at least if you hung on the forum enough to get to Trust Level 1). It’s a click away from the Edit button on the bottom left of the post !

  • If you have an idea for a Streamlit Component, you can create a new post for it in the forum and then reference it in this wiki
  • Want to try implementing a component, but you need some inspiration ? Browse through the ideas, settle on one then move it into the In Development section.
    • It’s also a good way to find projects currently in development you can contribute to !
  • When the component is ready for general use (even if there’s still features to add and bugs to track down), drop it in the Published section so other users find out about it and test it !
  • Are you using a different combination of technologies to develop your components and want to share it with the community ? Share your template under the Component Templates section or check other’s workflows.
  • If you’re hesitant in editing the wiki, you can put a comment and we’ll add it into the page

Feel free to add your own ideas for structuring it !

:checkered_flag: Published

:memo: Component Templates

:teacher: Tutorials

:construction_worker: In development

  • Quill editor (Post, GitHub)
  • Cytoscape.js (Post) - looking for users
  • Label Studio frontend for data annotation (Post, GitHub)
  • JSME (Post)
  • TensorBoard (GitHub)
  • Notifications (Post, GitHub)
  • Streamlit-sync: sync widgets between sessions and persist on disk (Post, GitHub, share)
  • link_button - A simple way to link a button to a URL. (Post, GitHub, Demo)
  • st_radial - A custom component to show metrics. (Post, GitHub, Demo)
  • st-card - A component for displaying KPI metrics in your apps(Post, GitHub, Demo)
  • streamlit_apex_charts - A wrapper over ApexCharts.js(Post,GitHub,Demo)
  • Charticulator (Post, GitHub) - Component to render charticulator templates with streamlit

:bulb: Ideas in discussion

  • Material UI React Table (Post)
  • WYSIWYG HTML editor (Post)
  • Selection in canvas (Post)
  • 3D mesh visualizer with VTK (Post)
  • Ipywidgets (Post)
  • Network visualization : Networkx / Pyvis (post Pyvis)
  • TensorflowJS (Post)
  • Tableau Software / Power BI embed (issue)
  • Vega (GitHub)
  • ThreeJS (Post)
  • Display PDF (issue)
  • Streamint text_input (Post)
  • Chart.js (issue)
  • HighCharts (issue)
  • jsroot (issue)
  • RadioSets (Post)
Streamlit-javascript, run client side javascript and get result
Barfi : Flow Based Programming for Data Science (New Component)
Record sound from the user's microphone with streamlit
Embedding a terminal
New Component: streamlit-terran-timeline makes it super easy to create face-recognition timelines!
Streamlit Component Svelte Template
New Component: streamlit-observable, a new way to embed Observable Notebooks
Another tabs component, only this time... its DYNAMIC!
Metrics / KPI Component
Any Future Plans for Easier CSS/JavaScript Use?
Custom component to display clickable images
New informative / notification component
New component: streamlit_datalist!
New Component: streamlit-labelstudio, allows you to embed the Label Studio annotation frontend into your application!
New Component: Streamlit-tags a new way to do add tags and enter keywords
New component Visgraph
New Component: Streamlit Google Charts
New Component: Awesome Table
Interested in creating and/or testing components?
Testing Streamlit Apps Using SeleniumBase
Merge component in to main Streamlit Lib
Showing off the streamlit-agraph Component
Are you using HTML in Markdown? Tell us why!
New Component: streamlit-sortables
streamlit-on-Hover-tabs (for custom navigation bar)
3d globe component
✨ Streamlit Elements - Build draggable and resizable dashboards with Material UI, Nivo charts, and more!
Custom notification alert box
Tracking fish health in aquaculture industry
Integrating What-If-Tool Widget in Streamlit App
JSME React Component split into parts, accepting dictionary as input
Support for CytoscapeJS
New library: streamlit-jupyter, a new way to develop streamlit apps in jupyter notebooks
Bi-directional Plotly Component
Image cropping/ selection component
Reusable Timeline Component with demo for History of NLP
Integrating cropper JS
🧊 stpyvista: Show PyVista 3D visualizations in Streamlit
New Component: streamlit-tree-select, a simple and elegant checkbox tree
New Component: streamlit-ext, sync widgets' value with url
Extra Streamlit Components
New Component: Streamlit-Wordcloud, a new component to build beautiful and interactive wordclouds with Streamlit
Streamlit Component Svelte Template
New Component: Streamlit Timeline, creating beautiful timelines with bi-directional communication
Streamlit server & future prospects
Molecule visualization with Streamlit
I made a streamlit marquee component and have published it to pypi
New Component: Streamlit-Authenticator, a secure authenticaton module to validate user credentials in a Streamlit application
Snowflake DB object selector Tree
Streamlit Autorefresh
New Component: streamlit-login-auth-ui, connect your streamlit application to a pre-built and secure Login/ Sign-Up page
Clickable Input Widget
Vertical Slider Component
New Component: Streamlit JS Eval
New Component: `st_btn_select` - Selectbox alternative with buttons
St_echarts_events, a new method to get the echarts-chart return value from the front-end event
New component: Login authentication (Oauth) and localStorage access in Streamlit, synchronous communication
New Component: st-card for displaying KPI metrics in your apps
Simple Authentication for Streamlit Apps
New Component: Streamlit Text Rating
Cookies support in Streamlit!
New Component: streamlit-img-label, an easy app for image annotation
New Component: link_button, A simple way to link a button to a URL
Testing Streamlit Apps Using SeleniumBase
🍅 Plost - A deceptively simple plotting component for Streamlit
New pyvis component for graphs
New Component: Searchbox
New Component: Streamlit-chat, a new way to create chatbots
A new library and template using React Hooks for creating Streamlit Components
🧡 Streamlit Custom Toggle - A custom component to load heart-shaped toggle switch widget
New library: streamlit-sync, another way to sync states across sessions
New Component: streamlit-keyup, a textbox that returns the text as you type
Fire-state: Preserve states when switching pages in multipage app
JSME React Component
New Component: streamlit-webrtc, a new way to deal with real-time media streams
New component: HTML content with click detection
SciLit - Scientific Literatures and Analytics Search App
Ag-Grid component with input support
Introducing Streamlit-Keycloak: A component for user authentication and single sign-on in your app using Keycloak
STqdm : a tqdm-like progress bar for streamlit
Streamlit-option-menu is a simple Streamlit component that allows users to select a single item from a list of options in a menu
New Component: st_radial, A custom component to show metrics

This is great @andfanilo! Is there a place for people to submit and vote on components they’d like to have in addition to the above list with component in development? Might help surface the 80/20 of the most useful set of next components for the community.

I’m having a difficult time picking which component project to work on first. Streamlit’s amazingness is also causing me major decision paralysis :slight_smile:

Hey @Chad_Mitchell ! @randyzwitch and I were also playing with the idea of creating periodic polls to gauge the interest of the community for a Streamlit component idea, though we’re not sure if we’d create those polls under this wiki or create a new post for each poll :slight_smile: . I guess even you could create a poll with a small number of components you’re willing to tackle and let the community decide :stuck_out_tongue:
I think we have enough ideas to create such poll, so we’ll experiment with this soon !


A post was split to a new topic: Firebase and Streamlit

There are two components I would like created but I do not have the time or technical competency to do it. I would like to pay someone to do it with the work completely open source. Before I post about it I want to make sure with the moderators they are OK with the idea.

Hi @rsheftel, it’s perfectly fine to do so. We don’t have a jobs section or anything, since it doesn’t come up frequently enough yet, but feel free to make a post on our Random section :+1:


Streamlit Navbar component to support multi-page apps with or without using Hydralit.
Hydralit Components
Features include

  • Full theme color support
  • Full container support (can put on sidebar too)
  • Responsive layout
  • Use Bootstrap icons or emojis or nothing
  • Configure Response values when clicked
  • Assign tooltips


Great !!

The Autorefresh component would be a great addition to the official streamlit components as it makes things a lot cleaner when building an App which needs to Update Data continuously!

Sharing our custom component for accessing FirstLanguage NLP API. It would be great to get feedback on this and it would be awesome to get featured in the Components section under NLP.


Sharing my first components to help creating bi-directional component directly with HTML and JS faster. The idea is to expose a function in Javascript to send data to Streamlit.

Here is a demo of creating inline buttons:


Installation: pip install streamlit-bridge


Hey y’all!

I just created a Tutorials section, so if you come across a Components tutorials, don’t hesitate to add it to this wiki!

I’m also wondering, now that we have 50+ components, how we can maybe categorize them a bit more. Don’t hesitate to give category ideas (like image, video, audio, charting, etc…)

Have a nice Streamlitin’ day Streamliters :balloon:

1 Like

Sharing my searchbox component, that fetches suggestions based on a provided function and updates with user input. Any feedback would be appreciated!


Repository: m-wrzr/streamlit-searchbox

1 Like

Sharing my first components to allow synchronous localStorage access to Streamlit apps. The code runs synchronously so the flow is super simple and the app doesn’t run multiple times. Access to localStorage means that you don’t have to keep authenticating users on every refresh.

Hopefully this can be integrated into main Streamlit which would make it much faster.

Here is a demo of fetching saved info in the browser:

Installation: pip install streamlit-ws-localstorage
Repository: GitHub - gagangoku/streamlit-ws-localstorage: A simple synchronous way of accessing localStorage from your Streamlit app.
On pypi: streamlit-ws-localstorage · PyPI


User Authentication Page for Streamlit:

I have created a new library which enables the developers to connect their application to a secure login/ sign-up page.

You can customize specific parts of the page without any hassle!

The library grants users an option to reset their password, users can click on Forgot Password? after which an Email is triggered containing a temporary, randomly generated password.

The library also sets encrypted cookies to remember and automatically authenticate the users without password.
The users can logout using the Logout button.

The best part is, it is purely plug and play. No DB support needed.

Checkout this video which highlights all the features of the library: streamlit_login_auth_ui_features_video.mp4 - Google Drive

Link to the Github Repository: GitHub - GauriSP10/streamlit_login_auth_ui: It lets you connect your streamlit application to a pre-built and secure Login/ Sign-Up page.

Try the Login/ Sign-Up feature on a sample application deployed on Heroku:

PyPi: streamlit-login-auth-ui · PyPI

The Demo:


pip install streamlit-login-auth-ui
1 Like

A master detail component/grid would be great if any available please post.

Original post here, short version below:

Hey there, I created a library streamlit-jupyter to allow for seamless creation of streamlit apps in jupyter notebooks.


pip install streamlit_jupyter

How to use it

Take a look at our example notebook

The main idea is for you experiment and develop in your notebook,
visually see all the pieces, and then convert the notebook to .py to
be run by streamlit

start by importing streamlit and patching it with streamlit-jupyter:

import streamlit as st

from streamlit_jupyter import StreamlitPatcher, tqdm

StreamlitPatcher().jupyter()  # register streamlit with jupyter-compatible wrappers

And now develop your notebook as usual, but with the ability to use
Streamlit widgets and components.

1 Like