Each widget is a single static HTML page hosted on this site. No analytics, no cookies, no third-party requests. Light & dark modes auto-switch with the visitor's system preference. All audio is synthesised in-browser via the Web Audio API — there are no audio files to load.

Breathing Pacer

Animated breathing circle with phase labels (Inhale / Hold / Exhale). Visitors pick a pattern and press Start. Perfect for anxiety, stress, and meditation posts.

<iframe src="https://asmr-relax.top/pages/embed-breathing.html?pattern=4-7-8"
        width="320" height="280" frameborder="0" loading="lazy"
        title="Breathing pacer"></iframe>

Parameter ?pattern=: box (4-4-4-4), 4-7-8 (default), coherent (5-5), calm (4-6).

Focus Timer

Pomodoro-style countdown with automatic work/break switching, cycle counter, and a soft synthesised bell at each phase change. Great for productivity guides.

<iframe src="https://asmr-relax.top/pages/embed-timer.html?type=pomodoro"
        width="320" height="300" frameborder="0" loading="lazy"
        title="Focus timer"></iframe>

Parameter ?type=: pomodoro (25/5, default), deep (50/10), sprint (15/3), custom (user-defined minutes).

Mini Sound Player

Tiny ambient sound player with animated waveform. Five built-in synthesised sounds — no audio files, instant start. Browsers require a tap before audio begins (autoplay rules).

<iframe src="https://asmr-relax.top/pages/embed-sound.html?sound=rain"
        width="320" height="220" frameborder="0" loading="lazy"
        title="Mini sound player"></iframe>

Parameter ?sound=: rain (default), thunder, ocean, whitenoise, brown.

License & Attribution

All widgets are free to embed on personal or commercial websites, blogs, apps and dashboards. The only requirement: keep the small "Built by ASMR Sanctuary" link visible at the bottom of each widget (it is built in — you don't need to do anything extra).

No API keys, no tracking, no rate limits. If you'd like to credit us in an article too, link to asmr-relax.top. Thank you.

Tips

  • Always include loading="lazy" so the widget doesn't block your page render.
  • Use a title attribute on every iframe for accessibility.
  • Widget heights are tuned at 220–300 px. Don't shrink below the suggested minimums — controls will clip.
  • To match your blog's dark theme, keep the iframe background transparent — widgets respect prefers-color-scheme.
  • Need a custom widget (different colors, branding, or new sound)? Get in touch.