PluginProbe
OpenStation: Desktop Windows, Dock & Virtual Desktops for WP Admin / 1.1.13
OpenStation: Desktop Windows, Dock & Virtual Desktops for WP Admin v1.1.13
1.1.13 1.1.12 1.1.11 1.1.10 1.1.9 1.1.8 1.1.7 1.1.6 1.1.5 1.1.4 1.1.3 1.1.2 1.1.1 1.1.0 1.0.1 1.0.0 0.9.8 0.9.7 0.9.6 0.9.4 0.9.5 0.9.3 0.9.2 0.9.1 0.9.0 All 37 releases
desktop-mode / assets / css / dock-taskbar.css

dock-taskbar.css in OpenStation: Desktop Windows, Dock & Virtual Desktops for WP Admin 1.1.13, at assets/css/dock-taskbar.css

303 lines 7.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * OpenStation — the Taskbar rail renderer (`src/dock-rail/taskbar-renderer.ts`).
3 *
4 * A full-width bar along the bottom edge: Start, a button per open
5 * window, and a tray. Every rule is scoped to the rail the renderer
6 * stamps, so the sheet is inert under the default icon strip, and it
7 * loads with the dock because the renderer can be picked live.
8 *
9 * Colours fall back to the dock's own tokens, so a theme that has
10 * already dressed the dock gets a matching taskbar; `--os-taskbar-*`
11 * names are there for the parts a dock does not have.
12 */
13
14 .os-dock[ data-os-dock-renderer="taskbar" ][ data-os-dock-placement="bottom" ] {
15 inset-inline: 0;
16 bottom: 0;
17 width: 100%;
18 max-width: 100%;
19 margin: 0;
20 padding: var( --os-taskbar-padding, 4px 6px );
21 border-radius: 0;
22 border-inline: 0;
23 border-block-end: 0;
24 }
25
26 .os-taskbar {
27 display: flex;
28 align-items: stretch;
29 gap: var( --os-taskbar-gap, 6px );
30 width: 100%;
31 height: var( --os-taskbar-height, 36px );
32 font-family: var( --os-font, inherit );
33 font-size: var( --os-taskbar-font-size, 12px );
34 color: var( --os-taskbar-fg, var( --os-dock-icon-color-hover, #fff ) );
35 }
36
37 .os-taskbar__icon {
38 flex-shrink: 0;
39 width: var( --os-taskbar-icon-size, 16px );
40 height: var( --os-taskbar-icon-size, 16px );
41 font-size: var( --os-taskbar-icon-size, 16px );
42 line-height: 1;
43 }
44
45 .os-taskbar__icon--blank {
46 visibility: hidden;
47 }
48
49 img.os-taskbar__icon {
50 object-fit: contain;
51 }
52
53 /* --- Start and the window buttons ------------------------------- */
54
55 .os-taskbar__start,
56 .os-taskbar__task {
57 display: inline-flex;
58 align-items: center;
59 gap: var( --os-taskbar-button-gap, 6px );
60 min-width: 0;
61 padding: var( --os-taskbar-button-padding, 0 10px );
62 border: 0;
63 border-radius: var( --os-taskbar-button-radius, 8px );
64 background-color: var( --os-taskbar-button-bg, rgba( 255, 251, 255, 0.06 ) );
65 box-shadow: var( --os-taskbar-button-shadow, none );
66 color: inherit;
67 font: inherit;
68 text-align: start;
69 cursor: pointer;
70 }
71
72 .os-taskbar__start {
73 flex-shrink: 0;
74 font-weight: var( --os-taskbar-start-weight, 600 );
75 }
76
77 .os-taskbar__task {
78 flex: 0 1 var( --os-taskbar-task-width, 180px );
79 }
80
81 .os-taskbar__start:hover,
82 .os-taskbar__task:hover {
83 background-color: var(
84 --os-taskbar-button-bg-hover,
85 var( --os-dock-item-bg-hover, rgba( 255, 251, 255, 0.12 ) )
86 );
87 }
88
89 /*
90 * Held down, open, or the window in front: the key is pressed. A theme
91 * can lay a pattern over the pressed face (the era's checkered fill)
92 * through `--os-taskbar-button-pattern-active`.
93 */
94 .os-taskbar__start:active,
95 .os-taskbar__start--open,
96 .os-taskbar__task:active,
97 .os-taskbar__task--active {
98 background-color: var( --os-taskbar-button-bg-active, rgba( 255, 251, 255, 0.16 ) );
99 box-shadow: var(
100 --os-taskbar-button-shadow-active,
101 var( --os-taskbar-button-shadow, none )
102 );
103 }
104
105 .os-taskbar__task--active {
106 background-image: var( --os-taskbar-button-pattern-active, none );
107 background-size: var( --os-taskbar-button-pattern-size, auto );
108 font-weight: var( --os-taskbar-task-active-weight, 400 );
109 }
110
111 .os-taskbar__start:focus-visible,
112 .os-taskbar__task:focus-visible,
113 .os-taskbar__tray-item:focus-visible {
114 outline: var( --os-taskbar-focus-outline, 2px solid var( --os-dock-item-outline, rgba( 255, 255, 255, 0.7 ) ) );
115 outline-offset: var( --os-taskbar-focus-offset, -2px );
116 }
117
118 .os-taskbar__task-label,
119 .os-taskbar__start-label {
120 overflow: hidden;
121 text-overflow: ellipsis;
122 white-space: nowrap;
123 }
124
125 .os-taskbar__tasks {
126 display: flex;
127 flex: 1 1 auto;
128 align-items: stretch;
129 gap: var( --os-taskbar-gap, 6px );
130 min-width: 0;
131 overflow: hidden;
132 }
133
134 /* --- The tray --------------------------------------------------- */
135
136 .os-taskbar__tray {
137 display: flex;
138 flex-shrink: 0;
139 align-items: center;
140 gap: 6px;
141 padding: var( --os-taskbar-tray-padding, 0 8px );
142 border-radius: var( --os-taskbar-tray-radius, 8px );
143 background-color: var( --os-taskbar-tray-bg, transparent );
144 box-shadow: var( --os-taskbar-tray-shadow, none );
145 }
146
147 .os-taskbar__tray-items {
148 display: flex;
149 align-items: center;
150 gap: 2px;
151 }
152
153 .os-taskbar__tray-item {
154 display: inline-flex;
155 align-items: center;
156 justify-content: center;
157 width: var( --os-taskbar-tray-item-size, 24px );
158 height: var( --os-taskbar-tray-item-size, 24px );
159 padding: 0;
160 border: 0;
161 border-radius: var( --os-taskbar-button-radius, 8px );
162 background: transparent;
163 color: inherit;
164 cursor: pointer;
165 }
166
167 .os-taskbar__tray-item:hover {
168 background-color: var(
169 --os-taskbar-tray-item-bg-hover,
170 var( --os-dock-item-bg-hover, rgba( 255, 251, 255, 0.12 ) )
171 );
172 }
173
174 .os-taskbar__clock {
175 padding-inline: 4px;
176 white-space: nowrap;
177 font-variant-numeric: tabular-nums;
178 cursor: default;
179 }
180
181 /* --- The Start menu --------------------------------------------- */
182
183 .os-taskbar__menu {
184 position: absolute;
185 inset-inline-start: var( --os-taskbar-menu-inset, 6px );
186 bottom: calc( 100% + var( --os-taskbar-menu-offset, 6px ) );
187 display: flex;
188 min-width: 220px;
189 padding: var( --os-taskbar-menu-padding, 4px );
190 border-radius: var( --os-taskbar-menu-radius, 12px );
191 background: var( --os-taskbar-menu-bg, var( --os-ui-surface, #1a1721 ) );
192 box-shadow: var( --os-taskbar-menu-shadow, 0 16px 40px rgba( 0, 0, 0, 0.5 ) );
193 color: var( --os-taskbar-menu-fg, var( --os-ui-fg, #fffbff ) );
194 font-family: var( --os-font, inherit );
195 font-size: var( --os-taskbar-menu-font-size, 13px );
196 }
197
198 .os-taskbar__menu[ hidden ] {
199 display: none;
200 }
201
202 /*
203 * The banner down the menu's leading edge. A hero surface by default;
204 * a theme can paint it flat.
205 */
206 .os-taskbar__banner {
207 flex-shrink: 0;
208 padding: 8px 4px;
209 border-radius: var( --os-taskbar-banner-radius, 8px );
210 background: var( --os-taskbar-banner-bg, var( --os-ui-hero-mesh, #2c3338 ) );
211 color: var( --os-taskbar-banner-fg, var( --os-ui-fg, #fffbff ) );
212 font-size: var( --os-taskbar-banner-font-size, 18px );
213 line-height: 1;
214 writing-mode: vertical-rl;
215 transform: rotate( 180deg );
216 white-space: nowrap;
217 }
218
219 .os-taskbar__menu-list,
220 .os-taskbar__submenu {
221 display: flex;
222 flex-direction: column;
223 min-width: 0;
224 }
225
226 .os-taskbar__menu-list {
227 flex: 1;
228 padding-inline-start: 4px;
229 }
230
231 .os-taskbar__menu-item {
232 display: flex;
233 align-items: center;
234 gap: 10px;
235 width: 100%;
236 padding: var( --os-taskbar-menu-item-padding, 6px 10px );
237 border: 0;
238 border-radius: var( --os-taskbar-menu-item-radius, 6px );
239 background: transparent;
240 color: inherit;
241 font: inherit;
242 text-align: start;
243 white-space: nowrap;
244 cursor: pointer;
245 }
246
247 .os-taskbar__menu-item .os-taskbar__icon {
248 width: var( --os-taskbar-menu-icon-size, 20px );
249 height: var( --os-taskbar-menu-icon-size, 20px );
250 font-size: var( --os-taskbar-menu-icon-size, 20px );
251 }
252
253 .os-taskbar__menu-item:hover,
254 .os-taskbar__menu-item:focus-visible,
255 .os-taskbar__cascade--open > .os-taskbar__menu-item {
256 outline: none;
257 background: var( --os-taskbar-menu-hover-bg, var( --os-ui-hover, rgba( 255, 251, 255, 0.08 ) ) );
258 color: var( --os-taskbar-menu-hover-fg, inherit );
259 }
260
261 .os-taskbar__menu-label {
262 flex: 1;
263 overflow: hidden;
264 text-overflow: ellipsis;
265 }
266
267 /* The cascade arrow: a solid triangle pointing at the submenu. */
268 .os-taskbar__menu-arrow {
269 width: 0;
270 height: 0;
271 margin-inline-start: 12px;
272 border-block: 4px solid transparent;
273 border-inline-start: 4px solid currentColor;
274 }
275
276 .os-taskbar__menu-separator {
277 height: 1px;
278 margin: 4px 6px;
279 background: var( --os-taskbar-menu-separator, var( --os-ui-border, rgba( 255, 251, 255, 0.12 ) ) );
280 box-shadow: var( --os-taskbar-menu-separator-shadow, none );
281 }
282
283 .os-taskbar__cascade {
284 position: relative;
285 }
286
287 .os-taskbar__submenu {
288 position: absolute;
289 top: calc( -1 * var( --os-taskbar-menu-padding, 4px ) );
290 inset-inline-start: 100%;
291 display: none;
292 min-width: 190px;
293 padding: var( --os-taskbar-menu-padding, 4px );
294 border-radius: var( --os-taskbar-menu-radius, 12px );
295 background: var( --os-taskbar-menu-bg, var( --os-ui-surface, #1a1721 ) );
296 box-shadow: var( --os-taskbar-menu-shadow, 0 16px 40px rgba( 0, 0, 0, 0.5 ) );
297 translate: 0 var( --os-taskbar-submenu-shift, 0px );
298 }
299
300 .os-taskbar__cascade--open > .os-taskbar__submenu {
301 display: flex;
302 }
303