import React from "react"; import {Modal, ModalContent, ModalHeader, ModalBody, ModalFooter, Button, useDisclosure, Checkbox, Input, Link} from "@nextui-org/react"; import {MailIcon} from './MailIcon.jsx'; import {LockIcon} from './LockIcon.jsx'; export default function App() { const {isOpen, onOpen, onOpenChange} = useDisclosure(); return ( <> <Button onPress={onOpen} color="primary">Open Modal</Button> <Modal isOpen={isOpen} onOpenChange={onOpenChange} placement="top-center" > <ModalContent> {(onClose) => ( <> <ModalHeader className="flex flex-col gap-1">Log in</ModalHeader> <ModalBody> <Input autoFocus endContent={ <MailIcon className="text-2xl text-default-400 pointer-events-none flex-shrink-0" /> } label="Email" placeholder="Enter your email" variant="bordered" /> <Input endContent={ <LockIcon className="text-2xl text-default-400 pointer-events-none flex-shrink-0" /> } label="Password" placeholder="Enter your password" type="password" variant="bordered" /> <div className="flex py-2 px-1 justify-between"> <Checkbox classNames={{ label: "text-small", }} > Remember me </Checkbox> <Link color="primary" href="#" size="sm"> Forgot password? </Link> </div> </ModalBody> <ModalFooter> <Button color="danger" variant="flat" onPress={onClose}> Close </Button> <Button color="primary" onPress={onClose}> Sign in </Button> </ModalFooter> </> )} </ModalContent> </Modal> </> ); }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter