{"_id":"toastonstaroid","_rev":"31-a827cfcb9217a2122519b88b6f007f2f","name":"toastonstaroid","dist-tags":{"latest":"2.0.6"},"versions":{"1.1.0":{"name":"toastonstaroid","version":"1.1.0","keywords":["react","toast","notification","alerts","messages","animations"],"author":{"name":"Sayan Senapati"},"license":"MIT","_id":"toastonstaroid@1.1.0","maintainers":[{"name":"sayansenapati","email":"sayansenapati2544@gmail.com"}],"homepage":"https://github.com/senapati484/toastonstaroid#readme","bugs":{"url":"https://github.com/senapati484/toastonstaroid/issues"},"dist":{"shasum":"830979c17afe0455bddac31654ae67d739d9bfb0","tarball":"https://registry.npmjs.org/toastonstaroid/-/toastonstaroid-1.1.0.tgz","fileCount":15,"integrity":"sha512-mJMt242SWxNVoeq2sm+grw1+vQmaj81tq8a39JIsm1AjhBszKaH6ANOyTsCifipkwXixxBho+67DExkH6A4CZA==","signatures":[{"sig":"MEQCIDRzc2DZm+rhQ4PFd+xcT6nNWpIv6BuVNSPKl2Ja58zQAiAq3vSHVA3d3p6qxJyq7CIxqebu8U7r9o3cuZtyUTkidQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":408163},"main":"dist/index.js","types":"./dist/index.d.ts","unpkg":"dist/index.umd.js","module":"dist/index.modern.js","source":"src/index.js","gitHead":"6b325139b1a98ea78460e42f819a5aa9aa65956b","scripts":{"dev":"microbundle watch --jsx React.createElement","build":"microbundle --jsx React.createElement"},"_npmUser":{"name":"sayansenapati","email":"sayansenapati2544@gmail.com"},"repository":{"url":"git+https://github.com/senapati484/toastonstaroid.git","type":"git"},"_npmVersion":"10.8.2","description":"A beautiful, lightweight toast notification system for React applications","directories":{},"_nodeVersion":"20.18.0","dependencies":{"animejs":"^3.2.2","zustand":"^4.5.2"},"_hasShrinkwrap":false,"devDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","microbundle":"^0.15.1"},"peerDependencies":{"react":"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/toastonstaroid_1.1.0_1745592926224_0.5620330876845585","host":"s3://npm-registry-packages-npm-production"}},"2.0.5":{"name":"toastonstaroid","version":"2.0.5","keywords":["react","toast","notification","alert","gsap","animation"],"author":"","license":"MIT","_id":"toastonstaroid@2.0.5","maintainers":[{"name":"sayansenapati","email":"sayansenapati2544@gmail.com"}],"dist":{"shasum":"21ca90af9f0a00419b3cd34ef00f54a1950c46da","tarball":"https://registry.npmjs.org/toastonstaroid/-/toastonstaroid-2.0.5.tgz","fileCount":7,"integrity":"sha512-KIYzCmdaEF7CvO6MQj3C31a5DF4Z8c0N03edmXnfD+Ijys6oUC4xSApJe92YZzssH7d4oQCw6RwBluxnd2hCdQ==","signatures":[{"sig":"MEQCIBEdPhpeXgm3qQfvUfU5IUiY0gue/IMWtBV0RpPbPPAUAiAeWzgruaDGVzOoMPzZHocHBCC0lL397uxxVXGTxeIqbg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140146},"main":"dist/index.js","types":"dist/types/index.d.ts","module":"dist/index.mjs","gitHead":"a0d0ba2f9d715f269880ded1a25230b92e990fe4","scripts":{"dev":"tsup src/index.tsx --format cjs,esm --dts --external react --watch","build":"tsup src/index.tsx --format cjs,esm --dts --external react","clean":"rm -rf dist"},"_npmUser":{"name":"sayansenapati","email":"sayansenapati2544@gmail.com"},"_npmVersion":"10.8.2","description":"A simple and beautiful toast notification library for React","directories":{},"_nodeVersion":"20.18.0","dependencies":{"gsap":"^3.13.0","react":">=16.8.0","zustand":"^5.0.6","@swc/core":"^1.13.0","react-icons":"^5.5.0","path-is-inside":"^1.0.2"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.0","typescript":"^5.8.3","@types/react":"^19.1.8","@types/react-dom":"^19.1.6"},"peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"_npmOperationalInternal":{"tmp":"tmp/toastonstaroid_2.0.5_1752839053479_0.23824915050987716","host":"s3://npm-registry-packages-npm-production"}},"2.0.6":{"name":"toastonstaroid","version":"2.0.6","description":"A simple and beautiful toast notification library for React","main":"dist/index.js","module":"dist/index.mjs","types":"dist/types/index.d.ts","scripts":{"build":"tsup src/index.tsx --format cjs,esm --dts --external react","dev":"tsup src/index.tsx --format cjs,esm --dts --external react --watch","clean":"rm -rf dist"},"keywords":["react","toast","notification","alert","gsap","animation"],"author":"","license":"MIT","peerDependencies":{"react":">=16.8.0","react-dom":">=16.8.0"},"dependencies":{"@swc/core":"^1.13.0","gsap":"^3.13.0","path-is-inside":"^1.0.2","react":">=16.8.0","react-icons":"^5.5.0","zustand":"^5.0.6"},"devDependencies":{"@types/react":"^19.1.8","@types/react-dom":"^19.1.6","tsup":"^8.5.0","typescript":"^5.8.3"},"_id":"toastonstaroid@2.0.6","gitHead":"9be940005867a5727e8dfa6168256ce3aaaa0985","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-Pip2resTo9sim+hy8u7soBEaSsP4PYl3afG/HPpL+HWM83ixEXjZZL7++4pdQMkhvE4DzCgPgahln43RGzDKrg==","shasum":"2bd82d949ffde96e30b42c9b127b6e431ec4d731","tarball":"https://registry.npmjs.org/toastonstaroid/-/toastonstaroid-2.0.6.tgz","fileCount":7,"unpackedSize":165230,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFAewex02KTmTm2PC+aFFezs7Dd2LwWtr85eYpdq6muuAiASJlMfNUKvF8wn0Skyxo+lR2a33puhVNWdQpQSrPB7Ww=="}]},"_npmUser":{"name":"sayansenapati","email":"sayansenapati2544@gmail.com"},"directories":{},"maintainers":[{"name":"sayansenapati","email":"sayansenapati2544@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/toastonstaroid_2.0.6_1753080199699_0.47431202837185027"},"_hasShrinkwrap":false}},"time":{"created":"2025-04-25T14:55:26.130Z","modified":"2025-07-21T06:43:20.094Z","1.0.0":"2025-04-23T11:37:32.472Z","1.0.1":"2025-04-24T01:20:50.044Z","1.0.2":"2025-04-24T01:50:13.945Z","1.0.3":"2025-04-24T01:57:18.437Z","1.0.4":"2025-04-24T02:07:43.456Z","1.0.5":"2025-04-24T02:13:18.573Z","1.0.6":"2025-04-24T02:31:34.914Z","1.0.7":"2025-04-24T02:45:29.809Z","1.0.8":"2025-04-24T02:55:13.980Z","1.0.9":"2025-04-24T08:14:25.611Z","1.1.0":"2025-04-25T14:55:26.438Z","1.1.1":"2025-07-15T09:52:10.398Z","1.1.2":"2025-07-15T09:58:54.154Z","1.1.3":"2025-07-15T10:12:54.579Z","2.0.0":"2025-07-17T19:30:44.142Z","2.0.1":"2025-07-17T20:21:18.248Z","2.0.2":"2025-07-17T20:22:58.511Z","2.0.3":"2025-07-18T03:21:22.543Z","2.0.4":"2025-07-18T03:25:40.393Z","2.0.5":"2025-07-18T11:44:13.678Z","2.0.6":"2025-07-21T06:43:19.887Z"},"license":"MIT","keywords":["react","toast","notification","alert","gsap","animation"],"description":"A simple and beautiful toast notification library for React","maintainers":[{"name":"sayansenapati","email":"sayansenapati2544@gmail.com"}],"readme":"# 🎉 Toastonstaroid\n\n> A modern, beautiful toast notification library for React with smooth GSAP animations and elegant design.\n\n[![npm version](https://img.shields.io/npm/v/toastonstaroid.svg?style=flat-square)](https://www.npmjs.com/package/toastonstaroid)\n[![npm downloads](https://img.shields.io/npm/dm/toastonstaroid.svg?style=flat-square)](https://www.npmjs.com/package/toastonstaroid)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://raw.githubusercontent.com/senapati484/toastonstaroid/refs/heads/new/LICENSE)\n[![GitHub stars](https://img.shields.io/github/stars/senapati484/toastonstaroid?style=social)](https://github.com/senapati484/toastonstaroid)\n[![Website](https://img.shields.io/badge/website-toastonstaroid.vercel.app-blue?style=flat-square)](https://toastonstaroid.vercel.app)\n\n<div align=\"center\">\n  <!-- <a href=\"https://youtu.be/Uuxnm6ARe0I\" target=\"_blank\">\n    <img src=\"https://img.youtube.com/vi/Uuxnm6ARe0I/maxresdefault.jpg\" alt=\"Toast Notification Demo\" width=\"600\" style=\"border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); cursor: pointer;\">\n    <div style=\"position: relative; display: inline-block;\">\n      <div style=\"position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);\">\n        <svg width=\"80\" height=\"80\" viewBox=\"0 0 68 48\" style=\"filter: drop-shadow(0 0 8px rgba(0,0,0,0.5));\">\n          <path d=\"M66.52 7.74c-.78-2.93-2.49-5.41-5.42-6.19C55.79.13 34 0 34 0S12.21.13 6.9 1.55c-2.93.78-4.63 3.26-5.42 6.19C.06 13.05 0 24 0 24s.06 10.95 1.48 16.26c.78 2.93 2.49 5.41 5.42 6.19C12.21 47.87 34 48 34 48s21.79-.13 27.1-1.55c2.93-.78 4.64-3.26 5.42-6.19C67.94 34.95 68 24 68 24s-.06-10.95-1.48-16.26z\" fill=\"#f00\"></path>\n          <path d=\"M45 24L27 14v20\" fill=\"#fff\"></path>\n        </svg>\n      </div>\n    </div>\n  </a> -->\n\n[![Toast Notification Demo](https://img.youtube.com/vi/Uuxnm6ARe0I/maxresdefault.jpg)](https://youtu.be/Uuxnm6ARe0I)\n\n  <p align=\"center\">\n    <a href=\"#-features\">Features</a> •\n    <a href=\"#-installation\">Installation</a> •\n    <a href=\"#-quick-start\">Quick Start</a> •\n    <a href=\"#-variants\">Variants</a> •\n    <a href=\"#-api\">API</a>\n  </p>\n</div>\n\n## ✨ Features\n\n- 🚀 **Simple API**: Easy to integrate and use\n- 🎨 **Beautiful Animations**: Powered by GSAP for buttery-smooth transitions\n- 🎯 **Multiple Positions**: Display toasts at any corner of the screen\n- 🔥 **Interactive**: Hover effects and click handling\n- 📱 **Fully Responsive**: Works on all device sizes\n- 🎭 **Variants**: Success, Error, Warning, Info, Fire, Rain, Smoke, Cyberpunk, Dragon Ball, and Water Flow styles\n- ⚡ **Lightweight**: Minimal bundle size impact\n- 🎨 **Customizable**: Full control over appearance and behavior\n- 🔄 **Queue System**: Handles multiple toasts gracefully\n- ⏱ **Auto-dismiss**: Configurable duration for each toast\n\n## 🛠 Tech Stack\n\n- ⚛️ React 16.8+ (Hooks)\n- 💫 GSAP for animations\n- 🏪 Zustand for state management\n- 🎨 React Icons for beautiful icons\n- 📦 TypeScript for type safety\n\n## 📦 Installation\n\n### For React 16.8+\n\n```bash\nnpm install toastonstaroid\n# or\nyarn add toastonstaroid\n```\n\n### Peer Dependencies\n\nMake sure you have these peer dependencies installed:\n\n- `react` (>=16.8.0)\n- `react-dom` (>=16.8.0)\n- `react-icons` (>=4.0.0)\n- `gsap` (>=3.0.0)\n- `zustand` (>=4.0.0)\n\n## 🚀 Quick Start\n\n1. First, wrap your app with the `ToastContainer` component:\n\n```jsx\nimport React from \"react\";\nimport { ToastContainer } from \"toastonstaroid\";\n\nfunction App() {\n  return (\n    <div className=\"app\">\n      <YourApp />\n      <ToastContainer position=\"top-right\" />\n    </div>\n  );\n}\n\nexport default App;\n```\n\n2. Use the `toast` function to show notifications:\n\n```jsx\nimport React from \"react\";\nimport { toast } from \"toastonstaroid\";\n\nfunction MyComponent() {\n  const showToast = () => {\n    // Success toast\n    toast.success(\"Operation completed successfully!\");\n\n    // Error toast\n    toast.error(\"Something went wrong!\");\n\n    // Warning toast\n    toast.warning(\"This action cannot be undone\");\n\n    // Info toast\n    toast.info(\"New update available\");\n\n    // With custom duration (5 seconds)\n    toast.success(\"Changes saved!\", 5000);\n  };\n\n  return (\n    <button onClick={showToast} className=\"px-4 py-2 text-white rounded\">\n      Show Toast Notifications\n    </button>\n  );\n}\n\nexport default MyComponent;\n```\n\n### Available Toast Types\n\n```jsx\n// Success toast\ntoast.success(\"Operation completed successfully!\");\n\n// Error toast\ntoast.error(\"Something went wrong!\");\n\n// Warning toast\ntoast.warning(\"This action cannot be undone\");\n\n// Info toast\ntoast.info(\"New update available\");\n\n// Fire toast (for important alerts)\ntoast.fire(\"Critical system update required!\");\n\n// Rain toast (for notifications)\ntoast.rain(\"New message received\");\n\n// Smoke toast (for subtle notifications)\ntoast.smoke(\"Settings saved\");\n\n// Cyberpunk toast (for futuristic UI)\ntoast.cyberpunk(\"System initialized\");\n\n// Dragon Ball Z style\ntoast.dragonball(\"Power level over 9000!\");\n\n// Water Flow style\ntoast.waterflow(\"Your changes have been saved\");\n\n// Basic toast\ntoast.basic(\"This is a simple notification\");\ntoast.basic(\"With custom styling\", {\n  iconColor: \"#3b82f6\",\n  textColor: \"#1f2937\",\n  duration: 5000\n});\n```\n\n### Customizing Duration\n\n```jsx\n// Show for 5 seconds (default is 3000ms)\ntoast.success(\"Profile updated!\", 5000);\n\n// Show until manually closed\ntoast.info(\"Processing...\", 0);\n```\n\n## 🎭 Variants\n\nToastonstaroid comes with a variety of beautiful toast variants, each with unique animations and styles:\n\n| Variant      | Description                                   | Example                                         |\n| ------------ | --------------------------------------------- | ----------------------------------------------- |\n| `success`    | Indicates a successful operation              | `toast.success('Operation completed!')`         |\n| `error`      | Indicates an error that needs attention       | `toast.error('Something went wrong!')`          |\n| `warning`    | For warning messages                          | `toast.warning('This action cannot be undone')` |\n| `info`       | General information                           | `toast.info('New message received')`            |\n| `fire`       | Fiery animation for important alerts          | `toast.fire('Hot! New message')`                |\n| `rain`       | Rain effect for notifications                 | `toast.rain('Don\\'t forget your umbrella!')`    |\n| `smoke`      | Smoke effect for subtle notifications         | `toast.smoke('Poof! It\\'s gone')`               |\n| `cyberpunk`  | Futuristic cyberpunk style                    | `toast.cyberpunk('Access granted')`             |\n| `dragonball` | Anime-inspired with energy aura and particles | `toast.dragonball('Power level over 9000!')`    |\n| `waterflow`  | Smooth flowing water animation with bubbles   | `toast.waterflow('Changes saved successfully')` |\n| `basic`      | Clean, simple notifications with solid white background and black text | `toast.basic('This is a simple notification')` |\n\n### Basic Variants\n\n#### Success Toast\n\nIndicates a successful operation.\n\n```jsx\ntoast.success(\"Operation completed successfully!\");\n```\n\n#### Error Toast\n\nIndicates an error that needs attention.\n\n```jsx\ntoast.error(\"Failed to save changes\");\n```\n\n#### Warning Toast\n\nFor warning messages.\n\n```jsx\ntoast.warning(\"This action cannot be undone\");\n```\n\n#### Info Toast\n\nFor general information.\n\n```jsx\ntoast.info(\"New message received\");\n```\n\n#### Basic Toast\n\nClean, simple notifications with solid white background and black text.\n\n```jsx\ntoast.basic(\"This is a simple notification\");\ntoast.basic(\"With custom styling\", {\n  iconColor: \"#3b82f6\",\n  textColor: \"#1f2937\",\n  duration: 5000\n});\n```\n\n### Animated Variants\n\n#### Fire Toast\n\nFiery animation for important alerts.\n\n```jsx\ntoast.fire(\"Hot! New message\");\n```\n\n#### Rain Toast\n\nRain effect for notifications.\n\n```jsx\ntoast.rain(\"Don't forget your umbrella!\");\n```\n\n#### Smoke Toast\n\nSmoke effect for subtle notifications.\n\n```jsx\ntoast.smoke(\"Poof! It's gone\");\n```\n\n#### Cyberpunk Toast\n\nFuturistic cyberpunk style.\n\n```jsx\ntoast.cyberpunk(\"Access granted\");\n```\n\n#### Dragon Ball Z Style\n\nAnime-inspired with energy aura and particles.\n\n```jsx\ntoast.dragonball(\"Power level over 9000!\");\n```\n\n#### Water Flow\n\nSmooth flowing water animation with bubbles.\n\n```jsx\ntoast.waterflow(\"Changes saved successfully\");\n```\n\n### Custom Duration\n\n```jsx\n// Show for 5 seconds\ntoast.success(\"Profile updated!\", 5000);\n\n// Show until manually closed\ntoast.info(\"Processing...\", 0);\n```\n\n## 🎛️ Configuration\n\n### ToastContainer Props\n\n| Prop           | Type                  | Default       | Description                                                                                                                                 |\n| -------------- | --------------------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |\n| `position`     | `string`              | `'top-right'` | Position of the toast container. Options: `'top-left'`, `'top-center'`, `'top-right'`, `'bottom-left'`, `'bottom-center'`, `'bottom-right'` |\n| `autoClose`    | `number`              | `3000`        | Auto close timeout in milliseconds (`0` to disable)                                                                                         |\n| `closeOnClick` | `boolean`             | `true`        | Close toast when clicked                                                                                                                    |\n| `pauseOnHover` | `boolean`             | `true`        | Pause toast timer on hover                                                                                                                  |\n| `className`    | `string`              | `''`          | Additional CSS class for the container                                                                                                      |\n| `style`        | `React.CSSProperties` | `{}`          | Inline styles for the container                                                                                                             |\n\n### Toast Methods\n\n```typescript\n// Show a toast\ntoast.success(message: string, options?: ToastOptions): string;\ntoast.error(message: string, options?: ToastOptions): string;\ntoast.warning(message: string, options?: ToastOptions): string;\ntoast.info(message: string, options?: ToastOptions): string;\ntoast.fire(message: string, options?: ToastOptions): string;\ntoast.rain(message: string, options?: ToastOptions): string;\ntoast.smoke(message: string, options?: ToastOptions): string;\ntoast.cyberpunk(message: string, options?: ToastOptions): string;\ntoast.basic(message: string, options?: ToastOptions): string;\n\n// Remove a toast\ntoast.dismiss(toastId: string): void;\n\n// Remove all toasts\ntoast.dismissAll(): void;\n\n// Update a toast\ntoast.update(toastId: string, options: ToastOptions): void;\n```\n\n### Toast Options\n\n| Option       | Type                  | Default   | Description                                 |\n| ------------ | --------------------- | --------- | ------------------------------------------- |\n| `toastId`    | `string`              | Random ID | Custom ID for the toast                     |\n| `duration`   | `number`              | `3000`    | Display duration in ms                      |\n| `onClose`    | `() => void`          | -         | Callback when toast closes                  |\n| `onOpen`     | `() => void`          | -         | Callback when toast opens                   |\n| `className`  | `string`              | -         | Additional CSS class                        |\n| `style`      | `React.CSSProperties` | -         | Inline styles                               |\n| `textColor`  | `string`              | -         | Custom text color (e.g., '#FF0000', 'blue') |\n| `iconColor`  | `string`              | -         | Custom icon color (e.g., '#00FF00', 'red')  |\n| `backgroundStyle` | `'blur' | 'solid'` | 'blur'  | Background style (blur or solid)            |\n\n## 📚 API\n\n### Toast Methods\n\nAll toast methods accept the following parameters:\n\n- `message: string` - The message to display\n- `duration?: number` - (Optional) Time in milliseconds the toast should be visible (default: 5000ms)\n\n#### Basic Variants\n\n```typescript\nimport { toast } from \"toastonstaroid\";\n\ntoast.success(\"Operation completed successfully!\");\ntoast.error(\"Something went wrong!\");\ntoast.warning(\"This action cannot be undone!\");\ntoast.info(\"New update available!\");\n```\n\n#### Themed Variants\n\n```typescript\n// Fire theme\ntoast.fire(\"Hot notification!\");\n\n// Rain theme\ntoast.rain(\"Bring an umbrella! ☔\");\n\n// Smoke theme\ntoast.smoke(\"Poof!\");\n\n// Cyberpunk theme\ntoast.cyberpunk(\"System updated!\");\n\n// Dragon Ball theme\ntoast.dragonball(\"Power level over 9000!\");\n\n// Water Flow theme\ntoast.waterflow(\"Smooth as water\");\n```\n\n### ToastContainer Component\n\nThe `ToastContainer` component is required in your app to display the toasts. Place it once in your app layout.\n\n```jsx\nimport { ToastContainer } from \"toastonstaroid\";\n\nfunction App() {\n  return (\n    <div>\n      <YourApp />\n      <ToastContainer position=\"top-right\" />\n    </div>\n  );\n}\n```\n\n#### Props\n\n| Prop      | Type                                                                 | Default       | Description                     |\n| --------- | -------------------------------------------------------------------- | ------------- | ------------------------------- |\n| position  | `'top-right'` \\| `'top-left'` \\| `'bottom-right'` \\| `'bottom-left'` | `'top-right'` | Position of the toast container |\n| className | `string`                                                             | `''`          | Additional CSS class name       |\n| style     | `React.CSSProperties`                                                | `{}`          | Inline styles for the container |\n\n### Customization\n\nYou can customize the default duration for all toasts by setting the duration parameter:\n\n```typescript\n// Show success toast for 10 seconds\ntoast.success(\"Saved successfully!\", 10000);\n```\n\n### Styling with CSS Variables\n\nCustomize the look using these CSS variables:\n\n```css\n:root {\n  /* Base styles */\n  --toast-bg: rgba(30, 41, 59, 0.95);\n  --toast-text: #ffffff;\n  --toast-border: rgba(255, 255, 255, 0.1);\n  --toast-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n\n  /* Layout */\n  --toast-padding: 12px 16px;\n  --toast-spacing: 16px;\n  --toast-border-radius: 8px;\n\n  /* Typography */\n  --toast-font-size: 14px;\n  --toast-line-height: 1.5;\n\n  /* Icons */\n  --toast-icon-size: 20px;\n\n  /* Animations */\n  --toast-animation-duration: 300ms;\n}\n```\n\n### Custom Animations\n\nYou can customize the enter/exit animations by providing your own CSS classes:\n\n```jsx\n<ToastContainer\n  className=\"custom-toast-container\"\n  toastClassName=\"custom-toast\"\n  bodyClassName=\"custom-toast-body\"\n  position=\"top-right\"\n  autoClose={5000}\n  hideProgressBar\n  newestOnTop\n  closeOnClick\n  rtl={false}\n  pauseOnFocusLoss\n  draggable\n  pauseOnHover\n/>\n```\n\n## 🚀 Advanced Usage\n\n### Programmatic Control\n\n```jsx\nimport { useToastStore } from \"toastonstaroid\";\n\nfunction MyComponent() {\n  const { toasts, removeToast } = useToastStore();\n\n  const showTemporaryToast = () => {\n    const toastId = toast.info(\"This will be removed in 2 seconds\");\n\n    setTimeout(() => {\n      removeToast(toastId);\n    }, 2000);\n  };\n\n  return (\n    <div>\n      <button onClick={showTemporaryToast}>Show Temporary Toast</button>\n\n      <div>{toasts.length} active toasts</div>\n    </div>\n  );\n}\n```\n\n### Custom Toast Component\n\n```jsx\nimport { useToastStore } from \"toastonstaroid\";\n\nfunction CustomToast() {\n  const { toasts, removeToast } = useToastStore();\n\n  return (\n    <div className=\"fixed bottom-4 right-4 space-y-2 z-50\">\n      {toasts.map((toast) => (\n        <div\n          key={toast.id}\n          className={`p-4 rounded-lg shadow-lg flex items-center ${\n            toast.type === \"success\"\n              ? \"bg-green-500\"\n              : toast.type === \"error\"\n              ? \"bg-red-500\"\n              : toast.type === \"warning\"\n              ? \"bg-yellow-500\"\n              : \"bg-blue-500\"\n          } text-white`}\n        >\n          <span className=\"flex-1\">{toast.message}</span>\n          <button\n            onClick={() => removeToast(toast.id)}\n            className=\"ml-4 text-white hover:text-gray-200\"\n            aria-label=\"Close\"\n          >\n            ✕\n          </button>\n        </div>\n      ))}\n    </div>\n  );\n}\n```\n\n## 📱 Responsive Design\n\nToasts are fully responsive and adapt to different screen sizes:\n\n- **Mobile**: Full width with 16px margins\n- **Tablet**: 400px width\n- **Desktop**: 320px width\n- **Large Screens**: 360px width\n\n## ⚠️ Troubleshooting\n\n### Common Issues\n\n1. **Toasts not showing up?**\n\n   - Ensure `<ToastContainer />` is rendered in your app\n   - Check for z-index conflicts\n   - Verify no `overflow: hidden` is hiding toasts\n\n2. **Animations not working?**\n\n   - Make sure GSAP is installed\n   - Check browser console for errors\n   - Verify you're not calling toast functions during SSR\n\n3. **TypeScript errors?**\n   - Ensure you have `@types/react` installed\n   - Check your TypeScript version (requires 4.1+)\n\n## 🤝 Contributing\n\nWe welcome contributions from the community! Before you start, please take a moment to read our [Contribution Guidelines](https://github.com/senapati484/toastonstaroid/blob/new/CONTRIBUTING.md) which includes detailed information on:\n\n- 🛠️ Setting up your development environment\n- 📝 Code style and conventions\n- 🧪 Testing your changes\n- 💡 Proposing new features\n- 🐛 Reporting bugs\n\n### Quick Start\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\nFor more details, please see our [Contribution Guidelines](https://github.com/senapati484/toastonstaroid/blob/new/CONTRIBUTING.md).\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- [GSAP](https://greensock.com/gsap/) for smooth animations\n- [React Icons](https://react-icons.github.io/react-icons/) for beautiful icons\n- [Zustand](https://github.com/pmndrs/zustand) for simple state management\n- [react-hot-toast](https://react-hot-toast.com/) for inspiration\n\n---\n\n<div align=\"center\">\n  Made with ❤️ by Sayan Senapati\n  <br/>\n  <a href=\"https://github.com/senapati484/toastonstaroid\">GitHub</a> •\n  <a href=\"https://www.npmjs.com/package/toastonstaroid\">NPM</a> •\n  <a href=\"https://sayan4.vercel.app\">Portfolio</a>\n</div>\n\n## License\n\n[MIT License](https://raw.githubusercontent.com/senapati484/toastonstaroid/refs/heads/new/LICENSE)\n","readmeFilename":"README.md"}