Problem/Motivation
When in the Appearance list page you see a bunch of themes, some have dependants and some dependencies, however there is no way to know the relationship between base themes and sub-themes, quite unlike Modules which you are clearly told which ones relate (requires, required by etc).
This is not very good, some parity with modules is required, we can't expect users to guess which themes they have uninstall.
This seems like a pretty major UX problem.
Proposed resolution
Display the same information for themes as is shown for modules (machine name, version, requires and required by). As with the modules these should be collapsed by default, and use the same expandable description as was used for the modules. Contrary to the modules list, do not collapse also the operations, as this seems to be a usability regression in that case.
Remaining tasks
Review and commit patch.
User interface changes
The theme configuration page will look exactly the same, except that the version number has now been moved to the collapsed information, and the theme description can be expanded to show the required information.

API changes
None
Data model changes
None
Beta phase evaluation
| Issue category | Task because this is adding some information to the theme page, that wasn't available before, and problems only occur if the user removes themes without understanding their dependency hierarchy. |
|---|---|
| Issue priority | Major because users don't know which themes it's safe to uninstall without looking at the info.yml files. | Unfrozen changes | Unfrozen because it only changes UI description. |
| Prioritized changes | The main goal of this issue is usability |
| Disruption | Not disruptive. Only textual information was added (collapsed), so the look and feel of the page remains largely untouched. |
| Comment | File | Size | Author |
|---|---|---|---|
| #119 | 2372183-118.mov | 6.08 MB | nayana_mvr |
| #96 | display_same_info_for-2372183-96.patch | 15.35 KB | hussainweb |
| #96 | interdiff-92-96.txt | 6.5 KB | hussainweb |
| #62 | Screenshot 2015-09-27 14.09.13.jpg | 551.17 KB | lewisnyman |
| #57 | display_same_info_for-2372183-53-2.png | 147.44 KB | xavip |
Issue fork drupal-2372183
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:
Comments
Comment #1
tim.plunkettDupe of #2348793: I can not uninstall Classy theme
Comment #2
tim.plunkettOr is this a follow-up, saying the work done in that issue was not enough?
Comment #3
Jeff Burnz commentedYes its a follow up, that issue does not solve this problem - themes do not show their relationships to each other and the user has to guess their way to un-installing the right themes.
What sort of more info do you need? The issue is very self evident, especially when you get a chain of themes with 2 or 3 base themes.
Comment #4
Jeff Burnz commentedComment #5
larowlanNo reason to be postponed
Comment #6
jcnventuraI'll work on this in the D8 MUC sprint.
Comment #7
jcnventuraComment #8
jcnventuraComment #9
lewisnymanComment #11
lewisnymanNice, it's great to make this code more reusable, though I think we will tackle the majority of it in #2408505: Rewrite module page CSS inline with our CSS standards.
I noticed that the details span the full width of the page because the
theme-infoclass is not floated alongside the theme image. This is obvious when the details element has focus.The spacing between the details summary and the theme title is very small. It looks a little weird. It seems like it's possible to fix this by removing the padding top from
.system-projects tdand putting it on.system-projects details summaryWe also need to change some of the classes in the Seven
modules-page.cssespecially:Comment #12
jcnventuraDependent on #2543904: Make attributes optional in the details template to get rid of the errors.
Comment #13
lauriiiOverall looks good and I'm +1 for doing this. We still need UX people to agree with the layout.
Otherwise things look good but this should be done in a template. We should try to avoid adding markup in PHP code as much as possible.
Comment #14
jcnventuraAs requested, this updated patch fixes the test failures here instead of in #2543904: Make attributes optional in the details template.
In addition, it takes into account the comments from #11.
Regarding #13, I just reused some code for creating the module table that was above in the same file. I think fixing it properly (in both places) should be handlded in a separate issue.
Comment #15
jcnventuraAnd the interdiff
Comment #16
lauriiiWe shouldn't add code that we know needs to be replaced in future. We can create follow-up to make the module page follow the direction that has been taken here.
Comment #17
lauriiiThis is visually broken because I changed the classes used in the template. They might not be still the final ones because they are still confusing. Maybe @jcventura you want to tackle these and the CSS changes needed?
Comment #19
lauriiiRemoved .swp from patch
Comment #20
jcnventuraUpdated mostly only the templates, and changed to short array syntax where lauriii hadn't corrected it before. (THANKS!)
Once this is commited, it will be trivial to use the same these same templates to the modules page.
Comment #21
jcnventuraOops. Extremely minor fix.. I changed the classy template so much that I copied the default over it, and overrode part of the comment.
Comment #22
lewisnymanBojan bat signal
Comment #25
jcnventuraFixed the test. The theme version is now part of the collapsed details, not the title anymore.
Comment #26
jcnventuraComment #27
floretan commentedGit complains about empty lines at the end of the template files (attached patch fixes that), otherwise it looks good.
Comment #28
larowlanPHP looks good - only one issue I can see:
Whitespace issue here
Comment #29
joelpittetThis is looking pretty good from a pure code review:
Probably needs a capital 'Truncates' and period at the end of the comment. (event though that was what it said before the patch)
Same here use @ instead of !
Does this really need a description class, why is the bem class not enough?
Can we use @ placeholders here instead of !, because there shouldn't be raw variables and that doesn't do what you'd expect anymore (if it's unsafe marks the entire string as unsafe).
might want |safe_join instead of |join or these will get double escaped.
Extra space at the top of the file.
As well as #28
Comment #30
hog commentedComment #31
hog commentedComment #32
hog commentedComment #33
hog commentedComment #34
jcnventura?? Did you even test this?
Description is needed, in order to use the same CSS as module info description. In alternative, change the module page CSS to also use BEM
Comment #35
hog commentedFixed error.
Comment #36
andypostA bit of derail but I'm sure that's time to clean-up notion of module-theme in favour of Extension that is all over the core now
So probably class names will be "better"
.extension__theme&.extension__modulelooks unrelated change
now modules, themes and profiles are extensions. Let's keep that naming
both?
needs \n
extension_details - makes more sense
also would be great to pass "type" here
Comment #37
Bojhan commentedI am not convinced that this is the best way to display this. Can we explore more design directions?
I am thinking about having this in a tooltip or when you click "details"?
Comment #38
id.tarzanych commentedComment #39
andypost@Bojhan the only usage of tooltip we have in core is shortcut "star" - makes sense to re-use
Comment #40
id.tarzanych commentedUpdated patch from #35
Please provide your thoughts about system-extensions modificator style
Comment #41
id.tarzanych commentedComment #42
andypostreally questionable thing, maybe better to make them shorter
['extension', 'entension--<type>']no reason for system prefixplease s/$description/$details_description on next re-roll
Comment #44
id.tarzanych commentedUpdated patch, please review
Comment #46
andypost+1 rtbc, leaving for mark-up and css review
Comment #48
andypostfollowing failures
looks that still needed
Comment #50
hussainwebI think that hopefully this will fix the failure.
Comment #51
andypostyay! green now needs frontender's eyes on it
Comment #52
yoroy commentedApplying the same pattern as on the extend page seems like a good idea. Not sure if the last usability test showed any problems with this pattern on the extend page.
In reviewing this on simplytest I noticed two things:
- It's actually quite handy to have the actionable links outside of the collapsed information like on the appearance page, where they are hidden on the extend page. This is definately out of scope for this issue of course.
- The description font size on appearance is smaller than the same on the extend page . Would be nice to correct that (remove the 0.95em sizing), all those small font-size differences do not look too good.
Comment #53
jcnventuraReroll of #50, fixing the .95em sizing by getting rid of the description class as suggested in #29-3.
Also aligned the templates for both classy and seven.
Comment #54
xavip commentedReviewed patch #53, it seems ready for RTBC to me, but I don't change the status since it's my first patch review :-D
Comment #55
lauriiiComment #56
jcnventuraComment #57
xavip commentedReviewed patch #53 for second time, this time from drupalcon BCN ;-)
Everything ok; attached screenshot with before-after states.
Comment #58
Bojhan commentedComment #59
jcnventuraComment #60
mustanggb commentedThanks for the screengrab, it looks great to me.
Comment #61
jcnventuraComment #62
lewisnymanThe only problem I have with this visually is the focus on the details element. There is an issue to remove these focus effects completely: #2489450: Remove unnecessary focused/hover effects on details and vertical tabs
Thanks for the work here making the module page CSS reusable!
Comment #63
Bojhan commentedHmm, perhaps this should be back to Needs work untill the other issue is fixed?
Comment #64
lewisnymanI think we can just have it as a follow up issue.
Comment #65
catchThis conflicts with #2151109: Convert theme_system_modules_details() to Twig could use cross-review.
Comment #66
jcnventuraWe can work on this again after that one gets committed.
Comment #67
jcnventuraRe-rolling following #2151109: Convert theme_system_modules_details() to Twig.
It makes no sense to use the system_extension_details templates in light of the that issue, so this patch copies part of the twig template from there.
Comment #68
jcnventuraComment #69
lewisnymanGreat, the appearance is as the screenshots in #62.
Thank you!
Comment #70
Bojhan commentedCan we please make sure #2489450: Remove unnecessary focused/hover effects on details and vertical tabs gets adequate follow up, I am always a bit cautious when we do add stuff - but not have anyone of that thread active in the following issues it creates.
@jcnventura Could you make sure we appropriately follow up.
Comment #71
star-szrNothing to really hold up RTBC but one small point and a question.
Minor: Should end with a period per https://www.drupal.org/node/1354#general.
Just wondering if it would make sense for these place holders to be @theme-machine-name, @theme-version, @theme-list, etc.?
Comment #72
jcnventura@Cottser: It would make sense for those placeholders to be @extension.machine-name, @extension.version, etc.
As a translator, I don't want to make superfluous strings. So the solution is to alter these strings, both in this template and in the module page template to be a bit more generic. I can certainly create a followup issue should this one get committed. But I'm not sure if it is possible to change strings post-RC1.
Comment #73
star-szrGood point, I think this is probably fine as is then even if it's not 100% accurate.
Comment #74
lewisnymanHere's a patch for #2489450: Remove unnecessary focused/hover effects on details and vertical tabs
Comment #75
jcnventuraAnd a really minor diff to address the #71.1 (lack of a final dot in the comment). For obvious reasons, not changing the RTBC status.
Comment #76
star-szr+1 :)
Comment #77
lewisnymanComment #78
lauriiiIS defines this as UX bug. Please change the IS if you think this is a task
Comment #79
Bojhan commentedThis is a task. A UX bug indicates we have some actual user feedback that it actually causes significant issues, we have no data/feedback of such effect. In general we are quite careful with trowing around the bug indicator.
Comment #80
lauriiiThanks for the clarification :)
Comment #81
jcnventuraComment #82
jcnventuraThis patch only generalizes the system modules / theme pages CSS, and adds some documentation to the theme dependencies.
Comment #83
alexpottThis is not rc eligible. If you want committers to consider it for inclusion in RC then the issue summary needs to include a statement of why we need to make this change and be tagged with rc target triage. It is possible that contrib or custom is already relying on the behaviour in HEAD.
Comment #84
jcnventuraComment #85
Bojhan commentedI don't see anything changed in the issue summary to reflect alexpott his concerns.
Still don't think this should go in until #2489450: Remove unnecessary focused/hover effects on details and vertical tabs goes in.
Comment #86
jcnventuraI didn't change the issue summary, and I marked it RTBC again, because the 'needs work' was all about arguing on getting this into 'rc eligible' status. It's a fight I'm not going to fight. This will go into Drupal 8.1 or Drupal 9.
Comment #87
Bojhan commentedPart of our community dynamics, is that when a committer pushes it back from RTBC. We take the feedback and discuss it, even if at the end we decide that his/her arguments are moot. The request from alex in this process, is one that is common from a committer and requires the set status.
It is perfectly fine if your not up for it, but please be considerate of our community process - which is responding to feedback, especially from a committer and respecting his push back on status to reflect this.
Comment #88
jcnventuraI did consider it. He asked if I could justify the need to add this change now that we're in the RC stage. I cannot. Maybe someone else can. The fact that this is no longer considered a bug, and is considered a task, makes it somewhat harder to justify the reasoning on why this should be added at this stage. The 'work needed' is no longer in the patch, which is RTBC, but in justifying the need to get it considered as an RC target, since I don't think that needs to be done, I've backtracked to the state before I added the 'rc eligible' tag (#81).
I'll wait until 8.0.0 is released and set this back to RTBC then, unless someone decides to justify getting this into 8.0.0. If someone does, don't forget to change the version from 8.1.x to 8.0.x.
Comment #89
jcnventuraSetting back to RTBC as it was in #81, as the 'needs work' between #83 and now was all about justifying the need to have this go in to 8.0.0. That is no longer applicable, as the flux capacitor in my DeLorean is broken.
Comment #91
hussainwebFirst of all, I am fixing a missing
</div>. This won't make the tests pass. I will try to fix the tests in the next patch. I will reason why I am doing so in that comment.Comment #92
hussainwebThis should fix the tests. I am not sure if this is acceptable as it changes markup in stable theme. The reason the tests failed was because the changes got overridden by stable.
Now, I am not sure why this twig file is in stable. It is not a template that is likely to be overridden by themers. Even if it is, there are no changes to classes, etc... but there are new elements. This likely needs maintainer review and feedback. If we can't have these changes, then I can't see any other way except that this issue goes to D9.
Comment #94
Jeff Burnz commented@ #92could the template not go into Classy or even Seven? It's possible. I would think and exception for this template would be OK, the win is quite large. We could always check with contrib Admin themes to see if they override it, even if we do I think they would be well on board with supporting this anyway.
Comment #95
hussainweb#92, that's a great idea. I didn't think of it. If we put this into seven, it would make sense as well as not break stable. Of course, other admin themes still may override but at least they will not break.
Comment #96
hussainwebSorry, I meant to say #94 earlier.
This patch reverts the change to stable's template and copies it to seven. I am not sure if the tests use seven when testing, but let's see.
Comment #98
hussainwebI guess we are not using seven, or there is something wrong with the patch in #96. Any reviews please?
Comment #99
davidhernandezJust to answer that question, Stable contains all core template files. Most of the files are in fact identical. Stable's and Classy's files cannot change, but the core file can. I only glanced at that test code, but it may have Stark on as the default theme, which means inheriting its template from Stable. I would manually verify that the change in this patch works with Stark and Classy as the admin theme, which I suspect it may not.
Comment #115
quietone commentedComment #117
nayana_mvr commentedComment #119
nayana_mvr commentedI have re-rolled the patch for D11 but there are some build issue which I'm trying to debug so keeping it in 'Needs Work'. I have done some additional changes in template and styles to make the UI same as in module listing page. Attaching a screen recording to show how the current changes look like.
Comment #120
quietone commented