MediaWiki:Common.css: Difference between revisions

From UO Renaissance Wiki
Jump to navigation Jump to search
Reposition scroll to top button outside main box and above navbar
Position scroll to top button next to main container and above navbar
 
(One intermediate revision by the same user not shown)
Line 363: Line 363:
/* Floating Scroll to Top Arrow Button */
/* Floating Scroll to Top Arrow Button */
.uor-scroll-top-btn {
.uor-scroll-top-btn {
   position: fixed;
   position: fixed !important;
   bottom: 54px;
   bottom: 60px !important;
  right: 28px;
   width: 44px !important;
   width: 44px;
   height: 44px !important;
   height: 44px;
   background: linear-gradient(135deg, rgba(32, 24, 15, 0.95), rgba(16, 12, 7, 0.98)) !important;
   background: linear-gradient(135deg, rgba(32, 24, 15, 0.94), rgba(16, 12, 7, 0.98));
   border: 2px solid #d4af37 !important;
   border: 1.5px solid #d4af37;
   border-radius: 50% !important;
   border-radius: 50%;
   color: #ffd700 !important;
   color: #ffd700;
   display: flex !important;
   display: flex;
   align-items: center !important;
   align-items: center;
   justify-content: center !important;
   justify-content: center;
   cursor: pointer !important;
   cursor: pointer;
   z-index: 100000 !important;
   z-index: 9999;
   box-shadow: 0 4px 18px rgba(0, 0, 0, 0.85), 0 0 12px rgba(212, 175, 55, 0.4) !important;
   box-shadow: 0 4px 16px rgba(0, 0, 0, 0.8), 0 0 10px rgba(212, 175, 55, 0.35);
   opacity: 0;
   opacity: 0;
   visibility: hidden;
   visibility: hidden;
   transform: translateY(14px) scale(0.9);
   transform: translateY(12px) scale(0.9);
   transition: opacity 0.28s ease, transform 0.28s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.28s, background 0.2s, box-shadow 0.2s, border-color 0.2s, left 0.15s ease;
   transition: opacity 0.25s ease, transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.25s, background 0.2s, box-shadow 0.2s, border-color 0.2s;
   user-select: none;
   user-select: none !important;
   text-decoration: none !important;
   text-decoration: none !important;
   outline: none;
   outline: none !important;
}
}


.uor-scroll-top-btn.is-visible {
.uor-scroll-top-btn.is-visible {
   opacity: 1;
   opacity: 1 !important;
   visibility: visible;
   visibility: visible !important;
   transform: translateY(0) scale(1);
   transform: translateY(0) scale(1) !important;
}
}


.uor-scroll-top-btn:hover {
.uor-scroll-top-btn:hover {
   background: linear-gradient(135deg, rgba(48, 36, 20, 0.98), rgba(24, 18, 10, 0.99));
   background: linear-gradient(135deg, rgba(52, 38, 22, 0.99), rgba(26, 19, 11, 1)) !important;
   border-color: #ffdf6a;
   border-color: #ffdf6a !important;
   color: #ffffff;
   color: #ffffff !important;
   transform: translateY(-3px) scale(1.08);
   transform: translateY(-3px) scale(1.08) !important;
   box-shadow: 0 6px 20px rgba(0, 0, 0, 0.85), 0 0 18px rgba(255, 215, 0, 0.65);
   box-shadow: 0 6px 22px rgba(0, 0, 0, 0.95), 0 0 20px rgba(255, 215, 0, 0.7) !important;
}
}


.uor-scroll-top-btn:active {
.uor-scroll-top-btn:active {
   transform: translateY(0) scale(0.95);
   transform: translateY(0) scale(0.95) !important;
   box-shadow: 0 2px 10px rgba(0, 0, 0, 0.6);
   box-shadow: 0 2px 10px rgba(0, 0, 0, 0.7) !important;
}
}


.uor-scroll-top-btn svg {
.uor-scroll-top-btn svg {
   width: 22px;
   width: 22px !important;
   height: 22px;
   height: 22px !important;
   fill: currentColor;
   fill: currentColor !important;
   filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.8));
   filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.9)) !important;
   transition: transform 0.2s ease;
   display: block !important;
}
  pointer-events: none !important;
 
.uor-scroll-top-btn:hover svg {
  transform: translateY(-2px);
}
}


