Drawers

Slide-over overlays. Open via Drawers.show_drawer; close on Escape, backdrop click, or explicit button.

Preview

React preview

LiveView (HEEx)

alias DesignSystem.UI.Drawers
alias Phoenix.LiveView.JS

<Buttons.button phx-click={Drawers.show_drawer("project-drawer")}>
  New project
</Buttons.button>

<Drawers.drawer id="project-drawer">
  <div class="px-4 sm:px-6">
    <div class="flex items-start justify-between">
      <h2 class="text-base font-semibold text-gray-900 dark:text-white">
        New project
      </h2>
      <Drawers.drawer_close_button drawer_id="project-drawer" />
    </div>
  </div>
  <div class="relative mt-6 flex-1 px-4 sm:px-6">
    <p>Fill in the project details.</p>
  </div>
</Drawers.drawer>

React (JSX)

import { useState } from "react"
import { Button, Drawer } from "../ui/index.mjs"

function NewProject() {
  const [open, setOpen] = useState(false)
  return (
    <>
      <Button onClick={() => setOpen(true)}>New project</Button>
      <Drawer open={open} onClose={setOpen} title="New project">
        <p>Fill in the project details.</p>
      </Drawer>
    </>
  )
}