button.css 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. [data-component="button"] {
  2. display: inline-flex;
  3. align-items: center;
  4. justify-content: center;
  5. gap: var(--space-2);
  6. padding: var(--space-3) var(--space-4);
  7. border: 1px solid transparent;
  8. border-radius: var(--space-2);
  9. font-family: var(--font-sans);
  10. font-size: var(--font-size-md);
  11. font-weight: 500;
  12. line-height: 1.25;
  13. cursor: pointer;
  14. transition: all 0.2s ease-in-out;
  15. text-decoration: none;
  16. user-select: none;
  17. &:disabled {
  18. opacity: 0.5;
  19. cursor: not-allowed;
  20. }
  21. &:focus {
  22. outline: none;
  23. box-shadow: 0 0 0 2px var(--color-primary);
  24. }
  25. &[data-color="primary"] {
  26. background-color: var(--color-primary);
  27. color: var(--color-primary-text);
  28. border-color: var(--color-primary);
  29. &:hover:not(:disabled) {
  30. background-color: var(--color-primary-hover);
  31. border-color: var(--color-primary-hover);
  32. }
  33. &:active:not(:disabled) {
  34. background-color: var(--color-primary-active);
  35. border-color: var(--color-primary-active);
  36. }
  37. }
  38. &[data-color="danger"] {
  39. background-color: var(--color-danger);
  40. color: var(--color-danger-text);
  41. border-color: var(--color-danger);
  42. &:hover:not(:disabled) {
  43. background-color: var(--color-danger-hover);
  44. border-color: var(--color-danger-hover);
  45. }
  46. &:active:not(:disabled) {
  47. background-color: var(--color-danger-active);
  48. border-color: var(--color-danger-active);
  49. }
  50. &:focus {
  51. box-shadow: 0 0 0 2px var(--color-danger);
  52. }
  53. }
  54. &[data-color="warning"] {
  55. background-color: var(--color-warning);
  56. color: var(--color-warning-text);
  57. border-color: var(--color-warning);
  58. &:hover:not(:disabled) {
  59. background-color: var(--color-warning-hover);
  60. border-color: var(--color-warning-hover);
  61. }
  62. &:active:not(:disabled) {
  63. background-color: var(--color-warning-active);
  64. border-color: var(--color-warning-active);
  65. }
  66. &:focus {
  67. box-shadow: 0 0 0 2px var(--color-warning);
  68. }
  69. }
  70. &[data-size="small"] {
  71. padding: var(--space-2) var(--space-3);
  72. font-size: var(--font-size-sm);
  73. gap: var(--space-1-5);
  74. }
  75. &[data-size="large"] {
  76. padding: var(--space-4) var(--space-6);
  77. font-size: var(--font-size-lg);
  78. gap: var(--space-3);
  79. }
  80. [data-slot="icon"] {
  81. display: flex;
  82. align-items: center;
  83. width: 1em;
  84. height: 1em;
  85. }
  86. }