Skip to main content

Carbon Design System buttons for Streamlit

Project description

Streamlit Carbon Button

Beautiful Carbon Design System buttons for your Streamlit apps! 🎨

Carbon Buttons Streamlit PyPI

Features

  • 🎯 Carbon Design System - Professional IBM design language
  • 🎨 4 Button Types - Primary, Secondary, Danger, and Ghost
  • 🔧 18 Carbon Icons - Pre-integrated SVG icons
  • Default Button - Teal shadow indicator for primary actions
  • 📱 Responsive - Adapts to container width
  • 🌓 Dark Mode - Automatic theme detection
  • Accessible - Keyboard navigation and screen reader support

Installation

pip install streamlit-carbon-button

Quick Start

import streamlit as st
from streamlit_carbon_button import carbon_button, CarbonIcons

# Simple button
if carbon_button("Click me!"):
    st.success("Button clicked!")

# Button with icon
if carbon_button("Save", icon=CarbonIcons.SAVE):
    st.success("Saved!")

# Default button with teal shadow
if carbon_button("Submit", is_default=True):
    st.balloons()

Button Types

# Primary (default) - Subtle grey
carbon_button("Primary", button_type="primary")

# Secondary - With border
carbon_button("Secondary", button_type="secondary")

# Danger - Red accent
carbon_button("Delete", button_type="danger")

# Ghost - Minimal style
carbon_button("Cancel", button_type="ghost")

Icons

All 18 available Carbon icons:

CarbonIcons.ADD        CarbonIcons.CLOSE      CarbonIcons.COPY
CarbonIcons.DELETE     CarbonIcons.DOWNLOAD   CarbonIcons.UPLOAD
CarbonIcons.SAVE       CarbonIcons.SEARCH     CarbonIcons.SETTINGS
CarbonIcons.FILTER     CarbonIcons.HOME       CarbonIcons.INFO
CarbonIcons.WARNING    CarbonIcons.SUCCESS    CarbonIcons.HELP
CarbonIcons.DOCUMENT   CarbonIcons.CHART_BAR  CarbonIcons.PLAY

Default Button Feature

Mark important actions with a subtle teal shadow:

col1, col2 = st.columns(2)

with col1:
    if carbon_button("Save", is_default=True):
        st.success("Saved!")
        
with col2:
    if carbon_button("Cancel", button_type="ghost"):
        st.info("Cancelled")

Advanced Examples

Icon-Only Buttons

# Perfect for toolbars
cols = st.columns(4)

with cols[0]:
    if carbon_button("", icon=CarbonIcons.ADD):
        st.info("Add")
        
with cols[1]:
    if carbon_button("", icon=CarbonIcons.EDIT):
        st.info("Edit")

Dynamic Default Buttons

# Change default based on state
is_edited = st.session_state.get('edited', False)

if carbon_button("Save", is_default=is_edited):
    st.success("Saved!")
    st.session_state.edited = False

Full Width Buttons

if carbon_button("Submit Application", use_container_width=True):
    st.success("Submitted!")

API Reference

carbon_button(
    label: str,                       # Button text
    key: str = None,                  # Unique key
    button_type: str = "primary",     # primary|secondary|danger|ghost
    icon: str = None,                 # Icon from CarbonIcons
    disabled: bool = False,           # Disable state
    use_container_width: bool = False,# Full width
    is_default: bool = False,         # Teal shadow indicator
) -> bool                             # True when clicked

Links

License

MIT License - see LICENSE for details.

Carbon Design System icons are used under Apache 2.0 License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

streamlit_carbon_button-1.0.0.tar.gz (384.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

streamlit_carbon_button-1.0.0-py3-none-any.whl (385.5 kB view details)

Uploaded Python 3

File details

Details for the file streamlit_carbon_button-1.0.0.tar.gz.

File metadata

  • Download URL: streamlit_carbon_button-1.0.0.tar.gz
  • Upload date:
  • Size: 384.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.2

File hashes

Hashes for streamlit_carbon_button-1.0.0.tar.gz
Algorithm Hash digest
SHA256 640689833d5056521e17e5b4eba4df3d2804fc7d74779e20cb239eedb2911806
MD5 f7a0c6020457818eaccb61fa718a502b
BLAKE2b-256 81a2ca87b8349c69f2ac63b0d9f025609f48f72b07bd09886bb1d087b61ae40a

See more details on using hashes here.

File details

Details for the file streamlit_carbon_button-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for streamlit_carbon_button-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 16161e78f23b238969897246fd3fea8f2b7002f2f91ca351ac6d5d762f7981a6
MD5 f6431d3ef9ba3b852053ac6a292a91cf
BLAKE2b-256 3f18506cad6207916b36a5831b057bf99b3b60906db307c67164e4826ebc591e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page