MediaWiki:Vector.css

From CoraTO Wiki - Official Wiki
Revision as of 10:25, 13 August 2025 by Noorisei (talk | contribs)
Jump to navigation Jump to search

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* ========================================
   CORA TO WIKI - VECTOR LEGACY SPECIFIC STYLES
   Styles specific to Vector Legacy 2010 skin
   ======================================== */

/***********************
* Palette (inherits if available)
***********************/
:root {
  --cora-vl-primary: var(--primary-pink, #ff6b9d);
  --cora-vl-accent: var(--accent-pink, #ff8fb0);
  --cora-vl-bg: rgba(255,255,255,0.96);
  --cora-vl-bg-2: #fff0f7;
  --cora-vl-border: rgba(255, 107, 157, 0.25);
  --cora-vl-border-2: #f7d6e6;
  --cora-vl-shadow: 0 6px 20px rgba(255, 107, 157, 0.15);
  --cora-vl-radius: 14px;
  --cora-vl-radius-sm: 10px;
  --cora-vl-space-xs: 4px;
  --cora-vl-space-sm: 8px;
  --cora-vl-space-md: 12px;
  --cora-vl-space-lg: 18px;
}

/* ========================================
   VECTOR LEGACY SIDEBAR STYLES
   ======================================== */

/* Base container */
body.skin-vector-legacy #mw-panel {
 background: rgba(255, 255, 255, 0.8);
  border-right: 2px solid var(--cora-vl-border);
 box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2), 0 1px 0 rgba(255, 255, 255, 0.3) inset;
  padding: var(--cora-vl-space-lg) 0;
  border-radius: var(--cora-vl-radius);
 
}

/* Logo area */
body.skin-vector-legacy #p-logo {
  margin: 0 var(--cora-vl-space-md) var(--cora-vl-space-lg);
}
body.skin-vector-legacy #p-logo a {
  display: block;
  background-color: var(--cora-vl-bg-2);
  border: 1px solid var(--cora-vl-border-2);
  border-radius: var(--cora-vl-radius);
  padding: var(--cora-vl-space-md);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
body.skin-vector-legacy #p-logo a:hover {
  transform: translateY(-2px);
  border-color: var(--cora-vl-primary);
  box-shadow: 0 8px 24px rgba(255, 107, 157, 0.18);
}

/* Portals */
body.skin-vector-legacy #mw-panel .vector-menu-portal,
body.skin-vector-legacy #mw-panel .portal {
  margin: 1px;
  border: 1px solid var(--cora-vl-border-2);
  border-radius: var(--cora-vl-radius);
  background: #fff;
  overflow: hidden;
  
  
}



/* Headings - Now clickable and collapsible */
body.skin-vector-legacy #mw-panel .vector-menu-portal .vector-menu-heading,
body.skin-vector-legacy #mw-panel .portal h3 {
  margin: 0;
  padding: 10px 12px;
  font-size: 0.92em;
  font-weight: 700;
  letter-spacing: .3px;
  color: #ffffff !important;
  background: linear-gradient(135deg, var(--cora-vl-primary), var(--cora-vl-accent));
  border-bottom: 1px solid var(--cora-vl-border-2);
  text-shadow: 0 1px 2px rgb(0, 0, 0) !important;
  cursor: pointer;
  user-select: none;
  position: relative;
  transition: background 0.3s ease, transform 0.2s ease;
  box-shadow: 0 6px 10px rgba(0, 0, 0, 0.2), 0 1px 0 rgba(255, 255, 255, 0.3) inset;

}

/* Hover effect for headings */
body.skin-vector-legacy #mw-panel .vector-menu-portal .vector-menu-heading:hover,
body.skin-vector-legacy #mw-panel .portal h3:hover {
  background: linear-gradient(135deg, var(--cora-vl-accent), var(--cora-vl-primary));
  transform: translateY(-1px);
}

