MediaWiki:Common.css: Difference between revisions

From PsychoactiveWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
/*********************************
/*********************************
  * 70s Prog / Psych Sunburst BG
  * 70s Prog / Psych Sunburst BG
* (Accessible / readable version)
  *********************************/
  *********************************/


Line 18: Line 19:
}
}


/* Content card styling so background peeks around edges */
/* MAIN CONTENT: solid dark “paper” card for readability */
body.prog70s-bg #content,
body.prog70s-bg #content,
body.prog70s-bg .mw-body {
body.prog70s-bg .mw-body {
     background: rgba(6, 3, 22, 0.92);
     background: rgba(8, 6, 18, 0.98); /* almost opaque */
    color: #f7f7fb;
     border-radius: 14px;
     border-radius: 14px;
     box-shadow:
     box-shadow:
         0 0 0 1px rgba(255, 255, 255, 0.03),
         0 0 0 1px rgba(255, 255, 255, 0.03),
         0 30px 80px rgba(0, 0, 0, 0.9);
         0 24px 60px rgba(0, 0, 0, 0.9);
}
 
/* Headings: high contrast, slightly warm */
body.prog70s-bg .mw-body h1,
body.prog70s-bg .mw-body h2,
body.prog70s-bg .mw-body h3,
body.prog70s-bg .mw-body h4 {
    color: #ffe6c7;
}
 
/* Links: readable but still psychedelic */
body.prog70s-bg .mw-body a {
    color: #ffb347;
}
 
body.prog70s-bg .mw-body a:visited {
    color: #ff80c8;
}
 
body.prog70s-bg .mw-body a:hover {
    color: #ffe28a;
}
 
/* Tables, infoboxes, etc. */
body.prog70s-bg .wikitable,
body.prog70s-bg table {
    background-color: rgba(12, 10, 24, 0.98);
    border-color: rgba(255, 255, 255, 0.08);
}
 
body.prog70s-bg .wikitable th,
body.prog70s-bg .wikitable td {
    border-color: rgba(255, 255, 255, 0.08);
}
}


Line 34: Line 69:
}
}


/* Rotating conic sunburst – big 70s record/poster vibe */
/* Rotating conic sunburst – now pushed to edges & dimmed */
body.prog70s-bg::before {
body.prog70s-bg::before {
     content: "";
     content: "";
     position: fixed;
     position: fixed;
     inset: -40vh;
     inset: -40vh;
     z-index: -2;
     z-index: -3;
     pointer-events: none;
     pointer-events: none;


     background:
     background:
         radial-gradient(circle at 50% 50%, rgba(0, 0, 0, 0.9), transparent 60%),
         radial-gradient(circle at 50% 50%, rgba(0, 0, 0, 0.9), transparent 55%),
         conic-gradient(
         conic-gradient(
             from 0deg,
             from 0deg,
Line 57: Line 92:
         );
         );


     filter: blur(1px) saturate(1.3);
     filter: blur(2px) saturate(1.1);
     mix-blend-mode: screen;
     mix-blend-mode: screen;
     animation: prog70s-spin 80s linear infinite;
     animation: prog70s-spin 80s linear infinite;
     opacity: 0.85;
     opacity: 0.35; /* was ~0.85 – MUCH softer */
}
}


