@xwink/ui

    Drawer

    贴着视口一条边滑出的模态面板,放详情、日志、筛选这类不必离开当前页面的内容。焦点陷阱、Esc 与点遮罩关闭、滚动锁、关闭后焦点回到打开它的按钮,都交给 Reka UI。

    方向

    side 取 right(缺省)、left、top、bottom。左右缺省宽 28rem(窄屏占满),用 class 改宽度;顶部与底部最高 85% 视口,内容超出时面板内滚动。

    四个方向

    只有底部跟手。 底部用 Reka 的 Drawer,手指或鼠标按住面板下拉就关,没拉够松手弹回,是移动端底部面板的惯例。左右与顶部用 Dialog 底座:Reka Drawer 的拖拽对鼠标同样生效并会捕获指针,桌面侧边抽屉里拖选文字就变成了拖抽屉,而侧边抽屉多放详情、日志这类要复制的内容。

    标题栏操作

    #actions 插槽放在关闭按钮左边,适合「复制」「刷新」这类针对整块内容的操作;底部按钮行用 #footer。没有 title 时读屏没有名字,用 aria-label 补上。

    标题栏放操作、加宽

    API

    Props

    名称类型默认值说明
    side"top" | "bottom" | "left" | "right" | undefined"right"从哪条边滑出,缺省右侧。底部抽屉能下拉关闭,左右与顶部不跟手(桌面上拖拽会抢走文字选择)
    titlestring | undefinedundefined—
    descriptionstring | undefinedundefined补充说明,同时作为 aria-describedby 的内容
    hideCloseboolean | undefinedfalse关掉标题栏的关闭按钮
    openboolean | undefinedfalse—

    Emits

    事件载荷说明
    update:open[value: boolean]—

    Slots

    插槽说明
    actions—
    default—
    footer—