Page MenuHomePhabricator

Enable 'selector-max-id' stylelint rule on MinervaNeue/MobileFrontend
Closed, ResolvedPublic

Description

With [patch to be submitted] in, we need to ensure, that every added id selector results in a stylelint warning to funnel right usage.

  • Enable selector-max-id rule in .stylelintrc.json
  • Add exceptions to selector in LESS files directly

Result from enabling it with current master:

Running "stylelint:all" (stylelint) task

resources/skins.minerva.base.styles/common.less
 28:1  ✖  Expected "#mw-mf-viewport" to have no more than 0 ID selectors      selector-max-id
 35:1  ✖  Expected "#mw-mf-page-center" to have no more than 0 ID selectors   selector-max-id

resources/skins.minerva.base.styles/pageactions.less
 25:1  ✖  Expected "#page-actions" to have no more than 0 ID selectors                selector-max-id
 95:3  ✖  Expected ".client-nojs #page-actions" to have no more than 0 ID selectors   selector-max-id
 99:3  ✖  Expected ".client-nojs #section_0" to have no more than 0 ID selectors      selector-max-id

resources/skins.minerva.base.styles/print/article.less
  30:2  ✖  Expected ".pre-content #page-actions" to have no more than 0 ID selectors          selector-max-id
  35:1  ✖  Expected "#bodyContent" to have no more than 0 ID selectors                        selector-max-id
  39:2  ✖  Expected "#bodyContent:before" to have no more than 0 ID selectors                 selector-max-id
  65:1  ✖  Expected "#bodyContent:before" to have no more than 0 ID selectors                 selector-max-id
  82:1  ✖  Expected "#mw-content-text" to have no more than 0 ID selectors                    selector-max-id
  85:2  ✖  Expected "#mw-content-text a" to have no more than 0 ID selectors                  selector-max-id
  90:2  ✖  Expected "#mw-content-text blockquote" to have no more than 0 ID selectors         selector-max-id
  96:2  ✖  Expected "#mw-content-text .section-heading" to have no more than 0 ID selectors   selector-max-id
 102:2  ✖  Expected "#mw-content-text h2" to have no more than 0 ID selectors                 selector-max-id
 106:2  ✖  Expected "#mw-content-text h3" to have no more than 0 ID selectors                 selector-max-id
 111:2  ✖  Expected "#mw-content-text h4" to have no more than 0 ID selectors                 selector-max-id
 111:2  ✖  Expected "#mw-content-text h5" to have no more than 0 ID selectors                 selector-max-id
 111:2  ✖  Expected "#mw-content-text h6" to have no more than 0 ID selectors                 selector-max-id
 116:2  ✖  Expected "#mw-content-text .wikitable" to have no more than 0 ID selectors         selector-max-id
 120:2  ✖  Expected "#mw-content-text table.infobox" to have no more than 0 ID selectors      selector-max-id

resources/skins.minerva.base.styles/print/footer.less
 10:1  ✖  Expected "#mw-mf-page-center > footer" to have no more than 0 ID selectors                            selector-max-id
 15:2  ✖  Expected "#mw-mf-page-center > footer .mw-ui-icon:before" to have no more than 0 ID selectors         selector-max-id
 19:2  ✖  Expected "#mw-mf-page-center > footer .last-modified-bar" to have no more than 0 ID selectors         selector-max-id
 24:2  ✖  Expected "#mw-mf-page-center > footer .last-modifier-tagline" to have no more than 0 ID selectors     selector-max-id
 30:2  ✖  Expected "#mw-mf-page-center > footer .last-modified-bar" to have no more than 0 ID selectors         selector-max-id
 30:2  ✖  Expected "#mw-mf-page-center > footer .last-modified-bar a" to have no more than 0 ID selectors       selector-max-id
 36:2  ✖  Expected "#mw-mf-page-center > footer .post-content" to have no more than 0 ID selectors              selector-max-id
 44:3  ✖  Expected "#mw-mf-page-center > footer .post-content .hlist" to have no more than 0 ID selectors       selector-max-id
 44:3  ✖  Expected "#mw-mf-page-center > footer .post-content h2" to have no more than 0 ID selectors           selector-max-id
 49:3  ✖  Expected "#mw-mf-page-center > footer .post-content .license a" to have no more than 0 ID selectors   selector-max-id
 49:3  ✖  Expected "#mw-mf-page-center > footer .post-content .license" to have no more than 0 ID selectors     selector-max-id

