MediaWiki:Common.css: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
/ | /********************************* | ||
* | * Psychedelic 70s Frame + White Text | ||
*********************************/ | |||
:root { | |||
--psy70-bg: #050009; | |||
--psy70-color-a: #ff9a00; | |||
--psy70-color-b: #ff005c; | |||
--psy70-color-c: #7b5cff; | |||
--psy70-color-d: #00f0ff; | |||
} | |||
/* Enable from Common.js */ | |||
body.psy70 { | |||
background: var(--psy70-bg); | |||
color: #ffffff; | |||
overflow-x: hidden; | |||
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; | |||
} | |||
/* ===== MAIN CONTENT: DARK CARD, WHITE TEXT ===== */ | |||
body.psy70 #content, | body.psy70 #content, | ||
body.psy70 .mw-body, | body.psy70 .mw-body, | ||
body.psy70 .mw-content-container, | body.psy70 .mw-content-container, | ||
body.psy70 .vector-body { | body.psy70 .vector-body { | ||
background: | background: rgba(8, 8, 20, 0.96); | ||
color: # | color: #ffffff; | ||
border-radius: | border-radius: 12px; | ||
box-shadow: | box-shadow: | ||
0 0 0 1px rgba( | 0 0 0 1px rgba(255, 255, 255, 0.03), | ||
0 | 0 20px 60px rgba(0, 0, 0, 0.9); | ||
} | } | ||
/* Core text | /* Core text containers */ | ||
body.psy70 #mw-content-text, | body.psy70 #mw-content-text, | ||
body.psy70 .mw-parser-output { | body.psy70 .mw-parser-output { | ||
color: # | color: #ffffff !important; | ||
} | } | ||
/* Paragraphs, lists, | /* Paragraphs, lists, tables text, etc. */ | ||
body.psy70 #mw-content-text p, | body.psy70 #mw-content-text p, | ||
body.psy70 #mw-content-text li, | body.psy70 #mw-content-text li, | ||
| Line 30: | Line 46: | ||
body.psy70 #mw-content-text dd, | body.psy70 #mw-content-text dd, | ||
body.psy70 #mw-content-text dt { | body.psy70 #mw-content-text dt { | ||
color: # | color: #ffffff !important; | ||
} | } | ||
| Line 39: | Line 55: | ||
body.psy70 #mw-content-text h4, | body.psy70 #mw-content-text h4, | ||
body.psy70 #mw-content-text h5 { | body.psy70 #mw-content-text h5 { | ||
color: # | color: #ffffff !important; | ||
} | } | ||
/* Links – | /* Links – bright and clear */ | ||
body.psy70 #mw-content-text a { | body.psy70 #mw-content-text a { | ||
color: # | color: #4fd3ff !important; | ||
text-decoration-color: rgba( | text-decoration-color: rgba(79, 211, 255, 0.8); | ||
} | } | ||
body.psy70 #mw-content-text a:visited { | body.psy70 #mw-content-text a:visited { | ||
color: # | color: #ff80e0 !important; | ||
} | } | ||
body.psy70 #mw-content-text a:hover { | body.psy70 #mw-content-text a:hover { | ||
color: # | color: #a4ffea !important; | ||
} | } | ||
/* Tables / infoboxes: | /* Tables / infoboxes: slightly lighter card, white text */ | ||
body.psy70 .wikitable, | body.psy70 .wikitable, | ||
body.psy70 table { | body.psy70 table { | ||
background-color: # | background-color: #111126 !important; | ||
color: # | color: #ffffff !important; | ||
border-color: rgba( | border-color: rgba(255, 255, 255, 0.2) !important; | ||
} | } | ||
body.psy70 .wikitable th, | body.psy70 .wikitable th, | ||
body.psy70 .wikitable td { | body.psy70 .wikitable td { | ||
border-color: rgba( | border-color: rgba(255, 255, 255, 0.2) !important; | ||
color: # | color: #ffffff !important; | ||
} | |||
/* Keep header base transparent so frame shows */ | |||
body.psy70 #mw-page-base, | |||
body.psy70 #mw-head-base { | |||
background: transparent; | |||
} | |||
/* ===== PSYCHEDELIC FRAME AROUND EVERYTHING ===== */ | |||
/* Big rotating conic / radial frame */ | |||
body.psy70::before { | |||
content: ""; | |||
position: fixed; | |||
inset: 0; | |||
z-index: -2; | |||
pointer-events: none; | |||
background: | |||
radial-gradient(circle at 0% 0%, rgba(0, 0, 0, 0.85), transparent 55%), | |||
radial-gradient(circle at 100% 0%, rgba(0, 0, 0, 0.85), transparent 55%), | |||
radial-gradient(circle at 0% 100%, rgba(0, 0, 0, 0.85), transparent 55%), | |||
radial-gradient(circle at 100% 100%, rgba(0, 0, 0, 0.85), transparent 55%), | |||
conic-gradient( | |||
from 0deg, | |||
var(--psy70-color-a) 0deg, | |||
var(--psy70-color-b) 90deg, | |||
var(--psy70-color-c) 180deg, | |||
var(--psy70-color-d) 270deg, | |||
var(--psy70-color-a) 360deg | |||
); | |||
mix-blend-mode: screen; | |||
opacity: 0.45; | |||
filter: blur(3px) saturate(1.1); | |||
animation: psy70-frame-spin 90s linear infinite; | |||
} | |||
/* Subtle horizontal color bands underneath */ | |||
body.psy70::after { | |||
content: ""; | |||
position: fixed; | |||
inset: 0; | |||
z-index: -3; | |||
pointer-events: none; | |||
background-image: | |||
linear-gradient( | |||
0deg, | |||
rgba(0, 0, 0, 0.96), | |||
rgba(0, 0, 0, 0.75), | |||
rgba(0, 0, 0, 0.96) | |||
), | |||
repeating-linear-gradient( | |||
0deg, | |||
var(--psy70-color-a) 0, | |||
var(--psy70-color-a) 10px, | |||
var(--psy70-color-b) 10px, | |||
var(--psy70-color-b) 20px, | |||
var(--psy70-color-c) 20px, | |||
var(--psy70-color-c) 30px, | |||
var(--psy70-color-d) 30px, | |||
var(--psy70-color-d) 40px | |||
); | |||
background-size: 100% 100%, 100% 260%; | |||
mix-blend-mode: screen; | |||
opacity: 0.22; | |||
animation: psy70-bands-shift 60s ease-in-out infinite alternate; | |||
} | |||
/* Grain overlay for analog texture */ | |||
body.psy70 #psy70-grain { | |||
pointer-events: none; | |||
position: fixed; | |||
inset: 0; | |||
z-index: -1; | |||
opacity: 0.09; | |||
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; | |||
} | |||
/* When toggled off: remove frame, keep dark base and white text */ | |||
body.psy70.psy70-off::before, | |||
body.psy70.psy70-off::after, | |||
body.psy70.psy70-off #psy70-grain { | |||
opacity: 0; | |||
transition: opacity 0.5s ease-out; | |||
} | |||
body.psy70.psy70-off { | |||
background: #050009; | |||
} | |||
/* Animations */ | |||
@keyframes psy70-frame-spin { | |||
0% { transform: rotate(0deg) scale(1.02); } | |||
100% { transform: rotate(360deg) scale(1.02); } | |||
} | |||
@keyframes psy70-bands-shift { | |||
0% { background-position: 0 0, 0 0; } | |||
100% { background-position: 0 0, 0 -200%; } | |||
} | |||
/* Toggle button */ | |||
#psy70-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.25); | |||
cursor: pointer; | |||
background: radial-gradient(circle at 0% 0%, rgba(255, 255, 255, 0.12), rgba(0, 0, 0, 0.9)); | |||
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 20px rgba(255, 0, 150, 0.35); | |||
backdrop-filter: blur(5px); | |||
} | |||
#psy70-toggle:hover { | |||
transform: translateY(-1px); | |||
box-shadow: | |||
0 0 0 1px rgba(0, 0, 0, 0.9), | |||
0 0 28px rgba(0, 240, 255, 0.55); | |||
} | } | ||
Revision as of 06:30, 26 November 2025
/*********************************
* Psychedelic 70s Frame + White Text
*********************************/
:root {
--psy70-bg: #050009;
--psy70-color-a: #ff9a00;
--psy70-color-b: #ff005c;
--psy70-color-c: #7b5cff;
--psy70-color-d: #00f0ff;
}
/* Enable from Common.js */
body.psy70 {
background: var(--psy70-bg);
color: #ffffff;
overflow-x: hidden;
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
/* ===== MAIN CONTENT: DARK CARD, WHITE TEXT ===== */
body.psy70 #content,
body.psy70 .mw-body,
body.psy70 .mw-content-container,
body.psy70 .vector-body {
background: rgba(8, 8, 20, 0.96);
color: #ffffff;
border-radius: 12px;
box-shadow:
0 0 0 1px rgba(255, 255, 255, 0.03),
0 20px 60px rgba(0, 0, 0, 0.9);
}
/* Core text containers */
body.psy70 #mw-content-text,
body.psy70 .mw-parser-output {
color: #ffffff !important;
}
/* Paragraphs, lists, tables text, etc. */
body.psy70 #mw-content-text p,
body.psy70 #mw-content-text li,
body.psy70 #mw-content-text td,
body.psy70 #mw-content-text th,
body.psy70 #mw-content-text dd,
body.psy70 #mw-content-text dt {
color: #ffffff !important;
}
/* Headings */
body.psy70 #mw-content-text h1,
body.psy70 #mw-content-text h2,
body.psy70 #mw-content-text h3,
body.psy70 #mw-content-text h4,
body.psy70 #mw-content-text h5 {
color: #ffffff !important;
}
/* Links – bright and clear */
body.psy70 #mw-content-text a {
color: #4fd3ff !important;
text-decoration-color: rgba(79, 211, 255, 0.8);
}
body.psy70 #mw-content-text a:visited {
color: #ff80e0 !important;
}
body.psy70 #mw-content-text a:hover {
color: #a4ffea !important;
}
/* Tables / infoboxes: slightly lighter card, white text */
body.psy70 .wikitable,
body.psy70 table {
background-color: #111126 !important;
color: #ffffff !important;
border-color: rgba(255, 255, 255, 0.2) !important;
}
body.psy70 .wikitable th,
body.psy70 .wikitable td {
border-color: rgba(255, 255, 255, 0.2) !important;
color: #ffffff !important;
}
/* Keep header base transparent so frame shows */
body.psy70 #mw-page-base,
body.psy70 #mw-head-base {
background: transparent;
}
/* ===== PSYCHEDELIC FRAME AROUND EVERYTHING ===== */
/* Big rotating conic / radial frame */
body.psy70::before {
content: "";
position: fixed;
inset: 0;
z-index: -2;
pointer-events: none;
background:
radial-gradient(circle at 0% 0%, rgba(0, 0, 0, 0.85), transparent 55%),
radial-gradient(circle at 100% 0%, rgba(0, 0, 0, 0.85), transparent 55%),
radial-gradient(circle at 0% 100%, rgba(0, 0, 0, 0.85), transparent 55%),
radial-gradient(circle at 100% 100%, rgba(0, 0, 0, 0.85), transparent 55%),
conic-gradient(
from 0deg,
var(--psy70-color-a) 0deg,
var(--psy70-color-b) 90deg,
var(--psy70-color-c) 180deg,
var(--psy70-color-d) 270deg,
var(--psy70-color-a) 360deg
);
mix-blend-mode: screen;
opacity: 0.45;
filter: blur(3px) saturate(1.1);
animation: psy70-frame-spin 90s linear infinite;
}
/* Subtle horizontal color bands underneath */
body.psy70::after {
content: "";
position: fixed;
inset: 0;
z-index: -3;
pointer-events: none;
background-image:
linear-gradient(
0deg,
rgba(0, 0, 0, 0.96),
rgba(0, 0, 0, 0.75),
rgba(0, 0, 0, 0.96)
),
repeating-linear-gradient(
0deg,
var(--psy70-color-a) 0,
var(--psy70-color-a) 10px,
var(--psy70-color-b) 10px,
var(--psy70-color-b) 20px,
var(--psy70-color-c) 20px,
var(--psy70-color-c) 30px,
var(--psy70-color-d) 30px,
var(--psy70-color-d) 40px
);
background-size: 100% 100%, 100% 260%;
mix-blend-mode: screen;
opacity: 0.22;
animation: psy70-bands-shift 60s ease-in-out infinite alternate;
}
/* Grain overlay for analog texture */
body.psy70 #psy70-grain {
pointer-events: none;
position: fixed;
inset: 0;
z-index: -1;
opacity: 0.09;
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;
}
/* When toggled off: remove frame, keep dark base and white text */
body.psy70.psy70-off::before,
body.psy70.psy70-off::after,
body.psy70.psy70-off #psy70-grain {
opacity: 0;
transition: opacity 0.5s ease-out;
}
body.psy70.psy70-off {
background: #050009;
}
/* Animations */
@keyframes psy70-frame-spin {
0% { transform: rotate(0deg) scale(1.02); }
100% { transform: rotate(360deg) scale(1.02); }
}
@keyframes psy70-bands-shift {
0% { background-position: 0 0, 0 0; }
100% { background-position: 0 0, 0 -200%; }
}
/* Toggle button */
#psy70-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.25);
cursor: pointer;
background: radial-gradient(circle at 0% 0%, rgba(255, 255, 255, 0.12), rgba(0, 0, 0, 0.9));
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 20px rgba(255, 0, 150, 0.35);
backdrop-filter: blur(5px);
}
#psy70-toggle:hover {
transform: translateY(-1px);
box-shadow:
0 0 0 1px rgba(0, 0, 0, 0.9),
0 0 28px rgba(0, 240, 255, 0.55);
}