diff options
Diffstat (limited to 'src/components/molecules')
| -rw-r--r-- | src/components/molecules/modals/modal.module.scss | 17 | ||||
| -rw-r--r-- | src/components/molecules/modals/modal.tsx | 25 |
2 files changed, 38 insertions, 4 deletions
diff --git a/src/components/molecules/modals/modal.module.scss b/src/components/molecules/modals/modal.module.scss index 2fff562..8866834 100644 --- a/src/components/molecules/modals/modal.module.scss +++ b/src/components/molecules/modals/modal.module.scss @@ -1,4 +1,5 @@ @use "@styles/abstracts/functions" as fun; +@use "@styles/abstracts/mixins" as mix; .wrapper { padding: var(--spacing-md); @@ -12,6 +13,22 @@ 1; box-shadow: fun.convert-px(2) fun.convert-px(-2) fun.convert-px(3) fun.convert-px(-1) var(--color-shadow-dark); + + @include mix.media("screen") { + @include mix.dimensions(null, "sm") { + padding: var(--spacing-xs); + border-left: none; + border-right: none; + + .title { + margin-bottom: var(--spacing-2xs); + } + } + + @include mix.dimensions("sm") { + max-width: 35ch; + } + } } .icon { diff --git a/src/components/molecules/modals/modal.tsx b/src/components/molecules/modals/modal.tsx index ce12e7a..52ada57 100644 --- a/src/components/molecules/modals/modal.tsx +++ b/src/components/molecules/modals/modal.tsx @@ -13,6 +13,10 @@ export type ModalProps = { */ className?: string; /** + * Set additional classnames to the heading. + */ + headingClassName?: string; + /** * A icon to illustrate the modal. */ icon?: Icons; @@ -22,9 +26,12 @@ export type ModalProps = { title?: string; }; -const CogIcon = dynamic<CogProps>(() => import('@components/atoms/icons/cog')); +const CogIcon = dynamic<CogProps>(() => import('@components/atoms/icons/cog'), { + ssr: false, +}); const SearchIcon = dynamic<MagnifyingGlassProps>( - () => import('@components/atoms/icons/magnifying-glass') + () => import('@components/atoms/icons/magnifying-glass'), + { ssr: false } ); /** @@ -32,7 +39,13 @@ const SearchIcon = dynamic<MagnifyingGlassProps>( * * Render a modal component with an optional title and icon. */ -const Modal: FC<ModalProps> = ({ children, className = '', icon, title }) => { +const Modal: FC<ModalProps> = ({ + children, + className = '', + headingClassName = '', + icon, + title, +}) => { const getIcon = (id: Icons) => { switch (id) { case 'cogs': @@ -47,7 +60,11 @@ const Modal: FC<ModalProps> = ({ children, className = '', icon, title }) => { return ( <div className={`${styles.wrapper} ${className}`}> {title && ( - <Heading isFake={true} level={3}> + <Heading + isFake={true} + level={3} + className={`${styles.title} ${headingClassName}`} + > {icon && <span className={styles.icon}>{getIcon(icon)}</span>} {title} </Heading> |
