package.components.Alert.alert-group.scss Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of patternfly Show documentation
Show all versions of patternfly Show documentation
Assets, source, tooling, and content for PatternFly 4
The newest version!
@use '../../sass-utilities' as *;
// Tabs
@include pf-root($alert-group) {
// Alert group variables
--#{$alert-group}__item--MarginBlockStart: var(--pf-t--global--spacer--gap--group--vertical);
// Toast variables
--#{$alert-group}--m-toast--InsetBlockStart: var(--pf-t--global--spacer--2xl);
--#{$alert-group}--m-toast--InsetInlineEnd: var(--pf-t--global--spacer--xl);
--#{$alert-group}--m-toast--MaxWidth: #{pf-size-prem(600px)};
--#{$alert-group}--m-toast--ZIndex: var(--pf-t--global--z-index--2xl);
// Overflow button
--#{$alert-group}__overflow-button--BorderWidth: 0;
--#{$alert-group}__overflow-button--BorderRadius: var(--pf-t--global--border--radius--medium);
--#{$alert-group}__overflow-button--PaddingBlockStart: var(--pf-t--global--spacer--md);
--#{$alert-group}__overflow-button--PaddingInlineEnd: var(--pf-t--global--spacer--md);
--#{$alert-group}__overflow-button--PaddingBlockEnd: var(--pf-t--global--spacer--md);
--#{$alert-group}__overflow-button--PaddingInlineStart: var(--pf-t--global--spacer--md);
--#{$alert-group}__overflow-button--Color: var(--pf-t--global--text--color--link--default);
--#{$alert-group}__overflow-button--BoxShadow: var(--pf-t--global--box-shadow--lg);
--#{$alert-group}__overflow-button--BackgroundColor: var(--pf-t--global--background--color--floating--default);
--#{$alert-group}__overflow-button--hover--Color: var(--pf-t--global--text--color--link--hover);
--#{$alert-group}__overflow-button--hover--BackgroundColor: var(--pf-t--global--background--color--floating--hover);
--#{$alert-group}__overflow-button--hover--BoxShadow: var(--pf-t--global--box-shadow--lg), var(--pf-t--global--box-shadow--lg--bottom);
--#{$alert-group}__overflow-button--focus--Color: var(--pf-t--global--text--color--link--hover);
--#{$alert-group}__overflow-button--focus--BoxShadow: var(--pf-t--global--box-shadow--lg), var(--pf-t--global--box-shadow--lg--bottom);
--#{$alert-group}__overflow-button--active--Color: var(--pf-t--global--text--color--link--hover);
--#{$alert-group}__overflow-button--active--BoxShadow: var(--pf-t--global--box-shadow--lg), var(--pf-t--global--box-shadow--lg--bottom);
}
.#{$alert-group} {
// Spacing between alerts
> * + * {
margin-block-start: var(--#{$alert-group}__item--MarginBlockStart);
}
// Toast positioning modifier
&.pf-m-toast {
position: fixed;
inset-block-start: var(--#{$alert-group}--m-toast--InsetBlockStart);
inset-inline-end: var(--#{$alert-group}--m-toast--InsetInlineEnd);
z-index: var(--#{$alert-group}--m-toast--ZIndex);
width: calc(100% - calc(var(--#{$alert-group}--m-toast--InsetInlineEnd) * 2));
max-width: var(--#{$alert-group}--m-toast--MaxWidth);
}
}
.#{$alert-group}__overflow-button {
position: relative;
width: 100%;
padding-block-start: var(--#{$alert-group}__overflow-button--PaddingBlockStart);
padding-block-end: var(--#{$alert-group}__overflow-button--PaddingBlockEnd);
padding-inline-start: var(--#{$alert-group}__overflow-button--PaddingInlineStart);
padding-inline-end: var(--#{$alert-group}__overflow-button--PaddingInlineEnd);
color: var(--#{$alert-group}__overflow-button--Color);
background-color: var(--#{$alert-group}__overflow-button--BackgroundColor);
border-width: var(--#{$alert-group}__overflow-button--BorderWidth);
border-radius: var(--#{$alert-group}__overflow-button--BorderRadius);
box-shadow: var(--#{$alert-group}__overflow-button--BoxShadow);
}
.#{$alert-group}__item {
// Properties to be transitioned on entry/exit
display: grid;
grid-template-rows: 1fr;
opacity: 1;
// This transition will happen when the item is added (.pf-m-offstage-top is removed)
// Reduced motion by default
// transparency change only
transition:
opacity var(--pf-t--global--motion--duration--fade--default) var(--pf-t--global--motion--timing-function--decelerate) 0s;
transform: translateX(0) translateY(0);
// This transition will happen when the item is added (.pf-m-offstage-top is removed)
// give it height, then slide it down into place
// These values are for regular motion
@media screen and (prefers-reduced-motion: no-preference) {
transition:
opacity var(--pf-t--global--motion--duration--fade--default) var(--pf-t--global--motion--timing-function--decelerate) var(--pf-t--global--motion--duration--slide-in--default),
transform var(--pf-t--global--motion--duration--slide-in--default) var(--pf-t--global--motion--timing-function--decelerate) var(--pf-t--global--motion--duration--slide-in--default),
grid-template-rows var(--pf-t--global--motion--duration--slide-in--default) var(--pf-t--global--motion--timing-function--decelerate) 0s,
margin-block var(--pf-t--global--motion--duration--slide-in--default) var(--pf-t--global--motion--timing-function--decelerate) 0s;
& .pf-v6-c-alert {
transition: all var(--pf-t--global--motion--duration--slide-in--default) var(--pf-t--global--motion--timing-function--decelerate);
}
}
// This class is used BEFORE the alert item comes into the list
&.pf-m-offstage-top {
// make the item have no height and position it up above
grid-template-rows: 0fr;
margin-block: 0;
overflow: hidden;
opacity: 0;
transform: translateY(-100%);
& .pf-v6-c-alert {
// make it small when it's first created off to the top
min-height: 0;
padding-block-start: 0;
padding-block-end: 0;
border-width: 0;
}
}
// Add this class before removing an alert
// TODO auto dismissal should be the same motion, but has a different duration
&.pf-m-offstage-right {
grid-template-rows: 0fr; // collapse vertically to bring up the items below
margin-block: 0;
overflow: hidden;
opacity: 0;
// This transition will happen when the item is removed
// Reduced motion by default
// transparency change only
transition:
opacity var(--pf-t--global--motion--duration--fade--short) var(--pf-t--global--motion--timing-function--accelerate) 0s;
transform: translateX(100%);
& .pf-v6-c-alert {
min-height: 0;
padding-block-start: 0;
padding-block-end: 0;
border-width: 0;
}
// This transition will happen when the item is added (.pf-m-offstage-top is removed)
// give it height, then slide it down into place
// These values are for regular motion
@media screen and (prefers-reduced-motion: no-preference) {
transition:
transform var(--pf-t--global--motion--duration--slide-out--short) var(--pf-t--global--motion--timing-function--accelerate) 0s,
opacity var(--pf-t--global--motion--duration--slide-out--short) var(--pf-t--global--motion--timing-function--accelerate) 0s,
margin-block var(--pf-t--global--motion--duration--fade--short) var(--pf-t--global--motion--timing-function--accelerate) var(--pf-t--global--motion--duration--slide-out--short),
grid-template-rows var(--pf-t--global--motion--duration--slide-in--short) var(--pf-t--global--motion--timing-function--accelerate) var(--pf-t--global--motion--duration--slide-out--short);
& .pf-v6-c-alert {
transition: all var(--pf-t--global--motion--duration--slide-out--short) var(--pf-t--global--motion--timing-function--accelerate) var(--pf-t--global--motion--duration--slide-out--short);
}
}
}
&:hover {
--#{$alert-group}__overflow-button--Color: var(--#{$alert-group}__overflow-button--hover--Color);
--#{$alert-group}__overflow-button--BackgroundColor: var(--#{$alert-group}__overflow-button--hover--BackgroundColor);
--#{$alert-group}__overflow-button--BoxShadow: var(--#{$alert-group}__overflow-button--hover--BoxShadow);
}
&:focus {
--#{$alert-group}__overflow-button--Color: var(--#{$alert-group}__overflow-button--focus--Color);
--#{$alert-group}__overflow-button--BoxShadow: var(--#{$alert-group}__overflow-button--focus--BoxShadow);
}
&:active {
--#{$alert-group}__overflow-button--Color: var(--#{$alert-group}__overflow-button--active--Color);
--#{$alert-group}__overflow-button--BoxShadow: var(--#{$alert-group}__overflow-button--active--BoxShadow);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy