UNPKG

@esri/calcite-components

Version:

Web Components for Esri's Calcite Design System.

208 lines (177 loc) • 3.96 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 { /* Component spacing variables */ --calcite-icon-size: 1rem; --calcite-spacing-eighth: 0.125rem; --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; align-items: stretch; position: relative; width: var(--select-width); } :host([scale=s]) { height: 1.5rem; --calcite-select-font-size: var(--calcite-font-size--2); --calcite-select-spacing: 0 2rem 0 0.5rem; --calcite-select-spacing-rtl: 0 0.5rem 0 2rem; } :host([scale=s]) .icon-container { padding-left: 0.5rem; padding-right: 0.5rem; } :host([scale=m]) { height: 2rem; --calcite-select-font-size: var(--calcite-font-size--1); --calcite-select-spacing: 0 2.5rem 0 0.75rem; --calcite-select-spacing-rtl: 0 0.75rem 0 2.5rem; } :host([scale=m]) .icon-container { padding-left: 0.75rem; padding-right: 0.75rem; } :host([scale=l]) { height: 44px; --calcite-select-font-size: var(--calcite-font-size-0); --calcite-select-spacing: 0 3rem 0 1rem; --calcite-select-spacing-rtl: 0 1rem 0 3rem; } :host([scale=l]) .icon-container { padding-left: 1rem; padding-right: 1rem; } :host([width=auto]) { width: auto; } :host([width=half]) { width: 50%; } :host([width=full]) { width: 100%; } .select { -webkit-appearance: none; appearance: none; border-width: 1px; border-style: solid; border-right-width: 0; background-color: var(--calcite-ui-foreground-1); border-color: var(--calcite-ui-border-input); border-radius: 0; color: var(--calcite-ui-text-2); cursor: pointer; font-family: inherit; margin: 0; width: 100%; outline-offset: 0; outline-color: transparent; transition: outline-offset 100ms ease-in-out, outline-color 100ms ease-in-out; box-sizing: border-box; font-size: var(--calcite-select-font-size); padding: var(--calcite-select-spacing); } .select:focus { outline: 2px solid var(--calcite-ui-brand); outline-offset: -2px; } .select:hover { background-color: var(--calcite-ui-foreground-2); } .select.calcite--rtl { border-width: 1px; border-color: var(--calcite-ui-border-input); padding: var(--calcite-select-spacing-rtl); } select:disabled { border-color: var(--calcite-ui-border-input); --bg-opacity: 1; } :host([disabled]) { pointer-events: none; -webkit-user-select: none; -ms-user-select: none; user-select: none; opacity: var(--calcite-ui-opacity-disabled); } .icon-container { align-items: center; background-color: transparent; border-width: 0; border-right-width: 1px; border-style: solid; border-color: var(--calcite-ui-border-input); border-left-width: 0; color: var(--calcite-ui-text-2); display: flex; pointer-events: none; position: absolute; right: 0; top: 0; bottom: 0; } .icon-container.calcite--rtl { border-left-width: 1px; border-right-width: 0; left: 0; right: unset; } .select:focus ~ .icon-container { border-color: transparent; }