@keyframes blink { 0% { background-position: -100% 0; } 100% { background-position: 100% 0; } } .button { border: none; cursor: pointer; padding: 0; font-family: inherit; display: inline-flex; align-items: center; justify-content: center; gap: 10px; font-weight: 700; line-height: 18px; letter-spacing: 0.03em; border-radius: 2px; transition: all 0.25s; &:disabled { pointer-events: none; } /* standalone class cuz to omit isLoading */ &.disabled { opacity: 0.3; } &.loading { animation: blink 1s linear infinite forwards; background-size: 200%; } } .block { width: 100%; } .noWrap { white-space: nowrap; } .primary { color: #000; /* TODO: gradient */ background-color: #22ffcc; &:hover { background-color: #91fcdd; } &.loading { background-image: linear-gradient( to right, rgba(255, 255, 255, 0.25) 8%, rgba(255, 255, 255, 0.75) 38%, rgba(255, 255, 255, 0.25) 54% ); } } .dark { color: #fff; background-color: #000; &:hover { /* TODO: gradient */ /* TODO: icon color (?) */ background-color: #404040; } &.loading { background-image: linear-gradient( to right, rgba(255, 255, 255, 0.1) 8%, rgba(255, 255, 255, 0.25) 38%, rgba(255, 255, 255, 0.1) 54% ); } } .light { color: #000; background-color: #fff; &:hover { background-color: #d4d4d4; } &.loading { background-image: linear-gradient( to right, rgba(0, 0, 0, 0.01) 8%, rgba(0, 0, 0, 0.075) 38%, rgba(0, 0, 0, 0.01) 54% ); } } .grey { color: #000; background-color: #e9e9e9; &:hover { background-color: #d4d4d4; } &.loading { background-image: linear-gradient( to right, rgba(0, 0, 0, 0.01) 8%, rgba(0, 0, 0, 0.075) 38%, rgba(0, 0, 0, 0.01) 54% ); } } .border { color: #000; background-color: transparent; box-shadow: inset 0px 0px 0px 2px #000; /* border without affecting size */ &:hover { color: #fff; background-color: #000; } &.loading { background-image: linear-gradient(to right, transparent 8%, #ddd 38%, transparent 54%); } } .transparent { background-color: transparent; &:hover { opacity: 0.5; } } .default { padding: 16px 32px; font-size: 18px; &.noText { /* TODO: icon size */ padding: 15px 16px; } } .small { padding: 11px 16px; font-size: 16px; &.noText { /* TODO: icon size */ padding: 12px 16px; } }