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)
uv publish # upload to PyPI (token via UV_PUBLISH_TOKEN or ~/.pypirc + twine)
Bump version in pyproject.toml for every 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.0
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.0.tar.gz | 6.8 kB | Without provenance | Details for reflex_blossom_carousel-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| reflex_blossom_carousel-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for reflex_blossom_carousel-0.2.0-py3-none-any.whl |
Total release size: 13.4 kB
Release files / reflex_blossom_carousel-0.2.0.tar.gz
| Download URL | reflex_blossom_carousel-0.2.0.tar.gz |
|---|---|
| Size | 6.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fed0949b1995bbdccc0a3fe3fb1457af3d20d98b17a1ec77d0e29ba8ad6554c9
|
|
BLAKE2b-256 checksum How to use checksums |
b7d58e49a8fee3bb60deddddc04dd18457d0f6daad012f33b814471c9f7402dd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.9
|
Release files / reflex_blossom_carousel-0.2.0-py3-none-any.whl
| Download URL | reflex_blossom_carousel-0.2.0-py3-none-any.whl |
|---|---|
| Size | 6.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d6b59e0258636c17511972c5f4bc93e0323f1770969158c2b9b75be08b860f30
|
|
BLAKE2b-256 checksum How to use checksums |
160249a0f30485da2628ca4b4773ff73910891c48d3b6ad5785cb94a2c002d71
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.9
|
Security for reflex-blossom-carousel 0.2.0
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A 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.