# IFocusRing

> Interface for classes implementing focus rings.

## Definition

* **Type:** Interface
* **Namespace:** [UnityEngine.UIElements](/engine/6000.5/script-reference/unityengine/uielements.md)
* **Assembly:** UnityEngine.UIElementsModule

```csharp
public interface IFocusRing
```

## Remarks

When the [EventDispatcher](/engine/6000.5/script-reference/unityengine/uielements/eventdispatcher.md) processes navigation and pointer events, it automatically uses this interface to generate corresponding Focus events if applicable.

Each Panel's [FocusController](/engine/6000.5/script-reference/unityengine/uielements/focuscontroller.md) has a focus ring implementation automatically assigned to it. The type of that focus ring depends on the associated Panel's [ContextType](/engine/6000.5/script-reference/unityengine/uielements/contexttype.md).

For Editor-type Panels, only [NavigationMoveEvent](/engine/6000.5/script-reference/unityengine/uielements/navigationmoveevent.md) events in the following directions are considered:

* [NavigationMoveEvent.Direction.Next](/engine/6000.5/script-reference/unityengine/uielements/navigationmoveevent/direction/next.md),

* [NavigationMoveEvent.Direction.Previous](/engine/6000.5/script-reference/unityengine/uielements/navigationmoveevent/direction/previous.md).

For Player-type Panels, the following directions are also considered:

* [NavigationMoveEvent.Direction.Left](/engine/6000.5/script-reference/unityengine/uielements/navigationmoveevent/direction/left.md),

* [NavigationMoveEvent.Direction.Right](/engine/6000.5/script-reference/unityengine/uielements/navigationmoveevent/direction/right.md),

* [NavigationMoveEvent.Direction.Up](/engine/6000.5/script-reference/unityengine/uielements/navigationmoveevent/direction/up.md),

* [NavigationMoveEvent.Direction.Down](/engine/6000.5/script-reference/unityengine/uielements/navigationmoveevent/direction/down.md).

See also How can I change what element is focused next for an example of a workaround solution if the assigned focus ring navigation rules don't correspond to your needs.

Additional Resources: [FocusController](/engine/6000.5/script-reference/unityengine/uielements/focuscontroller.md)

## Methods

| Method                                                                                                                  | Description                                                |
| ----------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- |
| [GetFocusChangeDirection](/engine/6000.5/script-reference/unityengine/uielements/ifocusring/getfocuschangedirection.md) | Get the direction of the focus change for the given event. |
| [GetNextFocusable](/engine/6000.5/script-reference/unityengine/uielements/ifocusring/getnextfocusable.md)               | Get the next element in the given direction.               |
