Theme system cleanup

This is a pretty big umbrella that we may need to split up later. Should we differentiate cleanup from consolidation, or can we narrow the scope of this somehow?

Critical issue
Major issue
Current top priority

Currently in the works for Drupal 8

See all these issues also at This view of issues is automatically cached and might be out of date up to two hours at times.

To do

#2108771: Remove special cased title_attributes and content_attributes for Attribute creation
8.4.x-devTaskNormalActiveDX (Developer Experience)sprintNeeds change record
#1804614: [meta] Consolidate theme functions and properly use theme suggestions in core
8.4.x-devPlanMajorActived8dtxTheme Component LibraryTemplate consolidation
#2002606: Allow themes to provide services.yml
8.4.x-devFeature requestMajorNeeds workStalking CrellNeeds issue summary update
#2004872: [meta] Theme system architecture changes
8.4.x-devPlanMajorActiveAPI changeAPI clean-up
#1843798: [meta] Refactor Render API to be OO
8.4.x-devTaskNormalActiveAPI changeAPI clean-upNeeds issue summary update
#1842140: Remove title and wrapper div from item-list.html.twig
8.4.x-devTaskNormalNeeds workmarkupdreammarkupAmsterdam2014needs screenshotsNeeds issue summary update
#1819284: [meta] Consolidate all form element container templates, and add theme_hook_suggestions
8.3.x-devTaskNormalActiveTemplate consolidation
Assigned to jenlampton
#1973418: Remove tablesort-indicator.html.twig, use CSS instead
8.4.x-devTaskNormalActiveTemplate consolidationCSSfrontendNeeds issue summary update
#311011: Replace links.html.twig with item-list--links.html.twig
8.4.x-devTaskNormalActiveVDCTheme Component LibraryNeeds issue summary update
#2430381: Improve Classy template in-line documentation
8.3.x-devTaskNormalActivefrontendbananaclassyTX (Themer Experience)rc eligibleNeeds issue summary update
#1813426: [meta] Consolidate all item list templates and add theme_hook_suggestions
8.3.x-devTaskNormalActiveTheme Component LibraryTemplate consolidation
Assigned to jenlampton
#2076301: Remove views-mini-pager.html.twig, use a pager theme suggestion instead
8.4.x-devTaskNormalNeeds workNoviceVDCTemplate consolidationdcuacs2015

To review

#2214241: Field default markup - removing the divitis
8.0.x-devTaskNormaldreammarkupneeds screenshotsfrontendBartikSevenclassyNeeds issue summary updateNeeds manual testing

To be committed

Critical issue
Major issue
Current top priority

Other related issues

See all these issues also at This view of issues is automatically cached and might be out of date up to two hours at times.


#552478: Restrict "self-closing" tags to only void elements in drupal_pre_render_html_tag
7.x-devBug reportMajorPatch (to be ported)html5API clean-upneeds backport to D7sprint


#806982: Tables should take an optional footer variable and produce <tfoot>
#2114563: Remove TwigReference with the help of 'without' filter replacing 'show'/'hide' functions.
8.0.x-devTaskCriticalClosed (fixed)API changeDX (Developer Experience)sprint
#2073811: Add a url generator twig extension
8.0.x-devTaskNormalClosed (fixed)WSCCIFX (Front End Experience)DX (Developer Experience)DrupalWTFsprint
#2229435: Clean up the way attributes are printed in field.html.twig
8.0.x-devTaskNormalClosed (fixed)sprintFUDKEntity Field APINovice
#2106797: Create a Twig function for route discoverability
8.0.x-devTaskMajorClosed (won't fix)blockedMenuSystemRevampWSCCIFX (Front End Experience)
#939462: Specific preprocess functions for theme hook suggestions are not invoked
8.0.x-devBug reportMajorClosed (fixed)DX (Developer Experience)needs backport to D7
#2052253: [META] Add #render property to drupal_render() and convert #type "#pre_render -> #markup" calls to use it
8.0.x-devTaskMajorClosed (duplicate)drupal renderBackwards compatible API change
#2329847: Use Attribute to replace hard coded classes in language-negotiation-configure-form.html.twig
8.0.x-devTaskNormalClosed (fixed)frontendfrontendunitedFUDKconsistencyNovice
#2035905: Remove theme_book_admin_table and call theme('table__book_admin') instead
8.0.x-devTaskNormalClosed (duplicate)Template consolidation
#2004252: node.html.twig template
8.0.x-devTaskNormalClosed (fixed)dreammarkupNeeds issue summary updatefocusStarkBartikfrontend
#1842326: Merge _theme_table_cell() into theme_table()
8.0.x-devTaskNormalClosed (fixed)
Assigned to sun
#1926344: Consolidate search-result.html.twig and search-results.html.twig
8.0.x-devTaskNormalClosed (fixed)NoviceSprintWeekend2014D8MA
#2092343: Consolidate forum.module and remove call to _theme_table_cell() within template_preprocess_forum_topic_list()
8.0.x-devTaskNormalClosed (fixed)d8dtxTheme Component LibraryTemplate consolidation
#1982018: [meta] Refactor template_preprocess()
9.x-devTaskNormalClosed (duplicate)
#2430583: Make template file names more descriptive
9.x-devTaskNormalClosed (duplicate)frontendbananarc deadlineclassyTX (Themer Experience)
#2259221: Abstract "mark" theme hook to allow multiple "types"
8.0.x-devTaskNormalClosed (duplicate)dreammarkup
#1777332: Replace theme_menu_link() and menu-tree.html.twig with a single Twig template
8.0.x-devTaskNormalClosed (fixed)Theme Component LibraryTemplate consolidationTX (Themer Experience)Performance
#2245901: Trim trailing EOF whitespace from templates
8.0.x-devTaskNormalClosed (won't fix)dreammarkupNeeds issue summary updateJavaScript
#1812684: [meta] Consolidate all table templates and add theme_hook_suggestions
8.0.x-devTaskNormalClosed (fixed)Template consolidation
#2106859: Add a link generator Twig extension
8.0.x-devTaskNormalClosed (duplicate)MenuSystemRevampWSCCIFX (Front End Experience)Needs issue summary update
#1885714: Remove theme_install_page()
8.0.x-devTaskNormalClosed (duplicate)Needs reroll
#2189729: Factor out tablesort-indicator.html.twig
8.0.x-devTaskNormalClosed (duplicate)needs accessibility reviewfrontend
#2187113: Incorrect usage of attributes in twig templates resulting in possible duplicate attributes.
8.0.x-devBug reportNormalClosed (fixed)DX (Developer Experience)TX (Themer Experience)
#1833932: Convert theme_system_compact_link() into a #type link
8.0.x-devTaskNormalClosed (fixed)NoviceTheme Component Library
#2368957: Set class on MoreLink as array instead as string
8.0.x-devBug reportNormalClosed (fixed)NoviceTheme Component LibraryQuick fix
#1972122: Remove the DIV tag around block content
8.0.x-devTaskNormalClosed (fixed)markupfrontendhtmldreammarkup