tabs.css 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. /*-----------------------------------------------------------------------------
  2. | Copyright (c) Jupyter Development Team.
  3. | Distributed under the terms of the Modified BSD License.
  4. |----------------------------------------------------------------------------*/
  5. /*-----------------------------------------------------------------------------
  6. | Variables
  7. |----------------------------------------------------------------------------*/
  8. :root {
  9. /* These need to be root because tabs get attached to the body during dragging. */
  10. --jp-private-horizontal-tab-height: 24px;
  11. --jp-private-horizontal-tab-width: 216px;
  12. --jp-private-horizontal-tab-active-top-border: 2px;
  13. }
  14. /*-----------------------------------------------------------------------------
  15. | Tabs in the dock panel
  16. |----------------------------------------------------------------------------*/
  17. .p-DockPanel-tabBar {
  18. color: var(--jp-ui-font-color1);
  19. font-size: var(--jp-ui-font-size1);
  20. }
  21. .p-DockPanel-tabBar[data-orientation='horizontal'] {
  22. min-height: calc(
  23. var(--jp-private-horizontal-tab-height) + 2 * var(--jp-border-width)
  24. );
  25. }
  26. .p-DockPanel-tabBar[data-orientation='vertical'] {
  27. min-width: 80px;
  28. }
  29. .p-DockPanel-tabBar > .p-TabBar-content {
  30. align-items: flex-end;
  31. min-width: 0;
  32. min-height: 0;
  33. }
  34. .p-DockPanel-tabBar .p-TabBar-tab {
  35. flex: 0 1 var(--jp-private-horizontal-tab-width);
  36. min-height: calc(
  37. var(--jp-private-horizontal-tab-height) + var(--jp-border-width)
  38. );
  39. min-width: 36px;
  40. margin-left: calc(-1 * var(--jp-border-width));
  41. line-height: var(--jp-private-horizontal-tab-height);
  42. padding: 0px 8px;
  43. background: var(--jp-layout-color2);
  44. border: var(--jp-border-width) solid var(--jp-border-color1);
  45. border-bottom: none;
  46. position: relative;
  47. overflow: visible;
  48. }
  49. .p-DockPanel-tabBar .p-TabBar-tab:hover:not(.p-mod-current) {
  50. background: var(--jp-layout-color1);
  51. }
  52. .p-DockPanel-tabBar .p-TabBar-tab:first-child {
  53. margin-left: 0;
  54. }
  55. /* This is a current tab of a tab bar in the dock panel: each tab bar has 1. */
  56. .p-DockPanel-tabBar .p-TabBar-tab.p-mod-current {
  57. background: var(--jp-layout-color1);
  58. color: var(--jp-ui-font-color0);
  59. min-height: calc(
  60. var(--jp-private-horizontal-tab-height) + 2 * var(--jp-border-width)
  61. );
  62. transform: translateY(var(--jp-border-width));
  63. }
  64. /* This is the main application level current tab: only 1 exists. */
  65. .p-DockPanel-tabBar .p-TabBar-tab.jp-mod-current:before {
  66. position: absolute;
  67. top: calc(-1 * var(--jp-border-width));
  68. left: calc(-1 * var(--jp-border-width));
  69. content: '';
  70. height: var(--jp-private-horizontal-tab-active-top-border);
  71. width: calc(100% + 2 * var(--jp-border-width));
  72. background: var(--jp-brand-color1);
  73. }
  74. /* This is the left tab bar current tab: only 1 exists. */
  75. .p-TabBar-tab.p-mod-current {
  76. color: var(--jp-ui-font-color0);
  77. background: var(--jp-layout-color1);
  78. }
  79. .p-TabBar-tab.p-mod-current:hover {
  80. background: var(--jp-layout-color1);
  81. }
  82. .p-DockPanel-tabBar .p-TabBar.p-mod-left .p-TabBar-tab,
  83. .p-DockPanel-tabBar .p-TabBar.p-mod-right .p-TabBar-tab {
  84. flex: 0 1 40px;
  85. margin-top: -1px;
  86. line-height: 40px;
  87. }
  88. .p-DockPanel-tabBar .p-TabBar.p-mod-left .p-TabBar-tab {
  89. border-right: none;
  90. }
  91. .p-DockPanel-tabBar .p-TabBar.p-mod-right .p-TabBar-tab {
  92. border-left: none;
  93. }
  94. .p-DockPanel-tabBar .p-TabBar.p-mod-left .p-TabBar-tab:first-child,
  95. .p-DockPanel-tabBar .p-TabBar.p-mod-right .p-TabBar-tab:first-child {
  96. margin-top: 0;
  97. }
  98. .p-DockPanel-tabBar .p-TabBar.p-mod-left .p-TabBar-tab.p-mod-current,
  99. .p-DockPanel-tabBar .p-TabBar.p-mod-right .p-TabBar-tab.p-mod-current {
  100. min-width: 80px;
  101. max-width: 80px;
  102. }
  103. .p-DockPanel-tabBar .p-TabBar.p-mod-right .p-TabBar-tab.p-mod-current {
  104. transform: translateX(-1px);
  105. }
  106. .p-DockPanel-tabBar .p-TabBar-tabIcon,
  107. .p-DockPanel-tabBar .p-TabBar-tabLabel,
  108. .p-DockPanel-tabBar .p-TabBar-tabCloseIcon {
  109. display: inline-block;
  110. }
  111. .p-DockPanel-tabBar .p-TabBar-tab .p-TabBar-tabIcon,
  112. .p-TabBar-tab.p-mod-drag-image .p-TabBar-tabIcon {
  113. width: 14px;
  114. background-position: left center;
  115. background-repeat: no-repeat;
  116. background-size: 14px;
  117. margin-right: 4px;
  118. }
  119. .p-DockPanel-tabBar .p-TabBar-tab.p-mod-current .p-TabBar-tabIcon {
  120. margin-bottom: var(--jp-border-width);
  121. }
  122. .p-TabBar-WindowTabLabel {
  123. margin-top: 4px;
  124. }
  125. .p-DockPanel-tabBar .p-TabBar-tab.p-mod-closable > .p-TabBar-tabCloseIcon {
  126. margin-left: 4px;
  127. padding-top: 8px;
  128. background-size: 16px;
  129. height: 16px;
  130. width: 16px;
  131. background-image: var(--jp-icon-close);
  132. background-position: center;
  133. background-repeat: no-repeat;
  134. }
  135. .p-DockPanel-tabBar
  136. .p-TabBar-tab.p-mod-closable.jp-mod-dirty
  137. > .p-TabBar-tabCloseIcon {
  138. background-size: 10px;
  139. background-image: var(--jp-icon-circle);
  140. }
  141. .p-DockPanel-tabBar
  142. .p-TabBar-tab.p-mod-closable
  143. > .p-TabBar-tabCloseIcon:hover {
  144. background-size: 16px;
  145. background-image: var(--jp-icon-close-circle);
  146. }
  147. .p-TabBar-tab.p-mod-drag-image {
  148. background: var(--jp-layout-color1);
  149. border: var(--jp-border-width) solid var(--jp-border-color1);
  150. border-top: var(--jp-border-width) solid var(--jp-brand-color1);
  151. box-shadow: var(--jp-elevation-z4);
  152. color: var(--jp-ui-font-color1);
  153. font-size: var(--jp-ui-font-size1);
  154. line-height: var(--jp-private-horizontal-tab-height);
  155. min-height: var(--jp-private-horizontal-tab-height);
  156. min-width: var(--jp-private-horizontal-tab-width);
  157. padding: 0px 10px;
  158. transform: translateX(-40%) translateY(-58%);
  159. }
  160. /* .p-TabBar-tab.p-mod-drag-image .p-TabBar-tabLabel {
  161. margin-left: 4px;
  162. } */