MediaWiki:Common.css
MediaWiki interface page
More actions
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* ---------- IMAGE-ONLY BUTTONS – 4 PER ROW + TIGHT SPACING ---------- */
.cat-grid {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 16px; /* ← CLOSER HORIZONTAL & VERTICAL */
max-width: 960px;
margin: 30px auto;
padding: 0 12px;
}
/* DIV button – FULL RESET + ROUNDED + ZOOM CONTAINER */
.cat-button {
position: relative;
display: block !important;
line-height: 0 !important;
margin: 0 !important;
padding: 0 !important;
border: none !important;
border-radius: 10px !important;
background: none !important;
box-shadow: none !important;
overflow: hidden !important;
transition: transform 0.25s ease;
cursor: pointer;
/* ← MAX 4 PER ROW: 25% width minus gap */
flex: 0 1 calc(25% - 12px); /* 4 × (25% - gap/4) */
min-width: 180px; /* prevent too small */
}
/* HOVER: lift */
.cat-button:hover,
.cat-button:focus {
transform: translateY(-4px);
outline: none !important;
}
/* IMAGE: zoom inside rounded */
.cat-button img {
width: 100%;
height: auto;
display: block;
margin: 0;
padding: 0;
border: 0;
border-radius: 10px;
vertical-align: top;
transition: transform 0.3s ease;
transform-origin: center center;
}
.cat-button:hover img {
transform: scale(1.08);
}
/* TEXT OVERLAY: BOLD + CLEAN BLACK OUTLINE */
.cat-overlay {
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-weight: 700 !important;
font-size: 1.1em;
text-align: center;
padding: 8px;
pointer-events: none;
background: rgba(0, 0, 0, 0.08);
border-radius: 10px;
transition: background 0.3s ease, text-shadow 0.3s ease;
text-shadow:
-1.2px -1.2px 0 #000,
1.2px -1.2px 0 #000,
-1.2px 1.2px 0 #000,
1.2px 1.2px 0 #000,
-1.2px 0 0 #000,
1.2px 0 0 #000,
0 -1.2px 0 #000,
0 1.2px 0 #000,
0 0 6px rgba(0,0,0,0.6);
}
.cat-button:hover .cat-overlay {
background: transparent;
text-shadow:
-1.5px -1.5px 0 #000,
1.5px -1.5px 0 #000,
-1.5px 1.5px 0 #000,
1.5px 1.5px 0 #000,
-1.5px 0 0 #000,
1.5px 0 0 #000,
0 -1.5px 0 #000,
0 1.5px 0 #000,
0 0 10px rgba(0,0,0,0.7);
}
/* RESPONSIVE: 2 per row on tablets, 1 on mobile */
@media (max-width: 768px) {
.cat-grid { gap: 12px; } /* ← EVEN TIGHTER when stacked */
.cat-button { flex: 0 1 calc(50% - 9px); } /* 2 per row */
}
@media (max-width: 480px) {
.cat-button { flex: 0 1 100%; } /* 1 per row */
.cat-overlay { font-size: 1em; }
}
/* ---------- PURE CSS FIXED PARALLAX (NO JS) ---------- */
.parallax-bg-container {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100vh;
z-index: -10;
perspective: 1000px;
overflow: hidden;
pointer-events: none;
}
/* Layers – fixed + scroll movement via background-position */
.parallax-layer {
position: fixed;
inset: 0;
background-size: cover !important;
background-position: center 0 !important; /* ← starts at top */
background-repeat: repeat-y !important; /* ← allows vertical scroll */
background-attachment: fixed !important;
width: 100% !important;
height: 200vh !important; /* ← taller than screen */
transition: background-position 0.1s ease-out;
}
/* DEPTH + SPEED */
.layer-back {
background-image: url('/images/2/21/GreenskinsBG.png') !important;
transform: translateZ(-400px) scale(1.5);
z-index: 1;
background-position-y: calc(50vh - (var(--scroll, 0) * 0.3)) !important;
}
.layer-mid {
background-image: url('/images/4/49/Greenskins1.png') !important;
transform: translateZ(-200px) scale(1.3);
z-index: 2;
background-position-y: calc(50vh - (var(--scroll, 0) * 0.5)) !important;
}
.layer-front {
background-image: url('/images/2/26/Greenskins2.png') !important;
transform: translateZ(0) scale(1);
z-index: 3;
background-position-y: calc(50vh - (var(--scroll, 0) * 0.7)) !important;
}
/* SCROLL TRACKING (CSS-only) */
html {
--scroll: 0;
}
html::before {
content: "";
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100vh;
pointer-events: none;
background: transparent;
}
@media (prefers-reduced-motion: no-preference) {
html {
scroll-behavior: smooth;
}
/* This trick updates --scroll on scroll */
.parallax-bg-container::after {
content: "";
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100vh;
background: linear-gradient(transparent, transparent);
animation: parallax-scroll 1s linear infinite;
}
@keyframes parallax-scroll {
to { --scroll: 100vh; }
}
}