# 🧁 Toastra – Notification Plugin
Ein universelles Notification-System für jede Art von Projekt (Vanilla JS, Laravel + Vite, usw.). Über eine globale `toastra.notify(...)`-API können Benachrichtigungen angezeigt werden, während eine globale `config.js` Standardwerte (Position, Dauer, Animation etc.) verwaltet.
Dieses Plugin ist **nicht** von Vue, React oder AlpineJS abhängig – alles läuft in reinem JavaScript.
**Domain:** [toastra.com](https://toastra.com)
---
## 📁 Verzeichnisstruktur
```
src/
└── plugins/
└── Toastra/
├── index.js
├── src/
│ ├── config.js
│ ├── message.js
│ └── message.css
└── README.md
```
---
## ⚙️ Integration
### 1. HTML-Einbindung (ohne Build-Tool)
```html
```
Jetzt kannst du direkt `toastra.notify(...)` verwenden.
---
### 2. Laravel + Vite Setup
#### Vite-Konfiguration (`vite.config.js`)
```js
resolve: {
alias: {
'@': '/resources/js',
'@toastra': '/src/plugins/Toastra',
},
}
```
#### In `app.js` importieren:
```js
import '@toastra';
```
#### In `app.css` importieren:
```css
@import "@toastra/src/message.css";
```
---
## 🚀 Verwendung
### Standardwerte in `config.js`
```js
toastra.config({
mode: "dark-mode",
icon: true,
position: "bottom-center",
progressbar: true,
animation: "slide-up",
});
```
### Benachrichtigung anzeigen
```js
toastra.notify({ text: 'Hallo Welt!' });
toastra.notify({
title: 'Fehler',
text: 'Es ist etwas schiefgelaufen!',
type: 'error'
});
toastra.notify({
type: 'success',
text: 'Gespeichert!',
position: 'top-center',
duration: 8000
});
```
---
## ⚙️ Konfigurationsoptionen
| **Key** | **Standard** | **Beschreibung** | **Mögliche Werte** |
|--------------------|------------------------------------------------|--------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|
| `type` | `'default'` | Stil der Nachricht | `'default'`, `'success'`, `'info'`, `'warning'`, `'error'`, `'update'` |
| `mode` | `'default-mode'` | Farbmodus | `'default-mode'`, `'light-mode'`, `'dark-mode'` |
| `position` | `'top-right'` | Anzeigeort | `'top-left'`, `'top-center'`, `'top-right'`, `'bottom-left'`, `'bottom-center'`, `'bottom-right'` |
| `duration` | `3000` | Anzeigezeit in ms | Zahl |
| `selector` | `'body'` | Container für die Nachricht | CSS-Selektor |
| `icon` | `null` | Icon anzeigen | `true`, `null`, HTML-String |
| `progressbar` | `false` | Fortschrittsbalken | `true`/`false` |
| `close` | `false` | Manuelles Schließen | `true`/`false` |
| `title` | `''` | Titelzeile | String |
| `text` | `'Hi Guys, how are you?'` | Nachrichtentext | String |
| `onComplete` | `null` | Callback bei Ende | Funktion oder `null` |
| `onCompleteParams` | `{}` | Parameter für Callback | Objekt |
| `offset` | `{ top: '', left: '', right: '', bottom: '' }` | Abstand zum Bildschirmrand | CSS-Werte wie `'20px'` |
| `style` | `{ color: '', background: '' }` | Benutzerdefinierte Farben | CSS-Stilobjekt |
| `animation` | `'slide-right'` | Ein-/Ausblendanimation | `'slide-right'`, `'slide-left'`, `'slide-up'`, `'slide-down'` |
| `classname` | `''` | Zusätzliche CSS-Klassen | `'my-toast custom-class'` |
---
## 📝 Styling
Passe `message.css` an, um z. B. Farben, Abstände oder Animationen zu ändern. Auch mit Tailwind erweiterbar.
---
## 🧪 Demo & Vorschau
Live-Demo bald verfügbar unter **[toastra.com](https://toastra.com)**
Für lokale Tests einfach im Projekt:
```js
toastra.notify({ text: '🎉 Toastra funktioniert!' });
```
---
## ✅ Fazit
- Modular, Framework-unabhängig
- Elegante Toast-Benachrichtigungen
- Frei konfigurierbar über `toastra.config(...)` und `toastra.notify(...)`