# Link
This is an interactive component that directs users to a specified URL. It even supports custom protocols.
```tsx
import React from 'react';
import {
render,
Link,
} from '@shopify/ui-extensions-react/admin';
render('Playground', () => );
function App() {
return (
Link to app path
);
}
```
```js
import {
extension,
Link,
} from '@shopify/ui-extensions/admin';
export default extension(
'Playground',
(root) => {
const link = root.createComponent(
Link,
{href: 'app://baz'},
'Link to app path',
);
root.appendChild(link);
},
);
```
## LinkProps
### LinkProps
### accessibilityLabel
value: `string`
A label that describes the purpose or contents of the element. When set, it will be announced to users using assistive technologies and will provide them with more context. When set, any children or `label` supplied will not be announced to screen readers.
### href
value: `string`
The URL to link to. If set, it will navigate to the location specified by `href` after executing the `onClick` callback.
### id
value: `string`
A unique identifier for the link.
### lang
value: `string`
Alias for `language`
### language
value: `string`
Indicate the text language. Useful when the text is in a different language than the rest of the page. It will allow assistive technologies such as screen readers to invoke the correct pronunciation. [Reference of values](https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry) ("subtag" label)
### onClick
value: `() => void`
Callback when a link is pressed. If `href` is set, it will execute the callback and then navigate to the location specified by `href`.
### onPress
value: `() => void`
Alias for `onClick` Callback when a link is pressed. If `href` is set, it will execute the callback and then navigate to the location specified by `href`.
### target
value: `'_blank' | '_self'`
Specifies where to display the linked URL
### to
value: `string`
Alias for `href` If set, it will navigate to the location specified by `to` after executing the `onClick` callback.
### tone
value: `'default' | 'inherit' | 'critical'`
Sets the link color.
- `inherit` will take the color value from its parent, giving the link a monochrome appearance. In some cases, its important to pair this property with another stylistic treatment, like an underline, to differentiate the link from a normal text.
## Related
- [Button](https://shopify.dev/docs/api/admin-extensions/components/actions/button)
## Examples
This is an interactive component that directs users to a specified URL. It even supports custom protocols.
Link to an external URL
```typescript
import React from 'react';
import {
render,
Link,
} from '@shopify/ui-extensions-react/admin';
render('Playground', () => );
function App() {
return (
Sustainability fund
);
}
```
```typescript
import {
extension,
Link,
} from '@shopify/ui-extensions/admin';
export default extension(
'Playground',
(root) => {
const link = root.createComponent(
Link,
{href: 'https://www.shopify.ca/climate/sustainability-fund'},
'Sustainability fund',
);
root.appendChild(link);
},
);
```
Link to a relative URL
```typescript
import React from 'react';
import {
render,
Link,
} from '@shopify/ui-extensions-react/admin';
render('Playground', () => );
function App() {
return (
Link relative to current path
);
}
```
```typescript
import {
extension,
Link,
} from '@shopify/ui-extensions/admin';
export default extension(
'Playground',
(root) => {
const link = root.createComponent(
Link,
{href: '/baz'},
'Link relative to current path',
);
root.appendChild(link);
},
);
```
Link to a Shopify admin page
```typescript
import React from 'react';
import {
render,
Link,
} from '@shopify/ui-extensions-react/admin';
render('Playground', () => );
function App() {
return (
Shop's orders
);
}
```
```typescript
import {
extension,
Link,
} from '@shopify/ui-extensions/admin';
export default extension(
'Playground',
(root) => {
const link = root.createComponent(
Link,
{href: 'shopify://admin/orders'},
"Shop's orders",
);
root.appendChild(link);
},
);
```