Release 0.4.0

This commit is contained in:
hnzio committed 2026-10-21 23:52:05 +02:00
1 parent 7590be66a5
commit 4042fe6a64
24 files changed
+3570 -290

No files matched your search

+575
View File
@@ -2002,6 +2002,544 @@ a {
margin-top: 0.75rem;
}
.shows-page {
max-width: 78rem;
}
.show-create-panel,
.show-library,
.show-settings {
padding: 1rem;
border: 1px solid var(--line);
border-radius: var(--radius-large);
background: var(--panel);
}
.show-create-panel h2,
.show-library h2 {
margin: 0.15rem 0 0;
font-size: 1rem;
}
.show-create-form {
display: grid;
grid-template-columns: minmax(12rem, 1.3fr) minmax(11rem, 0.85fr) minmax(10rem, 0.85fr) auto;
align-items: end;
gap: 0.65rem;
margin-top: 0.9rem;
}
.show-create-form label,
.show-settings-form label,
.section-edit-form label,
.add-section-form label,
.usage-edit-form label,
.usage-command-row label {
display: grid;
min-width: 0;
gap: 0.25rem;
color: var(--text-muted);
font-size: 0.68rem;
font-weight: 700;
}
.show-create-form input,
.show-create-form select,
.show-settings-form input,
.show-settings-form select,
.show-settings-form textarea,
.section-edit-form input,
.section-edit-form select,
.add-section-form input,
.add-section-form select,
.usage-edit-form input,
.usage-edit-form textarea,
.usage-command-row select,
.source-add-form select,
.builder-filter input,
.builder-filter select,
.reserve-usage select {
width: 100%;
min-width: 0;
min-height: 2.45rem;
padding: 0.48rem 0.58rem;
border: 1px solid var(--line-strong);
border-radius: 0.65rem;
background: var(--panel-strong);
color: var(--text);
}
.template-notes {
display: flex;
flex-wrap: wrap;
gap: 0.35rem 1rem;
margin-top: 0.7rem;
color: var(--text-faint);
font-size: 0.65rem;
}
.template-notes p {
margin: 0;
}
.show-library {
margin-top: 0.8rem;
}
.show-library > header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 0.7rem;
}
.show-library > header > span {
padding: 0.25rem 0.5rem;
border-radius: 2rem;
background: var(--panel-soft);
color: var(--text-muted);
font-size: 0.68rem;
}
.show-card-list {
display: grid;
gap: 0.5rem;
}
.show-card {
display: flex;
align-items: center;
justify-content: space-between;
gap: 1rem;
padding: 0.85rem;
border: 1px solid var(--line);
border-radius: var(--radius-medium);
background: var(--panel-soft);
}
.show-card:hover {
border-color: var(--line-strong);
background: var(--panel-strong);
}
.show-card h3 {
margin: 0.25rem 0 0.1rem;
font-size: 0.92rem;
}
.show-card p {
margin: 0;
color: var(--text-muted);
font-size: 0.7rem;
}
.show-state {
color: var(--text-muted);
font-size: 0.62rem;
font-weight: 750;
text-transform: uppercase;
}
.show-state.ready,
.show-state.live {
color: var(--accent-text);
}
.show-card-facts {
display: flex;
align-items: center;
gap: 1rem;
color: var(--text-muted);
font-size: 0.68rem;
}
.show-card-facts span {
display: grid;
}
.show-card-facts strong {
color: var(--text);
font-size: 0.78rem;
}
.show-settings {
margin-bottom: 0.75rem;
}
.show-settings > summary,
.usage-editor > summary,
.section-editor > summary {
cursor: pointer;
font-size: 0.74rem;
font-weight: 750;
}
.show-settings-form {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0.65rem;
margin-top: 0.8rem;
}
.show-settings-form .wide-field,
.usage-edit-form .wide-field {
grid-column: 1 / -1;
}
.show-settings-form small {
color: var(--text-faint);
font-weight: 500;
}
.copy-field {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
align-items: start;
gap: 0.4rem;
}
.copy-field button,
.row-actions button {
min-width: 2.35rem;
min-height: 2.35rem;
border: 1px solid var(--line);
border-radius: 0.6rem;
background: var(--panel-soft);
color: var(--text-muted);
cursor: pointer;
}
.row-actions button:disabled {
cursor: not-allowed;
opacity: 0.35;
}
.settings-submit {
display: flex;
align-items: center;
justify-content: flex-end;
gap: 0.75rem;
}
.settings-submit span {
color: var(--text-muted);
font-size: 0.68rem;
}
.builder-filter {
display: grid;
grid-template-columns: minmax(8rem, 1fr) minmax(7rem, 0.7fr) auto;
gap: 0.35rem;
margin-bottom: 0.45rem;
}
.builder-source-list {
display: grid;
border-top: 1px solid var(--line);
}
.builder-source-card {
padding: 0.72rem 0.2rem;
border-bottom: 1px solid var(--line);
transition:
opacity 140ms ease,
transform 140ms ease;
}
.source-drag-copy {
cursor: grab;
}
.source-drag-copy:active {
cursor: grabbing;
}
.source-drag-copy > div:first-child {
display: flex;
align-items: center;
justify-content: space-between;
gap: 0.5rem;
}
.source-drag-copy > div:first-child > span:last-child,
.builder-source-card p {
color: var(--text-muted);
font-size: 0.67rem;
}
.builder-source-card h3 {
margin: 0.4rem 0 0.12rem;
font-size: 0.86rem;
}
.builder-source-card p {
margin: 0;
}
.drag-hint {
display: block;
margin-top: 0.35rem;
color: var(--text-faint);
font-size: 0.61rem;
}
.builder-source-card.is-dragging {
opacity: 0.45;
transform: scale(0.985);
}
.editable-run-section.is-dragging,
.editable-usage.is-dragging,
.reserve-usage.is-dragging {
opacity: 0.38;
}
.drag-insert-preview {
border: 1px dashed color-mix(in srgb, var(--accent) 68%, var(--line-strong));
background: color-mix(in srgb, var(--accent) 10%, var(--panel-soft));
box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 8%, transparent);
color: var(--text-muted);
animation: reveal-drop-preview 140ms ease-out;
}
.drag-insert-preview strong {
color: var(--text);
}
.section-drag-slot,
.usage-drag-slot,
.reserve-drag-slot {
display: grid;
}
.section-drag-slot {
gap: 0.35rem;
}
.usage-drag-slot,
.reserve-drag-slot {
gap: 0.42rem;
}
.section-insert-preview {
display: grid;
min-height: 4.1rem;
align-content: center;
gap: 0.15rem;
padding: 0.72rem 0.85rem;
border-radius: var(--radius-medium);
}
.section-insert-preview span,
.usage-insert-preview small,
.reserve-insert-preview small {
color: var(--accent-text);
font-size: 0.65rem;
font-weight: 720;
text-transform: uppercase;
letter-spacing: 0.04em;
}
.usage-insert-preview {
display: grid;
min-height: 3.35rem;
align-content: center;
gap: 0.08rem;
padding: 0.55rem 0.65rem;
border-radius: 0.72rem;
}
.usage-insert-preview strong,
.reserve-insert-preview strong {
font-size: 0.78rem;
}
.reserve-insert-preview {
display: grid;
min-height: 3.35rem;
align-content: center;
gap: 0.08rem;
margin-top: 0.55rem;
padding: 0.55rem 0.65rem;
border-radius: 0.72rem;
}
@keyframes reveal-drop-preview {
from {
opacity: 0;
transform: scaleY(0.78);
}
}
.source-add-form {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 0.35rem;
margin-top: 0.55rem;
}
.editable-run-section {
position: relative;
transition:
border-color 140ms ease,
background-color 140ms ease,
opacity 140ms ease;
}
.section-drag-handle,
.usage-drag-copy {
cursor: grab;
}
.section-drag-handle:active,
.usage-drag-copy:active {
cursor: grabbing;
}
.editable-run-section > .row-actions {
position: absolute;
top: 0.68rem;
right: 4.7rem;
}
.row-actions {
display: flex;
gap: 0.25rem;
}
.row-actions form {
display: flex;
}
.row-actions button {
min-width: 1.8rem;
min-height: 1.8rem;
padding: 0;
}
.editable-usage {
grid-template-columns: minmax(0, 1fr) auto;
transition:
opacity 140ms ease,
background-color 140ms ease;
}
.usage-editor {
grid-column: 1 / -1;
padding-top: 0.3rem;
border-top: 1px solid var(--line);
}
.usage-edit-form {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0.5rem;
margin-top: 0.55rem;
}
.usage-command-row,
.usage-command-row > form,
.section-edit-form,
.add-section-form {
display: flex;
align-items: end;
gap: 0.45rem;
flex-wrap: wrap;
}
.usage-command-row {
justify-content: space-between;
margin-top: 0.55rem;
}
.usage-command-row label,
.section-edit-form label,
.add-section-form label {
flex: 1 1 8rem;
}
.section-editor {
margin: 0.55rem 0 0 2.8rem;
}
.section-edit-form {
margin: 0.55rem 0;
}
.add-section-form {
margin-top: 0.8rem;
padding: 0.75rem;
border: 1px dashed var(--line-strong);
border-radius: var(--radius-medium);
}
.editable-reserve {
margin-top: 0.8rem;
transition:
border-color 140ms ease,
background-color 140ms ease,
opacity 140ms ease;
}
.editable-run-section.drop-ready,
.editable-reserve.drop-ready {
border-color: var(--accent);
background: color-mix(in srgb, var(--accent) 7%, var(--panel));
}
.builder-source-card.is-updating,
.editable-run-section.is-updating,
.editable-reserve.is-updating,
.show-settings.is-updating,
.add-section-form.is-updating {
opacity: 0.58;
pointer-events: none;
}
.editable-reserve > header > div {
display: flex;
align-items: center;
gap: 0.65rem;
}
.editable-reserve > header > div > span {
color: var(--gold);
font-size: 1.2rem;
}
.editable-reserve > header div div {
display: grid;
}
.reserve-usage {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(12rem, auto) auto;
align-items: end;
gap: 0.5rem;
margin-top: 0.55rem;
padding-top: 0.55rem;
border-top: 1px solid color-mix(in srgb, var(--gold) 28%, var(--line));
}
.reserve-usage > div {
display: grid;
}
.reserve-usage small {
color: var(--text-muted);
font-size: 0.65rem;
}
.reserve-usage form {
display: flex;
align-items: end;
gap: 0.35rem;
}
.hidden-command-form {
display: none;
}
@media (max-width: 72rem) {
.library-filters {
grid-template-columns: repeat(3, minmax(0, 1fr));
@@ -2019,6 +2557,9 @@ a {
.source-row {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.show-create-form {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 72rem) {
@@ -2141,6 +2682,12 @@ a {
.source-row {
grid-template-columns: 1fr;
}
.show-create-form,
.show-settings-form,
.usage-edit-form,
.builder-filter {
grid-template-columns: 1fr;
}
.library-filters .search-field,
.wide-field {
grid-column: auto;
@@ -2271,6 +2818,34 @@ a {
.usage-row {
grid-template-columns: minmax(0, 1fr) auto;
}
.show-card,
.show-card-facts {
align-items: flex-start;
flex-direction: column;
}
.show-card-facts {
width: 100%;
gap: 0.4rem;
}
.show-settings-form .wide-field,
.usage-edit-form .wide-field {
grid-column: auto;
}
.copy-field,
.reserve-usage {
grid-template-columns: 1fr;
}
.copy-field button,
.reserve-usage button {
width: 100%;
}
.editable-run-section > .row-actions {
position: static;
margin: 0.5rem 0 0 2.8rem;
}
.section-editor {
margin-left: 0;
}
.live-header-actions {
width: 100%;
justify-content: space-between;