PluginProbe
OpenStation: Desktop Windows, Dock & Virtual Desktops for WP Admin / trunk
OpenStation: Desktop Windows, Dock & Virtual Desktops for WP Admin vtrunk
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 0.8.9 0.8.8 0.8.7 0.8.6 All 33 releases
desktop-mode / assets / css / effects.css

effects.css in OpenStation: Desktop Windows, Dock & Virtual Desktops for WP Admin trunk, at assets/css/effects.css

91 lines 3.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * OpenStation — Window effects.
3 *
4 * Visual treatments applied to windows by the unfocus-effect engine
5 * (`src/effects/unfocus-engine.ts`). The engine toggles a per-effect
6 * class on the window root (`.os-window`) while the window
7 * is NOT focused; each effect ships the matching rule here (or, for
8 * plugin effects, in the plugin's own stylesheet).
9 *
10 * The fade is driven by the `filter` entry in the shared
11 * `.os-window` transition (see `window-chrome.css`), so
12 * effects that animate via `filter` get a smooth two-way transition as
13 * focus moves between windows — and collapse to instant under
14 * `prefers-reduced-motion` along with every other window transition.
15 *
16 * Registered as its own `os-effects` style handle, chained
17 * by dependency between `os-settings` and
18 * `os-window-links` so its position in the cascade matches
19 * where it sat when these sheets were `@import`ed. Enqueuing
20 * `os-windows` still pulls it in via that chain.
21 *
22 * @since 0.26.0
23 */
24
25 /*
26 * Built-in effect tuning knobs. Every shipped effect is driven by
27 * custom properties so a theme or plugin can re-tune the intensity
28 * without overriding the whole rule (and so the values read as a set).
29 */
30 .os-window {
31 /* How long an effect takes to ramp in/out as focus moves between
32 * windows. Drives the `filter` entry of the shared window
33 * transition (see `window-chrome.css`); applies to every
34 * filter-based effect (darken, frost, grayscale) in BOTH
35 * directions — losing focus and regaining it. Bump it up for a
36 * slower, dreamier blur; drop it for a snappier feel. Collapses to
37 * instant under `prefers-reduced-motion`. */
38 --os-fx-transition-duration: 0.5s;
39
40 /* darken — dim + slight desaturate */
41 --os-fx-darken-brightness: 0.82;
42 --os-fx-darken-saturate: 0.92;
43
44 /* frost — frosted-glass blur, lifted + cooled */
45 --os-fx-frost-blur: 3px;
46 --os-fx-frost-saturate: 0.7;
47 --os-fx-frost-brightness: 1.08;
48
49 /* grayscale — drain colour, settle brightness */
50 --os-fx-grayscale-amount: 1;
51 --os-fx-grayscale-brightness: 0.95;
52 }
53
54 /*
55 * `darken` — dims unfocused windows (title bar and body alike) so the
56 * focused window reads as the active surface.
57 */
58 .os-window--fx-darken {
59 filter:
60 brightness( var( --os-fx-darken-brightness, 0.82 ) )
61 saturate( var( --os-fx-darken-saturate, 0.92 ) );
62 }
63
64 /*
65 * `frost` — throws the window literally out of focus. Blur is the
66 * universal "not in focus" cue; lifting the brightness and pulling the
67 * saturation down turns it into a pane of cold, frosted glass between
68 * the user and the content. `filter: blur()` rasterizes the whole
69 * window subtree — iframe content included — so the frosting is total,
70 * not just chrome-deep.
71 */
72 .os-window--fx-frost {
73 filter:
74 blur( var( --os-fx-frost-blur, 3px ) )
75 saturate( var( --os-fx-frost-saturate, 0.7 ) )
76 brightness( var( --os-fx-frost-brightness, 1.08 ) );
77 }
78
79 /*
80 * `grayscale` — drains the colour from unfocused windows so the focused
81 * one is the only thing still in colour. The eye is drawn to colour, so
82 * this makes the active window pop without dimming anything into the
83 * dark. A touch of brightness settling keeps the mono windows from
84 * glaring.
85 */
86 .os-window--fx-grayscale {
87 filter:
88 grayscale( var( --os-fx-grayscale-amount, 1 ) )
89 brightness( var( --os-fx-grayscale-brightness, 0.95 ) );
90 }
91