@gravityforms/components
Version:
UI components for use in Gravity Forms development. Both React and vanilla js flavors.
584 lines (464 loc) • 11.4 kB
CSS
.gform-admin {
/* Flyout: WordPress UI Handling */
.admin-bar & {
.gform-flyout__mask--position-fixed.gform-flyout--offset-wpadmin-bar {
block-size: calc(100vh - var(--gform-admin-wp-admin-bar-offset) - var(--gform-admin-flyout-top-offset));
inset-block-start: calc(var(--gform-admin-wp-admin-bar-offset) + var(--gform-admin-flyout-top-offset));
}
}
.wp-admin & {
.gform-flyout__mask--position-fixed.gform-flyout--offset-wpadmin-menu {
inline-size: calc(100% - var(--gform-admin-wp-admin-menu-offset));
}
}
/* Flyout: Mask */
.gform-flyout__mask {
align-items: center;
backdrop-filter: blur(0);
block-size: calc(100% - var(--gform-admin-flyout-top-offset));
display: none;
inline-size: 100%;
inset-block-start: var(--gform-admin-flyout-top-offset);
justify-content: center;
opacity: 0;
transition: opacity 200ms ease-in-out;
&.gform-flyout--anim-in-ready {
display: flex;
}
&.gform-flyout--anim-in-active {
opacity: 1;
}
&.gform-flyout__mask--position-fixed {
position: fixed;
}
&.gform-flyout__mask--position-absolute {
position: absolute;
}
&.gform-flyout__mask--theme-light {
background-color: rgba(255, 255, 255, 0.65);
}
&.gform-flyout__mask--theme-dark {
background-color: rgba(36, 39, 72, 0.75);
}
&.gform-flyout__mask--blur {
backdrop-filter: blur(8px);
}
&.gform-flyout--pinned {
pointer-events: none;
.gform-flyout {
pointer-events: auto;
}
}
&:not(.gform-flyout--offset-wpadmin-menu) {
inset-inline-start: 0;
}
}
/* Flyout */
.gform-flyout {
background-color: var(--gform-admin-color-white);
block-size: 100%;
box-shadow: var(--gform-admin-box-shadow-popup);
box-sizing: border-box;
display: none;
flex-direction: column;
inset-block-end: 0;
inset-block-start: 0;
inset-inline-start: 0;
opacity: 0;
position: absolute;
transition: opacity 200ms ease-in-out, width 200ms ease-in-out;
&:hover {
.gform-flyout__expand {
opacity: 1;
}
}
p {
margin: 0;
padding: 0;
}
* {
box-sizing: border-box;
}
&.gform-flyout--anim-in-ready {
display: flex;
}
&.gform-flyout--anim-in-active {
opacity: 1;
}
&.gform-flyout--fixed {
position: fixed;
}
&.gform-flyout--absolute {
position: absolute;
}
&.gform-flyout--hide-expander {
.gform-flyout__expand {
opacity: 0;
}
}
&.gform-flyout--right {
inset-inline-end: 0;
inset-inline-start: auto;
.gform-flyout__expand-rail {
inset-inline-start: -35px;
}
.gform-flyout__expand {
inset-inline-start: -35px;
}
.gform-flyout__expand-icon {
transform: rotate(90deg);
}
.gform-flyout__pinned-drag-handle-wrapper {
inset-inline-start: 0;
}
}
&.gform-flyout--left {
.gform-flyout__expand-rail {
inset-inline-end: -35px;
}
.gform-flyout__expand {
inset-inline-end: -35px;
}
.gform-flyout__expand-icon {
transform: rotate(-90deg);
}
.gform-flyout__pinned-drag-handle-wrapper {
inset-inline-end: 0;
}
}
&.gform-flyout--dragging {
transition: none;
}
&.gform-flyout--expanded {
&.gform-flyout--right {
.gform-flyout__expand-icon {
transform: rotate(-90deg);
}
}
&.gform-flyout--left {
.gform-flyout__expand-icon {
transform: rotate(90deg);
}
}
}
&.gform-flyout--scroll-simplebar {
.gform-flyout__simplebar {
display: flex;
flex: 1;
max-block-size: 100%;
overflow-y: auto;
/*
NOTE:
This sucks, but is necessary due to bugs with SimpleBar's classNames prop.
We need to target the flyout's implementation specifically as there can be
other instances of SimpleBar used within child components.
*/
& > .simplebar-wrapper > .simplebar-mask > .simplebar-offset > .simplebar-content-wrapper {
& > .simplebar-content {
min-block-size: 100%;
}
}
}
.gform-flyout__body {
block-size: auto;
}
}
&.gform-flyout--scroll-native {
&.gform-flyout--header-footer-fixed {
.gform-flyout__body {
overflow-y: auto;
}
}
&:where(:not(.gform-flyout--header-footer-fixed)) {
overflow-y: auto;
.gform-flyout__body {
block-size: auto;
}
}
}
/* CASE: specific to HTML component */
&:not([class*="gform-flyout--scroll-"]) {
.gform-flyout__body {
overflow-y: auto;
}
}
&.gform-flyout--header-fixed {
.gform-flyout__head {
align-items: center;
background-color: var(--gform-admin-color-white);
inset-block-start: 0;
padding: var(--gform-admin-spacer-4);
position: sticky;
z-index: 5;
}
.gform-flyout__close.gform-button--size-xs,
.gform-flyout__expander.gform-button--size-xs {
inset-block-start: 0;
}
.gform-flyout__body {
@media (--gform-admin-viewport-md-down) {
padding: var(--gform-admin-spacer-4);
}
}
}
&.gform-flyout--footer-fixed {
.gform-flyout__footer {
align-items: center;
background-color: var(--gform-admin-color-white);
inset-block-end: 0;
padding: var(--gform-admin-spacer-4);
position: sticky;
z-index: 5;
&::before {
background-color: var(--gform-admin-color-white-lilac);
block-size: 0.0625rem;
content: "";
inline-size: 100%;
inset-block-start: 0;
inset-inline-start: 0;
position: absolute;
}
}
}
&.gform-flyout--divider {
.gform-flyout__head {
&::after {
background-color: var(--gform-admin-color-white-lilac);
block-size: 0.0625rem;
content: "";
inline-size: 100%;
inset-block-end: 0;
inset-inline-start: 0;
position: absolute;
}
}
}
.gform-flyout__head {
align-items: flex-start;
display: flex;
flex: none;
gap: 1rem;
justify-content: space-between;
min-block-size: 62px;
padding-block: var(--gform-admin-spacer-8);
padding-inline: var(--gform-admin-spacer-10);
position: relative;
}
.gform-flyout__head-left {
align-self: center;
flex: 1 1 auto;
}
.gform-flyout__head-right {
align-items: center;
display: flex;
gap: 0.5rem;
}
.gform-flyout__close.gform-button--size-xs,
.gform-flyout__expander.gform-button--size-xs {
align-items: center;
block-size: 1.625rem;
border: 1px solid var(--gform-admin-color-snuff);
display: flex;
font-size: 1.25rem;
inline-size: 1.625rem;
transition: var(--gform-admin-transition-cl-button-focus);
z-index: 5;
&:hover,
&:focus {
border-color: var(--gform-admin-color-snuff);
}
.gform-button__icon {
font-size: 1.875rem;
}
&.gform-button--simplified {
block-size: 1.875rem;
border: 1px solid transparent;
inline-size: 1.875rem;
transition: var(--gform-admin-transition-button);
&:hover {
border-color: var(--gform-admin-color-white);
}
&:focus {
border-color: var(--gform-admin-color-blue-ribbon);
}
.gform-button__icon {
font-size: 1.125rem;
}
}
}
.gform-flyout__expand-rail {
block-size: 56px;
inline-size: 35px;
inset-block-start: 50%;
margin-block-start: -28px;
position: absolute;
}
.gform-flyout__expand {
align-items: center;
background: var(--gform-admin-color-white);
block-size: 56px;
border: 1px solid var(--gform-admin-color-white-lilac);
border-radius: 19px;
box-shadow: var(--gform-admin-box-shadow-popup);
color: var(--gform-admin-color-port);
cursor: pointer;
display: flex;
inline-size: 19px;
inset-block-start: 50%;
justify-content: center;
margin-block-start: -28px;
opacity: 0;
position: absolute;
transition: opacity 0.15s ease, transform 300ms ease, box-shadow 300ms ease, border-color 300ms ease;
&:focus {
border-color: var(--gform-admin-color-snuff);
opacity: 1;
outline: none;
.gform-flyout__expand-icon {
color: var(--gform-admin-color-gravity-blue);
}
}
&:hover {
.gform-flyout__expand-icon {
color: var(--gform-admin-color-gravity-blue);
}
}
}
.gform-flyout__expand-icon {
align-items: center;
block-size: 15px;
color: var(--gform-admin-color-port);
display: flex;
font-size: 1rem;
inline-size: 100%;
justify-content: center;
position: relative;
transition: color 300ms ease;
}
}
/* Flyout: Title */
.gform-flyout__title {
color: var(--gform-admin-color-port);
font-family: var(--gform-admin-font-family-base);
font-size: var(--gform-admin-font-size-base-old);
font-weight: var(--gform-common-font-weight-medium);
line-height: 18px;
margin-block: 0 12px;
margin-inline: 0;
}
.gform-flyout--no-description {
.gform-flyout__title {
margin: 0;
}
}
/* Flyout: Description */
.gform-flyout__desc {
color: var(--gform-admin-color-port);
font-family: var(--gform-admin-font-family-base);
font-size: var(--gform-admin-font-size-base-old);
}
/* Flyout: Body */
.gform-flyout__body {
block-size: 100%;
color: var(--gform-admin-color-port);
font-family: var(--gform-admin-font-family-base);
font-size: var(--gform-admin-font-size-base-old);
padding-block: var(--gform-admin-spacer-8);
padding-inline: var(--gform-admin-spacer-10);
&:focus-within {
.gform-flyout__expand {
opacity: 1;
}
}
.gform-flyout__simplebar {
& > .simplebar-wrapper {
block-size: 100%;
}
}
}
/* Flyout: Footer */
.gform-flyout__footer {
align-items: flex-start;
display: flex;
flex: none;
gap: 1rem;
justify-content: space-between;
min-block-size: 62px;
padding-block: var(--gform-admin-spacer-8);
padding-inline: var(--gform-admin-spacer-10);
position: relative;
}
.gform-flyout__footer-left,
.gform-flyout__footer-right {
align-items: center;
display: flex;
gap: 0.5rem;
}
.gform-flyout__footer-right {
margin-inline-start: auto;
}
/* Flyout: Pinned Drag Handle */
.gform-flyout__pinned-drag-handle-wrapper {
background-color: var(--gform-admin-color-snuff);
block-size: 100%;
inline-size: 3px;
inset-block-end: 0;
inset-block-start: 0;
pointer-events: auto;
position: absolute;
transition: 200ms ease-in-out;
&:hover {
background-color: var(--gform-admin-color-santas);
}
&:has(:focus-visible),
&:has([data-dragging="true"]),
&:has([data-dragging="true"]):hover {
background-color: var(--gform-admin-color-blue-ribbon);
}
}
.gform-flyout__pinned-drag-handle {
background-color: transparent;
block-size: 100%;
cursor: col-resize;
inset: 0 -3px;
opacity: 0;
position: absolute;
transition: 200ms ease-in-out;
&:hover {
background-color: var(--gform-admin-color-santas);
opacity: 0.26;
}
&:focus-visible,
&[data-dragging="true"],
&[data-dragging="true"]:hover {
background-color: var(--gform-admin-color-blue-ribbon);
opacity: 0.26;
}
}
}
html[dir="rtl"] .gform-admin {
.gform-flyout {
&.gform-flyout--right {
.gform-flyout__expand-icon {
transform: rotate(-90deg);
}
}
&.gform-flyout--left {
.gform-flyout__expand-icon {
transform: rotate(90deg);
}
}
&.gform-flyout--expanded {
&.gform-flyout--right {
.gform-flyout__expand-icon {
transform: rotate(90deg);
}
}
&.gform-flyout--left {
.gform-flyout__expand-icon {
transform: rotate(-90deg);
}
}
}
}
}