Component API

<audio-player>

Open live example

Compact audio player wrapping a native <audio> element (kept off-screen
for its decoding/playback engine and free timeupdate/loadedmetadata
events) behind a tokenized transport bar: a play/pause icon-button,
elapsed/total time, a seekable progress bar, and a mute toggle + volume
slider. The seek/volume sliders are native <input type="range">
elements (see utils/transport-controls.ts) for free keyboard and
pointer support, per this package's "native semantics before custom ARIA"
rule.

Install

import "@f-ewald/components/audio-player.js";

Usage

<audio-player src="/episode-12.mp3" label="Episode 12"></audio-player>
<script type="module">
  document.querySelector("audio-player").addEventListener("ended", () => {
    console.log("playback finished");
  });
</script>

Attributes / properties

PropertyAttributeTypeDefaultDescription
srcsrcstring""URL of the audio file to play.
labellabelstring"Audio player"Accessible name for the player, e.g. a track/episode title.
looploopbooleanfalseLoops playback once it reaches the end.
preloadpreload"none" | "metadata" | "auto""metadata"Native <audio preload> hint.

Events

EventDescription
playThe audio started playing.
pauseThe audio was paused.
endedPlayback reached the end.

Slots

None.

CSS custom properties

Custom property
--ui-border
--ui-border-width
--ui-danger
--ui-font
--ui-font-size-sm
--ui-radius
--ui-surface
--ui-text-muted