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.8.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.8-py3-none-any.whl (19.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: slidr-0.0.8.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.8.tar.gz
Algorithm Hash digest
SHA256 5303c9cf47c7b3469d1532b8160ae24175e83960e2f7cc9c5f993dade8cd7d89
MD5 53aeeca3db68726da6a0cd9f4e610ad0
BLAKE2b-256 ac5c0b6a85f6fc7c035ded583dddb29156539a9a68cbb6bc7eb6ba9edfcfb0c4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: slidr-0.0.8-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.8-py3-none-any.whl
Algorithm Hash digest
SHA256 2e7e99d83c82fd999fec7aa20ec11d51873870ed7cc2614c8e07c39c0890b1d9
MD5 8d31728ccec7824a2fb2d7747be697da
BLAKE2b-256 d751648f5861f757705bbd190e6aaceaf83d0b17fd46bd52af29af1565aa2cb5

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