Skip to content

Commit 478cf40

Browse files
chore: comment CSS, remove readded duplicate selector
1 parent a3c9562 commit 478cf40

File tree

1 file changed

+28
-5
lines changed

1 file changed

+28
-5
lines changed

src/index.ts

Lines changed: 28 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -164,19 +164,28 @@ export class KeyboardNavigation {
164164
//
165165
// This should be moved to core, being integrated into the
166166
// existing styling of renderers in core/renderers/*/constants.ts.
167+
//
168+
// Many selectors include .blocklyKeyboardNavigation to ensure keyboard
169+
// nav is on (via the heuristic). This class is added/removed from body.
167170
Blockly.Css.register(`
168-
/* Blocks, connections and fields. */
171+
/* Active focus cases: */
172+
/* Blocks with active focus. */
169173
.blocklyKeyboardNavigation
170174
.blocklyActiveFocus:is(.blocklyPath, .blocklyHighlightedConnectionPath),
175+
/* Fields with active focus, */
171176
.blocklyKeyboardNavigation
172177
.blocklyActiveFocus.blocklyField
173178
> .blocklyFieldRect,
179+
/* Icons with active focus. */
174180
.blocklyKeyboardNavigation
175181
.blocklyActiveFocus.blocklyIconGroup
176182
> .blocklyIconShape:first-child {
177183
stroke: var(--blockly-active-node-color);
178184
stroke-width: var(--blockly-selection-width);
179185
}
186+
187+
/* Passive focus cases: */
188+
/* Blocks with passive focus except when widget/dropdown div in use. */
180189
.blocklyKeyboardNavigation:not(
181190
:has(
182191
.blocklyDropDownDiv > .blocklyDropDownContent > *,
@@ -187,6 +196,7 @@ export class KeyboardNavigation {
187196
.blocklyPath:not(.blocklyFlyout .blocklyPath),
188197
.blocklyHighlightedConnectionPath
189198
),
199+
/* Fields with passive focus except when widget/dropdown div in use. */
190200
.blocklyKeyboardNavigation:not(
191201
:has(
192202
.blocklyDropDownDiv > .blocklyDropDownContent > *,
@@ -195,6 +205,7 @@ export class KeyboardNavigation {
195205
)
196206
.blocklyPassiveFocus.blocklyField
197207
> .blocklyFieldRect,
208+
/* Icons with passive focus except when widget/dropdown div in use. */
198209
.blocklyKeyboardNavigation:not(
199210
:has(
200211
.blocklyDropDownDiv > .blocklyDropDownContent > *,
@@ -207,9 +218,10 @@ export class KeyboardNavigation {
207218
stroke-dasharray: 5px 3px;
208219
stroke-width: var(--blockly-selection-width);
209220
}
221+
222+
/* Workaround for unexpectedly hidden connection path due to core style. */
210223
.blocklyKeyboardNavigation
211224
.blocklyPassiveFocus.blocklyHighlightedConnectionPath {
212-
/* The connection path is being unexpectedly hidden in core */
213225
display: unset !important;
214226
}
215227
`);
@@ -219,14 +231,20 @@ export class KeyboardNavigation {
219231
// This should be moved to core, to core/css.ts if not to somewhere
220232
// more specific in core/toolbox/.
221233
Blockly.Css.register(`
234+
/* Different ways for toolbox/flyout to be the active tree: */
235+
/* Active focus in the flyout. */
222236
.blocklyKeyboardNavigation .blocklyFlyout:has(.blocklyActiveFocus),
237+
/* Active focus in the toolbox. */
223238
.blocklyKeyboardNavigation .blocklyToolbox:has(.blocklyActiveFocus),
239+
/* Active focus on the toolbox/flyout. */
224240
.blocklyKeyboardNavigation
225241
.blocklyActiveFocus:is(.blocklyFlyout, .blocklyToolbox) {
226242
outline-offset: calc(var(--blockly-selection-width) * -1);
227243
outline: var(--blockly-selection-width) solid
228244
var(--blockly-active-tree-color);
229245
}
246+
247+
/* Suppress default outline. */
230248
.blocklyKeyboardNavigation
231249
.blocklyToolboxCategoryContainer:focus-visible {
232250
outline: none;
@@ -237,29 +255,34 @@ export class KeyboardNavigation {
237255
//
238256
// This should be move to core, probably to core/css.ts.
239257
Blockly.Css.register(`
258+
/* Different ways for the workspace to be the active tree: */
259+
/* Active focus within workspace. */
240260
.blocklyKeyboardNavigation
241261
.blocklyWorkspace:has(.blocklyActiveFocus)
242262
.blocklyWorkspaceFocusRing,
263+
/* Active focus within drag layer. */
243264
.blocklyKeyboardNavigation
244265
.blocklySvg:has(~ .blocklyBlockDragSurface .blocklyActiveFocus)
245266
.blocklyWorkspaceFocusRing,
267+
/* Active focus on workspace. */
246268
.blocklyKeyboardNavigation
247269
.blocklyWorkspace.blocklyActiveFocus
248270
.blocklyWorkspaceFocusRing,
249-
.blocklyKeyboardNavigation
250-
.blocklyWorkspace.blocklyActiveFocus
251-
.blocklyWorkspaceFocusRing,
271+
/* Focus in dropdown div considered to be in workspace. */
252272
.blocklyKeyboardNavigation:has(
253273
.blocklyDropDownDiv > .blocklyDropDownContent > *
254274
):focus-within
255275
.blocklyWorkspace
256276
.blocklyWorkspaceFocusRing,
277+
/* Focus in widget div considered to be in workspace. */
257278
.blocklyKeyboardNavigation:has(.blocklyWidgetDiv > *):focus-within
258279
.blocklyWorkspace
259280
.blocklyWorkspaceFocusRing {
260281
stroke: var(--blockly-active-tree-color);
261282
stroke-width: calc(var(--blockly-selection-width) * 2);
262283
}
284+
285+
/* The workspace itself is the active node. */
263286
.blocklyKeyboardNavigation
264287
.blocklyWorkspace.blocklyActiveFocus
265288
.blocklyWorkspaceSelectionRing {

0 commit comments

Comments
 (0)