rss-reader/static/css/components/sidebar.css
2025-02-06 02:21:56 -08:00

189 lines
3.5 KiB
CSS

/* Sidebar styles */
.sidebar {
width: 250px;
background-color: var(--sidebar-bg);
height: 100vh;
padding: 20px;
box-shadow: 2px 0 5px rgba(0,0,0,0.3);
overflow-y: auto;
transition: transform 0.3s ease;
}
.sidebar-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 0.5rem;
}
.sidebar-close {
display: none;
background: none;
border: none;
color: var(--text-color);
cursor: pointer;
padding: 0.5rem;
font-size: 1.2rem;
}
.hamburger-menu {
display: none;
background: none;
border: none;
color: var(--text-color);
cursor: pointer;
padding: 0.5rem;
font-size: 1.2rem;
margin-right: 0.5rem;
}
/* Hover effect for both hamburger and close buttons */
.hamburger-menu:hover,
.sidebar-close:hover {
color: var(--primary-red);
}
@media (max-width: 768px) {
.sidebar {
position: fixed;
top: 0;
left: 0;
z-index: 1000;
transform: translateX(-100%);
}
.sidebar.active {
transform: translateX(0);
}
.sidebar-close {
display: block;
}
.hamburger-menu {
display: block;
}
body.with-sidebar {
display: block;
}
.main-content-area {
height: 100vh;
display: flex;
flex-direction: column;
}
#main-content {
flex: 1;
overflow-y: auto;
-webkit-overflow-scrolling: touch; /* For smooth scrolling on iOS */
}
}
.sidebar h2 {
color: var(--primary-red);
margin: 0;
display: flex;
justify-content: space-between;
align-items: center;
}
.add-feed-button {
background: none;
border: none;
color: var(--text-muted);
cursor: pointer;
padding: 0.25rem;
font-size: 1.2rem;
transition: color 0.2s ease;
}
.add-feed-button:hover {
color: var(--primary-red);
}
/* Feed list styles */
#feedList {
margin-bottom: 2rem;
}
.feed-name {
display: flex;
align-items: center;
justify-content: space-between;
padding: 0.15rem;
margin: 0.25rem 0;
color: var(--text-color);
text-decoration: none;
border-radius: 4px;
transition: background-color 0.2s ease;
cursor: pointer;
position: relative;
padding-right: 2.5rem;
}
.feed-name:hover {
background-color: rgba(255, 255, 255, 0.1);
}
.feed-spinner {
width: 16px;
height: 16px;
margin-left: 8px;
border: 2px solid transparent;
border-top: 2px solid var(--text-color);
border-radius: 50%;
animation: feed-spin 1s linear infinite;
display: none;
}
.feed-name.loading .feed-spinner {
display: inline-block;
}
@keyframes feed-spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.feed-category {
margin-bottom: 1rem;
}
.feed-category-header {
color: var(--primary-red);
font-size: 0.9rem;
text-transform: uppercase;
letter-spacing: 0.05em;
margin: 0;
border-bottom: 1px solid var(--border-color);
}
.feed-empty {
color: var(--text-muted);
text-align: center;
padding: 1rem;
font-style: italic;
}
.feed-error {
color: var(--primary-red);
text-align: center;
padding: 1rem;
background-color: rgba(244, 63, 63, 0.1);
border-radius: 4px;
}
.feed-unread-count {
display: none;
background-color: var(--accent-color);
color: white;
border-radius: 10px;
padding: 2px 6px;
font-size: 0.8rem;
margin-left: 8px;
min-width: 20px;
text-align: center;
}