Page MenuHomePhabricator

Deprecate `.mw-ui-constructive` usage for buttons in core and replace them with progressive
Closed, DeclinedPublic

Description

After T110555: Consolidate progressive and constructive buttons has resulted in broad agreement, we should get rid of the instances of buttons with .mw-ui-constructive and exchange them by .mw-ui-progressive.

Event Timeline

Volker_E raised the priority of this task from to Needs Triage.
Volker_E updated the task description. (Show Details)
Volker_E added a project: UI-Standardization.
Volker_E added subscribers: Volker_E, Jdlrobson, violetto.

If you were wondering about the scope:

1includes/EditPage.php:
2 3992: $attribs, [ 'mw-ui-constructive' ] );
3
4includes/Xml.php:
5 455: * When $wgUseMediaWikiUIEverywhere is true it will default to a constructive button
6 470: $baseAttrs['class'] = 'mw-ui-button mw-ui-constructive';
7
8includes/htmlform/HTMLForm.php:
9 171: protected $mSubmitFlags = [ 'constructive', 'primary' ];
10
11includes/htmlform/HTMLSubmitField.php:
12 10: protected $mFlags = [ 'primary', 'constructive' ];
13
14includes/specials/SpecialBotPasswords.php:
15 241: 'flags' => [ 'primary', 'constructive' ],
16
17includes/specials/SpecialMovepage.php:
18 466: 'flags' => [ 'constructive', 'primary' ],
19
20includes/templates/Usercreate.php:
21 275: 'mw-ui-constructive',
22
23resources/src/mediawiki/mediawiki.feedback.js:
24 219: flags: [ 'primary', 'constructive' ]
25 224: flags: 'constructive'
26
27resources/src/mediawiki/mediawiki.Upload.Dialog.js:
28 81: flags: [ 'primary', 'constructive' ],
29
30resources/src/mediawiki.less/mediawiki.ui/mixins.less:
31 112: // constructive/progressive/destructive color on hover and active.
32
33resources/src/mediawiki.special/mediawiki.special.apisandbox.js:
34 588: flags: [ 'primary', 'constructive' ]
35 1401: flags: 'constructive'
36
37resources/src/mediawiki.ui/components/anchors.less:
38 35: <a href="#" class="mw-ui-anchor mw-ui-constructive">Constructive</a>
39 49: &.mw-ui-constructive {
40 66: <a href="#" class="mw-ui-anchor mw-ui-constructive mw-ui-quiet">Constructive</a>
41
42resources/src/mediawiki.ui/components/buttons.less:
43 17: // These are the main actions on the page/workflow. The page should have only one of progressive, constructive and desctructive buttons, the rest being quiet.
44 81: // <button class="mw-ui-button mw-ui-constructive mw-ui-big">.mw-ui-constructive</button>
45 104: // <button class="mw-ui-button mw-ui-constructive mw-ui-block">.mw-ui-constructive</button>
46 141: // Constructive buttons (deprecated, consolidated with `progressive` – see T110555)
47 143: // Use constructive buttons for actions which result in a final action in the process that results
48 149: // <button class="mw-ui-button mw-ui-constructive">.mw-ui-constructive</button>
49 152: // <button class="mw-ui-button mw-ui-constructive" disabled>.mw-ui-constructive</button>
50 156: &.mw-ui-constructive {
51 188: // Use quiet buttons when they are less important and alongside other constructive, progressive or destructive buttons. It should be used for an action that exits the user from the current view/workflow.
52 196: // <button class="mw-ui-button mw-ui-constructive mw-ui-quiet">.mw-ui-constructive</button>
53 199: // <button class="mw-ui-button mw-ui-constructive mw-ui-quiet" disabled>.mw-ui-constructive</button>
54
55resources/src/mediawiki.ui/components/forms.less:
56 33: // <button class="mw-ui-button mw-ui-constructive">Button in vform</button>
57
58resources/src/mediawiki.ui/components/inputs.less:
59 89: // <button class="mw-ui-button mw-ui-constructive">Submit</button>
60
61resources/src/mediawiki.ui/components/text.less:
62 22: <span class="mw-ui-text mw-ui-constructive">Constructive</span>
63 34: .mw-ui-constructive& {
64
65tests/phpunit/includes/resourceloader/ResourceLoaderImageModuleTest.php:
66 48: 'constructive' => [

1[CentralAuth]/includes/specials/SpecialGlobalRenameQueue.php:
2 358: 'class' => 'mw-ui-constructive mw-ui-flush-right',
3
4[Cite]/modules/ve-cite/ve.ui.MWReferenceDialog.js:
5 49: flags: [ 'primary', 'constructive' ],
6
7[Citoid]/modules/ve.ui.CiteFromIdReferenceWidget.js:
8 46: flags: [ 'constructive', 'primary' ]
9
10[ContentTranslation]/modules/dashboard/ext.cx.dashboard.js:
11 196: .addClass( 'cx-cta__new-translation mw-ui-button mw-ui-constructive' )
12
13[ContentTranslation]/modules/header/ext.cx.header.js:
14 218: .addClass( 'cx-header__publish-button mw-ui-button mw-ui-constructive' )
15
16[ContentTranslation]/modules/publish/ext.cx.publish.js:
17 109: .addClass( 'cx-header__publish-captcha mw-ui-button mw-ui-constructive' )
18
19[Flow]/handlebars/flow_block_header_edit.handlebars:
20 27: class="mw-ui-button mw-ui-constructive">
21
22[Flow]/handlebars/flow_block_header_undo_edit.handlebars:
23 33: <button class="mw-ui-button mw-ui-constructive">
24
25[Flow]/handlebars/flow_block_topic_undo_edit.handlebars:
26 34: <button class="mw-ui-button mw-ui-constructive">
27
28[Flow]/handlebars/flow_block_topicsummary_edit.handlebars:
29 31: class="mw-ui-button mw-ui-constructive"
30
31[Flow]/handlebars/flow_block_topicsummary_undo_edit.handlebars:
32 36: <button class="mw-ui-button mw-ui-constructive">
33
34[Flow]/handlebars/flow_edit_post.partial.handlebars:
35 23: <button class="mw-ui-button mw-ui-constructive"
36
37[Flow]/handlebars/flow_edit_topic_title.partial.handlebars:
38 15: class="mw-ui-button mw-ui-constructive">{{l10n "flow-edit-title-submit"}}</button>
39
40[Flow]/handlebars/flow_moderate_post.partial.handlebars:
41 20: class="mw-ui-button mw-ui-constructive"
42
43[Flow]/handlebars/flow_moderate_topic.partial.handlebars:
44 18: <button class="mw-ui-button mw-ui-constructive"
45
46[Flow]/handlebars/flow_newtopic_form.partial.handlebars:
47 31: class="mw-ui-button mw-ui-constructive mw-ui-flush-right">{{l10n "flow-newtopic-save"}}</button>
48
49[Flow]/handlebars/flow_post_meta_actions.partial.handlebars:
50 37: <a class="mw-ui-anchor mw-ui-constructive mw-ui-quiet mw-thanks-flow-thank-link"
51
52[Flow]/handlebars/flow_reply_form.partial.handlebars:
53 48: class="mw-ui-button mw-ui-constructive"
54
55[Flow]/handlebars/flow_topic_titlebar_lock.partial.handlebars:
56 22: class="mw-ui-button mw-ui-constructive"
57
58[Flow]/handlebars/flow_topic_titlebar_watch.partial.handlebars:
59 5: class="mw-ui-anchor mw-ui-hovericon mw-ui-constructive {{#unless isWatched}}mw-ui-quiet{{/unless}}
60 14: {{~noop~}}<span class="flow-unwatch mw-ui-icon mw-ui-icon-before mw-ui-icon-unStar-constructive" title="{{l10n "flow-topic-action-watchlist-remove"}}"></span>{{~noop~}}
61 15: {{~noop~}}<span class="flow-watch mw-ui-icon mw-ui-icon-before mw-ui-icon-star mw-ui-icon-star-constructive-hover" title="{{l10n "flow-topic-action-watchlist-add"}}"></span>{{~noop~}}
62
63[Flow]/handlebars/compiled/flow_block_header_edit.handlebars.php:
64 61: class="mw-ui-button mw-ui-constructive">'.LCRun3::ch($cx, 'l10n', array(array('flow-edit-header-submit'),array()), 'encq').'</button>
65
66[Flow]/handlebars/compiled/flow_block_header_undo_edit.handlebars.php:
67 51: <button class="mw-ui-button mw-ui-constructive">'.LCRun3::ch($cx, 'l10n', array(array('flow-edit-header-submit'),array()), 'encq').'</button>
68
69[Flow]/handlebars/compiled/flow_block_topic.handlebars.php:
70 86: '.$sp.' class="mw-ui-anchor mw-ui-hovericon mw-ui-constructive '.((!LCRun3::ifvar($cx, ((isset($in['isWatched']) && is_array($in)) ? $in['isWatched'] : null))) ? 'mw-ui-quiet' : '').'
71 90: '.$sp.' data-flow-api-method="POST">'.htmlentities((string)((isset($in['noop']) && is_array($in)) ? $in['noop'] : null), ENT_QUOTES, 'UTF-8').'<span class="flow-unwatch mw-ui-icon mw-ui-icon-before mw-ui-icon-unStar-constructive" title="'.LCRun3::ch($cx, 'l10n', array(array('flow-topic-action-watchlist-remove'),array()), 'encq').'"></span>'.htmlentities((string)((isset($in['noop']) && is_array($in)) ? $in['noop'] : null), ENT_QUOTES, 'UTF-8').''.htmlentities((string)((isset($in['noop']) && is_array($in)) ? $in['noop'] : null), ENT_QUOTES, 'UTF-8').'<span class="flow-watch mw-ui-icon mw-ui-icon-before mw-ui-icon-star mw-ui-icon-star-constructive-hover" title="'.LCRun3::ch($cx, 'l10n', array(array('flow-topic-action-watchlist-add'),array()), 'encq').'"></span>'.htmlentities((string)((isset($in['noop']) && is_array($in)) ? $in['noop'] : null), ENT_QUOTES, 'UTF-8').'</a>
72 188: '.$sp.' class="mw-ui-button mw-ui-constructive"
73
74[Flow]/handlebars/compiled/flow_block_topic_edit_title.handlebars.php:
75 33: '.$sp.' class="mw-ui-button mw-ui-constructive">'.LCRun3::ch($cx, 'l10n', array(array('flow-edit-title-submit'),array()), 'encq').'</button>
76
77[Flow]/handlebars/compiled/flow_block_topic_lock.handlebars.php:
78 43: '.$sp.' class="mw-ui-button mw-ui-constructive"
79
80[Flow]/handlebars/compiled/flow_block_topic_moderate_post.handlebars.php:
81 52: '.$sp.' class="mw-ui-button mw-ui-constructive"
82 86: '.$sp.'' : '').''.((LCRun3::ifvar($cx, ((isset($in['actions']['thank']) && is_array($in['actions'])) ? $in['actions']['thank'] : null))) ? ' <a class="mw-ui-anchor mw-ui-constructive mw-ui-quiet mw-thanks-flow-thank-link"
83 194: '.$sp.' <button class="mw-ui-button mw-ui-constructive"
84 224: '.$sp.' class="mw-ui-button mw-ui-constructive"
85
86[Flow]/handlebars/compiled/flow_block_topic_moderate_topic.handlebars.php:
87 50: '.$sp.' <button class="mw-ui-button mw-ui-constructive"
88 86: '.$sp.'' : '').''.((LCRun3::ifvar($cx, ((isset($in['actions']['thank']) && is_array($in['actions'])) ? $in['actions']['thank'] : null))) ? ' <a class="mw-ui-anchor mw-ui-constructive mw-ui-quiet mw-thanks-flow-thank-link"
89 194: '.$sp.' <button class="mw-ui-button mw-ui-constructive"
90 224: '.$sp.' class="mw-ui-button mw-ui-constructive"
91
92[Flow]/handlebars/compiled/flow_block_topic_undo_edit.handlebars.php:
93 52: <button class="mw-ui-button mw-ui-constructive">'.LCRun3::ch($cx, 'l10n', array(array('flow-edit-post-submit'),array()), 'encq').'</button>
94
95[Flow]/handlebars/compiled/flow_block_topiclist.handlebars.php:
96 79: '.$sp.' class="mw-ui-button mw-ui-constructive mw-ui-flush-right">'.LCRun3::ch($cx, 'l10n', array(array('flow-newtopic-save'),array()), 'encq').'</button>
97 131: '.$sp.' class="mw-ui-anchor mw-ui-hovericon mw-ui-constructive '.((!LCRun3::ifvar($cx, ((isset($in['isWatched']) && is_array($in)) ? $in['isWatched'] : null))) ? 'mw-ui-quiet' : '').'
98 135: '.$sp.' data-flow-api-method="POST">'.htmlentities((string)((isset($in['noop']) && is_array($in)) ? $in['noop'] : null), ENT_QUOTES, 'UTF-8').'<span class="flow-unwatch mw-ui-icon mw-ui-icon-before mw-ui-icon-unStar-constructive" title="'.LCRun3::ch($cx, 'l10n', array(array('flow-topic-action-watchlist-remove'),array()), 'encq').'"></span>'.htmlentities((string)((isset($in['noop']) && is_array($in)) ? $in['noop'] : null), ENT_QUOTES, 'UTF-8').''.htmlentities((string)((isset($in['noop']) && is_array($in)) ? $in['noop'] : null), ENT_QUOTES, 'UTF-8').'<span class="flow-watch mw-ui-icon mw-ui-icon-before mw-ui-icon-star mw-ui-icon-star-constructive-hover" title="'.LCRun3::ch($cx, 'l10n', array(array('flow-topic-action-watchlist-add'),array()), 'encq').'"></span>'.htmlentities((string)((isset($in['noop']) && is_array($in)) ? $in['noop'] : null), ENT_QUOTES, 'UTF-8').'</a>
99 219: '.$sp.' class="mw-ui-button mw-ui-constructive"
100
101[Flow]/handlebars/compiled/flow_block_topiclist_newtopic.handlebars.php:
102 68: '.$sp.' class="mw-ui-button mw-ui-constructive mw-ui-flush-right">'.LCRun3::ch($cx, 'l10n', array(array('flow-newtopic-save'),array()), 'encq').'</button>
103
104[Flow]/handlebars/compiled/flow_block_topicsummary_edit.handlebars.php:
105 61: class="mw-ui-button mw-ui-constructive"
106
107[Flow]/handlebars/compiled/flow_block_topicsummary_undo_edit.handlebars.php:
108 54: <button class="mw-ui-button mw-ui-constructive">'.LCRun3::ch($cx, 'l10n', array(array('flow-topic-action-summarize-topic'),array()), 'encq').'</button>
109
110[Flow]/handlebars/compiled/flow_post.handlebars.php:
111 63: '.$sp.'' : '').''.((LCRun3::ifvar($cx, ((isset($in['actions']['thank']) && is_array($in['actions'])) ? $in['actions']['thank'] : null))) ? ' <a class="mw-ui-anchor mw-ui-constructive mw-ui-quiet mw-thanks-flow-thank-link"
112 171: '.$sp.' <button class="mw-ui-button mw-ui-constructive"
113 201: '.$sp.' class="mw-ui-button mw-ui-constructive"
114
115[Flow]/modules/engine/misc/mw-ui.enhance.js:
116 165: * tooltipContext=String (constructive,destructive,progressive,regressive)
117 255: } else if ( $target.hasClass( 'mw-ui-constructive' ) ) {
118 256: optionsUnreferenced.tooltipContext = 'constructive';
119 277: $tooltip.removeClass( 'mw-ui-progressive mw-ui-constructive mw-ui-destructive' );
120
121[Flow]/modules/engine/misc/mw-ui.modal.js:
122 80: '<a href="#" class="mw-ui-anchor mw-ui-quiet mw-ui-constructive flow-ui-modal-heading-next" data-flow-interactive-handler="modalNextOrSubmit"><span class="mw-ui-icon mw-ui-icon-before mw-ui-icon-check"></span></a>' +
123
124[Flow]/modules/flow/ui/widgets/mw.flow.ui.TopicTitleWidget.js:
125 46: flags: [ 'primary', 'constructive' ],
126
127[Flow]/modules/flow/ui/widgets/editor/mw.flow.ui.EditorControlsWidget.js:
128 29: flags: [ 'primary', 'constructive' ],
129
130[Flow]/modules/styles/mediawiki.ui/tooltips.less:
131 190: &.mw-ui-constructive {
132
133[Gather]/includes/views/ReportTableRow.php:
134 78: $action === 'hide' ? 'destructive': 'constructive',
135
136[Gather]/includes/views/helpers/CSS.php:
137 29: * @param string $modifier Type of anchor (progressive, constructive, destructive)
138 41: * @param string $modifier Type of button (progressive, constructive, destructive)
139 52: * @param string $modifier Type of anchor (progressive, constructive, destructive)
140
141[Gather]/resources/ext.gather.collection.contentOverlay/CollectionsContentOverlay.js:
142 24: constructive: true,
143
144[Graph]/modules/ve-graph/ve.ui.MWGraphDialog.js:
145 51: flags: [ 'constructive', 'primary' ],
146
147[GuidedTour]/modules/ext.guidedTour.lib/ext.guidedTour.lib.Step.js:
148 248: * * constructive
149 258: constructive: 'mw-ui-constructive',
150
151[GuidedTour]/modules/ext.guidedTour.lib/ext.guidedTour.lib.TourBuilder.js:
152 169: * class. Currently supports: progressive, constructive, destructive.
153
154[GuidedTour]/tests/qunit/ext.guidedTour.lib.tests.js:
155 1019: { action: 'wikiLink', type: 'constructive' },
156 1045: returnedButtons[2].html['class'].indexOf( 'mw-ui-constructive' ) !== -1,
157 1046: 'Constructive internal link'
158
159[MobileFrontend]/HISTORY.mediawiki:
160 1364: * Make settings submit button mw-ui-constructive
161
162[MobileFrontend]/includes/MobileUI.php:
163 33: * @param string $modifier Type of anchor (progressive, constructive, destructive)
164 45: * @param string $modifier Type of button (progressive, constructive, destructive)
165 56: * @param string $modifier Type of anchor (progressive, constructive, destructive)
166
167[MobileFrontend]/includes/specials/SpecialMobileOptions.php:
168 144: $className = MobileUI::buttonClass( 'constructive' );
169
170[MobileFrontend]/resources/mobile.betaoptin/BetaOptinPanel.js:
171 27: constructive: true,
172
173[MobileFrontend]/resources/mobile.overlays/Overlay.less:
174 80: // Overlays (constructive)
175 82: // Constructive overlays should be used when user interaction is required in the
176 327: // All types of overlays (progressive and constructive) apply here.
177
178[MobileFrontend]/resources/mobile.startup/anchor.hogan:
179 5: {{#constructive}}mw-ui-constructive{{/constructive}}
180
181[MobileFrontend]/resources/mobile.startup/Anchor.js:
182 20: * @cfg {Boolean} defaults.constructive is constructive action
183 29: constructive: undefined,
184
185[MobileFrontend]/resources/mobile.startup/button.hogan:
186 6: {{#constructive}}mw-ui-constructive{{/constructive}}
187
188[MobileFrontend]/resources/mobile.startup/Button.js:
189 25: * @cfg {Boolean} defaults.constructive is constructive action
190 37: constructive: undefined,
191
192[MobileFrontend]/resources/mobile.talk.overlays/TalkSectionOverlay.js:
193 38: constructive: true,
194
195[MultimediaViewer]/resources/mmv/ui/mmv.ui.download.pane.js:
196 76: // TODO: Use oojs-ui constructive button widget instead
197 80: .addClass( 'mw-ui-button mw-ui-constructive mw-mmv-download-go-button' )
198
199[MultimediaViewer]/resources/mmv/ui/mmv.ui.download.pane.less:
200 3: @mw-ui-constructive-button-color: #00af89;
201 36: background-color: @mw-ui-constructive-button-color;
202 37: border: 1px solid @mw-ui-constructive-button-color;
203 40: border-left: 1px solid mix(#000, @mw-ui-constructive-button-color, 20%);
204 43: border-bottom: 1px solid mix(#000, @mw-ui-constructive-button-color, 20%);
205
206[Newsletter]/includes/specials/SpecialNewsletter.php:
207 298: 'flags' => array( 'constructive' ),
208 381: 'flags' => array( 'primary', 'constructive' ),
209
210[OAuth]/frontend/specialpages/SpecialMWOAuth.php:
211 396: array( 'class' => 'mw-mwoauth-authorize-button mw-ui-button mw-ui-constructive',
212
213[OOJsUIAjaxLogin]/resources/ext.OOJsUIAjaxLogin.overlay/LoginOverlay.js:
214 46: flags: [ 'primary', 'constructive' ]
215
216[Popups]/resources/ext.popups.settings.js:
217 33: .addClass( 'mw-ui-button mw-ui-constructive' )
218 40: .addClass( 'mw-ui-button mw-ui-constructive' )
219
220[QuickSurveys]/resources/ext.quicksurveys.views/ExternalSurvey.js:
221 42: flags: 'constructive',
222
223[SemanticLinks]/modules/VELinkTyping.js:
224 317: 'flags': [ 'constructive' ],
225
226[SpellingDictionary]/modules/ext.SpellingDictionary.submitWord.js:
227 19: flags: [ 'constructive', 'primary'],
228
229[SpellingDictionary]/modules/ext.SpellingDictionary.viewByLanguage.js:
230 17: flags: [ 'constructive', 'primary' ],
231
232[TemplateData]/modules/ext.templateDataGenerator.ui.tdDialog.js:
233 39: flags: [ 'primary', 'constructive' ],
234 51: flags: [ 'constructive' ],
235
236[Thanks]/modules/ext.thanks.mobilediff.js:
237 54: $thankBtn = $( '<button class="mw-mf-action-button mw-ui-button mw-ui-constructive thanked">' )
238 58: $thankBtn = $( '<button class="mw-mf-action-button mw-ui-button mw-ui-constructive">' )
239
240[Translate]/specials/SpecialPageMigration.php:
241 56: 'class' => 'mw-ui-button mw-ui-constructive hide', 'type' => 'button',
242
243[Translate]/specials/SpecialPagePreparation.php:
244 48: <button id="action-save" class="mw-ui-button mw-ui-constructive hide" type="button">
245
246[TwnMainPage]/specials/SpecialTwnMainPage.php:
247 631: <button class="mw-ui-button mw-ui-constructive" type="submit" id="twnmp-create-account">
248
249[UploadWizard]/resources/mw.FlickrChecker.js:
250 14: flags: [ 'constructive', 'primary' ]
251
252[UploadWizard]/resources/mw.UploadWizardDetails.js:
253 420: flags: [ 'constructive' ]
254
255[UploadWizard]/resources/details/uw.DescriptionsDetailsWidget.js:
256 18: flags: [ 'constructive' ],
257
258[UploadWizard]/resources/ui/steps/uw.ui.Upload.js:
259 87: flags: [ 'constructive', 'primary' ]
260 96: flags: 'constructive'
261
262[VisualEditor]/lib/ve/src/ui/inspectors/ve.ui.AnnotationInspector.js:
263 60: flags: [ 'constructive', 'primary' ],
264
265[VisualEditor]/lib/ve/src/ui/inspectors/ve.ui.FragmentInspector.js:
266 46: flags: [ 'constructive', 'primary' ],
267
268[VisualEditor]/modules/ve-mw/tests/browser/features/support/pages/visual_editor_page.rb:
269 115: span(:media_insert_button, css: '.oo-ui-flaggedElement-constructive > a:nth-child(1) > span:nth-child(2)')
270
271[VisualEditor]/modules/ve-mw/ui/dialogs/ve.ui.MWExtensionDialog.js:
272 50: flags: [ 'constructive', 'primary' ],
273
274[VisualEditor]/modules/ve-mw/ui/dialogs/ve.ui.MWMediaDialog.js:
275 59: flags: [ 'primary', 'constructive' ],
276
277[VisualEditor]/modules/ve-mw/ui/dialogs/ve.ui.MWSaveDialog.js:
278 52: flags: [ 'primary', 'constructive' ],
279 74: flags: [ 'primary', 'constructive' ],
280
281[VisualEditor]/modules/ve-mw/ui/dialogs/ve.ui.MWTemplateDialog.js:
282 55: flags: [ 'primary', 'constructive' ],
283
284[VisualEditor]/modules/ve-mw/ui/pages/ve.ui.MWTemplatePlaceholderPage.js:
285 44: flags: [ 'constructive' ],
286
287[WikiLove]/resources/ext.wikiLove.core.js:
288 145: <button class="submit mw-ui-button mw-ui-constructive" id="mw-wikilove-button-send" type="submit"></button>\

I'm not sure if it's really practical to change them all. We could just leave "constructive" as a permanent alias for "progressive".

@matmarex Thanks for those listings. Reminds me of the discussion about transitioning to the new array syntax

On Fri, Feb 12, 2016 at 12:26 PM, Legoktm <legoktm.wikipedia@gmail.com> wrote:

I think you're going to end up in rebase hell regardless, so we should
rip off the bandaid quickly and get it over with, and use the automated
tools we have to our advantage.

Umm. No? Constructive is not being used in the MediaWiki theme; it's still being used in Apex, right? So any OOUI usage should remain as-is… MWUI interfaces can drop it or retain it when they are switched over to OOUI.

Volker_E renamed this task from Deprecate `.mw-ui-constructive` usage for buttons in core and exchange them with progressive to Deprecate `.mw-ui-constructive` usage for buttons in core and replace them with progressive.May 7 2016, 6:34 PM
matmarex claimed this task.

I think this is not worth the effort. We should just work on T100270 instead and kill off MediaWiki UI.