button.css 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. [data-component="button"] {
  2. cursor: pointer;
  3. display: inline-flex;
  4. align-items: center;
  5. justify-content: center;
  6. border-style: solid;
  7. border-width: 1px;
  8. border-radius: var(--radius-md);
  9. font-size: var(--text-base);
  10. line-height: var(--text-base--line-height);
  11. font-weight: var(--font-weight-normal);
  12. text-decoration: none;
  13. user-select: none;
  14. gap: calc(var(--spacing) * 0.5);
  15. &[data-variant="primary"] {
  16. border-color: var(--border-base);
  17. background-color: var(--surface-brand-base);
  18. color: var(--text-on-brand-strong);
  19. &:hover:not(:disabled) {
  20. border-color: var(--border-hover);
  21. background-color: var(--surface-brand-hover);
  22. }
  23. &:active:not(:disabled) {
  24. border-color: var(--border-active);
  25. background-color: var(--surface-brand-active);
  26. }
  27. &:focus:not(:disabled) {
  28. border-color: var(--border-focus);
  29. background-color: var(--surface-brand-focus);
  30. }
  31. }
  32. &[data-variant="secondary"] {
  33. border-color: var(--border-base);
  34. background-color: var(--surface-base);
  35. color: var(--text-strong);
  36. &:hover:not(:disabled) {
  37. border-color: var(--border-hover);
  38. background-color: var(--surface-hover);
  39. }
  40. &:active:not(:disabled) {
  41. border-color: var(--border-active);
  42. background-color: var(--surface-active);
  43. }
  44. &:focus:not(:disabled) {
  45. border-color: var(--border-focus);
  46. background-color: var(--surface-focus);
  47. }
  48. }
  49. &[data-variant="ghost"] {
  50. border-color: transparent;
  51. background-color: transparent;
  52. color: var(--text-strong);
  53. &:hover:not(:disabled) {
  54. background-color: var(--surface-hover);
  55. }
  56. &:active:not(:disabled) {
  57. border-color: var(--border-active);
  58. background-color: var(--surface-active);
  59. }
  60. &:focus:not(:disabled) {
  61. border-color: var(--border-focus);
  62. background-color: var(--surface-focus);
  63. }
  64. }
  65. &[data-size="normal"] {
  66. padding: calc(var(--spacing) * 0.5) calc(var(--spacing) * 3);
  67. font-size: var(--text-xs);
  68. line-height: var(--text-sm--line-height);
  69. }
  70. &[data-size="large"] {
  71. padding: calc(var(--spacing) * 1) calc(var(--spacing) * 4);
  72. font-size: var(--text-sm);
  73. line-height: var(--text-sm--line-height);
  74. }
  75. &:disabled {
  76. border-color: var(--border-disabled);
  77. background-color: var(--surface-disabled);
  78. color: var(--text-weak);
  79. cursor: not-allowed;
  80. }
  81. &:focus {
  82. outline: none;
  83. }
  84. }