14.3.0 [Current] 13.3.1 [Past] 12.7.4 [Past] Modal import Modal from ' @concur/nui-widgets/lib/Modal/Modal ' ; Modals act as dialog boxes overlaid on top of the page. This allows the user to focus on specific content before returning to the underlying application page.
Modals consist of a header component (with or without a close box), a title component, a body component, and a footer component (plus an optional subheading component below the title).
Examples Sizes There are three supported modal sizes: 'lg' (default), 'md', and 'sm'. Use the size property to set the size.
Copy Code const HIGModalEx01 = () => {
let [ openLg , setOpenLg ] = useState ( false );
let [ openMd , setOpenMd ] = useState ( false );
let [ openSm , setOpenSm ] = useState ( false );
return (
<>
< ButtonToolbar muted >
< Button onClick= { () => setOpenLg ( true ) } > Large Modal</ Button >
< Button onClick= { () => setOpenMd ( true ) } > Medium Modal</ Button >
< Button onClick= { () => setOpenSm ( true ) } > Small Modal</ Button >
</ ButtonToolbar >
< Modal
onHide= { () => setOpenLg ( false ) }
show= { openLg } >
< Modal . Header closeButton closeLabel= 'Close' >
< Modal . Title > Sample Title</ Modal . Title >
</ Modal . Header >
< Modal . Body >
Sample modal content.
</ Modal . Body >
< Modal . Footer >
< Button onClick= { () => setOpenLg ( false ) } > Close</ Button >
</ Modal . Footer >
</ Modal >
< Modal
onHide= { () => setOpenMd ( false ) }
show= { openMd }
size= 'md' >
< Modal . Header closeButton closeLabel= 'Close' >
< Modal . Title > Sample Title</ Modal . Title >
</ Modal . Header >
< Modal . Body >
Sample modal content.
</ Modal . Body >
< Modal . Footer >
< Button onClick= { () => setOpenMd ( false ) } > Close</ Button >
</ Modal . Footer >
</ Modal >
< Modal
onHide= { () => setOpenSm ( false ) }
show= { openSm }
size= 'sm' >
< Modal . Header closeButton closeLabel= 'Close' >
< Modal . Title > Sample Title</ Modal . Title >
</ Modal . Header >
< Modal . Body >
Sample modal content.
</ Modal . Body >
< Modal . Footer >
< Button onClick= { () => setOpenSm ( false ) } > Close</ Button >
</ Modal . Footer >
</ Modal >
</>
);
}; With Subhead The Modal.Subhead component provides a way to add additional details to the modal header.
Copy Code const HIGModalEx02 = () => {
let [ open , setOpen ] = useState ( false );
return (
<>
< ButtonToolbar muted >
< Button onClick= { () => setOpen ( true ) } > Show Modal w/ Subhead</ Button >
</ ButtonToolbar >
< Modal
onHide= { () => setOpen ( false ) }
show= { open } >
< Modal . Header closeButton closeLabel= 'Close' >
< Modal . Title > Sample Title with Subhead</ Modal . Title >
< Modal . Subhead >
< ul className= 'list-inline cnqr-separated' >
< li > Some information</ li >
< li > More information</ li >
</ ul >
</ Modal . Subhead >
</ Modal . Header >
< Modal . Body >
Sample modal content.
</ Modal . Body >
< Modal . Footer >
< Button onClick= { () => setOpen ( false ) } > Close</ Button >
</ Modal . Footer >
</ Modal >
</>
);
}; Full-Screen Modals Full-screen modals will size themselves to the dimensions of the browser window, obscuring all underlying content.
Copy Code const HIGModalEx03 = () => {
let [ open , setOpen ] = useState ( false );
return (
<>
< ButtonToolbar muted >
< Button onClick= { () => setOpen ( true ) } > Show Fullscreen Modal</ Button >
</ ButtonToolbar >
< Modal
fullscreen
onHide= { () => setOpen ( false ) }
show= { open } >
< Modal . Header closeButton closeLabel= 'Close' >
< Modal . Title > Sample Title</ Modal . Title >
</ Modal . Header >
< Modal . Body >
Sample modal content.
</ Modal . Body >
< Modal . Footer >
< Button onClick= { () => setOpen ( false ) } > Close</ Button >
</ Modal . Footer >
</ Modal >
</>
);
}; Usage Modal Properties Property Type Default Description className String Custom classes to add to the modal’s outermost <div> tag. containerClassName String Custom classes applied to the modal container (<body> by default) when the modal is open, and removed when it is closed. fullscreen Boolean false When true, the modal will take up the entire browser window, obscuring all underlying content. modalContainerClassName String Custom classes to add to the modal content’s outermost <div> tag. show Boolean false Controls whether the modal is visible. size String 'lg' Size of the modal. Options are 'lg', 'md', 'sm'.
Callbacks Property Parameters Description onHide Fired when the modal is dismissed. onShow Fired when the modal is activated.
Properties Property Type Default Description closeLabel String 'Close' Provides an accessible label for the close button. Required when closeButton is true closeButton Boolean false If true, the modal will display a close button.
Modal.Title Properties Property Type Default Description className String Custom classes to add to the heading tag. headingLevel Number (2-6) 2 Heading level. 1 is reserved for the page title.
Modal.Subhead Properties Property Type Default Description className String Custom classes to add to the sub heading <div> tag.
Modal.Body Properties Property Type Default Description className String Custom classes to add to the body’s <div> tag.
Properties Property Type Default Description className String Custom classes to add to the footer’s <div> tag.