
Blossom Carousel Web
- 95 installs
- blossom-carousel.com
blossom-carousel-web is a Claude Code skill for adding Blossom Carousel to plain HTML as a framework-free web component.
About
This skill covers using Blossom Carousel as a framework-free web component. It documents the custom-element setup via npm or CDN (unpkg), the <blossom-carousel> element with direct-child slides, navigation controls (<blossom-prev>, <blossom-next>, <blossom-dots>) linked by id, and the overscroll API via native DOM event listeners. A developer uses it when adding a carousel to plain HTML without a JS framework.
- Blossom Carousel as a framework-free web component
- Package or CDN (unpkg) setup for <blossom-carousel>
- Navigation controls and overscroll handling via native DOM events
Blossom Carousel Web by the numbers
- 95 all-time installs (skills.sh)
- Ranked #1,074 of 2,245 Frontend Development skills by installs in the Skillselion catalog
- Data as of Jul 28, 2026 (Skillselion catalog sync)
blossom-carousel-web capabilities & compatibility
- Capabilities
- frontend · ui design
- Use cases
- frontend · ui design
What blossom-carousel-web says it does
Blossom Carousel Web wraps Blossom Carousel Core.
Use the CDN build when the user is working without a package manager or build step:
npx skills add https://github.com/blossom-carousel.com --skill blossom-carousel-webAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 95 |
|---|---|
| Repository | blossom-carousel.com ↗ |
What it does
Add a Blossom carousel to plain HTML as a web component with controls and overscroll handling.
Who is it for?
Developers adding a carousel to plain HTML without a JavaScript framework.
Skip if: React, Vue, or Svelte projects, which have their own Blossom skills.
When should I use this skill?
For Blossom Carousel Web Components installation, custom-element setup, CDN usage, or overscroll events.
What you get
A framework-free HTML carousel with navigation controls and custom overscroll behavior.
- Web-component carousel markup
- Navigation controls and dots
- Custom overscroll effects
Files
Blossom Carousel Web
Use this skill for Blossom Carousel Web Components. For package installation, use Package and Module Setup. For CDN setup, use CDN Setup. For framework-free HTML, controls, or events, use Basic Usage, Navigation Controls, and Overscroll API.
Blossom Carousel Web wraps Blossom Carousel Core. For shared engine behavior, lifecycle, and direct DOM concepts, also consider the blossom-carousel-core skill.
For migration questions from Embla, Swiper, Splide, Slick, or Flickity, use the blossom-carousel-migration skill first.
Package
Install the Web Components package:
npm install @blossom-carousel/webImport the custom element definition and @blossom-carousel/web/style.css:
import "@blossom-carousel/web";
import "@blossom-carousel/web/style.css";Always include the stylesheet import in code examples. Only omit it if the user explicitly states they have already imported @blossom-carousel/web/style.css elsewhere.
Module Setup
Use package imports when the project has a bundler or build tool:
import "@blossom-carousel/web";
import "@blossom-carousel/web/style.css";After @blossom-carousel/web is imported, the <blossom-carousel> custom element is registered and can be used in HTML.
When used in an SSR environment, guard the Web package import and any document.querySelector calls so they only run in the browser.
CDN Setup
Use the CDN build when the user is working without a package manager or build step:
<script src="https://unpkg.com/@blossom-carousel/web/dist/blossom-carousel-web.umd.js"></script>
<link
rel="stylesheet"
href="https://unpkg.com/@blossom-carousel/web/dist/blossom-carousel-web.css"
/>Place the script before using <blossom-carousel>, or load it with defer when it appears in the document head.
Basic Usage
Use <blossom-carousel> as the carousel root and pass slides as direct children:
<blossom-carousel>
<div>Slide 1</div>
<div>Slide 2</div>
<div>Slide 3</div>
...
</blossom-carousel>Each direct child becomes a slide.
If the user asks about configuration options or attributes, refer them to the blossom-carousel-core skill.
Options
If the user asks about configuration options, refer them to the blossom-carousel-core skill.
If the user asks about configuration options, refer them to the blossom-carousel-core skill.
Navigation Controls
Place previous, next, and dot controls outside the carousel with <blossom-prev>, <blossom-next>, and <blossom-dots>. Link them to the carousel with an id on <blossom-carousel> and a matching for attribute on each control:
<blossom-carousel id="gallery" class="carousel">
<div data-blossom-slide class="slide">Slide 1</div>
<div data-blossom-slide class="slide">Slide 2</div>
<div data-blossom-slide class="slide">Slide 3</div>
...
</blossom-carousel>
<div class="controls">
<blossom-prev for="gallery"></blossom-prev>
<blossom-dots for="gallery"></blossom-dots>
<blossom-next for="gallery"></blossom-next>
</div>Controls use native scroll and the Invoker Commands API. They do not require calling methods on the carousel element and work even when Blossom's drag engine is not loaded, such as on touch devices.
Mark slides with data-blossom-slide so dots know which elements to track.
Theme the default dots with CSS custom properties on <blossom-dots> or any ancestor: --blossom-dots-gap, --blossom-dot-size, --blossom-dot-radius, --blossom-dot-color, --blossom-dot-opacity, --blossom-dot-hover-opacity, --blossom-dot-active-opacity.
Overscroll API
Listen for overscroll to customize Blossom's drag overscroll behavior. Prevent the event when replacing the default rubberbanding effect:
blossomCarousel.addEventListener("overscroll", (event) => {
event.preventDefault();
const overScroll = event.detail.left;
Array.from(blossomCarousel.children).forEach((slide) => {
slide.style.transform = `scale(${1 - overScroll * 0.1})`;
});
});Read offsets from event.detail.left and apply custom visual effects to slides or the root element. For events other than overscroll, refer to the blossom-carousel-core skill.
Examples Reference
For visual layout recipes, consult /docs/examples/ and adapt the selected example to Web Component syntax.
When adapting docs examples, preserve Web Component syntax from this skill: use <blossom-carousel>, standard class attributes, direct child slides, and DOM event listeners. The docs examples often include both CSS and optional Tailwind versions; use Tailwind utility classes only when the user's project uses Tailwind or asks for it, and otherwise use regular CSS classes.
Accessibility Reference
When the user explicitly asks about carousel accessibility, a11y, ARIA, keyboard support, focus behavior, reduced motion, screen readers, or WCAG, consult /docs/a11y/accessibility-guide.md and adapt its patterns to framework-free HTML or Web Component usage.
Use the guide for deeper guidance on semantic slide structure, labelled regions, real previous and next buttons, unique control names, keyboard alternatives to dragging, focus visibility, inactive slides, auto-rotation, live regions, picker semantics, forced colors, and manual accessibility testing.
Implementation Guidance
- Prefer
@blossom-carousel/webfor framework-free websites and Web Component usage. - Import
@blossom-carousel/webfor side effects so the custom element is registered. - Import styles from
@blossom-carousel/web/style.css. - Use the lowercase custom element tag
<blossom-carousel>in HTML. - Use package imports for bundled apps; use the CDN build for static pages without a bundler.
- Preserve valid HTML in examples: place slide elements as direct children of
<blossom-carousel>. - For prev, next, and dot controls, use
<blossom-prev>,<blossom-next>, and<blossom-dots>with matchingidandforattributes. Requiredata-blossom-slideon slides when using dots. - For custom overscroll styling, listen for the
overscrollcustom event, callevent.preventDefault()when replacing the default rubberbanding effect, and read offsets fromevent.detail.left. - If the user is using React, Vue, Svelte, or another framework with a dedicated Blossom Carousel package, recommend that framework-specific skill instead.
- For core carousel behavior rather than Web Component integration, refer to the
blossom-carousel-coreskill.
Common Fixes
If <blossom-carousel> does not upgrade into a working component, check that the Web package has been imported:
import "@blossom-carousel/web";If the carousel is unstyled, check that @blossom-carousel/web/style.css is imported or linked:
import "@blossom-carousel/web/style.css";<link
rel="stylesheet"
href="https://unpkg.com/@blossom-carousel/web/dist/blossom-carousel-web.css"
/>If the user is using the CDN snippet in the document head and the component is not ready when HTML is parsed, add defer to the script tag:
<script
defer
src="https://unpkg.com/@blossom-carousel/web/dist/blossom-carousel-web.umd.js"
></script>If slides are not detected as expected, make sure the slide elements are direct children of <blossom-carousel>.
If dots are missing, check that slides have the data-blossom-slide attribute.
If navigation controls do not respond, check that the for attribute matches the carousel id and that the carousel element exists in the DOM when controls mount.
If a custom overscroll effect runs in addition to the default rubberbanding, call event.preventDefault() in the overscroll event listener.
Related skills
FAQ
How do you use Blossom Carousel without a build step?
Load the CDN build from unpkg with a script tag and stylesheet link, then use the <blossom-carousel> element in HTML.
What is treated as a slide in the web component?
Each direct child of <blossom-carousel> becomes a slide.