A svelte action to copy text to clipboard. It uses the navigator.clipboard
api, with a fallback to the legacy method.
npm install svelte-copy -D
This library only works with Svelte 5, checkout svelte-copy@1 for Svelte 3/4 support.
The simplest use is to just pass the text you want to copy:
<script>
import { copy } from 'svelte-copy';
</script>
<button use:copy={'Hello World'}>
Click me!
</button>
You can expand that with an options object:
<script>
import { copy } from 'svelte-copy';
</script>
<button
use:copy={{
text,
events: ['click'],
onCopy({ text, event }) {
alert(`Text copied: "${text}". Triggered by "${event}"`);
},
onError({ error, event }) {
alert(error.message)
}
}}
>
Copy
</button>
on:svelte-copy
event is now a onCopy
param to the action options.on:svelte-copy:error
event is now a onError
param to the action options.events
option now only accepts string[]
, rather than string | string[]