The problem
Most toast libraries either ship a specific design language you have to fight, or pull in Tailwind, ShadCN or an animation library just to render a notification. I wanted something with zero dependencies that looked distinct out of the box and could still be retheamed completely without touching component code.
The approach
Javka is plain TypeScript, CSS and React - no Tailwind, no ShadCN, no Motion. Every visual detail routes through a CSS variable, from colours and radius down to the block countdown's height and fade. The countdown itself is a grid of dithered blocks that drains as a toast's timer runs out, instead of the usual progress bar. Hovering the stack fans the toasts out and pauses every timer at once.
The result
A published package: mount <Toaster /> once and call toast(), toast.success(), toast.error(), toast.warning() or toast.info() from anywhere. Each toast carries a title, optional description, configurable duration, and returns an id for manual dismissal. Positioning, stack gap, peek height, and the countdown grid's rows and columns are all configurable on the <Toaster /> itself.