Package Exports
- sveltekit-embed
Readme
SvelteKit Embed 🌱
A collection of embed components for SvelteKit applications. Easily embed content from popular platforms like YouTube, Spotify, Vimeo, CodePen, and many more with performant, lazy-loaded components.
✨ Features
- 🚀 Lazy Loading: All components (except
TootandTweet) use intersection observer for performance - 📱 Responsive: Mobile-friendly designs that adapt to different screen sizes
- 🎨 Customizable: Flexible props to customize appearance and behavior
- 🔒 TypeScript: Full TypeScript support with proper type definitions
- ⚡ SvelteKit Optimized: Built specifically for SvelteKit applications
- 🌐 19 Platforms Supported: Wide range of supported embed platforms
📦 Installation
npm install sveltekit-embedpnpm add sveltekit-embedyarn add sveltekit-embed🚀 Quick Start
Import and use any component in your Svelte/SvelteKit application:
<script>
import { YouTube, Spotify, CodePen } from 'sveltekit-embed';
</script>
<!-- YouTube Video -->
<YouTube youTubeId="dQw4w9WgXcQ" />
<!-- Spotify Track -->
<Spotify
spotifyLink="track/4iV5W9uYEdYUVa79Axb7Rh"
width="100%"
height="152"
/>
<!-- CodePen -->
<CodePen codePenId="xxGYWQG" height="300" defaultTab="result" />🌟 Supported Platforms
| Platform | Component | Description |
|---|---|---|
| AnchorFm | <AnchorFm /> |
Podcast episodes from Anchor.fm |
| Buzzsprout | <Buzzsprout /> |
Podcast episodes from Buzzsprout |
| CodePen | <CodePen /> |
Interactive code examples |
| Deezer | <Deezer /> |
Music tracks and playlists |
| GenericEmbed | <GenericEmbed /> |
Generic iframe embed for any URL |
| Gist | <Gist /> |
GitHub Gists |
| Guild | <Guild /> |
Guild.xyz embeds |
| Relive | <Relive /> |
Relive activity summaries |
| SimpleCast | <SimpleCast /> |
SimpleCast podcast episodes |
| Slides | <Slides /> |
Slide presentations |
| SoundCloud | <SoundCloud /> |
Audio tracks from SoundCloud |
| Spotify | <Spotify /> |
Music tracks, albums, and playlists |
| StackBlitz | <StackBlitz /> |
Live coding environments |
| Toot | <Toot /> |
Mastodon posts |
| Tweet | <Tweet /> |
Twitter/X posts |
| Vimeo | <Vimeo /> |
Vimeo videos |
| YouTube | <YouTube /> |
YouTube videos |
| Zencastr | <Zencastr /> |
Zencastr podcast episodes |
📖 Usage Examples
YouTube
<script>
import { YouTube } from 'sveltekit-embed';
</script>
<YouTube youTubeId="dQw4w9WgXcQ" aspectRatio="16:9" width="100%" />Spotify
<script>
import { Spotify } from 'sveltekit-embed';
</script>
<!-- Track -->
<Spotify spotifyLink="track/4iV5W9uYEdYUVa79Axb7Rh" />
<!-- Album -->
<Spotify spotifyLink="album/1DFixLWuPkv3KT3TnV35m3" />
<!-- Playlist -->
<Spotify spotifyLink="playlist/37i9dQZF1DXcBWIGoYBM5M" />CodePen
<script>
import { CodePen } from 'sveltekit-embed';
</script>
<CodePen
codePenId="xxGYWQG"
height="400"
defaultTab="result"
theme="dark"
/>Anchor.fm
<script>
import { AnchorFm } from 'sveltekit-embed';
</script>
<AnchorFm
height="165"
episodeUrl="purrfect-dev/embed/episodes/1-31---Delivering-Digital-Content-with-GraphCMS-e14g55c/a-a650v9a"
/>⚡ Performance Features
All embed components (except Toot and Tweet) are automatically
wrapped with an intersection observer that:
- Only loads the embed when it's about to enter the viewport
- Reduces initial page load time
- Improves Core Web Vitals scores
- Saves bandwidth for users
🔧 TypeScript Support
Full TypeScript support is included with proper type definitions for all components and their props.
import type { YouTubeProps, SpotifyProps } from 'sveltekit-embed';🤝 Contributing
Contributions are welcome! Please read our contributing guidelines and code of conduct.
📝 License
MIT © Scott Spence
🙏 Credits
This project was inspired by @pauliescanlon's MDX Embed.
📋 Links
Made with ❤️ for the Svelte community