CSS outline

The CSS outline property is a shorthand property to specify all outline properties.

Unlike an element's border (e.g. set using border or its associated properties), an element's outline does not take up extra space and it can be non-rectangular.

The outline is always on top of a box, and it does not influence the position or size of the box, or of any other boxes. Therefore, displaying or suppressing outlines does not cause reflow or overflow.

User agents typically render an outline on elements in the :focus state.

Syntax

These values are explained below.

Possible Values

outline-color
Specifies the value for the outline-color property. This can be any valid color value, or the invert keyword.
outline-style
Specifies the value for the outline-style property. This can be any of the above values.
outline-width
Specifies the value for the outline-width property. This can be a non-negative length value, or any of the thin, medium, and thick keywords.

In addition, all CSS properties also accept the following CSS-wide keyword values as the sole component of their property value:

initial
Represents the value specified as the property's initial value.
inherit
Represents the computed value of the property on the element's parent.
unset
This value acts as either inherit or initial, depending on whether the property is inherited or not. In other words, it sets all properties to their parent value if they are inheritable or to their initial value if not inheritable.

General Information

Initial Value
Depends on the value of the individual properties (i.e. outline-width, outline-style, and outline-color). The initial value for these properties is as follows:
<outline-width>
medium
<outline-style>
none
<outline-color>
invert
Applies To
All elements
Inherited?
No
Media
Visual
Animatable
Yes (see example)

Example Code

Accessibility Considerations

The CSS spec warns against removing the outline on elements in the :focus state:

Keyboard users, in particular people with disabilities who may not be able to interact with the page in any other fashion, depend on the outline being visible on elements in the :focus state, thus authors must not make the outline invisible on such elements without making sure an alternative highlighting mechanism is provided.

Official Specifications