/* Collapse/Expand indicator */
body.skin-vector-legacy #mw-panel .vector-menu-portal .vector-menu-heading::after,
body.skin-vector-legacy #mw-panel .portal h3::after {
  content: '▼';
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.8em;
  transition: transform 0.3s ease;
}

/* Collapsed state indicator */
body.skin-vector-legacy #mw-panel .vector-menu-portal.collapsed .vector-menu-heading::after,
body.skin-vector-legacy #mw-panel .portal.collapsed h3::after {
  transform: translateY(-50%) rotate(-90deg);
}

/* Lists - Now collapsible */
body.skin-vector-legacy #mw-panel .vector-menu-content ul,
body.skin-vector-legacy #mw-panel .portal .body ul {
  list-style: none;
  margin: 0;
  padding: var(--cora-vl-space-xs) 0;
}

/* Collapsible content containers */
body.skin-vector-legacy #mw-panel .vector-menu-content,
body.skin-vector-legacy #mw-panel .portal .body {
  max-height: none;
  overflow: hidden;
  transition: max-height 0.4s ease, opacity 0.3s ease;
  opacity: 1;
}

/* Collapsed state */
body.skin-vector-legacy #mw-panel .vector-menu-portal.collapsed .vector-menu-content,
body.skin-vector-legacy #mw-panel .portal.collapsed .body {
  max-height: 0 !important;
  opacity: 0;
  padding: 0;
}

/* Collapsed portal styling */
body.skin-vector-legacy #mw-panel .vector-menu-portal.collapsed,
body.skin-vector-legacy #mw-panel .portal.collapsed {
  margin-bottom: var(--cora-vl-space-sm);
}

/* Smooth border transition for collapsed state */
body.skin-vector-legacy #mw-panel .vector-menu-portal.collapsed .vector-menu-heading,
body.skin-vector-legacy #mw-panel .portal.collapsed h3 {
  border-bottom: none;
  border-radius: var(--cora-vl-radius);
}

body.skin-vector-legacy #mw-panel .vector-menu-content li,
body.skin-vector-legacy #mw-panel .portal .body li {
  border-bottom: 1px solid #f3e2ea;
}
body.skin-vector-legacy #mw-panel .vector-menu-content li:last-child,
body.skin-vector-legacy #mw-panel .portal .body li:last-child {
  border-bottom: 0;
}

/* Links */
body.skin-vector-legacy #mw-panel .vector-menu-content a,
body.skin-vector-legacy #mw-panel .portal .body a {
  display: block;
  padding: 8px 14px;
  color: #9a3b5f;
  text-decoration: none;
  border-left: 3px solid transparent;
  transition: color .2s ease, background-color .2s ease, border-color .2s ease, padding .2s ease;
}
body.skin-vector-legacy #mw-panel .vector-menu-content a:hover,
body.skin-vector-legacy #mw-panel .portal .body a:hover {
  color: var(--cora-vl-primary);
  background: #fff5fb;
  border-left-color: var(--cora-vl-primary);
  padding-left: 18px;
}

/* Scrollbar */
body.skin-vector-legacy #mw-panel::-webkit-scrollbar { width: 6px; }
body.skin-vector-legacy #mw-panel::-webkit-scrollbar-track { background: #ffe6f0; }
body.skin-vector-legacy #mw-panel::-webkit-scrollbar-thumb { background: var(--cora-vl-accent); border-radius: 3px; }
body.skin-vector-legacy #mw-panel::-webkit-scrollbar-thumb:hover { background: var(--cora-vl-primary); }

/* Content spacing (desktop) */
@media (min-width: 1025px) {
  body.skin-vector-legacy #content,
  body.skin-vector-legacy .mw-body { margin-left: 220px; }
}

/* Responsiveness */
@media (max-width: 1024px) {
  body.skin-vector-legacy #content,
  body.skin-vector-legacy .mw-body { margin-left: 190px; }
}

