adricl's picture
Added dropdown arrow
9b94909
Raw
History Blame Contribute Delete
4.02 kB
.midirouter-container {
padding: 1rem;
display: flex;
flex-direction: column;
gap: 1rem;
}
.midirouter-title {
margin: 0 0 0.5rem 0;
font-size: 1.25rem;
font-weight: 600;
}
.port-selection {
display: flex;
flex-wrap: wrap;
gap: 1rem;
align-items: flex-end;
}
.port-group {
display: flex;
flex-direction: column;
gap: 0.25rem;
flex: 1;
min-width: 200px;
}
.port-group label {
font-weight: 500;
font-size: 0.875rem;
}
.port-group select {
padding: 0.5rem;
padding-right: 2rem;
border-radius: 4px;
border: 1px solid var(--border-color-primary, #ccc);
background: var(--background-fill-primary, white);
font-size: 0.875rem;
/* Draw our own chevron so the dropdown affordance is visible even when a
host theme strips the native one. */
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%23888' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right 0.65rem center;
background-size: 0.7rem;
cursor: pointer;
}
.speaker-toggle {
display: flex;
align-items: center;
padding-bottom: 0.5rem;
}
.speaker-toggle label {
display: flex;
align-items: center;
gap: 0.5rem;
font-weight: 500;
font-size: 0.875rem;
cursor: pointer;
white-space: nowrap;
}
.speaker-toggle input[type="checkbox"] {
width: 1rem;
height: 1rem;
cursor: pointer;
}
.status-panel {
padding: 1rem;
border-radius: 8px;
font-size: 0.875rem;
}
.status-pending {
background: var(--color-yellow-100, #fef9c3);
color: var(--color-yellow-800, #854d0e);
}
.status-error {
background: var(--color-red-100, #fee2e2);
color: var(--color-red-800, #991b1b);
}
.status-info {
background: var(--background-fill-secondary, #f5f5f5);
display: flex;
flex-direction: column;
gap: 0.5rem;
}
.status-row {
display: flex;
gap: 0.5rem;
}
.status-label {
font-weight: 500;
min-width: 100px;
}
.processing-progress {
display: flex;
align-items: center;
gap: 0.5rem;
flex: 1;
}
.processing-progress-track {
flex: 1;
height: 6px;
border-radius: 3px;
background: var(--border-color-primary, #ddd);
overflow: hidden;
}
.processing-progress-fill {
height: 100%;
background: var(--color-accent, #2563eb);
transition: width 0.1s linear;
}
.processing-progress-label {
font-size: 0.75rem;
font-family: monospace;
color: var(--body-text-color-subdued, #666);
white-space: nowrap;
}
.status-recording {
color: var(--color-red-600, #dc2626);
font-weight: 600;
}
.status-playing {
color: var(--color-green-600, #16a34a);
font-weight: 600;
}
.control-buttons {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
}
.btn {
padding: 0.5rem 1rem;
border-radius: 6px;
border: none;
cursor: pointer;
font-size: 0.875rem;
font-weight: 500;
transition: opacity 0.2s;
}
.btn:disabled {
opacity: 0.5;
cursor: not-allowed;
}
.btn-primary {
background: var(--color-accent, #2563eb);
color: white;
}
.btn-primary:hover:not(:disabled) {
background: var(--color-accent-soft, #1d4ed8);
}
.btn-secondary {
background: var(--background-fill-secondary, #e5e5e5);
color: var(--body-text-color, #333);
}
.btn-secondary:hover:not(:disabled) {
background: var(--background-fill-primary, #d4d4d4);
}
.btn-warning {
background: var(--color-yellow-500, #eab308);
color: white;
}
.btn-warning:hover:not(:disabled) {
background: var(--color-yellow-600, #ca8a04);
}
.btn-danger {
background: var(--color-red-500, #ef4444);
color: white;
}
.btn-danger:hover:not(:disabled) {
background: var(--color-red-600, #dc2626);
}
.info-panel {
padding: 1rem;
background: var(--background-fill-secondary, #f5f5f5);
border-radius: 8px;
font-size: 0.8rem;
color: var(--body-text-color-subdued, #666);
}
.info-panel p {
margin: 0 0 0.5rem 0;
}
.info-panel p:last-child {
margin-bottom: 0;
}
.bpm-info {
font-family: monospace;
}