Utility
Terminal
Installation
$ pnpm dlx shadcn@latest add @termcn/ink/drawer
Usage
import { Drawer } from "@/components/ui/drawer";<Drawer
isOpen={true}
edge="right"
title="Details"
width={40}
onClose={() => close()}
>
<Text>Name: my-project</Text>
<Text>Status: active</Text>
</Drawer>API Reference
Drawer
| Prop | Type | Default |
|---|---|---|
isOpen | boolean | false |
edge | "left" | "right" | "top" | "bottom" | "right" |
title | string | - |
children | ReactNode | required |
onClose | () => void | - |
width | number | 40 |
height | number | 10 |
Notes
Accessibility
termcn exposes the following behavior through Ink's terminal accessibility APIs. This is not a browser ARIA or general WCAG-conformance claim.
- Keyboard:
Tab/Shift+Tabmove through enabled controls inside the active scope;Enter/Spaceactivate the focused control;Escapecloses only the topmost active surface and restores focus. - Focus and composition: While open, the active focus scope contains traversal, gives input ownership to the topmost scope, and restores focus when it closes.
- Screen reader: Ink labels and semantic state expose the component without relying on visual styling alone.