Appearance
Focus ring
Focus rings are accessible outlines for components to show keyboard focus.
Focus rings follow the same heuristics as :focus-visible to determine when they are visible.

Usage
Focus rings display on keyboard navigation. They may be attached to a control in one of three ways.

Attached to the parent element
html<button style="position: relative"> <md-focus-ring style="--md-focus-ring-shape: 8px"></md-focus-ring> </button>Attached to a referenced element
html<div style="position: relative"> <md-focus-ring for="control" style="--md-focus-ring-shape: 8px"></md-focus-ring> <input id="control"> </div>Attached imperatively
html<div style="position: relative"> <md-focus-ring id="ring" style="--md-focus-ring-shape: 8px"></md-focus-ring> <button id="ring-control"></button> </div> <script> const focusRing = document.querySelector('#ring'); const control = document.querySelector('#ring-control'); focusRing.attach(control); </script>
Note: focus rings must be placed within a
position: relativecontainer.
Inward
Focus rings can be changed to animate inwards by adding an inward attribute. This is useful for components like list items.

html
<button style="position: relative">
<md-focus-ring inward style="--md-focus-ring-shape: 8px"></md-focus-ring>
</button>Animation
The focus ring animation may be customized or disabled using CSS custom properties.

html
<style>
md-focus-ring {
--md-focus-ring-duration: 0s; /* disabled animation */
}
</style>Accessibility
Focus rings are visual components and do not have assistive technology requirements.
Theming
Focus rings supports Material theming and can be customized in terms of color and shape.
Tokens
| Token | Default value |
|---|---|
--md-focus-ring-color | --md-sys-color-secondary |
--md-focus-ring-shape | --md-sys-shape-corner-full |
--md-focus-ring-width | 3px |
Example

html
<style>
md-focus-ring {
--md-focus-ring-shape: 0px;
--md-focus-ring-width: 2px;
--md-focus-ring-active-width: 4px;
--md-sys-color-secondary: #4A6363;
}
</style>
<button>
<md-focus-ring></md-focus-ring>
</button>API
MdFocusRing <md-focus-ring>
Properties
| Property | Attribute | Type | Default | Description |
|---|---|---|---|---|
visible | visible | boolean | false | Makes the focus ring visible. |
inward | inward | boolean | false | Makes the focus ring animate inwards instead of outwards. |
htmlFor | string | undefined | ||
control | HTMLElement | undefined |
Methods
| Method | Parameters | Returns | Description |
|---|---|---|---|
attach | control | void | |
detach | None | void |
Events
| Event | Type | Bubbles | Composed | Description |
|---|---|---|---|---|
visibility-changed | Event | No | No | Fired whenever visible changes. |