导航与展开@neumorphism-ui/resizable

Resizable

使用 react-resizable-panels 处理尺寸计算和 separator 无障碍语义。新拟态只负责面板边界和 handle 表面,不重新实现面板状态。

@neumorphism-ui/resizable
Registry JSON

预览

列表
详情

安装

安装: resizablenpx shadcn@latest add @neumorphism-ui/resizable

CLI 会依次处理 npm 依赖、base token、utils 和组件源码。

首次使用此 Registry?请先完成 namespace 配置 。

用法

Import

Resizable import 代码
"use client";
import {
  ResizableHandle,
  ResizablePanel,
  ResizablePanelGroup,
} from "@/components/ui/resizable";

Example

Resizable 用法代码
export default function Example() {
  return <ResizablePanelGroup orientation="horizontal" className="h-48 max-w-lg">
    <ResizablePanel defaultSize={40} minSize={25}><div className="grid h-full place-items-center p-4">列表</div></ResizablePanel>
    <ResizableHandle withHandle />
    <ResizablePanel defaultSize={60} minSize={30}><div className="grid h-full place-items-center p-4">详情</div></ResizablePanel>
  </ResizablePanelGroup>;
}

API 参考

组件属性类型默认值说明
ResizablePanelGrouporientation必填"horizontal" | "vertical"—设置面板分割方向。
ResizablePaneldefaultSizenumber | string—设置初始面板尺寸。
ResizablePanelminSize / maxSizenumber | string—限制面板缩小或扩大的范围。
ResizableHandlewithHandlebooleanfalse在 separator 中间显示视觉 grip。
ResizableHandledisabledbooleanfalse保留 separator 但禁用尺寸调整。

无障碍

  • 01

    ResizableHandle 使用库提供的 separator 语义和当前尺寸值,不额外制作伪 slider。

  • 02

    键盘用户可以聚焦 separator 并使用方向键调整面板尺寸。

  • 03

    视觉 grip 使用 aria-hidden,交互含义由 separator 本身承担。