---
title: Собственный интерфейс редактора
description: Создание собственного интерфейса редактора с provideEditor, CanvasRoot, меню, панелями и панелями инструментов.
---
# Собственный интерфейс редактора
Типичное приложение OpenPencil на Vue состоит из трёх уровней:
1. `@open-pencil/core` создаёт редактор;
2. `@open-pencil/vue` связывает его с composables и компонентами Vue без встроенного оформления;
3. приложение определяет компоновку, оформление и характерное для продукта поведение.
## Зачем разделять эти уровни
Готовое приложение OpenPencil — лишь один из возможных интерфейсов.
На основе SDK можно создать встроенный редактор для другого продукта, внутренний инструмент для работы с ресурсами, редактор шаблонов, интерфейс аннотирования или специализированный редактор с поддержкой ИИ.
## Рекомендуемая структура
Удобно строить интерфейс следующим образом:
- вызвать `provideEditor()` в верхней части дерева компонентов;
- разместить холст в центре;
- вывести страницы и слои на одной боковой панели;
- вывести свойства на другой боковой панели;
- управлять меню и панелями инструментов с помощью composables.
## Пример
```vue
```
## Обязанности SDK и приложения
- SDK отвечает за интеграцию с редактором и переиспользуемую логику без привязки к оформлению;
- приложение отвечает за компоновку, оформление и действия, характерные для конкретного продукта;
- composables позволяют подключать меню и панели без лишних компонентов-обёрток.
## См. также
- [provideEditor](../api/composables/provide-editor)
- [useCanvas](../api/composables/use-canvas)
- [ToolbarRoot](../api/components/toolbar-root)
- [PageListRoot](../api/components/page-list-root)
- [LayerTreeRoot](../api/components/layer-tree-root)