215 lines
3.8 KiB
CSS
Raw Normal View History

2025-12-04 20:29:35 +01:00
/**
* @fileoverview Header Styles for Rantii
* @author retoor <retoor@molodetz.nl>
* @description Application header component styles
* @keywords css, header, navigation, styles
*/
app-header {
position: fixed;
top: 0;
left: 0;
right: 0;
height: var(--header-height);
background-color: var(--color-surface);
border-bottom: 1px solid var(--color-border);
z-index: var(--z-sticky);
}
.header-container {
display: flex;
align-items: center;
height: 100%;
padding: 0 var(--spacing-md);
gap: var(--spacing-md);
}
.header-left {
display: flex;
align-items: center;
gap: var(--spacing-sm);
}
.menu-toggle {
display: flex;
align-items: center;
justify-content: center;
width: 40px;
height: 40px;
border-radius: var(--radius-md);
color: var(--color-text);
}
.menu-toggle:hover {
background-color: var(--color-surface-hover);
}
.menu-icon {
display: block;
width: 20px;
height: 2px;
background-color: currentColor;
position: relative;
}
.menu-icon::before,
.menu-icon::after {
content: '';
position: absolute;
left: 0;
width: 100%;
height: 2px;
background-color: currentColor;
}
.menu-icon::before {
top: -6px;
}
.menu-icon::after {
bottom: -6px;
}
.logo {
display: flex;
align-items: center;
text-decoration: none;
}
.logo-text {
font-size: var(--font-size-xl);
font-weight: 700;
color: var(--color-primary);
}
.header-center {
flex: 1;
max-width: 400px;
margin: 0 auto;
}
.search-container {
position: relative;
display: flex;
align-items: center;
}
.search-input {
width: 100%;
padding-right: 40px;
}
.search-btn {
position: absolute;
right: 4px;
display: flex;
align-items: center;
justify-content: center;
width: 32px;
height: 32px;
color: var(--color-text-muted);
border-radius: var(--radius-sm);
}
.search-btn:hover {
color: var(--color-text);
background-color: var(--color-surface-hover);
}
.header-right {
display: flex;
align-items: center;
gap: var(--spacing-xs);
}
.header-btn {
display: flex;
align-items: center;
justify-content: center;
width: 40px;
height: 40px;
color: var(--color-text-secondary);
border-radius: var(--radius-md);
transition: all var(--transition-fast);
}
.header-btn:hover {
color: var(--color-text);
background-color: var(--color-surface-hover);
}
.login-btn {
width: auto;
padding: 0 var(--spacing-md);
background-color: var(--color-primary);
color: white;
}
.login-btn:hover {
background-color: var(--color-primary-hover);
color: white;
}
.notifications-btn {
position: relative;
}
.notification-badge {
position: absolute;
top: 4px;
right: 4px;
min-width: 18px;
height: 18px;
padding: 0 4px;
font-size: var(--font-size-xs);
font-weight: 600;
background-color: var(--color-primary);
color: white;
border-radius: var(--radius-full);
display: flex;
align-items: center;
justify-content: center;
}
.theme-icon-light {
display: none;
}
.theme-dark .theme-icon-dark,
.theme-black .theme-icon-dark,
.theme-ocean .theme-icon-dark,
.theme-forest .theme-icon-dark,
.theme-sunset .theme-icon-dark {
display: block;
}
.theme-dark .theme-icon-light,
.theme-black .theme-icon-light,
.theme-ocean .theme-icon-light,
.theme-forest .theme-icon-light,
.theme-sunset .theme-icon-light {
display: none;
}
.theme-light .theme-icon-dark,
.theme-white .theme-icon-dark {
display: none;
}
.theme-light .theme-icon-light,
.theme-white .theme-icon-light {
display: block;
}
@media (min-width: 769px) {
.menu-toggle {
display: none;
}
}
@media (max-width: 480px) {
.header-center {
display: none;
}
}