2025-10-25 08:59:09 +02:00
|
|
|
@use "sass:color";
|
|
|
|
|
|
2025-10-26 11:33:54 +01:00
|
|
|
@use "../global/config";
|
|
|
|
|
@use "../global/typography";
|
|
|
|
|
|
2019-11-12 20:18:02 +01:00
|
|
|
// Forms
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
// form
|
|
|
|
|
// label
|
|
|
|
|
// input
|
|
|
|
|
// button
|
|
|
|
|
// select
|
|
|
|
|
// datalist
|
|
|
|
|
// optgroup
|
|
|
|
|
// option
|
|
|
|
|
// textarea
|
|
|
|
|
// output
|
|
|
|
|
// progress
|
|
|
|
|
// meter
|
|
|
|
|
// fieldset
|
|
|
|
|
// legend
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Form
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
form {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Label
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
label {
|
|
|
|
|
@extend %basic;
|
2025-10-20 19:26:01 +02:00
|
|
|
}
|
2019-11-12 20:18:02 +01:00
|
|
|
|
2025-10-20 19:26:01 +02:00
|
|
|
label,
|
|
|
|
|
p {
|
2019-11-12 20:18:02 +01:00
|
|
|
input, button, textarea, select {
|
2025-10-26 11:33:54 +01:00
|
|
|
margin: 0 config.$space_basic;
|
2019-11-12 20:18:02 +01:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
input + label {
|
2025-10-26 11:33:54 +01:00
|
|
|
margin-left: config.$space_basic;
|
2019-11-12 20:18:02 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Input
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
input {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
label + input {
|
2025-10-26 11:33:54 +01:00
|
|
|
margin-left: config.$space_basic;
|
2019-11-12 20:18:02 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
input, button, textarea, select {
|
2025-10-26 11:33:54 +01:00
|
|
|
margin: config.$margin_inline;
|
2019-11-12 20:18:02 +01:00
|
|
|
|
|
|
|
|
&[disabled="disabled"],
|
|
|
|
|
&[disabled] {
|
|
|
|
|
cursor: not-allowed;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
td > input,
|
|
|
|
|
td > button,
|
|
|
|
|
td > select,
|
|
|
|
|
td > textarea {
|
|
|
|
|
margin: 0;
|
|
|
|
|
}
|
|
|
|
|
|
2025-10-26 11:33:54 +01:00
|
|
|
@each $input in config.$io_input_list, textarea, select {
|
2019-11-12 20:18:02 +01:00
|
|
|
#{$input} {
|
|
|
|
|
@extend %basic_mono;
|
|
|
|
|
line-height: 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-10-20 18:55:07 +02:00
|
|
|
// TODO: Move to io_module
|
2025-06-20 17:07:03 +02:00
|
|
|
.input_io, .button_io, .io_textarea, .io_select {
|
2025-10-26 11:33:54 +01:00
|
|
|
margin: config.$margin_io;
|
2025-06-20 17:07:03 +02:00
|
|
|
}
|
|
|
|
|
|
2025-06-19 16:15:44 +02:00
|
|
|
.input_io, .io_textarea, .io_select {
|
2025-10-26 11:33:54 +01:00
|
|
|
padding: config.$space_half;
|
|
|
|
|
color: config.$color_text_io;
|
|
|
|
|
background-color: config.$color_back_io;
|
2019-11-12 20:18:02 +01:00
|
|
|
|
|
|
|
|
&:hover {
|
2025-10-26 11:33:54 +01:00
|
|
|
background-color: config.$color_highlight_basic;
|
2019-11-12 20:18:02 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&[readonly="readonly"],
|
|
|
|
|
&[readonly] {
|
2025-10-26 11:33:54 +01:00
|
|
|
background-color: color.scale(config.$color_back_io, $lightness: -(config.$color_diff_double));
|
2019-11-12 20:18:02 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&[disabled="disabled"],
|
|
|
|
|
&[disabled] {
|
|
|
|
|
&:hover {
|
2025-10-26 11:33:54 +01:00
|
|
|
background-color: config.$color_back_io;
|
2019-11-12 20:18:02 +01:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-10-26 11:33:54 +01:00
|
|
|
@each $input in config.$io_date_list {
|
2019-11-12 20:18:02 +01:00
|
|
|
#{$input} {
|
|
|
|
|
padding-top: 0;
|
|
|
|
|
padding-bottom: 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-10-26 11:33:54 +01:00
|
|
|
@each $input in config.$io_input_list, textarea {
|
2019-11-12 20:18:02 +01:00
|
|
|
#{$input} {
|
|
|
|
|
// border: $border_io;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-06-19 16:15:44 +02:00
|
|
|
.input_io, .io_textarea {
|
2025-10-26 11:33:54 +01:00
|
|
|
border: config.$border_io;
|
2019-11-12 20:18:02 +01:00
|
|
|
|
|
|
|
|
&[readonly="readonly"],
|
|
|
|
|
&[readonly] {
|
2025-10-26 11:33:54 +01:00
|
|
|
border-color: color.scale(config.$color_border_io, $lightness: -(config.$color_diff_double));
|
2019-11-12 20:18:02 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&[disabled="disabled"],
|
|
|
|
|
&[disabled] {
|
|
|
|
|
border-color: transparent;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Fieldset
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
fieldset {
|
2025-10-26 11:33:54 +01:00
|
|
|
margin: config.$margin_double;
|
|
|
|
|
padding: config.$space_basic;
|
|
|
|
|
border: config.$border_basic;
|
2019-11-12 20:18:02 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Legend
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
legend {
|
|
|
|
|
@extend %basic;
|
2025-10-26 11:33:54 +01:00
|
|
|
padding: 0 config.$space_half;
|
2019-11-12 20:18:02 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Button
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
button {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
2025-06-19 16:15:44 +02:00
|
|
|
.button_io {
|
2025-06-22 15:47:18 +02:00
|
|
|
@extend %basic;
|
2025-10-26 11:33:54 +01:00
|
|
|
border: config.$width_border_io solid config.$color_border_button;
|
|
|
|
|
padding: config.$padding_basic;
|
|
|
|
|
color: config.$color_text_button;
|
|
|
|
|
background-color: config.$color_back_button;
|
2025-07-28 22:11:47 +02:00
|
|
|
user-select: none;
|
2019-11-12 20:18:02 +01:00
|
|
|
|
|
|
|
|
&:hover {
|
|
|
|
|
// border-color: #0059F6;
|
|
|
|
|
border-color: transparent;
|
|
|
|
|
color: white;
|
2025-10-26 11:33:54 +01:00
|
|
|
background-color: config.$color_action_basic;
|
2019-11-12 20:18:02 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&[disabled="disabled"],
|
|
|
|
|
&[disabled] {
|
|
|
|
|
border-color: transparent;
|
2025-10-26 11:33:54 +01:00
|
|
|
color: color.scale(config.$color_text_button, $lightness: config.$color_diff_double);
|
2019-11-12 20:18:02 +01:00
|
|
|
|
|
|
|
|
&:hover {
|
2025-10-26 11:33:54 +01:00
|
|
|
background-color: config.$color_back_button;
|
2019-11-12 20:18:02 +01:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-04-12 14:29:57 +02:00
|
|
|
.button_clear {
|
2025-06-22 15:47:18 +02:00
|
|
|
@extend %basic;
|
2025-04-12 14:29:57 +02:00
|
|
|
padding: 0;
|
|
|
|
|
border: 0;
|
|
|
|
|
background-color: transparent;
|
|
|
|
|
|
|
|
|
|
&:active,
|
|
|
|
|
&:focus {
|
|
|
|
|
background-color: transparent;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&:hover {
|
2025-10-26 11:33:54 +01:00
|
|
|
background-color: config.$color_action_basic;
|
2025-04-12 14:29:57 +02:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2019-11-12 20:18:02 +01:00
|
|
|
// Selection
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
select {
|
|
|
|
|
border: none;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Datalist
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
datalist {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Options
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
optgroup {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
option {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Textarea
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
textarea {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.io_textarea {
|
|
|
|
|
line-height: 1.2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Output
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
output {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Progress
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
progress {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
meter {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Interactive elements
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
// details
|
|
|
|
|
// summary
|
|
|
|
|
// dialog
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
details {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
summary {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
dialog {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Scripting
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
// script
|
|
|
|
|
// noscript
|
|
|
|
|
// template
|
|
|
|
|
// canvas
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
canvas {
|
|
|
|
|
|
|
|
|
|
}
|