feat: add CSS for source-tile offline and auth-required states
Add Phase 3 source tile component CSS rules to style.css, inserted before the @media (prefers-reduced-motion) block as specified. Rules added: - .source-tile: base flex column layout (centered, 12px gap, 24px padding) - .source-tile--offline: opacity 0.45, dashed border - .source-tile--offline .source-tile__name: var(--text-dim) color - .source-tile--offline .source-tile__badge: var(--err) bg, bold, uppercase - .source-tile--offline .source-tile__last-seen: 11px font, dim color - .source-tile--auth: var(--warn) border-color, dashed border - .source-tile__name: 15px/600 font, var(--text) color - .source-tile__login-btn: accent bg, 8px 20px padding, opacity transition - .source-tile__login-btn:hover: opacity 0.85 - .source-tile__login-btn:focus-visible: 2px solid accent outline - .source-tile__hint: 11px font, var(--text-muted) color grep -c 'source-tile' style.css returns 11 lines (all required selectors present). Tests: 15 new tests added to test_frontend_css.py covering all selectors, properties, positioning before reduced-motion block, and brace balance. All 150 CSS tests pass.
This commit is contained in:
@@ -795,6 +795,86 @@ body {
|
||||
color: var(--bell);
|
||||
}
|
||||
|
||||
|
||||
/* ============================================================
|
||||
Source tile states — offline and auth-required (Phase 3)
|
||||
============================================================ */
|
||||
|
||||
.source-tile {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 12px;
|
||||
padding: 24px;
|
||||
height: var(--tile-height);
|
||||
background: var(--bg-tile);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.source-tile--offline {
|
||||
opacity: 0.45;
|
||||
border-style: dashed;
|
||||
}
|
||||
|
||||
.source-tile--offline .source-tile__name {
|
||||
color: var(--text-dim);
|
||||
}
|
||||
|
||||
.source-tile--offline .source-tile__badge {
|
||||
background: var(--err);
|
||||
color: #ffffff;
|
||||
font-size: 10px;
|
||||
font-weight: bold;
|
||||
padding: 2px 8px;
|
||||
border-radius: 10px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.source-tile--offline .source-tile__last-seen {
|
||||
font-size: 11px;
|
||||
color: var(--text-dim);
|
||||
}
|
||||
|
||||
.source-tile--auth {
|
||||
border-color: var(--warn);
|
||||
border-style: dashed;
|
||||
}
|
||||
|
||||
.source-tile__name {
|
||||
font-size: 15px;
|
||||
font-weight: 600;
|
||||
color: var(--text);
|
||||
}
|
||||
|
||||
.source-tile__login-btn {
|
||||
background: var(--accent);
|
||||
color: var(--bg);
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
padding: 8px 20px;
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
cursor: pointer;
|
||||
opacity: 1;
|
||||
transition: opacity var(--t-fast);
|
||||
}
|
||||
|
||||
.source-tile__login-btn:hover {
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.source-tile__login-btn:focus-visible {
|
||||
outline: 2px solid var(--accent);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
|
||||
.source-tile__hint {
|
||||
font-size: 11px;
|
||||
color: var(--text-muted);
|
||||
}
|
||||
|
||||
/* ─── Reduced Motion ──────────────────────────────────────────── */
|
||||
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
|
||||
Reference in New Issue
Block a user