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.3.tar.gz (385.4 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.3-py3-none-any.whl (386.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: streamlit_carbon_button-1.0.3.tar.gz
  • Upload date:
  • Size: 385.4 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.0.3.tar.gz
Algorithm Hash digest
SHA256 2d90c7e3583d26d638d72605aa670faa87fa83426095370e8aa076198838b39a
MD5 a9306880c4071f665cfb3f836bf80518
BLAKE2b-256 6b827449c2aa0988335228e6ae900b2251dd590a94cf4b3a4dd04e79d5abbb9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for streamlit_carbon_button-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 58e704c4cab9fb42663ae9ff8b2dcba4082d3c31116e377c6eddc1fa62ed272c
MD5 0978c5e7204f56ded208132913ddc59c
BLAKE2b-256 fb05c87f96db70c4a41ba38e8cdea1a99e4404c7f346237f8d1c4ca0ead33f9d

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