You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

172 lines
4.6 KiB

3 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
  1. // Base class
  2. //
  3. // Kickstart any navigation component with a set of style resets. Works with
  4. // `<nav>`s, `<ul>`s or `<ol>`s.
  5. .nav {
  6. // scss-docs-start nav-css-vars
  7. --#{$prefix}nav-link-padding-x: #{$nav-link-padding-x};
  8. --#{$prefix}nav-link-padding-y: #{$nav-link-padding-y};
  9. @include rfs($nav-link-font-size, --#{$prefix}nav-link-font-size);
  10. --#{$prefix}nav-link-font-weight: #{$nav-link-font-weight};
  11. --#{$prefix}nav-link-color: #{$nav-link-color};
  12. --#{$prefix}nav-link-hover-color: #{$nav-link-hover-color};
  13. --#{$prefix}nav-link-disabled-color: #{$nav-link-disabled-color};
  14. // scss-docs-end nav-css-vars
  15. display: flex;
  16. flex-wrap: wrap;
  17. padding-left: 0;
  18. margin-bottom: 0;
  19. list-style: none;
  20. }
  21. .nav-link {
  22. display: block;
  23. padding: var(--#{$prefix}nav-link-padding-y) var(--#{$prefix}nav-link-padding-x);
  24. @include font-size(var(--#{$prefix}nav-link-font-size));
  25. font-weight: var(--#{$prefix}nav-link-font-weight);
  26. color: var(--#{$prefix}nav-link-color);
  27. text-decoration: if($link-decoration == none, null, none);
  28. @include transition($nav-link-transition);
  29. &:hover,
  30. &:focus {
  31. color: var(--#{$prefix}nav-link-hover-color);
  32. text-decoration: if($link-hover-decoration == underline, none, null);
  33. }
  34. // Disabled state lightens text
  35. &.disabled {
  36. color: var(--#{$prefix}nav-link-disabled-color);
  37. pointer-events: none;
  38. cursor: default;
  39. }
  40. }
  41. //
  42. // Tabs
  43. //
  44. .nav-tabs {
  45. // scss-docs-start nav-tabs-css-vars
  46. --#{$prefix}nav-tabs-border-width: #{$nav-tabs-border-width};
  47. --#{$prefix}nav-tabs-border-color: #{$nav-tabs-border-color};
  48. --#{$prefix}nav-tabs-border-radius: #{$nav-tabs-border-radius};
  49. --#{$prefix}nav-tabs-link-hover-border-color: #{$nav-tabs-link-hover-border-color};
  50. --#{$prefix}nav-tabs-link-active-color: #{$nav-tabs-link-active-color};
  51. --#{$prefix}nav-tabs-link-active-bg: #{$nav-tabs-link-active-bg};
  52. --#{$prefix}nav-tabs-link-active-border-color: #{$nav-tabs-link-active-border-color};
  53. // scss-docs-end nav-tabs-css-vars
  54. border-bottom: var(--#{$prefix}nav-tabs-border-width) solid var(--#{$prefix}nav-tabs-border-color);
  55. .nav-link {
  56. margin-bottom: calc(-1 * var(--#{$prefix}nav-tabs-border-width)); // stylelint-disable-line function-disallowed-list
  57. background: none;
  58. border: var(--#{$prefix}nav-tabs-border-width) solid transparent;
  59. @include border-top-radius(var(--#{$prefix}nav-tabs-border-radius));
  60. &:hover,
  61. &:focus {
  62. // Prevents active .nav-link tab overlapping focus outline of previous/next .nav-link
  63. isolation: isolate;
  64. border-color: var(--#{$prefix}nav-tabs-link-hover-border-color);
  65. }
  66. &.disabled,
  67. &:disabled {
  68. color: var(--#{$prefix}nav-link-disabled-color);
  69. background-color: transparent;
  70. border-color: transparent;
  71. }
  72. }
  73. .nav-link.active,
  74. .nav-item.show .nav-link {
  75. color: var(--#{$prefix}nav-tabs-link-active-color);
  76. background-color: var(--#{$prefix}nav-tabs-link-active-bg);
  77. border-color: var(--#{$prefix}nav-tabs-link-active-border-color);
  78. }
  79. .dropdown-menu {
  80. // Make dropdown border overlap tab border
  81. margin-top: calc(-1 * var(--#{$prefix}nav-tabs-border-width)); // stylelint-disable-line function-disallowed-list
  82. // Remove the top rounded corners here since there is a hard edge above the menu
  83. @include border-top-radius(0);
  84. }
  85. }
  86. //
  87. // Pills
  88. //
  89. .nav-pills {
  90. // scss-docs-start nav-pills-css-vars
  91. --#{$prefix}nav-pills-border-radius: #{$nav-pills-border-radius};
  92. --#{$prefix}nav-pills-link-active-color: #{$nav-pills-link-active-color};
  93. --#{$prefix}nav-pills-link-active-bg: #{$nav-pills-link-active-bg};
  94. // scss-docs-end nav-pills-css-vars
  95. .nav-link {
  96. background: none;
  97. border: 0;
  98. @include border-radius(var(--#{$prefix}nav-pills-border-radius));
  99. &:disabled {
  100. color: var(--#{$prefix}nav-link-disabled-color);
  101. background-color: transparent;
  102. border-color: transparent;
  103. }
  104. }
  105. .nav-link.active,
  106. .show > .nav-link {
  107. color: var(--#{$prefix}nav-pills-link-active-color);
  108. @include gradient-bg(var(--#{$prefix}nav-pills-link-active-bg));
  109. }
  110. }
  111. //
  112. // Justified variants
  113. //
  114. .nav-fill {
  115. > .nav-link,
  116. .nav-item {
  117. flex: 1 1 auto;
  118. text-align: center;
  119. }
  120. }
  121. .nav-justified {
  122. > .nav-link,
  123. .nav-item {
  124. flex-basis: 0;
  125. flex-grow: 1;
  126. text-align: center;
  127. }
  128. }
  129. .nav-fill,
  130. .nav-justified {
  131. .nav-item .nav-link {
  132. width: 100%; // Make sure button will grow
  133. }
  134. }
  135. // Tabbable tabs
  136. //
  137. // Hide tabbable panes to start, show them when `.active`
  138. .tab-content {
  139. > .tab-pane {
  140. display: none;
  141. }
  142. > .active {
  143. display: block;
  144. }
  145. }