Files
docker-images/python-tools/static/style.css
T
ajp_anton 7e6dea8b24
Build custom container images / build (map[base_image:php:8-fpm-alpine build_args:PHP_VERSION=8 context:php8-pgsql fingerprint_command:{ apk info -v | LC_ALL=C sort; find /usr/local/lib/php/extensions /usr/local/etc/php/conf.d -type f -exec sha256sum {} + | LC_ALL=C sort; } name:ph… (push) Successful in 39s
Build custom container images / build (map[base_image:postgres:18 build_args:PG_VERSION=18 POSTGIS_VERSION=3 VCHORD_VERSION=0.5.3 context:postgres fingerprint_command:{ dpkg-query -W -f='${binary:Package}=${Version}\n' | LC_ALL=C sort; find /usr/lib/postgresql -type f -exec sha256su… (push) Successful in 53s
Build custom container images / build (map[base_image:python:3 build_args:PYTHON_VERSION=3 context:python-tools fingerprint_command:{ dpkg-query -W -f='${binary:Package}=${Version}\n' | LC_ALL=C sort; pip freeze | LC_ALL=C sort; } name:python-tools oci_labels:org.opencontainers.ima… (push) Successful in 1m17s
Refine Python tools task interface
2026-08-18 04:21:11 +00:00

270 lines
3.9 KiB
CSS

:root {
color-scheme: light dark;
font-family: system-ui, sans-serif;
}
body {
margin: 0;
}
header,
main {
max-width: 72rem;
margin: auto;
padding: 1rem;
}
header {
border-bottom: 1px solid color-mix(in srgb, currentColor 20%, transparent);
font-size: 1.2rem;
font-weight: 700;
}
a {
color: inherit;
}
.group {
border: 1px solid color-mix(in srgb, currentColor 20%, transparent);
border-radius: .5rem;
margin: 1rem 0;
padding: 1rem;
}
.group-heading {
align-items: center;
display: flex;
gap: 1rem;
justify-content: space-between;
}
.tasks,
.history {
list-style: none;
padding: 0;
}
.tasks li {
border-top: 1px solid color-mix(in srgb, currentColor 15%, transparent);
display: grid;
gap: 1rem;
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
padding: .8rem 0;
}
.tasks h3,
.tasks p {
margin: .2rem 0;
}
.task-form {
align-items: end;
display: grid;
gap: .75rem;
grid-template-columns: minmax(0, 1fr) auto;
min-width: 0;
}
.task-options {
display: grid;
gap: .75rem;
justify-items: start;
min-width: 0;
}
.task-input { margin: 0; }
.task-input label,
.task-input fieldset {
display: block;
max-width: 100%;
width: fit-content;
}
.task-input fieldset label {
display: block;
}
.task-input input,
.task-input select {
box-sizing: border-box;
font: inherit;
max-width: 100%;
}
.task-input input[type="date"],
.task-input input[type="datetime-local"],
.task-input input[type="number"],
.task-input select {
field-sizing: content;
}
.task-input input[type="text"],
.task-input input[type="password"] {
width: min(15rem, 100%);
}
.task-input fieldset {
border: 0;
margin: 0;
padding: 0;
}
.input-error {
color: #b00020;
margin: .2rem 0;
}
.run-summary {
font-size: .9rem;
opacity: .75;
}
button {
cursor: pointer;
font: inherit;
padding: .4rem .7rem;
}
.task-action {
justify-self: end;
}
.split-button {
display: inline-flex;
position: relative;
}
.split-button button,
.task-action > button {
margin: 0;
white-space: nowrap;
}
.split-primary {
border-bottom-right-radius: 0;
border-top-right-radius: 0;
}
.split-menu summary {
align-items: center;
border: 1px solid currentColor;
border-bottom-left-radius: 0;
border-top-left-radius: 0;
box-sizing: border-box;
cursor: pointer;
display: flex;
height: 100%;
justify-content: center;
list-style: none;
min-width: 2.25rem;
}
.split-menu summary::-webkit-details-marker {
display: none;
}
.split-menu-options {
background: Canvas;
border: 1px solid currentColor;
display: grid;
gap: .2rem;
min-width: max-content;
padding: .25rem;
position: absolute;
right: 0;
top: calc(100% + .25rem);
z-index: 1;
}
.split-menu:not([open]) .split-menu-options {
display: none;
}
.split-menu-options button {
text-align: left;
width: 100%;
}
.is-waiting .split-menu {
opacity: .6;
pointer-events: none;
}
.visually-hidden {
height: 1px;
margin: -1px;
overflow: hidden;
position: absolute;
width: 1px;
}
button:disabled {
cursor: wait;
}
.spinner {
border: .15em solid currentColor;
border-right-color: transparent;
border-radius: 50%;
display: none;
height: .75em;
margin-left: .35em;
vertical-align: -.05em;
width: .75em;
}
.is-waiting .spinner {
animation: spin .7s linear infinite;
display: inline-block;
}
.task-result {
grid-column: 1 / -1;
margin: .5rem 0 0;
}
.task-result.succeeded {
color: #167c3a;
}
.task-result.failed {
color: #b00020;
}
@keyframes spin {
to { transform: rotate(360deg); }
}
@media (max-width: 58rem) {
.tasks li {
grid-template-columns: 1fr;
}
}
@media (max-width: 42rem) {
.task-form {
grid-template-columns: 1fr;
}
.task-action {
justify-self: start;
}
}
dt {
font-weight: 700;
}
dd {
margin: 0 0 .5rem;
}
pre {
background: color-mix(in srgb, currentColor 8%, transparent);
max-height: 60vh;
overflow: auto;
padding: 1rem;
white-space: pre-wrap;
}