BareGit
# Random Slides

A minimalist, browser-based slideshow application that allows you to create, edit, and play Markdown-based slides. It runs entirely in your browser with no backend required and persists your data locally.

## Features

-   **Markdown Support**: Write your slides using standard Markdown syntax.
-   **No Setup**: Runs directly in the browser using modern web standards—no build steps or installation required.
-   **Local Persistence**: Your slides are automatically saved to your browser's local storage.
-   **Drag-and-Drop Reordering**: Easily rearrange your slides by dragging the slide headers.
-   **Customizable Font Size**: Set a base font size for the presentation mode (defaults to 256px for high visibility).
-   **Shuffle Mode**: Present your slides in a randomized order for study or brainstorming.
-   **Keyboard Navigation**: Simple controls for a focused presentation experience.

## Quick Start

### Running Locally

Since the app uses ES Modules, it needs to be served via a web server (rather than opened as a local file).

1.  Navigate to the project directory in your terminal.
2.  Start a simple local server:
    ```bash
    # If you have Python installed:
    python3 -m http.server
    
    # Or if you have Node.js/npx:
    npx serve .
    ```
3.  Open your browser to `http://localhost:8000` (or the port provided by your server).

## How to Use

### Edit Mode
-   **Adding Slides**: Click the **"+ Add Slide"** button at the bottom.
-   **Editing Content**: Type directly into the text boxes using Markdown.
-   **Reordering**: Click and hold the header of a slide (where it says "Slide X") and drag it to a new position.
-   **Deleting**: Click the **"Delete"** button on any slide card.
-   **Settings**: Adjust the **"Font Size"** in the top header to change how large the text appears in Play Mode.

### Play Mode
-   **Start Playing**: Click **"Play"** for the standard order or **"Shuffle Play"** for a randomized order.
-   **Navigation**: 
    -   Click the mouse or press **any key** (except ESC) to advance to the next slide.
    -   Press **ESC** to exit Play Mode and return to the editor.
-   **Layout**: Text is automatically centered both horizontally and vertically.

## Technologies Used
-   [Preact](https://preactjs.com/) (Lightweight React alternative)
-   [htm](https://github.com/developit/htm) (JSX-like syntax for standard JavaScript)
-   [Marked](https://marked.js.org/) (Markdown parsing)
-   Standard Browser APIs (LocalStorage, Drag and Drop API, ES Modules)

## License
MIT