# ScreenToPanel(IPanel, Vector2)

> Transforms a screen absolute position to its equivalent local coordinate on given panel.

## Definition

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

```csharp
public static Vector2 ScreenToPanel(IPanel panel, Vector2 screenPosition)
```

### Parameters

**** (\[IPanel]\(/engine/6000.6/script-reference/unityengine/uielements/ipanel)): The local coordinates reference panel.**** (\[Vector2]\(/engine/6000.6/script-reference/unityengine/vector2)): The screen position to transform.

### Returns

| Type                                                              | Description                                                                       |
| ----------------------------------------------------------------- | --------------------------------------------------------------------------------- |
| [Vector2](/engine/6000.6/script-reference/unityengine/vector2.md) | A position in panel coordinates that corresponds to the provided screen position. |

### Remarks

The following example converts the mouse position from screen coordinates to UI Toolkit panel coordinates:

### Examples

```csharp
using UnityEngine;
using UnityEngine.UIElements;

public class ScreenToPanelConverter : MonoBehaviour
{
    private UIDocument uiDocument;

    void Awake()
    {
        uiDocument = GetComponent<UIDocument>();
    }

    void Update()
    {
        if (uiDocument == null || uiDocument.rootVisualElement == null)
        {
            return;
        }

        // 1. Get the mouse position in screen pixel coordinates (origin is bottom-left).
        Vector2 screenPosition = Input.mousePosition;

        // 2. Invert the Y-axis to match UI Toolkit's top-left origin.
        screenPosition.y = Screen.height - screenPosition.y;

        // 3. Use the panel's utility function to convert from screen space to panel space.
        // This correctly handles any scaling applied by the panel (for example, Scale with Screen Size).
        IPanel panel = uiDocument.rootVisualElement.panel;
        Vector2 panelPosition = RuntimePanelUtils.ScreenToPanel(panel, screenPosition);

        Debug.Log($"Screen Position: {Input.mousePosition}, Panel Position: {panelPosition}");
    }
}
```
