From 2a70e23c6bc203757365c2623c835416c2f6134a Mon Sep 17 00:00:00 2001 From: M_Viper Date: Sun, 29 Mar 2026 20:28:25 +0000 Subject: [PATCH] Upload via Git Manager GUI - style.css --- Minecraft-Modern-Theme/style.css | 653 ++++++++++++++++++++++++++----- 1 file changed, 552 insertions(+), 101 deletions(-) diff --git a/Minecraft-Modern-Theme/style.css b/Minecraft-Modern-Theme/style.css index adbec16..527c989 100644 --- a/Minecraft-Modern-Theme/style.css +++ b/Minecraft-Modern-Theme/style.css @@ -4,7 +4,7 @@ Theme URI: https://git.viper.ipv64.net/M_Viper/Minecraft-Modern-Theme Author: M_Viper Description: Ein modernes Gaming-Theme mit konfigurierbarem Header-Slider. Author URI: https://M-Viper.de -Version: 2.0 +Version: 2.1 License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Text Domain: minecraft-modern-theme @@ -77,12 +77,47 @@ a:hover { color: #fff; } position: sticky; top: 0; z-index: 1000; - transition: background-color 0.3s ease, box-shadow 0.3s ease; + overflow: clip; + transition: background-color 0.3s ease, box-shadow 0.3s ease, padding 0.28s ease; } .site-header.scrolled { background-color: var(--header-scrolled-bg); box-shadow: 0 2px 15px rgba(0,0,0,0.3); } +.site-header.header-compact { + padding-top: 14px; + padding-bottom: 14px; +} + +.site-header .header-row-branding, +.site-header .header-main > .site-branding, +.site-header .header-main > .header-info { + transform-origin: top center; + transition: transform 0.28s ease, opacity 0.22s ease, max-height 0.28s ease, padding 0.28s ease, border-color 0.28s ease; +} + +.site-header .header-row-branding { + max-height: 180px; + overflow: hidden; +} + +.site-header .header-row-branding.branding-hidden, +.site-header.header-compact .header-row-branding { + max-height: 0; + padding-top: 0; + padding-bottom: 0; + border-bottom-color: transparent; + opacity: 0; + transform: translateY(calc(-100% - 12px)); + pointer-events: none; +} + +.site-header.header-compact .header-main > .site-branding, +.site-header.header-compact .header-main > .header-info { + opacity: 0; + transform: translateY(calc(-100% - 12px)); + pointer-events: none; +} .header-main { display: flex; @@ -1444,19 +1479,35 @@ html.light-mode .homepage-sidebar .widget-title { color: var(--primary-accent, # NAVIGATION – Submenu Toggle Button --------------------------------------------------------------- */ +/* Desktop (Classic/Centered/Mega): komplett versteckt – CSS :hover öffnet Dropdowns */ .submenu-toggle { - background: none; - border: none; - cursor: pointer; - color: inherit; - padding: 4px 8px; - line-height: 1; - vertical-align: middle; + display: none !important; } .submenu-toggle i { - transition: transform 0.2s ease; + transition: transform 0.25s ease; font-size: 0.75rem; } +/* Mobil: einblenden */ +@media (max-width: 992px) { + .submenu-toggle { + display: flex !important; + align-items: center; + justify-content: center; + flex-shrink: 0; + width: 44px; + background: none; + border: none; + cursor: pointer; + color: var(--text-muted, #a0a0a0); + padding: 0; + } + /* ::after-Pfeil auf Mobil ausblenden – JS-Button übernimmt */ + .menu-item-has-children > a::after { display: none !important; } + /*
  • als Flex-Zeile damit Button neben Link sitzt */ + .primary-menu > li { display: flex; flex-wrap: wrap; align-items: stretch; } + .primary-menu > li > a { flex: 1; } + .menu-item.active > .submenu-toggle i { transform: rotate(180deg); } +} /* --------------------------------------------------------------- @@ -2823,8 +2874,12 @@ body:has(.team-archive-container) .content-area { } .header-sidebar .primary-menu > li { border-bottom: 1px solid rgba(255,255,255,0.04); + position: relative; + display: flex; + align-items: stretch; } .header-sidebar .primary-menu > li > a { + flex: 1; display: flex; align-items: center; padding: 13px 24px; @@ -2833,56 +2888,122 @@ body:has(.team-archive-container) .content-area { font-size: 0.95rem; text-decoration: none; letter-spacing: 0.02em; - transition: background 0.2s, color 0.2s, padding-left 0.2s; - position: relative; -} -.header-sidebar .primary-menu > li > a::before { - content: none; + transition: color 0.2s, padding-left 0.2s; } +.header-sidebar .primary-menu > li > a::before { content: none; } +.header-sidebar .primary-menu > li > a::after { content: none !important; display: none !important; } .header-sidebar .primary-menu > li > a:hover { - background: none; color: var(--primary-accent, #00d4ff) !important; padding-left: 30px; } - .header-sidebar .primary-menu > li.current-menu-item > a { - background: none; color: var(--primary-accent, #00d4ff) !important; } - -/* Sub-Menü im Sidebar */ -.header-sidebar .sub-menu { - position: static !important; - opacity: 1 !important; - visibility: visible !important; - transform: none !important; - box-shadow: none !important; - background: rgba(0,0,0,0.2); +/* Chevron-Button rechts in der Zeile */ +.header-sidebar .submenu-toggle { + display: flex !important; + align-items: center; + justify-content: center; + flex-shrink: 0; + width: 32px; + background: none; border: none; - padding: 6px 0; - min-width: auto; - border-top: none; + cursor: pointer; + color: var(--text-muted, #a0a0a0); + transition: color 0.2s; + padding: 0; + margin-right: 8px; } +.header-sidebar .submenu-toggle:hover { + color: var(--primary-accent, #00d4ff); + background: none; +} +.header-sidebar .submenu-toggle i { + font-size: 0.7rem; + transition: transform 0.25s ease; + pointer-events: none; + transform: rotate(-90deg); +} +.header-sidebar .menu-item.active > .submenu-toggle i { + transform: rotate(90deg); +} + +/* ── FLYOUT-PANEL: erscheint rechts neben der Sidebar ── */ +.header-sidebar .sub-menu { + position: fixed !important; + left: 300px !important; + top: 0; /* wird per JS beim ersten Hover gesetzt */ + width: 220px; + min-width: 0 !important; + display: none !important; + opacity: 1; + transform: none; + + background: var(--surface-color, #1e2029); + border: 1px solid var(--border-color, #333); + border-left: 3px solid var(--primary-accent, #00d4ff); + border-radius: 0 6px 6px 0; + box-shadow: 6px 4px 20px rgba(0,0,0,0.5); + padding: 6px 0; + z-index: 3000; + list-style: none; + margin: 0; +} + +/* Öffnen per Hover auf dem
  • ODER per .flyout-open (JS setzt wenn Maus auf Panel) */ +.header-sidebar .primary-menu > li.menu-item-has-children:hover > .sub-menu, +.header-sidebar .primary-menu > li.menu-item-has-children.flyout-open > .sub-menu, +.header-sidebar .sub-menu:hover { + display: block !important; +} + +/* Unsichtbare Brücke rechts vom
  • : überbrückt die Lücke zur Panel. + pointer-events:auto = zählt als Hover-Fläche des
  • */ +.header-sidebar .primary-menu > li.menu-item-has-children { + position: relative; +} +.header-sidebar .primary-menu > li.menu-item-has-children::after { + content: ''; + position: absolute; + top: 0; + right: -20px; /* 20px rechts vom li-Rand */ + width: 20px; + height: 100%; + background: transparent; + pointer-events: auto; +} + +/* Aufklappen per .active (Klick-Toggle) */ +.header-sidebar .menu-item.active > .sub-menu { + display: block !important; +} + +/* Links im Flyout */ +.header-sidebar .sub-menu li { display: block; width: 100%; } .header-sidebar .sub-menu li a { - padding: 9px 24px 9px 36px !important; + display: flex !important; + align-items: center; + gap: 8px; + padding: 10px 18px !important; font-size: 0.88rem !important; color: var(--text-muted, #a0a0a0) !important; font-weight: 500 !important; - display: flex; - align-items: center; - gap: 8px; + text-decoration: none; + white-space: nowrap; + transition: color 0.2s, background 0.2s, padding-left 0.2s; } .header-sidebar .sub-menu li a::before { content: '›'; color: var(--primary-accent, #00d4ff); font-size: 1rem; - line-height: 1; + flex-shrink: 0; } +.header-sidebar .sub-menu li a::after { content: none !important; } .header-sidebar .sub-menu li a:hover { color: var(--primary-accent, #00d4ff) !important; - background: rgba(0,212,255,0.06) !important; - padding-left: 42px !important; + background: rgba(0,212,255,0.08) !important; + padding-left: 24px !important; } /* Icons (Suche + Social) im Sidebar */ @@ -3019,41 +3140,57 @@ html.light-mode .sidebar-menu-toggle { background: rgba(0,0,0,0.05); border-colo LAYOUT 4: MEGA-MENÜ Breite Dropdown-Panels mit Spalten ----------------------------------------------------------------------- */ +.site-header--mega .mega-nav .primary-menu > li { + position: relative; /* Sub-menu ankert am jeweiligen li */ +} .site-header--mega .mega-nav .sub-menu { display: none; - position: fixed; + position: absolute; left: 0; - right: 0; top: 100%; + min-width: 220px; + width: max-content; + max-width: 600px; background: var(--surface-color, #1e2029); - border-top: 2px solid var(--primary-accent, #00d4ff); - border-bottom: 1px solid var(--border-color); - padding: 30px 40px; - columns: 4; - column-gap: 30px; - z-index: 900; - box-shadow: 0 8px 30px rgba(0,0,0,0.3); + border-top: 3px solid var(--primary-accent, #00d4ff); + border: 1px solid var(--border-color, #333); + border-top: 3px solid var(--primary-accent, #00d4ff); + padding: 10px 0; + z-index: 9000; + box-shadow: 0 12px 40px rgba(0,0,0,0.45); list-style: none; margin: 0; + box-sizing: border-box; + border-radius: 0 0 8px 8px; + /* Für viele Items: Grid-Spalten */ + display: none; } -.site-header--mega .mega-nav > li:hover > .sub-menu, -.site-header--mega .mega-nav > li:focus-within > .sub-menu { - display: block; +.site-header--mega .mega-nav .primary-menu > li:hover > .sub-menu, +.site-header--mega .mega-nav .primary-menu > li:focus-within > .sub-menu { + display: block !important; + opacity: 1 !important; + visibility: visible !important; + transform: none !important; } .site-header--mega .mega-nav .sub-menu li { - break-inside: avoid; - margin-bottom: 8px; + display: block; + width: 100%; } .site-header--mega .mega-nav .sub-menu a { display: flex; align-items: center; - gap: 8px; - padding: 6px 10px; - border-radius: 4px; + gap: 10px; + padding: 10px 20px; color: var(--text-color); font-weight: 500; font-size: 0.9rem; - transition: background 0.15s, color 0.15s; + text-decoration: none; + white-space: nowrap; + transition: background 0.15s, color 0.15s, padding-left 0.15s; + border-bottom: 1px solid rgba(255,255,255,0.04); +} +.site-header--mega .mega-nav .sub-menu li:last-child a { + border-bottom: none; } .site-header--mega .mega-nav .sub-menu a::before { content: ''; @@ -3062,14 +3199,59 @@ html.light-mode .sidebar-menu-toggle { background: rgba(0,0,0,0.05); border-colo border-radius: 50%; background: var(--primary-accent, #00d4ff); flex-shrink: 0; + opacity: 0.6; + transition: opacity 0.15s; +} +.site-header--mega .mega-nav .sub-menu a::after { + content: none !important; } .site-header--mega .mega-nav .sub-menu a:hover { background: rgba(0,212,255,0.1); color: var(--primary-accent, #00d4ff); + padding-left: 26px; +} +.site-header--mega .mega-nav .sub-menu a:hover::before { + opacity: 1; +} + +.site-header--mega .mega-nav .sub-menu li { + break-inside: avoid; +} +.site-header--mega .mega-nav .sub-menu a { + display: flex; + align-items: center; + gap: 10px; + padding: 9px 14px; + border-radius: 6px; + color: var(--text-color); + font-weight: 500; + font-size: 0.9rem; + text-decoration: none; + transition: background 0.15s, color 0.15s, padding-left 0.15s; + white-space: nowrap; +} +.site-header--mega .mega-nav .sub-menu a::before { + content: ''; + width: 6px; + height: 6px; + border-radius: 50%; + background: var(--primary-accent, #00d4ff); + flex-shrink: 0; + opacity: 0.7; + transition: opacity 0.15s, transform 0.15s; +} +.site-header--mega .mega-nav .sub-menu a:hover { + background: rgba(0,212,255,0.1); + color: var(--primary-accent, #00d4ff); + padding-left: 18px; +} +.site-header--mega .mega-nav .sub-menu a:hover::before { + opacity: 1; + transform: scale(1.3); } /* Mega-Menü Overlay */ -.site-header--mega .mega-nav > li:hover::after { +.site-header--mega .mega-nav .primary-menu > li:hover::after { content: ''; position: fixed; inset: 0; @@ -3082,10 +3264,7 @@ html.light-mode .header-sidebar { background: var(--surface-color); border-right-color: var(--primary-accent); } -html.light-mode .site-header--mega .mega-nav .sub-menu { - background: var(--surface-color); - border-color: var(--primary-accent); -} +html.light-mode /* FIX: Kein horizontaler Overflow – NUR auf body, NICHT auf html! overflow-x auf html verschiebt die gesamte Seite nach links */ @@ -3162,26 +3341,8 @@ body { } /* Untermenüs */ -.site-header--mega .mega-nav .sub-menu { - position: absolute; - left: 0; - right: 0; - top: 100%; - display: none; - background: var(--surface-color, #1e2029); - border-top: 2px solid var(--primary-accent, #00d4ff); - padding: 24px 40px; - columns: 4; - column-gap: 30px; - z-index: 900; - box-shadow: 0 8px 30px rgba(0,0,0,0.3); - list-style: none; - margin: 0; -} -.site-header--mega .mega-nav > li:hover > .sub-menu, -.site-header--mega .mega-nav > li:focus-within > .sub-menu { - display: block; -} + + .site-header--mega .mega-nav .sub-menu a { display: block; padding: 7px 10px; @@ -3408,6 +3569,7 @@ body.has-announcement .header-sidebar { .header-mega-nav-bar { background: rgba(0,0,0,0.25); border-bottom: 2px solid var(--primary-accent, #00d4ff); + position: relative; } .site-header--mega .mega-nav { @@ -3462,26 +3624,8 @@ body.has-announcement .header-sidebar { } /* Untermenüs */ -.site-header--mega .mega-nav .sub-menu { - position: absolute; - left: 0; - right: 0; - top: 100%; - display: none; - background: var(--surface-color, #1e2029); - border-top: 2px solid var(--primary-accent, #00d4ff); - padding: 24px 40px; - columns: 4; - column-gap: 30px; - z-index: 900; - box-shadow: 0 8px 30px rgba(0,0,0,0.3); - list-style: none; - margin: 0; -} -.site-header--mega .mega-nav > li:hover > .sub-menu, -.site-header--mega .mega-nav > li:focus-within > .sub-menu { - display: block; -} + + .site-header--mega .mega-nav .sub-menu a { display: block; padding: 7px 10px; @@ -4080,6 +4224,312 @@ html.light-mode .mmc-steps { background:rgba(0,0,0,0.03); } .video-archive-container .page-title i { font-size: 2rem; } .video-archive-container .page-description { font-size: 1.1rem; color: var(--text-muted); margin: 0; } +/* ── Livestream ── */ +.video-livestream-section { + margin-bottom: 40px; +} + +.section-livestream-title { + display: flex; + align-items: center; + gap: 12px; + font-size: 1.8rem; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 1.5px; + margin: 0 0 24px 0; + color: var(--primary-accent); +} + +.live-indicator { + display: inline-block; + width: 12px; + height: 12px; + background: #ff0000; + border-radius: 50%; + box-shadow: 0 0 0 0 rgba(255, 0, 0, 1); + animation: pulse-live 2s infinite; +} + +@keyframes pulse-live { + 0% { + box-shadow: 0 0 0 0 rgba(255, 0, 0, 0.7); + } + 50% { + box-shadow: 0 0 0 8px rgba(255, 0, 0, 0); + } + 100% { + box-shadow: 0 0 0 0 rgba(255, 0, 0, 0); + } +} + +.video-livestream-list { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 310px)); + gap: 22px; + margin-bottom: 40px; + padding-bottom: 40px; + border-bottom: 2px solid rgba(0, 212, 255, 0.2); + justify-content: center; +} + +.video-livestream-api-simple { + width: 100%; + max-width: none; +} + +@media (max-width: 768px) { + .video-livestream-list { + grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); + gap: 16px; + } +} + +@media (max-width: 480px) { + .video-livestream-list { + grid-template-columns: 1fr; + } +} +.video-livestream { + display: grid; + grid-template-columns: minmax(260px, 360px) minmax(0, 1fr); + gap: 26px; + align-items: stretch; + padding: 24px; + border: 1px solid rgba(0, 212, 255, 0.2); + border-radius: 18px; + background: + radial-gradient(circle at top left, rgba(0, 212, 255, 0.14), transparent 42%), + linear-gradient(135deg, rgba(17, 20, 28, 0.96), rgba(30, 32, 41, 0.96)); + box-shadow: 0 24px 60px rgba(0,0,0,0.28); +} +.video-livestream-copy { + display: flex; + flex-direction: column; + justify-content: center; + gap: 14px; +} +.video-livestream-kicker { + display: inline-flex; + align-items: center; + gap: 8px; + align-self: flex-start; + padding: 7px 12px; + border-radius: 999px; + border: 1px solid var(--stream-accent, var(--primary-accent)); + background: rgba(255,255,255,0.04); + color: var(--stream-accent, var(--primary-accent)); + font-size: 0.85rem; + font-weight: 700; + letter-spacing: 0.08em; + text-transform: uppercase; +} +.video-livestream-title { + margin: 0; + font-size: clamp(1.6rem, 2.6vw, 2.2rem); + line-height: 1.1; +} +.video-livestream-text, +.video-livestream-note { + margin: 0; + color: var(--text-muted); +} +.video-livestream-actions { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 12px; +} +.video-livestream-nav { + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 10px; +} +.video-livestream-nav-btn { + display: inline-flex; + align-items: center; + gap: 8px; + border: 1px solid var(--border-color); + background: rgba(255,255,255,0.04); + color: var(--text-color); + border-radius: 999px; + padding: 9px 14px; + font: inherit; + font-size: 0.9rem; + font-weight: 700; + cursor: pointer; + transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease; +} +.video-livestream-nav-btn:hover { + border-color: var(--primary-accent); + background: rgba(0,212,255,0.09); +} +.video-livestream-nav-count { + color: var(--text-muted); + font-size: 0.9rem; + font-weight: 700; +} +.video-livestream-switcher { + display: flex; + flex-wrap: wrap; + gap: 10px; +} +.video-livestream-switch { + border: 1px solid var(--border-color); + background: rgba(255,255,255,0.03); + color: var(--text-muted); + border-radius: 999px; + padding: 9px 14px; + font: inherit; + font-size: 0.9rem; + font-weight: 700; + cursor: pointer; + transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease; +} +.video-livestream-switch:hover, +.video-livestream-switch.is-active { + border-color: var(--primary-accent); + color: var(--text-color); + background: rgba(0,212,255,0.09); +} +.video-livestream-button { + display: inline-flex; + align-items: center; + gap: 10px; + padding: 12px 16px; + border-radius: 10px; + background: var(--primary-accent); + color: #0f1418; + font-weight: 700; + text-decoration: none; + transition: transform 0.2s ease, box-shadow 0.2s ease; +} +.video-livestream-button:hover { + color: #0f1418; + transform: translateY(-1px); + box-shadow: 0 10px 24px rgba(0, 212, 255, 0.28); +} +.video-livestream-channel { + padding: 7px 11px; + border-radius: 999px; + border: 1px solid var(--border-color); + color: var(--text-muted); + font-size: 0.9rem; +} +.video-livestream-player-wrap { + min-width: 0; +} +.video-livestream-player, +.video-livestream-placeholder { + border-radius: 14px; + overflow: hidden; + background: #0b0d12; + border: 1px solid rgba(255,255,255,0.08); +} +.video-livestream-player { + position: relative; + padding-bottom: 56.25%; + height: 0; +} +.video-livestream-player iframe { + position: absolute; + inset: 0; + width: 100%; + height: 100%; + border: 0; +} +.video-livestream-player .video-livestream-youtube-player { + position: absolute; + inset: 0; + width: 100%; + height: 100%; +} +.video-livestream-player iframe.is-hidden, +.video-livestream-player .video-livestream-youtube-player.is-hidden { + display: none; +} +.video-livestream-placeholder { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + gap: 14px; + min-height: 320px; + padding: 30px; + text-align: center; + color: var(--text-muted); +} +.video-livestream-placeholder i { + font-size: 2rem; + color: var(--primary-accent); +} +.video-livestream-note.is-hidden, +.video-livestream-player.is-hidden, +.video-livestream-placeholder.is-hidden { + display: none; +} + +/* ── API-basiertes Livestream (vereinfacht) ── */ +.video-livestream-api-simple { + background: var(--surface-color, rgba(255,255,255,0.03)); + padding: 0; + border-radius: 10px; + border: 1px solid var(--border-color); + overflow: hidden; + display: flex; + flex-direction: column; + height: 100%; +} + +.video-livestream-api-simple .responsive-video { + position: relative; + padding-bottom: 56.25%; + height: 0; + overflow: hidden; + border-radius: 0; + background: #000; +} + +.video-livestream-api-simple .responsive-video iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; +} + +.video-livestream-api-simple .video-livestream-meta { + padding: 12px 14px 14px; + display: flex; + justify-content: center; +} + +.video-livestream-api-simple .video-livestream-channel-link { + display: inline-flex; + align-items: center; + gap: 5px; + padding: 5px 12px; + font-size: 12px; + background: #ff0000; + color: #fff; + text-decoration: none; + border-radius: 6px; + font-weight: 600; + transition: all 0.3s ease; +} + +.video-livestream-api-simple .video-livestream-channel-link:hover { + background: #cc0000; + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(255, 0, 0, 0.3); +} + +.video-livestream-api-simple .video-livestream-channel-link i { + font-size: 1.2rem; +} + /* ── Filter-Bar ── */ .video-filter-bar { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; margin-top: 20px; } .video-filter-btn { padding: 7px 20px; border-radius: 20px; border: 1px solid var(--border-color); background: transparent; color: var(--text-muted); font-family: inherit; font-size: 0.85rem; font-weight: 600; cursor: pointer; transition: all 0.2s ease; } @@ -4153,7 +4603,8 @@ html.light-mode .video-card:hover { box-shadow: 0 10px 30px rgba(0,0,0,0.12); } /* ── Responsive ── */ @media (max-width: 900px) { .video-archive-container { padding: 30px 20px; } } -@media (max-width: 768px) { .video-grid { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; } .video-archive-container .page-title { font-size: 1.8rem; } } +@media (max-width: 900px) { .video-livestream { grid-template-columns: 1fr; } } +@media (max-width: 768px) { .video-grid { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; } .video-archive-container .page-title { font-size: 1.8rem; } .video-livestream { padding: 18px; gap: 18px; } .video-livestream-placeholder { min-height: 220px; } .video-livestream-switcher { gap: 8px; } .video-livestream-switch { width: 100%; justify-content: center; } } @media (max-width: 480px) { .video-grid { grid-template-columns: 1fr; } .video-lightbox { padding: 10px; } }