@@ -156,3 +156,84 @@ Blockly.Css.register(`
156156 }
157157` ) ;
158158
159+ // Styling focusing blocks, connections and fields.
160+ //
161+ // This should be moved to core, being integrated into the
162+ // existing styling of renderers in core/renderers/*/constants.ts.
163+ Blockly . Css . register ( `
164+ /* Blocks, connections and fields. */
165+ .blocklyKeyboardNavigation
166+ .blocklyActiveFocus:is(.blocklyPath, .blocklyHighlightedConnectionPath),
167+ .blocklyKeyboardNavigation
168+ .blocklyActiveFocus.blocklyField
169+ > .blocklyFieldRect,
170+ .blocklyKeyboardNavigation
171+ .blocklyActiveFocus.blocklyIconGroup
172+ > .blocklyIconShape:first-child {
173+ stroke: var(--blockly-active-node-color);
174+ stroke-width: var(--blockly-selection-width);
175+ }
176+ .blocklyKeyboardNavigation
177+ .blocklyPassiveFocus:is(
178+ .blocklyPath:not(.blocklyFlyout .blocklyPath),
179+ .blocklyHighlightedConnectionPath
180+ ),
181+ .blocklyKeyboardNavigation
182+ .blocklyPassiveFocus.blocklyField
183+ > .blocklyFieldRect,
184+ .blocklyKeyboardNavigation
185+ .blocklyPassiveFocus.blocklyIconGroup
186+ > .blocklyIconShape:first-child {
187+ stroke: var(--blockly-active-node-color);
188+ stroke-dasharray: 5px 3px;
189+ stroke-width: var(--blockly-selection-width);
190+ }
191+ .blocklyKeyboardNavigation
192+ .blocklyPassiveFocus.blocklyHighlightedConnectionPath {
193+ /* The connection path is being unexpectedly hidden in core */
194+ display: unset !important;
195+ }
196+ ` ) ;
197+
198+ // Styling for focusing the toolbox and flyout.
199+ //
200+ // This should be moved to core, to core/css.ts if not to somewhere
201+ // more specific in core/toolbox/.
202+ Blockly . Css . register ( `
203+ .blocklyKeyboardNavigation .blocklyFlyout:has(.blocklyActiveFocus),
204+ .blocklyKeyboardNavigation .blocklyToolbox:has(.blocklyActiveFocus),
205+ .blocklyKeyboardNavigation
206+ .blocklyActiveFocus:is(.blocklyFlyout, .blocklyToolbox) {
207+ outline-offset: calc(var(--blockly-selection-width) * -1);
208+ outline: var(--blockly-selection-width) solid
209+ var(--blockly-active-tree-color);
210+ }
211+ .blocklyKeyboardNavigation
212+ .blocklyToolboxCategoryContainer:focus-visible {
213+ outline: none;
214+ }
215+ ` ) ;
216+
217+ // Styling for focusing the Workspace.
218+ //
219+ // This should be move to core, probably to core/css.ts.
220+ Blockly . Css . register ( `
221+ .blocklyKeyboardNavigation
222+ .blocklyWorkspace:has(.blocklyActiveFocus)
223+ .blocklyWorkspaceFocusRing,
224+ .blocklyKeyboardNavigation
225+ .blocklySvg:has(~ .blocklyBlockDragSurface .blocklyActiveFocus)
226+ .blocklyWorkspaceFocusRing,
227+ .blocklyKeyboardNavigation
228+ .blocklyWorkspace.blocklyActiveFocus
229+ .blocklyWorkspaceFocusRing {
230+ stroke: var(--blockly-active-tree-color);
231+ stroke-width: calc(var(--blockly-selection-width) * 2);
232+ }
233+ .blocklyKeyboardNavigation
234+ .blocklyWorkspace.blocklyActiveFocus
235+ .blocklyWorkspaceSelectionRing {
236+ stroke: var(--blockly-active-node-color);
237+ stroke-width: var(--blockly-selection-width);
238+ }
239+ ` ) ;
0 commit comments