/* Mobile hamburger menu button */
.mobile-hamburger-menu {
  display: none;
  position: fixed;
  top: 20px;
  left: 20px;
  z-index: 1002;
  width: 50px;
  height: 50px;
  background: linear-gradient(135deg, var(--cora-vl-primary), var(--cora-vl-accent));
  border: none;
  border-radius: var(--cora-vl-radius);
  cursor: pointer;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 4px;
  box-shadow: var(--cora-vl-shadow);
  transition: transform .3s ease, box-shadow .3s ease;
  padding: 0;
}

.mobile-hamburger-menu:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 30px rgba(255, 107, 157, 0.3);
}

.mobile-hamburger-menu span {
  display: block;
  width: 25px;
  height: 3px;
  background: white;
  border-radius: 2px;
  transition: transform .3s ease, opacity .3s ease;
  transform-origin: center;
}

.mobile-hamburger-menu.active span:nth-child(1) {
  transform: rotate(45deg) translate(6px, 6px);
}

.mobile-hamburger-menu.active span:nth-child(2) {
  opacity: 0;
}

.mobile-hamburger-menu.active span:nth-child(3) {
  transform: rotate(-45deg) translate(6px, -6px);
}

@media (max-width: 768px) {
  /* Show hamburger menu on mobile */
  .mobile-hamburger-menu {
    display: flex;
  }
  
  /* Sidebar mobile behavior */
  body.skin-vector-legacy #mw-panel { 
    transform: translateX(-100%); 
    transition: transform .3s ease; 
    position: fixed; 
    z-index: 1000;
    height: 100vh;
    width: 220px;
    overflow-y: auto;
    overflow-x: hidden;
  }
  body.skin-vector-legacy #mw-panel.mobile-open { transform: translateX(0); }
  body.skin-vector-legacy #content,
  body.skin-vector-legacy .mw-body { margin-left: 0; }
  
  /* Add overlay when sidebar is open */
  body.sidebar-open::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 999;
    opacity: 1;
    transition: opacity .3s ease;
  }

  /* Sidebar peek tab with image (Vector Legacy only) */
  body.skin-vector-legacy #p-logo { position: absolute; top: 12px; left: calc(100% + 12px); margin: 0; z-index: 1001; }
  body.skin-vector-legacy #p-logo a {
    width: 56px; height: 56px; padding: 0; display: block;
    border-radius: var(--cora-vl-radius-sm);
    /* Keep any existing wiki logo background-image */
    background-color: var(--cora-vl-bg-2);
    background-repeat: no-repeat; background-position: center; background-size: contain;
    border: 1px solid var(--cora-vl-border-2);
    box-shadow: 0 8px 20px rgba(255, 107, 157, 0.22);
  }
  /* When sidebar is opened, return the logo to the panel */
  body.skin-vector-legacy #mw-panel.mobile-open #p-logo { position: relative; left: auto; top: auto; margin: 0 var(--cora-vl-space-md) var(--cora-vl-space-lg); }
  body.skin-vector-legacy #mw-panel.mobile-open #p-logo a {
    width: auto; height: auto; padding: var(--cora-vl-space-md);
    background-size: contain; /* Still show the image nicely inside */
  }
}

/* High contrast fallback */
@media (prefers-contrast: more) {
  body.skin-vector-legacy #mw-panel .vector-menu-content a:hover { text-decoration: underline; }
}


/* ========================================
   VECTOR LEGACY 2010 HEADER TABS POLISH
   Targets: Page/Discussion + Read/Edit/View history/More
   ======================================== */

