MediaWiki:Common.css: Difference between revisions
Jump to navigation
Jump to search
(Blanked the page) Tag: Blanking |
No edit summary |
||
| Line 1: | Line 1: | ||
/********************************* | |||
* 70s Prog / Psych Sunburst BG | |||
*********************************/ | |||
:root { | |||
--prog70s-bg: #050009; | |||
--prog70s-color-a: #ff9a00; | |||
--prog70s-color-b: #ff005c; | |||
--prog70s-color-c: #7b5cff; | |||
--prog70s-color-d: #00f0ff; | |||
} | |||
/* Turned on from Common.js */ | |||
body.prog70s-bg { | |||
background: var(--prog70s-bg); | |||
color: #f5f5f5; | |||
overflow-x: hidden; | |||
} | |||
/* Content card styling so background peeks around edges */ | |||
body.prog70s-bg #content, | |||
body.prog70s-bg .mw-body { | |||
background: rgba(6, 3, 22, 0.92); | |||
border-radius: 14px; | |||
box-shadow: | |||
0 0 0 1px rgba(255, 255, 255, 0.03), | |||
0 30px 80px rgba(0, 0, 0, 0.9); | |||
} | |||
/* Keep header areas clean-ish */ | |||
body.prog70s-bg #mw-page-base, | |||
body.prog70s-bg #mw-head-base { | |||
background: transparent; | |||
} | |||
/* Rotating conic sunburst – big 70s record/poster vibe */ | |||
body.prog70s-bg::before { | |||
content: ""; | |||
position: fixed; | |||
inset: -40vh; | |||
z-index: -2; | |||
pointer-events: none; | |||
background: | |||
radial-gradient(circle at 50% 50%, rgba(0, 0, 0, 0.9), transparent 60%), | |||
conic-gradient( | |||
from 0deg, | |||
var(--prog70s-color-a) 0deg, | |||
var(--prog70s-color-b) 45deg, | |||
var(--prog70s-color-c) 90deg, | |||
var(--prog70s-color-d) 135deg, | |||
var(--prog70s-color-a) 180deg, | |||
var(--prog70s-color-b) 225deg, | |||
var(--prog70s-color-c) 270deg, | |||
var(--prog70s-color-d) 315deg, | |||
var(--prog70s-color-a) 360deg | |||
); | |||
filter: blur(1px) saturate(1.3); | |||
mix-blend-mode: screen; | |||
animation: prog70s-spin 80s linear infinite; | |||
opacity: 0.85; | |||
} | |||
/* Horizontal psychedelic bands that drift + shimmer */ | |||
body.prog70s-bg::after { | |||
content: ""; | |||
position: fixed; | |||
inset: -20vh; | |||
z-index: -1; | |||
pointer-events: none; | |||
background-image: | |||
linear-gradient( | |||
0deg, | |||
rgba(0, 0, 0, 0.85), | |||
rgba(0, 0, 0, 0.4), | |||
rgba(0, 0, 0, 0.85) | |||
), | |||
repeating-linear-gradient( | |||
0deg, | |||
var(--prog70s-color-a) 0, | |||
var(--prog70s-color-a) 15px, | |||
var(--prog70s-color-b) 15px, | |||
var(--prog70s-color-b) 30px, | |||
var(--prog70s-color-c) 30px, | |||
var(--prog70s-color-c) 45px, | |||
var(--prog70s-color-d) 45px, | |||
var(--prog70s-color-d) 60px | |||
); | |||
background-size: 100% 100%, 100% 260%; | |||
mix-blend-mode: screen; | |||
animation: | |||
prog70s-bands-shift 55s ease-in-out infinite alternate, | |||
prog70s-bands-wobble 18s ease-in-out infinite alternate; | |||
opacity: 0.9; | |||
} | |||
/* “Off” state when user toggles it */ | |||
body.prog70s-bg.prog70s-off::before, | |||
body.prog70s-bg.prog70s-off::after { | |||
opacity: 0; | |||
transition: opacity 0.6s ease-out; | |||
} | |||
/* Slight color shift when off to keep the page readable */ | |||
body.prog70s-bg.prog70s-off { | |||
background: #050009; | |||
} | |||
/* Rotating record / sunburst */ | |||
@keyframes prog70s-spin { | |||
0% { | |||
transform: rotate(0deg) scale(1.05); | |||
} | |||
50% { | |||
transform: rotate(180deg) scale(1.08); | |||
} | |||
100% { | |||
transform: rotate(360deg) scale(1.05); | |||
} | |||
} | |||
/* Bands sliding up and down */ | |||
@keyframes prog70s-bands-shift { | |||
0% { | |||
background-position: 0 0, 0 0; | |||
} | |||
100% { | |||
background-position: 0 0, 0 -200%; | |||
} | |||
} | |||
/* Gentle wobble like a warped LP */ | |||
@keyframes prog70s-bands-wobble { | |||
0% { | |||
transform: translate3d(0, 0, 0) skewY(0deg); | |||
filter: hue-rotate(0deg); | |||
} | |||
50% { | |||
transform: translate3d(0, -1.5%, 0) skewY(1.2deg); | |||
filter: hue-rotate(25deg); | |||
} | |||
100% { | |||
transform: translate3d(0, 1.5%, 0) skewY(-1.2deg); | |||
filter: hue-rotate(50deg); | |||
} | |||
} | |||
/* Optional: grain overlay for extra analog feel */ | |||
body.prog70s-bg #prog70s-grain { | |||
pointer-events: none; | |||
position: fixed; | |||
inset: -20vh; | |||
z-index: -1; | |||
opacity: 0.12; | |||
mix-blend-mode: soft-light; | |||
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.2' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.9'/%3E%3C/svg%3E"); | |||
background-size: 160px 160px; | |||
} | |||
/* Toggle button */ | |||
#prog70s-toggle { | |||
position: fixed; | |||
right: 1.4rem; | |||
bottom: 1.4rem; | |||
z-index: 2000; | |||
padding: 0.35rem 0.9rem; | |||
border-radius: 999px; | |||
border: 1px solid rgba(255, 255, 255, 0.2); | |||
cursor: pointer; | |||
background: radial-gradient(circle at 0% 0%, rgba(255, 255, 255, 0.15), rgba(0, 0, 0, 0.85)); | |||
color: #ffe8ff; | |||
font-size: 0.78rem; | |||
letter-spacing: 0.14em; | |||
text-transform: uppercase; | |||
text-shadow: 0 0 4px rgba(0, 0, 0, 0.8); | |||
box-shadow: | |||
0 0 0 1px rgba(0, 0, 0, 0.9), | |||
0 0 25px rgba(255, 0, 150, 0.4); | |||
backdrop-filter: blur(5px); | |||
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; | |||
} | |||
#prog70s-toggle:hover { | |||
transform: translateY(-1px); | |||
box-shadow: | |||
0 0 0 1px rgba(0, 0, 0, 0.9), | |||
0 0 35px rgba(0, 240, 255, 0.6); | |||
} | |||
Revision as of 06:19, 26 November 2025
/*********************************
* 70s Prog / Psych Sunburst BG
*********************************/
:root {
--prog70s-bg: #050009;
--prog70s-color-a: #ff9a00;
--prog70s-color-b: #ff005c;
--prog70s-color-c: #7b5cff;
--prog70s-color-d: #00f0ff;
}
/* Turned on from Common.js */
body.prog70s-bg {
background: var(--prog70s-bg);
color: #f5f5f5;
overflow-x: hidden;
}
/* Content card styling so background peeks around edges */
body.prog70s-bg #content,
body.prog70s-bg .mw-body {
background: rgba(6, 3, 22, 0.92);
border-radius: 14px;
box-shadow:
0 0 0 1px rgba(255, 255, 255, 0.03),
0 30px 80px rgba(0, 0, 0, 0.9);
}
/* Keep header areas clean-ish */
body.prog70s-bg #mw-page-base,
body.prog70s-bg #mw-head-base {
background: transparent;
}
/* Rotating conic sunburst – big 70s record/poster vibe */
body.prog70s-bg::before {
content: "";
position: fixed;
inset: -40vh;
z-index: -2;
pointer-events: none;
background:
radial-gradient(circle at 50% 50%, rgba(0, 0, 0, 0.9), transparent 60%),
conic-gradient(
from 0deg,
var(--prog70s-color-a) 0deg,
var(--prog70s-color-b) 45deg,
var(--prog70s-color-c) 90deg,
var(--prog70s-color-d) 135deg,
var(--prog70s-color-a) 180deg,
var(--prog70s-color-b) 225deg,
var(--prog70s-color-c) 270deg,
var(--prog70s-color-d) 315deg,
var(--prog70s-color-a) 360deg
);
filter: blur(1px) saturate(1.3);
mix-blend-mode: screen;
animation: prog70s-spin 80s linear infinite;
opacity: 0.85;
}
/* Horizontal psychedelic bands that drift + shimmer */
body.prog70s-bg::after {
content: "";
position: fixed;
inset: -20vh;
z-index: -1;
pointer-events: none;
background-image:
linear-gradient(
0deg,
rgba(0, 0, 0, 0.85),
rgba(0, 0, 0, 0.4),
rgba(0, 0, 0, 0.85)
),
repeating-linear-gradient(
0deg,
var(--prog70s-color-a) 0,
var(--prog70s-color-a) 15px,
var(--prog70s-color-b) 15px,
var(--prog70s-color-b) 30px,
var(--prog70s-color-c) 30px,
var(--prog70s-color-c) 45px,
var(--prog70s-color-d) 45px,
var(--prog70s-color-d) 60px
);
background-size: 100% 100%, 100% 260%;
mix-blend-mode: screen;
animation:
prog70s-bands-shift 55s ease-in-out infinite alternate,
prog70s-bands-wobble 18s ease-in-out infinite alternate;
opacity: 0.9;
}
/* “Off” state when user toggles it */
body.prog70s-bg.prog70s-off::before,
body.prog70s-bg.prog70s-off::after {
opacity: 0;
transition: opacity 0.6s ease-out;
}
/* Slight color shift when off to keep the page readable */
body.prog70s-bg.prog70s-off {
background: #050009;
}
/* Rotating record / sunburst */
@keyframes prog70s-spin {
0% {
transform: rotate(0deg) scale(1.05);
}
50% {
transform: rotate(180deg) scale(1.08);
}
100% {
transform: rotate(360deg) scale(1.05);
}
}
/* Bands sliding up and down */
@keyframes prog70s-bands-shift {
0% {
background-position: 0 0, 0 0;
}
100% {
background-position: 0 0, 0 -200%;
}
}
/* Gentle wobble like a warped LP */
@keyframes prog70s-bands-wobble {
0% {
transform: translate3d(0, 0, 0) skewY(0deg);
filter: hue-rotate(0deg);
}
50% {
transform: translate3d(0, -1.5%, 0) skewY(1.2deg);
filter: hue-rotate(25deg);
}
100% {
transform: translate3d(0, 1.5%, 0) skewY(-1.2deg);
filter: hue-rotate(50deg);
}
}
/* Optional: grain overlay for extra analog feel */
body.prog70s-bg #prog70s-grain {
pointer-events: none;
position: fixed;
inset: -20vh;
z-index: -1;
opacity: 0.12;
mix-blend-mode: soft-light;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.2' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.9'/%3E%3C/svg%3E");
background-size: 160px 160px;
}
/* Toggle button */
#prog70s-toggle {
position: fixed;
right: 1.4rem;
bottom: 1.4rem;
z-index: 2000;
padding: 0.35rem 0.9rem;
border-radius: 999px;
border: 1px solid rgba(255, 255, 255, 0.2);
cursor: pointer;
background: radial-gradient(circle at 0% 0%, rgba(255, 255, 255, 0.15), rgba(0, 0, 0, 0.85));
color: #ffe8ff;
font-size: 0.78rem;
letter-spacing: 0.14em;
text-transform: uppercase;
text-shadow: 0 0 4px rgba(0, 0, 0, 0.8);
box-shadow:
0 0 0 1px rgba(0, 0, 0, 0.9),
0 0 25px rgba(255, 0, 150, 0.4);
backdrop-filter: blur(5px);
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
#prog70s-toggle:hover {
transform: translateY(-1px);
box-shadow:
0 0 0 1px rgba(0, 0, 0, 0.9),
0 0 35px rgba(0, 240, 255, 0.6);
}