{ Html::from_html_unchecked(AttrValue::from(markdown_html)) } diff --git a/styles.css b/styles.css index 04a1bea..833b5f2 100644 --- a/styles.css +++ b/styles.css @@ -51,7 +51,8 @@ html { width: 100%; max-width: 600px; /* Safe Areas: Top inset and mobile-friendly padding */ - padding: calc(20px + env(safe-area-inset-top)) 16px calc(120px + env(safe-area-inset-bottom)) 16px; + padding: calc(20px + env(safe-area-inset-top)) 16px + calc(120px + env(safe-area-inset-bottom)) 16px; } @media (min-width: 768px) { @@ -361,7 +362,6 @@ html { /* --- Animations --- */ @keyframes float { - 0%, 100% { transform: translateY(0px); @@ -387,9 +387,11 @@ html { /* --- Utilities --- */ .reload-btn-large { cursor: pointer; - background: linear-gradient(135deg, - rgba(74, 144, 226, 0.15), - rgba(74, 144, 226, 0.05)); + background: linear-gradient( + 135deg, + rgba(74, 144, 226, 0.15), + rgba(74, 144, 226, 0.05) + ); color: var(--accent-color); padding: 16px; border-radius: 16px; @@ -589,4 +591,100 @@ html { align-items: center; justify-content: space-between; width: 100%; -} \ No newline at end of file +} + +/* --- Category filter --- */ +/* ── Kategorie-Filterleiste ── */ +.category-bar { + display: flex; + gap: 8px; + overflow-x: auto; + padding-bottom: 12px; + margin-bottom: 20px; + scrollbar-width: none; +} +.category-bar::-webkit-scrollbar { + display: none; +} + +.cat-btn { + flex-shrink: 0; + background: rgba(255, 255, 255, 0.05); + border: 1px solid rgba(255, 255, 255, 0.1); + color: var(--text-secondary); + padding: 8px 16px; + border-radius: 20px; + cursor: pointer; + font-size: 0.8rem; + font-weight: 600; + white-space: nowrap; + transition: all 0.2s ease; +} +.cat-btn.active { + background: var(--accent-color); + border-color: var(--accent-color); + color: white; +} +.cat-btn:hover:not(.active) { + background: rgba(255, 255, 255, 0.1); + color: var(--text-primary); +} + +/* ── Kategorie-Badge im Feed-Eintrag ── */ +.cat-badge { + font-size: 0.7rem; + font-weight: 700; + color: var(--accent-color); + background: rgba(74, 144, 226, 0.12); + border: 1px solid rgba(74, 144, 226, 0.25); + padding: 2px 8px; + border-radius: 10px; + white-space: nowrap; + margin: 0 8px; + flex-shrink: 0; +} + +/* ── Kategorie-Badge auf NewsCard ── */ +.post-meta { + display: flex; + align-items: center; + gap: 8px; +} +.post-category-badge { + font-size: 0.7rem; + font-weight: 700; + color: var(--accent-color); + background: rgba(74, 144, 226, 0.12); + border: 1px solid rgba(74, 144, 226, 0.25); + padding: 2px 8px; + border-radius: 10px; +} + +/* ── Neue URL-Zeile mit Kategorie-Dropdown ── */ +.rss-add-row { + display: flex; + gap: 8px; + align-items: center; + margin-bottom: 16px; +} +.cat-select { + background: rgba(0, 0, 0, 0.3); + border: 1px solid rgba(255, 255, 255, 0.1); + color: white; + border-radius: 12px; + padding: 14px 10px; + font-size: 0.85rem; + font-family: inherit; + cursor: pointer; + flex-shrink: 0; + width: 130px; + transition: border-color 0.2s; +} +.cat-select:focus { + outline: none; + border-color: var(--accent-color); +} +.cat-select option { + background: #1e1e2e; + color: white; +}