resources/skins.minerva.base.styles/ui.less
  34:1  ✖  Expected "#content" to have no more than 0 ID selectors                                                                 selector-max-id
  41:1  ✖  Expected "#content" to have no more than 0 ID selectors                                                                 selector-max-id
  58:1  ✖  Expected "#footer-info-lastmod" to have no more than 0 ID selectors                                                     selector-max-id
 135:1  ✖  Expected "#searchInput" to have no more than 0 ID selectors                                                             selector-max-id
 239:1  ✖  Expected "#page-secondary-actions" to have no more than 0 ID selectors                                                  selector-max-id
 243:2  ✖  Expected "#page-secondary-actions a" to have no more than 0 ID selectors                                                selector-max-id
 251:1  ✖  Expected "#bodyContent .panel .content" to have no more than 0 ID selectors                                             selector-max-id
 275:1  ✖  Expected "#mw-content-text > form > .oo-ui-fieldLayout > .oo-ui-fieldLayout-body" to have no more than 0 ID selectors   selector-max-id
 277:1  ✖  Expected "#mw-content-text > form > .oo-ui-widget" to have no more than 0 ID selectors                                  selector-max-id

resources/skins.minerva.content.styles/hacks.less
  29:2  ✖  Expected ".content #coordinates" to have no more than 0 ID selectors   selector-max-id
 110:1  ✖  Expected "#filetoc" to have no more than 0 ID selectors                selector-max-id

resources/skins.minerva.content.styles/tablet/common.less
  10:3  ✖  Expected ".client-js #searchIcon" to have no more than 0 ID selectors                selector-max-id
  33:2  ✖  Expected "#mw-content-text > form" to have no more than 0 ID selectors               selector-max-id
 103:2  ✖  Expected "#mw-content-text > form" to have no more than 0 ID selectors               selector-max-id
 105:2  ✖  Expected "#mw-mf-page-center .pointer-overlay" to have no more than 0 ID selectors   selector-max-id

resources/skins.minerva.mainMenu.styles/MainMenu.less
  9:1  ✖  Expected "#mw-mf-page-left" to have no more than 0 ID selectors                               selector-max-id
 28:2  ✖  Expected "#mw-mf-page-left ul" to have no more than 0 ID selectors                            selector-max-id
 39:2  ✖  Expected ".primary-navigation-enabled #mw-mf-page-left" to have no more than 0 ID selectors   selector-max-id
 47:2  ✖  Expected ".navigation-full-screen #mw-mf-page-left" to have no more than 0 ID selectors       selector-max-id

resources/skins.minerva.mainMenu.styles/MainMenuFooter.less
  5:1  ✖  Expected "#mw-mf-page-left" to have no more than 0 ID selectors                       selector-max-id
  6:2  ✖  Expected "#mw-mf-page-left ul" to have no more than 0 ID selectors                    selector-max-id
  8:3  ✖  Expected "#mw-mf-page-left ul.hlist" to have no more than 0 ID selectors              selector-max-id
  9:4  ✖  Expected "#mw-mf-page-left ul.hlist li" to have no more than 0 ID selectors           selector-max-id
 16:5  ✖  Expected "#mw-mf-page-left ul.hlist li:after" to have no more than 0 ID selectors     selector-max-id
 20:5  ✖  Expected "#mw-mf-page-left ul.hlist li a" to have no more than 0 ID selectors         selector-max-id
 24:6  ✖  Expected "#mw-mf-page-left ul.hlist li a:hover" to have no more than 0 ID selectors   selector-max-id

