Define how and where to use REM units
Problem/MotivationIn #3117698: Allow PostCSS Plugin “Px to Rem” in core for Olivero theme there was a good discussion about how and where to use REM units. See #3117698-24: Allow PostCSS Plugin “Px to...
View Article[policy, no-patch] EoL for majors six months after the release of the second...
Spun from #3491129: Drupal Core strategy for 2025-2028 One sentence proposal"EoL for majors six months after the release of the second subsequent major." Example 1 for this proposal:If Drupal 14.0...
View ArticleConvert template preprocess in system.module
Problem/MotivationSee #3504381: [meta] Convert Template Preprocess hooks to OOP equivalentSteps to reproduceProposed resolutionRemaining tasksUser interface changesIntroduced terminologyAPI changesData...
View ArticleConvert field template_preprocess functions in theme.inc
Problem/MotivationSee #3504381: [meta] Convert Template Preprocess hooks to OOP equivalentSteps to reproduceProposed resolutionRemaining tasksUser interface changesIntroduced terminologyAPI changesData...
View ArticleMake doctrine/lexer:^3.0 compatible with \Drupal\Component\Annotation\Doctrine.
Problem/MotivationIn #3429602: Annotation component has an undeclared dependency on doctrine/lexer 2 we're adding a dependency on doctrine/lexer:^2.0 to both the Annotation component and core...
View ArticleMove CSS/JS aggregation settings to "Development settings" form
Since Drupal 10.1 there is a form to enable or disable Twig debugging. It seems natural the CSS/JS aggregation settings should belong to that form.
View ArticleDrop $method parameter from Preprocess and FormAlter attributes, allow only...
Problem/MotivationThe #[Hook] attribute can be used on classes and methods. When used on class level, it can either specify a method name, or it will apply to the __invoke() method.There is hardly ever...
View ArticleReduce hook attribute order BC stubs to the minimum necessary
Problem/MotivationIn #3512835: [11.1.x] Add BC stubs for Hook ordering. we added BC stubs for hook attributes and order classes. The goal was that contrib modules that use the new hook order features...
View ArticleError: Call to a member function uuid() on null in...
Problem/MotivationThis error occurs when we click on 'Insert Selected' button from the media library without selecting or uploading a media.Steps to reproduceGo to any add/edit node page with body...
View ArticleNew SDC components are not available when enabling themes through the UI
Problem/MotivationThis was discovered over at #3301173: Allow starterkit theme generator tool to clone Olivero.If a theme is enabled in the UI, any SDC components inside that new theme are not...
View ArticleUse the builder pattern to make it easier to create render arrays
Problem/MotivationSince Drupal 8 we've done some work to remove 'magic array keys'. But we still have render arrays, which every time you use them cause you to need to look-up the allowed keys. This is...
View ArticleDX object to manage htmx attributes
Problem/MotivationHTMX is designed as an extension of HTML. It is therefore a declarative markup system that uses attributes.<button hx-get="/contacts/1" hx-target="#contact-ui"> <1> Fetch...
View ArticleDX object to manage htmx headers
Problem/MotivationHTMX supports 11 custom response headers.Proposed resolutionRather than expecting Drupal developers to learn all the names and data requirements of all those headers, create a class...
View ArticleDX object to collect and manage HTMX behaviors
Problem/MotivationWe have both attributes and headers as tools to implement actions using HTMX. We also have defined sets of actions in the existing Ajax API that it would be beneficial to provide...
View Article[Plan] Gradually replace Drupal's AJAX system with HTMX
What is the problem to solve?Drupal's AJAX system has served us well for over a decade. For over 15 years if you count its predecessors in CTools and AHAH. At the time of its creation, we had to create...
View ArticleArbitrary scroll on dialog open
Problem/MotivationWhen opening the media library modal, the first tabbable button gets a focus event. Unfortunately the dialog does not adhere to its height setting therefore the dialog content is...
View ArticleHandle exceptions gracefully when saving node forms
Problem/MotivationNode forms do not properly handle errors that occur while saving nodes.Steps to reproduce:It is possible to hide the node title or other required fields from the form display, but...
View Article[upstream] Use CKEditor 5's native <ol type> and <ul type> UX
Problem/MotivationWe "solved" the problem of supporting <ol type> and <ul type> by using the SourceEditing functionality for that.But in CKEditor 5 32.0.0, they've added a native UX for...
View ArticleConvert multiple provider plugin work from migrate into plugin dependencies...
Problem/MotivationFollow-up to #2560795: Source plugins have a hidden dependency on migrate_drupal.With the move to discovery by attributes, dealing with multiple "providers" across all plugin types...
View ArticleEach class using DRUPAL_* constants from system.module should define its own...
Problem/MotivationSplit from #2807785: Move global constants from *.module files into interfaces, comment #64, suggested by @Berdir.DRUPAL_DISABLED, DRUPAL_OPTIONAL, and DRUPAL_REQUIRED are too generic...
View Article