# Customizing Backoffice

- [Overview](/umbraco-cms/customizing/overview.md): Get an overview of the different options for UI customizing of the Umbraco CMS backoffice.
- [Setup Your Development Environment](/umbraco-cms/customizing/development-flow.md): Learn about the recommended development environment to extend Umbraco
- [Umbraco Extension Template](/umbraco-cms/customizing/development-flow/umbraco-extension-template.md): Use the \`umbraco-extension\` .NET template to create a new Umbraco extension.
- [Vite Package Setup](/umbraco-cms/customizing/development-flow/vite-package-setup.md): Get started with a Vite Package, setup with TypeScript and Lit
- [Extensions Overview](/umbraco-cms/customizing/extending-overview.md): The backoffice architecture is based on Extensions. Everything in the UI is Extensions which makes almost any parts of the UI extendable. Enabling you to append, replace, or remove parts.
- [Extension Registry](/umbraco-cms/customizing/extending-overview/extension-registry.md): Almost any UI in the Backoffice is an extension managed by the Extension Registry.
- [Extension Manifest Introduction](/umbraco-cms/customizing/extending-overview/extension-registry/extension-manifest.md): Learn about the different methods for declaring an Extension Manifest.
- [Register an Extension](/umbraco-cms/customizing/extending-overview/extension-registry/register-extensions.md): You can bring new UI or additional features to the Backoffice by registering an Extension via an Extension Manifest.
- [Replace, Exclude, or Unregister](/umbraco-cms/customizing/extending-overview/extension-registry/replace-exclude-or-unregister.md): You may want to replace or completely remove an extension. Depending on your interest, 3 different options are available.
- [Extension Types](/umbraco-cms/customizing/extending-overview/extension-types.md): An overview of general extension types available in the Umbraco backoffice.
- [App Entry Point](/umbraco-cms/customizing/extending-overview/extension-types/app-entry-point.md): The App Entry Point extension type is used to run some JavaScript code before the user is logged in.
- [Backoffice Entry Point](/umbraco-cms/customizing/extending-overview/extension-types/backoffice-entry-point.md): The Backoffice Entry Point extension type is used to run some JavaScript code at startup.
- [Block Custom View](/umbraco-cms/customizing/extending-overview/extension-types/block-custom-view.md): Bring your own representation for Blocks.
- [Bundle](/umbraco-cms/customizing/extending-overview/extension-types/bundle.md): Gather Extension Manifests in one file
- [Dashboards](/umbraco-cms/customizing/extending-overview/extension-types/dashboard.md): A guide to creating custom dashboards in Umbraco
- [Entity Actions](/umbraco-cms/customizing/extending-overview/extension-types/entity-actions.md): Entity Actions give developers the ability to add custom actions to a fly-out menu.
- [Entity Bulk Actions](/umbraco-cms/customizing/extending-overview/extension-types/entity-bulk-actions.md): Bulk Entity Actions perform an action on a selection of items.
- [Entity Create Option Action](/umbraco-cms/customizing/extending-overview/extension-types/entity-create-option-action.md)
- [Extension Conditions](/umbraco-cms/customizing/extending-overview/extension-types/condition.md): Learn how to declare requirements for your extensions using the Extension Conditions.
- [Global Context](/umbraco-cms/customizing/extending-overview/extension-types/global-context.md): Global contexts in Umbraco provide a clean, type-safe way to share functionality across the backoffice.
- [Header Apps](/umbraco-cms/customizing/extending-overview/extension-types/header-apps.md): Place single-purpose extensions in the top-level navigation bar, next to the user profile avatar.
- [Icons](/umbraco-cms/customizing/extending-overview/extension-types/icons.md): Create custom icon sets for use across the Umbraco backoffice.
- [Kinds](/umbraco-cms/customizing/extending-overview/extension-types/kind.md): Create reusable, standardized configurations for extensions, helping to streamline development, ensure consistency, and reduce duplication.
- [Localization](/umbraco-cms/customizing/extending-overview/extension-types/localization.md): Learn how to manage and use the Backoffice UI Localization files.
- [Menu](/umbraco-cms/customizing/extending-overview/extension-types/menu.md): Create menus that appear throughout the backoffice, including in sidebars and button flyouts.
- [Menu Item](/umbraco-cms/customizing/extending-overview/extension-types/menu-item.md): Create menu items that appear throughout the backoffice, in sidebars, button flyouts, and more.
- [Modals](/umbraco-cms/customizing/extending-overview/extension-types/modals.md): A modal is a popup layer that darkens the surroundings and comes with a focus lock. There are two types of modals: "dialog" and "sidebar".
- [Custom Modals](/umbraco-cms/customizing/extending-overview/extension-types/modals/custom-modals.md): New modals can be added to the system via the extension registry.
- [Modal Route Registration](/umbraco-cms/customizing/extending-overview/extension-types/modals/route-registration.md): You can register modals with a route, making it possible to link directly to that specific modal. This also means the user can navigate back and forth in the browser history
- [Property Editor Schema](/umbraco-cms/customizing/extending-overview/extension-types/property-editor-schema.md): Reference documentation for the propertyEditorSchema extension type
- [Property Editor UI](/umbraco-cms/customizing/extending-overview/extension-types/property-editor-ui.md): Reference documentation for the propertyEditorUi extension type
- [Property Value Preset](/umbraco-cms/customizing/extending-overview/extension-types/property-value-preset.md): Provide a preset value for a Property.
- [Sections](/umbraco-cms/customizing/extending-overview/extension-types/sections.md): A comprehensive summary of the available extension types associated with sections.
- [Section](/umbraco-cms/customizing/extending-overview/extension-types/sections/section.md): Introducing Section extensions, a home for custom content and functionality.
- [Section Sidebar](/umbraco-cms/customizing/extending-overview/extension-types/sections/section-sidebar.md): Use Section Sidebar extensions to add navigation, coordinate Section Views, and provide additional functionality inside Section extensions.
- [Section View](/umbraco-cms/customizing/extending-overview/extension-types/sections/section-view.md): Add auxiliary views to your own Umbraco packages, or to other areas of the Umbraco backoffice.
- [Trees](/umbraco-cms/customizing/extending-overview/extension-types/tree.md): A guide to creating a custom Tree in Umbraco
- [Tree Repository](/umbraco-cms/customizing/extending-overview/extension-types/tree/tree-repository.md)
- [Tree Models](/umbraco-cms/customizing/extending-overview/extension-types/tree/tree-models.md): Understanding Tree Item and Root models in Umbraco
- [Trees & Workspaces](/umbraco-cms/customizing/extending-overview/extension-types/tree/trees-and-workspaces.md): How Tree Items navigate to Workspaces when clicked in Umbraco
- [Workspaces](/umbraco-cms/customizing/extending-overview/extension-types/workspaces.md): Learn about workspace extension types that provide shared functionality and enable communication within workspace environments.
- [Workspace Actions](/umbraco-cms/customizing/extending-overview/extension-types/workspaces/workspace-editor-actions.md): Learn how to create workspace actions that provide primary user interactions within workspace environments.
- [Workspace Action Menu Items](/umbraco-cms/customizing/extending-overview/extension-types/workspaces/workspace-action-menu-items.md): Learn how to create workspace action menu items that extend workspace actions with additional functionality.
- [Workspace Context](/umbraco-cms/customizing/extending-overview/extension-types/workspaces/workspace-context.md): Workspace Contexts manages shared state and enables communication between extensions in a workspace.
- [Workspace Footer Apps](/umbraco-cms/customizing/extending-overview/extension-types/workspaces/workspace-footer-apps.md): Learn how to create workspace footer apps that provide persistent status information and contextual data in workspace environments.
- [Workspace Views](/umbraco-cms/customizing/extending-overview/extension-types/workspaces/workspace-views.md): Learn how to create workspace views that provide tab-based content areas for organizing different aspects of entity editing.
- [Collections](/umbraco-cms/customizing/extending-overview/extension-types/collections.md): An overview of the available extension types related to collections.
- [Collection View](/umbraco-cms/customizing/extending-overview/extension-types/collections/collection-view.md): Learn how to create a Collection View that defines how data is displayed within a collection in Umbraco.
- [Card View](/umbraco-cms/customizing/extending-overview/extension-types/collections/collection-view/card.md)
- [Reference View](/umbraco-cms/customizing/extending-overview/extension-types/collections/collection-view/reference.md)
- [Custom View](/umbraco-cms/customizing/extending-overview/extension-types/collections/collection-view/custom.md)
- [Extension Conditions](/umbraco-cms/customizing/extending-overview/extension-conditions.md): Learn how to use Extension Conditions when working with the Umbraco backoffice.
- [Custom Extension types](/umbraco-cms/customizing/extending-overview/custom-extension-type.md)
- [Foundation](/umbraco-cms/customizing/foundation.md): Learn about the core framework of the Umbraco Backoffice, including how to integrate, communicate, and build reactive UIs for your extensions.
- [Fetching Data](/umbraco-cms/customizing/foundation/fetching-data.md): Learn how to request data when extending the Backoffice.
- [Fetch API](/umbraco-cms/customizing/foundation/fetching-data/fetch-api.md): The Fetch API is a modern way to make network requests in JavaScript. It provides a more powerful and flexible feature set than the older XMLHttpRequest.
- [Umbraco HTTP Client](/umbraco-cms/customizing/foundation/fetching-data/http-client.md): Learn more about working with the Umbraco HTTP Client.
- [Executing Requests](/umbraco-cms/customizing/foundation/fetching-data/try-execute.md)
- [Custom Generated Client](/umbraco-cms/customizing/foundation/fetching-data/custom-generated-client.md): Learn how to create a custom-generated client with TypeScript types for your OpenAPI specification.
- [Terminology](/umbraco-cms/customizing/foundation/terminology.md): A list of some of the key concepts with working the Umbraco Backoffice.
- [Umbraco Controller](/umbraco-cms/customizing/foundation/umbraco-controller.md): Contain or reuse logic across Elements. A Controller enables you to separate logic while still being connected with the life cycle of an element.
- [Write your own controller](/umbraco-cms/customizing/foundation/umbraco-controller/write-your-own-controller.md): Reuse functionality across components by writing it as a Controller.
- [Umbraco Element](/umbraco-cms/customizing/foundation/umbraco-element.md): Ease the integration with Backoffice by using a Umbraco Element
- [Lit Element](/umbraco-cms/customizing/foundation/lit-element.md): Backoffice supports any native Web Components. But we choose to use a little framework to make it simpler.
- [Context API](/umbraco-cms/customizing/foundation/context-api.md): Learn about using the Context API for sharing data and functionality between backoffice extensions through the component hierarchy.
- [Context API Fundamentals](/umbraco-cms/customizing/foundation/context-api/context-api-fundamentals.md): Learn about the Context API fundamentals, terminology, and how it enables communication between elements in the Umbraco backoffice through hierarchy.
- [Consume a Context](/umbraco-cms/customizing/foundation/context-api/consume-a-context.md): Learn how to consume contexts in Umbraco elements using one-time references or subscriptions to access data and functionality through the Context API.
- [Provide a Context](/umbraco-cms/customizing/foundation/context-api/provide-a-context.md): Providing a Context enables distant code to communicate with it, ideal way to incorporate central logic.
- [Repositories](/umbraco-cms/customizing/foundation/repositories.md)
- [Repository Types](/umbraco-cms/customizing/foundation/repositories/repository-types.md)
- [Collection Repository](/umbraco-cms/customizing/foundation/repositories/repository-types/collection-repository.md)
- [Detail Repository](/umbraco-cms/customizing/foundation/repositories/repository-types/detail-repository.md)
- [Item Repository](/umbraco-cms/customizing/foundation/repositories/repository-types/item-repository.md)
- [States](/umbraco-cms/customizing/foundation/states.md): Enable reactivity with Umbraco States, allowing you to provide a value that others can observe and update when the value changes.
- [Routes](/umbraco-cms/customizing/foundation/routes.md): Get started with Routing in the backoffice.
- [Backoffice Localization](/umbraco-cms/customizing/foundation/localization.md): Learn how to manage and use the Backoffice UI Localization files.
- [Integrate Validation](/umbraco-cms/customizing/foundation/integrate-validation.md): Learn how to bind and use the validation system when working with Form Controls and Umbraco CMS backoffice.
- [Contexts](/umbraco-cms/customizing/contexts.md): Contexts are APIs that are made available via the Context API. This section describes how some of the most commonly used Contexts work and how they can be utilized.
- [Property Dataset Context](/umbraco-cms/customizing/contexts/property-dataset-context.md): The owner of the values for properties, enabling you to communicate with other properties.
- [Property Level UI Permissions](/umbraco-cms/customizing/property-level-ui-permissions.md): Use the UI Property Permissions to restrict access to specific properties in the Backoffice UI.
- [Icons](/umbraco-cms/customizing/icons.md)
- [Signs](/umbraco-cms/customizing/signs.md): Describes how to use Flag information provided in Management API responses to present additional details to consumers.
- [Property Editors](/umbraco-cms/customizing/property-editors.md): Guide on how to work with and create Property Editors in Umbraco
- [Property Editor Validation](/umbraco-cms/customizing/property-editors/property-editor-validation.md): Looking to add Validation rules for your own Property Editor? This article describes how to append validation rules to your Property Editor.
- [Property Editors Composition](/umbraco-cms/customizing/property-editors/composition.md): This section describes how to work with and create Property Editors.
- [Property Editor Schema](/umbraco-cms/customizing/property-editors/composition/property-editor-schema.md): The Server side part of a Property Editor
- [Property Editor UI](/umbraco-cms/customizing/property-editors/composition/property-editor-ui.md): Presenting the Editing Experience of a Property Editor
- [Property Editor Data Source](/umbraco-cms/customizing/property-editors/composition/property-editor-data-source.md)
- [Property Editor Data Source Types](/umbraco-cms/customizing/property-editors/property-editor-data-source-types.md)
- [Picker Data Source Type](/umbraco-cms/customizing/property-editors/property-editor-data-source-types/picker.md)
- [Collection Data Source](/umbraco-cms/customizing/property-editors/property-editor-data-source-types/picker/picker-collection-data-source.md)
- [Tree Data Source](/umbraco-cms/customizing/property-editors/property-editor-data-source-types/picker/picker-tree-data-source.md)
- [Property Value Converters](/umbraco-cms/customizing/property-editors/property-value-converters.md): A guide to creating a custom Property Value Converter in Umbraco
- [Property Value Converter Example](/umbraco-cms/customizing/property-editors/full-examples-value-converters.md)
- [Property Actions](/umbraco-cms/customizing/property-editors/property-actions.md): Guide on how to implement Property Actions for Property Editors in Umbraco
- [Integrate Property Editors](/umbraco-cms/customizing/property-editors/integrate-property-editors.md)
- [Tracking References](/umbraco-cms/customizing/property-editors/tracking.md): Guide on how to implement tracking entity references for Property Editors in Umbraco
- [Property Dataset](/umbraco-cms/customizing/property-editors/property-dataset.md): Looking to implement one or more Property Editors in your own scenario? The Property Dataset is necessary for a Property Editor to work, so make sure to have that integrated first.
- [Sortable Property Values](/umbraco-cms/customizing/property-editors/property-editor-sortable-values.md): Learn how to enable sorting for custom property editors that store complex values like JSON in Umbraco collection views.
- [Utilities](/umbraco-cms/customizing/utilities.md): In this section you can find information about different code utilities that can be used in your extension when customizing the Backoffice.
- [Modals](/umbraco-cms/customizing/utilities/modals.md): In this section you can find information about different modal utilities that can be used in your extension when customizing the Backoffice.
- [Confirm Dialog](/umbraco-cms/customizing/utilities/modals/confirm-dialog.md): Present a dialog to ask the user for confirmation.
- [UI Sorting](/umbraco-cms/customizing/utilities/sorting.md): Enable sorting elements via drag and drop
- [Workspaces](/umbraco-cms/customizing/workspaces.md)
- [Umbraco Package](/umbraco-cms/customizing/umbraco-package.md): An extension begins with a Umbraco Package
- [UI Library](/umbraco-cms/customizing/ui-library.md): Find out more about Umbraco Backoffice UI Library, Backoffice UI API and Storybook.
- [Examples and Playground](/umbraco-cms/customizing/examples-and-playground.md): Practical examples and hands-on experience are good ways to learn.
