eesyphp/static/css/app.css
Benjamin Renard 4f2259f118
Add some useful UI helpers
- Add alertify lib and provide its default configuration
- Add copy_to_clipboard() function and the CSS copyable class
- Enable Bootstrap tooltips
- Add CSS share-links class helper: link's URL is copied to clipboard
- Add Bootstrap 5 like 3-states switches
- Add show_form_modal(), validate_form() and handle_ajax_return() helper functions
2024-12-02 20:01:51 +01:00

167 lines
2.8 KiB
CSS

/*
* Main interface components
*/
body {
font-family: arial, sans-serif;
color: #606060;
}
main[role="main"] {
margin-top: 1em;
}
a.navbar-brand img {
height: 27px;
}
footer {
font-size: 0.9em;
}
footer div.compute-times {
font-size: 0.6em;
}
/*
* Login form
*/
body.signin {
display: flex;
align-items: center;
padding-top: 40px;
padding-bottom: 40px;
background-color: #f5f5f5;
}
.form-signin {
max-width: 330px;
padding: 15px;
}
.form-signin .form-floating:focus-within {
z-index: 2;
}
.form-signin input[name="username"] {
margin-bottom: -1px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
.form-signin input[name="password"] {
margin-bottom: 10px;
border-top-left-radius: 0;
border-top-right-radius: 0;
}
/*
* Common helpers
*/
.center {
text-align: center;
}
p {
text-align: justify;
}
img {
max-width: 100%;
}
/*
* Messages/errors & fatal errors
*/
.fatal_error_msg {
font-size: 0.8em;
color: #777;
text-align: center;
font-style: italic;
}
.alert p {
text-align: center;
}
/*
* Tables
*/
th a,
th a:hover {
color: #000;
text-decoration: none;
}
/*
* Forms
*/
.form-inline .form-control,
.form-inline label,
.form-inline input,
.form-inline select,
.form-inline button {
margin-left: 1em !important;
}
label.required::after {
content: " *";
}
.form-error {
color: #dc3545;
}
.invalid-feedback {
display: block;
}
span.form-control-plaintext {
padding-top: calc(0.375rem + 1px);
padding-bottom: calc(0.375rem + 1px);
margin-bottom: 0;
font-size: inherit;
line-height: 1.5;
}
/*
* Three states switches
*/
input.form-3s-switch {
width: 2em;
height: 1em;
margin: 0.25em 0.25em 0 0;
vertical-align: top;
background-color: #fff;
background-repeat: no-repeat;
background-position: center;
background-size: contain;
border: 1px solid rgba(0, 0, 0, 0.25);
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
-webkit-print-color-adjust: exact;
color-adjust: exact;
print-color-adjust: exact;
border-radius: 2em;
background-position: center center;
transition: background-position 0.15s ease-in-out;
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");
}
input.form-3s-switch[value="1"] {
background-position: right center;
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
background-color: #0d6efd;
border-color: #0d6efd;
}
input.form-3s-switch[value="0"] {
background-position: left center;
}
input.form-3s-switch:focus {
border-color: #86b7fe;
outline: 0;
box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}