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
  • 🔧 100+ Carbon Icons - Extensive library of 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.2.0.tar.gz (400.5 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.2.0-py3-none-any.whl (401.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for streamlit_carbon_button-1.2.0.tar.gz
Algorithm Hash digest
SHA256 d926d90babad18f2619e7235ec875d59524098e98ab0248ff1b6205c14cfd869
MD5 4d6f52d3eb98a3d1a2420ce2eab7534f
BLAKE2b-256 95d7b960afbe3b9c3b5560d7d266e8ff7f15bebe017cdec99d3ed5e943e5a30e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for streamlit_carbon_button-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 80594805b0d271018d982c7355fb2ff225877b6bb01c245fd8489704f62478cf
MD5 5320d43ca295ea14e4c79410f162ef19
BLAKE2b-256 994100659517ab416a2867fbfcdfcfbac3086bfc15fb8795c1d3f45a6c6f14d9

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