Перейти до вмісту
tatetUI

CopyButton

Кнопка «копіювати в буфер» зі станом успіху й резервним шляхом копіювання.

Копіювання зворотне тільки тоді, коли користувач його побачив. Кнопка міняє іконку й підпис на «Скопійовано» на дві секунди — абсолютно позиційованим шаром, без стрибка ширини (той самий патерн, що в Button під час loading).

Приклад

KCtrlKEscPq

В буфері: —

Вигляд: list

API

Props

НазваТипТиповоОпис
text*stringЩо копіювати.
labelstring""Підпис у спокійному стані. Порожньо — квадратна кнопка з іконкою.
copiedLabelstring"Скопійовано"Підпис після успішного копіювання.
variantghostoutline"ghost"Візуальна вага.
sizesmmd"sm"Висота кнопки. На мобільному кожен розмір вищий за десктопний.
ariaLabelstringundefinedДоступна назва. Обов'язкова, коли `label` не задано.

Події

НазваPayloadОпис
copied[text: string]Копіювання вдалося; в payload — скопійований текст.
failed[]Копіювання не вдалося обома шляхами.

Слоти

НазваОпис
iconІконка замість стандартної.

Коли використовувати

Поруч із командами встановлення, API-ключами, кодами запрошень, посиланнями на спільний документ.

Коли НЕ використовувати

Не всередині іншої кнопки чи посилання (вкладена інтерактивність).

Не для «копіювання всієї сторінки» — користувач має бачити, що саме падає в буфер.

Доступність

Доступна назва через ariaLabel ОБОВ'ЯЗКОВА для іконкової версії. Успіх показується і кольором, і текстом — не лише галочкою.

Деталі реалізації

navigator.clipboard недоступний на http і кидає NotAllowedError поза фокусом документа, тому другим кроком іде резервне копіювання через прихований textarea — той самий патерн, що в ComponentPreview.