Problem/Motivation
There are several technical and architectural issues with the current "Manage display" implementation.
The first issue is the default view mode route dependency. Currently, the "Manage display" tab defaults directly to the default view mode edit form. To eventually deprecate or remove the default view mode in #2844203: Improve/Simplify situation around Default/Full view modes/view displays, we need a replacement entry point. While we could replace it with the "full" view mode, there's some technical complexity with how this would work with local tasks.
The second issue is display builder integration. Layout Builder, Display Builder, Canvas, and other display builders don't have a clear, standardized way to integrate with Field UI. The current architecture assumes Field UI is the primary display builder, making it difficult for alternative builders to provide their own management interfaces. We could accommodate multiple display builders working alongside each other much better than we do today.
This dependency also makes it difficult to eventually remove or replace Field UI's display building capabilities. By creating a neutral overview page that acts as a navigation hub, we can decouple the navigation from the specific display builder implementation.
Steps to reproduce
Navigate to Structure > Content types > [Content type] > Manage display. Observe that you are taken directly to the default display mode edit form. Notice that the route structure assumes Field UI is the only display builder.
Proposed resolution
Create a new overview page for "Manage display" that serves as a display-builder agnostic navigation hub. Add a new route at /admin/structure/types/manage/{bundle}/display that displays a table overview of all display modes for the bundle. This route is display-builder agnostic and serves as a neutral navigation hub.
Make the overview page the default local task, replacing the direct link to the default display mode. This provides a stable entry point that doesn't depend on any specific view mode.
Remaining tasks
User interface changes

