Apply Remotion Studio's pointerless interaction styling to clickable controls. Use when adding or revising Studio buttons or links that should use the default cursor, brighten on hover, and show focus decoration only for keyboard navigation.
76
93%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Use the established Studio interaction convention for clickable controls:
cursor: 'default'; do not use cursor: 'pointer'.HOVERABLE_CLASS_NAME and
hoverableStyle() from packages/studio/src/helpers/hoverable.ts. Do not add
React hover state for color or background changes.TRANSPARENT for both idleBackground and hoverBackground.LIGHT_TEXT (#A6A7A9) as the idle color and WHITE (white) as the
hover color. Icons and nested text must follow the same state; inspect the
element that paints the pixels if the Studio CSS reset blocks inheritance.Remove the default outline and pointer-focus shadow, but preserve a visible
keyboard focus indicator. Add FOCUS_VISIBLE_ONLY_CLASS_NAME from
packages/studio/src/helpers/hoverable.ts to the control alongside
HOVERABLE_CLASS_NAME. The shared class implements this pattern:
.__remotion-focus-visible-only:focus {
outline: none;
box-shadow: none;
}
.__remotion-focus-visible-only:focus-visible {
box-shadow: ${FOCUS_BOX_SHADOW};
}Never remove the :focus-visible indicator. Keep hidden actions out of the tab
order until they are discoverable.
In a running Studio, check the control's computed styles in all relevant states:
default;rgb(166, 167, 169);rgb(255, 255, 255);Tab focus: the standard FOCUS_BOX_SHADOW is visible.For Studio code changes, run:
bunx turbo run make --filter='@remotion/studio'
bunx turbo run lint test --filter='@remotion/studio'6f4e0d5
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.