icinga-php-library/asset/css/schedule-element.less
2025-05-22 11:11:56 +00:00

211 lines
4.2 KiB
Plaintext

// Schedule form element
.schedule-element {
@input-border-radius: .25em;
.ordinal {
display: flex;
flex-wrap: wrap;
.radio-label {
flex: 1 1 auto;
}
select {
flex: 1 1 auto;
&:first-of-type {
margin-right: 1em;
}
&:disabled {
color: @schedule-element-fields-disabled-color;
}
}
}
.radio-label {
width: 100%;
margin-bottom: .5em;
display: flex;
align-items: center; // To center the radio element on safari
}
.number-specifier > input[type="number"] {
width: 5em;
margin: 0 1em;
}
.monthly, .ordinal:not(.annually) {
padding: .5em;
margin-left: -.5em;
border: 1px solid @schedule-element-fields-border-color;
.rounded-corners(.75em);
}
.schedule-element-fields {
list-style-type: none;
margin: 0;
padding: 0;
.rounded-corners(.25em);
overflow: hidden;
display:flex;
flex-wrap: wrap;
&.disabled { // When the "On the" radio button is checked
pointer-events: none;
label {
color: @schedule-element-fields-disabled-color;
background-color: @schedule-element-fields-disabled-bg;
}
input:checked + label {
background: @schedule-element-fields-disabled-selected-bg;
color: @schedule-element-fields-disabled-color;
}
}
li {
width: calc(100% / 7); /* default for week based cols makes sense */
label {
display: block;
width: 100%;
cursor: pointer;
text-align: center;
padding: .75em 0;
background: @schedule-element-fields-bg;
color: @schedule-element-fields-color;
&:hover {
background-color: @schedule-element-fields-hover-bg;
}
&:focus {
outline: none;
}
}
input:checked + label {
background-color: @schedule-element-fields-selected-bg;
color: @schedule-element-fields-selected-color;
}
input:checked + label:hover {
background-color: @schedule-element-fields-selected-hover-bg;
border-color: @schedule-element-fields-selected-hover-bg;
}
}
&.multiple-fields {
li:not(:last-child) label {
border-right: 1px solid @schedule-element-fields-border-color;
}
input:focus + label {
box-shadow: inset 0 0 0 3px @schedule-element-fields-outline-color;
}
input:checked:focus + label {
box-shadow: inset 0 0 0 3px @schedule-element-fields-selected-outline-color;
}
}
&.single-fields {
li {
padding-right: 1px;
}
li label {
.rounded-corners(.25em);
margin-right: 1px;
margin-bottom: 1px;
}
li label {
border-right: none;
}
&:focus-within {
outline: 3px solid @schedule-element-fields-outline-color;
outline-offset: 2px;
}
&:focus-within + .note {
display: block;
}
input:checked + label:hover {
background-color: @schedule-element-fields-selected-bg;
}
}
}
.note {
display: none;
padding: .5em;
background: @schedule-element-keyboard-note-bg;
.rounded-corners(.25em);
text-align: center;
margin-top: 1em;
line-height: 1.25;
}
/* .weekly */
.weekly { }
/* .monthly styles */
.monthly {
li label {
border-top: 1px solid @schedule-element-fields-border-color;
}
li:first-child,
li:nth-child(2),
li:nth-child(3),
li:nth-child(4),
li:nth-child(5),
li:nth-child(6),
li:nth-child(7) {
label {
border-top: none;
}
}
/* last of row should not have a border */
.schedule-element-fields li:nth-child(7n) label {
border-right: none;
}
}
/* .annually styles */
.annually {
li {
width: 25%; // 100% / 4 elements
}
li:nth-child(4n) label {
margin-right: 0;
}
.toggle-slider-controls {
display: flex;
column-gap: 1em;
align-items: center;
margin-top: 1em;
margin-bottom: -.6em;
}
}
}
.schedule-recurrences {
line-height: 1.1em;
padding-top: 0.5625em;
p {
color: @schedule-element-fields-disabled-color;
}
}