angular/modules/angular2_material/src/components/switcher/switch.scss
2015-04-14 16:15:35 -07:00

172 lines
3.5 KiB
SCSS

@import "../../core/style/variables";
// TODO(jelbourn): This goes away.
@import "../../core/style/default-theme";
$switch-width: 36px !default;
$switch-height: $baseline-grid * 3 !default;
$switch-bar-height: 14px !default;
$switch-thumb-size: 20px !default;
md-switch {
display: flex;
align-items: center;
margin: 15px;
white-space: nowrap;
cursor: pointer;
outline: none;
user-select: none;
* {
box-sizing: border-box;
}
.md-switch-container {
cursor: grab;
width: $switch-width;
height: $switch-height;
position: relative;
user-select: none;
margin-right: 8px;
}
// If the user moves his mouse off the switch, stil display grabbing cursor
&:not([disabled]) {
.md-switch-dragging,
&.md-switch-dragging .md-switch-container {
cursor: grabbing;
}
}
.md-switch-label {
border: 0 transparent;
}
.md-switch-bar {
left: 1px;
width: $switch-width - 2px;
top: $switch-height / 2 - $switch-bar-height / 2;
height: $switch-bar-height;
border-radius: 8px;
position: absolute;
}
.md-switch-thumb-container {
top: $switch-height / 2 - $switch-thumb-size / 2;
left: 0;
width: $switch-width - $switch-thumb-size;
position: absolute;
transform: translate3d(0,0,0);
z-index: 1;
}
&[aria-checked="true"] .md-switch-thumb-container {
transform: translate3d(100%, 0, 0);
}
.md-switch-thumb {
position: absolute;
margin: 0;
left: 0;
top: 0;
outline: none;
height: $switch-thumb-size;
width: $switch-thumb-size;
border-radius: 50%;
box-shadow: $whiteframe-shadow-z1;
// todo
.md-ripple-container {
position: absolute;
display: block;
width: auto;
height: auto;
left: -$switch-thumb-size;
top: -$switch-thumb-size;
right: -$switch-thumb-size;
bottom: -$switch-thumb-size;
}
}
&:not(.md-switch-dragging) {
.md-switch-bar,
.md-switch-thumb-container,
.md-switch-thumb {
transition: $swift-ease-in-out;
transition-property: transform, background-color;
}
.md-switch-bar,
.md-switch-thumb {
transition-delay: 0.05s;
}
}
}
// TODO(jelbourn): Why are these not defined in terms of the theme?
@media screen and (-ms-high-contrast: active) {
md-switch .md-switch-bar {
background-color: #666;
}
md-switch[aria-checked="true"] .md-switch-bar {
background-color: #9E9E9E;
}
md-switch.md-default-theme .md-switch-thumb {
background-color: #fff;
}
}
// THEME
md-switch {
.md-switch-thumb {
background-color: md-color($md-background, 50);
}
.md-switch-bar {
background-color: md-color($md-background, 500);
}
&[aria-checked="true"] {
.md-switch-thumb {
background-color: md-color($md-accent);
}
.md-switch-bar {
background-color: md-color($md-accent, 0.5);
}
&.md-primary {
.md-switch-thumb {
background-color: md-color($md-primary);
}
.md-switch-bar {
background-color: md-color($md-primary, 0.5);
}
}
&.md-warn {
.md-switch-thumb {
background-color: md-color($md-warn);
}
.md-switch-bar {
background-color: md-color($md-warn, 0.5);
}
}
}
&[disabled] {
.md-switch-thumb {
background-color: md-color($md-background, 400);
}
.md-switch-bar {
background-color: md-color($md-foreground, divider);
}
}
&:focus {
.md-switch-label:not(:empty) {
border: 1px dotted md-color($md-foreground, text);
}
}
}