{"id":6463,"library":"streamlit-extras","title":"Streamlit Extras","description":"Streamlit Extras is a community-driven collection of useful Streamlit components and utilities designed to extend Streamlit's core functionality. It provides a wide range of 'extras' for common UI patterns, interactivity, and backend integrations that are not natively available in Streamlit. The library is actively maintained with frequent minor releases adding new features and fixing bugs, currently at version 1.4.1.","status":"active","version":"1.4.1","language":"en","source_language":"en","source_url":"https://github.com/arnaudmiribel/streamlit-extras","tags":["streamlit","utility","component","ui"],"install":[{"cmd":"pip install streamlit-extras","lang":"bash","label":"Install stable version"}],"dependencies":[{"reason":"streamlit-extras provides extensions for Streamlit applications and requires Streamlit to function.","package":"streamlit","optional":false}],"imports":[{"symbol":"stylable_container","correct":"from streamlit_extras.stylable_container import stylable_container"},{"symbol":"no_footer","correct":"from streamlit_extras.no_footer import no_footer"},{"note":"The `st_theme` extra was deprecated in v0.7.5. Use Streamlit's native `st.set_page_config(layout='wide', initial_sidebar_state='expanded')` or custom CSS for theming.","wrong":"from streamlit_extras.st_theme import st_theme","symbol":"st_theme","correct":"This extra is deprecated; consider using native Streamlit theme options or custom CSS."}],"quickstart":{"code":"import streamlit as st\nfrom streamlit_extras.stylable_container import stylable_container\nfrom streamlit_extras.no_footer import no_footer\nfrom streamlit_extras.badges import badge\n\nst.set_page_config(layout=\"centered\")\nst.title(\"Streamlit Extras Quickstart\")\n\nwith stylable_container(\n    key=\"my_stylable_container\",\n    css_styles=\"\"\"\n        {\n            border: 2px solid #4CAF50;\n            border-radius: 10px;\n            padding: 15px;\n            margin-bottom: 20px;\n        }\n        \"\"\"\n):\n    st.subheader(\"A Stylable Section\")\n    st.write(\"This content is wrapped in a container with custom CSS.\")\n    st.button(\"Hello from inside!\")\n\nbadge(type=\"info\", text=\"Powered by Streamlit Extras\")\n\n# Example of removing Streamlit's default footer\nno_footer()","lang":"python","description":"This quickstart demonstrates how to use `stylable_container` to apply custom CSS to a section of your Streamlit app, how to add a `badge`, and how to use `no_footer` to remove the default Streamlit footer. Many other extras follow a similar import and usage pattern."},"warnings":[{"fix":"Review the official `streamlit-extras` documentation and examples for v1.0.0 and later. Test your application thoroughly and adapt custom components to the new architecture if necessary.","message":"Version 1.0.0 introduced a significant repository re-architecture to support Streamlit Custom Components v2 (CCv2). While many existing extras might still function, users who built custom components or heavily integrated with `streamlit-extras` internals prior to v1.0.0 may need to update their code.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Instead of `from streamlit_extras.st_theme import st_theme`, use Streamlit's native `st.set_page_config(layout='wide', initial_sidebar_state='expanded', theme='dark')` and custom CSS via `st.markdown` or `stylable_container` for fine-grained control.","message":"The `st_theme` extra was deprecated. Streamlit now offers robust native theming options.","severity":"deprecated","affected_versions":">=0.7.5"},{"fix":"Always consult the documentation or example app (`extras.streamlit.app`) for the specific extra you intend to use. Pay attention to any installation prerequisites or known limitations mentioned for individual extras. Test extras in your target deployment environment.","message":"Each extra often has specific usage patterns and, in some cases, implicit dependencies. Not all extras are suitable for all Streamlit deployment environments (e.g., some might rely on specific browser features or client-side JavaScript that could be limited in certain embedded contexts).","severity":"gotcha","affected_versions":"All versions"},{"fix":"Pin `streamlit-extras` to a specific minor version in your `requirements.txt` (e.g., `streamlit-extras~=1.4.0`) to prevent unexpected changes when updating. Regularly check the GitHub releases and documentation for updates to extras you rely on.","message":"Due to the community-driven nature, new extras are added frequently, and existing ones may evolve. The API surface can be dynamic.","severity":"gotcha","affected_versions":"All versions"}],"env_vars":null,"last_verified":"2026-04-15T00:00:00.000Z","next_check":"2026-07-14T00:00:00.000Z"}