/* Horizontal psychedelic bands that drift + shimmer */
/* Horizontal bands: softer, mostly in the periphery */
body.prog70s-bg::after {
body.prog70s-bg::after {
     content: "";
     content: "";
     position: fixed;
     position: fixed;
     inset: -20vh;
     inset: -20vh;
     z-index: -1;
     z-index: -4;
     pointer-events: none;
     pointer-events: none;


Line 74: Line 109:
         linear-gradient(
         linear-gradient(
             0deg,
             0deg,
             rgba(0, 0, 0, 0.85),
             rgba(0, 0, 0, 0.95),
             rgba(0, 0, 0, 0.4),
             rgba(0, 0, 0, 0.65),
             rgba(0, 0, 0, 0.85)
             rgba(0, 0, 0, 0.95)
         ),
         ),
         repeating-linear-gradient(
         repeating-linear-gradient(
Line 95: Line 130:
         prog70s-bands-shift 55s ease-in-out infinite alternate,
         prog70s-bands-shift 55s ease-in-out infinite alternate,
         prog70s-bands-wobble 18s ease-in-out infinite alternate;
         prog70s-bands-wobble 18s ease-in-out infinite alternate;
     opacity: 0.9;
     opacity: 0.25; /* was ~0.9 */
}
}


/* “Off” state when user toggles it */
/* “Off” state when user toggles it */
body.prog70s-bg.prog70s-off::before,
body.prog70s-bg.prog70s-off::before,
body.prog70s-bg.prog70s-off::after {
body.prog70s-bg.prog70s-off::after,
body.prog70s-bg.prog70s-off #prog70s-grain {
     opacity: 0;
     opacity: 0;
     transition: opacity 0.6s ease-out;
     transition: opacity 0.6s ease-out;
}
}


/* Slight color shift when off to keep the page readable */
/* Background stays plain dark when off */
body.prog70s-bg.prog70s-off {
body.prog70s-bg.prog70s-off {
     background: #050009;
     background: #050009;
Line 113: Line 149:
@keyframes prog70s-spin {
@keyframes prog70s-spin {
     0% {
     0% {
         transform: rotate(0deg) scale(1.05);
         transform: rotate(0deg) scale(1.04);
     }
     }
     50% {
     50% {
         transform: rotate(180deg) scale(1.08);
         transform: rotate(180deg) scale(1.06);
     }
     }
     100% {
     100% {
         transform: rotate(360deg) scale(1.05);
         transform: rotate(360deg) scale(1.04);
     }
     }
}
}
Line 133: Line 169:
}
}


/* Gentle wobble like a warped LP */
/* Gentle wobble */
@keyframes prog70s-bands-wobble {
@keyframes prog70s-bands-wobble {
     0% {
     0% {
Line 140: Line 176:
     }
     }
     50% {
     50% {
         transform: translate3d(0, -1.5%, 0) skewY(1.2deg);
         transform: translate3d(0, -1%, 0) skewY(0.7deg);
         filter: hue-rotate(25deg);
         filter: hue-rotate(18deg);
     }
     }
     100% {
     100% {
         transform: translate3d(0, 1.5%, 0) skewY(-1.2deg);
         transform: translate3d(0, 1%, 0) skewY(-0.7deg);
         filter: hue-rotate(50deg);
         filter: hue-rotate(36deg);
     }
     }
}
}


/* Optional: grain overlay for extra analog feel */
/* Grain overlay – very subtle */
body.prog70s-bg #prog70s-grain {
body.prog70s-bg #prog70s-grain {
     pointer-events: none;
     pointer-events: none;
     position: fixed;
     position: fixed;
     inset: -20vh;
     inset: -20vh;
     z-index: -1;
     z-index: -2;
     opacity: 0.12;
     opacity: 0.08;
     mix-blend-mode: soft-light;
     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-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");
Line 173: Line 209:
     cursor: pointer;
     cursor: pointer;


     background: radial-gradient(circle at 0% 0%, rgba(255, 255, 255, 0.15), rgba(0, 0, 0, 0.85));
     background: radial-gradient(circle at 0% 0%, rgba(255, 255, 255, 0.12), rgba(0, 0, 0, 0.9));
     color: #ffe8ff;
     color: #ffe8ff;
     font-size: 0.78rem;
     font-size: 0.78rem;
Line 182: Line 218:
     box-shadow:
     box-shadow:
         0 0 0 1px rgba(0, 0, 0, 0.9),
         0 0 0 1px rgba(0, 0, 0, 0.9),
         0 0 25px rgba(255, 0, 150, 0.4);
         0 0 20px rgba(255, 0, 150, 0.35);
     backdrop-filter: blur(5px);
     backdrop-filter: blur(5px);
     font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
     font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
Line 191: Line 227:
     box-shadow:
     box-shadow:
         0 0 0 1px rgba(0, 0, 0, 0.9),
         0 0 0 1px rgba(0, 0, 0, 0.9),
         0 0 35px rgba(0, 240, 255, 0.6);
         0 0 28px rgba(0, 240, 255, 0.55);
}
}

