ScrollShadow 滚动阴影
通过阴影提示可滚动溢出内容,并根据滚动位置自动检测显示或隐藏。
引入
import { ScrollShadow } from "@heroui/react";
用法
HeroUI 示例
方向
HeroUI 示例
隐藏滚动条
HeroUI 示例
自定义阴影尺寸
HeroUI 示例
可见性变化
HeroUI 示例
与 Card 组合
HeroUI 示例
样式
传入 Tailwind CSS 类
import {ScrollShadow, Card} from "@heroui/react";
function CustomScrollShadow() {
return (
<Card className="w-full p-0 sm:max-w-md">
<ScrollShadow className="max-h-[300px] p-6 bg-gradient-to-b from-purple-50 to-pink-50">
<div className="space-y-4">
{Array.from({length: 10}).map((_, idx) => (
<p key={idx}>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam pulvinar risus non
risus hendrerit venenatis.
</p>
))}
</div>
</ScrollShadow>
</Card>
);
}
自定义组件类
若要自定义 ScrollShadow 组件类,可以使用 @layer components 指令。
了解更多.
@layer components {
.scroll-shadow {
@apply rounded-xl border border-default-200;
}
.scroll-shadow--vertical {
@apply pr-2; /* Add padding for custom scrollbar styling */
}
.scroll-shadow--horizontal {
@apply pb-2;
}
}
HeroUI 遵循 BEM 方法论,确保组件变体与状态可复用且易于自定义。
CSS 类
ScrollShadow 组件使用以下 CSS 类(查看源码样式):
基础类
.scroll-shadow- 根容器元素
方向变体
.scroll-shadow--vertical- 纵向滚动(默认).scroll-shadow--horizontal- 横向滚动
状态修饰符
.scroll-shadow--hide-scrollbar- 隐藏原生滚动条
CSS 变量
ScrollShadow 组件使用 CSS 变量设置渐变遮罩尺寸,并为可见的原生滚动条保留空间:
| 变量 | 默认值 | 描述 |
|---|---|---|
--scroll-shadow-size | 40px | 控制渐变阴影尺寸。该值由 size prop 设置。 |
--scroll-shadow-scrollbar-size | 10px(hideScrollBar 时为 0px) | 为原生滚动条保留一段实色遮罩区域,避免渐变覆盖滚动条。使用更宽的自定义滚动条时可以覆盖该值。 |
Data 属性
组件使用 data 属性控制阴影可见性:
- 滚动状态:
[data-top-scroll]、[data-bottom-scroll]、[data-left-scroll]、[data-right-scroll]— 当内容可向对应方向滚动时应用 - 组合状态:
[data-top-bottom-scroll]、[data-left-right-scroll]— 当内容可向两个方向滚动时应用 - 方向:
[data-orientation="vertical"]或[data-orientation="horizontal"]— 表示滚动方向 - 尺寸:
[data-scroll-shadow-size]— 阴影渐变尺寸数值
API 参考
ScrollShadow
| Prop | 类型 | 默认值 | 描述 |
|---|---|---|---|
orientation | "vertical" | "horizontal" | "vertical" | 滚动方向 |
variant | "fade" | "fade" | 阴影视觉效果样式 |
size | number | 40 | 阴影渐变尺寸(像素) |
offset | number | 0 | 开始显示阴影前的滚动偏移量(像素) |
hideScrollBar | boolean | false | 是否隐藏原生滚动条 |
isEnabled | boolean | true | 是否启用滚动阴影检测 |
visibility | "auto" | "both" | "top" | "bottom" | "left" | "right" | "none" | "auto" | 受控的阴影可见性 |
onVisibilityChange | (visibility: ScrollShadowVisibility) => void | - | 阴影可见性变化时调用的回调 |
className | string | - | 应用到根元素上的额外 CSS 类 |
children | ReactNode | - | 可滚动的子内容 |
本地来源: vendor/zh/react/components/(utilities)/scroll-shadow.mdx
文档根据 HeroUI v3 固定提交生成,已调整内部链接与交互预览以适配 JGuang。
RangeCalendarRangeCalendar 范围日历
Composable date range picker with month grid, navigation, and year picker support built on React Aria RangeCalendar基于 React Aria RangeCalendar 的可组合日期范围选择器,包含月份网格、导航与年份选择支持。
SearchFieldSearchField 搜索框
Search input field with clear button and search icon搜索输入字段,包含清除按钮与搜索图标。