Перейти к содержимому

v0 by Vercel — генерация UI компонентов

v0 by Vercel — генерация UI компонентов

v0 — инструмент от Vercel, который генерирует готовые React-компоненты из текстового описания. Просто пишешь что хочешь — получаешь рабочий код с Tailwind CSS и shadcn/ui из коробки.

Звучит как много других AI-генераторов? Вот в чём разница: v0 заточен именно под UI, понимает дизайн-системы, генерирует компоненты которые реально работают в продакшне, а не требуют часового причёсывания.

Актуальная версия: v0 3.0+ (2026), с поддержкой мультифайловых проектов, деплоя и интеграции в репозиторий.

Большинство AI-инструментов генерируют общий код. v0 генерирует компоненты для конкретного стека:

  • shadcn/ui — не изобретает свои компоненты, использует стандартную библиотеку
  • Tailwind CSS — никакого инлайн-CSS и самописных классов
  • Next.js — Server Components, App Router, правильные паттерны
  • TypeScript — типизация из коробки, без any

Скопировал код → вставил в проект → работает. Без npm install кастомных библиотек, без борьбы со стилями.

  1. Открой v0.dev — логин через GitHub
  2. Напиши промпт в текстовое поле
  3. Получи 3 варианта компонента
  4. Выбери лучший, копируй код или добавляй в проект

Всё. Регистрация бесплатная, сразу начинаешь генерировать.

Карточка пользователя: аватар, имя, должность, кнопки "Подписаться" и "Написать"

v0 сгенерирует чистый React-компонент с типами и Tailwind-классами.

Чем конкретнее — тем лучше результат:

Hero-секция для SaaS-лендинга:
- Большой заголовок, подзаголовок, CTA-кнопка
- Тёмный фон (#0f0f0f), акцент фиолетовый
- Справа — скриншот продукта в рамке браузера
- Адаптивная вёрстка: мобайл - блоки стопкой

v0 умеет принимать скриншоты и URL:

Сделай похожий дашборд как на этом скриншоте [прикрепи изображение],
но с тёмной темой и добавь раздел аналитики

Генерация — это только начало. Дальше идёт диалог:

После первой генерации пиши в чат рядом:

- Сделай кнопку больше
- Добавь иконку Bell рядом с заголовком
- Убери тень у карточки
- Замени серый цвет на slate-800

v0 обновляет компонент прямо в превью — видишь изменения мгновенно.

Первая генерация даёт 3 варианта. Переключайся между ними, бери лучший за основу, дорабатывай через чат.

Есть встроенный редактор кода. Меняй напрямую — превью обновляется в реальном времени. Комбинируй: часть через промпт, часть вручную.

Самый простой. Нажми кнопку “Copy code”, вставь в нужный файл. Убедись что shadcn/ui установлен:

Окно терминала
npx shadcn@latest init

v0 генерирует команду для прямой установки:

Окно терминала
npx shadcn@latest add "https://v0.dev/chat/b/xxxx"

Компонент появится в components/ui/ с нужными зависимостями.

Кнопка “Open in…” — выбери редактор, v0 создаст воркспейс с файлом компонента прямо в IDE.

Создай полноценный проект в v0, нажми “Deploy” — появится живой URL за минуты. Подключи GitHub-репо чтобы изменения пушились в ветку.

Практика: делаем секцию “Features” для SaaS-продукта.

Шаг 1 — промпт:

Секция "Возможности" для AI-продукта:
- Заголовок "Что умеет наш продукт"
- 6 карточек в сетке 3x2: иконка + заголовок + описание
- Иконки из lucide-react
- Тёмный фон, карточки с subtle border
- Hover-эффект на карточках

Шаг 2 — уточнения через чат:

- Добавь градиентный фон на иконки (фиолетово-синий)
- Между карточками сделай больше отступ
- На мобиле сделай 1 колонку вместо 3

Шаг 3 — копируй и вставляй:

components/features-section.tsx
import { Zap, Shield, BarChart3, Globe, Lock, Cpu } from "lucide-react"
import { Card, CardContent } from "@/components/ui/card"
const features = [
{ icon: Zap, title: "Молниеносно", description: "Ответ за секунды, не минуты" },
{ icon: Shield, title: "Безопасно", description: "Данные не покидают инфраструктуру" },
{ icon: BarChart3, title: "Аналитика", description: "Видишь всё что происходит" },
{ icon: Globe, title: "Глобально", description: "Работает из любой точки мира" },
{ icon: Lock, title: "Приватность", description: "Zero-log политика" },
{ icon: Cpu, title: "Мощь", description: "GPT-5, Claude, Gemini под капотом" },
]
export function FeaturesSection() {
return (
<section className="py-24 bg-black">
<div className="container mx-auto px-4">
<h2 className="text-4xl font-bold text-center text-white mb-16">
Что умеет наш продукт
</h2>
<div className="grid grid-cols-1 md:grid-cols-3 gap-8">
{features.map((feature) => (
<Card
key={feature.title}
className="bg-zinc-900 border-zinc-800 hover:border-zinc-600 transition-colors"
>
<CardContent className="p-6">
<div className="w-12 h-12 rounded-lg bg-gradient-to-br from-violet-600 to-blue-600 flex items-center justify-center mb-4">
<feature.icon className="w-6 h-6 text-white" />
</div>
<h3 className="text-lg font-semibold text-white mb-2">{feature.title}</h3>
<p className="text-zinc-400">{feature.description}</p>
</CardContent>
</Card>
))}
</div>
</div>
</section>
)
}

Шаг 4 — подключаешь в layout:

app/page.tsx
import { FeaturesSection } from "@/components/features-section"
export default function Home() {
return (
<main>
{/* ... */}
<FeaturesSection />
</main>
)
}
ПланЦенаГенераций/месЧто особенного
HobbyБесплатно200Базовая генерация
Pro$20/месБезлимитПриватные чаты, кастомные шрифты
Team$40/user/месБезлимитОбщий воркспейс, хистори команды

Реальное ограничение бесплатного плана: 200 генераций звучит много, но каждое уточнение в чате — это генерация. За активный день набегает быстро. Pro стоит того если используешь v0 регулярно.

v0 не замена разработчику. Он генерирует UI, но:

  • Бизнес-логику пишешь сам
  • API-интеграции — вручную
  • Сложные state-машины — не его конёк
  • Реальные данные вместо плейсхолдеров — твоя задача

Стек фиксированный. React + Tailwind + shadcn/ui. Хочешь Vue, Svelte, кастомный CSS — не тот инструмент. Хотя есть экспериментальная поддержка других фреймворков.

Качество зависит от промпта. Размытый промпт → случайный результат. Чем детальнее описание — тем лучше компонент.

Начинай с простого. Один компонент → итерации → сложность. Не описывай весь лендинг одним промптом.

Давай контекст стиля. “Минималистичный”, “тёмный cyberpunk”, “корпоративный синий” — это работает.

Используй ссылки на Figma/скриншоты. v0 понимает изображения, это быстрее чем объяснять словами.

Проверяй мобильную версию. В превью есть переключатель — смотри как компонент выглядит на мобиле сразу.

Комбинируй с Cursor. Сгенерировал базу в v0, скопировал в Cursor, доработал через агент. Связка убийственная.

  • v0.dev — сам инструмент
  • shadcn/ui — библиотека компонентов которую использует v0
  • v0.dev/docs — документация и примеры