@media (max-width: 768px) {
@media (max-width: 768px) {
   .uor-scroll-top-btn {
   .uor-scroll-top-btn {
     bottom: 50px !important;
     bottom: 56px !important;
     right: 16px !important;
     width: 40px !important;
     left: auto !important;
     height: 40px !important;
    width: 40px;
    height: 40px;
   }
   }
   .uor-scroll-top-btn svg {
   .uor-scroll-top-btn svg {
     width: 18px;
     width: 18px !important;
     height: 18px;
     height: 18px !important;
   }
   }
}
}

Latest revision as of 18:28, 9 September 2026

/* UO:Renaissance Wiki - Global Theme Enhancements */

/* Spell Card Image Sizing & High-Resolution Pixel Art */
.uor-spell-card td.uor-spell-art {
  width: 120px !important;
  max-width: 120px !important;
  text-align: center !important;
  vertical-align: middle !important;
  padding: 12px !important;
}

.uor-spell-card td.uor-spell-art img {
  width: 88px !important;
  max-width: 88px !important;
  height: 88px !important;
  border-radius: 4px;
  border: 1px solid #1a150e;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.7);
  image-rendering: pixelated;
  image-rendering: -moz-crisp-edges;
  image-rendering: crisp-edges;
  display: inline-block;
  margin: 0 auto;
}

/* Fallback for table image sizing across wiki content */
.mw-body-content table td img {
  max-height: 180px;
}
/* Responsive container and horizontal scrolling for data tables */
.table-responsive {
  width: 100% !important;
  overflow-x: auto !important;
  -webkit-overflow-scrolling: touch !important;
  margin: 16px 0 24px 0 !important;
  display: block !important;
}

/* Bulk Order Matrix Table Enhancements */
.bod-matrix-table {
  width: 100% !important;
  border-collapse: collapse !important;
  font-size: 0.88rem !important;
}

.bod-matrix-table th {
  white-space: nowrap !important;
  padding: 8px 10px !important;
  font-size: 0.84rem !important;
  letter-spacing: 0.03em !important;
}

.bod-matrix-table td {
  padding: 6px 10px !important;
  white-space: nowrap !important;
  vertical-align: middle !important;
}

.bod-matrix-table td.num {
  font-family: 'Consolas', 'Courier New', monospace !important;
  font-size: 0.88rem !important;
  text-align: right !important;
}

.bod-matrix-table tr.tier-divider td {
  border-bottom: 2px solid rgba(212, 175, 55, 0.45) !important;
}

.bod-matrix-table tr:hover td {
  background: rgba(212, 175, 55, 0.1) !important;
}

/* Sidebar Hover Flyout Submenus */
#mw-panel {
  z-index: 100 !important;
}
#mw-panel,
#mw-panel .portal,
#mw-panel .vector-menu-portal,
#mw-panel .vector-menu-content,
#mw-panel .vector-menu-content-list {
  overflow: visible !important;
}

#mw-panel .portal ul li.uor-sidebar-has-submenu {
  position: relative !important;
}

#mw-panel .portal ul li.uor-sidebar-has-submenu > a {
  display: flex !important;
  align-items: center !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

#mw-panel .portal ul li.uor-sidebar-has-submenu > a .uor-submenu-arrow {
  margin-left: auto !important;
  font-size: 0.78rem !important;
  color: var(--gold-dark, #a38237) !important;
  transition: transform 0.2s ease, color 0.2s ease !important;
  padding-left: 6px !important;
  display: inline-block !important;
  cursor: pointer !important;
}

#mw-panel .portal ul li.uor-sidebar-has-submenu:hover > a .uor-submenu-arrow,
#mw-panel .portal ul li.uor-sidebar-has-submenu.is-open > a .uor-submenu-arrow {
  color: var(--gold-bright, #ffd700) !important;
  transform: translateX(2px) !important;
}

.uor-sidebar-submenu {
  display: none !important;
  position: absolute !important;
  left: calc(100% + 8px) !important;
  top: -6px !important;
  min-width: 185px !important;
  background: rgba(14, 10, 6, 0.98) !important;
  border: 1px solid rgba(212, 175, 55, 0.55) !important;
  border-radius: 6px !important;
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.9), 0 0 12px rgba(212, 175, 55, 0.25) !important;
  padding: 6px 0 !important;
  list-style: none !important;
  margin: 0 !important;
  z-index: 1050 !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
}

