jenkins-bot has submitted this change and it was merged. Change subject: Hygiene: Icon cleanup ......................................................................
Hygiene: Icon cleanup Now everything uses box-sizing clean up css so that .icon has a default dimensions. Make all the icons global and reusable. Introduce icon-cancel-light and icon-cancel, icon-submit, icon-continue, icon-photo, icon-clear, icon-back, icon-arrow-up and icon-arrow-down Share icons between toggling and drawer Change-Id: I813bfd76ea2fafa6eebe42cafcbbe1c59856ac2c --- M javascripts/modules/talk/TalkSectionAddOverlay.js M javascripts/modules/toggling/toggle.js M javascripts/modules/uploads/PhotoUploadOverlay.js M javascripts/modules/uploads/PhotoUploaderButton.js M javascripts/specials/uploads.js M less/common/Overlay.less M less/common/drawer.less M less/common/icons.less R less/common/images/camera.png R less/common/images/hide.png A less/common/images/show.png D less/modules/images/show.png M less/modules/mediaViewer.less M less/modules/references.less M less/modules/toc/toc.less M less/modules/toggle.less M less/modules/uploads/PhotoUploaderButton.less M templates/Overlay.html M templates/ReferencesDrawer.html M templates/ctaDrawer.html M templates/modules/ImageOverlay.html M templates/modules/editor/EditorOverlayBase.html M templates/modules/editor/EditorOverlayHeader.html M templates/modules/editor/VisualEditorOverlayHeader.html M templates/modules/search/SearchOverlay.html M templates/uploads/PhotoUploadProgress.html M templates/uploads/PhotoUploaderButton.html 27 files changed, 122 insertions(+), 100 deletions(-) Approvals: Kaldari: Looks good to me, approved jenkins-bot: Verified diff --git a/javascripts/modules/talk/TalkSectionAddOverlay.js b/javascripts/modules/talk/TalkSectionAddOverlay.js index 4624bdd..0129d2e 100644 --- a/javascripts/modules/talk/TalkSectionAddOverlay.js +++ b/javascripts/modules/talk/TalkSectionAddOverlay.js @@ -9,7 +9,7 @@ TalkSectionAddOverlay = Overlay.extend( { defaults: { headerButtons: [ - { className: 'submit icon confirm-save', msg: mw.msg( 'mobile-frontend-editor-continue' ) } + { className: 'submit icon icon-submit confirm-save', msg: mw.msg( 'mobile-frontend-editor-continue' ) } ], cancelMsg: mw.msg( 'mobile-frontend-editor-cancel' ), confirmMsg: mw.msg( 'mobile-frontend-editor-save' ), diff --git a/javascripts/modules/toggling/toggle.js b/javascripts/modules/toggling/toggle.js index f965dd0..3c27552 100644 --- a/javascripts/modules/toggling/toggle.js +++ b/javascripts/modules/toggling/toggle.js @@ -11,6 +11,11 @@ var isCollapsed = $heading.is( '.openSection' ); $heading.toggleClass( 'openSection' ); + if ( $heading.hasClass( 'openSection' ) ) { + $heading.addClass( 'icon-arrow-up' ).removeClass( 'icon-arrow-down' ); + } else { + $heading.removeClass( 'icon-arrow-up' ).addClass( 'icon-arrow-down' ); + } $heading.next() .toggleClass( 'openSection' ) .attr( { @@ -70,7 +75,8 @@ $( 'html' ).removeClass( 'stub' ); $firstHeading = $page.find( 'h1,h2,h3,h4,h5,h6' ).eq(0); tagName = $firstHeading.prop( 'tagName' ) || 'H1'; - $page.find( tagName ).addClass( 'section_heading icon icon-text icon-15px' ); + $page.find( tagName ).addClass( 'section_heading icon icon-text icon-15px icon-arrow-down' ); + $headings = $page.find( '.section_heading' ); $headings.next( 'div' ).addClass( 'content_block' ); diff --git a/javascripts/modules/uploads/PhotoUploadOverlay.js b/javascripts/modules/uploads/PhotoUploadOverlay.js index ebed02d..3a483e5 100644 --- a/javascripts/modules/uploads/PhotoUploadOverlay.js +++ b/javascripts/modules/uploads/PhotoUploadOverlay.js @@ -23,7 +23,7 @@ heading: mw.msg( 'mobile-frontend-image-heading-describe' ), headerButtonsListClassName: '', headerButtons: [ - { className: 'submit icon', msg: mw.msg( 'mobile-frontend-photo-submit' ) } + { className: 'submit icon-submit icon', msg: mw.msg( 'mobile-frontend-photo-submit' ) } ] }, diff --git a/javascripts/modules/uploads/PhotoUploaderButton.js b/javascripts/modules/uploads/PhotoUploaderButton.js index 44b6a7f..79ff271 100644 --- a/javascripts/modules/uploads/PhotoUploaderButton.js +++ b/javascripts/modules/uploads/PhotoUploaderButton.js @@ -45,7 +45,7 @@ */ PhotoUploaderButton = View.extend( { template: M.template.get( 'uploads/PhotoUploaderButton' ), - className: 'mw-ui-progressive mw-ui-button button photo', + className: 'mw-ui-progressive mw-ui-button button icon-photo icon icon-text', postRender: function() { var self = this, $input = this.$( 'input' ); diff --git a/javascripts/specials/uploads.js b/javascripts/specials/uploads.js index 7f82c25..a4af3d5 100644 --- a/javascripts/specials/uploads.js +++ b/javascripts/specials/uploads.js @@ -189,11 +189,11 @@ if ( $container.length ) { if ( user.getEditCount() === 0 ) { - $a = $( '<a class="button photo mw-ui-button mw-ui-progressive">' ). + $a = $( '<a class="button icon icon-photo icon-text mw-ui-button mw-ui-progressive">' ). text( mw.msg( 'mobile-frontend-photo-upload-generic' ) ). attr( 'href', '#/upload-tutorial/uploads' ).appendTo( $container ); // FIXME: This is needed so the camera shows. Eww. - $( '<div class="icon icon-24px">' ).appendTo( $a ); + $( '<div class="icon icon icon-24px">' ).appendTo( $a ); } else { createButton( $container ); } diff --git a/less/common/Overlay.less b/less/common/Overlay.less index 884a6cb..3002343 100644 --- a/less/common/Overlay.less +++ b/less/common/Overlay.less @@ -152,35 +152,6 @@ min-height: @headerHeight; display: block; } - - .icon { - - &[disabled] { - opacity: .5; - } - - &.cancel { - background-image: url('images/cancel.png'); - } - - &.clear { - background-image: url('images/clear.png'); - } - - &.submit { - background-image: url('images/check.png'); - background-color: #00af8b; - } - - &.continue { - background-image: url('images/continue-ltr.png'); - background-color: #2f81f0; - } - - &.back { - background-image: url('images/back-ltr.png'); - } - } } .overlay-header-container { diff --git a/less/common/drawer.less b/less/common/drawer.less index 0c8d126..f7014e5 100644 --- a/less/common/drawer.less +++ b/less/common/drawer.less @@ -39,10 +39,8 @@ a.cancel { display: block; - overflow: hidden; width: 100%; height: 32px; - .background-image('../modules/images/show.png'); background-position: 50% 8px; } diff --git a/less/common/icons.less b/less/common/icons.less index 558ba15..5c81a27 100644 --- a/less/common/icons.less +++ b/less/common/icons.less @@ -3,6 +3,10 @@ @import "minerva.mixins"; @import "mediawiki.mixins"; +.default-icon-size( @size ) { + min-height: @size; + min-width: @size; +} // Icons // // Styleguide 8. @@ -35,6 +39,11 @@ background-position: center center; text-indent: -9999px; overflow: hidden; + .default-icon-size( 24px ); + + &[disabled] { + opacity: .5; + } } // Icon (text) @@ -52,7 +61,8 @@ .stable #page-secondary-actions .mw-ui-button.mw-ui-progressive.icon, // FIXME: Kill above rule when mediawiki ui stops using background property and cache is clear .profile .icon-talk-blue, -// FIXME: Kill above rule when mediawiki ui buttons stops using background property +.mw-ui-button.mw-ui-progressive.icon.icon-text, +// FIXME: Kill above 2 rules when mediawiki ui buttons stops using background property .icon-text { text-indent: 0; background-position: left center; @@ -61,6 +71,7 @@ // FIXME: Replace all instances of icon-12px with icon-16px .icon-12px { .background-size( auto, 12px ); + .default-icon-size( 12px ); } // FIXME: Replace all instances of icon-15px with icon-16px @@ -78,6 +89,7 @@ // // Styleguide 8.1.1 .icon-16px { + .default-icon-size( 16px ); .background-size( 16px, auto ); } @@ -110,6 +122,7 @@ // FIXME: Kill above when mediawiki ui buttons does not use background declaration .icon-32px { .background-size( 32px, auto ); + .default-icon-size( 32px ); } // Icon (max-x) @@ -220,3 +233,60 @@ background-color: #FFF; .background-image-svg-quick('images/magnifying-glass'); } + +// Icon (cancel) +// +// Renders a cancel icon to escape a Drawer or Overlay +// +// Markup: +// <div class="icon icon-cancel">cancel</div> +// +// Styleguide 8.3.6. +.icon-cancel { + .background-image('images/cancel.png'); +} + +// Icon (cancel light) +// +// Renders a cancel icon to escape a Drawer or Overlay for a dark background +// +// Markup: +// <div class="icon icon-cancel-light">cancel</div> +// +// Styleguide 8.3.7. +.icon-cancel-light { + .background-image('images/close-button-beta.png'); +} + + +.icon-photo { + .background-image('images/camera.png') !important; +} + +.icon-clear { + .background-image('images/clear.png'); +} + +.icon-submit { + .background-image('images/check.png'); + // FIXME: This should be inherited from mw-ui-constructive class + background-color: #00af8b; +} + +.icon-continue { + .background-image('images/continue-ltr.png'); + // FIXME: This should be inherited from mw-ui-progressive class + background-color: #2f81f0; +} + +.icon-back { + .background-image('images/back-ltr.png'); +} + +.icon-arrow-down { + .background-image('images/show.png'); +} + +.icon-arrow-up { + .background-image('images/hide.png'); +} diff --git a/less/modules/images/camera.png b/less/common/images/camera.png similarity index 100% rename from less/modules/images/camera.png rename to less/common/images/camera.png Binary files differ diff --git a/less/modules/images/hide.png b/less/common/images/hide.png similarity index 100% rename from less/modules/images/hide.png rename to less/common/images/hide.png Binary files differ diff --git a/less/common/images/show.png b/less/common/images/show.png new file mode 100644 index 0000000..d6fb40c --- /dev/null +++ b/less/common/images/show.png Binary files differ diff --git a/less/modules/images/show.png b/less/modules/images/show.png deleted file mode 100644 index 1975ece..0000000 --- a/less/modules/images/show.png +++ /dev/null Binary files differ diff --git a/less/modules/mediaViewer.less b/less/modules/mediaViewer.less index 8050b4d..2eb24d4 100644 --- a/less/modules/mediaViewer.less +++ b/less/modules/mediaViewer.less @@ -44,10 +44,6 @@ position: absolute; right: 10px; top: 10px; - text-indent: -9999px; - width: 24px; - height: 24px; - background: url(../common/images/close-button-beta.png) no-repeat; } .details { diff --git a/less/modules/references.less b/less/modules/references.less index bb08618..2345e79 100644 --- a/less/modules/references.less +++ b/less/modules/references.less @@ -12,12 +12,8 @@ display: none; } - .icon-close { + .icon { float: right; margin-top: .7em; - width: 16px; - height: 12px; - // FIXME: Use the same close icon as overlays - .background-image('../common/images/close-button-beta.png'); } } diff --git a/less/modules/toc/toc.less b/less/modules/toc/toc.less index c2b3b32..f179fc0 100644 --- a/less/modules/toc/toc.less +++ b/less/modules/toc/toc.less @@ -16,15 +16,13 @@ @paddingVertical: 1em; @fontSize: .8em; h2 { - font-family: @fontFamily; - line-height: @iconSize; margin-left: @leftMargin; margin-right: @leftMargin; background-position: right center; - font-size: @fontSize; font-weight: bold; + // Resetting heading styles seems bad. padding: @paddingVertical 0 @paddingVertical @iconSize + @iconHeadingGap; - border-bottom: none; + font-size: @fontSize; .icon { .background-image('images/contents.png'); diff --git a/less/modules/toggle.less b/less/modules/toggle.less index fc8c953..99ad08a 100644 --- a/less/modules/toggle.less +++ b/less/modules/toggle.less @@ -21,13 +21,9 @@ .section_heading { position: relative; - .background-image('images/show.png'); - background-position: left 1.05; padding-left: 24px; - cursor: pointer; &.openSection { - .background-image('images/hide.png'); padding-right: @sectionIconWidth + 15px; border-bottom: solid 1px @sectionBorderColor; margin-bottom: @headingMargin; diff --git a/less/modules/uploads/PhotoUploaderButton.less b/less/modules/uploads/PhotoUploaderButton.less index f5f33b0..46237c9 100644 --- a/less/modules/uploads/PhotoUploaderButton.less +++ b/less/modules/uploads/PhotoUploaderButton.less @@ -2,38 +2,29 @@ @import "minerva.variables"; @import "minerva.mixins"; -// Restrict to content to avoid interference with rules in button.less -.content .button.photo { - position: relative; - display: table; - margin: 0 auto; - padding-left: 44px; - text-align: left; /* override text-align center - chrome not clickable */ - - .icon { - .background-image('../images/camera.png'); +.ctaUploadPhoto { + .icon-photo { // Note: Use left to ensure it flips in RTL mode - background-position: left 45%; - margin: 0 10px; - } + // FIXME: !important needed to override icon-text rule in icons.less + background-position: left 10px center !important; + display: table; + position: relative; + margin: 0 auto; + padding-left: 44px; - input { - opacity: 0; - z-index: 2; - } + input { + opacity: 0; + z-index: 2; + } - input, div { - cursor: pointer; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; + input, div { + cursor: pointer; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + } } -} - -#content > .button.photo { - display: block; - margin-bottom: 10px; } diff --git a/templates/Overlay.html b/templates/Overlay.html index 7552622..76586aa 100644 --- a/templates/Overlay.html +++ b/templates/Overlay.html @@ -1,7 +1,7 @@ <div class="overlay-header-container visible {{#fixedHeader}} position-fixed{{/fixedHeader}}"> <div class="overlay-header"> <ul class="bottom-border"> - <li><button class="cancel icon">{{closeMsg}}</button></li> + <li><button class="cancel icon icon-cancel">{{closeMsg}}</button></li> </ul> <div class="overlay-title bottom-border"> <h2>{{{heading}}}</h2> diff --git a/templates/ReferencesDrawer.html b/templates/ReferencesDrawer.html index 07a4ffc..cb6249f 100644 --- a/templates/ReferencesDrawer.html +++ b/templates/ReferencesDrawer.html @@ -1,4 +1,4 @@ -<button class="cancel icon icon-close icon-12px"></button> +<button class="cancel icon icon-cancel icon-12px"></button> <h3>{{title}}</h3> {{{text}}} diff --git a/templates/ctaDrawer.html b/templates/ctaDrawer.html index 71bfdeb..a7c64e6 100644 --- a/templates/ctaDrawer.html +++ b/templates/ctaDrawer.html @@ -1,4 +1,4 @@ -<a class="cancel icon" href="#">{{cancelMessage}}</a> +<a class="cancel icon icon-arrow-down" href="#">{{cancelMessage}}</a> <p>{{content}}</p> <div class="buttonBar mw-ui-button-group"> <a class="button wide mw-ui-button mw-ui-block mw-ui-progressive" href="{{loginUrl}}">{{loginCaption}}</a> diff --git a/templates/modules/ImageOverlay.html b/templates/modules/ImageOverlay.html index 0f5a98a..e8e3f1e 100644 --- a/templates/modules/ImageOverlay.html +++ b/templates/modules/ImageOverlay.html @@ -1,4 +1,4 @@ -<button class="cancel">{{closeMsg}}</button> +<button class="cancel icon icon-cancel-light">{{closeMsg}}</button> <div class="container loading"><div></div></div> <div class="content details cloaked-element"> <a class="mw-ui-button mw-ui-progressive button" href="#">{{detailsMsg}}</a> diff --git a/templates/modules/editor/EditorOverlayBase.html b/templates/modules/editor/EditorOverlayBase.html index 70de5b2..e1f5da1 100644 --- a/templates/modules/editor/EditorOverlayBase.html +++ b/templates/modules/editor/EditorOverlayBase.html @@ -2,18 +2,18 @@ {{>header}} <div class="overlay-header save-header hideable hidden"> <ul class="bottom-border"> - <li><button class="back icon-24px icon">{{keepEditingMsg}}</button></li> + <li><button class="back icon-24px icon icon-cancel">{{keepEditingMsg}}</button></li> </ul> <div class="overlay-title bottom-border"> <h2>{{{previewingMsg}}}</h2> </div> <ul> - <li><button class="submit icon">{{saveMsg}}</button></li> + <li><button class="submit icon-submit icon">{{saveMsg}}</button></li> </ul> </div> <div class="overlay-header saving-header hideable hidden"> <ul class="bottom-border"> - <li><button class="cancel icon" disabled>{{closeMsg}}</button></li> + <li><button class="cancel icon icon-cancel" disabled>{{closeMsg}}</button></li> </ul> <div class="overlay-title bottom-border"> <h2>{{{waitMsg}}}</h2> diff --git a/templates/modules/editor/EditorOverlayHeader.html b/templates/modules/editor/EditorOverlayHeader.html index 0401ccc..f84720d 100644 --- a/templates/modules/editor/EditorOverlayHeader.html +++ b/templates/modules/editor/EditorOverlayHeader.html @@ -1,6 +1,6 @@ <div class="overlay-header initial-header hideable hidden"> <ul class="bottom-border"> - <li><button class="cancel icon">{{closeMsg}}</button></li> + <li><button class="cancel icon icon-cancel">{{closeMsg}}</button></li> </ul> {{#editSwitcher}} <div class="switcher-container bottom-border"> @@ -16,7 +16,7 @@ </div> {{^readOnly}} <ul> - <li><button class="continue icon" disabled>{{continueMsg}}</button></li> + <li><button class="continue icon icon-continue" disabled>{{continueMsg}}</button></li> </ul> {{/readOnly}} </div> diff --git a/templates/modules/editor/VisualEditorOverlayHeader.html b/templates/modules/editor/VisualEditorOverlayHeader.html index 8a00df0..157a241 100644 --- a/templates/modules/editor/VisualEditorOverlayHeader.html +++ b/templates/modules/editor/VisualEditorOverlayHeader.html @@ -1,6 +1,6 @@ <div class="overlay-header initial-header hideable hidden"> <ul class="bottom-border"> - <li><button class="cancel icon">{{closeMsg}}</button></li> + <li><button class="cancel icon icon-cancel">{{closeMsg}}</button></li> </ul> <div class="switcher-container bottom-border"> @@ -15,7 +15,7 @@ <div class="toolbar bottom-border"></div> {{^readOnly}} <ul> - <li><button class="continue icon" disabled>{{continueMsg}}</button></li> + <li><button class="continue icon icon-continue" disabled>{{continueMsg}}</button></li> </ul> {{/readOnly}} </div> diff --git a/templates/modules/search/SearchOverlay.html b/templates/modules/search/SearchOverlay.html index 4db4288..67cb473 100644 --- a/templates/modules/search/SearchOverlay.html +++ b/templates/modules/search/SearchOverlay.html @@ -2,7 +2,7 @@ <div class="overlay-header-container visible position-fixed"> <div class="overlay-header"> <ul class="bottom-border"> - <li><button class="cancel icon">{{closeMsg}}</button></li> + <li><button class="cancel icon icon-cancel">{{closeMsg}}</button></li> </ul> <div class="overlay-search bottom-border"> <form method="get" action="{{action}}"> @@ -11,7 +11,7 @@ </form> </div> <ul class="bottom-border"> - <li><button class="clear icon">{{clearMsg}}</button></li> + <li><button class="clear icon icon-clear">{{clearMsg}}</button></li> </ul> </div> </div> diff --git a/templates/uploads/PhotoUploadProgress.html b/templates/uploads/PhotoUploadProgress.html index d7503e5..79aa598 100644 --- a/templates/uploads/PhotoUploadProgress.html +++ b/templates/uploads/PhotoUploadProgress.html @@ -1,7 +1,7 @@ <div class="overlay-header-container visible position-fixed"> <div class="overlay-header progress-header hideable"> <ul class="bottom-border"> - <li><button class="cancel icon">{{closeMsg}}</button></li> + <li><button class="cancel icon icon-cancel">{{closeMsg}}</button></li> </ul> <div class="bottom-border"> <h2 class="uploading">{{{uploadingMsg}}}</h2> @@ -17,7 +17,7 @@ <div class="bottom-border"> </div> <ul> - <li><button class="submit icon">{{saveMsg}}</button></li> + <li><button class="submit icon icon-submit">{{saveMsg}}</button></li> </ul> </div> </div> diff --git a/templates/uploads/PhotoUploaderButton.html b/templates/uploads/PhotoUploaderButton.html index fb6d300..aa9b4bf 100644 --- a/templates/uploads/PhotoUploaderButton.html +++ b/templates/uploads/PhotoUploaderButton.html @@ -1,2 +1,2 @@ {{buttonCaption}} -<div class="icon"><input name="file" type="file" class="cloaked-element"></div> +<input name="file" type="file" class="cloaked-element"> -- To view, visit https://gerrit.wikimedia.org/r/133190 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I813bfd76ea2fafa6eebe42cafcbbe1c59856ac2c Gerrit-PatchSet: 9 Gerrit-Project: mediawiki/extensions/MobileFrontend Gerrit-Branch: master Gerrit-Owner: Jdlrobson <jrob...@wikimedia.org> Gerrit-Reviewer: Awjrichards <aricha...@wikimedia.org> Gerrit-Reviewer: JGonera <jgon...@wikimedia.org> Gerrit-Reviewer: Jdlrobson <jrob...@wikimedia.org> Gerrit-Reviewer: Kaldari <rkald...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits