Skip to content

spacefan/streamlit-option-menu

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

streamlit-option-menu

streamlit-option-menu is a simple Streamlit component that allows users to select a single item from a list of options in a menu. It is similar in function to st.selectbox(), except that:

  • It uses a simple static list to display the options instead of a dropdown
  • It has configurable icons for each option item and the menu title

It is built on streamlit-component-template-vue, styled with Bootstrap and with icons from bootstrap-icons

Installation

pip install streamlit-option-menu

Parameters

The option_menu function accepts the following parameters:

  • menu_title (required): the title of the menu; pass None to hide the title
  • options (required): list of (string) options to display in the menu; set an option to "---" if you want to insert a section separator
  • default_index (optional, default=0): the index of the selected option by default
  • menu_icon (optional, default="menu-up"): name of the bootstrap-icon to be used for the menu title
  • icons (optional, default=["caret-right"]): list of bootstrap-icon names to be used for each option; its length should be equal to the length of options
  • orientation (optional, default="vertical"): "vertical" or "horizontal"; whether to display the menu vertically or horizontally

The function returns the (string) option currently selected

Example

import streamlit as st
from streamlit_option_menu import option_menu

with st.sidebar:
    selected = option_menu("Main Menu", ["Home", 'Settings'], 
        icons=['house', 'gear'], menu_icon="cast", default_index=1)
    selected

# horizontal menu
selected2 = option_menu(None, ["Home", "Upload", "Tasks", 'Settings'], 
    icons=['house', 'cloud-upload', "list-task", 'gear'], 
    menu_icon="cast", default_index=0, orientation="horizontal")
selected2

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Vue 46.6%
  • Python 35.2%
  • TypeScript 9.8%
  • JavaScript 3.8%
  • HTML 3.5%
  • Shell 1.1%