---
title: Visit target
description: Define a standalone control that opens another Backlit view.
---

A visit target defines a standalone navigation control. Use it in an action
bar, a table row action, or a lookup create control.

It uses `kind: "visit"` in the protocol. A link attachment uses `kind: "link"`.

## API

```ts
visitTo(
  view: Linkable,
  args?: unknown[] | ((row) => unknown[]),
  presentation?:
    | { text?: string; icon?: string; tooltip?: string; mode?: TargetMode; skip?: boolean; filters?: GetFiltersFor<View> }
    | ((row) => { text?: string; icon?: string; tooltip?: string; skip?: boolean; filters?: GetFiltersFor<View> })
): VisitTarget
```

`filters` sets the state the target view opens with, as on `linkTo`. Either
form of the presentation can carry it.

```ts
visitTo(subscriberList, [], { text: 'Bounced', filters: { status: 'bounced' } })
```

Pass the view definition directly. `visitTo` does not accept a thunk because
it is used inside a view resolver. Use a thunk with `linkTo` when field
declarations create a module cycle.

`args` must match the target view parameters in length and order. Missing args
on an active target are an authoring error.

Return `skip: true` from the presentation callback to remove the control for
one row. Backlit checks `skip` before it resolves args. `skip` does not travel
in the protocol.

Use `linkTo` instead when a field value or a table row already supplies the
content to make clickable.

## Complete controls

<BacklitExample path="targets/controls" view="list" />
