Commit afd82771 by Adam

Merge pull request #3101 from edx/talbs/ui-disabled

UI: Disabled Utility Classes
parents ce330374 7636ad32
...@@ -782,12 +782,20 @@ hr.divide { ...@@ -782,12 +782,20 @@ hr.divide {
// ==================== // ====================
// basic utility // basic utility
// UI - semantically hide text
.sr { .sr {
@extend %cont-text-sr; @extend %cont-text-sr;
} }
// UI - faking a link's behavior
.fake-link { .fake-link {
cursor: pointer; @extend %ui-fake-link;
}
// UI - disabled
.is-disabled {
@extend %ui-disabled;
} }
.non-list { .non-list {
......
// studio - elements - UI controls // studio - elements - UI controls
// ==================== // ====================
// ====================
// general actions
%action {
@extend %ui-fake-link;
&.is-disabled {
@extend %ui-disabled;
-webkit-filter: grayscale(65%);
opacity: 0.65;
}
}
// ====================
// gray primary button // gray primary button
%btn-primary-gray { %btn-primary-gray {
@extend %ui-btn-primary; @extend %ui-btn-primary;
......
...@@ -1038,6 +1038,7 @@ body.unit { ...@@ -1038,6 +1038,7 @@ body.unit {
padding: $baseline/2 $baseline; padding: $baseline/2 $baseline;
} }
.unit-actions { .unit-actions {
border-bottom: none; border-bottom: none;
padding-bottom: 0; padding-bottom: 0;
...@@ -1055,8 +1056,16 @@ body.unit { ...@@ -1055,8 +1056,16 @@ body.unit {
div { div {
margin-top: 15px; margin-top: 15px;
} }
}
// actions - publish/edit
.publish-draft {
@extend %action;
}
.create-draft {
@extend %action;
}
}
input[type="radio"] { input[type="radio"] {
......
describe("CSS3 workarounds", function() {
describe("pointer-events", function() {
beforeEach(function() {
var html = "<a href='#' class='ui-disabled'>What wondrous life in this I lead</a>";
setFixtures(html);
});
it("should not prevent default when pointerEvents is supported", function() {
// In case this test suite is being run in a browser where
// 'pointerEvents' is not supported, mock out document.body.style
// so that it includes 'pointerEvents'
var mockBodyStyle = document.body.style;
if (!("pointerEvents" in mockBodyStyle)) {
mockBodyStyle["pointerEvents"] = "";
};
pointerEventsNone(".ui-disabled", mockBodyStyle);
spyOnEvent(".ui-disabled", "click");
$(".ui-disabled").click();
expect("click").not.toHaveBeenPreventedOn(".ui-disabled");
});
it("should prevent default when pointerEvents is not Supported", function() {
// mock document.body.style so it does not include 'pointerEvents'
var mockBodyStyle = {},
bodyStyleKeys = Object.keys(document.body.style);
for (var index = 0; index < bodyStyleKeys.length; index++) {
var key = bodyStyleKeys[index];
if (key !== "pointerEvents") {
mockBodyStyle[key] = document.body.style[key];
};
};
pointerEventsNone(".ui-disabled", mockBodyStyle);
spyOnEvent(".ui-disabled", "click");
$(".ui-disabled").click();
expect("click").toHaveBeenPreventedOn(".ui-disabled");
});
});
});
// A file for JS workarounds for CSS3 features that are not
// supported in older browsers
var pointerEventsNone = function (selector, supportedStyles) {
// Check to see if the brower supports 'pointer-events' css rule.
// If it doesn't, use javascript to stop the link from working
// when clicked.
$(selector).click(function (event) {
if (!('pointerEvents' in supportedStyles)) {
event.preventDefault();
};
});
};
$(function () {
pointerEventsNone('.ui-disabled', document.body.styles);
});
...@@ -106,6 +106,7 @@ ...@@ -106,6 +106,7 @@
%ui-disabled { %ui-disabled {
pointer-events: none; pointer-events: none;
outline: none; outline: none;
cursor: default;
} }
// extends - UI - depth levels // extends - UI - depth levels
......
...@@ -222,10 +222,6 @@ mark { ...@@ -222,10 +222,6 @@ mark {
} }
} }
.sr {
@extend %text-sr;
}
.help-tab { .help-tab {
@include transform(rotate(-90deg)); @include transform(rotate(-90deg));
@include transform-origin(0 0); @include transform-origin(0 0);
...@@ -286,7 +282,19 @@ mark { ...@@ -286,7 +282,19 @@ mark {
height: 150px; height: 150px;
} }
// ui - skipnav // ====================
// UI - disabled state
.is-disabled {
@extend %ui-disabled;
}
// UI - semantically hide text
.sr {
@extend %text-sr;
}
// UI - skipnav
.nav-skip { .nav-skip {
display: block; display: block;
position: absolute; position: absolute;
......
...@@ -87,6 +87,7 @@ ...@@ -87,6 +87,7 @@
%ui-disabled { %ui-disabled {
pointer-events: none; pointer-events: none;
outline: none; outline: none;
cursor: default;
} }
// extends - UI - depth levels // extends - UI - depth levels
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment