@dialpad/dialtone-css
Version:
Dialpad's design system
210 lines (183 loc) • 5.99 kB
text/less
//
// DIALTONE
// UTILITIES: EFFECTS
//
// These are effects utility classes for Dialpad's design system Dialtone.
// For further documentation of these and other classes,
// visit https://dialtone.dialpad.com/utilities/effects
//
// TABLE OF CONTENTS
// • ANIMATIONS
// - GENERIC LOADING
// - DIALPAD BAR ANIMATION
// • BOX SHADOW
// • OPACITY
// • TRANSITION
//
//
// ============================================================================
// $ ANIMATIONS
// ----------------------------------------------------------------------------
// $$ GENERIC LOADING
// This could be applied to an empty div or a psuedo element (ie ::before)
// ----------------------------------------------------------------------------
@keyframes d-loading-circle {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
// $$ DIALPAD BAR ANIMATION
// ----------------------------------------------------------------------------
/* stylelint-disable-next-line keyframes-name-pattern */
@keyframes d-loading-bars__short {
0% {
min-height: var(--dt-size-300);
transform: translateY(var(--dt-size-500-negative));
opacity: 0;
}
5% {
min-height: var(--dt-size-300);
transform: translateY(var(--dt-size-500));
opacity: 0.5;
}
10% {
min-height: 1rem;
transform: translateY(var(--dt-size-200-negative));
opacity: 1;
}
15% {
transform: translateY(var(--dt-size-100));
opacity: 1;
}
20%,
70% {
min-height: 1rem;
transform: translateY(0);
opacity: 1;
}
75% {
min-height: 0.75rem;
transform: translateY(1rem);
opacity: 1;
}
80% {
min-height: var(--dt-size-300);
transform: translateY(var(--dt-size-300-negative));
opacity: 0.5;
}
85%,
100% {
min-height: var(--dt-size-300);
transform: translateY(var(--dt-size-500));
opacity: 0;
}
}
/* stylelint-disable-next-line keyframes-name-pattern */
@keyframes d-loading-bars__tall {
0% {
min-height: var(--dt-size-300);
transform: translateY(var(--dt-size-500-negative));
opacity: 0;
}
5% {
min-height: var(--dt-size-300);
transform: translateY(var(--dt-size-500));
opacity: 0.5;
}
10% {
min-height: 1rem;
transform: translateY(var(--dt-size-200-negative));
opacity: 1;
}
15% {
min-height: 2.2rem;
transform: translateY(var(--dt-size-100));
opacity: 1;
}
20%,
70% {
min-height: 2.2rem;
transform: translateY(0);
opacity: 1;
}
75% {
min-height: var(--dt-size-500);
transform: translateY(1rem);
opacity: 1;
}
80% {
min-height: 1rem;
transform: translateY(var(--dt-size-300-negative));
opacity: 1;
}
85%,
100% {
min-height: var(--dt-size-300);
transform: translateY(var(--dt-size-500));
opacity: 0;
}
}
// ============================================================================
// $ BOX SHADOW
// ----------------------------------------------------------------------------
.d-bs-sm { box-shadow: var(--dt-shadow-small) ; }
.d-bs-md { box-shadow: var(--dt-shadow-medium) ; }
.d-bs-lg { box-shadow: var(--dt-shadow-large) ; }
.d-bs-xl { box-shadow: var(--dt-shadow-extra-large) ; }
.d-bs-card { box-shadow: var(--dt-shadow-card) ; }
.d-bs-none { box-shadow: none ; }
.d-bs-unset { box-shadow: unset ; }
// ============================================================================
// $ OPACITY
// For times that you want a fill background, but not at 100% opacity.
// These are only offered for $white and gray.
// ----------------------------------------------------------------------------
.d-o0 { opacity: 0 ; }
.d-o5 { opacity: 0.05 ; }
.d-o10 { opacity: 0.1 ; }
.d-o20 { opacity: 0.2 ; }
.d-o25 { opacity: 0.25 ; }
.d-o30 { opacity: 0.3 ; }
.d-o40 { opacity: 0.4 ; }
.d-o50 { opacity: 0.5 ; }
.d-o60 { opacity: 0.6 ; }
.d-o70 { opacity: 0.7 ; }
.d-o75 { opacity: 0.75 ; }
.d-o80 { opacity: 0.8 ; }
.d-o90 { opacity: 0.9 ; }
.d-o100 { opacity: 1 ; }
.d-o-unset { opacity: unset ; }
// ============================================================================
// $ TRANSITION
// ----------------------------------------------------------------------------
.d-t {
transition: all var(--td50) var(--ttf-in-out) 0s;
}
// -- TRANSITION DURATION
.d-td0 { transition-duration: var(--td0) ; }
.d-td50 { transition-duration: var(--td50) ; }
.d-td100 { transition-duration: var(--td100) ; }
.d-td150 { transition-duration: var(--td150) ; }
.d-td200 { transition-duration: var(--td200) ; }
.d-td300 { transition-duration: var(--td300) ; }
// -- TRANSITION TIMING
.d-ttf-in-out { transition-timing-function: var(--ttf-in-out) ; }
.d-ttf-out { transition-timing-function: var(--ttf-out) ; }
.ttf-out-quint { transition-timing-function: var(--ttf-out-quint) ; }
// -- TRANSITION PROPERTY
.d-tp-all { transition-property: all ; }
.d-tp-o { transition-property: opacity ; }
.d-tp-bs { transition-property: box-shadow ; }
.d-tp-bgc { transition-property: background-color ; }
.d-tp-transform { transition-property: transform ; }
.d-tp-colors { transition-property: background-color, border-color, color, fill, stroke ; }
// -- TRANSITION DELAY
.d-t-delay25 { transition-delay: var(--td25) ; }
.d-t-delay50 { transition-delay: var(--td50) ; }
.d-t-delay100 { transition-delay: var(--td100) ; }
.d-t-delay150 { transition-delay: var(--td150) ; }
.d-t-delay200 { transition-delay: var(--td200) ; }
.d-t-delay300 { transition-delay: var(--td300) ; }