Recount-Server/web/sass/utility-classes.scss

256 lines
4.5 KiB
SCSS
Raw Normal View History

2024-01-15 13:47:16 -08:00
$sizes: (
"auto": auto,
"0": 0px,
"1": 2px,
"2": 5px,
"3": 8px,
"4": 10px,
"5": 15px
);
$directions: (
"s": "left",
"e": "right",
"t": "top",
"b": "bottom"
);
2024-01-17 20:46:13 -08:00
2024-01-15 13:47:16 -08:00
@each $size, $val in $sizes {
.m-#{$size} {
margin: $val;
}
2024-01-19 21:05:08 -08:00
.p-#{$size} {
padding: $val;
}
2024-01-15 13:47:16 -08:00
@each $dir, $dir-val in $directions {
.m#{$dir}-#{$size} {
margin-#{$dir-val}: $val;
}
.p#{$dir}-#{$size} {
padding-#{$dir-val}: $val;
}
}
.mx-#{$size} {
margin-left: $val;
margin-right: $val;
}
.my-#{$size} {
margin-top: $val;
2024-01-19 21:05:08 -08:00
margin-bottom: $val;
2024-01-15 13:47:16 -08:00
}
.px-#{$size} {
padding-left: $val;
padding-right: $val;
}
.py-#{$size} {
padding-top: $val;
padding-bottom: $val;
}
}
2024-01-17 20:46:13 -08:00
$w_h_sizes: (
'25': 25%,
'50': 50%,
'75': 75%,
'80': 80%,
'100': 100%,
'auto': auto,
);
// Loop through the sizes and generate classes
@each $name, $value in $w_h_sizes {
.h-#{$name} {
height: $value;
}
.w-#{$name} {
width: $value;
}
2024-01-15 13:47:16 -08:00
}
2024-01-17 20:46:13 -08:00
2024-01-15 13:47:16 -08:00
.d-flex {
display: flex;
}
2024-01-17 20:46:13 -08:00
.d-flex-col {
display: flex;
flex-direction: column;
}
.d-block {
display: block;
}
2024-01-15 13:47:16 -08:00
.cr-all {
border-radius: $border-radius;
}
.cr-top {
border-radius: $border-radius $border-radius 0px 0px;
}
.cr-right {
border-radius: 0px $border-radius $border-radius 0px;
}
.cr-left {
border-radius: $border-radius 0px 0px $border-radius;
}
.cr-bottom {
border-radius: 0px 0px $border-radius $border-radius;
}
2024-01-15 19:26:51 -08:00
.t-s {
text-align: start;
}
.t-e {
text-align: end;
}
2024-01-19 21:05:08 -08:00
.t-m {
text-align: center;
}
2024-01-15 19:26:51 -08:00
2024-01-27 12:20:25 -08:00
.positive {
color: var(--#{$prefix}-green);
}
.negative {
color: var(--#{$prefix}-red);
}
2024-01-15 19:26:51 -08:00
table.table {
color: var(--#{$prefix}-text);
td {
padding-right: 10px;
}
}
table.table-striped {
border-collapse: collapse;
overflow: hidden;
thead {
background-color: var(--#{$prefix}-surface0);
}
tbody {
tr {
&.row_awaiting_processing {
2024-01-24 18:58:29 -08:00
background-color: var(--#{$prefix}-base) !important;
2024-01-15 19:26:51 -08:00
max-width: 0px;
div {
opacity: 0;
max-height: 0px;
}
}
div {
display: block;
overflow: hidden;
max-height: 50px;
transition: max-height 0.6s cubic-bezier(0.02, 0.15, 0.84, 0.98),
opacity 0.5s ease-in;
}
max-width: 100%;
transition: all 0.5s ease-in;
&:nth-child(odd) {
background-color: var(--#{$prefix}-crust);
}
&:nth-child(even) {
background-color: var(--#{$prefix}-mantle);
}
}
}
}
2024-01-20 15:05:06 -08:00
.popup-menu {
width: max-content;
height: max-content;
position: absolute;
top: 0;
left: 0;
font-size: 1em;
2024-01-21 20:46:11 -08:00
background-color: var(--#{$prefix}-overlay0);
2024-01-24 18:58:29 -08:00
color: var(--#{$prefix}-base);
2024-01-20 15:05:06 -08:00
border-radius: 0px 0px $border-radius $border-radius;
2024-01-20 21:51:10 -08:00
border-style: solid;
border-color: var(--#{$prefix}-overlay2);
border-width: thin;
transition: max-height 0.2s linear;
2024-02-17 20:01:29 -08:00
}
.input {
width: 10em;
font-size: 1em;
margin-left: 10px;
margin-right: 10px;
border-radius: $border-radius;
border-style: solid;
border-color: var(--#{$prefix}-text);
padding-top: 2px;
padding-bottom: 3px;
2024-01-20 21:51:10 -08:00
}
2024-02-17 14:50:58 -08:00
.select {
border: none;
font-size: 1em;
border-radius: $border-radius;
2024-02-17 20:01:29 -08:00
background-color: var(--#{$prefix}-base);
2024-02-17 14:50:58 -08:00
color: var(--#{$prefix}-text);
}
.select.border {
border: 2pt solid var(--#{$prefix}-text);
}
2024-02-19 19:35:51 -08:00
.input-sizer {
display: inline-grid;
vertical-align: top;
align-items: center;
position: relative;
border: solid 1px;
padding: .25em .5em;
margin: 5px;
&.stacked {
padding: .5em;
align-items: stretch;
&::after,
input,
textarea {
grid-area: 2 / 1;
}
}
&::after,
input,
textarea {
width: auto;
min-width: 1em;
grid-area: 1 / 2;
font: inherit;
padding: 0.25em;
margin: 0;
resize: none;
background: none;
appearance: none;
border: none;
}
span {
padding: 0.25em;
}
&::after {
content: attr(data-value) ' ';
visibility: hidden;
white-space: pre-wrap;
}
&:focus-within {
outline: solid 1px blue;
box-shadow: 4px 4px 0px blue;
> span { color: blue; }
textarea:focus,
input:focus {
outline: none;
}
}
}