pachet's picture
Regenerate catalog scores with ending padding
c7a864a
Raw
History Blame Contribute Delete
6.75 kB
:root {
color-scheme: light;
--ink: #202124;
--muted: #667085;
--line: #d8dee8;
--panel: #ffffff;
--page: #f5f6f8;
--blue: #265fba;
--red: #b33939;
--green: #357a52;
--amber: #9a6a16;
--shadow: 0 10px 28px rgba(30, 35, 45, 0.08);
}
* {
box-sizing: border-box;
}
body {
margin: 0;
color: var(--ink);
background: var(--page);
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
font-size: 14px;
letter-spacing: 0;
}
@media (min-width: 941px) {
body {
overflow: hidden;
}
}
button,
input,
select {
font: inherit;
}
button {
min-height: 34px;
border: 1px solid var(--blue);
border-radius: 6px;
color: #fff;
background: var(--blue);
padding: 0 12px;
cursor: pointer;
}
button:disabled {
border-color: #b6bfcd;
background: #b6bfcd;
cursor: not-allowed;
}
button.secondary {
color: var(--ink);
background: #fff;
border-color: var(--line);
}
button.icon-button {
width: 34px;
padding: 0;
border-color: var(--line);
color: var(--ink);
background: #fff;
}
a {
color: var(--blue);
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
.app-shell {
display: grid;
grid-template-columns: minmax(320px, 390px) 1fr;
height: 100vh;
min-height: 0;
}
.sidebar {
display: flex;
flex-direction: column;
gap: 14px;
min-width: 0;
min-height: 0;
padding: 18px;
overflow: hidden;
background: #eef1f5;
border-right: 1px solid var(--line);
}
.brand-row,
.section-header {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 14px;
}
h1,
h2,
p {
margin: 0;
}
h1 {
font-size: 22px;
line-height: 1.1;
}
h2 {
font-size: 18px;
line-height: 1.25;
}
.brand-row p,
.section-header p,
.theme-item p,
.description,
.meta-line,
#pageLabel {
color: var(--muted);
}
.search-panel,
.detail-pane,
.generator-pane {
background: var(--panel);
border: 1px solid var(--line);
border-radius: 8px;
box-shadow: var(--shadow);
}
.search-panel {
display: grid;
gap: 10px;
padding: 12px;
}
label {
display: grid;
gap: 5px;
min-width: 0;
}
label span {
color: var(--muted);
font-size: 12px;
font-weight: 600;
}
input,
select {
width: 100%;
min-height: 34px;
border: 1px solid var(--line);
border-radius: 6px;
background: #fff;
color: var(--ink);
padding: 0 9px;
}
.field-row,
.toolbar,
.export-row,
.playback-row {
display: flex;
gap: 8px;
align-items: center;
}
.field-row > label {
flex: 1;
}
.theme-list {
flex: 1;
min-height: 0;
overflow: auto;
padding-right: 2px;
overscroll-behavior: contain;
}
.theme-item {
display: block;
width: 100%;
min-height: 0;
border: 1px solid var(--line);
border-radius: 8px;
background: #fff;
color: var(--ink);
padding: 9px 10px;
margin-bottom: 8px;
text-align: left;
cursor: pointer;
overflow: hidden;
}
.theme-item.active {
border-color: var(--blue);
box-shadow: inset 3px 0 0 var(--blue);
}
.theme-item strong {
display: -webkit-box;
overflow: hidden;
font-size: 14px;
font-weight: 700;
line-height: 1.25;
text-overflow: ellipsis;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.theme-item p {
overflow: hidden;
margin-top: 3px;
font-size: 12px;
line-height: 1.25;
text-overflow: ellipsis;
white-space: nowrap;
}
.tag-row {
display: flex;
flex-wrap: wrap;
gap: 5px;
margin-top: 6px;
}
.tag {
border-radius: 999px;
background: #f0f2f5;
color: #475467;
padding: 2px 7px;
font-size: 12px;
}
.tag.key {
background: #e7f1eb;
color: var(--green);
}
.tag.meter {
background: #f7eddc;
color: var(--amber);
}
.pager {
display: flex;
align-items: center;
justify-content: space-between;
}
.workspace {
display: grid;
grid-template-rows: minmax(380px, 58vh) minmax(320px, auto);
gap: 16px;
min-width: 0;
min-height: 0;
overflow: auto;
padding: 18px;
}
.detail-pane,
.generator-pane {
display: flex;
min-width: 0;
min-height: 0;
flex-direction: column;
gap: 12px;
padding: 14px;
}
.detail-pane {
overflow: hidden;
}
.score-surface {
position: relative;
flex: 1;
min-height: 260px;
overflow: auto;
overscroll-behavior: contain;
border: 1px solid var(--line);
border-radius: 8px;
background: #fff;
}
.score-surface img {
display: none;
width: 100%;
min-width: 620px;
height: auto;
padding: 12px 32px 12px 12px;
}
.score-surface.has-score img {
display: block;
}
.score-surface.has-score .empty-state {
display: none;
}
.empty-state {
display: grid;
min-height: 260px;
place-items: center;
color: var(--muted);
}
.export-row {
flex-wrap: wrap;
}
.playback-row {
align-items: end;
}
.playback-row label {
max-width: 320px;
flex: 1;
}
.export-row a {
border: 1px solid var(--line);
border-radius: 6px;
background: #fff;
padding: 6px 9px;
}
.description {
line-height: 1.45;
max-height: 58px;
overflow: auto;
}
.generator-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(128px, 1fr));
gap: 10px;
}
.generator-param.is-hidden {
display: none;
}
.generated-list {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
gap: 12px;
overflow: auto;
}
.sample-card {
display: grid;
gap: 10px;
border: 1px solid var(--line);
border-radius: 8px;
background: #fff;
padding: 10px;
}
.sample-card h3 {
margin: 0;
font-size: 15px;
}
.sample-score {
height: clamp(190px, 24vh, 280px);
min-height: 190px;
overflow: auto;
border: 1px solid var(--line);
border-radius: 6px;
background: #fff;
}
.sample-score img {
display: block;
width: 115%;
min-width: 620px;
max-width: none;
padding: 12px;
}
.code-line {
overflow: hidden;
color: var(--muted);
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
font-size: 12px;
text-overflow: ellipsis;
white-space: nowrap;
}
.status-ok {
color: var(--green);
}
.status-bad {
color: var(--red);
}
@media (max-width: 940px) {
.app-shell {
grid-template-columns: 1fr;
height: auto;
min-height: 100vh;
}
.sidebar {
border-right: 0;
border-bottom: 1px solid var(--line);
overflow: visible;
}
.theme-list {
max-height: 45vh;
}
.workspace {
grid-template-rows: auto auto;
overflow: visible;
}
.generator-grid {
grid-template-columns: repeat(2, minmax(120px, 1fr));
}
.sample-score img {
width: 140%;
min-width: 760px;
}
}
@media (max-width: 520px) {
.field-row,
.toolbar,
.playback-row {
flex-wrap: wrap;
}
.generator-grid {
grid-template-columns: 1fr;
}
.generated-list {
grid-template-columns: 1fr;
}
}