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 |
minimal-light |
dark-professional |
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
- Built-in:
-
title— Browser tab title (default:"Slide Deck")- Example:
title: Introduction to Python
- Example:
-
align— Text alignment for all slides (left,center,right; default:left)- Example:
align: center
- Example:
-
code_highlight— Syntax highlighting for code blocks- Options: Any Pygments style name like
monokai,github,dracula,solarized-dark,nord - Disable:
off,false,no, ornone - Example:
code_highlight: dracula
- Options: Any Pygments style name like
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
07925adbc688970f231195489aa3d81e297f70867e5cde46259da5ccac3b6bd8
|
|
| MD5 |
d233a3beb93c25f7306ac372e61e65bf
|
|
| BLAKE2b-256 |
ac34323be66bd044430d85d22ae9830f72d9ee6243e60f92823ffb3bf1b2e35a
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8090af96ac685d589c242a5cf160b5e4f8e2b89fd557181130aeadfbec3a18e4
|
|
| MD5 |
51c6cd22676a993eca03fa834125c9a7
|
|
| BLAKE2b-256 |
49814c93e0cd6b9c7cab9868e9cd8c9a25afdce92ebeb4f2ca4b4636bb88417c
|