reflex-blossom-carousel
A Reflex custom component that wraps Blossom Carousel — a native-scroll-first carousel enhanced with physics-based drag for pointer devices (0 KB on touch).
Status: beta. The component wrapper is implemented and tested. Design and API are documented under
specs/following Spec-Driven Design (SDD).
Why
Reflex has no built-in carousel. Blossom Carousel builds on native browser scrolling (full performance + accessibility) and ships an official React package (@blossom-carousel/react, MIT). This project wraps it so you can use it from pure Python in Reflex.
Usage
import reflex as rx
from reflex_blossom_carousel import blossom_carousel
def index() -> rx.Component:
carousel = blossom_carousel(
*[rx.el.li(str(i + 1), class_name="slide") for i in range(12)],
as_="ul",
class_name="carousel",
repeat=False,
load="conditional",
)
return rx.vstack(
carousel,
rx.hstack(
rx.button("Previous", on_click=carousel.prev(align="center")),
rx.button("Next", on_click=carousel.next(align="center")),
),
)
See the full API in specs/api/component-api-v1.md.
Installation
pip install reflex-blossom-carousel
# or
uv add reflex-blossom-carousel
Requires Python ≥ 3.11 and Reflex ≥ 0.10.0. For Reflex 0.9.x, pin reflex-blossom-carousel==0.1.1.
Development
Requires Python ≥ 3.11 and Reflex ≥ 0.10.0. This project is managed with uv; local development uses Python 3.13 (.python-version), and CI also checks 3.11 and 3.14.
uv sync --all-extras # create the venv and install deps (editable local package)
uv run pytest # unit tests
uv run python -c "import reflex_blossom_carousel" # smoke test
# run the demo app
cd blossom_carousel_demo
uv run reflex run
Building and releasing
Reflex 0.10 removed the reflex component CLI (init / build / publish / share). The package is now built with standard tooling:
# Regenerate the .pyi type stubs (only needed when the component's props change)
uv run python -m reflex_base.utils.pyi_generator custom_components/reflex_blossom_carousel
uv build # sdist + wheel in dist/ (the wheel ships the .pyi stub)
Releases are published to PyPI by the Publish workflow through Trusted Publishing (no API token). To release:
uv version --bump patch # or minor / major; updates pyproject.toml and uv.lock
# update CHANGELOG.md, open a PR, merge it into main once CI is green, then:
git checkout main && git pull
git tag v$(uv version --short)
git push origin v$(uv version --short)
The workflow checks that the tag matches version in pyproject.toml, runs the tests, builds and checks the distributions, publishes them to PyPI and creates the GitHub Release. See CHANGELOG.md.
Project layout:
custom_components/reflex_blossom_carousel/ # the wrapper (rx.Component)
blossom_carousel_demo/ # demo Reflex app
specs/ # SDD documents (PRD, API, tech design, plan)
Specs (Spec-Driven Design)
See specs/README.md for the index: PRD, Component API Spec, Technical Design, and Implementation Plan.
Credits & License
- Wraps
@blossom-carousel/reactand@blossom-carousel/coreby Jesper Vos (MIT). - This wrapper is licensed under Apache-2.0 (Reflex custom component default).
Metadata
Release files for reflex-blossom-carousel 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| reflex_blossom_carousel-0.2.1.tar.gz | 6.9 kB | With provenance | Details for reflex_blossom_carousel-0.2.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| reflex_blossom_carousel-0.2.1-py3-none-any.whl | Python 3 | none | any | Details for reflex_blossom_carousel-0.2.1-py3-none-any.whl |
Total release size: 13.8 kB
Release files / reflex_blossom_carousel-0.2.1.tar.gz
| Download URL | reflex_blossom_carousel-0.2.1.tar.gz |
|---|---|
| Size | 6.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
802476da6f74ef3ee192a845c0c92cee76b0813516da7e6f91bf418061e6da59
|
|
BLAKE2b-256 checksum How to use checksums |
d9803dca8d36a04433adc411080bb0951a3f36582eeb04e7f24a9bb9c99e2a01
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.
Transparency logRelease files / reflex_blossom_carousel-0.2.1-py3-none-any.whl
| Download URL | reflex_blossom_carousel-0.2.1-py3-none-any.whl |
|---|---|
| Size | 6.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c38da71e83a02bf9619185ca0a60aec98f0b309911fecacc7913a751cdf3cc54
|
|
BLAKE2b-256 checksum How to use checksums |
232c0959f980450691e181b2933350d2cb4fb9eede78554d4a3825700842d903
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.
Transparency logSecurity for reflex-blossom-carousel 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for reflex_blossom_carousel-0.2.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 24, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.