MediaWiki:Common.css: Difference between revisions

From PsychoactiveWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
/*********************************
/***********************************************
  * Psychedelic 70s Frame (Readable)
  * HIGH-CONTRAST RESCUE LAYER (READABILITY FIRST)
  *********************************/
  * Add this at the BOTTOM of Common.css
 
***********************************************/
: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: #f5f5f5;
    overflow-x: hidden;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
 
/* ---- CONTENT: KEEP THIS BORING & READABLE ---- */


/* Make the main content look like white paper */
body.psy70 #content,
body.psy70 #content,
body.psy70 .mw-body,
body.psy70 .mw-body,
body.psy70 .vector-body,
body.psy70 .mw-content-container,
body.psy70 .mw-content-container {
body.psy70 .vector-body {
     background: #080812;             /* fully opaque */
     background: #ffffff !important;
     color: #f7f7fb;
     color: #111111 !important;
     border-radius: 12px;
     border-radius: 10px;
     box-shadow:
     box-shadow:
         0 0 0 1px rgba(255, 255, 255, 0.02),
         0 0 0 1px rgba(0, 0, 0, 0.04),
         0 20px 60px rgba(0, 0, 0, 0.85);
         0 18px 50px rgba(0, 0, 0, 0.35);
}
}


/* Make sure paragraphs and list text are high contrast */
/* Core text nodes */
body.psy70 .mw-body p,
body.psy70 #mw-content-text,
body.psy70 .mw-body li,
body.psy70 .mw-parser-output {
body.psy70 .mw-body td,
    color: #111111 !important;
body.psy70 .mw-body th {
}
     color: #f0f0ff;
 
/* Paragraphs, lists, table text */
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: #111111 !important;
}
}


/* Headings */
/* Headings */
body.psy70 .mw-body h1,
body.psy70 #mw-content-text h1,
body.psy70 .mw-body h2,
body.psy70 #mw-content-text h2,
body.psy70 .mw-body h3,
body.psy70 #mw-content-text h3,
body.psy70 .mw-body h4 {
body.psy70 #mw-content-text h4,
     color: #ffe8c7;
body.psy70 #mw-content-text h5 {
     color: #111111 !important;
}
}


/* Links */
/* Links – classic wiki-ish colors */
body.psy70 .mw-body a {
body.psy70 #mw-content-text a {
     color: #ffb347;
     color: #0645ad !important;
     text-decoration-color: rgba(255, 179, 71, 0.7);
     text-decoration-color: rgba(6, 69, 173, 0.7);
}
}
body.psy70 .mw-body a:visited {
body.psy70 #mw-content-text a:visited {
     color: #ff80c8;
     color: #0b0080 !important;
}
}
body.psy70 .mw-body a:hover {
body.psy70 #mw-content-text a:hover {
     color: #ffe28a;
     color: #3366bb !important;
}
}


/* Tables / infoboxes */
/* Tables / infoboxes: light with dark text */
body.psy70 .wikitable,
body.psy70 .wikitable,
body.psy70 table {
body.psy70 table {
     background-color: #101020;
     background-color: #f8f9fa !important;
     border-color: rgba(255, 255, 255, 0.1);
    color: #111111 !important;
     border-color: rgba(0, 0, 0, 0.2) !important;
}
}
body.psy70 .wikitable th,
body.psy70 .wikitable th,
body.psy70 .wikitable td {
body.psy70 .wikitable td {
     border-color: rgba(255, 255, 255, 0.1);
     border-color: rgba(0, 0, 0, 0.2) !important;
}
     color: #111111 !important;
 
/* Don’t fight the skin header too much */
body.psy70 #mw-page-base,
body.psy70 #mw-head-base {
    background: transparent;
}
 
/* ---- PSYCHEDELIC FRAME: ONLY OUTSIDE CONTENT ---- */
 
/* Big frame around everything (behind content card) */
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.4;
    filter: blur(3px) saturate(1.1);
    animation: psy70-frame-spin 90s linear infinite;
}
 
/* Very subtle horizontal color waves under everything */
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.2;
    animation: psy70-bands-shift 60s ease-in-out infinite alternate;
}
 
/* Grain for a bit of analog feel */
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 the trippy layers, keep dark theme */
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:27, 26 November 2025

/***********************************************
 * HIGH-CONTRAST RESCUE LAYER (READABILITY FIRST)
 * Add this at the BOTTOM of Common.css
 ***********************************************/

/* Make the main content look like white paper */
body.psy70 #content,
body.psy70 .mw-body,
body.psy70 .mw-content-container,
body.psy70 .vector-body {
    background: #ffffff !important;
    color: #111111 !important;
    border-radius: 10px;
    box-shadow:
        0 0 0 1px rgba(0, 0, 0, 0.04),
        0 18px 50px rgba(0, 0, 0, 0.35);
}

/* Core text nodes */
body.psy70 #mw-content-text,
body.psy70 .mw-parser-output {
    color: #111111 !important;
}

/* Paragraphs, lists, table text */
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: #111111 !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: #111111 !important;
}

/* Links – classic wiki-ish colors */
body.psy70 #mw-content-text a {
    color: #0645ad !important;
    text-decoration-color: rgba(6, 69, 173, 0.7);
}
body.psy70 #mw-content-text a:visited {
    color: #0b0080 !important;
}
body.psy70 #mw-content-text a:hover {
    color: #3366bb !important;
}

/* Tables / infoboxes: light with dark text */
body.psy70 .wikitable,
body.psy70 table {
    background-color: #f8f9fa !important;
    color: #111111 !important;
    border-color: rgba(0, 0, 0, 0.2) !important;
}
body.psy70 .wikitable th,
body.psy70 .wikitable td {
    border-color: rgba(0, 0, 0, 0.2) !important;
    color: #111111 !important;
}