5 Things You Need to Know About Drupal 10
Share:FacebookX
Home » 5 Things You Need to Know About Drupal 10

5 Things You Need to Know About Drupal 10

Drupal 10

The Drupal 10 features that mattered most when the release landed in December 2022 were less about flashy new capabilities and more about architectural cleanup: a newer Symfony foundation, a higher PHP minimum, modern default themes, the move from CKEditor 4 to CKEditor 5, and a cleaner upgrade path from Drupal 9 for sites that had been keeping up with deprecation warnings. These five things shaped how Drupal 10 affected site operators and developers, and they remain the right framework for understanding what the release actually changed.

This post unpacks each of the five with practical implications. If you operate a Drupal site, are planning a Drupal 9 upgrade, or are evaluating Drupal as a platform, these are the operational facts that matter. For the broader introduction to the platform, see our beginner’s guide to Drupal.

1. Drupal 10 ships on Symfony 6

Drupal core has been built on top of the Symfony PHP framework since Drupal 8 launched in 2015. Drupal 10 (released December 14, 2022) moved that foundation forward from Symfony 4 (which underpinned Drupal 9) to Symfony 6.

What this meant in practice:

  • Modern framework features: Symfony 6 brought a cleaner dependency injection model, improved routing, more native PHP feature usage (enums, typed properties), and various performance optimizations that propagated up into Drupal core.
  • Deprecation cleanup at the major boundary: Symfony 4 deprecations marked during the Drupal 9 lifecycle became removals in Drupal 10. Custom modules that used those APIs needed updates.
  • Dependency management cleanup: Drupal 10 removed several legacy dependencies (jQuery UI components, some older PHP libraries) that had been around since Drupal 7 or 8 and were no longer maintained upstream.

The Symfony move was the largest architectural change in Drupal 10. For most contributed modules, the change was invisible. For custom code that touched Symfony classes directly (event subscribers, dependency injection, route definitions), the change required a deprecation-cleanup pass before the upgrade could complete.

2. PHP 8.1 became the minimum requirement

Drupal 10 raised the PHP minimum from 7.4 (Drupal 9’s floor) to 8.1. This was a substantial jump in language features and runtime requirements.

The practical implications:

  • Hosting compatibility: managed Drupal hosts (Pantheon, Acquia, Platform.sh) added PHP 8.1 support well before Drupal 10’s release, so the upgrade is typically a dashboard toggle. Self-hosted environments may have needed an OS-level upgrade to access PHP 8.1.
  • Custom code modernization: PHP 8.1 introduced readonly properties, enums, first-class callable syntax, and several other language features. Drupal 10 code can use these directly. Custom modules from the Drupal 9 era often work without modification, but new code can be written more cleanly.
  • Contributed module compatibility: every contributed module installed on a Drupal 10 site also needs to support PHP 8.1+. Most major modules tracked this on Drupal 10 release; some smaller modules were slow to catch up.

PHP 8.1 (and the 8.x line more broadly) brought significant performance improvements compared to 7.x. Drupal 10 sites running on 8.1 are generally faster than equivalent Drupal 9 sites running on 7.4, before considering any other changes.

3. Olivero replaced Bartik as the default theme

Drupal had used Bartik as its default frontend theme since Drupal 7. Drupal 10 retired Bartik in favor of Olivero, a modern, accessibility-first theme designed for the contemporary web.

Olivero brings:

  • WCAG 2.1 AA accessibility as a baseline: keyboard navigation, screen reader support, contrast compliance, and reduced-motion preferences are core design considerations, not afterthoughts.
  • Modern responsive layout: built for mobile-first display, with clean typography and a more contemporary visual design than Bartik’s 2011-era aesthetic.
  • Dark mode support: respects user system preferences for dark UI.
  • Better default editor presentation: content authored in CKEditor 5 renders consistently with what editors see in the admin.

For sites running Bartik on Drupal 9, the Drupal 10 upgrade does not force a theme switch (Bartik continues to be available as a contributed theme). Most sites with custom themes built on top of Bartik or independent themes are unaffected. New Drupal 10 sites get Olivero as the starting point.

4. Claro became the default admin theme

Alongside the Olivero frontend, Drupal 10 made Claro the default administration theme, replacing the long-standing Seven theme that had been Drupal’s admin face since Drupal 7.

