文档目录 > 工具类 (Utilities)

工具类 (Utilities)

scroll-fade

为滚动容器的边缘添加淡出效果的实用工具类。当 npx shadcn@latest init 初始化项目时,scroll-fade 已随 shadcn 包内置。

使用

类名样式
scroll-fade / scroll-fade-y垂直滚动淡出
scroll-fade-x水平滚动淡出
scroll-fade-t仅顶部边缘淡出
scroll-fade-b仅底部边缘淡出
scroll-fade-l仅左侧边缘淡出
scroll-fade-r仅右侧边缘淡出
scroll-fade-s逻辑起始边缘淡出(RTL 下自动镜像)
scroll-fade-e逻辑结束边缘淡出(RTL 下自动镜像)
scroll-fade-<数字>设置淡出尺寸(基于间距比例)
scroll-fade-none移除淡出效果

scroll-fadescroll-fade-y 添加到设置了 overflow-y-auto 的滚动容器上:

html
<div class="scroll-fade overflow-y-auto h-48">
  <!-- 列表内容 -->
</div>

淡出效果通过 mask-image 实现,直接淡化内容本身而非叠加颜色。默认淡出深度为容器尺寸的 12%,上限 40px。使用 scroll-fade-<数字> 设置固定尺寸,如 scroll-fade-[120px]。使用 --scroll-fade-reveal 变量控制淡出的滚动响应距离(默认 96px)。

在不支持 CSS 滚动驱动动画的浏览器中,回退为在两端显示静态淡出效果。

ScrollAreaMessageScroller 组件可在其可滚动视口上使用 scroll-fade


shimmer

为文本元素添加微光闪烁效果的实用工具类。当 npx shadcn@latest init 初始化项目时,shimmer 已随 shadcn 包内置。

使用

类名样式
shimmer背景裁剪为文本,动画持续循环
shimmer-once仅播放一次动画
shimmer-reverse反向播放动画
shimmer-none禁用闪烁效果
shimmer-color-<颜色>设置高亮颜色
shimmer-duration-<数字>设置动画时长(毫秒)
shimmer-spread-<数字>设置高亮带宽度
shimmer-angle-<数字>设置高亮带倾斜角度

shimmer 添加到文本元素上:

html
<h1 class="shimmer text-4xl font-bold">加载中...</h1>

闪烁效果基于 currentColor 构建,自动适配元素的文本颜色。和 Marker 组件搭配:<Marker class="shimmer">思考中...</Marker>

  • 颜色shimmer-color-sky-300shimmer-color-[#ff6b6b]
  • 时长shimmer-duration-1000(1 秒一个周期,默认 2000)
  • 宽度shimmer-spread-4(窄)或 shimmer-spread-24(宽),默认 calc(3ch + 40px)
  • 角度shimmer-angle-45(45 度,默认 20)

当用户偏好减少动画时,闪烁效果会自动禁用。RTL 下动画方向自动跟随阅读方向。