tabs.css 5.5 KB

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