WebberUI

直式故事輪播

限時動態式直式輪播:頂部分段進度條、自動播放與點按切換

限時動態式的 9:16 直式輪播卡片:頂部分段進度條自動推進,點按左半邊回上一則、右半邊到下一則,長按任意處暫停播放。場景以漸層與 emoji 構成,無需任何外部圖片。

載入預覽⋯

Playground

即時調整 props、程式碼片段同步更新——直接試出你要的樣子再複製。

5000
<VerticalStoryCarousel />

安裝

npx shadcn@latest add https://webberui.com/r/vertical-story-carousel.json

或在 components.json 設定 registries 後,改用 @webberui/vertical-story-carousel 安裝。

安裝依賴後,從 registry JSON(/r/vertical-story-carousel.jsonfiles[0].content)複製 vertical-story-carousel.tsx 原始碼到你的 components/ui/ 目錄:

npm install motion lucide-react clsx tailwind-merge

使用

import { VerticalStoryCarousel } from "@/components/ui/vertical-story-carousel";

<VerticalStoryCarousel
  duration={4000}
  stories={[
    { tag: "週末靈感", emoji: "🏔️", title: "清晨的合歡山", description: "等一場日出。" },
    { tag: "週末靈感", emoji: "🌊", title: "東海岸公路", description: "一路向南的藍。" },
  ]}
/>

Props

Prop型別預設值說明
storiesStoryItem[]故事清單,依序自動播放
durationnumber5000每則故事的播放時間(毫秒)
loopbooleantrue播完最後一則後是否回到第一則重新循環
classNamestring透傳到最外層 9:16 卡片容器

StoryItem 欄位:

欄位型別預設值說明
titlestring故事主標題,顯示於卡片下方
descriptionstring補充文案,顯示於標題下方
gradientstring內建漸層場景漸層(CSS background-image 值)
emojistring場景中央的 emoji 裝飾,緩慢上下漂浮
tagstring左上角的小標籤,例如帳號名稱或分類

可及性

  • 使用者系統開啟「減少動態效果」時,關閉轉場與漂浮動畫,當前進度條直接顯示為滿格靜態
  • 容器可聚焦(tabIndex={0}),支援鍵盤操作:方向鍵切換上一/下一則,空白鍵暫停/繼續
  • role="group"aria-roledescription="carousel" 標示輪播語意,並標註總則數
  • 切換故事時透過 aria-live="polite" 播報「第 X 則,共 Y 則:標題」
  • 裝飾性光暈與 emoji 均標記 aria-hidden,不干擾螢幕閱讀器

On this page