MediaWiki:Common.css: Difference between revisions

From PsychoactiveWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 425: Line 425:
     color: #050009 !important;
     color: #050009 !important;
     font-weight: 600;
     font-weight: 600;
}
/***********************************************
* Psy70 – Message boxes (errors, warnings, success)
***********************************************/
/* Generic message box base */
body.psy70 .mw-message-box {
    border-radius: 10px;
    padding: 0.75em 1em;
    margin: 0.8em 0;
    border-width: 1px;
    border-style: solid;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6);
    font-size: 0.95rem;
}
/* Error boxes */
body.psy70 .mw-message-box-error,
body.psy70 .errorbox {
    background: rgba(40, 0, 10, 0.96) !important;
    border-color: rgba(255, 120, 160, 0.9) !important;
    color: #ffe6f0 !important;
}
/* Error box headings / strong text */
body.psy70 .mw-message-box-error strong,
body.psy70 .errorbox strong {
    color: #ff9abf !important;
}
/* Warning boxes */
body.psy70 .mw-message-box-warning,
body.psy70 .warningbox {
    background: rgba(40, 25, 0, 0.96) !important;
    border-color: rgba(255, 196, 71, 0.9) !important;
    color: #fff7dd !important;
}
body.psy70 .mw-message-box-warning strong,
body.psy70 .warningbox strong {
    color: #ffd98a !important;
}
/* Success / info boxes */
body.psy70 .mw-message-box-success,
body.psy70 .successbox {
    background: rgba(5, 32, 20, 0.96) !important;
    border-color: rgba(120, 255, 200, 0.9) !important;
    color: #ddfff1 !important;
}
body.psy70 .mw-message-box-success strong,
body.psy70 .successbox strong {
    color: #7cffd1 !important;
}
}

Revision as of 07:31, 27 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);
}














/***********************************************
 * Fix: Tabs + TOC colors for psy70 theme
 ***********************************************/

/* --- Page action tabs: Edit / Talk / View history, etc. --- */

/* Container (works for Vector 2022 and legacy Vector) */
body.psy70 .vector-menu-tabs,
body.psy70 .vectorTabs {
    background: transparent !important;
    border: none !important;
}

/* Individual tabs */
body.psy70 .vector-menu-tabs .vector-menu-content-list > li,
body.psy70 .vectorTabs li {
    background: rgba(8, 8, 20, 0.96) !important;
    border-radius: 999px 999px 0 0;
    margin-right: 4px;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
    border-bottom: none !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.6);
}

/* Tab links */
body.psy70 .vector-menu-tabs .vector-menu-content-list > li > a,
body.psy70 .vectorTabs li > a {
    display: inline-block;
    padding: 0.3em 0.9em;
    color: #ffffff !important;
    text-decoration: none;
    font-weight: 500;
}

/* Active/selected tab (the current view) */
body.psy70 .vector-menu-tabs .vector-menu-content-list > li.selected,
body.psy70 .vectorTabs li.selected {
    background: linear-gradient(
        135deg,
        var(--psy70-color-a),
        var(--psy70-color-c)
    ) !important;
    border-color: rgba(255, 255, 255, 0.6) !important;
}

/* Active tab text */
body.psy70 .vector-menu-tabs .vector-menu-content-list > li.selected > a,
body.psy70 .vectorTabs li.selected > a {
    color: #050009 !important;
    text-shadow: 0 0 4px rgba(255, 255, 255, 0.4);
}

/* Hover state */
body.psy70 .vector-menu-tabs .vector-menu-content-list > li:not(.selected):hover,
body.psy70 .vectorTabs li:not(.selected):hover {
    border-color: rgba(255, 255, 255, 0.4) !important;
    background: rgba(18, 18, 40, 1) !important;
}

/* --- TOC / section selection box --- */

body.psy70 #toc,
body.psy70 .toc {
    background: rgba(8, 8, 20, 0.96) !important;
    color: #ffffff !important;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.22) !important;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.8);
}

/* TOC heading */
body.psy70 #toc .toctitle,
body.psy70 .toc .toctitle {
    color: #ffffff !important;
}

/* TOC links */
body.psy70 #toc a,
body.psy70 .toc a {
    color: #4fd3ff !important;
}

body.psy70 #toc a:hover,
body.psy70 .toc a:hover {
    color: #a4ffea !important;
}

/* TOC numbers and list items */
body.psy70 #toc ul,
body.psy70 #toc li,
body.psy70 .toc ul,
body.psy70 .toc li {
    color: #ffffff !important;
}


/***********************************************
 * Psy70 – Login / account button styling
 ***********************************************/

