Skip to main content

A streamlit component, to make UI cards

Project description

st-card

Streamlit Component, for a UI card

authors - @gamcoh @Pernod Ricard

image

Installation

Install streamlit-card with pip

pip install streamlit-card

usage, import the card function from streamlit_card

from streamlit_card import card

hasClicked = card(
  title="Hello World!",
  text="Some description",
  image="http://placekitten.com/200/300",
  url="https://github.com/gamcoh/st-card"
)

You can also use a local image by doing this instead

import base64

with open(filepath, "rb") as f:
    data = f.read()
    encoded = base64.b64encode(data)
data = "data:image/png;base64," + encoded.decode("utf-8")

from streamlit_card import card

hasClicked = card(
  title="Hello World!",
  text="Some description",
  image=data
  url="https://github.com/gamcoh/st-card"
)

You can also create a card without an URL. That way you control the behavior when the user click on it. For instance:

from streamlit_card import card

hasClicked = card(
  title="Hello World!",
  text="Some description",
  image="http://placekitten.com/200/300",
)

if hasClicked:
    # do something

If you want, you could use a callback to handle the click like so:

from streamlit_card import card

hasClicked = card(
  title="Hello World!",
  text="Some description",
  image="http://placekitten.com/200/300",
  on_click=lambda: print("Clicked!")
)

Customizations

If you want, you could use a callback to handle the click like so:

from streamlit_card import card

res = card(
    title="Streamlit Card",
    text="This is a test card",
    image="https://placekitten.com/500/500",
    styles={
        "card": {
            "width": "500px",
            "height": "500px",
            "border-radius": "60px",
            "box-shadow": "0 0 10px rgba(0,0,0,0.5)",
            ...
        },
        "text": {
            "font-family": "serif",
            ...
        }
    }
)

If you want to set the size of as use_column_width=True, do this:

from streamlit_card import card

res = card(
    title="Streamlit Card",
    text="This is a test card",
    image="https://placekitten.com/500/500",
    styles={
        "card": {
            "width": "100%", # <- make the card use the width of its container, note that it will not resize the height of the card automatically
            "height": "300px" # <- if you want to set the card height to 300px
            ...
        }
    }
)

If you want to modify the filter applied to the image, you could do this:

from streamlit_card import card

res = card(
    title="Streamlit Card",
    text="This is a test card",
    image="https://placekitten.com/500/500",
    styles={
        "card": {
            "width": "500px",
            "height": "500px",
            "border-radius": "60px",
            "box-shadow": "0 0 10px rgba(0,0,0,0.5)",
            ...
        },
        "filter": {
            "background-color": "rgba(0, 0, 0, 0)"  # <- make the image not dimmed anymore
            ...
        }
    }
)

The editable CSS are "card", "title", "text", "filter" and "div".

Multiple descriptions

from streamlit_card import card

res = card(
    title="Streamlit Card",
    text=["This is a test card", "This is a subtext"],
    image="https://placekitten.com/500/500",
)

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-card-1.0.0.tar.gz (672.3 kB view details)

Uploaded Source

Built Distribution

streamlit_card-1.0.0-py3-none-any.whl (680.8 kB view details)

Uploaded Python 3

File details

Details for the file streamlit-card-1.0.0.tar.gz.

File metadata

  • Download URL: streamlit-card-1.0.0.tar.gz
  • Upload date:
  • Size: 672.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for streamlit-card-1.0.0.tar.gz
Algorithm Hash digest
SHA256 be8b784d8145a4efe3c97c191db7727c96dea97912385957279ec42a7f547674
MD5 7f6a095bd4e496d623f32f9435818d7e
BLAKE2b-256 c96b1b330935e10e0734b7da180f5a83931f589edded6ca1111260a7a3fcabb5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for streamlit_card-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 625ab3cd1e5368c7d9c5aeeb52a67786183e0dba940d668c556fbae01149fb3f
MD5 813050527fee51d2c93ccdd2ff8a21bb
BLAKE2b-256 7a2bc888890ee9c6ef68dd664bcb3fca3aa7ff6ab2add1957ed01b6586b58452

See more details on using hashes here.

Supported by

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