tabs.css 5.3 KB

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