Problem/Motivation
The Drupal core Bartik theme was released as part of Drupal 7 in January 2011, 9 years ago. It was great! It also stayed pretty much the same ever since and been included with Drupal 8 and even Drupal 9. The web moved forward a whole lot in 9 years and Bartik is not doing justice to Drupal anymore. It was great in 2011, it is not great anymore.
Proposed resolution
Drupal 9 needs a new default frontend theme. A new, modern, clean frontend theme, Olivero is being built in the contributed project https://www.drupal.org/project/olivero for inclusion in Drupal core. See http://lb.cm/olivero for a demo of Olivero.

Designs are at #3088378: Designs for new front-end theme for Drupal 9.
Olivero “alpha” criteria (Initial Core Inclusion)
Must-haves for the alpha release:
Features
- #3115420: Add search block(s) to the header
- #3115190: Configure and theme the Header Region using POC components
- #3115194: Configure and theme the body field using work pulled from POC
- #3117239: Theme inline Media types
- #3117242: Theme/style the Form elements
- #3118063: Theme Warning/Error Messages
- #3118065: Theme Pager/Pagination component
- #3118071: Theme Content/Article Listing - Node Teaser
- #3118086: Theme/Config Comments
- #3118088: Theme Tags/Categories component
- #3115160: Adding additional menu items overlapping with logo
- #3122990: Style administrative tabs
- #3151500: Style views grid row style plugin markup
- #3123836: Support route:<nolink> and route:<button> within Olivero menus
- #3152050: Style core's progress bar
- #3153060: Theme forum module
- #3153061: Theme Book module pages and menu
- #3135511: Create basic test coverage for Olivero theme
- #3153860: Theme and Configure the RSS Feed Views Block
Accessibility
- #3153334: All caps titles and Dyslexia
- #3153806: incorrect use of aria-labelledby in powered-by-drupal block
Design/Usability improvements
Bugs
- #3152535: Site breaks when primary menu has external link
- #3151586: Remove bullet of link action
- #3139046: Search block form outside of header is not styled properly
- #3165973: Text string "ago" should be translatable within theme file
Technical debt
- #3165971: Prefix final section of block template suggestions in olivero.theme
- #3165972: Add todo on form table header code block in theme file
- #3165453: Patch generation script unintentionally copying core's .prettierrc.json
- #3165448: Patch script generates *.pcss.css fies within the dist directory
- #3165454: Document source and license of polyfills
Core inclusion/Dependencies
- #3153009: Create "Wide" image style for standard profile - "Should have"
- The following PostCSS plugin
Olivero “beta” criteria
Must-haves for the beta release:
Features
- #3095736: Create content for Drupal's initial "Getting started" page (after minimal or standard profile installation)
- #3171156: How to handle new core "wide" image style within article content type
- #3172452: META: Convert codebase to use postcss-preset-env
Accessibility
Bugs
- #3153535: Don't introduce new uses of REQUEST_TIME, it is deprecated for removal before Drupal 10
- #3152382: Radios and checkbox not aligned with label in settings tray
- #3174065: XSS vulnerability in menu--primary-menu.html.twig
- #3174067: Avoid duplication in field--comment-body.html.twig
- #3174069: book-all-books-block.html.twig and book-tree.html.twig exist twice
- #3174105: Fix tests for Olivero in core patch
- #3174070: olivero_theme_suggestions_field_alter is too generic to enforce template
- #3165970: Teaser date/time format should not be hardcoded
Core inclusion/Dependencies
- #3124339: Add new image style to Standard installation profile and update CT Article Default display
Should have for core inclusion, assuming underlying support
API changes
None.
Data model changes
None.
Release notes snippet
A new beta experimental frontend theme has been added to Drupal core called Olivero. This is a new modern and clear theme that is planned to become the new default Drupal theme later (replacing Bartik). Subtheming Olivero is currently not supported, but formal support may be included in the future.
The theme is named after Rachel Olivero (1982-2019). She was the head of the organizational technology group at the National Federation of the Blind, a well-known accessibility expert, a Drupal community contributor and a friend to many.
| Comment | File | Size | Author |
|---|---|---|---|
| #226 | 3111409-2-225.patch | 1.18 MB | alexpott |
| #225 | 221-225-interdiff.txt | 34.41 KB | alexpott |
Issue fork drupal-3111409
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:
- 3111409-Olivero-core
compare
- 9.0.x
compare
- 9.1.x
changes, plain diff MR !7
Comments
Comment #2
gábor hojtsyComment #3
gábor hojtsyComment #4
mtiftComment #5
xjmExcited about this! Bartik had its place, but this is long overdue.
https://www.lullabot.com/articles/update-status-drupals-new-olivero-theme says:
Note that a few weeks is still very tight lead time for a core review of a new theme. #3079738: Add Claro administration theme to core took six weeks from a complete patch to alpha stability, and then it was another week or two before it was marked beta. And that was when the frontend framework manager had already been working on and reviewing the theme for months before that, so was familiar with everything. So the timeline is very tight for core reviewers even if we end up delaying beta1 until May.
That said, having a complete roadmap here soon and an initial prototype posted within the next two months for an alpha experimental experimental theme (that would not be released in 9.0.0, but committed to the development branch) would still significantly increase the chances that the theme could be released as a stable theme in 9.1, because we'd have a full six months of development time from the first core prototype until the 9.1 beta deadline.
Comment #6
xjmComment #7
mherchelComment #8
proeungComment #9
xjmA couple changes we'll need right off the bat for Drupal 9 compatibility:
We are currently upgrading from Normalize.css major version 3 all the way to 8, which has required numerous changes to core themes and caused some regressions.
See here: #2821525: Update normalize.css to the most recent version
This will likely impact Olivero as well.
Core themes are also being decoupled from Classy and Stable (so that they have no base theme and receive markup/accessibility/styling bugfixes directly in each issue for each minor release). See:
Olivero will need the same changes.
Comment #10
proeungComment #11
proeung@xjm Thank you for letting us know about the Drupal 9 theme compatibility. We will make sure that the Olivero theme does not have any dependency on the Classy theme.
Comment #12
andrewmacpherson commented#3083081: Additional accessibility testing on design of new theme is poorly scoped. Can I have some feedback on the comments I left there?
Comment #13
xjm9.0.0-beta1 has been released, so moving this to the 9.1.x branch as I'm triaging our beta should-haves. 🙌
Comment #14
gábor hojtsyMaking title more specific since this is a much awaited first new thing in Drupal 9.(1).
Comment #15
proeungComment #16
proeungComment #17
mherchelHoly cow! It's the first Olivero core patch!! 😍 🥰 😘 😅 😂 🤣 🤪 😇 🤯 🙌
Note this just adds it to core, it doesn't set the default theme from Bartik to this.
Comment #18
mherchelComment #21
mherchelComment #22
mherchelComment #23
mherchelComment #24
mherchelComment #25
mherchelComment #26
mherchelComment #27
mherchelComment #28
mherchelComment #29
mherchelComment #30
andrewmacpherson commentedMinor title tweak; version has it's own field.
Comment #31
proeungComment #32
mherchelComment #33
mherchelComment #34
proeungComment #35
gábor hojtsyre @andrewmacpherson Minor title tweak; version has it's own field.
The reason I added the version in March is:
Adding it back with these reasons.
Comment #36
andrewmacpherson commentedI don't understand #35 - There is a version field, and it clearly says 9.1.x-dev, not 8.
There's nothing special about 9.1. I'm very concerned about how much of the accessibility maintainers's time is taken up chasing the arbitrary urgency of strategic initiatives, at the expense of fixing accessibility problems in modules which are already marked stable, or completing work which earlier initiatives left for follow-up (so they could hit their arbitrary version target). In particular, I'm thinking of #3002770: Provide authors with tools to manage transcripts and captions/subtitles for local video and audio which is a large WCAG hole created by the media initiative not using the accessibility gate. I don't want to treat Olivero or Claro as more urgent than that, and leave the WCAG time-based media criteria until 9.2 or 9.3 (because that would make us as bad as Twitter).
Comment #37
gábor hojtsyI see you are frustrated with the 9.1 goal.
The goal being 9.1 will not be different whether it is in the title or not. It makes it more apparent if its in the title and makes it potentially easier to attract contributors to resolve issues including but not limited to accessibility problems. But the goal is not changed by removing it from the title.
My understanding is the Olivero team brought the theme to Drupal accessibility office hours and according to feedback I heard it had issues that the team is working on and considers feasible to fix soon based on their focus. Also @mherchel inidicated that the Olivero team is working with the US National Federation of the Blind, (where Rachel Olivero was head of the organizational technology group) to do real world testing of the theme in July. So what I am seeing here is an expansion of accessibility involvement and I don't think you are eating from the same fixed size pie so to speak.
The theme was named for Rachel Olivero and I have no doubt that the team working on will do all they can to make it accessible. I don't think telling the Olivero team to not focus on a 9.1 date would help attract more work on other accessibility issues. Attracting more accessibility folks to Drupal the way the Olivero team does on the other hand could actually help.
Re #3002770: Provide authors with tools to manage transcripts and captions/subtitles for local video and audio in particular, I reached out to you on slack to discuss next steps, tweeted it and will review the child issues it is blocked on.
Comment #38
proeungMoved all of the PostCSS dependency issues to the “stable” criteria.
Comment #39
xjmThe title is a bit confusing -- there is no way Olivero will be the new default frontend theme of 9.1. The minimum goal is to add it to core as an alpha experimental theme, although the team might want to target beta or stable as described above. However, even if it gets to stable (including passing the accessibility gate), we would not want to switch the default theme of Standard until Olivero had already been stable in core and had any standard profile blockers solved.
I do share @andrewmacpherson's concern about should-have accessibility work not being completed when features are marked stable. (#3002770: Provide authors with tools to manage transcripts and captions/subtitles for local video and audio is an example but also see all the outstanding issues on #2834729: [META] Roadmap to stabilize Media Library, #3007978: Accessibility Plan for Layout Builder, etc.) The accessibility aspect of this is part of a larger need to finish the work we've started on these features, and for many of them, outstanding accessibility and UX work are part of what's blocking making them part of the Standard profile. I believe the DrupalCon Global keynote will include some thoughts about that aspect of the features in core so far.
It's worth noting though that as @Gábor Hojtsy points out, the same people who might implement media captioning are not the ones working on this theme. On the other hand, setting per-minor goals does create pressure on maintainers to provide reviews in time for those goals, so that is something for any initiative team to be conscientious of.
Comment #40
froboyUpdating the preview link as per #3157745-2: "Latest Tugboat Preview" link broken
Comment #41
lauriiiIs there a more recent version patch for Olivero than #17 or should I start by testing the contrib project? Also, is the roadmap written currently so that Olivero will be included in core as stable?
Comment #42
gábor hojtsy@lauriii: my understanding is that the current goal is to get in as beta, but the issue summary does not seem to reflect that indeed.
Comment #43
mherchel#17 is the latest, although there will be a new patch shortly (I have one more issue that I want to tackle, and then roll a release)
It won't be included as stable... I would love that to happen, but I don't have the time to make it happen in that short period of time.
Comment #44
gábor hojtsyUpdated the intro and headers to make it evident which are current core criteria and not. Two things I noticed that still definitely needs to be updated:
1. The stable criteria includes must have core dependencies for inclusion. That is contradictory to making it available as beta in core, no? Is that must have dependency only must have for the theme to become stable? Specifically #3092753: Allow PostCSS Plugin “Custom Media” in core for Olivero theme.
2. The timeline is not up to date anymore. It says first beta on July 3, which did not yet happen.
Comment #45
lauriiiIt would probably make sense to create a new milestone before beta for the core inclusion must haves. This would be helpful because Olivero could be added to core code base, even if it's not beta. The PostCSS related issues should be moved into the group that lists must have issues for inclusion since when Olivero is in core, it should rely on the same PostCSS tooling that we use for Claro.
Comment #46
mherchelUpdated core patch attached. Will address the last couple comments in a bit.
Comment #47
lauriiicss/distandcss/srcfolders? Both of them seem to contain both, .pcss.css and .css files.Let's make sure settings tray works as expected with Olivero. At the moment some styles are leaking to Settings Tray.
Could we handle the case of having too many menu items more gracefully?
Is there a specific reason to disallow configuring the location of comments in the Field UI?
We should override
Drupal.theme.messagetoo to make sure JS messages get rendered correctly.Is this intentional?
We should document the source and the license of the polyfills here
Let's add todo to remove this once #3143465: Add NodeList.forEach polyfill to support IE11 has landed.
Nit: s/olivero/Olivero
Let's open an issue to allow configuring this.
Shouldn't this be controllable by the date and time formats settings? I think it's important because the format could vary depending on the language or region.
Let's prefix the final section of the suggestion to avoid overlaps
Let's add a todo to change this after #3099026: Claro's preprocessing of field multiple value form's table header cell removes potential changes by others has landed
This should be translatable
Should we remove this for now since I assume this isn't needed until the social block region is added?
Comment #48
mherchelPhew! First block of replies below. Will work on others shortly.
This is a bug in our core patch script. Issue filed at #3165448: Patch script generates *.pcss.css fies within the dist directory
We have a meta issue at #3124796: META: Adjust Olivero codebase to meet Drupal coding standards.
Note that some of the markup is inserted through the page.html.twig, and should not need behaviors (let me know if this is incorrect). We're using behaviors in menus and messages. I will do some additional inventorying to check to see if there's anything else.
We have an issue for this at #3135511: Create basic test coverage for Olivero theme.
Opened #3165449: Ensure all SVGs are optimized
The wide viewport of the navigation and search currently work without JS. The mobile menu currently does not (opened #3165450: Ensure mobile menu is displayed when JS is disabled)
#3149714: Olivero: Audit form items within settings tray for visual inconsistencies
We're looking into it. Currently you can go into the theme settings and change to an "always on" mobile type navigation. I have some reservations about handing this automatically. We can discuss at some point.
Not sure. This might be something we copied over from another theme. Opened #3165451: Olivero should allow the placement of comments via field ui
Created #3165452: Override Drupal.theme.message to to make sure JS messages get rendered correctly
Nope. Looks like an issue with patch genereation script. Opened #3165453: Patch generation script unintentionally copying core's .prettierrc.json
Opened #3165454: Document source and license of polyfills
Opened #3165455: Add @todo to remove nodeList.forEach() when core patch lands.
Comment #49
mherchelThis is weird. When I look at the code, it is capitalized correctly. See https://git.drupalcode.org/project/olivero/-/blob/8.x-1.x/olivero.theme#L79
Should this be a core issue? Or a setting in Olivero?
That makes a lot of sense. Opened issue #3165970: Teaser date/time format should not be hardcoded
Opened #3165971: Prefix final section of block template suggestions in olivero.theme.
Opened #3165972: Add todo on form table header code block in theme file
Opened #3165973: Text string "ago" should be translatable within theme file
Opened #3165975: Remove unneeded todo
Comment #51
proeungComment #52
proeungComment #53
proeungComment #54
proeungComment #55
proeungComment #56
mherchelComment #57
proeungComment #58
proeungComment #59
proeung@mherchel and I reviewed all of the issues in the Beta and Stable criterias and we adjusted the roadmap to reflect the remaining work that's needed for the theme.
Comment #60
mherchelComment #61
mherchelUpdated patches for the latest tag (beta2) of Olivero attached!
Comment #63
mherchelComment #64
mherchelComment #65
mherchelComment #66
mherchelComment #67
mherchelComment #68
mherchelComment #69
mherchelComment #70
mherchelComment #71
mherchelComment #72
webchickReviewed the list of blockers with @mherchel, @proeung, and @Gábor Hojtsy. Made a bunch of recommendations in terms of de-scoping from "must-haves". There was very good work that was done to make sure that the technical debt was adequately captured here, which is important for release management review. However, a lot of things in the list qualify as "yeah we ought to fix that" or "actually that's more of a support request" and so on. We banged through the list to cut it down tremendously so it's mainly focused on the gates (attention to docs, CSS interoperability, accessibility, etc.). (@mherchel is going to be updating the issue summary to reflect this.)
I reviewed the demo site and clicked on lots of things, uncovering new delight about every ~7.2 seconds. The logo-to-hamburger menu! The search box! The responsive grids! The attention to detail here is superb, and as much as I tried to break something, I couldn't. Well done, everyone. I would love to see us view "must-haves" through a very critical lens, so we can get this in front of users as soon as possible because this is such a tremendous step forward! :O GREAT WORK, Olivero team!!
Comment #73
nod_Got my comment eaten, writing the short version, sorry.
props.body.classList.remove('js-overlay-active', 'js-fixed')that should be 2 lines for IE11 compat. (only one argument supported for the remove function).In any case really glad to see some vanilla JS. Once the drupalSettings thing is cleared up it's good to go on the JS side.
Comment #74
proeungI just update our rodmap based on the recommendations from the product managers, @webchick and @Gábor Hojtsy. All of the issues should be placed in the correct criterias.
Comment #75
mherchelComment #76
mherchelNew patch! I'm also including the interdiff since the last review (comment 47).
Comment #78
lauriiiI reviewed most of the CSS. Here's what I could find so far:
Could we provide a CSS class indicating whether the comment is on the main level or not instead of using CSS? Technically this is against BEM since block elements shouldn't depend on other elements on the page.
Can we customize the markup so that either
.linksand.text-contentbecome their own blocks or they are rendered as elements inside.comment?Could we make this a reusable component so that it's not tied to the article node type and field with name image?
How is this dependent on
.fieldset__legend? Couldn't this be defined with the other.fieldset__labelstyles?Where this can be tested?
Should we create new component for the footer menu instead of allowing placing any menu in the footer?
Let's create issue for this @todo and reference it here.
We could make this element of the
.search-block.This could be just
.block-search--wide.This should probably also be an element of
.block-search.Maybe there's a better name for this because this is only left when displayed on LTR.
.nav-primarydoesn't exist at the momentCan we add a class to the .menu so we don't have to nest it inside
.secondayr-nav?Can we untie this from the image machine name?
Can we untie this from
user_picturefield?This is in violation of BEM because
.form-typeblock element doesn't exist.This should be an element of
.block-search.This is not an element of the .secondary-nav because it is not inside it.
These shouldn't be tied together. Not sure how to best handle this.
I think vertical-tabs would look nicer if we removed padding from this element.
Comment #79
proeung@lauriii Thank you for taking the time to review the patch that we've submitted on 9/23. These suggestions are fairly straightforward and I went ahead and added them into our issues queue so that folks can start picking them up. Also, I'm assuming that we'll get additional feedback for the templates and preprocess functions soon from you as well, is that correct?
Please see all of the issues that came out from the .pcss.css code review.
Comment #80
proeungComment #81
lauriiiThank you for filing follow-ups for the feedback in #78 @proeung! I don't think any of the feedback raised in that comment needs to be tagged as beta blocker since all of those changes can be done even after the beta.
Comment #82
proeung@lauriii Sounds good! I just moved all of the latest feedback issues into the “stable” criteria. :)
Comment #83
mherchelComment #84
catchGábor Hojtsy pinged about a release management review.
For beta inclusion, the main thing for release management is whether there are going to be any updates or API changes required during beta. Given this is a theme, there should not really be API changes, but theme configuration changes, or other changes to core that require updates it would be good to document and ideally fix before inclusion.
One from the issue summary that sticks out along those lines: #3165970: Teaser date/time format should not be hardcoded. Would be useful to document any others in the issue summary/comments here too.
Comment #85
mherchelComment #86
mherchelThe only other similar one is also in the summary above:
#3171149: Set article content type to use "wide" image style within standard profile - This one needs to be tackled only when making Olivero the default theme out of the box.
Comment #87
lauriiiThere's no block for this modifier.
The primary-nav block element is missing.
Comment #88
lauriiiDidn't mean to add those tags back.
Comment #89
lauriiiTagging for framework manager review since we do need a sign-off from a backend framework manager as well.
Comment #90
mherchel1. At least "User pictures in posts" and "User pictures in comments" don't seem to work.
I think this is working properly, but I opened an issue for discussion at #3173825: "User pictures in posts" and "User pictures in comments" don't seem to work
2. There's no block for this modifier.
Opened #3173827: Correct BEM classname within site branding
3. The primary-nav block element is missing.
Opened #3173829: Correct BEM classname within menu primary
4. JavaScript should be documented according to..
Opened #3173832: Ensure Olivero's JS documentation matches standards
Comment #91
mherchelWe frequently test on multiple browsers. I do most of my primary development on Chrome, but also test extensively on Firefox, and Safari.
I have two virtual machines that I use to test old versions of IE11 and MS Edge. I also test high-contrast mode within these VMs.
As far as physical devices, I have a new Iphone11, and old iPad, which I test mobile Safari. I also have a Google Pixel2, which I test Android's version of Chrome.
I have not done any testing on browsers such as Samsung, or Opera.
Comment #92
mherchelComment #93
katannshaw commentedThe National Federation of the Blind (NFB) has returned their low vision accessibility test results which you can watch in a video at https://zoom.us/rec/share/G-1w9HjT0tUlWhoJnGkmlqspVFfsxSr97Dl7077fkIgGfA...
Here is a test results summary from the tester:
And here is a breakdown of what I heard in the video:
TESTED WITH
OS/Browser: Windows Chrome and Firefox w/Mac
Mouse: Yes
OVERALL RESULT
Very happy
"Knocked it out of the park”
CONTRAST
No issues
Boring video because it’s very accessible (this is good news)
FOCUS ORDER
All makes sense
Regular reading order is set up properly
Great left to right/Top to bottom
Keyboard nav is good
FOCUS STYLE
Looks good
It’s easy to see the boxes
SCALABILITY (How well can site increase size aka ZOOM)
Hamburger menu worked on zoom and it still works
Focus order and box still look good
Contrast still good
I'll be posting the screen reader test results soon.
Comment #94
mherchelAdding browser testing issue to stable blocker.
Comment #95
lauriiiAwesome! I think from my point of view the roadmap now looks good. The theme looks awesome and the code looks solid. Well done! 👏 Looking forward to working with y'all in core!
Comment #96
mherchelSwapping out an individual JS coding standards issue for a meta JS coding standards issue.
Comment #97
mherchelSome issues from @nod_'s comment in #73
1.
Opened #3173900: Refactor Olivero's JavaScript Drupal behaviors to use once()
2.
Opened #3173901: JavaScript: missing parameters in a few closures (scripts, navigation, second-level-navigation)
3.
Opened #3173903: JavaScript Pass data between functions via Drupal object (instead of drupalSettings)
4.
I think you might be thinking of the classList.toggle() method instead of remove(). Either way, I opened #3173905: Olivero: node.classList.remove() only supports one argument
Comment #98
larowlanHere's a framework manager review.
It was too hard to review using Dreditor so I applied the patch locally, and just made the changes I saw fit, as per the interdiff, then listed the rest below.
Things I found and fixed while reviewing
olivero_preprocess_blocksets a#olivero_is_header_search_submitrender property, which is picked up inolivero_theme_suggestions_input_alter. I think the code inolivero_preprocess_blockshould instead set'#theme_wrappers' => ['input__header_search']and then you don't needolivero_theme_suggestions_input_alteror the whole#olivero_is_header_search_submitdance\Drupal::currentUser()that I improvedThings that need fixing
Must-have
Olivero doesn't have security opt-in, so its ok to discuss this in public in my book. The template file menu--primary-menu.html.twig has an XSS vulnerability through the use of the

