123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325 |
- /* 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);
- }
- }
- :root {
- --calcite-animation-timing: calc(150ms * var(--calcite-internal-duration-factor));
- --calcite-internal-duration-factor: var(--calcite-duration-factor, 1);
- --calcite-internal-animation-timing-fast: calc(100ms * var(--calcite-internal-duration-factor));
- --calcite-internal-animation-timing-medium: calc(200ms * var(--calcite-internal-duration-factor));
- --calcite-internal-animation-timing-slow: calc(300ms * var(--calcite-internal-duration-factor));
- }
- .calcite-animate {
- opacity: 0;
- animation-fill-mode: both;
- animation-duration: var(--calcite-animation-timing);
- }
- .calcite-animate__in {
- animation-name: in;
- }
- .calcite-animate__in-down {
- animation-name: in-down;
- }
- .calcite-animate__in-up {
- animation-name: in-up;
- }
- .calcite-animate__in-scale {
- animation-name: in-scale;
- }
- /**
- * 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;
- }
- :root {
- --calcite-popper-transition: var(--calcite-animation-timing);
- }
- :host([hidden]) {
- display: none;
- }
- :host {
- display: flex;
- background-color: transparent;
- }
- :host([disabled]) {
- pointer-events: none;
- cursor: default;
- -webkit-user-select: none;
- user-select: none;
- opacity: var(--calcite-ui-opacity-disabled);
- }
- :host([disabled]) ::slotted([calcite-hydrated][disabled]),
- :host([disabled]) [calcite-hydrated][disabled] {
- /* prevent opacity stacking */
- opacity: 1;
- }
- .button {
- position: relative;
- margin: 0px;
- display: flex;
- width: auto;
- cursor: pointer;
- align-items: center;
- justify-content: flex-start;
- border-style: none;
- background-color: var(--calcite-ui-foreground-1);
- fill: var(--calcite-ui-text-3);
- font-family: var(--calcite-sans-family);
- font-size: var(--calcite-font-size--2);
- line-height: 1rem;
- font-weight: var(--calcite-font-weight-medium);
- color: var(--calcite-ui-text-3);
- outline-offset: 0;
- outline-color: transparent;
- transition: outline-offset 100ms ease-in-out, outline-color 100ms ease-in-out;
- text-align: unset;
- flex: 1 0 auto;
- }
- .button:hover {
- background-color: var(--calcite-ui-foreground-2);
- fill: var(--calcite-ui-text-1);
- color: var(--calcite-ui-text-1);
- }
- .button:focus {
- background-color: var(--calcite-ui-foreground-2);
- fill: var(--calcite-ui-text-1);
- color: var(--calcite-ui-text-1);
- outline: 2px solid var(--calcite-ui-brand);
- outline-offset: -2px;
- }
- .button:active {
- background-color: var(--calcite-ui-foreground-3);
- }
- .button .icon-container {
- pointer-events: none;
- margin: 0px;
- display: flex;
- align-items: center;
- justify-content: center;
- min-width: 1rem;
- min-height: 1rem;
- }
- .button .text-container {
- margin: 0px;
- width: 0px;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- line-height: 1rem;
- opacity: 0;
- transition-property: opacity;
- transition-duration: 150ms;
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
- transition-property: margin;
- transition-property: width;
- }
- .button .text-container--visible {
- width: auto;
- flex: 1 1 auto;
- opacity: 1;
- }
- :host([scale=s]) .button {
- padding: 0.5rem;
- font-size: var(--calcite-font-size--2);
- line-height: 1rem;
- font-weight: var(--calcite-font-weight-normal);
- }
- :host([scale=s]) .button--text-visible .icon-container {
- margin-inline-end: 0.5rem;
- }
- :host([scale=m]) .button {
- padding: 1rem;
- font-size: var(--calcite-font-size--1);
- line-height: 1rem;
- font-weight: var(--calcite-font-weight-normal);
- }
- :host([scale=m]) .button--text-visible .icon-container {
- margin-inline-end: 0.75rem;
- }
- :host([scale=l]) .button {
- padding: 1.25rem;
- font-size: var(--calcite-font-size-0);
- line-height: 1.25rem;
- font-weight: var(--calcite-font-weight-normal);
- }
- :host([scale=l]) .button--text-visible .icon-container {
- margin-inline-end: 1rem;
- }
- :host([alignment=center]) .button {
- justify-content: center;
- }
- :host([alignment=end]) .button {
- justify-content: flex-end;
- }
- :host([alignment=center]) .button .text-container--visible, :host([alignment=end]) .button .text-container--visible {
- flex: 0 1 auto;
- }
- :host([scale=s][compact]) .button, :host([scale=m][compact]) .button, :host([scale=l][compact]) .button {
- padding-left: 0px;
- padding-right: 0px;
- }
- .slot-container {
- display: flex;
- }
- .slot-container--hidden {
- display: none;
- }
- .button--text-visible {
- width: 100%;
- }
- :host([active]) .button, :host([active]) .button:hover, :host([active]) .button:focus, :host([active][loading]) .button {
- background-color: var(--calcite-ui-foreground-3);
- fill: var(--calcite-ui-text-1);
- color: var(--calcite-ui-text-1);
- }
- :host([active]) .button:active {
- background-color: var(--calcite-ui-foreground-1);
- }
- :host([appearance=clear]) .button {
- background-color: transparent;
- transition-property: box-shadow;
- transition-duration: 150ms;
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
- }
- :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 {
- background-color: var(--calcite-ui-foreground-3);
- fill: var(--calcite-ui-text-1);
- color: var(--calcite-ui-text-1);
- }
- :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: var(--calcite-ui-opacity-disabled);
- }
- :host([loading]) calcite-loader[inline] {
- margin-right: 0px;
- color: var(--calcite-ui-text-3);
- }
- :host([disabled]) .button, :host([disabled]) .button:hover, :host([disabled]) .button:focus {
- cursor: default;
- background-color: var(--calcite-ui-foreground-1);
- opacity: var(--calcite-ui-opacity-disabled);
- }
- :host([disabled][active]) .button, :host([disabled][active]) .button:hover, :host([disabled][active]) .button:focus {
- background-color: var(--calcite-ui-foreground-3);
- opacity: var(--calcite-ui-opacity-disabled);
- }
- :host([indicator]) .button::after {
- content: "";
- position: absolute;
- z-index: 10;
- height: 0.5rem;
- width: 0.5rem;
- border-radius: 9999px;
- border-width: 2px;
- background-color: var(--calcite-ui-brand);
- border-color: var(--calcite-ui-foreground-1);
- inset-block-end: 0.75rem;
- inset-inline-end: 0.75rem;
- }
- :host([indicator]) .button--text-visible::after {
- inset-block-end: auto;
- }
- :host([indicator]) .button--text-visible .text-container--visible {
- margin-inline-end: 1rem;
- }
- :host([indicator]) .button:hover::after,
- :host([indicator]) .button:focus::after {
- border-color: var(--calcite-ui-foreground-1);
- }
- :host([indicator][scale=s]) .button::after {
- inset-block-end: 0.25rem;
- inset-inline-end: 0.25rem;
- }
- :host([indicator][scale=s]) .button--text-visible::after {
- inset-block-end: auto;
- inset-inline-end: 0.5rem;
- }
- :host([indicator][active]) .button::after {
- border-color: var(--calcite-ui-foreground-3);
- }
|