resources/skins.minerva.mainMenu.styles/MainMenuItem.less
  8:1  ✖  Expected "#mw-mf-page-left" to have no more than 0 ID selectors                                 selector-max-id
  9:2  ✖  Expected "#mw-mf-page-left .secondary-action" to have no more than 0 ID selectors               selector-max-id
 20:2  ✖  Expected "#mw-mf-page-left .primary-action" to have no more than 0 ID selectors                 selector-max-id
 25:2  ✖  Expected "#mw-mf-page-left ul" to have no more than 0 ID selectors                              selector-max-id
 26:3  ✖  Expected "#mw-mf-page-left ul:first-child" to have no more than 0 ID selectors                  selector-max-id
 27:4  ✖  Expected "#mw-mf-page-left ul:first-child li:first-child" to have no more than 0 ID selectors   selector-max-id
 32:3  ✖  Expected "#mw-mf-page-left ul li" to have no more than 0 ID selectors                           selector-max-id
 39:4  ✖  Expected "#mw-mf-page-left ul li:first-child" to have no more than 0 ID selectors               selector-max-id
 43:4  ✖  Expected "#mw-mf-page-left ul li a" to have no more than 0 ID selectors                         selector-max-id
 54:5  ✖  Expected "#mw-mf-page-left ul li a.secondary-action" to have no more than 0 ID selectors        selector-max-id
 58:5  ✖  Expected "#mw-mf-page-left ul li a:hover" to have no more than 0 ID selectors                   selector-max-id
 63:5  ✖  Expected "#mw-mf-page-left ul li a:visited" to have no more than 0 ID selectors                 selector-max-id
 63:5  ✖  Expected "#mw-mf-page-left ul li a:active" to have no more than 0 ID selectors                  selector-max-id
 68:5  ✖  Expected "#mw-mf-page-left ul li a span" to have no more than 0 ID selectors                    selector-max-id

resources/skins.minerva.mainPage.styles/common.less
  5:2  ✖  Expected ".page-Main_Page #section_0" to have no more than 0 ID selectors                  selector-max-id
 10:2  ✖  Expected ".page-Main_Page #page-actions" to have no more than 0 ID selectors               selector-max-id
 21:2  ✖  Expected ".page-Main_Page #page-secondary-actions" to have no more than 0 ID selectors     selector-max-id
 22:3  ✖  Expected ".page-Main_Page #page-secondary-actions a" to have no more than 0 ID selectors   selector-max-id

resources/skins.minerva.talk.styles/talkpage.less
 42:2  ✖  Expected ".client-js .skin-minerva--talk-simplified #mf-section-0" to have no more than 0 ID selectors   selector-max-id

skinStyles/ext.confirmEdit.fancyCaptcha.styles/minerva.less
  6:1  ✖  Expected "#mf-captcha-reload-container" to have no more than 0 ID selectors                           selector-max-id
 11:2  ✖  Expected "#mf-captcha-reload-container .fancycaptcha-reload" to have no more than 0 ID selectors      selector-max-id
 11:2  ✖  Expected "#mf-captcha-reload-container.fancycaptcha-reload" to have no more than 0 ID selectors       selector-max-id
 41:3  ✖  Expected ".mw-ui-container .captcha #wpCaptchaWord" to have no more than 0 ID selectors               selector-max-id
 47:4  ✖  Expected ".mw-ui-container .captcha #wpCaptchaWord:first-child" to have no more than 0 ID selectors   selector-max-id

