Default view stays the all-feeds joined article list, now with a sidebar listing every subscribed feed so a reader can pin down to one feed's articles. Filtering happens server-side (list_ranked_articles now takes an optional feed_id). Pulled in the sidebar/badge/scroll_area (plus their sheet/skeleton/ tooltip/separator dependencies) components via `dx components add` instead of hand-rolling nav/tag/scroll markup, matching this project's existing pattern of using the Dioxus component library over raw elements (see button/input). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PqTJmazHBQK878vjQ4JnnF
16 lines
928 B
CSS
16 lines
928 B
CSS
body { font-family: system-ui, sans-serif; margin: 0; color: #1a1a1a; height: 100vh; }
|
|
.app-shell { display: flex; height: 100vh; }
|
|
.content-header { display: flex; align-items: center; gap: 0.75rem; padding: 1.5rem 1.5rem 0.5rem; }
|
|
.content-header h2 { margin: 0; }
|
|
.article-scroll-area { flex: 1; min-height: 0; padding: 0 1.5rem 1.5rem; }
|
|
.article-list { list-style: none; padding: 0; margin: 0; }
|
|
.article-row { border-bottom: 1px solid #ddd; padding: 1rem 0; }
|
|
.article-row a { font-weight: 600; text-decoration: none; color: #0b5fff; }
|
|
.summary { color: #444; margin: 0.4rem 0; }
|
|
.topics { display: flex; flex-wrap: wrap; gap: 0.3rem; }
|
|
.error { color: #b00020; }
|
|
.subscribe-form { display: flex; gap: 0.5rem; margin: 1rem 0; }
|
|
.subscribe-form .dx-input { flex: 1; }
|
|
.subscribe-status { margin: 0.25rem 0 1rem; font-size: 0.9rem; }
|
|
.subscribe-status.success { color: #1a7f37; }
|
|
.subscribe-status.error { color: #b00020; }
|