Right now keyboard focus is a bit of a visual mess because we're not consistent about how these states are presented. I will summarize what they are here:
- Active focus/selection: This thing is the currently selected item and its view has focus. Only one thing should ever have this state.
- Inactive focus/selection: "This thing is the currently selected item in a view that does not have focus. Multiple things can have this state because there may be multiple unfocused views in a UI.
- In use: This item is currently being used. Distinct to only some UI elements; most list and grid items will not have this state.
- Hover: The user has positioned their cursor over thing thing, regardless of its focus state. Only one thing should ever have this state.
Having distinct visuals for each state is important, because when active and inactive focus states look identical, the user can't tell which item actually has keyboard focus. Also, some UIs such as System Settings grid items need to have a distinct "Selected" state that is different from "active focus/hover" because it needs to show which item is actively in use. One item can be actively in use, but another one can have active focus, so these states need to look different.
Kickoff (git master/5.23 only) and Elisa have good examples of how this is handled well: for the inactive focus effect, they use a lightened/desaturated version of the active focus effect, and they re-use the active focus effect for the hover effect.
(Though as you can see the color for the two inactive focus effects differ in Elisa, which is a bug)