Logomark

Dialog responsive

Last updated on March 25, 2026 at 5:50 PM

A dialog is a container that floats on top of another surface. Dialogs focus a user's attention on a single-step task, question, or message.

Code

Usage

The DialogResponsive component is a Base UI component.

<DialogResponsive>
  <DialogResponsiveTrigger render={<Button>Open dialog</Button>} />
  <DialogResponsivePopup>
    <img
      alt="Cat"
      className="aspect-16-9 rounded-[12px] object-cover select-none max-[640px]:rounded-[20px]"
      draggable={false}
      src="https://placecats.com/640/480"
    />
    <Spacer height={16} />
    
    <p className="font-700 text-24 text-gray-12 text-center">Welcome!</p>
    <Spacer height={16} />
    <p className="text-center">Anyone to create their own components.</p>
    <Spacer height={24} />
    
    <Button isFullWidth size={48}>
      Continue
    </Button>
  </DialogResponsivePopup>
</DialogResponsive>

State

By default, DialogResponsive is an uncontrolled component that manages its own state.

<DialogResponsive>
  <DialogResponsiveTrigger render={<Button>Open dialog</Button>} />
  <DialogResponsivePopup>
    Hello!
  </DialogResponsivePopup>
</DialogResponsive>

Use isOpen and onIsOpenChange props if you need to access or control the state.

const [isOpen, setIsOpen] = useState(false);

return (
  <DialogResponsive>
    <DialogResponsiveTrigger render={<Button>Open dialog</Button>} />
    <DialogResponsivePopup>
      Hello!
    </DialogResponsivePopup>
  </DialogResponsive>
);