Skip to content
This repository was archived by the owner on Jun 23, 2026. It is now read-only.

Commit 2eb6017

Browse files
committed
refactor(CSS): move focus-related styling to src/index.ts
1 parent 6a105c0 commit 2eb6017

2 files changed

Lines changed: 81 additions & 66 deletions

File tree

src/index.ts

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
`);

test/index.html

Lines changed: 0 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -86,72 +86,6 @@
8686
font-weight: bold;
8787
}
8888

89-
/* Blocks, connections and fields. */
90-
.blocklyKeyboardNavigation
91-
.blocklyActiveFocus:is(.blocklyPath, .blocklyHighlightedConnectionPath),
92-
.blocklyKeyboardNavigation
93-
.blocklyActiveFocus.blocklyField
94-
> .blocklyFieldRect,
95-
.blocklyKeyboardNavigation
96-
.blocklyActiveFocus.blocklyIconGroup
97-
> .blocklyIconShape:first-child {
98-
stroke: var(--blockly-active-node-color);
99-
stroke-width: var(--blockly-selection-width);
100-
}
101-
.blocklyKeyboardNavigation
102-
.blocklyPassiveFocus:is(
103-
.blocklyPath:not(.blocklyFlyout .blocklyPath),
104-
.blocklyHighlightedConnectionPath
105-
),
106-
.blocklyKeyboardNavigation
107-
.blocklyPassiveFocus.blocklyField
108-
> .blocklyFieldRect,
109-
.blocklyKeyboardNavigation
110-
.blocklyPassiveFocus.blocklyIconGroup
111-
> .blocklyIconShape:first-child {
112-
stroke: var(--blockly-active-node-color);
113-
stroke-dasharray: 5px 3px;
114-
stroke-width: var(--blockly-selection-width);
115-
}
116-
.blocklyKeyboardNavigation
117-
.blocklyPassiveFocus.blocklyHighlightedConnectionPath {
118-
/* The connection path is being unexpectedly hidden in core */
119-
display: unset !important;
120-
}
121-
122-
/* Toolbox and flyout. */
123-
.blocklyKeyboardNavigation .blocklyFlyout:has(.blocklyActiveFocus),
124-
.blocklyKeyboardNavigation .blocklyToolbox:has(.blocklyActiveFocus),
125-
.blocklyKeyboardNavigation
126-
.blocklyActiveFocus:is(.blocklyFlyout, .blocklyToolbox) {
127-
outline-offset: calc(var(--blockly-selection-width) * -1);
128-
outline: var(--blockly-selection-width) solid
129-
var(--blockly-active-tree-color);
130-
}
131-
/* Workspace */
132-
.blocklyKeyboardNavigation
133-
.blocklyWorkspace:has(.blocklyActiveFocus)
134-
.blocklyWorkspaceFocusRing,
135-
.blocklyKeyboardNavigation
136-
.blocklySvg:has(~ .blocklyBlockDragSurface .blocklyActiveFocus)
137-
.blocklyWorkspaceFocusRing,
138-
.blocklyKeyboardNavigation
139-
.blocklyWorkspace.blocklyActiveFocus
140-
.blocklyWorkspaceFocusRing {
141-
stroke: var(--blockly-active-tree-color);
142-
stroke-width: calc(var(--blockly-selection-width) * 2);
143-
}
144-
.blocklyKeyboardNavigation
145-
.blocklyWorkspace.blocklyActiveFocus
146-
.blocklyWorkspaceSelectionRing {
147-
stroke: var(--blockly-active-node-color);
148-
stroke-width: var(--blockly-selection-width);
149-
}
150-
.blocklyKeyboardNavigation
151-
.blocklyToolboxCategoryContainer:focus-visible {
152-
outline: none;
153-
}
154-
15589
.blocklyRTL .blocklyMenuItemContent .blocklyShortcutContainer {
15690
flex-direction: row-reverse;
15791
}

0 commit comments

Comments
 (0)