Пример
input[type="number"] {
background: white;
color: black;
}
input[type="number"]:in-range {
background: green;
color: white;
}
input[type="number"]:out-of-range {
background: red;
color: white;
}
<input c type="number" min="1" max="100">
В чем разница между :out-of-range
и :invalid
?