| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239 |
- * {
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- text-rendering: geometricPrecision;
- }
- [data-component="button-v2"] {
- position: relative;
- display: inline-flex;
- align-items: center;
- justify-content: center;
- gap: 6px;
- border-radius: 6px;
- font-style: normal;
- font-weight: 530;
- font-size: 13px;
- line-height: 1;
- color: var(--v2-text-text-base);
- text-shadow: none;
- font-variant-numeric: tabular-nums;
- letter-spacing: -0.04px;
- user-select: none;
- cursor: pointer;
- outline: none;
- }
- [data-component="button-v2"]:focus {
- outline: none;
- }
- [data-component="button-v2"]:is(:focus-visible, [data-state="focus"]):not(:disabled):not([data-variant="loading"]) {
- outline: 2px solid var(--v2-border-border-focus);
- outline-offset: 2.5px;
- }
- [data-component="button-v2"][data-size="normal"] {
- height: 28px;
- padding: 0 11px;
- }
- [data-component="button-v2"][data-size="small"] {
- height: 24px;
- padding: 0 9px;
- border-radius: 4px;
- }
- [data-component="button-v2"][data-size="large"] {
- height: 32px;
- padding: 0 15px;
- }
- [data-component="button-v2"][data-icon][data-size="small"] {
- padding-left: 9px;
- }
- [data-component="button-v2"][data-icon][data-size="normal"] {
- padding-left: 11px;
- }
- [data-component="button-v2"][data-icon][data-size="large"] {
- padding-left: 15px;
- }
- [data-component="button-v2"] [data-slot="icon-svg"] {
- color: currentColor;
- }
- /* Neutral */
- [data-component="button-v2"][data-variant="neutral"] {
- background-color: var(--v2-background-bg-button-neutral);
- color: var(--v2-text-text-base);
- box-shadow: var(--v2-elevation-button-neutral);
- }
- [data-component="button-v2"][data-variant="neutral"]:is(:hover, [data-state="hover"]):not(:disabled) {
- background-image:
- linear-gradient(90deg, var(--v2-overlay-simple-overlay-hover) 0%, var(--v2-overlay-simple-overlay-hover) 100%),
- linear-gradient(90deg, var(--v2-background-bg-button-neutral) 0%, var(--v2-background-bg-button-neutral) 100%);
- }
- [data-component="button-v2"][data-variant="neutral"]:is(:active, [data-state="pressed"]):not(:disabled) {
- background-image:
- linear-gradient(90deg, var(--v2-overlay-simple-overlay-pressed) 0%, var(--v2-overlay-simple-overlay-pressed) 100%),
- linear-gradient(90deg, var(--v2-background-bg-button-neutral) 0%, var(--v2-background-bg-button-neutral) 100%);
- }
- [data-component="button-v2"][data-variant="neutral"]:is(:disabled, [data-state="disabled"]) {
- opacity: 0.5;
- cursor: not-allowed;
- }
- /* Danger */
- [data-component="button-v2"][data-variant="danger"] {
- background-color: var(--v2-background-bg-button-neutral);
- color: var(--v2-state-fg-danger);
- box-shadow: var(--v2-elevation-button-neutral);
- }
- [data-component="button-v2"][data-variant="danger"]:is(:hover, [data-state="hover"]):not(:disabled) {
- background-image:
- linear-gradient(90deg, var(--v2-overlay-simple-overlay-hover) 0%, var(--v2-overlay-simple-overlay-hover) 100%),
- linear-gradient(90deg, var(--v2-background-bg-button-neutral) 0%, var(--v2-background-bg-button-neutral) 100%);
- }
- [data-component="button-v2"][data-variant="danger"]:is(:active, [data-state="pressed"]):not(:disabled) {
- background-image:
- linear-gradient(90deg, var(--v2-overlay-simple-overlay-pressed) 0%, var(--v2-overlay-simple-overlay-pressed) 100%),
- linear-gradient(90deg, var(--v2-background-bg-button-neutral) 0%, var(--v2-background-bg-button-neutral) 100%);
- }
- [data-component="button-v2"][data-variant="danger"]:is(:disabled, [data-state="disabled"]) {
- opacity: 0.5;
- cursor: not-allowed;
- }
- /* Outline */
- [data-component="button-v2"][data-variant="outline"] {
- background-color: transparent;
- color: var(--v2-text-text-base);
- box-shadow: inset 0 0 0 1px var(--v2-border-border-muted);
- }
- [data-component="button-v2"][data-variant="outline"]:is(:hover, [data-state="hover"]):not(:disabled) {
- background-color: var(--v2-overlay-simple-overlay-hover);
- }
- [data-component="button-v2"][data-variant="outline"]:is(:active, [data-state="pressed"]):not(:disabled) {
- background-color: var(--v2-overlay-simple-overlay-pressed);
- }
- [data-component="button-v2"][data-variant="outline"]:is(:disabled, [data-state="disabled"]) {
- opacity: 0.5;
- cursor: not-allowed;
- }
- /* Contrast */
- [data-component="button-v2"][data-variant="contrast"] {
- background-image:
- linear-gradient(180deg, var(--v2-alpha-light-20) 0%, var(--v2-alpha-light-0) 100%),
- linear-gradient(90deg, var(--v2-background-bg-contrast) 0%, var(--v2-background-bg-contrast) 100%);
- color: var(--v2-text-text-contrast);
- text-shadow: 0 0.5px 0.5px rgba(0, 0, 0, 0.3);
- box-shadow: var(--v2-elevation-button-contrast);
- }
- [data-component="button-v2"][data-variant="contrast"]:is(:hover, [data-state="hover"]):not(:disabled) {
- background-image:
- linear-gradient(
- 90deg,
- var(--v2-overlay-simple-overlay-contrast-hover) 0%,
- var(--v2-overlay-simple-overlay-contrast-hover) 100%
- ),
- linear-gradient(180deg, var(--v2-alpha-light-20) 0%, var(--v2-alpha-light-0) 100%),
- linear-gradient(90deg, var(--v2-background-bg-contrast) 0%, var(--v2-background-bg-contrast) 100%);
- }
- [data-component="button-v2"][data-variant="contrast"]:is(:active, [data-state="pressed"]):not(:disabled) {
- background-image:
- linear-gradient(
- 90deg,
- var(--v2-overlay-simple-overlay-contrast-pressed) 0%,
- var(--v2-overlay-simple-overlay-contrast-pressed) 100%
- ),
- linear-gradient(180deg, var(--v2-alpha-light-20) 0%, var(--v2-alpha-light-0) 100%),
- linear-gradient(90deg, var(--v2-background-bg-contrast) 0%, var(--v2-background-bg-contrast) 100%);
- }
- [data-component="button-v2"][data-variant="contrast"]:is(:disabled, [data-state="disabled"]) {
- opacity: 0.4;
- cursor: not-allowed;
- }
- /* Loading */
- [data-component="button-v2"][data-variant="loading"] {
- background: #f2f2f2;
- color: var(--v2-text-text-base);
- box-shadow: inset 0 0 0 0.5px rgba(0, 0, 0, 0.08);
- cursor: default;
- pointer-events: none;
- }
- /* Ghost */
- [data-component="button-v2"][data-variant="ghost"] {
- background-color: transparent;
- color: var(--v2-text-text-base);
- }
- [data-component="button-v2"][data-variant="ghost"]:is(:hover, [data-state="hover"]):not(:disabled):not(
- [data-expanded]
- ) {
- background-color: var(--v2-overlay-simple-overlay-hover);
- }
- [data-component="button-v2"][data-variant="ghost"]:is(:active, [data-state="pressed"]):not(:disabled) {
- background-color: var(--v2-overlay-simple-overlay-pressed);
- }
- [data-component="button-v2"][data-variant="ghost"]:where([data-expanded]):not(:disabled) {
- background-color: var(--v2-overlay-simple-overlay-pressed);
- }
- [data-component="button-v2"][data-variant="ghost"]:is(:disabled, [data-state="disabled"]) {
- opacity: 0.5;
- cursor: not-allowed;
- }
- /* Ghost muted */
- [data-component="button-v2"][data-variant="ghost-muted"] {
- background-color: transparent;
- color: var(--v2-text-text-muted);
- }
- [data-component="button-v2"][data-variant="ghost-muted"] [data-slot="icon-svg"] {
- color: var(--v2-icon-icon-muted);
- }
- [data-component="button-v2"][data-variant="ghost-muted"]:is(:hover, [data-state="hover"]):not(:disabled):not(
- [data-expanded]
- ) {
- background-color: var(--v2-overlay-simple-overlay-hover);
- }
- [data-component="button-v2"][data-variant="ghost-muted"]:is(:active, [data-state="pressed"]):not(:disabled) {
- background-color: var(--v2-overlay-simple-overlay-pressed);
- }
- [data-component="button-v2"][data-variant="ghost-muted"]:where([data-expanded]):not(:disabled) {
- background-color: var(--v2-overlay-simple-overlay-pressed);
- color: var(--v2-text-text-base);
- }
- [data-component="button-v2"][data-variant="ghost-muted"]:where([data-expanded]):not(:disabled) [data-slot="icon-svg"] {
- color: var(--v2-icon-icon-base);
- }
- [data-component="button-v2"][data-variant="ghost-muted"]:is(:disabled, [data-state="disabled"]) {
- opacity: 0.5;
- cursor: not-allowed;
- }
|