/* Variables for header buttons */
:root {
  --cora-hd-radius: 10px;
  --cora-hd-shadow: 0 2px 8px rgba(0,0,0,0.05);
  --cora-hd-shadow-hover: 0 8px 30px rgba(255, 107, 157, 0.3);
  --cora-hd-border: rgba(255, 107, 157, 0.22);
  --cora-hd-grad: linear-gradient(135deg, #ff6b9d 0%, #ffc3e0 100%);
}

/* Base button look for tabs (Vector Legacy 2010 ONLY) */
body.skin-vector-legacy #p-namespaces li a,
body.skin-vector-legacy #p-views li a,
body.skin-vector-legacy #p-cactions li a {
  display: inline-block !important;
  padding: 8px 12px !important;
  margin: 4px 6px 0 0 !important;
  border-radius: var(--cora-hd-radius) !important;
  background: rgba(255,255,255,0.92) !important;
  color: var(--primary-pink, #ff6b9d) !important;
  border: 2px solid transparent !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  box-shadow: var(--cora-hd-shadow) !important;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease !important;
}

/* Hover state */
body.skin-vector-legacy #p-namespaces li a:hover,
body.skin-vector-legacy #p-views li a:hover,
body.skin-vector-legacy #p-cactions li a:hover {
  transform: translateY(-2px) !important;
  color: var(--dark-pink, #d63384) !important;
  border-color: var(--cora-hd-border) !important;
  box-shadow: var(--cora-hd-shadow-hover) !important;
}

/* Active/selected state */
body.skin-vector-legacy #p-namespaces li.selected a,
body.skin-vector-legacy #p-views li.selected a,
body.skin-vector-legacy #p-cactions li.selected a {
  background: var(--cora-hd-grad) !important;
  color: #fff !important;
  border-color: transparent !important;
  box-shadow: var(--cora-hd-shadow-hover) !important;
}

/* "More" dropdown trigger to match the tabs */
body.skin-vector-legacy #p-cactions .vector-menu-heading {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 8px 12px !important;
  margin: 4px 6px 0 0 !important;
  border-radius: var(--cora-hd-radius) !important;
  background: rgba(255,255,255,0.92) !important;
  color: var(--primary-pink, #ff6b9d) !important;
  border: 2px solid transparent !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  box-shadow: var(--cora-hd-shadow) !important;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease !important;
}
body.skin-vector-legacy #p-cactions .vector-menu-heading:hover {
  transform: translateY(-2px) !important;
  color: var(--dark-pink, #d63384) !important;
  border-color: var(--cora-hd-border) !important;
  box-shadow: var(--cora-hd-shadow-hover) !important;
}

/* Watch star (favorite) - Vector Legacy 2010 */
body.skin-vector-legacy #ca-watch a,
body.skin-vector-legacy #ca-unwatch a {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 6px 10px !important;
  margin: 4px 6px 0 0 !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,0.92) !important;
  color: var(--primary-pink, #ff6b9d) !important;
  border: 2px solid transparent !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  box-shadow: var(--cora-hd-shadow) !important;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease !important;
}
body.skin-vector-legacy #ca-watch a:hover,
body.skin-vector-legacy #ca-unwatch a:hover {
  transform: translateY(-2px) !important;
  color: #fff !important;
  background: var(--cora-hd-grad) !important;
  box-shadow: var(--cora-hd-shadow-hover) !important;
}

/* Compact layout for smaller screens */
@media (max-width: 840px) {
  body.skin-vector-legacy #p-namespaces li a,
  body.skin-vector-legacy #p-views li a,
  body.skin-vector-legacy #p-cactions li a {
    padding: 6px 10px !important;
    margin: 3px 4px 0 0 !important;
    font-size: 0.95em !important;
  }
}

/* Vector Legacy specific content spacing */
body.skin-vector-legacy #content,
body.skin-vector-legacy .mw-body {
  padding: 1.25em;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

/* Vector Legacy specific responsive adjustments */
@media (max-width: 768px) {
  body.skin-vector-legacy #content,
  body.skin-vector-legacy .mw-body {
    padding: 1em;
    margin-top: 1em;
  }
}

.ve-ui-surface, .ve-init-target {
  all: unset !important; 
}