umbraco-property-editor-ui

Implement Lit-based Umbraco property editor UI elements and register them in the package manifest.

1|Updated May 21, 2026
One-click install
npx skills add https://github.com/1k-off/umbraco-observability-playground --skill umbraco-property-editor-ui-1k-off
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: umbraco-property-editor-ui
Source: https://github.com/1k-off/umbraco-observability-playground/tree/main/.agents/skills/umbraco-property-editor-ui
Command: npx skills add https://github.com/1k-off/umbraco-observability-playground --skill umbraco-property-editor-ui-1k-off

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Implementing a custom Umbraco backoffice property editor UI requires correct wiring between the client-side TypeScript element and the server-side schema alias, and many teams struggle to follow the right manifest and configuration patterns to avoid missing-data or save failures.

Core Features & Use Cases

  • Client UI implementation: Build a property editor UI element with Lit and dispatch the correct Umbraco change events so values propagate properly in the backoffice.
  • Manifest-driven registration: Define a propertyEditorUi extension (alias, element path, element tag name, metadata, and schema alias) so Umbraco can render your editor in Data Types and editor screens.
  • Configurable behavior: Read editor configuration from the manifest (settings like placeholders, max lengths, and other UI parameters) to reuse the same UI element across multiple data types.
  • Schema-alias correctness: Select safe built-in schema aliases (e.g., Umbraco.Plain.String, Umbraco.Plain.Json) to ensure the stored value type round-trips correctly.
  • Troubleshooting guidance: Resolve common issues like 404 schema alias problems and incorrect value persistence with Umbraco.Plain.Json.

Quick Start

Use the docs linked in the skill to register your propertyEditorUi in umbraco-package.json, implement the Lit element that renders the chosen UUI controls, and ensure the manifest propertyEditorSchemaAlias matches an existing server-side schema.

Frequently Asked Questions about umbraco-property-editor-ui

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build a custom Umbraco backoffice property editor UI?

To build a custom Umbraco property editor UI, implement a Lit-based element using `UmbElementMixin`, dispatch `UmbChangeEvent` for value propagation, and register the element in `umbraco-package.json` with a valid `propertyEditorSchemaAlias`.

Why does my Umbraco property editor fail to save data?

Umbraco property editor save failures often occur when the manifest `propertyEditorSchemaAlias` does not match a valid server-side schema or when the value type does not round-trip correctly. Ensure the alias matches built-in schemas like `Umbraco.Plain.String`.

How do I register a property editor UI in the Umbraco package manifest?

Register a property editor UI by defining a `propertyEditorUi` extension in `umbraco-package.json` that includes the alias, element path, element tag name, metadata, and a correct `propertyEditorSchemaAlias` for Umbraco to render it in Data Types.

Can I configure a custom Umbraco property editor with different settings?

You can configure a custom Umbraco property editor by reading editor configuration from the manifest. This allows you to define settings like placeholders and max lengths to reuse the same Lit UI element across multiple data types.

What is a propertyEditorSchemaAlias in Umbraco and when do I need it?

A `propertyEditorSchemaAlias` defines the server-side value type for an Umbraco property editor. You need it when registering a `propertyEditorUi` to ensure the stored value round-trips correctly and avoids 404 schema alias problems during data persistence.

Does Umbraco backoffice development require Lit and TypeScript?

Modern Umbraco backoffice development uses Lit and TypeScript to implement custom property editor UI elements. You must wire the client-side element with `UmbElementMixin` and dispatch `UmbChangeEvent` to ensure proper data propagation.