diff --git a/packages/cyberstorm/src/newComponents/Modal/Modal.css b/packages/cyberstorm/src/newComponents/Modal/Modal.css index 899516a83..dbf95ec83 100644 --- a/packages/cyberstorm/src/newComponents/Modal/Modal.css +++ b/packages/cyberstorm/src/newComponents/Modal/Modal.css @@ -2,11 +2,14 @@ .modal__overlay { position: fixed; background: rgb(0 0 0 / 0.6); - backdrop-filter: blur(10px); animation: overlay-show 150ms cubic-bezier(0.16, 1, 0.3, 1); inset: 0; } + .modal__overlay--blur { + backdrop-filter: blur(10px); + } + .modal__content { position: fixed; top: 50%; diff --git a/packages/cyberstorm/src/newComponents/Modal/Modal.tsx b/packages/cyberstorm/src/newComponents/Modal/Modal.tsx index baccdb5d6..08ecb1593 100644 --- a/packages/cyberstorm/src/newComponents/Modal/Modal.tsx +++ b/packages/cyberstorm/src/newComponents/Modal/Modal.tsx @@ -85,6 +85,10 @@ export interface ModalProps * Provide the id of an element that describes the dialog. */ ariaDescribedby?: string; + /** + * When true, the modal overlay applies a heavy blur effect. Disable for better performance. + */ + enableBackdropBlur?: boolean; } // TODO: Style system compatibility is currently degraded, improve to a agreed upon level according to specifications @@ -189,6 +193,7 @@ export function Modal(props: ModalProps) { titleContent, footerContent, ariaDescribedby, + enableBackdropBlur = false, } = props; const filteredChildren: ReactNode[] = []; @@ -244,7 +249,12 @@ export function Modal(props: ModalProps) { > {trigger ? {trigger} : null} - +