rawfilter. Using that is always a red-flag, if you feel you need to reach for it, don't 😁.Should-have
The template file
field--comment-body.html.twiglooks to largely duplicatefield.html.twigwith just a different class, can we do that using include/extend/embed to avoid duplication? It looks like the class being added is already added byolivero_preprocess_fieldso the whole file may now be redundant.Must-have
The template
book-all-books-block.html.twigexists twice, once in the navigation folder and again in the blocks folder. We should remove one. Similarly forbook-tree.html.twigMust-have
The code in
olivero_theme_suggestions_field_alteris too generic to enforce the templatefield--type-entity-reference--formatter-entity-reference-label.html.twigfor all entity-reference fields using the label formatter, it uses class names like field--tag, so appears to be specific to the tags field, we need to use a less general template suggestion so it only applies for the tags fieldShould-have
The template
menu-local-task.html.twigcontains invalid HTML,divisn't allowed inside abutton- we should endeavour to run markup from the theme through the W3C validator to prevent a flood of core-issues about invalid markup 😅Should-have
olivero_preprocess_nodehard-codes the date format, we should ship a new date format in the theme's config so this can be modified easily by site owners. Similarly forolivero_preprocess_search_resultMust-have
Both
olivero_theme_suggestions_block_alterandolivero_preprocess_blocktry to load the block by ID, but this should already be available as$variables['#block']as it is added by\Drupal\block\BlockViewBuilder::buildPreRenderableBlockShould-have
The comment on
olivero_preprocess_menu_local_tasksno longer seems relevant, there's no use of #attached in the function body.Should-have
There is no indentation to indicate a comment is a reply to another comment - is that intended? Given there is a file comments.es6.js, I assume not - as that functionality looks to be intended to collapse replies.

