tabs.css 4.7 KB

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