skinStyles/mediawiki.action.edit.styles/minerva.less
 13:2  ✖  Expected ".mw-editform > #wpTextbox1" to have no more than 0 ID selectors                    selector-max-id
 21:2  ✖  Expected ".action-submit #page-secondary-actions" to have no more than 0 ID selectors        selector-max-id
 21:2  ✖  Expected ".action-edit #page-secondary-actions" to have no more than 0 ID selectors          selector-max-id
 21:2  ✖  Expected ".action-submit #page-actions" to have no more than 0 ID selectors                  selector-max-id
 21:2  ✖  Expected ".action-edit #page-actions" to have no more than 0 ID selectors                    selector-max-id
 32:2  ✖  Expected ".action-submit #mw-anon-edit-warning" to have no more than 0 ID selectors          selector-max-id
 32:2  ✖  Expected ".action-edit #mw-anon-edit-warning" to have no more than 0 ID selectors            selector-max-id
 35:3  ✖  Expected ".action-submit #mw-anon-edit-warning > p" to have no more than 0 ID selectors      selector-max-id
 35:3  ✖  Expected ".action-edit #mw-anon-edit-warning > p" to have no more than 0 ID selectors        selector-max-id
 41:2  ✖  Expected ".action-submit #section_0" to have no more than 0 ID selectors                     selector-max-id
 41:2  ✖  Expected ".action-edit #section_0" to have no more than 0 ID selectors                       selector-max-id
 41:2  ✖  Expected ".action-submit #editpage-copywarn" to have no more than 0 ID selectors             selector-max-id
 41:2  ✖  Expected ".action-edit #editpage-copywarn" to have no more than 0 ID selectors               selector-max-id
 41:2  ✖  Expected ".action-submit #mw-anon-edit-warning" to have no more than 0 ID selectors          selector-max-id
 41:2  ✖  Expected ".action-edit #mw-anon-edit-warning" to have no more than 0 ID selectors            selector-max-id
 71:2  ✖  Expected ".action-submit #wikiDiff table" to have no more than 0 ID selectors                selector-max-id
 71:2  ✖  Expected ".action-edit #wikiDiff table" to have no more than 0 ID selectors                  selector-max-id
 74:3  ✖  Expected ".action-submit #wikiDiff table .diff-otitle" to have no more than 0 ID selectors   selector-max-id
 74:3  ✖  Expected ".action-edit #wikiDiff table .diff-otitle" to have no more than 0 ID selectors     selector-max-id
 74:3  ✖  Expected ".action-submit #wikiDiff table .diff-ntitle" to have no more than 0 ID selectors   selector-max-id
 74:3  ✖  Expected ".action-edit #wikiDiff table .diff-ntitle" to have no more than 0 ID selectors     selector-max-id

skinStyles/mediawiki.action.history.styles.less
   7:2  ✖  Expected ".action-history #mw-content-text > form" to have no more than 0 ID selectors                                                                 selector-max-id
  17:2  ✖  Expected ".action-history #mw-history-compare" to have no more than 0 ID selectors                                                                     selector-max-id
  71:2  ✖  Expected ".action-history #pagehistory" to have no more than 0 ID selectors                                                                            selector-max-id
  75:3  ✖  Expected ".action-history #pagehistory li" to have no more than 0 ID selectors                                                                         selector-max-id
  81:3  ✖  Expected ".action-history #pagehistory li:after" to have no more than 0 ID selectors                                                                   selector-max-id
  86:3  ✖  Expected ".action-history #pagehistory input[ type='radio' ]" to have no more than 0 ID selectors                                                      selector-max-id
  86:3  ✖  Expected ".action-history #pagehistory input[ type='checkbox' ]" to have no more than 0 ID selectors                                                   selector-max-id
 101:3  ✖  Expected ".action-history #pagehistory input[ type='radio' ]" to have no more than 0 ID selectors                                                      selector-max-id
 107:3  ✖  Expected ".action-history #pagehistory input[ type='checkbox' ]" to have no more than 0 ID selectors                                                   selector-max-id
 112:3  ✖  Expected ".action-history #pagehistory .mw-history-histlinks" to have no more than 0 ID selectors                                                      selector-max-id
 117:3  ✖  Expected ".action-history #pagehistory .mw-changeslist-date" to have no more than 0 ID selectors                                                       selector-max-id
 124:3  ✖  Expected ".action-history #pagehistory .history-user" to have no more than 0 ID selectors                                                              selector-max-id
 130:4  ✖  Expected ".action-history #pagehistory .history-user .mw-userlink" to have no more than 0 ID selectors                                                 selector-max-id
 138:3  ✖  Expected ".action-history #pagehistory .mw-changeslist-links:not( .mw-usertoollinks ):not( .mw-history-histlinks )" to have no more than 0 ID          selector-max-id
           selectors                                                                                                                                                             
 140:4  ✖  Expected ".action-history #pagehistory .mw-changeslist-links:not( .mw-usertoollinks ):not( .mw-history-histlinks ) > span:before" to have no more      selector-max-id
           than 0 ID selectors                                                                                                                                                   
 144:4  ✖  Expected ".action-history #pagehistory .mw-changeslist-links:not( .mw-usertoollinks ):not( .mw-history-histlinks ) > span:after" to have no more than  selector-max-id
           0 ID selectors                                                                                                                                                        
 150:3  ✖  Expected ".action-history #pagehistory .comment" to have no more than 0 ID selectors                                                                   selector-max-id
 157:3  ✖  Expected ".action-history #pagehistory .comment" to have no more than 0 ID selectors                                                                   selector-max-id
 157:3  ✖  Expected ".action-history #pagehistory .updatedmarker" to have no more than 0 ID selectors                                                             selector-max-id
 157:3  ✖  Expected ".action-history #pagehistory .mw-diff-bytes" to have no more than 0 ID selectors                                                             selector-max-id
 157:3  ✖  Expected ".action-history #pagehistory .mw-tag-markers" to have no more than 0 ID selectors                                                            selector-max-id
 166:3  ✖  Expected ".action-history #pagehistory .history-user" to have no more than 0 ID selectors                                                              selector-max-id
 166:3  ✖  Expected ".action-history #pagehistory .comment" to have no more than 0 ID selectors                                                                   selector-max-id
 166:3  ✖  Expected ".action-history #pagehistory .updatedmarker" to have no more than 0 ID selectors                                                             selector-max-id
 166:3  ✖  Expected ".action-history #pagehistory .mw-diff-bytes" to have no more than 0 ID selectors                                                             selector-max-id
 166:3  ✖  Expected ".action-history #pagehistory .mw-history-tools" to have no more than 0 ID selectors                                                          selector-max-id
 166:3  ✖  Expected ".action-history #pagehistory .mw-tag-markers" to have no more than 0 ID selectors                                                            selector-max-id

