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
```