responsive alert

This commit is contained in:
Max S 2024-08-26 12:11:07 +02:00
parent 334313e71d
commit a36864b80b
2 changed files with 44 additions and 38 deletions

View File

@ -11,6 +11,36 @@
border: 1px solid var(--alerts-info-border); border: 1px solid var(--alerts-info-border);
background: var(--alerts-info-background); background: var(--alerts-info-background);
@media screen and (max-width: 680px) {
flex-direction: column;
}
.top {
align-self: stretch;
display: flex;
justify-content: space-between;
align-items: center;
}
.close-button {
display: block;
&.desktop {
display: block;
@media screen and (max-width: 680px) {
display: none;
}
}
&.mobile {
display: none;
@media screen and (max-width: 680px) {
display: block;
}
}
}
.content { .content {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@ -25,64 +55,34 @@
.button-container { .button-container {
display: flex; display: flex;
gap: var(--spacing-md, 16px); gap: var(--spacing-md, 16px);
@media screen and (max-width: 680px) {
flex-direction: column;
button {
width: 100%;
} }
} }
.icon {
display: flex;
padding: var(--spacing-1, 8px);
align-items: center;
align-self: flex-start;
border-radius: var(--alerts-badge-radius, 360px);
border: 1px solid var(--alerts-badge-border, rgba(0, 0, 0, 0));
background: var(--alerts-badge-background, #fff);
box-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.1);
svg {
width: 24px;
height: 24px;
min-width: 24px;
min-height: 24px;
stroke: var(--alerts-badge-contrast-info);
} }
} }
&.error { &.error {
border-color: var(--alerts-error-border); border-color: var(--alerts-error-border);
background: var(--alerts-error-background); background: var(--alerts-error-background);
.icon svg {
stroke: var(--alerts-badge-contrast-error);
}
} }
&.warning { &.warning {
border-color: var(--alerts-warning-border); border-color: var(--alerts-warning-border);
background: var(--alerts-warning-background); background: var(--alerts-warning-background);
.icon svg {
stroke: var(--alerts-badge-contrast-warning);
}
} }
&.success { &.success {
border-color: var(--alerts-success-border); border-color: var(--alerts-success-border);
background: var(--alerts-success-background); background: var(--alerts-success-background);
.icon svg {
stroke: var(--alerts-badge-contrast-success);
}
} }
&.neutral { &.neutral {
border-color: var(--alerts-neutral-border); border-color: var(--alerts-neutral-border);
background: var(--alerts-neutral-background); background: var(--alerts-neutral-background);
.icon svg {
stroke: var(--alerts-badge-contrast-neutral);
}
} }
&.fullwidth { &.fullwidth {

View File

@ -52,7 +52,13 @@ export default function Alert(props: IProps) {
return ( return (
<div className={classNames(classes["root"], classes[variant], fullWidth && classes["fullwidth"])}> <div className={classNames(classes["root"], classes[variant], fullWidth && classes["fullwidth"])}>
<div className={classes["top"]}>
<BadgeIcon icon={icon ?? <InformationCircleIcon />} color={variantColorMap[variant]} /> <BadgeIcon icon={icon ?? <InformationCircleIcon />} color={variantColorMap[variant]} />
{closeButton && (
<IconButton className={classNames(classes["close-button"], classes["mobile"])} onClick={close} icon={<XMarkIcon />} />
)}
</div>
<div className={classes["content"]}> <div className={classes["content"]}>
<div className={classes["text-container"]}> <div className={classes["text-container"]}>
<Typography typo={ETypo.TEXT_LG_SEMIBOLD} color={ETypoColor.COLOR_NEUTRAL_950}> <Typography typo={ETypo.TEXT_LG_SEMIBOLD} color={ETypoColor.COLOR_NEUTRAL_950}>
@ -84,7 +90,7 @@ export default function Alert(props: IProps) {
)} )}
</div> </div>
</div> </div>
{closeButton && <IconButton onClick={close} icon={<XMarkIcon />} />} {closeButton && <IconButton className={classNames(classes["close-button"], classes["desktop"])} onClick={close} icon={<XMarkIcon />} />}
</div> </div>
); );
} }