mirror of
https://github.com/FrankerFaceZ/FrankerFaceZ.git
synced 2025-06-27 21:05:53 +00:00
* Added: Setting to display timestamps on additional types of chat messages. (Closes #983) * Changed: Do not set a Chat Width by default. * Changed: Have WebMunch dump a list of possible webpack bundle names when failing to find webpack. * Fixed: Appearance issues caused by Twitch's continual migration to procedural CSS class names, requiring duplicate CSS to achieve a native look. * Fixed: Ambiguous input field names in some FFZ Control Center widgets. (Closes #1017) * Fixed: Stop using Algolia for tag search.
268 lines
No EOL
6.5 KiB
SCSS
268 lines
No EOL
6.5 KiB
SCSS
.ffz-checkbox .ffz-checkbox__label:before,
|
|
.ffz-radio__label:before {
|
|
background-clip: padding-box;
|
|
box-sizing: border-box;
|
|
content: "";
|
|
height: 1.6rem;
|
|
margin-top: -.8rem;
|
|
transition: box-shadow .1s ease-in, background .1s ease-in;
|
|
width: 1.6rem;
|
|
}
|
|
|
|
.ffz-checkbox__input,
|
|
.ffz-radio__input {
|
|
clip: rect(0 0 0 0);
|
|
height: .1rem;
|
|
margin: -.1rem;
|
|
overflow: hidden;
|
|
width: .1rem;
|
|
}
|
|
|
|
.ffz-checkbox__input {
|
|
border: none;
|
|
color: var(--color-text-label);
|
|
padding: 0;
|
|
position: absolute;
|
|
|
|
&:hover:checked,
|
|
&:hover:indeterminate {
|
|
& + .ffz-checkbox__label:before {
|
|
border: var(--border-width-input) solid var(--color-border-input-checkbox-checked);
|
|
}
|
|
}
|
|
|
|
&:checked,
|
|
&:indeterminate {
|
|
& + .ffz-checkbox__label {
|
|
&:before {
|
|
background-color: var(--color-background-input-checkbox-checked-background);
|
|
border: var(--border-width-input) solid var(--color-border-input-checkbox-checked);
|
|
}
|
|
|
|
&:after {
|
|
background-color: var(--color-background-input-checkbox-checked);
|
|
content: "";
|
|
left: .4rem;
|
|
position: absolute;
|
|
top: 50%;
|
|
width: .8rem;
|
|
}
|
|
}
|
|
}
|
|
|
|
&:checked + .ffz-checkbox__label:after {
|
|
height: .8rem;
|
|
transform: translate3d(0, -50%, 0);
|
|
}
|
|
|
|
&:indeterminate + .ffz-checkbox__label:after {
|
|
display: block;
|
|
height: .2rem;
|
|
transform: translateY(-50%);
|
|
}
|
|
|
|
&:disabled + .ffz-checkbox__label {
|
|
opacity: 0.5;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.js-focus-visible &:focus:not([data-focus-visible-added]) + .ffz-checkbox__label {
|
|
outline: none;
|
|
}
|
|
|
|
&[data-focus-visible-added] + .ffz-checkbox__label:before {
|
|
border: var(--border-width-input) solid var(--color-border-input-checkbox-focus);
|
|
box-shadow: var(--shadow-input-focus);
|
|
}
|
|
}
|
|
|
|
.ffz-checkbox {
|
|
.ffz-checkbox__label {
|
|
border-radius: var(--border-radius-medium);
|
|
color: var(--color-text-label);
|
|
cursor: pointer;
|
|
display: inline-block;
|
|
padding: 0 0 0 1.6rem;
|
|
position: relative;
|
|
|
|
&:before {
|
|
border: var(--border-width-input) solid var(--color-border-input-checkbox);
|
|
border-radius: .2rem;
|
|
border-radius: var(--border-radius-small);
|
|
left: 0;
|
|
position: absolute;
|
|
top: 50%;
|
|
}
|
|
|
|
&:after {
|
|
content: '';
|
|
display: block;
|
|
}
|
|
|
|
&:hover:before {
|
|
border-color: var(--color-border-input-checkbox-hover);
|
|
}
|
|
}
|
|
}
|
|
|
|
.ffz-checkbox--error .ffz-checkbox__label:before {
|
|
border: var(--border-width-input) solid var(--color-border-input-checkbox-error);
|
|
}
|
|
|
|
.ffz-checkbox--overlay {
|
|
.ffz-checkbox__input {
|
|
&:checked + .ffz-checkbox__label {
|
|
&:before {
|
|
background-color: var(--color-background-input-checkbox-checked-background-overlay);
|
|
border: var(--border-width-input) solid var(--color-border-input-checkbox-checked-overlay);
|
|
}
|
|
|
|
&:after {
|
|
background-color: var(--color-background-input-checkbox-checked-overlay);
|
|
}
|
|
}
|
|
|
|
&:hover:checked,
|
|
&:indeterminate {
|
|
& + .ffz-checkbox__label:before {
|
|
border: var(--border-width-input) solid var(--color-border-input-checkbox-checked-overlay);
|
|
}
|
|
}
|
|
|
|
&:indeterminate + .ffz-checkbox__label {
|
|
&:before {
|
|
background-color: var(--color-background-input-checkbox-checked-background-overlay);
|
|
border: var(--border-width-input) solid var(--color-border-input-checkbox-checked-overlay);
|
|
}
|
|
|
|
&:after {
|
|
background: var(--color-background-input-checkbox-checked-overlay);
|
|
content: "";
|
|
display: block;
|
|
height: .2rem;
|
|
left: .4rem;
|
|
position: absolute;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
width: .8rem;
|
|
}
|
|
}
|
|
|
|
.js-focus-visible &:focus:not([data-focus-visible-added]) + .ffz-checkbox__label {
|
|
outline: none;
|
|
}
|
|
|
|
&[data-focus-visible-added] + .ffz-checkbox__label:before {
|
|
border: var(--border-width-input) solid var(--color-border-input-overlay-focus);
|
|
box-shadow: 0 0 6px 0 var(--color-border-input-overlay-focus);
|
|
}
|
|
}
|
|
|
|
.ffz-checkbox__label {
|
|
color: var(--color-text-overlay);
|
|
|
|
&:before {
|
|
background-color: var(--color-background-input-overlay);
|
|
border: var(--border-width-input) solid var(--color-border-input-checkbox-overlay);
|
|
}
|
|
|
|
&:hover:before {
|
|
border-color: var(--color-border-input-checkbox-hover-overlay);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
// Radio
|
|
|
|
.ffz-radio__input {
|
|
border: none;
|
|
color: var(--color-text-label);
|
|
padding: 0;
|
|
position: absolute;
|
|
|
|
&:checked + .ffz-radio__label:after {
|
|
background-color: var(--color-background-input-checkbox-checked);
|
|
border-radius: 50%;
|
|
height: .8rem;
|
|
left: .4rem;
|
|
position: absolute;
|
|
top: 50%;
|
|
transform: translate3d(0, -50%, 0);
|
|
width: .8rem;
|
|
}
|
|
|
|
&:disabled + .ffz-radio__label {
|
|
opacity: .5;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.js-focus-visible &:focus:not([data-focus-visible-added]) + .ffz-radio__label {
|
|
outline: 0;
|
|
}
|
|
|
|
&[data-focus-visible-added] + .ffz-radio__label:before {
|
|
border: var(--border-width-input) solid var(--color-border-input-checkbox-focus);
|
|
box-shadow: var(--shadow-input-focus);
|
|
}
|
|
}
|
|
|
|
.ffz-radio__label {
|
|
border-radius: var(--border-radius-medium);
|
|
color: var(--color-text-label);
|
|
cursor: pointer;
|
|
display: inline-block;
|
|
padding: 0 0 0 1.6rem;
|
|
position: relative;
|
|
|
|
&:before {
|
|
border: var(--border-width-input) solid var(--color-border-input-checkbox);
|
|
border-radius: 50%;
|
|
left: 0;
|
|
position: absolute;
|
|
top: 50%;
|
|
}
|
|
|
|
&:after {
|
|
background-color: var(--color-background-input);
|
|
content: "";
|
|
display: block;
|
|
transition: background .1s ease-in;
|
|
}
|
|
|
|
&:hover:before {
|
|
border-color: var(--color-border-input-checkbox-hover);
|
|
}
|
|
}
|
|
|
|
.ffz-radio--error .ffz-radio__label:before {
|
|
border: var(--border-width-input) solid var(--color-border-input-checkbox-error);
|
|
}
|
|
|
|
// TODO: radio overlay
|
|
|
|
|
|
// Selection Stuff
|
|
|
|
@media (-webkit-min-device-pixel-ratio: 0) {
|
|
.ffz-checkbox--overlay .ffz-checkbox__input:focus+.ffz-checkbox__label:before,
|
|
.ffz-checkbox__input:focus+.ffz-checkbox__label,
|
|
.ffz-radio--overlay .ffz-radio__input:focus+.ffz-radio__label:before,
|
|
.ffz-radio__input:focus+.ffz-radio__label,
|
|
.ffz-segmented-button-option__input--checkbox:focus+.ffz-segmented-button-option__label,
|
|
.ffz-segmented-button-option__input--radio:focus+.ffz-segmented-button-option__label,
|
|
.ffz-toggle__input:focus+.ffz-toggle__button {
|
|
outline-color: -webkit-focus-ring-color;
|
|
outline-style: auto
|
|
}
|
|
}
|
|
|
|
.ffz-checkbox--overlay .ffz-checkbox__input:focus+.ffz-checkbox__label:before,
|
|
.ffz-checkbox__input:focus+.ffz-checkbox__label,
|
|
.ffz-radio--overlay .ffz-radio__input:focus+.ffz-radio__label:before,
|
|
.ffz-radio__input:focus+.ffz-radio__label,
|
|
.ffz-segmented-button-option__input--checkbox:focus+.ffz-segmented-button-option__label,
|
|
.ffz-segmented-button-option__input--radio:focus+.ffz-segmented-button-option__label,
|
|
.ffz-toggle__input:focus+.ffz-toggle__button {
|
|
outline: 5px solid Highlight;
|
|
} |