@dialpad/dialtone-css
Version:
Dialpad's design system
257 lines (218 loc) • 7.79 kB
text/less
//
// DIALTONE
// COMPONENTS: TOAST
//
// These are the styles for toast notices, which are used by alert users to
// information they might need. For further documentation of these styles,
// please visit https://dialtone.dialpad.com/components/toasts
// ============================================================================
// @ TOAST CONTAINER
// ----------------------------------------------------------------------------
.d-toast-wrapper {
position: absolute;
top: var(--dt-space-600); // 32
left: 50%;
z-index: var(--zi-notification);
display: flex;
flex-direction: column;
gap: var(--dt-space-500);
transform: translateX(-50%);
}
// ============================================================================
// @ BASE STYLE
// ----------------------------------------------------------------------------
.d-toast {
// Component CSS Vars
// ------------------------------------------------------------------------
--toast-color-shadow: var(--dt-color-border-subtle);
--toast-box-shadow: 0 0 0 var(--dt-size-100) var(--toast-color-shadow) inset, var(--dt-shadow-medium);
z-index: var(--zi-notification);
display: block;
max-width: var(--dt-size-975);
word-break: normal;
box-shadow: var(--toast-box-shadow);
pointer-events: all;
// If there's a link in a toast, break the url so it wraps
> a {
word-break: break-all;
}
// If you want to hide and reveal the toast
&[aria-hidden='true'] {
visibility: hidden;
opacity: 0;
}
&[aria-hidden='false'] {
visibility: visible;
opacity: 1;
}
}
// ============================================================================
// $ CONTENT CONTAINER
// ----------------------------------------------------------------------------
.d-toast__dialog {
position: relative;
display: flex;
align-items: center;
.d-notice__actions button:first-child {
margin-left: var(--dt-space-600); // 32
}
}
// ============================================================================
// $ UC Toast Shims
// ============================================================================
// $$ CHAT
// ----------------------------------------------------------------------------
.d-toast--chat {
.d-notice__icon,
.d-toast__meta {
color: var(--dt-color-foreground-tertiary);
}
.d-toast__meta {
font-size: var(--dt-font-size-100);
}
&.d-toast--important {
.d-notice__icon,
.d-toast__meta {
color: var(--dt-color-foreground-secondary-inverted);
}
}
}
// $$ ORGANIZER
// ----------------------------------------------------------------------------
.d-toast--organizer {
//
}
// $$ VIEWING
// ----------------------------------------------------------------------------
// TODO: resolve
.d-toast--viewing {
//
}
.d-toast--organizer,
.d-toast--viewing {
--toast-border-radius: var(--dt-size-radius-200);
border-top: var(--dt-size-300) solid var(--dt-color-magenta-300);
.d-notice__icon {
color: var(--dt-color-magenta-300);
}
}
.d-toast--chat,
.d-toast--organizer,
.d-toast--viewing {
--toast-color-background: var(--dt-color-surface-secondary);
}
// ============================================================================
// @ BASE STYLE
// ----------------------------------------------------------------------------
.d-toast-alternate {
// Component CSS Vars
// ------------------------------------------------------------------------
--toast-alternate-color-shadow: hsl(var(--dt-color-black-900-hsl) / 0.15);
--toast-alternate-box-shadow: 0 0 0 var(--dt-size-0) var(--toast-alternate-color-shadow) inset, var(--dt-shadow-medium);
--toast-alternate-color-background: var(--dt-color-surface-primary);
--toast-alternate-color-text: var(--dt-color-foreground-primary);
--toast-alternate-color-icon: var(--dt-color-foreground-muted);
--toast-alternate-font-color: var(--dt-color-foreground-tertiary);
--toast-alternate-font-size: var(--dt-font-size-200);
--toast-alternate-line-height: var(--dt-font-line-height-300);
--toast-alternate-border-radius: var(--dt-size-500);
--toast-alternate-border-color: var(--dt-color-border-subtle);
--toast-alternate-border-style: solid;
--toast-alternate-border-width: var(--dt-size-100);
z-index: var(--zi-notification);
// Base Styles
// ------------------------------------------------------------------------
display: flex;
align-items: center;
box-sizing: border-box;
width: var(--dt-size-925);
padding: var(--dt-space-350) var(--dt-space-350) var(--dt-space-450) var(--dt-space-450);
color: var(--toast-alternate-color-text);
font-size: var(--toast-alternate-font-size);
line-height: var(--toast-alternate-line-height);
word-break: normal;
background-color: var(--toast-alternate-color-background);
border: var(--toast-alternate-border-width) var(--toast-alternate-border-style) var(--toast-alternate-border-color);
border-radius: var(--toast-alternate-border-radius);
box-shadow: var(--toast-alternate-box-shadow);
pointer-events: all;
// If there's a link in a toast, break the url so it wraps
> a {
word-break: break-all;
}
// If you want to hide and reveal the toast
&[aria-hidden='true'] {
visibility: hidden;
opacity: var(--dt-opacity-0);
}
&[aria-hidden='false'] {
visibility: visible;
opacity: var(--dt-opacity-1300);
}
.d-toast-layout-alternate__icon {
display: flex;
flex: 0 auto;
margin-right: var(--dt-space-300);
color: var(--toast-alternate-color-icon);
}
.d-notice__title {
color: var(--dt-color-foreground-tertiary);
font-weight: var(--dt-font-weight-normal);
font-size: var(--dt-font-size-100);
}
.d-notice__actions .base-button__button {
color: var(--dt-action-color-foreground-muted-default);
}
}
// ============================================================================
// $ CONTENT CONTAINER
// ----------------------------------------------------------------------------
.d-toast-alternate__content {
display: flex;
flex: 1 auto;
flex-direction: column;
margin-right: var(--dt-space-500);
color: var(--dt-color-foreground-primary);
font-weight: var(--dt-font-weight-normal);
font-size: var(--dt-font-size-200);
}
.d-toast-alternate__dialog {
position: relative;
align-items: center;
width: var(--dt-size-100-percent);
.d-notice__actions button:first-child {
margin-left: var(--dt-space-600); // 32
}
}
.d-toast-alternate__header {
display: flex;
gap: var(--dt-space-200);
align-items: center;
color: var(--toast-alternate-font-color);
}
// $$ ERROR
// ----------------------------------------------------------------------------
.d-toast-alternate--error {
--toast-alternate-border-color: var(--dt-color-border-critical-subtle);
}
// $$ INFO
// ----------------------------------------------------------------------------
.d-toast-alternate--info {
--toast-alternate-border-color: var(--dt-color-border-subtle);
}
// $$ SUCCESS
// ----------------------------------------------------------------------------
.d-toast-alternate--success {
--toast-alternate-border-color: var(--dt-color-border-success-subtle);
}
// $$ GRADIENT
// ----------------------------------------------------------------------------
.d-toast-alternate--gradient {
background: linear-gradient(var(--dt-color-surface-primary), var(--dt-color-surface-primary)) padding-box,
var(--dt-color-border-ai) border-box;
}
// $$ warning
// ----------------------------------------------------------------------------
.d-toast-alternate--warning {
--toast-alternate-border-color: var(--dt-color-border-warning-subtle);
}