Introduced terminology
API changes
Data model changes
Release notes snippet
Added overview page for managing display modes that provides a display-builder agnostic navigation hub. "Manage display" now defaults to an overview page instead of the default view mode, providing a stable entry point. Display modes can now be enabled or disabled directly from the overview page.
Issue fork drupal-3564234
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #3
lauriiiMoving to needs review on the high level approach. The MR will fail inevitably at this point since I haven't updated any of the tests.
Comment #4
lauriiiAdding a screenshot to the issue summary.
Comment #5
grimreaperHi,
Thanks for the issue and the proposal.
Would it ease flexibility and be future-proof that instead of "just" enable/disable on the view mode (and why not also form mode in the future :)), it should be a select list with the different display builders available:
- Disabled (empty value)
- Field UI
- Layout Builder
- Display Builder
- Canvas
- (other)
I have not checked but I guess then we could declare the display builder as plugins for discoverability, plugin methods/interface could provide the routes for local tasks, admin actions, etc. dynamically.
Comment #6
catchThis looks like a good idea to me, haven't reviewed the MR yet.
We should open a follow-up to apply the same pattern to form modes, and also revive #2721727: Allow user to add display modes from respective field UI's. - that should allow removing the 'Display modes' menu item from admin/structure entirely, always forget that's where you have to go to add one.
Comment #7
joachim commentedSince view mode config entities have a description, could we put that in the table, and then make the help text less wordy?
Comment #8
grimreaperAnother thought I had about proposal from comment 5, is those "display_builder" plugins could implement a method to react to the change of selected display builder for view mode.
The method could have as arguments $previousBuilderId, $previousBuilderData. That way the plugins could optionally do data/config migration from one builder to it.
Would it be also the occasion to standardize "override per content" feature?
- Layout Builder allows to override the full view mode (or default if full is not enabled)
- Display Builder allows to override any view mode by allowing to select the field to store data into
Comment #9
catch@joachim Adding the description to the table sounds good, and yes good way to reduce the help text verbosity.
@grimreaper I think we should probably look at the display builder selection proposal in its own issue postponed on this one because it sounds like it might end up needing API changes/additions.
Comment #10
grimreaper@catch I completely agree that it could be a big change and need to synchronize the change with the different display builder modules. So, to handle in its own issue at its own speed.
Comment #11
lauriiiI’ve updated the table to display the description and I’ve shortened the help text.
All of the tests are now passing! Changes were mostly related to updating the tests to use the new URL for the default display mode.
I think it would make sense to commit this as is and add various improvements like being able to modify the available view modes in a follow-up.
Comment #12
grimreaperChild issue #3564677: Add a display_builder plugin API and selection created regarding comment 5, 8 and 9.
Comment #13
godotislateDoes this need to go to usability review? Tagged for IS update for screenshot including added description.
Comment #14
lauriiiI got a +1 from @ckrina in https://drupal.slack.com/archives/C079NQPQUEN/p1766215827620139 on this. We will have to make some improvements to the UX in #2721727: Allow user to add display modes from respective field UI's. to start slowly getting rid of the separate display modes UI.
Comment #15
lauriiiComment #16
godotislateRe: #14
Awesome! I brought up usability review because I saw that the UX team had usability/accessibility concerns on #2409559: User should be able to identify required fields from field listing after it was already committed, so I thought maybe it'd be good to do that before committing here.
Comment #17
grimreaperHi,
Code review addressed from comment 15.
Ok for me.
Thanks and happy new year!
Comment #18
catchI didn't original think about an accessibility review of #2409559: User should be able to identify required fields from field listing because it was 'just a table', but when it was mentioned on that issue after commit, I realised it was adding some elements to combine information in a single table cell which probably could use accessibility review.
In this case though I think the new UI (at least from the screenshots) really is 'just a table' so it should not be introducing any new elements/patterns/styling that could introduce new accessibility issues. Haven't reviewed the actual MR here properly though.
Comment #19
bkosborneJust want to say big +1 to this. I think this is a huge improvement.
Comment #21
needs-review-queue-bot commentedThe Needs Review Queue Bot tested this issue. It fails the Drupal core commit checks. Therefore, this issue status is now "Needs work".
This does not mean that the patch necessarily needs to be re-rolled or the MR rebased. Read the Issue Summary, the issue tags and the latest discussion here to determine what needs to be done.
Consult the Drupal Contributor Guide to find step-by-step guides for working with issues.
Comment #22
lauriiiRebased the MR and tests are passing
Comment #23
catchCouple of questions on the MR.
Comment #24
lauriiiFeedback in the MR has been addressed and I've simplified the MR by removing the Ajax for enabling/disabling display modes.
Comment #25
benjifisherUsability review
We discussed this issue at #3572725: Drupal Usability Meeting 2026-02-20. That issue has a link to a recording of the meeting.
The attendees at the usability meeting were @benjifisher, @pallavi singh3013, and @rkoller. I am giving them credit on this issue.
There are some things we like about the changes here:
On the other hand, one drawback is that it will now require following an additional link when the user wants to edit the Default view mode.
I notice that there are a few more commits since we tested, and some of the problems we noticed are now fixed: the links on the overview page now have visually hidden text for improved accessibility, and they trigger a full page load so that the secondary tabs are updated.
There are three more things we do not like about the current state of this feature:
/admin/structure/display-modes/viewthat used to be on the form for the Default view mode.It should be pretty easy to fix (1) by adding a sentence to the test at the top of the new Overview page.
A comprehensive fix for (2) is out of scope for this issue, so I opened #3574972: Admin tables can have too much horizontal whitespace, creating accessibility problems. For now, we could mitigate the problem by adding descriptions to the view modes in the Standard profile, and other core profiles. (That could be a follow-up issue.) Or we could simply remove the Description column from the tables on the Overview page.
Regarding (3), I know that I have trouble remembering which is which, but Display mode is the generic term, including View mode and Form mode. (This point did not come up during the usability meeting.)
One other thing we noticed is that there is no way to edit a disabled view mode. That is not a change from current behavior, so it is out of scope for this issue, but perhaps we should reconsider that behavior.
If you want more feedback from the usability team, a good way to reach out is in the #ux channel in Slack.
Comment #26
lauriiiThank you for the review! Addressed the feedback in the MR. Also opened #3575074: Add descriptions to view modes in Standard profile to add the descriptions.
Comment #27
lauriiiRebased the MR and it's passing tests again
Comment #29
pameeela commentedI found the sentence at the top a bit confusing, I think it works better just as 'Manage view modes' and moved it to the bottom which I felt is better suited to the priority of this task. (Specifically, the idea that you go there to 'edit' view modes is strange -- yes, you can change the name there, but the editing you probably want to do is here in the configuration of them.)
Not sure if I can RTBC this since I made a change but here's a screenshot of the updated UI in Gin:
Comment #30
lauriiiChanged the link to an action link displayed above the table:
Also addressed feedback from the MR.
Comment #31
pameeela commentedThat is definitely better :) I would drop the last sentence about enabling and disabling as needed, I think that’s self evident?
Comment #32
pameeela commentedLGTM!
Comment #33
godotislateThis MR is a beast and I haven't gotten all the way through yet, but since I found some things worth working on already and out of time for now, sending back to NW. I'll try to revisit soon and add any other comments.
Comment #34
lauriiiThanks for the review @godotislate for the review! Addressed all the feedback so far.
Comment #35
pameeela commentedFeedback is addressed, updated the screenshot in the IS for the current state.
Comment #37
catchI think this is in a good spot. Committed/pushed to main, thanks!
Is #2721727: Allow user to add display modes from respective field UI's. the right place to add an 'add' local action here, so that we can get closer to removing admin/structure/display-modes?
And do we need a follow-up to apply the same pattern to form modes?
Will need a backport MR for 11.x but looks like only one conflict in services.yml so hopefully not bad.
Comment #41
smustgrave commentedActually had to do additional work for field_layout so putting in review for those changes.
Comment #42
smustgrave commentedLooks like needs more work
Comment #43
smustgrave commentedLets try that.
Comment #44
needs-review-queue-bot commentedThe Needs Review Queue Bot tested this issue. It fails the Drupal core commit checks. Therefore, this issue status is now "Needs work".
This does not mean that the patch necessarily needs to be re-rolled or the MR rebased. Read the Issue Summary, the issue tags and the latest discussion here to determine what needs to be done.
Consult the Drupal Contributor Guide to find step-by-step guides for working with issues.
Comment #45
smustgrave commentedBad bot this rebased just fine with 11.x
Comment #46
needs-review-queue-bot commentedThe Needs Review Queue Bot tested this issue. It fails the Drupal core commit checks. Therefore, this issue status is now "Needs work".
This does not mean that the patch necessarily needs to be re-rolled or the MR rebased. Read the Issue Summary, the issue tags and the latest discussion here to determine what needs to be done.
Consult the Drupal Contributor Guide to find step-by-step guides for working with issues.
Comment #47
catchComment #48
catchActually looks like the field_layout changes still need review.
Comment #49
dcam commentedI couldn't figure out why PHPStan was complaining about
FieldLayoutEntityDisplayFormTrait. It doesn't look like there are any related changes that would have made those return type declarations necessary. But maybe I missed something. I don't think they'll hurt anything, so they should be fine.The most drastic change to be validated was to
FunctionalJavascript/FieldLayoutTest. These changes were necessary because the test is dependent on the HTML structure of that page to test managing the layout. It had to be adapted to enable the required view mode in the newly designed display management page before accessing the view mode's settings. I manually followed the steps in the test and was able to verify that they're correct. The changes look good to me.Comment #52
catchCommitted/pushed to 11.x, thanks! I managed to mess up the attribution on the commit message - looks like issue credit didn't get saved last time. But issue credit should be correct as well as the commit on main.