Skip to main content

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

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)

Source distribution for reflex-blossom-carousel 0.2.0
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)

Table of built distributions (wheels) for reflex-blossom-carousel 0.2.0
File Interpreter ABI Platform Actions
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

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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page