jenkins-bot has submitted this change and it was merged.

Change subject: MediaWiki Theme: checkbox: Fix states according to spec
......................................................................


MediaWiki Theme: checkbox: Fix states according to spec

* Color changes
* Introduces hover state
* Separates focus and active state
* Removes need for inset border

Design specification on Trello:
https://trello.com/c/JETLmm7F/7-check-boxes

Bug: T78199
Change-Id: Id31aa519fc26c710e4f2e0d7925d27cba2494af1
---
M src/themes/mediawiki/common.less
M src/themes/mediawiki/widgets.less
2 files changed, 44 insertions(+), 26 deletions(-)

Approvals:
  Bartosz Dziewoński: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/src/themes/mediawiki/common.less b/src/themes/mediawiki/common.less
index 70ff340..65f5acb 100644
--- a/src/themes/mediawiki/common.less
+++ b/src/themes/mediawiki/common.less
@@ -35,8 +35,14 @@
 
 @oo-ui-default-image-path: 'themes/mediawiki/images';
 
-@checkbox-size: 1.6em;
-@border-radius: 0.3em;
+@input-border-color: #777;
+@input-active-color: #ddd;
+@input-disabled-color: #eee;
+@input-hover-border-bottom-width: 3px;
+@input-focus-border-width: 2px;
+@input-size: 2em;
+@border-radius: 2px;
+
 
 // Theme mixins
 
diff --git a/src/themes/mediawiki/widgets.less 
b/src/themes/mediawiki/widgets.less
index b9a0672..e6f2f40 100644
--- a/src/themes/mediawiki/widgets.less
+++ b/src/themes/mediawiki/widgets.less
@@ -139,9 +139,10 @@
 
 .theme-oo-ui-checkboxInputWidget () {
        position: relative;
-       line-height: @checkbox-size;
+       line-height: @input-size;
 
        * {
+               font: inherit;
                vertical-align: middle;
        }
 
@@ -149,13 +150,18 @@
                // we hide the input element as instead we will style the span 
that follows
                // we use opacity so that VoiceOver software can still identify 
it
                opacity: 0;
+
+               // having a margin might offset the checkbox from the pseudo 
element
+               // making only the overlap region react to events
+               margin: 0;
+
                // ensure the invisible checkbox takes up the required width
-               width: @checkbox-size;
-               height: @checkbox-size;
+               width: @input-size;
+               height: @input-size;
+
                // This is needed for Firefox mobile (See bug 71750 to 
workaround default Firefox stylesheet)
                max-width: none;
 
-               // the pseudo before element of the span after the checkbox now 
looks like a checkbox
                & + span {
                        cursor: pointer;
                        margin: 0 0.4em;
@@ -163,40 +169,46 @@
 
                & + span::before {
                        content: '';
+                       .oo-ui-box-sizing( border-box );
                        position: absolute;
                        left: 0;
                        border-radius: @border-radius;
-                       width: @checkbox-size;
-                       height: @checkbox-size;
-                       background-color: #fff;
-                       border: 1px solid grey;
+                       width: @input-size;
+                       height: @input-size;
+                       background-color: white;
+                       border: 1px solid @input-border-color;
                }
 
-               // when the input is checked, style the span pseudo before 
element that followed as a checked checkbox
                &:checked + span::before  {
                        
.oo-ui-background-image('@{oo-ui-default-image-path}/icons/check-constructive.svg');
-                       background-size: @checkbox-size, @checkbox-size;
+                       background-size: @input-size, @input-size;
                        background-repeat: no-repeat;
-                       background-position: center top;
+                       background-position: center center;
+                       background-origin: border-box;
                }
 
-               @focus-bottom-border-size: 0.2em;
-
-               &:active + span::after,
-               &:focus + span::after {
-                       content: '';
-                       position: absolute;
-                       width: @checkbox-size;
-                       height: @checkbox-size - @focus-bottom-border-size + 
0.1; // offset by bottom border
-                       // offset from the checkbox by 1px to account for left 
border
-                       left: 1px;
-                       border-bottom: solid @focus-bottom-border-size 
lightgrey;
+               &:active + span::before {
+                       background-color: @input-active-color;
+                       border-color: @input-active-color;
                }
 
-               // disabled checked boxes have a gray background
+               &:focus + span::before {
+                       border-width: @input-focus-border-width;
+               }
+
+               &:focus:hover + span::before,
+               &:hover + span::before {
+                       border-bottom-width: @input-hover-border-bottom-width;
+               }
+
                &:disabled + span::before {
                        cursor: default;
-                       background-color: lightgrey;
+                       background-color: @input-disabled-color;
+                       border-color: @input-disabled-color;
+               }
+
+               &:disabled:checked + span::before {
+                       
.oo-ui-background-image('@{oo-ui-default-image-path}/icons/check-invert.svg');
                }
        }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/176397
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Id31aa519fc26c710e4f2e0d7925d27cba2494af1
Gerrit-PatchSet: 7
Gerrit-Project: oojs/ui
Gerrit-Branch: master
Gerrit-Owner: Prtksxna <[email protected]>
Gerrit-Reviewer: Bartosz Dziewoński <[email protected]>
Gerrit-Reviewer: Jforrester <[email protected]>
Gerrit-Reviewer: Prtksxna <[email protected]>
Gerrit-Reviewer: Trevor Parscal <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to