Crème — Elegant Vanilla JS Toast & Notification Widget
Description
Overview
Crème is a lightweight, zero-dependency vanilla JavaScript notification widget dressed in a warm, biscuit-and-cream colour palette. Forget the usual blue-shadow alert boxes — Crème delivers buttery smooth toast messages, inline banners and a compact notification drawer that feel genuinely handcrafted. Whether you need a quick success pop, a gentle warning ribbon or a persistent info drawer, Crème handles all four notification archetypes with a single, readable API call.
The widget ships as a self-contained crème.js + crème.css pair with a beautifully styled interactive demo page. Drop two files into any project, call one function, and get polished feedback UI in minutes — no npm, no bundler, no framework tax.
Who It's For
- Indie developers who want a finished notification system without a dependency chain.
- Frontend freelancers adding client-facing polish to CMS themes, landing pages or vanilla JS apps.
- Designers who prototype in browser and need real interaction feedback that looks good in screenshots.
- TypeScript / JS projects that load widgets via CDN or script tags — the API is clean enough to wrap with a TS type file in minutes.
Key Features in Depth
Four notification types — success, error, warning and info — each with a distinct warm icon glyph, border accent and background tint, all staying within the creme/walnut/terracotta palette so nothing clashes with your page.
Toast stack management keeps up to five toasts visible at once, auto-dismissing the oldest when the cap is reached. Toasts animate in from the top-right with a buttery cubic-bezier slide and fade out gracefully. Auto-dismiss timers are configurable per-call; pass duration: 0 for a persistent toast the user must manually close.
Inline banner mode lets you inject a full-width ribbon directly into a target container — useful for form-level feedback, page-level alerts or onboarding prompts. Banners support an optional action button with a custom label and callback.
Notification drawer collects all fired notifications into a slide-in side panel. A floating bell icon with an unread badge opens the drawer; clearing all items shows a polished empty state illustration made entirely in CSS.
Progress bar on each toast visually counts down the auto-dismiss timer, giving users a clear sense of time remaining. The bar is CSS-animated and pauses on hover.
What's Included
index.html— fully interactive demo page with live controls for every notification type and mode.crème.js— the standalone widget script (~130 lines, fully commented).crème.css— widget stylesheet with CSS custom properties for easy theming (~120 lines).README.md— integration guide, API reference and customisation notes.
How to Get Started
1. Copy crème.js and crème.css into your project. 2. Add the two <link> and <script> tags to your HTML. 3. Call Creme.toast({ type: 'success', message: 'Saved!' }) from any script. That's it. Override the CSS custom properties in :root to swap palette, border-radius or font in under a minute. TypeScript users can paste the five-line type declaration from the README and enjoy full autocomplete.
Features
Requirements
- Any modern browser (Chrome 90+, Firefox 88+, Safari 14+, Edge 90+)
- No build step — plain HTML script/link tags
- No npm or Node.js required
- No external JavaScript libraries or frameworks
Changelog
Frequently Asked Questions
Do I need npm or a bundler to use Crème?
No. Just add crème.css and crème.js via a plain and
Can I use this in a TypeScript project?
Yes. The README includes a five-line ambient type declaration you can copy into a .d.ts file, giving you full autocomplete for the Creme.toast(), Creme.banner() and Creme.drawer APIs.
How do I change the colour palette?
Override the CSS custom properties in :root — the widget exposes --cr-bg, --cr-accent-success, --cr-accent-error, --cr-accent-warning, --cr-accent-info and a handful of others. You can match any brand in under a minute.
What happens if I fire many toasts quickly?
The stack is capped at 5 visible toasts. When a 6th is fired, the oldest toast is automatically dismissed before the new one appears, so the UI never overflows.
Is the notification drawer persisted across page loads?
By default no — notifications live in memory only. The README explains how to hook into the internal Creme._log array and serialise it to localStorage with about 10 lines of extra code.
What licence is included?
A standard single-use (Regular) licence as per the esdecode marketplace terms, covering use in one end product. Extended licence covers SaaS or multi-client deployments.
Technical requirements
- See the detailed requirements in the product description below.
What is included
- Downloadable product files
- Product listing and product page guidance
- Product files ready for self-hosting or integration
- 10 listed features
- Changelog included on the product page
Who is this product for
- Teams shopping within TypeScript
- Use cases aligned with javascript, notification, toast, widget
License and usage
- Verify the exact usage rights on the selected license before deployment or client handoff
- Keep the purchase record and license certificate for future verification
Updates and support
- 6 months of seller support included
- Review the seller support scope before purchasing.
- Recent changes are visible in the product changelog
- Use the changelog to confirm ongoing maintenance before rollout
Technical details
- Current version
- 1.0.0
- Last updated
- Jul 11, 2026
- Support period
- 6 months of seller support included
Marketplace review
Content review processNo completed marketplace review record is available for this product.
This is not a full penetration test or a guarantee that the product is vulnerability-free.
License comparison
A license is tied to one end product, not strictly to one domain. Development, staging, and the final production domain may belong to the same licensed deployment.
| Use | Regular License | Extended License |
|---|---|---|
| Source code modification | ||
| Own project use | ||
| One client project | ||
| One production deployment | ||
| Development and staging | ||
| Paid SaaS or paid user access | ||
| Multiple unrelated client projects | ||
| Redistribute source code | ||
| Resell source code |
License FAQ
Can I modify the source code?
Yes, under both licenses.
Can I use the script for a client?
Yes, for one client end product.
Can I install it on a staging domain?
Yes. Development and staging may belong to the licensed deployment.
Do I need another license for another client?
Yes, each unrelated client end product needs its own license.
Can I use it for a paid SaaS?
Yes, with an Extended License.
Can I resell the source code?
No. Standalone redistribution or resale is prohibited.
Is a license limited strictly to one domain?
No. It is tied to one end product, which may use development, staging, and production domains.
Item Details
- Last Update
- July 11, 2026
- Published
- July 10, 2026
- Version
- 1.0.0
- Category
- TypeScript
- Sales
- 0
- Reviews
- No reviews
Buying guides
Share This Item
License Info
Regular License — Use in one end product which end users are not charged for.
Extended License — Use in one end product which end users can be charged for.
Verify a license key →