summaryrefslogtreecommitdiffstats
path: root/devtools/client/shared/components/tabs/Tabs.css
blob: d483925a753be2be34da57a9979d66e5319b6522 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

/* Tabs General Styles */

.tabs {
  --tab-height: var(--theme-toolbar-height);
  height: 100%;
  background: var(--theme-sidebar-background);
  display: flex;
  flex-direction: column;
}

.tabs.tabs-tall {
  --tab-height: var(--theme-toolbar-tall-height);
}

/* Hides the tab strip in the TabBar */
div[hidetabs=true] .tabs .tabs-navigation {
  display: none;
}

.tabs .tabs-navigation {
  box-sizing: border-box;
  display: flex;
  /* Reserve 1px for the border */
  height: calc(var(--tab-height) + 1px);
  position: relative;
  border-bottom: 1px solid var(--theme-splitter-color);
  background: var(--theme-tab-toolbar-background);
}

.tabs .tabs-menu {
  list-style: none;
  padding: 0;
  margin: 0;
  margin-inline-end: 15px;
  flex-grow: 1;
  /* Adjust outline so it's not clipped */
  outline-offset: -2px;
}

/* The tab takes entire horizontal space and individual tabs
  should stretch accordingly. Use flexbox for the behavior.
  Use also `overflow: hidden` so, 'overflow' and 'underflow'
  events are fired (it's utilized by the all-tabs-menu). */
.tabs .tabs-navigation .tabs-menu {
  overflow: hidden;
  display: flex;
  overflow-x: scroll;
  scrollbar-width: none;
}

.tabs .tabs-menu-item {
  display: inline-block;
  position: relative;
  margin: 0;
  padding: 0;
  color: var(--theme-toolbar-color);
}

.tabs .tabs-menu-item.is-active {
  color: var(--theme-toolbar-selected-color);
}

.tabs .tabs-menu-item:hover {
  background-color: var(--theme-toolbar-hover);
}

.tabs .tabs-menu-item:hover:active:not(.is-active) {
  background-color: var(--theme-toolbar-hover-active);
}

.tabs .tabs-menu-item a {
  --text-height: 16px;
  --devtools-tab-border-width: 1px;
  display: flex;
  justify-content: center;
  /* Vertically center text, calculate space remaining by taking the full height and removing
  the block borders and text. Divide by 2 to distribute above and below.  */
  padding: calc((var(--tab-height) - var(--text-height) - (var(--devtools-tab-border-width) * 2)) / 2) 10px;
  border: var(--devtools-tab-border-width) solid transparent;
  font-size: 12px;
  line-height: var(--text-height);
  text-decoration: none;
  white-space: nowrap;
  cursor: default;
  user-select: none;
  text-align: center;
}

.tabs .tabs-navigation .tabs-menu-item > a {
  outline-offset: -2px;
}

.tabs .tabs-menu-item .tab-badge {
  color: var(--theme-highlight-blue);
  font-size: 80%;
  font-style: italic;
  /* Tabs have a 15px padding start/end, so we set the margins here in order to center the
     badge after the tab title, with a 5px effective margin. */
  margin-inline-start: 5px;
  margin-inline-end: -10px;
}

.tabs .tabs-menu-item.is-active .tab-badge {
  /* Use the same color as the tab-item when active */
  color: inherit;
}

/* To avoid "select all" commands from selecting content in hidden tabs */
.tabs .hidden,
.tabs .hidden * {
  user-select: none !important;
}

/* Make sure panel content takes entire vertical space. */
.tabs .panels {
  flex: 1;
  overflow: hidden;
}

.tabs .tab-panel {
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
}