Skip to main content

Streamlit copy‑to‑clipboard button component

Project description

Streamlit Copy-to-Clipboard Button Component

Streamlit App PyPI Python Version GitHub License Ask DeepWiki

A tiny, theme‑aware Streamlit component that adds a one‑click "copy-to-clipboard" button to your app — perfect for the chat UI, URLs or any other text the user might need to copy.

✨ Features

  • Streamlit theme aware: Adapts icon color & tooltip style automatically; works in both light and dark themes.
  • Inline layout: Built on Streamlit Custom Components v2 (frameless, no iframe), so the button aligns beside other elements inside st.container(horizontal=True).
  • Two icon styles: Google Material Symbols (default) or the native Streamlit code‑block icon.
  • Custom tooltip & "Copied!" label: Localized UI in one line.
  • Keyboard‑friendly: Fully focusable, press Enter/Space to copy.

🔧 Installation

pip install st-copy

⚡ Quick start

import streamlit as st
from st_copy import copy_button

st.title('Minimal demo')

copy_button('Hello, Streamlit!')  # one line – that's it 🎉

Run your script:

streamlit run app.py

🛠 API

def copy_button(
    text: str,
    *,
    icon: Literal['material_symbols', 'st'] = 'material_symbols',
    tooltip: str = 'Copy',
    copied_label: str = 'Copied!',
    key: Optional[str] = None,
) -> Optional[bool]:
Parameter Type / Default Description
text str Text placed on the user’s clipboard.
icon Literal['material_symbols', 'st']
default 'material_symbols'
Icon style: Google Material content_copy (material_symbols) or Streamlit’s native code‑block icon (st).
tooltip str, default 'Copy' Tooltip shown on hover/focus.
copied_label str, default 'Copied!' Small label displayed for ~1 s after a successful copy.
key str | None, default None Unique component key; if omitted a random UUIDv4 is generated.
Returns bool | None True – copy succeeded; False – Clipboard API failed; None – button not clicked yet.

Requirements

  • Python 3.10 or newer.
  • Streamlit 1.56 or newer (the component uses the Custom Components v2 API).
  • Clipboard API requires a secure (HTTPS) context when deployed.

🎨 Examples

See examples/app.py for a chat‑style demo that showcases every argument and the deployed version at https://st-copy.streamlit.app/.

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

st_copy-2.0.0.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

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

st_copy-2.0.0-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

Details for the file st_copy-2.0.0.tar.gz.

File metadata

  • Download URL: st_copy-2.0.0.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for st_copy-2.0.0.tar.gz
Algorithm Hash digest
SHA256 3810e5f380a8649d966ad9b7755fdb559ecf9a093e12449c979c15e30e1d7de2
MD5 deb186559cdf4017a9471e066f832ad4
BLAKE2b-256 ba613249c3648034a9ba0382d823d7da5186b0a241420efe9e6edf674c15e4d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for st_copy-2.0.0.tar.gz:

Publisher: python-publish.yml on alex-feel/st-copy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file st_copy-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: st_copy-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 7.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for st_copy-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dd6ef78040c257a5070bf10837ffadb930b3039d1c838a57fc9238711986736a
MD5 9ce062c218a51900bed68230da91c93a
BLAKE2b-256 0c9c59939ae5517bf6e7f787c02e68866b7d5db0f063cc707fed0508cf2cba0a

See more details on using hashes here.

Provenance

The following attestation bundles were made for st_copy-2.0.0-py3-none-any.whl:

Publisher: python-publish.yml on alex-feel/st-copy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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