Revision as of 06:23, 26 November 2025

/*********************************
 * 70s Prog / Psych Sunburst BG
 * (Accessible / readable version)
 *********************************/

: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;
}

/* MAIN CONTENT: solid dark “paper” card for readability */
body.prog70s-bg #content,
body.prog70s-bg .mw-body {
    background: rgba(8, 6, 18, 0.98); /* almost opaque */
    color: #f7f7fb;
    border-radius: 14px;
    box-shadow:
        0 0 0 1px rgba(255, 255, 255, 0.03),
        0 24px 60px rgba(0, 0, 0, 0.9);
}

/* Headings: high contrast, slightly warm */
body.prog70s-bg .mw-body h1,
body.prog70s-bg .mw-body h2,
body.prog70s-bg .mw-body h3,
body.prog70s-bg .mw-body h4 {
    color: #ffe6c7;
}

/* Links: readable but still psychedelic */
body.prog70s-bg .mw-body a {
    color: #ffb347;
}

body.prog70s-bg .mw-body a:visited {
    color: #ff80c8;
}

body.prog70s-bg .mw-body a:hover {
    color: #ffe28a;
}

/* Tables, infoboxes, etc. */
body.prog70s-bg .wikitable,
body.prog70s-bg table {
    background-color: rgba(12, 10, 24, 0.98);
    border-color: rgba(255, 255, 255, 0.08);
}

body.prog70s-bg .wikitable th,
body.prog70s-bg .wikitable td {
    border-color: rgba(255, 255, 255, 0.08);
}

/* Keep header areas clean-ish */
body.prog70s-bg #mw-page-base,
body.prog70s-bg #mw-head-base {
    background: transparent;
}

/* Rotating conic sunburst – now pushed to edges & dimmed */
body.prog70s-bg::before {
    content: "";
    position: fixed;
    inset: -40vh;
    z-index: -3;
    pointer-events: none;

    background:
        radial-gradient(circle at 50% 50%, rgba(0, 0, 0, 0.9), transparent 55%),
        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(2px) saturate(1.1);
    mix-blend-mode: screen;
    animation: prog70s-spin 80s linear infinite;
    opacity: 0.35; /* was ~0.85 – MUCH softer */
}

/* Horizontal bands: softer, mostly in the periphery */
body.prog70s-bg::after {
    content: "";
    position: fixed;
    inset: -20vh;
    z-index: -4;
    pointer-events: none;

    background-image:
        linear-gradient(
            0deg,
            rgba(0, 0, 0, 0.95),
            rgba(0, 0, 0, 0.65),
            rgba(0, 0, 0, 0.95)
        ),
        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.25; /* was ~0.9 */
}

/* “Off” state when user toggles it */
body.prog70s-bg.prog70s-off::before,
body.prog70s-bg.prog70s-off::after,
body.prog70s-bg.prog70s-off #prog70s-grain {
    opacity: 0;
    transition: opacity 0.6s ease-out;
}

/* Background stays plain dark when off */
body.prog70s-bg.prog70s-off {
    background: #050009;
}

/* Rotating record / sunburst */
@keyframes prog70s-spin {
    0% {
        transform: rotate(0deg) scale(1.04);
    }
    50% {
        transform: rotate(180deg) scale(1.06);
    }
    100% {
        transform: rotate(360deg) scale(1.04);
    }
}

/* 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 */
@keyframes prog70s-bands-wobble {
    0% {
        transform: translate3d(0, 0, 0) skewY(0deg);
        filter: hue-rotate(0deg);
    }
    50% {
        transform: translate3d(0, -1%, 0) skewY(0.7deg);
        filter: hue-rotate(18deg);
    }
    100% {
        transform: translate3d(0, 1%, 0) skewY(-0.7deg);
        filter: hue-rotate(36deg);
    }
}

/* Grain overlay – very subtle */
body.prog70s-bg #prog70s-grain {
    pointer-events: none;
    position: fixed;
    inset: -20vh;
    z-index: -2;
    opacity: 0.08;
    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.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);
    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 28px rgba(0, 240, 255, 0.55);
}