Shared slide deck component for the React course. Each module can use this to create their own slide presentations.
In your module's slides folder:
// main.jsx
import React from "react";
import ReactDOM from "react-dom/client";
import { SlideDeck } from "slide-deck";
import { slides } from "./slides";
import "./index.css";
ReactDOM.createRoot(document.getElementById("root")).render(
<React.StrictMode>
<SlideDeck slides={slides} />
</React.StrictMode>,
);{
type: 'title',
content: {
title: 'Main Title',
subtitle: 'Subtitle text',
icon: 'IconName' // Lucide icon name
}
}{
type: 'standard',
content: {
title: 'Slide Title',
points: ['Point 1', 'Point 2', 'Point 3'],
emoji: 'IconName'
}
}{
type: 'code',
content: {
title: 'Code Example',
code: `const x = 1;`,
highlights: ['Key point 1', 'Key point 2']
}
}{
type: 'comparison',
content: {
title: 'Compare Two Things',
left: {
label: 'Option A',
items: ['Item 1', 'Item 2']
},
right: {
label: 'Option B',
items: ['Item 1', 'Item 2']
}
}
}{
type: 'comparison',
content: {
title: 'Compare Code',
left: {
label: 'Before',
code: `const x = 1;`
},
right: {
label: 'After',
code: `const x = 2;`
}
}
}{
type: 'rules',
content: {
title: 'Key Rules',
rules: [
{ rule: 'Rule Name', example: 'Example text', icon: 'IconName' }
]
}
}{
type: 'welcome',
content: {
title: 'Welcome Title',
points: ['Point 1', 'Point 2', 'Point 3']
}
}{
type: 'modules',
content: {
title: 'Course Overview',
modules: [
{ num: '1-2', name: 'Module Name', icon: 'IconName' }
]
}
}Each module's slides folder needs:
- Tailwind CSS configured with the custom
primaryandsecondarycolors react-router-dominstalled- The
animate-floatandanimate-fade-inanimations in tailwind.config.js