feat: refine controls and installation dialog

This commit is contained in:
abdus committed 2026-10-10 14:34:11 +00:00
1 parent 20dd93d060
commit 66421b6596
4 files changed
+51 -24

No files matched your search

+33 -10
View File
@@ -42,17 +42,34 @@ header { margin-bottom: 2rem; }
h1 { margin: 0; font-size: 2.5rem; line-height: 1; }
label { display: flex; flex-direction: column; gap: 0.4rem; }
textarea, select, button { font: inherit; color: inherit; background: var(--background); border: 2px solid var(--border); border-radius: 4px; padding: 0.65rem 0.8rem; }
button, label[for], label > span:not(.select-control), .output-heading > p { text-transform: uppercase; font-size: 0.8rem; letter-spacing: 0.08em; }
footer button, footer label > span:not(.select-control) { font-size: 0.75rem; }
textarea { display: block; width: 100%; margin-top: 0.5rem; resize: vertical; min-height: 5rem; }
select { max-width: 100%; }
button, summary { cursor: pointer; }
button:hover { border-color: var(--foreground); }
select { appearance: none; width: 100%; max-width: 100%; padding-right: 2.75rem; cursor: pointer; }
.select-control { display: grid; position: relative; min-width: 0; }
.select-control::after { content: ''; position: absolute; right: 1rem; top: 50%; width: 0.625rem; height: 0.375rem; transform: translateY(-50%); background: var(--foreground); clip-path: polygon(0 0, 100% 0, 50% 100%); pointer-events: none; }
select, button { height: 3rem; line-height: 1.6; }
button { cursor: pointer; }
button:hover, select:hover { border-color: var(--foreground); }
@supports (appearance: base-select) {
select, select::picker(select) { appearance: base-select; }
select::picker-icon { display: none; }
select:open { border-color: var(--foreground); }
.select-control:has(select:open)::after { transform: translateY(-50%) rotate(180deg); }
select::picker(select) { font: inherit; color: var(--foreground); background: var(--panel); border: 2px solid var(--border); border-radius: 4px; margin-block: 0.35rem; padding: 0.25rem; max-height: min(22rem, 60dvh); overflow-y: auto; box-shadow: 0 0.5rem 1.5rem #0003; }
select option { padding: 0.6rem 0.75rem; border-radius: 2px; cursor: pointer; overflow-wrap: anywhere; }
select option:hover, select option:focus-visible { background: var(--border); color: var(--background); outline: none; }
select option:checked { background: var(--foreground); color: var(--background); }
select option::checkmark { margin-inline-end: 0.5rem; }
}
button:disabled { opacity: 0.5; cursor: default; }
:focus-visible { outline: 3px solid var(--foreground); outline-offset: 4px; }
.controls, .font-navigation, .actions, .preferences, .install-controls { display: flex; flex-wrap: wrap; align-items: end; gap: 0.75rem; }
.controls { margin-top: 1rem; }
.controls label { flex: 1; min-width: 9rem; }
.font-navigation { max-width: 100%; }
.font-navigation button { max-width: 100%; overflow-wrap: anywhere; }
.controls { display: grid; grid-template-columns: minmax(9rem, 1fr) minmax(0, auto); margin-top: 1rem; }
.controls label { min-width: 0; }
.controls select { width: 100%; }
.font-navigation { display: grid; grid-template-columns: auto minmax(0, 1fr); min-width: 0; max-width: 100%; }
.font-navigation button { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.output-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.5rem; margin-top: 2.5rem; }
.output-heading p { margin: 0; }
.actions { font-size: 0.85rem; }
@@ -60,7 +77,13 @@ pre { max-width: 100%; min-height: 10rem; overflow-x: auto; padding: 1.25rem; ba
.note, #status, footer { font-size: 0.8rem; }
.note { max-width: 65ch; }
#status { min-height: 1.6em; }
footer { border-top: 1px solid var(--border); padding-top: 1.5rem; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1.5rem; }
.install-controls { align-items: center; }
details { max-width: 30rem; }
footer { border-top: 1px solid var(--border); padding-top: 1.5rem; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 1.5rem; }
.install-controls { align-items: center; min-height: 3rem; }
dialog { width: min(30rem, calc(100% - 2rem)); max-height: calc(100% - 2rem); padding: 0; font: inherit; color: var(--foreground); background: var(--panel); border: 2px solid var(--border); border-radius: 4px; }
dialog::backdrop { background: #0008; }
.dialog-content { padding: 1.5rem; }
.dialog-content h2 { margin: 0; font-size: 1.25rem; }
.dialog-content form { display: flex; justify-content: end; margin-top: 1.5rem; }
@media (min-width: 721px) { #next-font { width: 22rem; min-width: 22rem; } }
@media (max-width: 720px) { .controls { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 390px) { .actions { width: 100%; } .actions button { flex: 1 1 auto; } pre { padding: 0.75rem; } }