UNPKG

@esri/calcite-components

Version:

Web Components for Esri's Calcite Design System.

338 lines (284 loc) • 7.54 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. */ :host { /* Base ":host" styles for the component */ box-sizing: border-box; background-color: var(--calcite-ui-foreground-1); color: var(--calcite-ui-text-2); font-size: var(--calcite-font-size--1); } :host * { box-sizing: border-box; } :host { /* Component spacing variables */ --calcite-icon-size: 1rem; --calcite-spacing-eighth: ; --calcite-spacing-quarter: 0.25rem; --calcite-spacing-half: 0.5rem; --calcite-spacing-three-quarters: 0.75rem; --calcite-spacing: 1rem; --calcite-spacing-plus-quarter: 1.25rem; --calcite-spacing-plus-half: 1.5rem; --calcite-spacing-double: 2rem; --calcite-menu-min-width: 10rem; --calcite-header-min-height: 3rem; --calcite-footer-min-height: 3rem; } :root { --calcite-popper-transition: 150ms ease-in-out; } :host([hidden]) { display: none; } :host { display: flex; background-color: transparent; } :host([disabled]) { pointer-events: none; } .button { font-family: inherit; display: flex; color: var(--calcite-ui-text-3); fill: var(--calcite-ui-text-3); background-color: var(--calcite-ui-foreground-1); margin: 0; justify-content: flex-start; align-items: center; border: none; width: auto; cursor: pointer; text-align: unset; position: relative; font-size: var(--calcite-font-size--2); outline-offset: 0; outline-color: transparent; transition: outline-offset 100ms ease-in-out, outline-color 100ms ease-in-out; } .button:hover, .button:focus { background-color: var(--calcite-ui-foreground-2); color: var(--calcite-ui-text-1); fill: var(--calcite-ui-text-1); } .button:focus { background-color: var(--calcite-ui-foreground-2); color: var(--calcite-ui-text-1); fill: var(--calcite-ui-text-1); outline: 2px solid var(--calcite-ui-blue-1); outline-offset: -2px; } .button:active { background-color: var(--calcite-ui-foreground-3); } .button .icon-container { min-width: 1rem; min-height: 1rem; margin: 0; justify-content: center; align-items: center; display: flex; pointer-events: none; } .button .text-container { color: inherit; line-height: 1rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin: 0; opacity: 0; width: 0; transition: opacity 150ms ease-in-out, margin 150ms ease-in-out, width 150ms ease-in-out; } .button .text-container--visible { flex: 1 1 auto; opacity: 1; width: auto; } :host([scale=s]) .button { padding: var(--calcite-spacing-half) var(--calcite-spacing-half); } :host([scale=m]) .button { padding: var(--calcite-spacing) var(--calcite-spacing); } :host([scale=l]) .button { padding: var(--calcite-spacing-plus-quarter) var(--calcite-spacing-plus-quarter); font-size: 0.9375rem; line-height: 1.5; } :host([scale=s][compact]) .button, :host([scale=m][compact]) .button, :host([scale=l][compact]) .button { padding-left: 0; padding-right: 0; } .slot-container { display: flex; } .slot-container--hidden { display: none; } .button--text-visible { width: 100%; } .button--text-visible .icon-container { margin: 0 var(--calcite-spacing-half) 0 0; } .button--text-visible .text-container--visible { margin: 0 var(--calcite-spacing-half) 0 0; } .button--text-visible.calcite--rtl .icon-container { margin: 0 0 0 var(--calcite-spacing-half); } .button--text-visible.calcite--rtl .text-container--visible { margin: 0 0 0 var(--calcite-spacing-half); } :host([active]) .button, :host([active]) .button:hover, :host([active]) .button:focus, :host([active][loading]) .button { color: var(--calcite-ui-text-1); fill: var(--calcite-ui-text-1); background-color: var(--calcite-ui-foreground-3); } :host([appearance=clear]) .button { background-color: transparent; transition: box-shadow 150ms ease-in-out; } :host([appearance=clear]) .button:hover, :host([appearance=clear]) .button:focus { background-color: transparent; box-shadow: 0 0 0 2px var(--calcite-ui-border-1) inset; } :host([active][appearance=clear]) .button, :host([active][appearance=clear]) .button:hover, :host([active][appearance=clear]) .button:focus { color: var(--calcite-ui-text-1); fill: var(--calcite-ui-text-1); background-color: var(--calcite-ui-foreground-3); } :host([appearance=clear][loading]) .button, :host([appearance=clear][disabled]) .button { background-color: transparent; } :host([loading]) .button, :host([loading]) .button:hover, :host([loading]) .button:focus { background-color: var(--calcite-ui-foreground-1); } :host([loading]) .button .text-container, :host([loading]) .button:hover .text-container, :host([loading]) .button:focus .text-container { opacity: 0.5; } :host([loading]) calcite-loader[inline] { color: var(--calcite-ui-border-5); margin-right: 0; } :host([disabled]) .button, :host([disabled]) .button:hover, :host([disabled]) .button:focus { cursor: default; opacity: 0.5; background-color: var(--calcite-ui-foreground-1); } :host([disabled][active]) .button, :host([disabled][active]) .button:hover, :host([disabled][active]) .button:focus { opacity: 0.5; background-color: var(--calcite-ui-foreground-3); } :host([indicator]) .button--text-visible, :host([indicator][scale=s]) .button--text-visible, :host([indicator][scale=l]) .button--text-visible { padding-right: var(--calcite-spacing); } :host([indicator]) .button::after { content: ""; border-radius: 50%; width: var(--calcite-spacing-half); height: var(--calcite-spacing-half); border: var(--calcite-spacing-eighth) solid var(--calcite-ui-foreground-1); background-color: var(--calcite-ui-blue-1); position: absolute; bottom: var(--calcite-spacing-half); right: var(--calcite-spacing-half); z-index: 1; } :host([indicator][scale=s]) .button::after { bottom: var(--calcite-spacing-quarter); right: var(--calcite-spacing-quarter); } :host([indicator][scale=l]) .button::after { bottom: var(--calcite-spacing-half); right: var(--calcite-spacing-half); } :host([indicator]) .calcite--rtl::after { right: unset; left: var(--calcite-spacing-quarter); } :host([indicator]) .button--text-visible.calcite--rtl { padding-right: var(--calcite-spacing-three-quarters); padding-left: var(--calcite-spacing); } :host([indicator]) .button:hover::after, :host([indicator]) .button:focus::after { border-color: var(--calcite-ui-foreground-1); } :host([indicator][active]) .button::after { border-color: var(--calcite-ui-foreground-3); } :host([indicator]) .button--text-visible::after, :host([indicator][scale=s]) .button--text-visible::after, :host([indicator][scale=l]) .button--text-visible::after { bottom: unset; right: var(--calcite-spacing-half); } :host([indicator]) .button--text-visible.calcite--rtl::after, :host([indicator][scale=s]) .button--text-visible.calcite--rtl::after, :host([indicator][scale=l]) .button--text-visible.calcite--rtl::after { right: unset; left: var(--calcite-spacing-half); }