Module talk:Sidebar

Missing CSS variable?

[edit]

On row 385 there is the line :cssText('color: var(--color-base)'), but the --color-base CSS variable doesn't seem to be defined anywhere? MKFI (talk) 13:18, 15 October 2024 (UTC)[reply]

@Jdlrobson: I see that you added this. Where is the CSS variable defined? And why is this an inline style declaration instead of a class? Now dependent templates have problems changing text colors without using !important CSS declarations. MKFI (talk) 11:20, 17 October 2024 (UTC)[reply]
The variable is defined in the mediawiki design system. It is active on the default skins of Vector 2022 and Minerva and is essential to make this template work in dark mode. It is not defined on opt in skins such as Monobook and Vector and there it will be ignored (we can add a fallback if that is useful and less confusing).
this link should have lots of helpful context. Let me know if you have any follow up questions. 🐸 Jdlrobson (talk) 18:00, 18 October 2024 (UTC)[reply]
@Jdlrobson: this module is used a base for multiple other templates. Your change overrides derived template style declarations and caused for example Template:Zoroastrianism sidebar to display black-on-red text which made it difficult to read instead of white-on-red as it should. This module has a stylesheet. Does the color variable really need to be an inline style declaration instead of a line in .sidebar-list-title class? MKFI (talk) 08:10, 19 October 2024 (UTC)[reply]
Presumably it could be added via a class. When dark mode was rolled out, for templates I was less familiar with I usually went with the most straightforward solution. I see this one uses Module:Sidebar/styles.css ?
You should be able to see the exact issue it fixes (unreadable black text on a black background) by visiting https://en.wikipedia.org/wiki/Template:Sidebar/testcases?useskin=vector-2022&vectornightmode=1
and undoing that inline style using this code:
$('.sidebar-list-title[style]').each((a,i)=>i.setAttribute('style',i.getAttribute('style').replace('color: var(--color-base)', ''))) 
So you could likely move it to CSS, test if the issue is resolved and then undo my change. 🐸 Jdlrobson (talk) 16:21, 19 October 2024 (UTC)[reply]
@Jdlrobson: I can't do the change myself - the module and stylesheet are both template-protected. MKFI (talk) 08:33, 20 October 2024 (UTC)[reply]

Templatestyles parameter

[edit]

@Izno: Are there still benefits of the caller templates using the numerous parameters |templatestyles=, |child templatestyles=, and |grandchild templatestyles= over a simple <templatestyles> in each? 172.97.141.219 (talk) 10:39, 30 November 2024 (UTC)[reply]

Yes. Using the dedicated parameter allows you to use the cascading part of CSS, namely that the CSS in the child will apply after, not before the core TemplateStyles. This avoids the case where the child's styles are potentially overridden by styles of the same specificity in the core styles. You should generally always use these parameters. Izno (talk) 06:03, 1 December 2024 (UTC)[reply]

@Izno: Is it right not to treat Module:Navbar/styles.css in add_list_styles() whether sidebar has a navbar or not? If an article page transcludes a sidebar (with a navbar) and another navbar in this order, the styles doesn't seem to be applied on mobile view. 本日晴天 (talk) 15:42, 24 December 2024 (UTC)[reply]

add_list_styles is just for the two kinds of lists and is about the classes that have been added since eternity in the several templates (infobox also). Both navbox and sidebar have instead move_hiding_templatestyles which will take care of embedded TemplateStyles tags. Izno (talk) 17:32, 24 December 2024 (UTC)[reply]
Okay, but on some pages (ex. Finder_(software)) on mobile view, navbars are actually displayed in unintended styles because Module:Navbar/styles.css isn't used. How about modifying this module like this and output an additional templatestyles tag if navbar is used? 本日晴天 (talk) 08:19, 27 December 2024 (UTC)[reply]

Option to omit nomobile?

[edit]

@Izno: At Module talk:Sidebar/Archive 6#How to override "class=nomobile" to display sidebar in mobile view? you said "This cannot be overridden and that will not change". Did you only mean that there is no way to override an existing class=nomobile, or did you rule out adding a new sidebar option like mobile=yes to omit class=nomobile? I came from a discussion about {{NGC objects}} at Wikipedia:Templates for discussion/Log/2025 January 4#Template:NGC objects. A long list is split into intervals so the articles are closer tied together than normal sidebars and this sidebar is very narrow. I think an option to omit nomobile would sometimes be nice. PrimeHunter (talk) 16:45, 4 January 2025 (UTC)[reply]

Ruling both out. I can reinstate vertical-navbox if we prefer just to make it more opaque ;). It's not about how narrow or wide sidebars are, it's about how much HTML they dump into the page that isn't used in mobile. Izno (talk) 20:19, 4 January 2025 (UTC)[reply]
Which maybe doesn't make my true preference clear of course - which is that everything is displayed at all resolutions (or at least until this module is deleted, which is probably my truest preference, for various reasons). What I'm doing is respecting the WMF's choice to remove these elements from mobile. Izno (talk) 20:22, 4 January 2025 (UTC)[reply]