skinStyles/mediawiki.special.search.styles/minerva.less
 10:2  ✖  Expected "#search" to have no more than 0 ID selectors   selector-max-id

skinStyles/mediawiki.special.userlogin.common.styles/minerva.less
   6:1  ✖  Expected "#userloginprompt" to have no more than 0 ID selectors                                                selector-max-id
   7:1  ✖  Expected "#languagelinks" to have no more than 0 ID selectors                                                  selector-max-id
   8:1  ✖  Expected "#user-button" to have no more than 0 ID selectors                                                    selector-max-id
  44:1  ✖  Expected "#mw-mf-login" to have no more than 0 ID selectors                                                    selector-max-id
  45:1  ✖  Expected "#mw-mf-accountcreate" to have no more than 0 ID selectors                                            selector-max-id
  46:1  ✖  Expected "#userloginForm" to have no more than 0 ID selectors                                                  selector-max-id
  47:2  ✖  Expected "#mw-mf-login .watermark" to have no more than 0 ID selectors                                         selector-max-id
  47:2  ✖  Expected "#mw-mf-accountcreate .watermark" to have no more than 0 ID selectors                                 selector-max-id
  47:2  ✖  Expected "#userloginForm .watermark" to have no more than 0 ID selectors                                       selector-max-id
  53:3  ✖  Expected "#mw-mf-login .watermark img" to have no more than 0 ID selectors                                     selector-max-id
  53:3  ✖  Expected "#mw-mf-accountcreate .watermark img" to have no more than 0 ID selectors                             selector-max-id
  53:3  ✖  Expected "#userloginForm .watermark img" to have no more than 0 ID selectors                                   selector-max-id
  61:1  ✖  Expected "#userloginForm" to have no more than 0 ID selectors                                                  selector-max-id
  62:2  ✖  Expected "#userloginForm .mw-htmlform-field-HTMLCheckField" to have no more than 0 ID selectors                selector-max-id
  70:2  ✖  Expected ".client-nojs #userloginForm" to have no more than 0 ID selectors                                     selector-max-id
  71:3  ✖  Expected ".client-nojs #userloginForm .mw-htmlform-field-HTMLCheckField" to have no more than 0 ID selectors   selector-max-id
  80:2  ✖  Expected "#userloginForm" to have no more than 0 ID selectors                                                  selector-max-id
  81:3  ✖  Expected "#userloginForm .mw-htmlform-field-HTMLCheckField" to have no more than 0 ID selectors                selector-max-id
  91:2  ✖  Expected "#userloginForm" to have no more than 0 ID selectors                                                  selector-max-id
  93:3  ✖  Expected "#userloginForm .prefsectiontip" to have no more than 0 ID selectors                                  selector-max-id
  93:3  ✖  Expected "#userloginForm .htmlform-tip" to have no more than 0 ID selectors                                    selector-max-id
  93:3  ✖  Expected "#userloginForm #mw-userlogin-help" to have no more than 0 ID selectors                               selector-max-id
  93:3  ✖  Expected "#userloginForm .mw-userlogin-help" to have no more than 0 ID selectors                               selector-max-id
  93:3  ✖  Expected "#userloginForm #wpReason" to have no more than 0 ID selectors                                        selector-max-id
  93:3  ✖  Expected "#userloginForm #wpRealName" to have no more than 0 ID selectors                                      selector-max-id
 106:2  ✖  Expected "#languagelinks" to have no more than 0 ID selectors                                                  selector-max-id
 111:2  ✖  Expected "#userlogin2" to have no more than 0 ID selectors                                                     selector-max-id
 112:3  ✖  Expected "#userlogin2 .mw-ui-checkbox" to have no more than 0 ID selectors                                     selector-max-id
 123:3  ✖  Expected ".mw-ui-input#wpEmail" to have no more than 0 ID selectors                                            selector-max-id
 154:2  ✖  Expected "#mw-createaccount-another" to have no more than 0 ID selectors                                       selector-max-id

