Skip to main content

CLI that compiles a JSON5 deck + slide files into a self-contained 2D-canvas HTML presentation.

Project description

scrolly

Compile a JSON5 deck into a single, self-contained, scrollable 2D-canvas HTML presentation.

Liked by humans; understood by agents.

scrolly — scroll-driven 2D-canvas presentations

CI PyPI Python License

Why it's different

  • A 2D canvas you fly around, not a linear reel. Slides sit on an integer grid connected by edges; readers zoom out to a deck map and zoom into any slide to scroll through it.
  • Scroll-driven keyframe animation. Element properties (position, size, opacity, scale, angle) interpolate as the reader scrolls — no timeline, no autoplay.
  • One self-contained HTML file. A default build inlines every asset into a single index.html with zero external loads — open it by double-clicking, host it anywhere, email it.
  • Agent-friendly. The CLI exposes full help, input schemas, deck introspection, and numbered error codes, so agentic coding tools immediately understand how to author and debug scrolly decks.

Installation

pip install scrolly        # or: uv tool install scrolly

Quickstart

scrolly init my-deck                                    # scaffold a starter deck
scrolly build my-deck/deck.deck.json --out out --force  # compile to one HTML file
open out/index.html                                     # double-click anywhere

A deck is a .deck.json manifest plus one .slide.json per slide (both parsed as JSON5):

// deck.deck.json
{
  title: "My Deck",
  slides: [
    { id: "intro", position: [0, 0], source: "slides/intro.slide.json" },
  ],
  edges: [],
}
// slides/intro.slide.json
{
  title: "My Deck",
  elements: [
    { markdown: "# My Deck\n\nWelcome to your new presentation." },
  ],
}

Elements

Slides hold elements of six types — markdown, image, image_sequence, mermaid, html, and iframe — each animatable via scroll-driven keyframes. See the element reference for fields and examples.

Learn more

License

MIT.

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

scrolly-0.3.5.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

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

scrolly-0.3.5-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

Details for the file scrolly-0.3.5.tar.gz.

File metadata

  • Download URL: scrolly-0.3.5.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for scrolly-0.3.5.tar.gz
Algorithm Hash digest
SHA256 cb3a520a0ec83532bbe62f87ba8bca6ce5d8f6df48e13870867e9d5ce9686f47
MD5 1544cf6e6d0e891c26fd93e6d093a5f1
BLAKE2b-256 da3f3b8b9c7c6c564e6e60216cbfed9b37dbb1cd05917b216bcd94bfc1bbe14d

See more details on using hashes here.

Provenance

The following attestation bundles were made for scrolly-0.3.5.tar.gz:

Publisher: release_tag.yml on bertpl/scrolly

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

File details

Details for the file scrolly-0.3.5-py3-none-any.whl.

File metadata

  • Download URL: scrolly-0.3.5-py3-none-any.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for scrolly-0.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 acb0994c3ef0a1e474d825c407b50f4a696231725be41e14d534f81462e22ebb
MD5 051837f20228bed380d3926576dc8493
BLAKE2b-256 d988ee60f8b83076d87c98dcac9688a2d9860521b03536be66368f7cfc7a50ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for scrolly-0.3.5-py3-none-any.whl:

Publisher: release_tag.yml on bertpl/scrolly

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