From cd824b16b6bf2eee38b9ef07fdbe3b4951cc8ad2 Mon Sep 17 00:00:00 2001 From: M_Viper Date: Sat, 10 Jan 2026 16:21:39 +0000 Subject: [PATCH] Dateien nach "css" hochladen --- css/admin.css | 359 ++++++++++++++++++++++++++++++++++++++++++++++++++ css/style.css | 277 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 636 insertions(+) create mode 100644 css/admin.css create mode 100644 css/style.css diff --git a/css/admin.css b/css/admin.css new file mode 100644 index 0000000..16eaeaa --- /dev/null +++ b/css/admin.css @@ -0,0 +1,359 @@ +/* +LiteBans Manager — admin.css +Version: 1.0.0 +Author: M_Viper +*/ + +/* ---------------------------------------- + Grundlayout / Wrapper + ---------------------------------------- */ +.litebans-wrapper { + font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + color: #1d2327; + margin: 0; + padding: 0; + box-sizing: border-box; +} + +.litebans-card { + background: #fff; + border: 1px solid #e1e4e8; + border-radius: 6px; + padding: 18px; + box-shadow: 0 1px 0 rgba(0,0,0,0.02); +} + +.litebans-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 12px; +} + +.litebans-title { + margin: 0; + font-size: 20px; + font-weight: 600; + color: #111827; +} + +.litebans-controls { + display: flex; + gap: 8px; + align-items: center; +} + +/* Theme Toggle Button (klein) */ +.litebans-theme-toggle { + width: 36px; + height: 36px; + display: inline-flex; + align-items: center; + justify-content: center; + border-radius: 6px; + border: 1px solid #d1d5db; + background: #fafafa; + cursor: pointer; + transition: all .15s ease; +} +.litebans-theme-toggle:hover { transform: translateY(-1px); } + +/* ---------------------------------------- + Admin Tab Navigation (WP-Admin kompatibel) + ---------------------------------------- */ +.lb-admin-tabs, +.litebans-tabs { + display: flex; + list-style: none; + margin: 20px 0 8px 0; + padding: 0; + gap: 6px; +} + +.lb-admin-tab, +.litebans-tab-btn { + margin: 0; + padding: 0; +} + +.lb-admin-tab a, +.litebans-tab-btn { + display: inline-block; + text-decoration: none; + font-size: 13px; + line-height: 1.6; + color: #475569; + background: #f3f4f6; + border: 1px solid #d1d5db; + border-top-width: 2px; + border-bottom-width: 0; + padding: 6px 12px; + margin: 0 0 -1px 0; + border-radius: 4px 4px 0 0; + transition: all .12s ease; + cursor: pointer; +} + +.lb-admin-tab a:hover, +.litebans-tab-btn:hover { + background: #f8fafc; + color: #0f172a; +} + +.lb-admin-tab.active a, +.litebans-tab-btn.active { + background: #fff; + color: #0b1220; + border-bottom: 1px solid #fff; + font-weight: 700; +} + +/* Fallback: Button-style für frontend tabs */ +.litebans-tab-content { display: none; padding-top: 12px; } +.litebans-tab-content.active { display: block; } + +/* ---------------------------------------- + Unban Request Ticket Styles + ---------------------------------------- */ +.lb-ticket-container { + max-width: 980px; + margin: 20px 0; + background: #fff; + border: 1px solid #e6e9ec; + border-radius: 8px; + overflow: hidden; +} + +.lb-ticket-header { + background: #f8fafb; + padding: 18px; + border-bottom: 1px solid #e6e9ec; + display: flex; + justify-content: space-between; + align-items: center; + gap: 20px; + flex-wrap: wrap; +} + +.lb-player-badge { + display: flex; + align-items: center; + gap: 14px; +} + +.lb-avatar-large { + width: 48px; + height: 48px; + border-radius: 6px; + background: #f3f4f6; + object-fit: cover; + border: 1px solid #e6e9ec; +} + +.lb-player-badge h3 { + margin: 0 0 4px 0; + font-size: 16px; + font-weight: 700; +} + +.lb-date-label { + font-size: 13px; + color: #6b7280; +} + +/* Status Select Wrapper */ +.lb-status-select-wrapper { + display: flex; + align-items: center; + gap: 10px; + padding: 6px 10px; + border-radius: 6px; + border: 1px solid #d1d5db; + background: #fff; +} + +.lb-status-select { + border: none; + background: transparent; + font-weight: 600; + outline: none; + cursor: pointer; +} + +/* Ticket Body / Cards */ +.lb-ticket-body { + padding: 18px; + display: grid; + grid-template-columns: 1fr 1fr; + gap: 18px; +} + +.lb-card { + border: 1px solid #eef2f7; + border-radius: 6px; + padding: 14px; + background: #fafafa; +} + +.lb-card-ban { background: #fff8f8; border-color: #fee2e2; } +.lb-card-msg { background: #f6fbff; border-color: #dbeafe; grid-column: span 2; } + +.lb-card-title { + font-size: 11px; + text-transform: uppercase; + color: #6b7280; + font-weight: 800; + margin-bottom: 8px; + letter-spacing: .6px; +} + +.lb-card-content { + font-size: 14px; + color: #0b1220; + white-space: pre-wrap; +} + +/* Ticket Footer */ +.lb-ticket-footer { + background: #f6f7f8; + padding: 14px 18px; + border-top: 1px solid #e6e9ec; + display: flex; + justify-content: space-between; + gap: 12px; + align-items: center; + flex-wrap: wrap; +} + +.lb-admin-note-area label { display: block; font-weight: 700; margin-bottom: 6px; color:#111827; } +.lb-textarea { width: 100%; padding: 10px; border-radius: 6px; border: 1px solid #cbd5e1; font-size: 14px; } + +/* ---------------------------------------- + WP Backend Table Anpassungen + ---------------------------------------- */ +.wp-list-table.litebans-table td, +.wp-list-table.litebans-table th, +.litebans-table td, +.litebans-table th { + padding: 10px 12px; + vertical-align: middle; + border-bottom: 1px solid #eef2f7; +} + +.litebans-table { + width: 100%; + border-collapse: collapse; + margin-top: 8px; +} + +.litebans-avatar-wrapper { + display: flex; + align-items: center; + gap: 10px; +} + +.litebans-avatar { + width: 32px; + height: 32px; + border-radius: 4px; + border: 1px solid #e6e9ec; + object-fit: cover; +} + +/* player name in table */ +.litebans-player-name { + font-weight: 600; + color: #0b1220; +} + +/* small action link */ +.litebans-unban-link { + background: #0ea5a4; + color: #fff; + padding: 6px 10px; + border-radius: 6px; + text-decoration: none; + font-size: 13px; + display:inline-block; +} + +/* ---------------------------------------- + Status Badges (Frontend & Backend) + ---------------------------------------- */ +.litebans-badge { + display: inline-block; + padding: 5px 8px; + border-radius: 12px; + font-weight: 700; + font-size: 12px; + text-transform: none; +} + +.litebans-badge.expired { background:#fff1f2; color:#9f1239; border:1px solid #fecaca; } +.litebans-badge.permanent { background:#eef2ff; color:#3730a3; border:1px solid #c7d2fe; } +.litebans-badge.muted { background:#f0fdf4; color:#065f46; border:1px solid #bbf7d0; } +.litebans-badge.active { background:#ecfeff; color:#0f766e; border:1px solid #a7f3d0; } + +/* Warn / Kick specific */ +.litebans-badge.warn { background:#fff7ed; color:#92400e; border:1px solid #fde68a; } +.litebans-badge.kick { background:#f8fafc; color:#111827; border:1px solid #e6e9ef; } + +/* Backend status small labels (CPT) */ +.lb-status { + display:inline-block; + padding: 4px 8px; + border-radius: 12px; + font-weight: 700; + font-size: 12px; +} + +.lb-status.label-active { background:#d1fae5; color:#065f46; border:1px solid #a7f3d0; } +.lb-status.label-inactive { background:#f3f4f6; color:#6b7280; border:1px solid #e6e9ec; } +.lb-status.label-warning { background:#fff3cd; color:#856404; border:1px solid #ffeeba; } +.lb-status.label-kick { background:#e2e3e5; color:#383d41; border:1px solid #d6d8db; } + +/* CPT list labels (unban requests) */ +.lb-status-label { padding: 4px 10px; border-radius: 12px; font-weight: 700; font-size: 12px; } +.lb-status-pending { background: #fff3cd; color: #856404; } +.lb-status-approved { background: #d4edda; color: #155724; } +.lb-status-rejected { background: #f8d7da; color: #721c24; } + +/* ---------------------------------------- + Buttons & small utilities + ---------------------------------------- */ +.litebans-btn { + background: #0ea5a4; + color: #fff; + padding: 8px 14px; + border-radius: 8px; + border: none; + font-weight: 700; + cursor: pointer; +} + +.litebans-backlink { + color: #6b7280; + text-decoration: none; + font-size: 13px; +} + +/* subtle helper */ +.litebans-empty { + padding: 18px; + color: #6b7280; + background: #fafafa; + border-radius: 6px; + border: 1px dashed #e6e9ec; +} + +/* ---------------------------------------- + Responsive adjustments + ---------------------------------------- */ +@media (max-width: 860px) { + .lb-ticket-body { grid-template-columns: 1fr; } + .lb-ticket-footer { flex-direction: column-reverse; align-items: stretch; gap: 8px; } + .lb-player-badge h3 { font-size: 15px; } +} + +/* Small print / accessibility */ +.litebans-player-name, .lb-date-label { word-break: break-word; } diff --git a/css/style.css b/css/style.css new file mode 100644 index 0000000..8ad7dce --- /dev/null +++ b/css/style.css @@ -0,0 +1,277 @@ +/* --- LITEBANS PROFESSIONAL THEME --- */ +:root { + /* Light Mode Standardwerte */ + --lb-bg-body: #f4f6f9; + --lb-bg-card: #ffffff; + --lb-primary: #2271b1; + --lb-primary-hover: #135e96; + --lb-text-main: #1f2937; + --lb-text-muted: #6b7280; + --lb-border: #e5e7eb; + --lb-input-bg: #ffffff; + --lb-header-bg: #f6f7f7; + --lb-table-hover: #f9fafb; + + /* Status Colors Light */ + --lb-active: #d63638; + --lb-permanent: #7f1d1d; + --lb-muted: #dba617; + --lb-warn: #8b5cf6; + --lb-kick: #ea580c; /* Orange für Kicks */ + --lb-expired: #00a32a; + --lb-grey: #9ca3af; +} + +/* --- DARK MODE OVERRIDES --- */ +.litebans-wrapper.dark-mode { + --lb-bg-body: #111827; + --lb-bg-card: #1f2937; + --lb-primary: #3b82f6; + --lb-primary-hover: #60a5fa; + --lb-text-main: #f3f4f6; + --lb-text-muted: #9ca3af; + --lb-border: #374151; + --lb-input-bg: #374151; + --lb-header-bg: #374151; + --lb-table-hover: #374151; + + --lb-active: #fca5a5; + --lb-permanent: #ef4444; + --lb-muted: #fcd34d; + --lb-warn: #a78bfa; + --lb-kick: #fb923c; + --lb-expired: #6ee7b7; +} + +/* Grund Layout */ +.litebans-wrapper { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; + color: var(--lb-text-main); + line-height: 1.5; + transition: background-color 0.3s, color 0.3s; +} + +.litebans-card { + background: var(--lb-bg-card); + border-radius: 8px; + box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1); + border: 1px solid var(--lb-border); + overflow: hidden; + margin-bottom: 24px; +} + +.litebans-header { + padding: 16px 24px; + border-bottom: 1px solid var(--lb-border); + background: var(--lb-header-bg); + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + gap: 10px; +} + +.litebans-title { + font-size: 1.25rem; + font-weight: 600; + margin: 0; + color: var(--lb-text-main); +} + +/* Controls Area */ +.litebans-controls { + display: flex; + align-items: center; + gap: 10px; +} + +.litebans-theme-toggle { + background: var(--lb-bg-card); + border: 1px solid var(--lb-border); + color: var(--lb-text-main); + padding: 6px 10px; + border-radius: 6px; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.2s; + width: 36px; + height: 36px; + flex-shrink: 0; +} +.litebans-theme-toggle:hover { background: var(--lb-border); } +.litebans-theme-toggle svg { width: 20px; height: 20px; fill: currentColor; stroke: currentColor;} + +/* Search Bar */ +.litebans-input { + padding: 8px 12px; + border: 1px solid #8c8f94; + border-radius: 4px; + font-size: 14px; + min-width: 200px; + background: var(--lb-input-bg); + color: var(--lb-text-main); +} +.litebans-btn { + background: var(--lb-primary); + color: white; + border: none; + padding: 8px 16px; + border-radius: 4px; + cursor: pointer; + font-size: 14px; +} +.litebans-btn:hover { background: var(--lb-primary-hover); } + +/* --- TABS SYSTEM --- */ +.litebans-tabs { + display: flex; + border-bottom: 1px solid var(--lb-border); + background: var(--lb-bg-card); + padding: 0 16px; + margin: 0; + list-style: none; +} +.litebans-tab-btn { + background: transparent; + border: none; + padding: 12px 16px; + cursor: pointer; + font-weight: 500; + color: var(--lb-text-muted); + border-bottom: 2px solid transparent; + transition: all 0.2s; + font-size: 14px; +} +.litebans-tab-btn:hover { color: var(--lb-primary); } +.litebans-tab-btn.active { + color: var(--lb-text-main); + border-bottom-color: var(--lb-primary); + font-weight: 700; +} +.litebans-tab-content { + display: none; + padding: 20px; + animation: fadeIn 0.3s ease-in-out; +} +.litebans-tab-content.active { display: block; } +@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } + +/* --- TABLE DESIGN --- */ +.litebans-table { + width: 100%; + border-collapse: collapse; + font-size: 14px; +} +.litebans-table th { + text-align: left; + padding: 12px 16px; + color: var(--lb-text-muted); + font-weight: 600; + font-size: 12px; + text-transform: uppercase; + background: var(--lb-header-bg); + border-bottom: 1px solid var(--lb-border); +} +.litebans-table td { + padding: 14px 16px; + border-bottom: 1px solid var(--lb-border); + vertical-align: middle; + color: var(--lb-text-main); +} +.litebans-table tr:hover td { background-color: var(--lb-table-hover); } + +.litebans-avatar-wrapper { + display: flex; + align-items: center; + gap: 12px; +} +.litebans-avatar { + width: 32px; + height: 32px; + border-radius: 50%; + object-fit: cover; + border: 2px solid white; + box-shadow: 0 1px 3px rgba(0,0,0,0.1); + background: #ccc; +} + +/* Antrag Button */ +.litebans-unban-link { + display: inline-block; + font-size: 12px; + color: var(--lb-primary); + text-decoration: none; + border: 1px solid var(--lb-border); + padding: 6px 12px; + border-radius: 4px; + font-weight: 600; + transition: all 0.2s; + background: var(--lb-bg-card); +} +.litebans-unban-link:hover { + background: var(--lb-primary); + color: #fff; + border-color: var(--lb-primary); +} + +/* BADGES */ +.litebans-badge { + display: inline-flex; + align-items: center; + padding: 3px 8px; + border-radius: 99px; + font-size: 11px; + font-weight: 600; + text-transform: uppercase; +} +.litebans-badge.active { background: rgba(214, 54, 56, 0.1); color: var(--lb-active); } +.litebans-badge.permanent { + background: var(--lb-permanent); + color: white; +} +.litebans-badge.muted { background: rgba(219, 166, 23, 0.1); color: var(--lb-muted); } +.litebans-badge.warn { background: rgba(139, 92, 246, 0.1); color: var(--lb-warn); } +.litebans-badge.kick { background: rgba(234, 88, 12, 0.1); color: var(--lb-kick); } +.litebans-badge.expired { background: rgba(0, 163, 42, 0.1); color: var(--lb-expired); } +.litebans-empty { text-align: center; padding: 40px; color: var(--lb-text-muted); } + +/* --- UNBAN FORM --- */ +.litebans-unban-form-container { + max-width: 600px; + margin: 0 auto; + background: var(--lb-bg-card); + padding: 30px; + border-radius: 8px; + border: 1px solid var(--lb-border); +} +.litebans-unban-header { margin-bottom: 20px; border-bottom: 1px solid var(--lb-border); padding-bottom: 10px; } +.litebans-form-group { margin-bottom: 20px; } +.litebans-form-label { display: block; margin-bottom: 8px; font-weight: 600; } +.litebans-form-control { width: 100%; padding: 10px; background: var(--lb-input-bg); border: 1px solid var(--lb-border); color: var(--lb-text-main); border-radius: 4px; } +.litebans-form-footer { + display: flex; + justify-content: space-between; + margin-top: 30px; + padding-top: 20px; + border-top: 1px solid var(--lb-border); +} +.litebans-backlink { color: var(--lb-text-muted); text-decoration: none; font-weight: 500;} +.litebans-backlink:hover { color: var(--lb-primary); } + +/* Admin Legacy Styles */ +.lb-status { padding: 3px 8px; border-radius: 4px; font-size: 11px; font-weight: bold; } +.label-active { background: #fef2f2; color: #d63638; } +.label-inactive { background: #f0f0f1; color: #646970; } + +/* Responsive */ +@media (max-width: 768px) { + .litebans-table, .litebans-table tbody, .litebans-table tr, .litebans-table td { display: block; width: 100%; } + .litebans-table thead { display: none; } + .litebans-table tr { border: 1px solid var(--lb-border); border-radius: 8px; margin-bottom: 16px; padding: 12px; } + .litebans-table td { display: flex; justify-content: space-between; border-bottom: 1px dashed var(--lb-border); } + .litebans-table td::before { content: attr(data-label); font-weight: 600; color: var(--lb-text-muted); margin-right: 10px; } + .litebans-controls { flex-direction: column; align-items: stretch; width: 100%; } + .litebans-tabs { overflow-x: auto; white-space: nowrap; } +} \ No newline at end of file