Skip to main content

Slider generator with markdown

Project description

slidr

Create beautiful slide decks from markdown. Just write your slides in markdown, and slidr handles the rest.

Getting Started

You can use slidr in two ways:

Install it globally (recommended if you'll use it regularly):

uv tool install slidr

Or run it on the fly (if you're just trying it out):

uvx slidr new my-deck
uvx slidr build my-deck/deck
uvx slidr serve my-deck/deck -p 8000

Either way, here's the typical workflow:

Create a project, build HTML, and run a local preview server.

slidr new my-deck
cd my-deck
slidr build deck
slidr serve deck

Write your slides in deck/deck.md using --- to separate them. When you build, slidr generates an index.html file you can open in any browser.

Example Deck

Want to see Slidr in action? This repository includes an example deck, if you clone the repo, you can navigate to see the generated slides as:

# Build and serve the example
slidr serve deck

View the source in deck/deck.md to see how the deck is structured.

Themes

Slidr comes with a collection of beautiful built-in themes. Use them by specifying the theme in your markdown front matter:

---
theme: default
---
# First Slide

Built-in Themes

default default minimal-light minimal-light
dark-professional dark-professional high-contrast high-contrast

Custom Themes

Want to make something your own? Create a theme.css file in your deck/ directory:

# Your project structure
my-deck/
  deck/
    deck.md
    theme.css      # Your custom theme
    index.html

Using Web Fonts

Want to use custom fonts? It's easy. Add the font definitions to your theme.css:

/* Apply fonts to elements */
html, body {
  font-family: 'Inter', sans-serif;
}

.slide h1, .slide h2, .slide h3 {
  font-family: 'Outfit', sans-serif;
}

.slide code, .slide pre code {
  font-family: 'JetBrains Mono', monospace;
}

Slidr's template includes popular web fonts by default. If you need fonts that aren't included yet, feel free to open a PR—we can add them! Just note that font links need to be added to the HTML template (not as@import in CSS, as that doesn't work reliably with inline styles).

Configuration

Customize your deck using front matter at the top of your markdown file. It's a simple YAML block that controls how your slides look and behave:

---
theme: dark-professional
title: My Awesome Presentation
align: center
code_highlight: monokai
---

# First Slide
Content starts here...

Options

  • theme — Which theme to use

    • Built-in: default, minimal-light, dark-professional, high-contrast
    • Custom: Path to your own CSS file (e.g., custom-theme.css)
    • Priority: CLI argument > front matter > local deck/theme.css > default
  • title — Browser tab title (default: "Slide Deck")

    • Example: title: Introduction to Python
  • align — Text alignment for all slides (left, center, right; default: left)

    • Example: align: center
  • code_highlight — Syntax highlighting for code blocks

    • Options: Any Pygments style name like monokai, github, dracula, solarized-dark, nord
    • Disable: off, false, no, or none
    • Example: code_highlight: dracula

AI-Powered Theme Creation

Want a custom theme without writing CSS? Use the slidr-theme-creator AI skill to generate one based on your needs:

  • "Create a dark theme with blue gradients and modern fonts"
  • "Generate a corporate theme using brand colors #0066cc and #003d7a"
  • "Make a minimal light theme optimized for readability"
  • "Design a code-focused theme with syntax highlighting colors"

The skill handles design patterns, accessibility, brand identity, and modern web aesthetics. Learn more in .agents/skills/slidr-theme-creator/SKILL.md.

Development

Want to contribute or run slidr locally? Here's how to set up:

Install in development mode:

uv venv
uv pip install -e .

Run tests:

uv pip install -e .[dev]
pytest

Set up pre-commit hooks:

uv pip install pre-commit
pre-commit install
pre-commit run --all-files

See Also

There are some great alternatives out there, definitely check them out!

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

slidr-0.0.7.tar.gz (13.7 kB view details)

Uploaded Source

Built Distribution

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

slidr-0.0.7-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

Details for the file slidr-0.0.7.tar.gz.

File metadata

  • Download URL: slidr-0.0.7.tar.gz
  • Upload date:
  • Size: 13.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.5 {"installer":{"name":"uv","version":"0.10.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for slidr-0.0.7.tar.gz
Algorithm Hash digest
SHA256 07925adbc688970f231195489aa3d81e297f70867e5cde46259da5ccac3b6bd8
MD5 d233a3beb93c25f7306ac372e61e65bf
BLAKE2b-256 ac34323be66bd044430d85d22ae9830f72d9ee6243e60f92823ffb3bf1b2e35a

See more details on using hashes here.

File details

Details for the file slidr-0.0.7-py3-none-any.whl.

File metadata

  • Download URL: slidr-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 19.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.10.5 {"installer":{"name":"uv","version":"0.10.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for slidr-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 8090af96ac685d589c242a5cf160b5e4f8e2b89fd557181130aeadfbec3a18e4
MD5 51c6cd22676a993eca03fa834125c9a7
BLAKE2b-256 49814c93e0cd6b9c7cab9868e9cd8c9a25afdce92ebeb4f2ca4b4636bb88417c

See more details on using hashes here.

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