fix(sidebar): Navigationspunkte besser lesbar — Kontrast + Trennlinien
- sidebar-section-label: #475569 → rgba(255,255,255,0.38) (Kontrast ~5:1) - Aktiver Eintrag: color: #60a5fa + font-weight 500 statt #1677ff - Hover: rgba(255,255,255,0.88) statt #CBD5E1 - Ruhige Items: rgba(255,255,255,0.6) statt #94A3B8 - Child-Items: rgba(255,255,255,0.42), eingerückt 32px - sidebar-section--bordered: Trennlinie zwischen Sektionsgruppen - Sektions-Padding leicht erhöht (18px oben) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -130,9 +130,9 @@ export default function Sidebar({ isOpen, onClose }: SidebarProps) {
|
|||||||
<span className="sidebar-logo-text">{t('app.title')}</span>
|
<span className="sidebar-logo-text">{t('app.title')}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{NAV.map((section) => (
|
{NAV.map((section, idx) => (
|
||||||
<div key={section.labelKey}>
|
<div key={section.labelKey}>
|
||||||
<div className="sidebar-section">
|
<div className={`sidebar-section${idx > 0 ? ' sidebar-section--bordered' : ''}`}>
|
||||||
<div className="sidebar-section-label">{t(section.labelKey)}</div>
|
<div className="sidebar-section-label">{t(section.labelKey)}</div>
|
||||||
</div>
|
</div>
|
||||||
<ul className="sidebar-menu">
|
<ul className="sidebar-menu">
|
||||||
|
|||||||
@@ -106,15 +106,21 @@ h1, h2, h3, h4, h5, h6 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-section {
|
.sidebar-section {
|
||||||
padding: 16px 16px 4px;
|
padding: 18px 16px 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Trennlinie vor jeder Sektion außer der ersten */
|
||||||
|
.sidebar-section--bordered {
|
||||||
|
border-top: 1px solid rgba(255,255,255,0.07);
|
||||||
|
padding-top: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-section-label {
|
.sidebar-section-label {
|
||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
font-weight: 600;
|
font-weight: 700;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
letter-spacing: 1.5px;
|
letter-spacing: 1.8px;
|
||||||
color: #475569;
|
color: rgba(255,255,255,0.38);
|
||||||
margin-bottom: 4px;
|
margin-bottom: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -134,9 +140,9 @@ h1, h2, h3, h4, h5, h6 {
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
padding: 8px 10px;
|
padding: 7px 10px;
|
||||||
font-size: 14px;
|
font-size: 13px;
|
||||||
color: #94A3B8;
|
color: rgba(255,255,255,0.6);
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
transition: all 0.15s ease;
|
transition: all 0.15s ease;
|
||||||
@@ -148,8 +154,8 @@ h1, h2, h3, h4, h5, h6 {
|
|||||||
|
|
||||||
.sidebar-menu-item a:hover,
|
.sidebar-menu-item a:hover,
|
||||||
.sidebar-menu-item button:hover {
|
.sidebar-menu-item button:hover {
|
||||||
background: rgba(255,255,255,0.05);
|
background: rgba(255,255,255,0.06);
|
||||||
color: #CBD5E1;
|
color: rgba(255,255,255,0.88);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Child-Item: sub-nav unter einem Parent (z.B. /firewall/live unter
|
/* Child-Item: sub-nav unter einem Parent (z.B. /firewall/live unter
|
||||||
@@ -157,17 +163,22 @@ h1, h2, h3, h4, h5, h6 {
|
|||||||
Hierarchie sofort sichtbar ist. */
|
Hierarchie sofort sichtbar ist. */
|
||||||
.sidebar-menu-item--child a,
|
.sidebar-menu-item--child a,
|
||||||
.sidebar-menu-item--child button {
|
.sidebar-menu-item--child button {
|
||||||
padding-left: 28px;
|
padding-left: 32px;
|
||||||
font-size: 13px;
|
font-size: 12px;
|
||||||
|
color: rgba(255,255,255,0.42);
|
||||||
|
}
|
||||||
|
.sidebar-menu-item--child:hover a,
|
||||||
|
.sidebar-menu-item--child:hover button {
|
||||||
|
color: rgba(255,255,255,0.75);
|
||||||
}
|
}
|
||||||
.sidebar-menu-item--child::after {
|
.sidebar-menu-item--child::after {
|
||||||
content: '';
|
content: '';
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 14px;
|
left: 18px;
|
||||||
top: 14px;
|
top: 10px;
|
||||||
bottom: 14px;
|
bottom: 10px;
|
||||||
width: 1px;
|
width: 1px;
|
||||||
background: rgba(255,255,255,0.08);
|
background: rgba(255,255,255,0.1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-menu-item.active::before {
|
.sidebar-menu-item.active::before {
|
||||||
@@ -185,17 +196,18 @@ h1, h2, h3, h4, h5, h6 {
|
|||||||
|
|
||||||
.sidebar-menu-item.active a,
|
.sidebar-menu-item.active a,
|
||||||
.sidebar-menu-item.active button {
|
.sidebar-menu-item.active button {
|
||||||
background: color-mix(in srgb, var(--branding-accent, #1677ff) 10%, transparent);
|
background: color-mix(in srgb, var(--branding-accent, #1677ff) 12%, transparent);
|
||||||
color: var(--branding-accent, #1677ff);
|
color: #60a5fa;
|
||||||
|
font-weight: 500;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-version {
|
.sidebar-version {
|
||||||
margin-top: auto;
|
margin-top: auto;
|
||||||
padding: 16px;
|
padding: 14px 16px;
|
||||||
font-size: 11px;
|
font-size: 11px;
|
||||||
color: #475569;
|
color: rgba(255,255,255,0.25);
|
||||||
text-align: center;
|
text-align: center;
|
||||||
border-top: 1px solid rgba(255,255,255,0.06);
|
border-top: 1px solid rgba(255,255,255,0.07);
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-logo-img {
|
.sidebar-logo-img {
|
||||||
|
|||||||
Reference in New Issue
Block a user