## Button Component System - Create dedicated components/ui/buttons directory with 6 specialized button components: - Button.tsx: Universal button with variants (primary, secondary, danger, link) and sizes - ActionButton.tsx: Action buttons matching existing patterns - BackButton.tsx: Navigation back buttons - CancelLink.tsx: Cancel/link style buttons - CloseButton.tsx: Modal/preview close buttons with variants - NavigationButton.tsx: Presentation navigation buttons - Update key components to use new button system (SlideEditor, ContentEditor, Modal, AlertDialog, ConfirmDialog) - Replace inline styled-jsx with proper CSS files for AlertDialog and ConfirmDialog ## Barrel Export Elimination - Remove all barrel export files violating IMPORT_STANDARDS.md: - src/themes/index.ts - src/components/themes/index.ts - src/components/presentations/index.ts - src/components/slide-editor/index.ts - Update 15+ files to use direct imports from themeLoader.ts instead of barrel exports - Fix function naming conflict in ThemeDetailPage.tsx (loadTheme shadowing) - Follow project standards: direct imports with .tsx extensions for better Vite performance ## Benefits - Improved Vite tree shaking and module resolution performance - Consistent, reusable button system across application - Adherence to project coding standards and import conventions - Reduced bundle size through elimination of barrel export overhead 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
---|---|---|
public | ||
scripts | ||
src | ||
.gitignore | ||
CLAUDE.md | ||
ERROR_HANDLING_STANDARDS.md | ||
eslint.config.js | ||
IMPORT_STANDARDS.md | ||
index.html | ||
package-lock.json | ||
package.json | ||
REACT19_IMPLEMENTATION.md | ||
README.md | ||
tsconfig.app.json | ||
tsconfig.json | ||
tsconfig.node.json | ||
USERFLOWS.md | ||
VITE_PERFORMANCE.md | ||
vite.config.ts |
Online slide presentation editor and viewer built with React and Vite
A web application for creating, editing, and presenting slide presentations with customizable themes and layouts.
Features
- Create new presentations with a selection of built-in themes
- Add slides with various layouts based on the selected theme
- Add text and images to slide layout "slots"
- Add presentation notes to slides
- Present slides in full-screen mode
- Easily switch themes and update presentations accordingly
- Modular and reusable React components
- Customizable themes with support for CSS, fonts, colors, and images
- Support for "master slides" with non-overridable content
- Responsive design for various screen sizes
- Export presentations to PDF or HTML format
Getting Started
Prerequisites
- Node.js (v20 or later)
- npm (v9 or later)
- Git (for cloning the repository)
- A modern web browser (for running the application)
- A code editor (e.g., VSCode) for development
- Basic knowledge of React, TypeScript, HTML, and CSS
- Familiarity with Vite and npm package management
Installation
- Clone the repository:
git clone https://git.dasfad.com/mmainguy/slideshare.git
- Navigate to the project directory:
cd slideshare
- Install dependencies:
-
npm install ```
- Start the development server:
-
npm run dev ```
- Open your web browser and navigate to
http://localhost:5173
to view the application.