--- title: Vue SDK description: Создавайте редакторы на базе OpenPencil с помощью headless-компосаблов и примитивов для Vue. --- # Vue SDK `@open-pencil/vue` существует для того, чтобы OpenPencil мог быть чем-то большим, чем самостоятельное дизайн-приложение. Цель — сделать OpenPencil набором инструментов, который можно встроить в другие продукты, внутренние инструменты и редакторы под конкретные задачи, а не только использовать в виде единого стандартного интерфейса. Приложение OpenPencil — одна из возможных компоновок этого набора. SDK — это то, с помощью чего вы создаёте другие. SDK предоставляет: - инжектированный контекст редактора - рендеринг холста на базе CanvasKit - компосаблы для выделения, команд, меню, панелей свойств и переменных - headless-структурные примитивы: `PageListRoot`, `PropertyListRoot`, `ToolbarRoot` - встроенные i18n-примитивы для меню, панелей, диалогов и пользовательских переключателей языка ## С чего начать ## Зачем нужен SDK Разным продуктам и командам нужны разные поверхности для редактирования. Иногда нужен полноценный дизайн-редактор. Иногда — встроенный холст внутри другого приложения. Иногда — внутренний рабочий инструмент, редактор шаблонов или поверхность для редактирования с ИИ-помощником, заточенная под узкую задачу. SDK — это слой, который делает всё это возможным. ## Принципы проектирования - **Headless прежде всего**: логика и структура без стилей приложения - **Компосаблы вместо обёрток**: используйте компосаблы, когда нет значимой структурной координации - **Осознанное публичное API**: стабильные экспорты из `packages/vue/src/index.ts` - **Интеграция с фреймворком**: Vue-интеграция поверх `@open-pencil/core` ## Как устроен пакет SDK состоит из двух основных слоёв: 1. **Компосаблы** — для состояния и действий редактора 2. **Примитивы** — для значимой структуры UI Если вам нужны только состояние и действия редактора — начните с компосаблов. Если вы создаёте переиспользуемые строительные блоки UI редактора — начните с примитивов. ## Разделы API - [Компоненты](/programmable/sdk/api/components/) - [Компосаблы](/programmable/sdk/api/composables/) - [Расширенные](/programmable/sdk/api/advanced/)