_segmented.scss 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. .nav-segmented {
  2. --#{$prefix}nav-bg: var(--#{$prefix}bg-surface-tertiary);
  3. --#{$prefix}nav-padding: 2px;
  4. --#{$prefix}nav-height: 2.5rem;
  5. --#{$prefix}nav-gap: .25rem;
  6. --#{$prefix}nav-active-bg: var(--#{$prefix}bg-surface);
  7. --#{$prefix}nav-font-size: inherit;
  8. --#{$prefix}nav-radius: 6px;
  9. --#{$prefix}nav-link-disabled-color: var(--#{$prefix}disabled-color);
  10. --#{$prefix}nav-link-gap: .25rem;
  11. --#{$prefix}nav-link-padding-x: .75rem;
  12. --#{$prefix}nav-link-icon-size: 1.25rem;
  13. display: inline-flex;
  14. flex-wrap: wrap;
  15. gap: var(--#{$prefix}nav-gap);
  16. padding: var(--#{$prefix}nav-padding);
  17. list-style: none;
  18. background: var(--#{$prefix}nav-bg);
  19. border-radius: calc(var(--#{$prefix}nav-radius) + var(--#{$prefix}nav-padding));
  20. box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .04);
  21. .nav-link {
  22. display: inline-flex;
  23. gap: calc(.25rem + var(--#{$prefix}nav-link-gap));
  24. align-items: center;
  25. margin: 0;
  26. font-size: var(--#{$prefix}nav-font-size);
  27. min-width: calc(var(--#{$prefix}nav-height) - 2 * var(--#{$prefix}nav-padding));
  28. height: calc(var(--#{$prefix}nav-height) - 2 * var(--#{$prefix}nav-padding));
  29. padding: 0 calc(var(--#{$prefix}nav-link-padding-x) - 2px);
  30. border: 1px solid transparent;
  31. background: transparent;
  32. color: var(--#{$prefix}secondary);
  33. text-align: center;
  34. text-decoration: none;
  35. white-space: nowrap;
  36. cursor: pointer;
  37. transition: background-color $transition-time, color $transition-time;
  38. border-radius: var(--#{$prefix}nav-radius);
  39. flex-grow: 1;
  40. justify-content: center;
  41. &:hover,
  42. &.hover {
  43. background: rgba(0, 0, 0, .04);
  44. color: var(--#{$prefix}body-color);
  45. }
  46. &.disabled,
  47. &:disabled {
  48. color: var(--#{$prefix}nav-link-disabled-color);
  49. cursor: not-allowed;
  50. }
  51. }
  52. .nav-link-input:checked + .nav-link,
  53. .nav-link.active {
  54. color: var(--#{$prefix}body-color);
  55. background: var(--#{$prefix}nav-active-bg);
  56. border-color: var(--#{$prefix}border-color);
  57. }
  58. .nav-link-input {
  59. display: none;
  60. }
  61. .nav-link-icon {
  62. width: var(--#{$prefix}nav-link-icon-size);
  63. height: var(--#{$prefix}nav-link-icon-size);
  64. margin: 0 -.25rem;
  65. color: inherit;
  66. }
  67. }
  68. .nav-segmented-vertical {
  69. flex-direction: column;
  70. .nav-link {
  71. justify-content: flex-start;
  72. }
  73. }
  74. .nav-sm {
  75. --#{$prefix}nav-height: 2rem;
  76. --#{$prefix}nav-font-size: var(--tblr-font-size-h5);
  77. --#{$prefix}nav-radius: 4px;
  78. --#{$prefix}nav-link-padding-x: .5rem;
  79. --#{$prefix}nav-link-gap: .25rem;
  80. --#{$prefix}nav-link-icon-size: 1rem;
  81. }
  82. .nav-lg {
  83. --#{$prefix}nav-height: 3rem;
  84. --#{$prefix}nav-font-size: var(--tblr-font-size-h3);
  85. --#{$prefix}nav-radius: 8px;
  86. --#{$prefix}nav-link-padding-x: 1rem;
  87. --#{$prefix}nav-link-gap: .5rem;
  88. --#{$prefix}nav-link-icon-size: 1.5rem;
  89. }