1
1
mirror of https://github.com/jxnblk/mdx-deck.git synced 2024-09-19 02:47:09 +03:00
♠️ React MDX-based presentation decks
Go to file
Brent Jackson a2021e676e Edit docs
2019-07-16 20:42:14 -04:00
docs Edit docs 2019-07-16 20:42:14 -04:00
examples v2.5.0 2019-07-07 13:13:26 -04:00
packages Edit docs 2019-07-16 20:42:14 -04:00
templates/basic Adjust theme export syntax in template 2019-07-16 17:20:02 -04:00
.gitignore Add basic starter package 2019-07-16 16:51:17 -04:00
.prettierrc Update husky and lint-staged 2019-07-07 13:00:53 -04:00
.travis.yml Add now config 2019-03-10 21:44:13 -04:00
CHANGELOG.md Edit changelog 2019-06-19 14:23:36 -04:00
CONTRIBUTING.md Update contributing docs 2019-04-13 12:10:30 -04:00
lerna.json v2.5.0 2019-07-07 13:13:26 -04:00
LICENSE.md Edit readme 2018-07-29 12:37:09 -04:00
MIGRATION.md Edit docs and add dots theme 2019-07-16 20:22:04 -04:00
netlify.toml Remove unused configs and update dependencies 2019-07-16 13:43:55 -04:00
package.json Adjust export package 2019-07-16 18:45:43 -04:00
README.md Adde symlink for readme 2019-03-16 13:15:19 -04:00
yarn.lock Edit docs and add dots theme 2019-07-16 20:22:04 -04:00

MDX Deck

Award-winning MDX-based presentation decks

Build Status Version Downloads

View demo

Getting Started

npm i -D mdx-deck

Create an MDX file and separate each slide with ---.

# This is the title of my deck

---

# About Me

---

```jsx
<CodeSnippet />
```

---

import Demo from './components/Demo'

## <Demo />

# The end

Add a run script to your package.json with the MDX Deck CLI pointing to the .mdx file to start the dev server:

"scripts": {
  "start": "mdx-deck deck.mdx"
}

Start the dev server:

npm start

Videos & Articles

Using MDX

MDX uses Markdown syntax and can render React components inline with JSX.

Imports

To import components, use ES import syntax separated with empty lines between any markdown or JSX syntax.

import { Box } from 'rebass'

<Box color="tomato">Hello</Box>

Read more about MDX syntax in the MDX Docs.

Theming

MDX Deck uses Theme UI and Emotion for styling, making practically any part of the presentation themeable. It also includes several built-in themes to change the look and feel of the presentation. See the list of available Themes, or read more about theming in the Theming docs.

Components

MDX Deck includes built-in components to help with creating presentations, including a background Image component, an Appear component that allows stepping through parts of a single slide, and a Notes component for adding speaker notes. Read more in the Components docs.

Add-ons & Libraries

These third-party libraries are built for use with MDX Deck.

  • CodeSurfer: React component for scrolling, zooming and highlighting code.
  • mdx-code: Runnable code playgrounds for MDX Deck.
  • mdx-deck-live-code: Live React and JS coding in slides.

Note: please check with version compatibility when using these libraries.

Layouts

Each slide can include a custom layout around its content. This can be used as a substitute for slide templates found in other presentation apps and libraries.

// example Layout.js
import React from 'react'

export default ({ children }) => (
  <div
    style={{
      width: '100vw',
      height: '100vw',
      backgroundColor: 'tomato',
    }}>
    {children}
  </div>
)
import Layout from './Layout'

# No Layout

---

<Layout>

# Custom Layout

</Layout>

The layout component will wrap the MDX elements within that slide, which means you can add layout styles, use a nested ThemeProvider, or style elements with CSS-in-JS.

Built-in Layouts

MDX Deck includes a few built-in layouts for inverting theme colors and changing the layout of a slide.

Presenter Mode

MDX Deck includes a built-in Presenter Mode, with a preview of the next slide and a timer.

presenter mode screenshot

Keyboard Shortcuts

Key Description
Left Arrow, Page Up, Shift + Space Go to previous slide (or step in Appear)
Right Arrow, Page Down, Space Go to next slide (or step in Appear)
Option + P Toggle Presenter Mode
Option + O Toggle Overview Mode
Option + G Toggle Grid Mode

Exporting

Add a build script to your package.json to export a presentation as HTML with a JS bundle.

"scripts": {
  "build": "mdx-deck build deck.mdx"
}

See more exporting options in the Exporting Documentation

CLI Options

-p --port     Dev server port
-h --host     Host the dev server listens to
--no-open     Prevent from opening in default browser

Docs

Real Examples

See how others have used MDX Deck for their presentations.

Usage Examples

The following examples will open in CodeSandbox.


MIT License