@gravityforms/components
Version:
UI components for use in Gravity Forms development. Both React and vanilla js flavors.
218 lines (182 loc) • 4.39 kB
CSS
.gform-admin {
.gform-snackbar {
align-items: center;
background: var(--gform-admin-color-white);
border: 1px solid var(--gform-admin-color-white-lilac);
border-radius: 3px;
box-shadow: var(--gform-admin-box-shadow-mega);
box-sizing: border-box;
display: flex;
flex-direction: row;
font-family: var(--gform-admin-font-family-base);
font-size: var(--gform-common-font-size-sm);
font-weight: var(--gform-common-font-weight-medium);
max-width: calc(100% - 40px);
min-height: 56px;
min-width: 344px;
opacity: 0;
padding: 16px;
position: absolute;
transform: scale(0.95);
transition: transform 300ms ease-in-out, opacity 300ms ease-in-out;
transition-delay: var(--gform-snackbar-animation-delay, 0ms);
width: max-content;
&.gform-snackbar--reveal {
opacity: 1;
transform: scale(1);
}
&.gform-snackbar--bottomleft {
bottom: 20px;
left: 20px;
}
&.gform-snackbar--bottomright {
bottom: 20px;
right: 20px;
}
&.gform-snackbar--topleft {
left: 20px;
top: 20px;
}
&.gform-snackbar--topright {
right: 20px;
top: 20px;
}
&.gform-snackbar--has-close {
padding-right: 50px;
}
}
/* todo: create as close component, check figma */
.gform-snackbar__close {
align-items: center;
background: var(--gform-admin-color-white);
border: 1px solid transparent;
border-radius: 100%;
color: var(--gform-admin-color-amethyst-smoke);
cursor: pointer;
display: flex;
font-size: 32px;
height: 24px;
justify-content: center;
position: absolute;
right: 10px;
top: 16px;
transition: border-color 300ms ease, box-shadow 300ms ease, background-color 300ms ease, color 300ms ease;
width: 24px;
&:hover {
color: var(--gform-admin-color-comet);
}
&:focus-visible {
border-color: var(--gform-admin-color-gravity-blue);
box-shadow: 0 0 0 2px var(--gform-admin-color-focus);
color: var(--gform-admin-color-comet);
outline: none;
}
}
.gform-snackbar__icon {
font-size: 24px;
margin-right: 10px;
}
.gform-snackbar__message {
margin-right: 6px;
}
.gform-snackbar__cta {
color: var(--gform-admin-color-gravity-blue);
margin-left: auto;
text-decoration: none;
&:focus,
&:hover {
box-shadow: none;
outline: none;
text-decoration: underline;
}
}
.gform-snackbar--success {
.gform-snackbar__icon {
color: var(--gform-admin-color-green);
}
}
.gform-snackbar--error {
.gform-snackbar__icon {
color: var(--gform-admin-color-red);
}
}
.gform-snackbar--theme-cosmos {
left: 50%;
margin-block-start: 30px;
min-height: 52px;
min-width: auto;
opacity: 0;
padding-block: 0;
padding-inline: 16px;
position: fixed;
top: calc((60px * var(--gform-snackbar-index)));
transform: translateX(-50%);
transition: top 0.5s ease, opacity 0.5s ease, visibility 0.5s;
transition-delay: var(--gform-snackbar-animation-delay, 0ms);
visibility: hidden;
z-index: 100009;
&.gform-snackbar--visible {
opacity: 1;
top: calc((60px * var(--gform-snackbar-index)));
transition: top 0.5s ease, opacity 0.5s ease, visibility 0.5s;
visibility: visible;
}
.gform-snackbar__type-icon {
align-items: center;
border: 2px solid transparent;
border-radius: 100%;
box-sizing: border-box;
display: flex;
font-size: 1rem;
height: 20px;
justify-content: center;
width: 20px;
}
.gform-snackbar__type-icon--error {
background-color: var(--gform-admin-color-background-red);
border-color: var(--gform-admin-color-red);
color: var(--gform-admin-color-red);
}
.gform-snackbar__type-icon--success {
background-color: var(--gform-admin-color-light-green);
border-color: var(--gform-admin-color-green);
color: var(--gform-admin-color-green);
}
}
}
html[dir="rtl"] .gform-admin {
.gform-snackbar {
&.gform-snackbar--bottomleft {
left: auto;
right: 20px;
}
&.gform-snackbar--bottomright {
left: 20px;
right: auto;
}
&.gform-snackbar--topleft {
left: 20px;
}
&.gform-snackbar--topright {
right: 20px;
}
&.gform-snackbar--has-close {
padding-left: 50px;
padding-right: 16px;
}
}
.gform-snackbar__close {
left: 10px;
right: auto;
}
.gform-snackbar__cta {
margin-left: 0;
margin-right: auto;
}
.gform-snackbar__icon {
margin: 0 0 0 10px;
}
.gform-snackbar__message {
margin: 0 0 0 6px;
}
}