/* Hover bridge buffer so cursor doesn't lose hover across gap */
.uor-sidebar-submenu::before {
  content: '' !important;
  position: absolute !important;
  left: -14px !important;
  top: 0 !important;
  bottom: 0 !important;
  width: 16px !important;
  background: transparent !important;
}

#mw-panel .portal ul li.uor-sidebar-has-submenu:hover > .uor-sidebar-submenu,
#mw-panel .portal ul li.uor-sidebar-has-submenu:focus-within > .uor-sidebar-submenu,
#mw-panel .portal ul li.uor-sidebar-has-submenu.is-open > .uor-sidebar-submenu {
  display: block !important;
  animation: uorSubmenuFade 0.16s cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
}

@keyframes uorSubmenuFade {
  from {
    opacity: 0;
    transform: translateX(-4px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.uor-sidebar-submenu li {
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
  line-height: 1.25 !important;
}

.uor-sidebar-submenu li a {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 7px 14px !important;
  color: var(--text-parchment, #e0d5ba) !important;
  font-family: 'Cardo', Georgia, serif !important;
  font-size: 0.90rem !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease !important;
}

.uor-sidebar-submenu li a::before {
  content: '▪';
  color: var(--gold-dark, #a38237);
  font-size: 0.68rem;
  line-height: 1;
  transition: color 0.15s ease;
}

.uor-sidebar-submenu li a:hover,
.uor-sidebar-submenu li a:focus {
  background: rgba(212, 175, 55, 0.20) !important;
  color: var(--gold-bright, #ffd700) !important;
  transform: translateX(3px) !important;
  text-decoration: none !important;
}

.uor-sidebar-submenu li a:hover::before {
  color: var(--gold-bright, #ffd700);
}

/* Factions 2x2 Strongholds Grid */
.factions-strongholds-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 22px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  margin: 25px 0 !important;
}

@media (max-width: 768px) {
  .factions-strongholds-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
}


/* Hide page title heading on Main Page */
body.page-Main_Page #firstHeading,
body.rootpage-Main_Page #firstHeading,
body.page-Main_Page #siteSub,
body.rootpage-Main_Page #siteSub,
body.page-Main_Page #contentSub,
body.rootpage-Main_Page #contentSub,
body.page-Main_Page #jump-to-nav,
body.rootpage-Main_Page #jump-to-nav {
  display: none !important;
}


/* UO:Renaissance Carousel Styles */
.uor-carousel { position: relative; max-width: 680px; margin: 0 auto; aspect-ratio: 935 / 619; }
.uor-frame { position: relative; width: 100%; height: 100%; }
.uor-back {
  position: absolute !important;
  top: 22.5% !important;
  right: 15.5% !important;
  bottom: 10.5% !important;
  left: 15.5% !important;
  background: #000000 !important;
  overflow: hidden !important;
  border-radius: 0 !important;
  z-index: 1 !important;
}
.uor-layer {
  position: absolute !important;
  inset: 0 !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  display: block;
  opacity: 0;
  pointer-events: none;
  background: transparent;
  transform: translateY(6px) scale(.985);
  transition: opacity .6s ease, transform .6s cubic-bezier(.22,.61,.36,1);
  will-change: opacity, transform;
  z-index: 1;
}
.uor-layer.is-active { opacity: 1; pointer-events: auto; transform: translateY(0) scale(1); }
.uor-layer img.uor-photo { width: 100%; height: 100%; object-fit: cover; object-position: center; border: none !important; }
.uor-frameimg {
  display: block; width: 100%; height: 100%; position: relative; z-index: 2; pointer-events: none;
  filter: drop-shadow(0 3px 8px rgba(0,0,0,.5));
}
.uor-captions { max-width: 680px; margin: 14px auto 0; padding: 0 8px; text-align: center; }
.uor-cap {
  display: none; text-decoration: none; color: #f5e6c8 !important; font-weight: bold; line-height: 1.3;
  text-shadow: 0 1px 2px rgba(0,0,0,.85); opacity: 0; transform: translateY(4px);
  transition: opacity .5s ease, transform .5s ease; font-size: 1.3rem; font-family: 'Cinzel Decorative', serif;
}
.uor-cap.is-active { display: inline-block; opacity: 1; transform: translateY(0); }
.uor-dots { display: flex; gap: 6px; justify-content: center; margin: 12px 0 0; }
.uor-dot {
  width: 8px; height: 8px; border-radius: 999px; background: #2b5f2b; border: 1px solid #d4af37;
  cursor: pointer; transition: width .25s ease, background .25s ease;
}
.uor-dot.active { background: #d4af37; width: 18px; }


/* Move content up to top of container on Main Page and remove padding */
body.page-Main_Page .mw-body,
body.rootpage-Main_Page .mw-body {
  padding-top: 18px !important;
}
body.page-Main_Page #bodyContent,
body.rootpage-Main_Page #bodyContent,
body.page-Main_Page #mw-content-text,
body.rootpage-Main_Page #mw-content-text {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
body.page-Main_Page .uor-main-hero {
  border: none !important;
  background: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 auto 16px auto !important;
}


/* ============================================================
   MAIN PAGE TOP FIT - REMOVE ALL EXCESS TOP PADDING & MARGINS
   ============================================================ */
body.page-Main_Page .mw-body,
body.rootpage-Main_Page .mw-body {
  padding-top: 2px !important;
}

body.page-Main_Page #siteNotice,
body.page-Main_Page #localNotice,
body.page-Main_Page .mw-indicators,
body.page-Main_Page #firstHeading,
body.page-Main_Page #siteSub,
body.page-Main_Page #contentSub,
body.page-Main_Page #contentSub2,
body.page-Main_Page #jump-to-nav,
body.page-Main_Page .mw-jump-link {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  height: 0 !important;
  line-height: 0 !important;
  border: none !important;
}

body.page-Main_Page #bodyContent,
body.page-Main_Page #mw-content-text,
body.page-Main_Page .mw-parser-output {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body.page-Main_Page .mw-parser-output > p:empty,
body.page-Main_Page .mw-parser-output > p.mw-empty-elt {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
  height: 0 !important;
}

body.page-Main_Page .uor-main-hero {
  border: none !important;
  background: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 auto 4px auto !important;
}

body.page-Main_Page .uor-main-hero > div:first-child {
  margin: 0 0 2px 0 !important;
  padding: 0 !important;
  line-height: 1.05 !important;
}

body.page-Main_Page .uor-carousel-block {
  margin-top: 0 !important;
}
#left-navigation, #p-namespaces, #p-associated-pages { display: none !important; }

/* Floating Scroll to Top Arrow Button */
.uor-scroll-top-btn {
  position: fixed !important;
  bottom: 60px !important;
  width: 44px !important;
  height: 44px !important;
  background: linear-gradient(135deg, rgba(32, 24, 15, 0.95), rgba(16, 12, 7, 0.98)) !important;
  border: 2px solid #d4af37 !important;
  border-radius: 50% !important;
  color: #ffd700 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  z-index: 100000 !important;
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.85), 0 0 12px rgba(212, 175, 55, 0.4) !important;
  opacity: 0;
  visibility: hidden;
  transform: translateY(12px) scale(0.9);
  transition: opacity 0.25s ease, transform 0.25s cubic-bezier(0.16, 1, 0.3, 1), visibility 0.25s, background 0.2s, box-shadow 0.2s, border-color 0.2s;
  user-select: none !important;
  text-decoration: none !important;
  outline: none !important;
}

.uor-scroll-top-btn.is-visible {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateY(0) scale(1) !important;
}

.uor-scroll-top-btn:hover {
  background: linear-gradient(135deg, rgba(52, 38, 22, 0.99), rgba(26, 19, 11, 1)) !important;
  border-color: #ffdf6a !important;
  color: #ffffff !important;
  transform: translateY(-3px) scale(1.08) !important;
  box-shadow: 0 6px 22px rgba(0, 0, 0, 0.95), 0 0 20px rgba(255, 215, 0, 0.7) !important;
}

.uor-scroll-top-btn:active {
  transform: translateY(0) scale(0.95) !important;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.7) !important;
}

.uor-scroll-top-btn svg {
  width: 22px !important;
  height: 22px !important;
  fill: currentColor !important;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.9)) !important;
  display: block !important;
  pointer-events: none !important;
}

@media (max-width: 768px) {
  .uor-scroll-top-btn {
    bottom: 56px !important;
    width: 40px !important;
    height: 40px !important;
  }
  .uor-scroll-top-btn svg {
    width: 18px !important;
    height: 18px !important;
  }
}