# @cloud-ru/ds-link > Семантическая ссылка дизайн-системы — 10 appearance, полиморфный рендер (a / button / кастомный компонент), inline-режим в тексте и интеграция с TruncateString. Docs: /snack-v2/components/link/ ## Установка ```sh pnpm add @cloud-ru/ds-link ``` ## Когда использовать - Для переходов между страницами и разделами. - Для ссылок внутри текста (`insideText`) — компонент не ломает перенос строк. - Для действий, которые семантически являются навигацией, но физически — кнопкой (`as='button'`). Когда **не** нужен: для кнопки-действия (сохранить, удалить) используйте `@cloud-ru/ds-button` с `view='function'`, а не `Link as='button'`. ## API ### Link | Prop | Type | Default | Required | Description | |------|------|---------|----------|-------------| | `appearance` | `blue \| green \| invertNeutral \| neutral \| orange \| pink \| primary \| red \| violet \| yellow` | `primary` | no | Семантический цвет | | `as` | `ComponentType \| ElementType` | `'a'` | no | Полиморфный компонент. Оформить переданный компонент или html элемент в стиль ссылки. Список атрибутов, которые переданный компонент должен принять:
- `className`
- `data-size`
- `data-text-mode`
- `data-appearance`
- `data-inside-text` | | `data-test-id` | `string` | — | no | | | `href` | `string` | — | yes | | | `innerRef` | `any` | — | no | Ref на реальный DOM-элемент/инстанс, который рендерится через `as`. Используем явный проп, чтобы не зависеть от `forwardRef` и не тащить type-assertions на экспорт. | | `insideText` | `boolean` | `false` | no | Находится ли ссылка внутри текста (и можно ли её переносить) | | `label` | `string` | — | no | Текст ссылки | | `onClick` | `((e: MouseEvent) => void) \| undefined` | — | no | | | `roleAppearance` | `onAccent \| regular` | `regular` | no | Роль, в которой применяется `appearance`: обычный текст или текст на акцентной подложке | | `target` | `string \| undefined` | — | no | | | `truncateVariant` | `end \| middle` | — | no | Вариант обрезания строки:
- `end` - с конца;
- `middle` - посередине | | `underlined` | `boolean` | `false` | no | Наличие нижнего подчеркивания | ## Примеры ### Basic ```tsx import { Link } from '@cloud-ru/ds-link'; export function Basic() { return ; } ``` ### External ```tsx import { Link } from '@cloud-ru/ds-link'; export function External() { return ; } ``` ### InsideText ```tsx import { Link } from '@cloud-ru/ds-link'; export function InsideText() { return (

Подробнее читайте , а также ознакомьтесь с{' '} .

); } ``` ### Polymorphic ```tsx import { Link } from '@cloud-ru/ds-link'; export function Polymorphic() { return alert('clicked')} />; } ```