Claro improvements:

  • Refreshed admin UI: cleaner spacing, modern typography, more readable forms and lists.
  • Accessibility-first design: same WCAG 2.1 AA baseline as Olivero.
  • Mobile-friendly admin: editing content on a phone or tablet is genuinely usable in Claro in ways it was not in Seven.
  • Consistent design language across admin surfaces: the various admin pages (content lists, configuration forms, module pages, user management) feel like one product rather than a collection of distinct screens.

For sites accustomed to Seven, the visual change is noticeable but the underlying admin patterns are the same. Content editors and administrators learn the new theme quickly.

5. CKEditor 5 replaced CKEditor 4 as the default text editor

CKEditor 4 had been Drupal’s default rich-text editor since Drupal 8. The CKSource team announced CKEditor 4’s end-of-life for 2023, which forced Drupal core to move to CKEditor 5 ahead of Drupal 10’s release.

The change affected:

  • Editor UX: CKEditor 5 has a different toolbar pattern, a more modern WYSIWYG experience, and better content-paste handling than CKEditor 4.
  • Plugin compatibility: CKEditor 4 plugins do not work with CKEditor 5. Sites that used custom CKEditor 4 plugins or contributed modules adding editor functionality needed CKEditor 5-compatible replacements.
  • Content compatibility: existing content stored from CKEditor 4 is generally compatible with CKEditor 5, but content with unusual HTML constructs may need migration.
  • Configuration migration: the editor configuration (which buttons, which plugins, which formats) needed remapping from CKEditor 4 to CKEditor 5 syntax.

For most sites, the CKEditor migration is the most visible single change in the Drupal 9 to Drupal 10 upgrade. The editor is part of every content editor’s daily workflow; a different UI gets noticed immediately.

Update (2026-05-12): the Drupal 10 landscape since this post first published.

Drupal 10 was four months old when this post was originally published. The version has matured considerably in the years since, and the Drupal release landscape has continued to evolve:

  • Drupal 10’s end of life is now scheduled for December 9, 2026, covered in detail in our companion post on the deadline. Sites currently on Drupal 10 should be planning their upgrade to Drupal 11.
  • Drupal 11 released August 1, 2024, introducing the Recipes system, Single Directory Components, and major performance improvements in subsequent minors. See our Drupal 11 pillar for the full overview.
  • Drupal 9 reached end of life November 2023, ending the support window for the version this post compared Drupal 10 against.
  • Drupal 7 reached end of life January 5, 2025, closing the longest-supported major version chapter in Drupal’s history.
  • Drupal 10.3+ introduced backported features from the Drupal 11 development line and is the supported floor for upgrading to Drupal 11. The D10 to D11 migration guide walks through the process.

The five things in the body of this post still describe what Drupal 10 actually changed when it landed. What has changed since is the operational context: Drupal 10 is now the version sites are leaving, not the version they are adopting.

Frequently Asked Questions

How does Drupal 10 differ from Drupal 9?

The major differences are foundational rather than feature-driven: Symfony 6 (up from Symfony 4), PHP 8.1 minimum (up from 7.4), Olivero default frontend theme (replacing Bartik), Claro default admin theme (replacing Seven), and CKEditor 5 (replacing CKEditor 4). Functionally, Drupal 10 does what Drupal 9 did. Architecturally, the platform is significantly more modern.

Is the upgrade from Drupal 9 to Drupal 10 difficult?

For a Drupal 9.4 or later site that has been tracking deprecation warnings throughout the 9.x lifecycle, the upgrade is typically a Composer-driven process completing in a working session. For sites with substantial custom code that ignored deprecation warnings, the upgrade is harder because the major-version boundary removes the deprecated APIs the custom code relied on. The Upgrade Status module identifies what needs attention before the upgrade attempts.

Should new sites be built on Drupal 10?

At the time of this post (April 2023), Drupal 10 was the current stable major and the right starting point for new sites. The Drupal 9 development branch had stopped receiving new features. Building on Drupal 10 gave new sites the longest forward-compatible support window.

What happened to Bartik and Seven?

Both themes remain available as contributed modules on drupal.org for sites that need to keep them. Drupal core just no longer ships them as defaults. Sites running on Bartik or Seven that upgrade to Drupal 10 retain those themes; they just have to install them as contributed modules during the upgrade. New Drupal 10 installations get Olivero and Claro.

What is the typical timeline from Drupal 9 to Drupal 10?

For a well-maintained site, the actual upgrade work can complete in a day or two with appropriate preparation. The preparation (running Upgrade Status, addressing deprecations, verifying contributed module compatibility, planning the CKEditor migration)

Share:FacebookX

Instagram

Instagram has returned empty data. Please authorize your Instagram account in the plugin settings .