tabs.css 5.5 KB

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