Аватары и иконки

Обрезка фото

Загруженную фотографию кадрирует человек, а не середина картинки: снимок тянется в кружке и масштабируется ползунком.

React + Tailwind, совместим с shadcn: нажмите «Копировать для ИИ» — агент в Cursor или Claude Code поставит его через shadcn CLI.

Что можно поменять

  • подписи label, saveLabel, resetLabel и пояснение hint
  • размер выходного кадра через output
  • обработчик onCrop — загрузка на сервер или предпросмотр

Ссылка для ИИ-агента: в ней превью, код и инструкция.

Превью

1440pxТема страницы
Обрезка фото — Загруженную фотографию кадрирует человек, а не середина картинки: снимок тянется в кружке и масштабируется ползунком.

Использовать с ИИ

  1. 1. Скопируйте ссылку.
  2. 2. Напишите агенту своими словами и вставьте её в предложение.
  3. 3. Агент откроет ссылку и поставит компонент из реестра.
AI
1Выбрали здесь

добавь это на главную первым экраном:

https://vibeui.ru/c/avatar-036?theme=dark

2Вставили в чат агента
3Получили в проекте

Не знаете, куда вставить? Пошаговый гайд

Показать полную инструкцию

То, что лежит по ссылке в развёрнутом виде. Нужна, если агент не может открыть ссылку — тогда вставьте этот текст целиком.

Загружается…

Как использовать

<Avatar036 onCrop={(blob) => upload(blob)} output={512} />

Пример вызова. Сам компонент агент ставит из реестра по ссылке «Копировать для ИИ».

Настройки

Кнопка выбора
label · по умолчанию: Выбрать фото
Пояснение
hint · по умолчанию: Перетащите фотографию в кружке и подберите масштаб
Сторона кадра
output · по умолчанию: 512
Цвет текста
textColor · по умолчанию: цвет темы

Частые вопросы

Как установить компонент «Обрезка фото» через Cursor или Claude Code?
Нажмите «Копировать для ИИ» на этой странице и вставьте текст в чат агента. В инструкции команда установки через shadcn CLI, зависимости и что сохранить — агент поставит именно этот компонент, а не перерисует похожий.
Какие зависимости у компонента «Обрезка фото»?
Никаких npm-пакетов, кроме React и Tailwind CSS.
Что можно поменять в компоненте «Обрезка фото»?
Можно менять: подписи label, saveLabel, resetLabel и пояснение hint; размер выходного кадра через output; обработчик onCrop — загрузка на сервер или предпросмотр. Сохранить как есть: ручной кадр вместо автоматической обрезки по центру: центр картинки режет головы; перетаскивание на pointer-событиях: один обработчик покрывает мышь, палец и перо; стрелки клавиатуры как второй способ сдвинуть кадр — на клавиатуре перетаскивания нет.
Компонент «Обрезка фото» бесплатный?
Да. Превью открыто без регистрации, а с бесплатным аккаунтом можно скопировать до 20 компонентов в месяц.

Для разработчика

npx shadcn@latest add https://vibeui.ru/r/pro/avatar-036.json

Команде нужна подписанная ссылка: войдите и откройте «Исходник компонента» ниже — там рабочая ссылка на 30 минут. Все способы установки

Технические заметки

Компонент самодостаточен: один файл, без зависимостей, собственная палитра в локальных переменных --vibeui-avatar-036-*. Файл читается через URL.createObjectURL, кадр задаётся CSS-переменными --vibeui-avatar-036-x/-y/-zoom на transform картинки, перетаскивание идёт на pointer-событиях с setPointerCapture, а стрелки клавиатуры двигают снимок шагом в восемь пикселей. Вырезание делает canvas: то же преобразование в масштабе выходного кадра, результат уходит в onCrop как image/webp Blob. Круглая маска — только вид: в файл кружок не запекается, иначе прозрачные углы лягут на чужой фон. Тема приходит из color-scheme через light-dark(), классовую тёмную тему компонент включает себе сам.

Теги

  • avatar
  • upload
  • crop
  • profile
Исходник компонента

Тот же файл, который поставит агент. Нужен, если вы предпочитаете скопировать код руками.

Загружается…