Questions
// @todo, I'm not sure we even need the .mobile-buttons container anymore.- can that be resolved / removed?Observations/Notes to self
{a theme folder}/srcin certain environments, it seems to be more problematic when the admin theme is a different theme -\Drupal\olivero\OliveroPreRendermight have issues with this, its one to watch.Comment #99
larowlanComment #100
larowlanSorry uploaded the wrong file instead of the interdiff
Comment #101
larowlanI missed another use of == instead of === here, can this be fixed in next pass.
FYI the instanceof here is super defensive, happy if you want to remove it, its unlikely someone would swap out the User class with something that's not a content entity.
Comment #103
larowlanPart 2 of the review, test coverage
Here's things in the .theme file I think we should have tests for, as they are likely to break if there are array structure changes.
These would be stable blockers in my book
Comment #105
mherchelreplies to @larowlan's part one review in #98
Things that need fixing
Opened #3174065: XSS vulnerability in menu--primary-menu.html.twig
Opened #3174067: Avoid duplication in field--comment-body.html.twig
Opened #3174069: book-all-books-block.html.twig and book-tree.html.twig exist twice
Opened #3174070: olivero_theme_suggestions_field_alter is too generic to enforce template
Opened #3174074: menu-local-task.html.twig contains invalid HTML
This is a known issue: #3165970: Teaser date/time format should not be hardcoded
Opened #3174075: Both olivero_theme_suggestions_block_alter and olivero_preprocess_block should NOT load block by ID,
Opened #3174101: The comment on olivero_preprocess_menu_local_tasks no longer seems relevant
I think this isn't correct, but opened #3174077: There is no indentation to indicate a comment is a reply to another comment to document or fix.
Questions
layouts for Layout Builder integration? This can be a follow-up.
We override the stylinig of the core layouts. See https://git.drupalcode.org/project/olivero/-/blob/8.x-1.x/olivero.info.y...
Opened #3174088: Remove .mobile-buttons comment within Olivero's scripts.es6.js
Comment #106
mherchelUpdating summary putting @larowlan's review's "must haves" as beta-blockers.
Comment #107
mherchelMoving "Should have" items to "stable" blockers within the summary.
Comment #108
mherchelComment #109
mherchelAdding failing tests #3174105: Fix tests for Olivero in core patch as beta blocker.
Adding additional test coverage #3174107: Add additional testing coverage for Olivero as stable blocker.
Comment #110
mherchelAdding #3174070: olivero_theme_suggestions_field_alter is too generic to enforce template as a beta blocker as it is listed as "must have" in @larowlan's review.
Comment #111
andypostjust 5c, additionally to comment replies/hierarchies there's related to UX of comments #169938: Usability: Configurable comment link on teasers
Comment #112
catchI moved #3165970: Teaser date/time format should not be hardcoded to must-have since if it's committed after the theme, we'd need an update function for sites that have Olivero installed.
Comment #113
mherchelNew patches attached. The main purpose is to verify that the tests pass as part of #3174105: Fix tests for Olivero in core patch.
Note that the interdiff is actually larger than the patch because of all the CSS refactoring in #3172452: META: Convert codebase to use postcss-preset-env.
Many improvements (yet still a couple beta-blockers left) including:
Comment #115
mherchelAdding #3048848: Syndicate block outputs wrong feed URL as a related Drupal core issue.
Comment #116
mherchelNew patch to test the automated tests 🤞
Comment #118
berdirDrive-by comment after commenting on #3175051: See if we can leave the block around in BlockViewBuilder::preRender so front-end themes can make use of it. Sorry if that has been discussed already, just my opinion as a non-frontend person who wasn't involved in the process (I know, annoying).
There seem to be quite a few preprocess and theme suggestion functions that are pretty opinionated/hardcoded for a core theme and/or are fixing things that should maybe instead actually be done in the modules adding those things? Most might be acceptable to get in, but maybe could have follow-ups to clean up or so?
Some examples:
* If those block theme suggestions are useful for this theme then they might be useful for everyone and we could consider adding them by default? That would resolve one possible reason why themes need to load the block entity. FWIW, adding new theme suggestions by default can influence custom ones and the order can be tricky too, so BC needs to be considered. It's also not free to have a lot of theme suggestions.
* shortcut customizations, it's exceptionally rare to have shortcuts in frontend theme enabled imho but if something like not-showing-it-on-frontpage is a thing, maybe that should be done in shortcut.module? as an option? not sure.
* Overriding the date variable for the node template/preprocess with a custom one provided by the theme seems a bit unusual (again, if such a format is useful, add it to standard?) and also goes against the work to make things like author/label/date variables not hardcoded. See #3015623: [PP-many] Remove outdated code relating to "Expose Title in Manage Display". I know it's in a weird middle state right now with theoretically being configurable but it requires some other module to flag it as such first, but we should at least have a plan on how to complicate the very slow and tedious work around improving that further.
Comment #119
gábor hojtsy@Berdir: good observations. I think the beta period is a good time to get this to people's screens and have a chance to figure out which of those are worth generalizing.
Comment #120
mherchelNew patch. The purpose of this is primarily to check that the automated tests pass #3174105: Fix tests for Olivero in core patch
🤞🤞🤞🤞🤞🤞🤞🤞🤞🤞🤞🤞
🤞🤞🤞🤞🤞🤞🤞🤞🤞🤞🤞🤞
🤞🤞🤞🤞🤞🤞🤞🤞🤞🤞🤞🤞
🤞🤞🤞🤞🤞🤞🤞🤞🤞🤞🤞🤞
🤞🤞🤞🤞🤞🤞🤞🤞🤞🤞🤞🤞
Comment #121
mherchel🙌
Comment #122
gábor hojtsyMoving #3174075: Both olivero_theme_suggestions_block_alter and olivero_preprocess_block should NOT load block by ID, from must have for beta to should have for beta based on discussion with @larowlan, given that the underlying core support does not even exist yet.
Comment #123
catchIs this configuration finalized or are any issues likely to require updating it?
Same question for the block config that ships in config/install - is any of this likely to change during beta?
Comment #124
mherchelWe don't foresee any issues that will necessitate an update. However, we do want to commit the following patch that will include a theme setting that will be an additional setting to the schema. That won't require any updates, however. We hope to add this post-beta.
#3174774: Enable option to "sticky" the sidebar
Comment #125
mherchelAfter talking with @Gábor Hojtsy in Slack, we need to stop introducing new features and keep the patch static (except for necessary bug fixes).
With that in mind, attached is [hopefully] the final patch prior to the initial core commit. This patch includes several bug, visual, code quality, and accessibility fixes. This patch also reverts the new "sticky sidebar" feature in #3174774: Enable option to "sticky" the sidebar, which we hope to add in as a post-beta feature at a future date.
Also note that this patch is generated by core's compilation script (as opposed to Olivero's) that does not include the
pxtoremPostCSS plugin (which we hope to add in #3117698: Allow PostCSS Plugin “Px to Rem” in core for Olivero theme), so the interdiff is larger.Also, please let me know if you want additional interdiffs, and I'll get em up ASAP.
Comment #126
catchFrom that issue:
This changes the default configuration - won't sites that have Olivero installed end up with a config diff (i.e.
+ sticky_sidebar: 0? And is it an intentional decision to not update to match the new default config for those sites?I think there are three options:
1. Add it back to the patch (no update) to commit before beta
2. Commit it later with a post update to set the default to 0
3. Commit it later with a post update to set the default to 1
Since themes can't provide update functions, the update would have to happen in system module checking the existence of the theme and config. There's also the question of whether we'd want to add a system post update for an experimental theme at all, which might mean deferring that feature until Olivero is stable and adding it in a minor release afterwards.
Comment #127
mherchelI took it out of the patch after speaking with @Gábor Hojtsy. We were worried that adding that new feature into the theme would require re-reviews (on a very short timeline!).
We could easily generate a new patch to add it in, however, this patch needs to get in before Friday, and I don't want to create new time-sensitive work for reviewers.
Thoughts on this?
Comment #128
mherchelI also want to note that this is a somewhat minor feature that we could just omit from the final release of Olivero.
Comment #129
catchAdding it after Olivero is committed means we'll need to write an update function + test coverage, that runs on every Drupal install regardless of whether Olivero is installed or not (albeit with an early return if it isn't) - since themes can't provide their own updates. So it's preferable from a release management/stability perspective to either add it now before commit, or much later once Olivero is stable, but not so much in-between.
Comment #130
mherchelMakes sense. Let's defer this until much later (once Olivero is stable), so we can avoid any need for re-reviews. I'm marking #3174774: Enable option to "sticky" the sidebar as postponed.
Comment #131
catchOK I haven't reviewed all the code here, but I think that's everything from an API change/data integrity perspective either dealt with prior to commit or postponed to after stable now, so untagging for release manager review.
Comment #132
mherchelPer @Gábor Hojtsy, it's up to the Olivero team to do a final RTBC now that the "needs" tags are removed.
I took one last look through the code, and the theme is in a really good place. Excited to get this in!
Comment #133
mherchelOn top of people already listed in this issue, the following people have issue credits for Olivero and should be credited. This is sorted by commit count.
Comment #142
gábor hojtsyComment #153
gábor hojtsyComment #163
gábor hojtsy@mherchel: this should now include all the credits requested :)
Comment #164
alexpottWe need to add drupal/olivero to core/composer.json - we need
"drupal/olivero": "self.version",in the replace section. After adding it you need to runcomposer update drupal/corein the root directory to ensure that composer.lock is updated correctly.I guess we can do this in a follow-up but normally this is included when we add something. Following the above instructions will show that the the recent frontmatter library addition didn't do it correctly... so maybe follow-up is fine /shrug.
Comment #165
mherchel@alexpott brought up the fact that I only added Olivero committers for issue credit, which is incorrect. We want all the contributors to get credit. Here is the additional names to add (sorry!)
Comment #166
mherchelI'm going to work on the composer changes that @alexpott mentioned in #164 shortly, expect a new patch and interdiff in a bit!
Comment #167
mherchelUpdated patches are attached with composer changes.
Note that composer made some changes that I didn't expect in
composer/Metapackage/CoreRecommended/composer.json.Not sure if this is correct or not. Either way, patch + interdiff is attached.
Comment #180
gábor hojtsyComment #191
gábor hojtsyComment #202
gábor hojtsyComment #211
gábor hojtsy@mherchel: credited all the folks you listed in #165 now. Thanks all for this amazing job!
Comment #212
alexpott@mherchel ah you must of run the composer commands while on a branch - you need to prefix the commands with
COMPOSER_ROOT_VERSION=9.1.x-dev- i should have written the commands this way - sorry.Patched attached:
navsto the dictionary.Leaving at RTBC because all of this is the result of automated checks.
Comment #213
alexpottThis is because these files are using the
frunit. Which is not in our list of allowed units. We should open a follow-up to discuss adding it.Comment #214
mherchelPatch looks good! Thanks for working on this!
Opened follow up issue #3176589: Add FR units to list of CSS allowed units.
Comment #215
lauriiiI added #3117698: Allow PostCSS Plugin “Px to Rem” in core for Olivero theme to a beta blocker for now because of it's impact to accessibility. Alternative solution would be to convert the source to use rem values where applicable.
Comment #216
lauriiiWe should make the book navigation markup and CSS in Olivero follow BEM.
If the image style doesn't exist, there's an exception. Given that, I don't know if the current priority of #3171570: Remove Olivero's custom hard-coding of the image style within article content type's full view mode is correct.
Wondering if we should use something else than modern for describing the theme. Based on https://www.lexico.com/definition/modern, it is an adjective referring to the present or recent times as opposed to the remote past. This is true now but this wouldn't necessarily be true in 10 years.
Is there a less technical term than flex layout? This is displayed in the UI and I could imagine that non-technical users could find this confusing.
What are you planning to do with this configuration if Olivero ends up supporting color module in #3086514: Investigate use of the changing color themes for Olivero?
These are theme overrides.
We should add available variables to the documentation.
Let's reference issue for this todo.
This should be converted to @file documentation and should include variables passed for the template.
Let's document this in the @file documentation.
These are missing from the available variables list.
Missing @file documentation.
mediais missing from the available variables list.Missing @file documentation.
Comment #217
catch#3171570: Remove Olivero's custom hard-coding of the image style within article content type's full view mode this also looks like it could end up being another configuration change?
Comment #218
mherchel#3176893: Make the book navigation markup and CSS in Olivero follow BEM
#3176865: [Code Review] Add a check if the "Wide" image style does not exist
#3176871: [Feedback] Generate a new screenshot for the appearance page
#3176889: [Feedback] Add new description to Olivero description
#3176901: Rename Olivero's "Flex Layout" region description
#3176867: [Code Review] Ensure that "primary admin actions" block is placed
#3176874: Relabel blue color in site branding color theme setting
#3176906: Correct twig documentation in various Olivero templates
#3176908: Add variables to Olivero's fieldset.html.twig documentation
#3176909: Reference issue in todo in Olivero's get-started.html.twig
#3176910: Move Olivero's preload.twig documentation to @file and include variables passed for the template.
#3176911: Document [noscript_styles] in the @file documentation of Olivero's html.html.twig
#3176912: Missing variables in Olivero's block--secondary-menu--plugin-id--search-form-block.html.twig
#3176913: [Olivero Code Review] Missing @file documentation in block--system-powered-by-block.html.twig
#3176914: Media is missing from the available variables list in Olivero's media.html.twig
#3176919: Missing @file documentation in Olivero's node.html.twig
Comment #219
mherchelReply to @catch #217
After setting Olivero to become the default front-end theme for core (which I hope happens in 9.2), we'll need to do #3171149: Set article content type to use "wide" image style within standard profile, which will set the full view mode to use the new "wide" image style (which already exists in 9.1).
This will not require config changes within the Olivero theme, we will just remove the appropriate code from
olivero_preprocess_field__node__field_image__article()Comment #220
mherchelPhew! This new patch integrates @alexpott's changes from #212, plus fixes the following issues 🤞🤞🤞
Comment #221
mherchelUpdated patch that renames
offcanvas.csstooff-canvas.cssComment #223
alexpottDiscovered #3176990: Files starting with . in /core are not spellchecked will reviewing this.
Comment #225
alexpottFixing the composer test, plus fixing incorrect file modes and fixing composer.lock funding information.
Comment #226
alexpottAnd now for the patch - lol.
Comment #227
lauriiiThe interdiffs look great. From my point of view this is starting to look good. I believe rest of the feedback in #216 could be addressed after this is committed to core, but before marking the theme stable.
Comment #228
alexpottAs per #132 - the Olivero team has plus +1'd
Release managers have +1'd
Frontend framework managers have +1'd
And @lauriii's feedback is addressed in a way he's happy with.
=> rtbc
Comment #229
ckrinaWe've reviewed this with @laurii to search for any UX or design blockers and we haven't found anything that could block the beta, so +1 to this!
We did found some small issues that would be nice to address at some point in the future, and also maybe getting some pattern documented (like the option to close/hide messages or the pattern to open/close the menu). But all of them are improvements to be done after getting this in. We'll comment them on detail in a followup comment.
Great work everybody!! 🎉
Comment #230
andrewmacpherson commentedWhat exactly is RTBC please? The title is a bit confusing; which stage are we talking about here?
Gabor pinged the accessibility maintainers today, and mentioned that there was a comment from Lauri that we should look at, but I don't know which comment he means. Is there a question for the accessibility maintainers?
Comment #231
andypostRTBC is latest patch
Comment #232
andrewmacpherson commentedMoving #3129257: Mobile tabs can become out of order if browser is resized forward from post-stable to stable; it has implications for WCAG success criteria.
Comment #236
andrewmacpherson commentedtl;dr - The accessibility maintainers are happy to mark Olivero as a beta-stage experimental theme in Drupal 9.1.0.
More detail...
The accessibility topic maintainers reviewed progress with the Olivero team during our accessibility office hours meeting (15 Oct 2020). Present were: @mherchel, @katannshaw, @mgifford, @rainbreaw, @bnjmnm, @andrewmacpherson. We heard progress updates since our last review of Olivero in July 2020.
The accessibility gate requirement for WCAG AA conformance doesn't have to be met until the Olivero theme is being marked as stable.
That said, the accessibility gate pre-dates our experimental module/theme process. So we talked about what we hope to see from Olivero with respect to the alpha and beta milestones.
Alpha appraisal: Here, we are mainly looking for a first-cut of the design, to be sure that the proposed designs are at least feasible from an accessible standpoint. Success here includes a good colour palette, page/layout hierarchy, focus styles, basic form elements. We're also be on the look out for any novel pattern which needs a more robust design and/or special planning for accessibility. The alpha stage does not require solutions for every accessibility problem; instead it confirms that it's broadly going in the right direction.
We're confident that Olivero is well past the alpha stage by now.
Beta appraisal: Here, we are looking for strong progress. Again, it isn't necessary to fix all accessibility issues yet, but we want to have a more detailed view of what still needs to be done. This should be reflected in the roadmap issues. If any serious issues are known, but don't yet have a feasible plan for addressing, then that would be a beta-blocking cause for concern.
The most significant issues identified today are:
Special mention: Accessibility user testing sessions with visually impaired users are already underway, in collaboration with the National Federation of the Blind. There was a broad thumbs-up after the first round.
We are extremely thrilled that a new core theme has undergone this kind of external accessibility testing before even reaching beta!!! Each of the themes developed since D8 (Umami, Claro) have addressed accessibility from an early stage, and the process has been getting stronger each time.
There is an opportunity for further rounds of user testing, and @katannshaw is liaising with the NFB for this.
Outcome: The accessibility maintainers recommend Olivero to be marked as a beta-stage experimental theme.
Comment #237
andrewmacpherson commentedFixing closing UL tag
Comment #238
andrewmacpherson commentedAdding #3093461: Let users disable animation in Olivero, which wasn't triaged here yet.
Note that WCAG success criterion 2.3.3 "Animations from Interactions" is at level-AAA. These are normally be triaged as could-have.
However in this case I'd like to elevate it to a should-have for the stable release because it's (a) very high impact for affected users, and (b) very easy to address with a widely supported media query.
Comment #240
lauriiiGreat job everyone! Committed 7bb639f and pushed to 9.1.x. Thanks!
Next step is to move the roadmap to a new plan issue since this issue will be closed. Looking forward to working with you all in the core issue queue 🥳
Comment #241
gábor hojtsyComment #242
gábor hojtsyMoved the post-beta issues and the single should have issue that was not resolved prior to beta to #3177296: [META] Make Olivero stable.
Comment #243
gábor hojtsyRemoving the post beta criteria from here since it is at #3177296: [META] Make Olivero stable now. Also expanding release note snippet somewhat.
Comment #244
gábor hojtsyRetroactively moving to the new "Olivero theme" component. While adding this, I realized we did not identify maintainers for it. See #3177318: Identify and add maintainers for Olivero theme to MAINTAINERS.txt and other respective places.
Comment #245
lauriiiMoved #3117698: Allow PostCSS Plugin “Px to Rem” in core for Olivero theme to stable blockers.
Comment #246
xjm@Gábor Hojtsy, are there any disruptions from adding this beta theme that would require site owners or contrib developers to make changes? If not, it should be tagged for the highlights, not the release notes.