umbraco-sorter

Implement drag-and-drop sorting for Umbraco backoffice lists with UmbSorterController.

4|Updated Mar 6, 2026
One-click install
npx skills add https://github.com/albanistrefi/umbraco_CLI --skill umbraco-sorter-albanistrefi
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: umbraco-sorter
Source: https://github.com/albanistrefi/umbraco_CLI/tree/main/skills/extensions/umbraco-sorter
Command: npx skills add https://github.com/albanistrefi/umbraco_CLI --skill umbraco-sorter-albanistrefi

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This skill helps developers implement reliable drag-and-drop reordering in the Umbraco backoffice UI so users can reorder lists and nested items without manual code-heavy wiring.

Core Features & Use Cases

  • Drag-and-drop list ordering: Reorder items within a single container using UmbSorterController and consistent item identity.
  • Cross-container moving: Move items between two or more connected sorters by sharing the same sorter identifier.
  • Nested sorting: Support items that contain child items by recursively wiring sorters and propagating updated models upward.
  • Use cases: Block editor ordering, content tree-like UI, and any backoffice component requiring user-driven ordering with minimal UI churn.

Quick Start

Ask the AI to generate a complete UmbSorterController-based Lit component for a sortable list, including a container element, sortable item element, and onChange model updates, using your item identity fields and CSS selectors.

Frequently Asked Questions about umbraco-sorter

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

FAQPage Schema
How do I implement drag-and-drop sorting in the Umbraco backoffice?

You can implement drag-and-drop sorting in Umbraco by wiring UmbSorterController to a Lit component, using getUniqueOfElement and getUniqueOfModel for identity, and updating state via onChange callbacks.

Can I move items between multiple containers with Umbraco drag-and-drop?

Yes, moving items between multiple containers requires sharing a sorter identifier across connected sorters, enabling cross-container dragging based on a shared identifier.

How does recursive nested sorting work for tree-like data structures in Umbraco?

Recursive nested sorting for tree-like structures requires recursively wiring sorters to child items and propagating updated models upward to the host component via onChange callbacks.

What do I need to configure for UmbSorterController to work correctly?

You must configure correct DOM and model uniqueness via getUniqueOfElement and getUniqueOfModel, appropriate itemSelector and containerSelector wiring, and onChange callbacks for state propagation.

Does drag-and-drop sorting in Umbraco work with Lit-based backoffice components?

Yes, drag-and-drop sorting in Umbraco is designed for Lit-based backoffice components, generating a complete sortable list component with UmbSorterController, container elements, and onChange updates.

What are the limitations of using UmbSorterController for Umbraco backoffice lists?

Using UmbSorterController requires correct DOM and model uniqueness, shared identifiers for cross-container dragging, and appropriate itemSelector and containerSelector wiring for single, cross-container, and nested sorting.