Template:NavCard/styles.css
Appearance
/*
* LumiWiki Navigation Cards
* MediaWiki 1.46 / Vector 2022
*
* Full-card clickable navigation using
* a stretched title link.
*/
/* ==========================================
1. MAIN CARD CONTAINER
========================================== */
.lumi-navcard {
position: relative;
display: flex;
flex-direction: column;
height: 100%;
overflow: hidden;
background: #202834;
color: #f5f7fa;
border: 1px solid #394657;
border-radius: 12px;
transition:
border-color 0.25s ease,
box-shadow 0.25s ease,
transform 0.25s ease;
}
/* ==========================================
2. HOVER INTERACTION
========================================== */
.lumi-navcard:hover {
border-color: #55c8ff;
box-shadow:
0 8px 24px rgba(0, 0, 0, 0.25),
0 0 14px rgba(85, 200, 255, 0.15);
transform: translateY(-4px);
}
/* ==========================================
3. CARD IMAGE
========================================== */
.lumi-navcard-image {
position: relative;
width: 100%;
aspect-ratio: 16 / 9;
overflow: hidden;
background: linear-gradient(
to bottom,
#303b4b,
#202834
);
}
.lumi-navcard-image img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
transition:
transform 0.35s ease,
filter 0.35s ease;
}
.lumi-navcard:hover .lumi-navcard-image img {
transform: scale(1.045);
filter: brightness(1.08);
}
/* ==========================================
4. CARD CONTENT
========================================== */
.lumi-navcard-content {
display: flex;
flex-direction: column;
flex-grow: 1;
padding: 18px;
gap: 9px;
}
/* ==========================================
5. CARD TITLE
========================================== */
.lumi-navcard-title {
font-size: 1.12em;
font-weight: 700;
letter-spacing: -0.02em;
line-height: 1.3;
}
.lumi-navcard-title a {
color: #f5f7fa;
text-decoration: none;
}
/*
* Stretch the title link across the card.
* The card is the positioning container.
*/
.lumi-navcard-title a::after {
content: "";
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 2;
}
.lumi-navcard:hover .lumi-navcard-title a {
color: #55c8ff;
}
/* ==========================================
6. CARD DESCRIPTION
========================================== */
.lumi-navcard-description {
color: #b9c5d4;
font-size: 0.9em;
line-height: 1.55;
}
/* ==========================================
7. BOTTOM NAVIGATION LABEL
========================================== */
.lumi-navcard-link {
margin-top: auto;
padding-top: 12px;
color: #55c8ff;
font-size: 0.8em;
font-weight: 700;
letter-spacing: 0.025em;
}
/* ==========================================
8. KEYBOARD NAVIGATION
========================================== */
.lumi-navcard-title a:focus {
outline: 2px solid #55c8ff;
outline-offset: 2px;
}
.lumi-navcard-title a:focus::after {
outline: 2px solid #55c8ff;
outline-offset: -3px;
border-radius: 12px;
}
/* ==========================================
9. REDUCED MOTION ACCESSIBILITY
========================================== */
@media (prefers-reduced-motion: reduce) {
.lumi-navcard,
.lumi-navcard-image img {
transition: none;
}
.lumi-navcard:hover {
transform: none;
}
.lumi-navcard:hover .lumi-navcard-image img {
transform: none;
filter: none;
}
}