MediaWiki:Navbar.css: Difference between revisions
From The Seven Sages of Rome
No edit summary |
No edit summary |
||
| (45 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
/* ========================================= | |||
1. Base Navigation Containers | |||
========================================= */ | |||
/* Main Navigation Wrapper */ | |||
#mw-navigation { | #mw-navigation { | ||
z-index: 999; | |||
background-color: #FCFCFA !important; | |||
padding: 0.5rem 2rem !important; | |||
} | |||
/* Specific link styling within the right nav */ | |||
#mw-navigation .navbar-nav.right .nav-item:nth-of-type(2) > .nav-link { | |||
font-weight: 600; | |||
} | |||
/* Mobile adjustment for Main Navigation */ | |||
@media (max-width: 799px) { | |||
#mw-navigation { | |||
z-index: 999; | |||
background-color: #FCFCFA !important; | |||
padding: 0.5rem 0.5rem !important; | |||
} | |||
} | |||
/* ========================================= | |||
2. Top Tier Navbar (.navbar-top) | |||
========================================= */ | |||
/* Container styling */ | |||
.navbar-top { | |||
background-color: #FCFCFA !important; | |||
border-bottom: 1px solid #e5e7eb; | |||
padding: 0.5rem 2rem; | |||
z-index: 1000; | |||
} | |||
/* Brand/Logo */ | |||
.navbar-top .navbar-brand { | |||
font-family: 'Playfair Display', Georgia, serif; | |||
font-size: 1.25rem; | |||
font-weight: 400; | |||
color: #000000; | |||
} | |||
/* Alignment */ | |||
.navbar-top .navbar-collapse { | |||
align-items: end !important; | |||
} | |||
/* Specific nested link weight adjustment */ | |||
#mv-navigation > .navbar-collapse > .navbar-nav > div:nth-child(2) > a { | |||
font-weight: 800 !important; | |||
} | |||
/* Link Interactions */ | |||
.navbar-top .nav-link { | |||
color: black !important; | |||
padding: 0.5rem 1rem; | |||
text-decoration: none; | |||
} | |||
.navbar-top .nav-link:hover { | |||
color: black !important; | |||
font-weight: 600 !important; | |||
} | |||
.navbar-top .nav-link:active { | |||
color: black !important; | |||
background: transparent !important; | |||
font-weight: 600 !important; | |||
} | |||
/* Mobile adjustment for Top Navbar */ | |||
@media (max-width: 799px) { | |||
.navbar-top { | |||
padding: 0.5rem 0.5rem; | |||
} | |||
} | |||
/* ========================================= | |||
3. Second Tier Navbar (MediaWiki Main) | |||
========================================= */ | |||
/* Sticky positioning and borders */ | |||
.sticky-top:not(.navbar-top) { | |||
background-color: #FCFCFA !important; | |||
border-bottom: 1px solid #e5e7eb; | |||
top: 0; | |||
z-index: 998; | |||
} | |||
.p-navbar { | |||
background-color: #FCFCFA !important; | |||
} | |||
.p-navbar.scrolled { | |||
border-bottom: 1px solid #e5e7eb; | |||
} | } | ||
/* Link Interactions */ | |||
.p-navbar .nav-link { | .p-navbar .nav-link { | ||
color: black !important; | |||
} | } | ||
.p-navbar .nav-link:hover { | .p-navbar .nav-link:hover { | ||
color: black !important; | |||
font-weight: 600 !important; | |||
} | } | ||
.p-navbar .nav-link:active { | .p-navbar .nav-link:active { | ||
color: black !important; | |||
background: transparent !important; | |||
font-weight: 600 !important; | |||
} | } | ||
/* Custom | /* Custom Large Screen Breakpoint (Only for second tier) */ | ||
@media (min-width: 1350px){ | @media (min-width: 1350px) { | ||
.navbar-expand-custom { | .sticky-top:not(.navbar-top).navbar-expand-custom { | ||
flex-direction: row; | flex-direction: row; | ||
flex-wrap: nowrap; | flex-wrap: nowrap; | ||
justify-content: flex-start; | justify-content: flex-start; | ||
} | } | ||
.navbar-expand-custom .navbar-nav { | .sticky-top:not(.navbar-top).navbar-expand-custom .navbar-nav { | ||
flex-direction: row; | flex-direction: row; | ||
} | } | ||
.navbar-expand-custom .dropdown-menu { | .sticky-top:not(.navbar-top).navbar-expand-custom .dropdown-menu { | ||
position: absolute; | position: absolute; | ||
} | } | ||
.navbar-expand-custom .nav-link { | .sticky-top:not(.navbar-top).navbar-expand-custom .nav-link { | ||
padding-right: .5rem; | padding-right: .5rem; | ||
padding-left: .5rem; | padding-left: .5rem; | ||
} | } | ||
.navbar-expand-custom > .container { | .sticky-top:not(.navbar-top).navbar-expand-custom > .container { | ||
flex-wrap: nowrap; | flex-wrap: nowrap; | ||
} | } | ||
.navbar-expand-custom .navbar-collapse { | .sticky-top:not(.navbar-top).navbar-expand-custom .navbar-collapse { | ||
display: flex!important; | display: flex !important; | ||
flex-basis: auto; | flex-basis: auto; | ||
} | } | ||
.navbar-expand-custom .navbar-toggler { | .sticky-top:not(.navbar-top).navbar-expand-custom .navbar-toggler { | ||
display: none; | display: none; | ||
} | } | ||
} | |||
/* ========================================= | |||
4. Shared Components & Layouts | |||
========================================= */ | |||
/* Toggler Styling (Shared) */ | |||
.p-navbar .navbar-toggler, | |||
.navbar-top .navbar-toggler { | |||
color: rgb(0, 0, 0) !important; | |||
border-color: rgba(0, 0, 0, 0.5) !important; | |||
} | |||
/* Container Padding (Shared) */ | |||
.navbar-top .container, | |||
.navbar-horizontal .container { | |||
padding-left: 2rem; | |||
padding-right: 2rem; | |||
} | |||
/* Mobile adjustment for Container Padding */ | |||
@media (max-width: 799px) { | |||
.navbar-top .container, | |||
.navbar-horizontal .container { | |||
padding-left: 0.5rem; | |||
padding-right: 0.5rem; | |||
} | |||
} | |||
/* Keep top tier sticky, and animate show/hide */ | |||
.js-navbar-top { | |||
position: sticky; | |||
top: 0; | |||
z-index: 1031; /* above typical content, near Bootstrap navbar */ | |||
will-change: transform; | |||
transition: none !important; | |||
} | |||
/* Default state: hide top tier */ | |||
body.nav-updown-hide-top .js-navbar-top { | |||
transform: translateY(-100%); | |||
} | |||
/* Second tier should stick below the top tier when top tier is visible */ | |||
.js-navbar-main { | |||
position: sticky; /* Bootstrap sticky-top does this, but keep explicit */ | |||
top: var(--topbar-h, 0px); /* dynamic offset */ | |||
z-index: 1030; | |||
} | |||
/* When top tier is hidden, second tier sticks at top */ | |||
body.nav-updown-hide-top { | |||
--topbar-h: 0px; | |||
} | |||
/* When top tier is shown, second tier is pushed down by its height */ | |||
body.nav-updown-show-top { | |||
/* --topbar-h is set by JS to exact px height */ | |||
} | |||
/* Top tier */ | |||
.js-navbar-top { | |||
position: sticky; | |||
top: 0; | |||
z-index: 1031; | |||
will-change: transform; | |||
transition: transform 180ms ease; | |||
} | |||
body.nav-updown-hide-top .js-navbar-top { | |||
transform: translateY(-100%); | |||
} | |||
/* Second tier: must be pushed down when top tier is shown */ | |||
.sticky-top.js-navbar-main { | |||
top: var(--topbar-h, 0px) !important; | |||
z-index: 1030; | |||
} | } | ||
Latest revision as of 14:14, 18 February 2026
/* =========================================
1. Base Navigation Containers
========================================= */
/* Main Navigation Wrapper */
#mw-navigation {
z-index: 999;
background-color: #FCFCFA !important;
padding: 0.5rem 2rem !important;
}
/* Specific link styling within the right nav */
#mw-navigation .navbar-nav.right .nav-item:nth-of-type(2) > .nav-link {
font-weight: 600;
}
/* Mobile adjustment for Main Navigation */
@media (max-width: 799px) {
#mw-navigation {
z-index: 999;
background-color: #FCFCFA !important;
padding: 0.5rem 0.5rem !important;
}
}
/* =========================================
2. Top Tier Navbar (.navbar-top)
========================================= */
/* Container styling */
.navbar-top {
background-color: #FCFCFA !important;
border-bottom: 1px solid #e5e7eb;
padding: 0.5rem 2rem;
z-index: 1000;
}
/* Brand/Logo */
.navbar-top .navbar-brand {
font-family: 'Playfair Display', Georgia, serif;
font-size: 1.25rem;
font-weight: 400;
color: #000000;
}
/* Alignment */
.navbar-top .navbar-collapse {
align-items: end !important;
}
/* Specific nested link weight adjustment */
#mv-navigation > .navbar-collapse > .navbar-nav > div:nth-child(2) > a {
font-weight: 800 !important;
}
/* Link Interactions */
.navbar-top .nav-link {
color: black !important;
padding: 0.5rem 1rem;
text-decoration: none;
}
.navbar-top .nav-link:hover {
color: black !important;
font-weight: 600 !important;
}
.navbar-top .nav-link:active {
color: black !important;
background: transparent !important;
font-weight: 600 !important;
}
/* Mobile adjustment for Top Navbar */
@media (max-width: 799px) {
.navbar-top {
padding: 0.5rem 0.5rem;
}
}
/* =========================================
3. Second Tier Navbar (MediaWiki Main)
========================================= */
/* Sticky positioning and borders */
.sticky-top:not(.navbar-top) {
background-color: #FCFCFA !important;
border-bottom: 1px solid #e5e7eb;
top: 0;
z-index: 998;
}
.p-navbar {
background-color: #FCFCFA !important;
}
.p-navbar.scrolled {
border-bottom: 1px solid #e5e7eb;
}
/* Link Interactions */
.p-navbar .nav-link {
color: black !important;
}
.p-navbar .nav-link:hover {
color: black !important;
font-weight: 600 !important;
}
.p-navbar .nav-link:active {
color: black !important;
background: transparent !important;
font-weight: 600 !important;
}
/* Custom Large Screen Breakpoint (Only for second tier) */
@media (min-width: 1350px) {
.sticky-top:not(.navbar-top).navbar-expand-custom {
flex-direction: row;
flex-wrap: nowrap;
justify-content: flex-start;
}
.sticky-top:not(.navbar-top).navbar-expand-custom .navbar-nav {
flex-direction: row;
}
.sticky-top:not(.navbar-top).navbar-expand-custom .dropdown-menu {
position: absolute;
}
.sticky-top:not(.navbar-top).navbar-expand-custom .nav-link {
padding-right: .5rem;
padding-left: .5rem;
}
.sticky-top:not(.navbar-top).navbar-expand-custom > .container {
flex-wrap: nowrap;
}
.sticky-top:not(.navbar-top).navbar-expand-custom .navbar-collapse {
display: flex !important;
flex-basis: auto;
}
.sticky-top:not(.navbar-top).navbar-expand-custom .navbar-toggler {
display: none;
}
}
/* =========================================
4. Shared Components & Layouts
========================================= */
/* Toggler Styling (Shared) */
.p-navbar .navbar-toggler,
.navbar-top .navbar-toggler {
color: rgb(0, 0, 0) !important;
border-color: rgba(0, 0, 0, 0.5) !important;
}
/* Container Padding (Shared) */
.navbar-top .container,
.navbar-horizontal .container {
padding-left: 2rem;
padding-right: 2rem;
}
/* Mobile adjustment for Container Padding */
@media (max-width: 799px) {
.navbar-top .container,
.navbar-horizontal .container {
padding-left: 0.5rem;
padding-right: 0.5rem;
}
}
/* Keep top tier sticky, and animate show/hide */
.js-navbar-top {
position: sticky;
top: 0;
z-index: 1031; /* above typical content, near Bootstrap navbar */
will-change: transform;
transition: none !important;
}
/* Default state: hide top tier */
body.nav-updown-hide-top .js-navbar-top {
transform: translateY(-100%);
}
/* Second tier should stick below the top tier when top tier is visible */
.js-navbar-main {
position: sticky; /* Bootstrap sticky-top does this, but keep explicit */
top: var(--topbar-h, 0px); /* dynamic offset */
z-index: 1030;
}
/* When top tier is hidden, second tier sticks at top */
body.nav-updown-hide-top {
--topbar-h: 0px;
}
/* When top tier is shown, second tier is pushed down by its height */
body.nav-updown-show-top {
/* --topbar-h is set by JS to exact px height */
}
/* Top tier */
.js-navbar-top {
position: sticky;
top: 0;
z-index: 1031;
will-change: transform;
transition: transform 180ms ease;
}
body.nav-updown-hide-top .js-navbar-top {
transform: translateY(-100%);
}
/* Second tier: must be pushed down when top tier is shown */
.sticky-top.js-navbar-main {
top: var(--topbar-h, 0px) !important;
z-index: 1030;
}