---
title: Shell de Editor Personalizado
description: Construye tu propio shell de editor con provideEditor, CanvasRoot, menús, paneles y barras de herramientas.
---
# Shell de Editor Personalizado
Una app Vue típica de OpenPencil tiene tres capas:
1. `@open-pencil/core` crea el editor
2. `@open-pencil/vue` lo adapta en composables de Vue y primitivos headless
3. tu app renderiza el shell, los estilos y la UX del producto
## Por qué esto importa
La app integrada de OpenPencil es solo un shell posible.
Puedes construir uno muy diferente para un flujo de trabajo enfocado: un editor integrado dentro de otro producto, una herramienta interna de recursos, un editor de plantillas, una interfaz de anotaciones, o una superficie de edición asistida por IA con controles personalizados.
Esa es la razón principal por la que existe el SDK.
## Composición recomendada
Un shell práctico a menudo tiene esta estructura:
- proveedor en lo alto con `provideEditor()`
- canvas en el centro
- navegación de páginas/capas en un lateral
- propiedades en el otro lateral
- menús y barras de herramientas impulsados por composables
## Ejemplo
```vue
```
## Por qué esta división funciona
- el SDK se encarga de la integración del editor y la lógica headless reutilizable
- tu app se encarga del layout, los estilos y las acciones específicas del producto
- los composables pueden impulsar menús y paneles sin componentes wrapper adicionales
## APIs relacionadas
- [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)