This commit is contained in:
nnduc
2026-10-24 14:03:52 +07:00
commit 4fe046de58
4790 changed files with 311146 additions and 0 deletions
+512
View File
@@ -0,0 +1,512 @@
/* Form */
input {
filter: none;
}
li>form {
display: block;
}
form>div:not(.clear):not(.control) {
min-height: 9rem;
position: relative;
box-sizing: border-box;
}
form>div.compact:not(.clear):not(.control) {
min-height: 0;
}
form>div label {
position: absolute;
top: 1.5rem;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
max-width: calc(100% - 3rem);
user-select: none;
}
form>div textarea[required]+label:after,
form>div input[required]:not([type=checkbox])+label:after {
content: '✱';
margin-left: 0.5rem;
}
form>div.icon {
padding-left: 9rem;
}
form>div textarea {
field-sizing: content;
border: none;
resize: none;
line-height: 3rem;
box-sizing: border-box;
}
form>div .select:has(option:nth-child(2)):after {
font-family: 'Material Symbols';
content: "\e5c5";
display: block;
font-size: 4rem;
color: rgba(var(--movim-font), 0.75);
position: absolute;
bottom: 0rem;
pointer-events: none;
inset-inline-end: 0;
}
form>div .select:hover:after {
color: rgba(var(--movim-font), 0.6);
}
form>div .select select {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
width: 100%;
background-color: transparent;
background-image: none;
padding-bottom: 1rem;
mask-image: linear-gradient(to right, black calc(100% - 15rem), transparent);
}
*[dir="rtl"] form>div .select select {
mask-image: linear-gradient(to left, black calc(100% - 15rem), transparent);
}
form>div .select:not(:has(option:nth-child(2))) {
pointer-events: none;
}
/* Placeholders to mimic FF */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
transition: background-color 0s 50000s;
-webkit-text-fill-color: rgba(var(--movim-font), 0.87) !important;
}
/* Webkit weird CSS, sic */
form>div .select select,
form>div input:not([type=submit]),
form>div textarea {
outline-width: 0;
}
form>div .select select option,
form>div .select select optgroup {
background-color: rgb(var(--movim-background-main));
}
form>div .select,
form>div input:not([type=submit]),
form>div textarea {
display: block;
padding: 1rem 0;
padding-top: 4rem;
width: 100%;
background-color: transparent;
margin-bottom: 1rem;
-webkit-appearance: none;
/* iOS */
border-radius: 0;
/* iOS */
overflow: hidden;
/* Fixme */
position: relative;
z-index: 1;
}
form>div .select,
form>div input:not([type=submit]),
form>div textarea {
box-shadow: 0px 1px 0px rgba(var(--movim-font), 0.12);
}
form>div>img,
form>div>p {
padding-top: 1.5rem;
}
form>div .select {
position: relative;
padding-top: 4rem;
padding-bottom: 0;
}
form>div.compact>.select,
form>div.compact>input:not([type=submit]),
form>div.compact>textarea {
padding-top: 2.5rem;
}
/* Supporting text */
ul.list li div span.supporting,
form div>span.supporting {
line-height: 2.25rem;
font-size: 1.5rem;
color: rgba(var(--movim-font), 0.60);
display: inline-block;
margin-bottom: 1rem;
}
/* Webkit hack */
form>div input:not([type=submit]):-webkit-autofill {
-webkit-box-shadow: 0 0 0 50px transparent inset;
}
form>div input:not([type=submit]):-webkit-autofill:focus {
box-shadow: none;
-webkit-text-fill-color: rgba(var(--movim-font), 0.87);
}
/* File */
input[type=file] {
max-width: 100%;
margin-top: 1rem;
}
/* Checkbox element */
form>div .checkbox>input[type="checkbox"],
form>div .radio>input[type="radio"] {
display: inline;
width: 0;
height: 0;
position: initial;
}
form>div .checkbox {
position: relative;
width: 6rem;
height: 4rem;
margin-top: calc(50% - 2rem);
direction: ltr;
left: -1rem;
}
form>div ul.list .control .checkbox {
left: 0;
}
form>div .checkbox>input[type="checkbox"]:before {
content: '';
display: block;
position: absolute;
height: 100%;
width: 100%;
border: 0.3rem solid rgba(var(--movim-font), 0.2);
background-color: rgba(var(--movim-font), 0.12);
box-sizing: border-box;
transition: background-color 0.3s ease;
top: 0;
}
form>div .checkbox>input[type="checkbox"]:before {
border-radius: 4rem;
}
form>div .checkbox>input[type="checkbox"]:focus:before {
outline: 3px solid var(--movim-accent);
outline-offset: 2px;
}
form>div .checkbox>input[type="checkbox"]+label {
z-index: 1;
display: block;
background-color: rgba(var(--movim-font), 0.2);
width: 2rem;
height: 2rem;
border-radius: 2rem;
top: 1rem;
left: 1rem;
position: absolute;
font-size: 2rem;
text-align: center;
line-height: normal;
transition: left 0.3s ease, top 0.2s ease, width 0.2s ease, height 0.2s ease, box-shadow 0.1s ease;
}
form>div .checkbox>input[type="checkbox"]+label i {
vertical-align: middle;
color: rgba(var(--movim-font), 0.5);
line-height: 1.75em;
font-size: 1.75rem;
}
form>div .checkbox:hover>input[type="checkbox"]+label {
cursor: pointer;
box-shadow: 0 0 0 1.75rem rgba(var(--movim-font), 0.05);
}
form>div .checkbox>input[type="checkbox"]:checked+label {
color: white;
width: 3rem;
height: 3rem;
left: 1.25em;
top: 0.25em;
background-color: white;
}
form>div .checkbox>input[type="checkbox"]:checked+label i {
color: var(--movim-accent);
}
/* Radio */
form>div .radio>input[type="radio"]+label {
display: inline-block;
width: 2rem;
height: 2rem;
border-radius: 2rem;
border-width: 2px;
border-style: solid;
border-color: gray;
transition: box-shadow 0.1s ease;
margin: 1.25rem;
margin-bottom: 0;
}
form>div .radio>input[type="radio"]:focus+label {
outline: 3px solid var(--movim-accent);
outline-offset: 2px;
}
form>div .radio>input[type="radio"]+label:hover {
cursor: pointer;
background-color: rgba(var(--movim-font), 0.1);
box-shadow: 0 0 0 1.5rem rgba(var(--movim-font), 0.1);
}
form>div .radio>input[type="radio"]:checked+label {
box-shadow: inset 0 0 0 0.4rem rgb(var(--movim-background-main));
}
form>div .radio>input[type="radio"]:checked+label:hover {
box-shadow: inset 0 0 0rem 0.4rem rgb(var(--movim-background-main)), 0 0 0 1.55rem rgba(var(--movim-font), 0.05);
}
/* Disabled */
form>div input:disabled,
form>div input:disabled+label,
form>div select:disabled,
form>div select:disabled+label,
form>div textarea:disabled,
form>div textarea:disabled+label {
opacity: 0.5;
}
/* Readonly */
form>div input[readonly],
form>div textarea[readonly] {
opacity: 0.75;
}
/* Button */
.button.oppose {
float: inline-end;
}
.button:disabled,
.button.inactive {
opacity: 0.6;
pointer-events: none;
}
.button:focus-visible {
outline: 3px solid var(--movim-accent);
outline-offset: 2px;
}
.button,
input[type=button] {
-webkit-appearance: none;
/* iOS */
min-width: 5rem;
text-align: center;
display: inline-block;
box-sizing: border-box;
font-size: 2rem;
font-weight: 500;
line-height: 5rem;
height: 5rem;
margin: 0.75rem 0.25rem;
border-radius: 3rem;
padding: 0 2rem;
border: 0;
transition: background 0.3s ease,
box-shadow 0.3s ease,
border-radius 0.2s var(--standard-easing),
filter 0.2s var(--standard-easing);
background-image: none;
user-select: none;
}
.button.color {
box-shadow: var(--elevation-1);
}
.button.color:hover {
box-shadow: var(--elevation-2);
}
p>.button,
p>input[type=button] {
margin: 0.75rem 0;
}
.button.narrow {
padding: 0 1rem;
}
.button:not(.color),
input[type=button]:not(.color) {
background-color: white;
}
.button:active,
input[type=button]:active {
filter: saturate(0.8) brightness(0.9);
box-shadow: 0 0.5rem 1.25rem rgba(0, 0, 0, 0.23), 0 0.5rem 1.25rem rgba(0, 0, 0, 0.16);
}
.button.flat,
input[type=button].flat {
box-shadow: none;
background-color: transparent;
border: 0;
}
.button:hover,
a.button:link:hover,
a.button:visited:hover,
input[type=button]:hover {
cursor: pointer;
text-decoration: none;
border-radius: 1rem;
}
.button.flat:not(.color):hover,
.button.flat:not(.color).on,
input[type=button].flat:not(.color):hover {
background-color: rgba(var(--movim-element-action), 0.2);
}
.button:focus,
input[type=button]:focus {
border: 0;
}
.button.flat:not(.color):focus,
input[type=button].flat:not(.color):focus {
background-color: rgba(var(--movim-element-action), 0.4);
font-variation-settings: 'FILL' 1;
}
.button.action {
position: fixed;
bottom: 2rem;
right: 2rem;
min-height: 0rem;
min-width: 0rem;
line-height: 7rem;
height: 7rem;
width: 7rem;
z-index: 2;
font-size: 3.5rem;
animation: zoom 0.3s;
padding: 0;
border-radius: 2.5rem;
margin: 0;
}
.button.action.small {
height: 5rem;
width: 5rem;
line-height: 5rem;
}
body>nav.active~main .button.action,
body>div.dialog:not(:empty)~main .button.action,
body>div.drawer:not(:empty):not(.empty)~main .button.action {
transform: scale(0.9);
opacity: 0;
}
.button.action {
box-shadow: var(--elevation-3);
}
.button.action:hover {
box-shadow: var(--elevation-4);
}
.button.action,
.button.action>i {
transition: all 0.4s ease 0s;
}
.button.action.active>i {
transform: rotate(45deg);
}
ul.list li div>.button {
margin: 0.25rem;
}
li.action div.action .button {
margin: 0.5rem;
display: block;
}
.button:not(.action) i {
font-size: 2.5rem;
margin: 0 0.25rem;
}
.snackbar#status_websocket:not(.hide)~main>section#sidebar~* .button.action {
display: none;
}
@media screen and (min-width: 1025px) {
main>div:first-child:nth-last-child(2)+div .button.action {
right: calc(75% - 3rem);
}
*[dir="rtl"] main>div:first-child:nth-last-child(2)+div .button.action {
right: auto;
left: calc(75% - 3rem);
}
section#sidebar~* .button.action {
right: calc(50% - 21rem);
}
*[dir="rtl"] section#sidebar~* .button.action {
right: auto;
left: calc(50% - 21rem);
}
}
@media screen and (min-width: 1680px) {
main>div:first-child:nth-last-child(2)+div .button.action {
right: calc(63.75% + 2rem);
}
section#sidebar~* .button.action {
right: calc(42.5% - 17rem);
}
}