128000f4 |
1 | /* ***** BEGIN LICENSE BLOCK ***** |
2 | * Version: MPL 1.1/GPL 2.0/LGPL 2.1 |
3 | * |
4 | * The contents of this file are subject to the Mozilla Public License Version |
5 | * 1.1 (the "License"); you may not use this file except in compliance with |
6 | * the License. You may obtain a copy of the License at |
7 | * http://www.mozilla.org/MPL/ |
8 | * |
9 | * Software distributed under the License is distributed on an "AS IS" basis, |
10 | * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License |
11 | * for the specific language governing rights and limitations under the |
12 | * License. |
13 | * |
14 | * The Original Code is "Classic" theme of mozilla.org code. |
15 | * |
16 | * The Initial Developer of the Original Code is |
17 | * the Mozilla Organization. |
18 | * Portions created by the Initial Developer are Copyright (C) 1998-2001 |
19 | * the Initial Developer. All Rights Reserved. |
20 | * |
21 | * Contributor(s): |
22 | * Robert Kaiser <KaiRo@KaiRo.at> |
23 | * |
24 | * Alternatively, the contents of this file may be used under the terms of |
25 | * either the GNU General Public License Version 2 or later (the "GPL"), or |
26 | * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), |
27 | * in which case the provisions of the GPL or the LGPL are applicable instead |
28 | * of those above. If you wish to allow use of your version of this file only |
29 | * under the terms of either the GPL or the LGPL, and not to allow others to |
30 | * use your version of this file under the terms of the MPL, indicate your |
31 | * decision by deleting the provisions above and replace them with the notice |
32 | * and other provisions required by the GPL or the LGPL. If you do not delete |
33 | * the provisions above, a recipient may use your version of this file under |
34 | * the terms of any one of the MPL, the GPL or the LGPL. |
35 | * |
36 | * ***** END LICENSE BLOCK ***** */ |
37 | |
38 | @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); |
f6e0a33f |
39 | |
40 | /*============ tabpanels widget =============*/ |
41 | |
42 | tabpanels { |
43 | padding: 5px; |
44 | } |
45 | |
46 | /* we give all tabpanel types a full border |
47 | tabpanel is the box in which contents show up */ |
48 | |
49 | /* top tabs */ |
50 | tabs + tabpanels { |
51 | border: 1px outset #CCD0DD; |
52 | } |
53 | |
54 | /* bottom tabs */ |
f840e302 |
55 | tabbox > tabpanels { |
f6e0a33f |
56 | border: 1px outset #CCD0DD; |
57 | } |
58 | |
59 | /* left tabs */ |
60 | tabbox[orient="horizontal"] > tabs + tabpanels { |
61 | border: 1px outset #CCD0DD; |
62 | } |
63 | |
64 | /* right tabs */ |
65 | tabbox[orient="horizontal"] > tabpanels { |
66 | border: 1px outset #CCD0DD; |
67 | } |
68 | |
69 | /* border on bottom only, no padding (used in search) */ |
70 | tabpanels.light { |
71 | border: none; |
72 | border-bottom: 1px outset #CCD0DD; |
73 | padding: 0px; |
74 | } |
75 | |
76 | .tabpanels-inner-box { |
77 | } |
78 | |
79 | /* tabs-spacer ========================== */ |
80 | |
81 | /* top tabs */ |
f840e302 |
82 | tabbox > tabs > .tabs-spacer { |
f6e0a33f |
83 | } |
84 | |
85 | /* bottom tabs */ |
f840e302 |
86 | tabbox > tabpanels + tabs > .tabs-spacer { |
f6e0a33f |
87 | } |
88 | |
89 | /* left tabs */ |
90 | tabbox[orient="horizontal"] > tabs > .tabs-spacer { |
91 | } |
92 | |
93 | /* right tabs */ |
94 | tabbox[orient="horizontal"] > tabpanels + tabs > .tabs-spacer { |
95 | } |
96 | |
97 | /*============ tab widget ============*/ |
98 | /* NOTE: there should be code in here for indenting the first tab |
99 | by two pixels, however, this needs to be done with a spacer to |
100 | fill in the border, but current attempts to use said spacer |
101 | result in said spacer not rendering. Will revisit. - JRH */ |
102 | |
103 | /* tabs is the strip showing the tabs, while tab is the tab (switcher) itself */ |
104 | |
105 | tab { |
106 | border: 1px outset #CCD0DD; |
107 | color: black; |
108 | } |
109 | |
110 | tab > .tab-box > .tab-text { |
111 | border: 1px solid transparent; |
112 | padding: 0px 1px 0px 1px; |
113 | } |
114 | |
115 | tab:focus > .tab-box > .tab-text { |
116 | border: 1px dotted #9999CC; |
117 | } |
118 | |
119 | .tab-box { |
120 | margin: 0px; |
121 | padding: 1px 3px 1px 3px !important; |
122 | } |
123 | |
124 | /* top tabs */ |
125 | tabs tab[first-tab="true"] { |
126 | margin-left: 2px; |
127 | } |
128 | |
129 | tabs tab { |
130 | margin-top: 2px; |
131 | border-bottom: none; |
132 | /* -moz-border-radius: 4px 4px 0px 0px; */ |
133 | } |
134 | |
135 | tabs tab > .tab-box { |
136 | /* -moz-border-radius: 4px 4px 0px 0px; */ |
137 | } |
138 | |
139 | /* bottom tabs */ |
140 | tabpanels + tabs > tab { |
141 | margin-top: 0px; |
142 | margin-bottom: 2px; |
143 | border-top: none; |
144 | /* -moz-border-radius: 0px 0px 4px 4px; */ |
145 | padding: 1px 5px 3px 5px; |
146 | } |
147 | |
148 | tabpanels + tabs > tab > .tab-box { |
149 | /* -moz-border-radius: 0px 0px 4px 4px; */ |
150 | } |
151 | |
152 | /* left tabs */ |
153 | tabbox[orient="horizontal"] > tabs[orient="vertical"] tab[first-tab="true"] { |
154 | margin-top: 2px; |
155 | } |
156 | |
157 | tabbox[orient="horizontal"] > tabs[orient="vertical"] tab { |
158 | margin-left: 2px; |
159 | border-right: none; |
160 | /* -moz-border-radius: 4px 0px 0px 4px; */ |
161 | } |
162 | |
163 | tabbox[orient="horizontal"] > tabs[orient="vertical"] tab > .tab-box { |
164 | /* -moz-border-radius: 4px 0px 0px 4px; */ |
165 | } |
166 | |
167 | /* right tabs */ |
168 | tabbox[orient="horizontal"] > tabpanels + tabs[orient="vertical"] > tab { |
169 | margin-right: 2px; |
170 | margin-left: 0px; |
171 | border-left: none; |
172 | /* -moz-border-radius: 0px 4px 4px 0px !important; */ |
173 | } |
174 | |
175 | tabbox[orient="horizontal"] > tabpanels + tabs[orient="vertical"] > tab > .tab-box { |
176 | /* -moz-border-radius: 0px 4px 4px 0px !important; */ |
177 | } |
178 | |
179 | /* selected tabs ============================= */ |
180 | |
181 | tab[selected="true"] { |
182 | font-weight: bold; |
183 | } |