dropdown.css 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. [data-component="dropdown"] {
  2. position: relative;
  3. [data-slot="trigger"] {
  4. display: flex;
  5. align-items: center;
  6. justify-content: space-between;
  7. gap: var(--space-2);
  8. padding: var(--space-2) var(--space-3);
  9. border: none;
  10. border-radius: var(--border-radius-sm);
  11. background-color: transparent;
  12. color: var(--color-text);
  13. font-size: var(--font-size-sm);
  14. font-family: var(--font-sans);
  15. cursor: pointer;
  16. transition: all 0.15s ease;
  17. &:hover {
  18. background-color: var(--color-surface-hover);
  19. }
  20. span {
  21. flex: 1;
  22. text-align: left;
  23. font-weight: 500;
  24. }
  25. }
  26. [data-slot="chevron"] {
  27. flex-shrink: 0;
  28. color: var(--color-text-secondary);
  29. }
  30. [data-slot="dropdown"] {
  31. position: absolute;
  32. top: 100%;
  33. z-index: 1000;
  34. margin-top: var(--space-1);
  35. border: 1px solid var(--color-border);
  36. border-radius: var(--border-radius-sm);
  37. background-color: var(--color-bg);
  38. box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  39. min-width: 160px;
  40. &[data-align="left"] {
  41. left: 0;
  42. }
  43. &[data-align="right"] {
  44. right: 0;
  45. }
  46. @media (prefers-color-scheme: dark) {
  47. box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
  48. }
  49. }
  50. [data-slot="item"] {
  51. display: block;
  52. width: 100%;
  53. padding: var(--space-2-5) var(--space-3);
  54. border: none;
  55. background: none;
  56. color: var(--color-text);
  57. font-size: var(--font-size-sm);
  58. font-family: var(--font-sans);
  59. text-align: left;
  60. cursor: pointer;
  61. transition: background-color 0.15s ease;
  62. &:hover {
  63. background-color: var(--color-bg-surface);
  64. }
  65. &[data-selected="true"] {
  66. background-color: var(--color-accent-alpha);
  67. }
  68. }
  69. }