1
0
mirror of https://github.com/jdan/98.css.git synced 2025-08-19 20:22:01 +02:00

fix focused radio outline

This commit is contained in:
Jordan Scales
2020-04-17 15:16:51 -04:00
parent 38e958620b
commit b5a69ecef6

View File

@@ -10,9 +10,15 @@
/* Spacing */
--element-spacing: 8px;
--grouped-element-spacing: 4px;
--grouped-button-spacing: 4px;
--grouped-element-spacing: 6px;
--radio-width: 12px;
--radio-label-spacing: 6px;
--radio-total-width-precalc: var(--radio-width) + var(--radio-label-spacing);
--radio-total-width: calc(var(--radio-total-width-precalc));
--radio-left: calc(-1 * var(--radio-total-width-precalc));
/* Borders */
--border-width: 1px;
--border-raised-outer: inset -1px -1px var(--window-frame),
@@ -142,7 +148,7 @@ fieldset {
border: none;
box-shadow: var(--border-sunken-outer), var(--border-raised-inner);
padding: calc(2 * var(--border-width) + var(--element-spacing));
padding-block-start: var(--grouped-element-spacing);
padding-block-start: var(--element-spacing);
}
legend {
@@ -175,36 +181,58 @@ label {
display: flex;
align-items: center;
}
input[type="radio"]:focus + label {
outline: 1px dotted #000000;
}
input[type="radio"] {
display: none;
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
margin: 0;
}
input[type="radio"] + label {
position: relative;
margin-left: var(--radio-total-width);
}
input[type="radio"] + label::before {
content: "";
position: absolute;
left: calc(-1 * var(--radio-total-width));
display: inline-block;
width: 12px;
height: 12px;
width: var(--radio-width);
height: var(--radio-width);
margin-right: var(--radio-label-spacing);
background: url("./radio-border.svg");
}
input[type="radio"]:checked + label::after {
--radio-dot-width: 4px;
--radio-dot-top: calc(var(--radio-width) / 2 - var(--radio-dot-width) / 2);
--radio-dot-left: calc(
-1 * (var(--radio-total-width-precalc)) + var(--radio-width) / 2 - var(
--radio-dot-width
) / 2
);
content: "";
display: block;
width: 4px;
height: 4px;
top: 4px;
left: 4px;
width: var(--radio-dot-width);
height: var(--radio-dot-width);
top: var(--radio-dot-top);
left: var(--radio-dot-left);
position: absolute;
background: url("./radio-dot.svg");
}
input[type="radio"]:focus + label {
outline: 1px dotted #000000;
outline-offset: ;
}
input[type="radio"][disabled] + label::before {
background: url("./radio-border-disabled.svg");
}
input[type="radio"][disabled]:checked + label::after {
background: url("./radio-dot-disabled.svg");
}