UNPKG

@esri/calcite-components

Version:

Web Components for Esri's Calcite Design System.

498 lines (420 loc) • 11.2 kB
/* mixins & extensions */ @keyframes in { 0% { opacity: 0; } 100% { opacity: 1; } } @keyframes in-down { 0% { opacity: 0; transform: translate3D(0, -5px, 0); } 100% { opacity: 1; transform: translate3D(0, 0, 0); } } @keyframes in-up { 0% { opacity: 0; transform: translate3D(0, 5px, 0); } 100% { opacity: 1; transform: translate3D(0, 0, 0); } } @keyframes in-scale { 0% { opacity: 0; transform: scale3D(0.95, 0.95, 1); } 100% { opacity: 1; transform: scale3D(1, 1, 1); } } /** * Currently only used in Checkbox. */ :root { --calcite-popper-transition: 150ms ease-in-out; } :host([hidden]) { display: none; } :host([scale=s]) { --calcite-alert-width: 40em; --calcite-alert-spacing-token-small: 0.5rem; --calcite-alert-spacing-token-large: 0.75rem; } :host([scale=s]) slot[name=title]::slotted(*), :host([scale=s]) *::slotted([slot=title]) { font-size: var(--calcite-font-size--1); line-height: 1.375; } :host([scale=s]) slot[name=message]::slotted(*), :host([scale=s]) *::slotted([slot=message]) { font-size: var(--calcite-font-size--2); line-height: 1.375; } :host([scale=s]) slot[name=link]::slotted(*), :host([scale=s]) *::slotted([slot=link]) { font-size: var(--calcite-font-size--2); line-height: 1.375; } :host([scale=s]) .alert-queue-count { margin-left: 0.5rem; margin-right: 0.5rem; } :host([scale=s]) .container { --calcite-alert-min-height: 3.5rem; } :host([scale=m]) { --calcite-alert-width: 50em; --calcite-alert-spacing-token-small: 0.75rem; --calcite-alert-spacing-token-large: 1rem; } :host([scale=m]) slot[name=title]::slotted(*), :host([scale=m]) *::slotted([slot=title]) { font-size: var(--calcite-font-size-0); line-height: 1.375; } :host([scale=m]) slot[name=message]::slotted(*), :host([scale=m]) *::slotted([slot=message]) { font-size: var(--calcite-font-size--1); line-height: 1.375; } :host([scale=m]) slot[name=link]::slotted(*), :host([scale=m]) *::slotted([slot=link]) { font-size: var(--calcite-font-size--1); line-height: 1.375; } :host([scale=m]) .alert-queue-count { margin-left: 0.75rem; margin-right: 0.75rem; } :host([scale=m]) .container { --calcite-alert-min-height: 4.1875rem; } :host([scale=l]) { --calcite-alert-width: 60em; --calcite-alert-spacing-token-small: 1rem; --calcite-alert-spacing-token-large: 1.25rem; } :host([scale=l]) slot[name=title]::slotted(*), :host([scale=l]) *::slotted([slot=title]) { font-size: var(--calcite-font-size-1); line-height: 1.375; margin-bottom: 0.25rem; } :host([scale=l]) slot[name=message]::slotted(*), :host([scale=l]) *::slotted([slot=message]) { font-size: var(--calcite-font-size-0); line-height: 1.375; } :host([scale=l]) slot[name=link]::slotted(*), :host([scale=l]) *::slotted([slot=link]) { font-size: var(--calcite-font-size-0); line-height: 1.375; } :host([scale=l]) .alert-queue-count { margin-left: 1rem; margin-right: 1rem; } :host([scale=l]) .container { --calcite-alert-min-height: 5.625rem; } :host .container { box-shadow: 0 6px 20px -4px rgba(0, 0, 0, 0.1), 0 4px 12px -2px rgba(0, 0, 0, 0.08); display: flex; position: fixed; justify-content: center; align-items: center; pointer-events: none; margin-top: 0; margin-bottom: 0; margin-left: auto; margin-right: auto; background-color: var(--calcite-ui-foreground-1); opacity: 0; left: 0; right: 0; bottom: 0; border-radius: var(--calcite-border-radius); border-top: 0px solid transparent; border-left: 1px solid var(--calcite-ui-border-3); border-right: 1px solid var(--calcite-ui-border-3); border-bottom: 1px solid var(--calcite-ui-border-3); min-height: var(--calcite-alert-min-height); width: var(--calcite-alert-width); max-width: 90%; max-height: 0; z-index: 101; transform: translate3d(0, 1.5rem, 0); transition: 300ms cubic-bezier(0.215, 0.44, 0.42, 0.88), opacity 300ms cubic-bezier(0.215, 0.44, 0.42, 0.88), all 0.15s ease-in-out; } @media only screen and (max-width: 860px) { :host .container { width: 100%; max-width: 100%; border-radius: 0; } } .container { display: flex; width: 100%; justify-content: center; align-items: center; } .alert-close { outline-offset: 0; outline-color: transparent; transition: outline-offset 100ms ease-in-out, outline-color 100ms ease-in-out; } .alert-close:focus { outline: 2px solid var(--calcite-ui-brand); outline-offset: -2px; } :host([active]) .container:not(.queued) { opacity: 1; max-height: 100%; border-top-width: 2px; transform: translate3d(0, -1.5rem, 0); pointer-events: initial; } @media only screen and (max-width: 860px) { :host([active]) .container:not(.queued) { transform: translate3d(0, 0, 0); } } slot[name=title]::slotted(*), *::slotted([slot=title]) { font-weight: var(--calcite-font-weight-medium); font-size: var(--calcite-font-size-0); line-height: 1.375; color: var(--calcite-ui-text-1); } slot[name=message]::slotted(*), *::slotted([slot=message]) { display: inline; margin: 0; margin-right: 0.5rem; font-weight: var(--calcite-font-weight-normal); font-size: var(--calcite-font-size--1); line-height: 1.375; color: var(--calcite-ui-text-2); } slot[name=link]::slotted(*), *::slotted([slot=link]) { color: var(--calcite-ui-text-link); display: inline-flex; } .calcite--rtl slot[name=message]::slotted(*), .calcite--rtl *::slotted([slot=message]) { margin-left: 0.5rem; margin-right: unset; } .alert-content { padding: var(--calcite-alert-spacing-token-small) var(--calcite-alert-spacing-token-large); flex: 0 0 auto; transition: all 0.15s ease-in-out; word-wrap: break-word; overflow-wrap: break-word; background-color: var(--calcite-ui-foreground-1); flex: 1 1 auto; min-width: 0; padding: var(--calcite-alert-spacing-token-small) var(--calcite-alert-spacing-token-small) var(--calcite-alert-spacing-token-small) 0; border-bottom-left-radius: var(--calcite-border-radius); border-bottom-right-radius: var(--calcite-border-radius); } @media only screen and (max-width: 860px) { .alert-content { padding: 1rem; } } .alert-content:first-of-type:not(:only-child) { padding-left: var(--calcite-alert-spacing-token-large); } .alert-content:only-child { padding: var(--calcite-alert-spacing-token-small); } @media only screen and (max-width: 860px) { .alert-content { padding: var(--calcite-alert-spacing-token-large) var(--calcite-alert-spacing-token-small) var(--calcite-alert-spacing-token-large) 0; } } .calcite--rtl .alert-content { padding: var(--calcite-alert-spacing-token-small) 0 var(--calcite-alert-spacing-token-small) var(--calcite-alert-spacing-token-small); } .calcite--rtl .alert-content:first-of-type:not(:only-child) { padding-right: var(--calcite-alert-spacing-token-large); } @media only screen and (max-width: 860px) { .calcite--rtl .alert-content { padding: var(--calcite-alert-spacing-token-large) 0 var(--calcite-alert-spacing-token-large) var(--calcite-alert-spacing-token-small); } } .alert-icon { padding: var(--calcite-alert-spacing-token-small) var(--calcite-alert-spacing-token-large); flex: 0 0 auto; transition: all 0.15s ease-in-out; padding-top: 0; padding-bottom: 0; display: flex; align-self: stretch; align-items: center; background-color: var(--calcite-ui-foreground-1); } @media only screen and (max-width: 860px) { .alert-icon { padding: 1rem; } } @media only screen and (min-width: 860px) { .alert-icon { border-bottom-left-radius: var(--calcite-border-radius); } } .alert-close { padding: var(--calcite-alert-spacing-token-small) var(--calcite-alert-spacing-token-large); flex: 0 0 auto; transition: all 0.15s ease-in-out; padding-top: 0; padding-bottom: 0; align-self: stretch; background-color: var(--calcite-ui-foreground-1); border-style: none; outline: 2px solid transparent; outline-offset: 2px; cursor: pointer; color: var(--calcite-ui-text-3); overflow: hidden; border-bottom-right-radius: var(--calcite-border-radius); } @media only screen and (max-width: 860px) { .alert-close { padding: 1rem; } } .alert-close:hover, .alert-close:focus { color: var(--calcite-ui-text-1); background-color: var(--calcite-ui-foreground-2); } .alert-close:active { background-color: var(--calcite-ui-foreground-3); } @media only screen and (max-width: 860px) { .alert-close { border-radius: 0; } } .calcite--rtl .alert-close { border-bottom-left-radius: var(--calcite-border-radius); border-bottom-right-radius: unset; } .alert-queue-count { display: flex; align-items: center; justify-content: space-around; align-self: stretch; overflow: hidden; visibility: hidden; font-weight: var(--calcite-font-weight-medium); text-align: center; color: var(--calcite-ui-text-2); background-color: var(--calcite-ui-foreground-1); opacity: 0; cursor: default; border-left: 0px solid transparent; border-right: 0px solid transparent; border-top-right-radius: 0; transition: all 0.15s ease-in-out; } .alert-queue-count.active { visibility: visible; opacity: 1; } @media only screen and (min-width: 860px) { .alert-queue-count.active { border-bottom-right-radius: var(--calcite-border-radius); } } :host([auto-dismiss]) > .alert-queue-count { border-right: 0px solid transparent; } :host([auto-dismiss]) .calcite--rtl > .alert-queue-count { border-left: 0px solid transparent; } .alert-dismiss-progress { display: block; position: absolute; left: 0; right: 0; width: 100%; overflow: hidden; top: -2px; height: 2px; z-index: 103; border-radius: var(--calcite-border-radius) var(--calcite-border-radius) 0 0; } .alert-dismiss-progress:after { top: 0; right: 0; display: block; position: absolute; height: 2px; content: ""; background-color: var(--calcite-alert-dismiss-progress-background); z-index: 104; } .calcite--rtl .alert-dismiss-progress:after { left: 0; right: initial; } :host([color=blue]) .container { border-top-color: var(--calcite-ui-info); } :host([color=blue]) .container .alert-icon { color: var(--calcite-ui-info); } :host([color=red]) .container { border-top-color: var(--calcite-ui-danger); } :host([color=red]) .container .alert-icon { color: var(--calcite-ui-danger); } :host([color=yellow]) .container { border-top-color: var(--calcite-ui-warning); } :host([color=yellow]) .container .alert-icon { color: var(--calcite-ui-warning); } :host([color=green]) .container { border-top-color: var(--calcite-ui-success); } :host([color=green]) .container .alert-icon { color: var(--calcite-ui-success); } :host([auto-dismiss-duration=fast]) .alert-dismiss-progress:after { animation: dismissProgress 6000ms ease-out; } :host([auto-dismiss-duration=medium]) .alert-dismiss-progress:after { animation: dismissProgress 10000ms ease-out; } :host([auto-dismiss-duration=slow]) .alert-dismiss-progress:after { animation: dismissProgress 14000ms ease-out; } @keyframes dismissProgress { 0% { width: 0; opacity: 0.75; } 100% { width: 100%; opacity: 1; } }