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.5.x-devTaskNormalActiveDX (Developer Experience)sprintNeeds change record
#1804614: [meta] Consolidate theme functions and properly use theme suggestions in core
8.5.x-devPlanMajorActived8dtxTheme Component LibraryTemplate consolidation
#2004872: [meta] Theme system architecture changes
8.5.x-devPlanMajorActiveAPI changeAPI clean-up
#2002606: Allow themes to provide services.yml
8.5.x-devFeature requestMajorNeeds workStalking CrellNeeds issue summary update
#311011: Replace links.html.twig with item-list--links.html.twig
8.5.x-devTaskNormalActiveVDCTheme Component LibraryNeeds issue summary update
#1843798: [meta] Refactor Render API to be OO
8.5.x-devTaskNormalActiveAPI changeAPI clean-upNeeds issue summary update
#1842140: Remove title and wrapper div from item-list.html.twig
8.5.x-devTaskNormalNeeds workmarkupdreammarkupAmsterdam2014needs screenshotsNeeds issue summary update
#1819284: [meta] Consolidate all form element container templates, and add theme_hook_suggestions
8.4.x-devTaskNormalActiveTemplate consolidation
Assigned to jenlampton
#1973418: Remove tablesort-indicator.html.twig, use CSS instead
8.5.x-devTaskNormalActiveTemplate consolidationCSSfrontendNeeds issue summary update
#1813426: [meta] Consolidate all item list templates and add theme_hook_suggestions
8.4.x-devTaskNormalActiveTheme Component LibraryTemplate consolidation
Assigned to jenlampton
#2430381: Improve Classy template in-line documentation
8.4.x-devTaskNormalActivefrontendbananaclassyTX (Themer Experience)rc eligibleNeeds issue summary update
#2076301: Remove views-mini-pager.html.twig, use a pager theme suggestion instead
8.5.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>
#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
#2114563: Remove TwigReference with the help of 'without' filter replacing 'show'/'hide' functions.
8.0.x-devTaskCriticalClosed (fixed)API changeDX (Developer Experience)sprint
#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
#2106797: Create a Twig function for route discoverability
8.0.x-devTaskMajorClosed (won't fix)blockedMenuSystemRevampWSCCIFX (Front End Experience)
#1982018: [meta] Refactor template_preprocess()
9.x-devTaskNormalClosed (duplicate)
#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
#1812684: [meta] Consolidate all table templates and add theme_hook_suggestions
8.0.x-devTaskNormalClosed (fixed)Template consolidation
#1885714: Remove theme_install_page()
8.0.x-devTaskNormalClosed (duplicate)Needs reroll
#1833932: Convert theme_system_compact_link() into a #type link
8.0.x-devTaskNormalClosed (fixed)NoviceTheme Component Library
#1972122: Remove the DIV tag around block content
8.0.x-devTaskNormalClosed (fixed)markupfrontendhtmldreammarkup
#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
#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
#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
#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
#2245901: Trim trailing EOF whitespace from templates
8.0.x-devTaskNormalClosed (won't fix)dreammarkupNeeds issue summary updateJavaScript
#2106859: Add a link generator Twig extension
8.0.x-devTaskNormalClosed (duplicate)MenuSystemRevampWSCCIFX (Front End Experience)Needs issue summary update
#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)
#2368957: Set class on MoreLink as array instead as string
8.0.x-devBug reportNormalClosed (fixed)NoviceTheme Component LibraryQuick fix
#2329847: Use Attribute to replace hard coded classes in language-negotiation-configure-form.html.twig
8.0.x-devTaskNormalClosed (fixed)frontendfrontendunitedFUDKconsistencyNovice