office-ui-fabric-react
Version:
Reusable React components for building experiences for Office 365.
208 lines • 7.74 kB
JavaScript
import { HighContrastSelector, getFocusStyle } from '../../Styling';
export var getStyles = function (props) {
var theme = props.theme, className = props.className, disabled = props.disabled, checked = props.checked;
var semanticColors = theme.semanticColors;
var pillUncheckedBackground = semanticColors.bodyBackground;
var pillCheckedBackground = semanticColors.inputBackgroundChecked;
var pillCheckedHoveredBackground = semanticColors.inputBackgroundCheckedHovered;
var pillCheckedDisabledBackground = semanticColors.disabledBodyText;
var thumbBackground = semanticColors.inputBorderHovered;
var thumbCheckedBackground = semanticColors.inputForegroundChecked;
var thumbDisabledBackground = semanticColors.disabledBodyText;
var thumbCheckedDisabledBackground = semanticColors.disabledBackground;
var pillBorderColor = semanticColors.smallInputBorder;
var pillBorderHoveredColor = semanticColors.inputBorderHovered;
var pillBorderDisabledColor = semanticColors.disabledBodyText;
var textDisabledColor = semanticColors.disabledText;
return {
root: [
'ms-Toggle',
checked && 'is-checked',
!disabled && 'is-enabled',
disabled && 'is-disabled',
theme.fonts.medium,
{
marginBottom: '8px'
},
className
],
label: [
'ms-Toggle-label',
disabled && {
color: textDisabledColor,
selectors: (_a = {},
_a[HighContrastSelector] = {
color: 'GrayText'
},
_a)
}
],
container: [
'ms-Toggle-innerContainer',
{
display: 'inline-flex',
position: 'relative'
}
],
pill: [
'ms-Toggle-background',
getFocusStyle(theme, -3),
{
fontSize: '20px',
boxSizing: 'border-box',
width: '2.2em',
height: '1em',
borderRadius: '1em',
transition: 'all 0.1s ease',
borderWidth: '1px',
borderStyle: 'solid',
background: pillUncheckedBackground,
borderColor: pillBorderColor,
cursor: 'pointer',
display: 'flex',
alignItems: 'center',
padding: '0 .2em'
},
!disabled && [
!checked && {
selectors: {
':hover': [
{
borderColor: pillBorderHoveredColor
}
],
':hover .ms-Toggle-thumb': [
{
selectors: (_b = {},
_b[HighContrastSelector] = {
borderColor: 'Highlight'
},
_b)
}
]
}
},
checked && [
{
background: pillCheckedBackground,
borderColor: 'transparent',
justifyContent: 'flex-end'
},
{
selectors: (_c = {
':hover': [
{
backgroundColor: pillCheckedHoveredBackground,
borderColor: 'transparent',
selectors: (_d = {},
_d[HighContrastSelector] = {
backgroundColor: 'Highlight'
},
_d)
}
]
},
_c[HighContrastSelector] = {
backgroundColor: 'WindowText'
},
_c)
}
]
],
disabled && [
{
cursor: 'default'
},
!checked && [
{
borderColor: pillBorderDisabledColor
}
],
checked && [
{
backgroundColor: pillCheckedDisabledBackground,
borderColor: 'transparent',
justifyContent: 'flex-end'
}
]
],
!disabled && {
selectors: {
'&:hover': {
selectors: (_e = {},
_e[HighContrastSelector] = {
borderColor: 'Highlight'
},
_e)
}
}
}
],
thumb: [
'ms-Toggle-thumb',
{
width: '.5em',
height: '.5em',
borderRadius: '.5em',
transition: 'all 0.1s ease',
backgroundColor: thumbBackground,
/* Border is added to handle high contrast mode for Firefox */
borderColor: 'transparent',
borderWidth: '.28em',
borderStyle: 'solid',
boxSizing: 'border-box'
},
!disabled &&
checked && [
{
backgroundColor: thumbCheckedBackground,
selectors: (_f = {},
_f[HighContrastSelector] = {
backgroundColor: 'Window',
borderColor: 'Window'
},
_f)
}
],
disabled && [
!checked && [
{
backgroundColor: thumbDisabledBackground
}
],
checked && [
{
backgroundColor: thumbCheckedDisabledBackground
}
]
]
],
text: [
'ms-Toggle-stateText',
{
selectors: {
// Workaround: make rules more sepecific than Label rules.
'&&': {
padding: '0',
margin: '0 10px',
userSelect: 'none'
}
}
},
disabled && {
selectors: {
'&&': {
color: textDisabledColor,
selectors: (_g = {},
_g[HighContrastSelector] = {
color: 'GrayText'
},
_g)
}
}
}
]
};
var _a, _b, _c, _d, _e, _f, _g;
};
//# sourceMappingURL=Toggle.styles.js.map