summaryrefslogtreecommitdiffstats
path: root/src/components/molecules
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/molecules')
-rw-r--r--src/components/molecules/modals/modal.module.scss17
-rw-r--r--src/components/molecules/modals/modal.tsx25
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>