williamsjack_pairwise-glick.../styles.css
2026-03-03 22:16:11 +11:00

225 lines
4.8 KiB
CSS

/* Floating controls for Elo arena */
.elo-session-bar {
position: fixed;
left: 50%;
bottom: var(--size-4-4); /* 16px */
transform: translateX(-50%);
display: flex;
align-items: center;
gap: var(--size-4-3); /* 12px */
background-color: var(--background-primary);
color: var(--text-normal);
border: 1px solid var(--background-modifier-border);
border-radius: var(--radius-m);
padding: var(--size-4-2) var(--size-4-3); /* 8px 12px */
box-shadow: var(--shadow-s);
z-index: var(--layer-notice);
pointer-events: auto;
/* Typography for UI surface */
font-size: var(--font-ui-medium);
line-height: var(--line-height-tight);
}
.elo-session-bar .elo-side {
min-width: 14ch;
text-align: center;
font-weight: var(--font-semibold);
}
.elo-session-bar .elo-controls {
display: flex;
gap: var(--size-4-2); /* 8px */
align-items: center;
}
.elo-session-bar button {
font-size: var(--font-ui-small);
line-height: var(--line-height-tight);
padding: var(--size-4-1) var(--size-4-2); /* 4px 8px */
border-radius: var(--radius-s);
/* Press-in animation */
transition:
transform 80ms ease,
box-shadow 80ms ease,
filter 80ms ease;
}
/* Mouse/touch press, plus programmatic press (keyboard shortcuts) */
.elo-session-bar button:active,
.elo-session-bar button.elo-pressed {
transform: translateY(1px);
filter: brightness(0.9);
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25);
}
.elo-cohort-item-info {
cursor: pointer;
}
/* Settings accordions */
.elo-settings-accordion {
margin-top: var(--size-4-3); /* 12px */
}
.elo-settings-accordion > summary {
cursor: pointer;
font-weight: var(--font-semibold);
font-size: var(--font-ui-medium);
margin-bottom: var(--size-4-2); /* 8px */
}
.elo-settings-accordion .elo-settings-body {
padding-top: var(--size-4-3); /* 12px */
margin-left: var(--size-4-1); /* 4px */
padding-left: var(--size-4-3); /* 12px */
border-left: 2px solid var(--background-modifier-border);
}
/* Generic muted text helper */
.elo-muted {
color: var(--text-muted);
}
/* Tag cohort picker: selected tags list */
.elo-selected-tags {
display: flex;
flex-wrap: wrap;
gap: var(--size-2-3); /* 6px */
line-height: var(--line-height-tight);
}
.elo-tag-wrap {
display: inline-flex;
align-items: center;
}
.elo-tag-remove {
margin-left: var(--size-2-3); /* 6px */
font-size: var(--font-ui-small);
line-height: var(--line-height-tight);
}
/* Non-interactive setting row (e.g. suggestion rows with a Use button) */
.elo-static {
cursor: default;
}
.elo-warning {
display: block;
box-sizing: border-box;
max-height: 0;
opacity: 0;
overflow: hidden;
padding: var(--size-4-2) var(--size-4-3); /* 8px 12px */
background-color: var(--background-secondary);
color: var(--text-normal);
border-radius: var(--radius-s);
outline: 1px solid var(--background-modifier-border);
box-shadow: inset 4px 0 0 var(--text-accent);
font-size: var(--font-ui-small);
line-height: var(--line-height-normal);
white-space: pre-wrap;
transition:
max-height 220ms ease,
opacity 160ms ease;
}
.elo-warning.is-visible {
max-height: 10rem;
opacity: 1;
}
.elo-warning p {
margin: 0;
}
/* Convergence stability progress bar */
.elo-stability-track {
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 3px;
overflow: hidden;
border-radius: 0 0 var(--radius-m) var(--radius-m);
pointer-events: none;
}
.elo-stability-fill {
height: 100%;
width: var(--stability-width, 0%);
background-color: var(--text-accent);
border-radius: 0 0 var(--radius-m) var(--radius-m);
transition:
width 150ms ease,
background-color 300ms ease;
}
.elo-stability-fill.is-mid {
background-color: var(--color-yellow);
}
.elo-stability-fill.is-high {
background-color: var(--color-green);
}
@media (prefers-reduced-motion: reduce) {
.elo-warning {
transition: none;
}
.elo-stability-fill {
transition: none;
}
}
/* Phone layout: stack title + controls, stretch to screen width */
.elo-session-bar.is-mobile {
left: var(--size-4-2);
right: var(--size-4-2);
transform: none;
width: auto;
max-width: none;
flex-direction: column;
align-items: stretch;
gap: var(--size-4-2);
padding: var(--size-4-2);
bottom: calc(var(--size-4-4) + var(--view-bottom-spacing)); /* 16px + mobile safe area */
}
/* Title line for mobile session bar */
.elo-mobile-title {
text-align: center;
font-weight: var(--font-semibold);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
/* Hide left/right labels on mobile */
.elo-session-bar.is-mobile .elo-side {
display: none;
}
/* Mobile-friendly buttons */
.elo-session-bar.is-mobile .elo-controls {
flex-wrap: wrap;
justify-content: space-between;
}
.elo-session-bar.is-mobile button {
min-height: 44px;
padding: var(--size-4-2) var(--size-4-3);
font-size: var(--font-ui-medium);
flex: 1 1 7rem;
}