/* Personal tools login / create account (top-right area) */
body.psy70 #pt-login a,
body.psy70 #pt-anonlogin a,
body.psy70 #pt-createaccount a {
    background: linear-gradient(135deg, #ffd7ff, #ffffff) !important;
    color: #2a0035 !important;
    border-radius: 999px;
    padding: 0.25em 0.9em;
    border: 1px solid rgba(255, 255, 255, 0.8) !important;
    box-shadow: 0 0 12px rgba(0, 0, 0, 0.6);
    text-decoration: none !important;
    font-weight: 600;
}

/* Hover / focus: a bit more glow, slightly deeper border */
body.psy70 #pt-login a:hover,
body.psy70 #pt-anonlogin a:hover,
body.psy70 #pt-createaccount a:hover,
body.psy70 #pt-login a:focus,
body.psy70 #pt-anonlogin a:focus,
body.psy70 #pt-createaccount a:focus {
    background: linear-gradient(135deg, #ffe9ff, #ffffff) !important;
    border-color: #ffffff !important;
    box-shadow:
        0 0 0 1px rgba(255, 255, 255, 0.9),
        0 0 18px rgba(255, 255, 255, 0.9);
    outline: none;
}



/***********************************************
 * Psy70 – Left sidebar / navigation colors
 ***********************************************/

/* Sidebar background (Vector legacy + Vector 2022) */
body.psy70 #mw-panel,
body.psy70 .vector-sidebar {
    background: rgba(8, 8, 20, 0.96) !important;
    color: #ffffff !important;
    border-right: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: 6px 0 24px rgba(0, 0, 0, 0.7);
}

/* Sidebar section headings (e.g., Navigation, Tools) */
body.psy70 #mw-panel .portal .vector-menu-heading,
body.psy70 #mw-panel .portal h3,
body.psy70 .vector-sidebar .vector-menu-heading {
    color: #ffe8c7 !important;
    text-transform: uppercase;
    font-size: 0.78rem;
    letter-spacing: 0.12em;
}

/* Sidebar links – base state */
body.psy70 #mw-panel .portal .body ul li a,
body.psy70 #mw-panel .vector-menu-content-list a,
body.psy70 .vector-sidebar .vector-menu-content-list a {
    color: #4fd3ff !important;
    text-decoration: none !important;
    display: block;
    padding: 0.15em 0.5em;
    border-radius: 6px;
}

/* Visited */
body.psy70 #mw-panel .portal .body ul li a:visited,
body.psy70 #mw-panel .vector-menu-content-list a:visited,
body.psy70 .vector-sidebar .vector-menu-content-list a:visited {
    color: #ff80e0 !important;
}

/* Hover / focus */
body.psy70 #mw-panel .portal .body ul li a:hover,
body.psy70 #mw-panel .vector-menu-content-list a:hover,
body.psy70 .vector-sidebar .vector-menu-content-list a:hover,
body.psy70 #mw-panel .portal .body ul li a:focus,
body.psy70 #mw-panel .vector-menu-content-list a:focus,
body.psy70 .vector-sidebar .vector-menu-content-list a:focus {
    background: rgba(25, 25, 60, 1) !important;
    color: #a4ffea !important;
    outline: none;
}

/* “Selected” / current page highlighting (where supported) */
body.psy70 #mw-panel .portal .body ul li.selected > a,
body.psy70 .vector-sidebar .vector-menu-content-list .selected > a {
    background: linear-gradient(
        135deg,
        var(--psy70-color-a),
        var(--psy70-color-c)
    ) !important;
    color: #050009 !important;
    font-weight: 600;
}

/***********************************************
 * Psy70 – Message boxes (errors, warnings, success)
 ***********************************************/

/* Generic message box base */
body.psy70 .mw-message-box {
    border-radius: 10px;
    padding: 0.75em 1em;
    margin: 0.8em 0;
    border-width: 1px;
    border-style: solid;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6);
    font-size: 0.95rem;
}

/* Error boxes */
body.psy70 .mw-message-box-error,
body.psy70 .errorbox {
    background: rgba(40, 0, 10, 0.96) !important;
    border-color: rgba(255, 120, 160, 0.9) !important;
    color: #ffe6f0 !important;
}

/* Error box headings / strong text */
body.psy70 .mw-message-box-error strong,
body.psy70 .errorbox strong {
    color: #ff9abf !important;
}

/* Warning boxes */
body.psy70 .mw-message-box-warning,
body.psy70 .warningbox {
    background: rgba(40, 25, 0, 0.96) !important;
    border-color: rgba(255, 196, 71, 0.9) !important;
    color: #fff7dd !important;
}

body.psy70 .mw-message-box-warning strong,
body.psy70 .warningbox strong {
    color: #ffd98a !important;
}

/* Success / info boxes */
body.psy70 .mw-message-box-success,
body.psy70 .successbox {
    background: rgba(5, 32, 20, 0.96) !important;
    border-color: rgba(120, 255, 200, 0.9) !important;
    color: #ddfff1 !important;
}

body.psy70 .mw-message-box-success strong,
body.psy70 .successbox strong {
    color: #7cffd1 !important;
}