From d21fa4e9c4a860bc5e87cd502b284fb0369e8719 Mon Sep 17 00:00:00 2001 From: eldov Date: Sun, 30 Aug 2026 18:47:32 +0200 Subject: [PATCH] feat: initial kavita-theme with W-MAKE Cyber Noir CSS theme --- README.md | 19 ++++++++++++ deploy.sh | 33 ++++++++++++++++++++ themes/w-make-cyber.css | 68 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 120 insertions(+) create mode 100644 README.md create mode 100755 deploy.sh create mode 100644 themes/w-make-cyber.css diff --git a/README.md b/README.md new file mode 100644 index 0000000..db108db --- /dev/null +++ b/README.md @@ -0,0 +1,19 @@ +# Kavita E-Book / Comic Reader Themes + +Custom Themes fΓΌr den Kavita Server auf [free-warez.win](https://free-warez.win). + +--- + +## πŸ“ Struktur + +- `themes/`: + - `w-make-cyber.css`: **W-MAKE Cyber Noir** Theme mit Cyan & Smaragd Akzenten, Glassmorphism-Karten und Dark Obsidian Background. +- `deploy.sh`: Synchronisiert die CSS-Themes in das gemountete Datenverzeichnis `/opt/containers/kavita/data/themes/` und startet den Kavita-Container neu. + +--- + +## πŸš€ Deployment + +```bash +./deploy.sh +``` diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..8eb9c97 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash +# deploy.sh - Deploy Kavita Themes +# Domain: kavita / free-warez.win +# Target Host: free-warez.win -> /opt/containers/kavita/data/themes/ + +set -euo pipefail + +TARGET_HOST="free-warez.win" +LOCAL_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +THEMES_DIR="$LOCAL_DIR/themes" +REMOTE_THEMES_DIR="/opt/containers/kavita/data/themes" + +echo "πŸš€ Deploying Kavita Themes" +echo " Target Host: $TARGET_HOST:$REMOTE_THEMES_DIR" +echo "=========================================================" + +# 1. Check SSH connection +echo "πŸ“‘ Checking SSH connection to $TARGET_HOST..." +if ! ssh -q -o BatchMode=yes -o ConnectTimeout=5 "$TARGET_HOST" exit; then + echo "❌ Cannot connect to $TARGET_HOST via SSH." + exit 1 +fi + +# 2. Sync CSS files +echo "πŸ”„ Transferring themes to $TARGET_HOST..." +rsync -avz "$THEMES_DIR/" "$TARGET_HOST:$REMOTE_THEMES_DIR/" + +# 3. Restart Kavita to discover new themes +echo "πŸ”„ Reloading Kavita container..." +ssh "$TARGET_HOST" "docker restart kavita" + +echo "βœ… Kavita theme(s) deployed successfully!" +echo "✨ Deployment complete!" diff --git a/themes/w-make-cyber.css b/themes/w-make-cyber.css new file mode 100644 index 0000000..06b0342 --- /dev/null +++ b/themes/w-make-cyber.css @@ -0,0 +1,68 @@ +/* + Theme Name: W-MAKE Cyber Noir + Author: W-MAKE Community + Description: Cyber Glassmorphism Dark Theme with Cyan & Emerald accents for Kavita +*/ + +:root { + --primary-color: #00f2fe; + --primary-variant: #00b4d8; + --secondary-color: #10b981; + --bg-color: #050812; + --surface-color: rgba(11, 17, 32, 0.88); + --card-bg: rgba(14, 23, 44, 0.75); + --border-color: rgba(0, 242, 254, 0.18); + --text-color: #f8fafc; + --text-muted: #94a3b8; + --accent-glow: 0 0 20px rgba(0, 242, 254, 0.3); +} + +body { + background-color: var(--bg-color) !important; + color: var(--text-color) !important; + background-image: radial-gradient(circle at 15% 15%, rgba(0, 242, 254, 0.06) 0%, transparent 60%), + radial-gradient(circle at 85% 85%, rgba(16, 185, 129, 0.05) 0%, transparent 60%) !important; + background-attachment: fixed !important; +} + +/* Navbar */ +.navbar, nav.top-nav { + background: rgba(7, 10, 20, 0.94) !important; + backdrop-filter: blur(20px) !important; + -webkit-backdrop-filter: blur(20px) !important; + border-bottom: 1px solid var(--border-color) !important; + box-shadow: 0 8px 30px rgba(0, 0, 0, 0.7) !important; +} + +/* Cards */ +.card, .card-body { + background: var(--card-bg) !important; + backdrop-filter: blur(16px) !important; + -webkit-backdrop-filter: blur(16px) !important; + border: 1px solid var(--border-color) !important; + border-radius: 14px !important; + transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important; +} + +.card:hover { + transform: translateY(-3px) !important; + border-color: var(--primary-color) !important; + box-shadow: 0 12px 32px rgba(0, 0, 0, 0.8), var(--accent-glow) !important; +} + +/* Primary Buttons */ +.btn-primary { + background: linear-gradient(135deg, #00f2fe 0%, #10b981 100%) !important; + color: #03060c !important; + border: none !important; + font-weight: 700 !important; + border-radius: 10px !important; + box-shadow: 0 4px 16px rgba(0, 242, 254, 0.35) !important; + transition: all 0.2s ease !important; +} + +.btn-primary:hover { + filter: brightness(1.15) !important; + box-shadow: 0 6px 24px rgba(0, 242, 254, 0.6) !important; + transform: translateY(-1px) !important; +}