devrabiul/laravel-toaster-magic

Laravel Toaster Magic is a lightweight, flexible toast library for Laravel projects, with no jQuery, Bootstrap, or Tailwind dependency.

Installs: 13 598

Dependents: 0

Suggesters: 0

Security: 0

Stars: 186

Watchers: 6

Forks: 13

Open Issues: 0

Language:JavaScript

v1.3 2025-07-31 09:09 UTC

This package is auto-updated.

Last update: 2025-08-12 10:16:05 UTC


README

Laravel Toaster Magic is a lightweight and flexible toast notification package for Laravel applications β€” built with zero dependencies on jQuery, Bootstrap, or Tailwind. It’s fully compatible with Livewire, supports custom events, and now features a Material-inspired design for a modern UX out of the box.

Latest Stable Version Total Downloads Monthly Downloads GitHub license Buy us a tree GitHub Repo stars

πŸ“š Table of Contents

πŸš€ Live Demo

πŸ‘‰ Check out the live demo

Live Demo Thumbnail

✨ Features

  • πŸ”₯ Easy-to-Use – Simple and intuitive toast notifications for Laravel.
  • 🌍 RTL Support – Full compatibility with right-to-left (RTL) languages.
  • πŸŒ™ Dark Mode – Seamless dark mode integration.
  • 🎨 Customizable – Tailor toasts with various styles, buttons, and positions.
  • ⚑ Livewire v3 Ready – Fully supports Livewire v3 with event-based dispatching.

πŸ“¦ Installation

Install the package via Composer:

composer require devrabiul/laravel-toaster-magic

Then publish the package assets:

php artisan vendor:publish --provider="Devrabiul\ToastMagic\ToastMagicServiceProvider"

βš™οΈ Usage

1. Basic Setup

Include the necessary assets in your layout Blade template:

In the <head> section:

{!! ToastMagic::styles() !!}

Before the closing </body> tag:

{!! ToastMagic::scripts() !!}

Example:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Page</title>

    {!! ToastMagic::styles() !!}
</head>
<body>

    <!-- Your Content -->

    {!! ToastMagic::scripts() !!}
</body>
</html>

2. Usage in Controller

Trigger toast notifications from your controllers using the ToastMagic facade:

use Devrabiul\ToastMagic\Facades\ToastMagic;

public function store()
{
    // Your logic
    ToastMagic::success('Successfully Created');
    
    // Another Way - message and description
    ToastMagic::success("Success!", "Your data has been saved!");
    
    // Another Way - message and description
    ToastMagic::success("Success!", "Your data has been saved!", [
        'showCloseBtn' => true,
        'customBtnText' => 'Link Text',
        'customBtnLink' => 'https:/demo.com',
    ]);
    return back();
}

3. Usage in JavaScript (Optional)

Use ToastMagic directly in JavaScript (for AJAX responses, etc.):

const toastMagic = new ToastMagic();

// Basic notifications
toastMagic.success("Success!", "Your data has been saved!");
toastMagic.error("Error!", "Something went wrong.");
toastMagic.warning("Warning!", "Check your input.", true);
toastMagic.info("Info!", "Click for details.", false, "Learn More", "https://example.com");

4. βœ… Livewire v3 Support

Enable Livewire support by updating your config file:

// config/laravel-toaster-magic.php

return [
    'options' => [
        // your toast options...
    ],
    'livewire_enabled' => true,
    'livewire_version' => 'v3',
];
  • Set 'livewire_enabled' => true to activate Livewire integration.
  • Set 'livewire_version' => 'v3' to specify the Livewire version.

Dispatch toast notifications from Livewire components:

$this->dispatch('toastMagic',
    status: 'success',
    title: 'User Created',
    message: 'The user has been successfully created.',
    options: [
        'showCloseBtn' => true,
        'customBtnText' => 'Link Text',
        'customBtnLink' => 'https:/demo.com',
    ],
);

$this->dispatch('toastMagic',
    status: 'info',
    title: 'User Created 2',
    message: 'The user has been successfully created.'
);

Supported status types: success, info, warning, error

5. βœ… Themes

Change Theme by updating your config file:

// config/laravel-toaster-magic.php

return [
    'options' => [
        // your toast options..
        "theme" => "material", // "default, material".
    ],
    // your toast options..
];

6. 🎨 Enabling Color Mode

ToastMagic supports a color mode that dynamically applies toast colors based on the toast type (success, error, warning, info). This makes your notifications visually consistent and meaningful without manually specifying colors or themes.

Enable color mode in your configuration file config/laravel-toaster-magic.php:

return [
    'options' => [
        // other options...
        'color_mode' => true, // Automatically apply colors based on toast type
    ],
    'livewire_enabled' => false,
    'livewire_version' => 'v3',
];

🧩 Alternative Syntax & Fluent API

ToastMagic provides both simple and advanced APIs to suit your style.

πŸ”Ή Static Method (Quick)

use Devrabiul\ToastMagic\Facades\ToastMagic;

ToastMagic::success('Operation Successful');
ToastMagic::error('Something went wrong');

πŸ”Ή Fluent Syntax (Advanced)

ToastMagic::dispatch()->success(
    'User Created',
    'The user has been successfully created.',
    [
        'showCloseBtn'    => true,
        'customBtnText'   => 'View Profile',
        'customBtnLink'   => 'https://demo.com',
    ]
);

πŸ“ Toast Position Options

Customize toast display position using any of the following:

Position Description
toast-top-start Top left corner
toast-top-end Top right corner (default)
toast-top-center Top center
toast-bottom-start Bottom left corner
toast-bottom-end Bottom right corner
toast-bottom-center Bottom center

πŸŒ™ Enable Dark Mode

Add theme="dark" to your <body> tag to automatically enable dark mode.

<body theme="dark">

🎯 Get Started Today!

Experience the magic of ToastMagic and enrich your Laravel application with modern, elegant toast notifications.

🀝 Contributing

We welcome contributions! Please fork the repository, make your changes, and submit a pull request. For feature requests or issues, open a GitHub issue.

πŸ“„ License

This package is open-source software licensed under the MIT license.

🌱 Treeware

This package is Treeware. If you use it in production, then we ask that you buy the world a tree to thank us for our work. By contributing to the Treeware forest you’ll be creating employment for local families and restoring wildlife habitats.

πŸ“¬ Contact

For support or inquiries, feel free to reach out: πŸ“§ devrabiul@gmail.com