Components
Controlled overlay dialog with an active flag and onClose handler that locks page scroll while open. Supports center, bottom, start, end and full-screen positions with matching slide animations, custom size and padding, Modal.Title/Subtitle composition with the Dismissible utility, focus management and a transparent overlay mode for side panels.
npx @21st-dev/cli add reshaped/reshaped-modalLoading preview...
import { Button, Reshaped, useToggle } from "reshaped/bundle";
import Modal from "@/components/ui/reshaped-modal";
function Component() {
const { toggle, deactivate, active } = useToggle(false);
return (
<>
<Button onClick={toggle}>Open side panel</Button>
<Modal active={active} onClose={deactivate} position="end" transparentOverlay>
Side panel content
</Modal>
</>
);
}
export default function Demo() {
return (
<Reshaped theme="slate">
<div style={{ margin: "0 auto", padding: 24, display: "flex", justifyContent: "center" }}>
<Component />
</div>
</Reshaped>
);
}
Loading preview...
Loading preview...
Loading preview...
Loading preview...
Loading preview...
Loading preview...