| [data-component="button"] { |
| display: inline-flex; |
| align-items: center; |
| justify-content: center; |
| gap: var(--space-2); |
| padding: var(--space-3) var(--space-4); |
| border: 1px solid transparent; |
| border-radius: var(--space-2); |
| font-family: var(--font-sans); |
| font-size: var(--font-size-md); |
| font-weight: 500; |
| line-height: 1.25; |
| cursor: pointer; |
| transition: all 0.2s ease-in-out; |
| text-decoration: none; |
| user-select: none; |
|
|
| &:disabled { |
| opacity: 0.5; |
| cursor: not-allowed; |
| } |
|
|
| &:focus { |
| outline: none; |
| box-shadow: 0 0 0 2px var(--color-primary); |
| } |
|
|
| &[data-color="primary"] { |
| background-color: var(--color-primary); |
| color: var(--color-primary-text); |
| border-color: var(--color-primary); |
|
|
| &:hover:not(:disabled) { |
| background-color: var(--color-primary-hover); |
| border-color: var(--color-primary-hover); |
| } |
|
|
| &:active:not(:disabled) { |
| background-color: var(--color-primary-active); |
| border-color: var(--color-primary-active); |
| } |
| } |
|
|
| &[data-color="danger"] { |
| background-color: var(--color-danger); |
| color: var(--color-danger-text); |
| border-color: var(--color-danger); |
|
|
| &:hover:not(:disabled) { |
| background-color: var(--color-danger-hover); |
| border-color: var(--color-danger-hover); |
| } |
|
|
| &:active:not(:disabled) { |
| background-color: var(--color-danger-active); |
| border-color: var(--color-danger-active); |
| } |
|
|
| &:focus { |
| box-shadow: 0 0 0 2px var(--color-danger); |
| } |
| } |
|
|
| &[data-color="warning"] { |
| background-color: var(--color-warning); |
| color: var(--color-warning-text); |
| border-color: var(--color-warning); |
|
|
| &:hover:not(:disabled) { |
| background-color: var(--color-warning-hover); |
| border-color: var(--color-warning-hover); |
| } |
|
|
| &:active:not(:disabled) { |
| background-color: var(--color-warning-active); |
| border-color: var(--color-warning-active); |
| } |
|
|
| &:focus { |
| box-shadow: 0 0 0 2px var(--color-warning); |
| } |
| } |
|
|
| &[data-size="small"] { |
| padding: var(--space-2) var(--space-3); |
| font-size: var(--font-size-sm); |
| gap: var(--space-1-5); |
| } |
|
|
| &[data-size="large"] { |
| padding: var(--space-4) var(--space-6); |
| font-size: var(--font-size-lg); |
| gap: var(--space-3); |
| } |
|
|
| [data-slot="icon"] { |
| display: flex; |
| align-items: center; |
| width: 1em; |
| height: 1em; |
| } |
| } |
|
|