| @@ -87,8 +87,19 @@ | ||
| 87 | 87 | color: var( --os-dock-icon-color, rgba( 255, 255, 255, 0.7 ) ); |
| 88 | 88 | transition: background-color 0.15s ease, transform 0.15s ease, color 0.15s ease; |
| 89 | 89 | } |
| 90 | 90 | |
| 91 | +/* | |
| 92 | + * The tile whose window is in front sits on a lit plate. Declared | |
| 93 | + * before the hover rule at the same specificity so the pointer still | |
| 94 | + * wins while it is over the tile. Falls back to nothing, which is | |
| 95 | + * what every placement drew before the token existed. | |
| 96 | + */ | |
| 97 | +.os-dock__item--focused .os-dock__item-primary { | |
| 98 | + background-color: var( --os-dock-item-bg-focused, transparent ); | |
| 99 | + color: var( --os-dock-icon-color-hover, var( --os-ui-fg-on-accent, #fff ) ); | |
| 100 | +} | |
| 101 | + | |
| 91 | 102 | .os-dock__item-primary:hover { |
| 92 | 103 | background-color: var( |
| 93 | 104 | --os-dock-item-bg-hover, |
| 94 | 105 | rgba( 255, 255, 255, 0.15 ) |
| @@ -249,9 +260,9 @@ | ||
| 249 | 260 | padding: 0; |
| 250 | 261 | border: 2px solid var( --os-dock-bg, rgba( 0, 0, 0, 0.4 ) ); |
| 251 | 262 | border-radius: 50%; |
| 252 | 263 | background: var( --wp-admin-theme-color, #2271b1 ); |
| 253 | - color: var( --os-ui-fg-on-accent, #fff ); | |
| 264 | + color: var( --os-ui-accent-ink, var( --os-ui-fg-on-accent, #fff ) ); | |
| 254 | 265 | cursor: pointer; |
| 255 | 266 | transition: background-color 0.15s ease, transform 0.15s ease; |
| 256 | 267 | z-index: 1; |
| 257 | 268 | } |
| @@ -1362,8 +1373,23 @@ | ||
| 1362 | 1373 | |
| 1363 | 1374 | html.os-dock-vt::view-transition-old( root ), |
| 1364 | 1375 | html.os-dock-vt::view-transition-new( root ) { |
| 1365 | 1376 | animation: none; |
| 1377 | + } | |
| 1378 | + | |
| 1379 | + /* | |
| 1380 | + * The transition layer must not catch the pointer. By default it | |
| 1381 | + * does — the whole page reads as inert until the morph settles — | |
| 1382 | + * and with the root opted out of the snapshot that is worse than | |
| 1383 | + * pointless: the live desktop is right there under a layer that | |
| 1384 | + * swallows every mouseup and every pointerenter for 260ms. The | |
| 1385 | + * behavior module already holds a park back while a button is | |
| 1386 | + * down; this is the other half, so a hover that lands on a tile | |
| 1387 | + * while the rail is still morphing out starts its hover-intent | |
| 1388 | + * timer instead of waiting for the next pointer movement. | |
| 1389 | + */ | |
| 1390 | + html.os-dock-vt::view-transition { | |
| 1391 | + pointer-events: none; | |
| 1366 | 1392 | } |
| 1367 | 1393 | |
| 1368 | 1394 | ::view-transition-group( os-dock-os-dock ), |
| 1369 | 1395 | ::view-transition-group( os-dock-os-side-dock ) { |