skinStyles/mobile.special.mobilediff.styles/minerva.less
 6:2  ✖  Expected "#mw-mf-userinfo .post-content" to have no more than 0 ID selectors   selector-max-id

skinStyles/mobile.special.mobilemenu.styles/minerva.less
 14:2  ✖  Expected "body.navigation-full-screen #mw-mf-page-center" to have no more than 0 ID selectors   selector-max-id

skinStyles/mobile.special.mobileoptions.styles/minerva.less
 14:2  ✖  Expected ".ns-special #content" to have no more than 0 ID selectors                        selector-max-id
 17:3  ✖  Expected ".ns-special #content form" to have no more than 0 ID selectors                   selector-max-id
 23:1  ✖  Expected "#mobile-options &.indicator-circle" to have no more than 0 ID selectors          selector-max-id
 26:2  ✖  Expected "#mobile-options &.indicator-circle:before" to have no more than 0 ID selectors   selector-max-id

skinStyles/mobile.special.styles/minerva.less
 19:2  ✖  Expected ".ns-special #content" to have no more than 0 ID selectors              selector-max-id
 20:3  ✖  Expected ".ns-special #content #section_0" to have no more than 0 ID selectors   selector-max-id

Details

Related Gerrit Patches:

Event Timeline

Volker_E created this task.Nov 26 2019, 3:22 AM
Restricted Application added subscribers: Masumrezarock100, Aklapper. · View Herald TranscriptNov 26 2019, 3:22 AM

Change 552949 had a related patch set uploaded (by VolkerE; owner: VolkerE):
[mediawiki/skins/MinervaNeue@master] Enable stylelint 'selector-max-id' rule and disable only on occurrence

https://gerrit.wikimedia.org/r/552949

Volker_E renamed this task from Enable 'selector-max-id' stylelint rule on MinervaNeue to Enable 'selector-max-id' stylelint rule on MinervaNeue/MobileFrontend.Nov 26 2019, 6:16 AM
Volker_E added a project: MobileFrontend.

Change 552958 had a related patch set uploaded (by VolkerE; owner: VolkerE):
[mediawiki/extensions/MobileFrontend@master] Enable stylelint 'selector-max-id' rule and disable only on occurrence

https://gerrit.wikimedia.org/r/552958

Change 552958 merged by jenkins-bot:
[mediawiki/extensions/MobileFrontend@master] Enable stylelint 'selector-max-id' rule and disable only on occurrence

https://gerrit.wikimedia.org/r/552958

Change 552949 merged by jenkins-bot:
[mediawiki/skins/MinervaNeue@master] Enable stylelint 'selector-max-id' rule and disable only on occurrence

https://gerrit.wikimedia.org/r/552949

Since this is only a linting change and only adds comments, I figured it's ok to skip QA.

@Volker_E - is this ready to resolve?

Volker_E closed this task as Resolved.Dec 10 2019, 7:44 PM
Volker_E updated the task description. (Show Details)

@ovasileva Yes, indeed.