feat: redesign lamp-link with cyber glassmorphism theme, 3D banner logo and grok wallpaper
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
# LAMP Link Theme – the23
|
||||
|
||||
Custom Theme & Layouts für den Link-Shortener & Bio-Page Service ([link.free-warez.win](https://link.free-warez.win)).
|
||||
|
||||
---
|
||||
|
||||
## 📁 Struktur
|
||||
- `the23/layouts/`: Main, Auth, Stats Layouts.
|
||||
- `the23/pages/`: Landingpage (`index.php`, `main.php`), Bio-Seiten (`bio.php`), QR-Codes (`qr.php`).
|
||||
- `the23/partials/`: Menüs, Footer, Stats Navigation.
|
||||
- `the23/auth/`: Login, Registrierung, 2FA.
|
||||
- `the23/gates/`: Custom Splash / Forwarding Screens.
|
||||
- `deploy.sh`: Synchronisiert das Theme direkt zum VPS, setzt www-data Permissions und invalidiert den File-Cache.
|
||||
|
||||
## 🚀 Deployment
|
||||
```bash
|
||||
./deploy.sh
|
||||
```
|
||||
@@ -0,0 +1,358 @@
|
||||
/* ==========================================================================
|
||||
LAMP LINK SHORTENER — CYBERDROP PRO THEME
|
||||
Domain: link.free-warez.win
|
||||
========================================================================== */
|
||||
|
||||
/* 1. Global Setup, Font & Background */
|
||||
@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap');
|
||||
|
||||
html, body {
|
||||
font-family: 'Outfit', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
|
||||
background: #060913 url('/content/cyber_bg.jpg') no-repeat center center fixed !important;
|
||||
background-size: cover !important;
|
||||
color: #f8fafc !important;
|
||||
min-height: 100vh !important;
|
||||
-webkit-font-smoothing: antialiased !important;
|
||||
-moz-osx-font-smoothing: grayscale !important;
|
||||
}
|
||||
|
||||
/* Atmospheric dark mesh overlay for 100% text legibility */
|
||||
body::before {
|
||||
content: '' !important;
|
||||
position: fixed !important;
|
||||
inset: 0 !important;
|
||||
background:
|
||||
radial-gradient(ellipse at 50% 12%, rgba(0, 242, 254, 0.10) 0%, transparent 65%),
|
||||
radial-gradient(ellipse at 85% 75%, rgba(16, 185, 129, 0.07) 0%, transparent 60%),
|
||||
linear-gradient(180deg, rgba(6, 9, 18, 0.82) 0%, rgba(6, 9, 18, 0.94) 100%) !important;
|
||||
backdrop-filter: blur(6px) !important;
|
||||
-webkit-backdrop-filter: blur(6px) !important;
|
||||
pointer-events: none !important;
|
||||
z-index: -1 !important;
|
||||
}
|
||||
|
||||
/* Typography High-Contrast */
|
||||
h1, h2, h3, h4, h5, h6, .display-1, .display-2, .display-3, .display-4 {
|
||||
color: #ffffff !important;
|
||||
font-weight: 700 !important;
|
||||
letter-spacing: -0.02em !important;
|
||||
}
|
||||
|
||||
p, span, .fs-5, .lead, label, .text-muted {
|
||||
color: #cbd5e1 !important;
|
||||
}
|
||||
|
||||
.text-dark {
|
||||
color: #f8fafc !important;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #00f2fe !important;
|
||||
text-decoration: none !important;
|
||||
transition: all 0.2s ease !important;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
color: #38bdf8 !important;
|
||||
text-shadow: 0 0 10px rgba(0, 242, 254, 0.5) !important;
|
||||
}
|
||||
|
||||
/* Code & URLs */
|
||||
code, pre, .mono, #output-result input {
|
||||
font-family: 'JetBrains Mono', monospace !important;
|
||||
}
|
||||
|
||||
/* 2. Top Navigation Bar */
|
||||
header, .navbar, nav {
|
||||
background: rgba(8, 12, 24, 0.92) !important;
|
||||
backdrop-filter: blur(24px) saturate(180%) !important;
|
||||
-webkit-backdrop-filter: blur(24px) saturate(180%) !important;
|
||||
border-bottom: 1px solid rgba(0, 242, 254, 0.25) !important;
|
||||
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.6) !important;
|
||||
padding: 10px 0 !important;
|
||||
}
|
||||
|
||||
.navbar-logo img#navbar-logo, .navbar-logo img {
|
||||
height: 40px !important;
|
||||
max-height: 44px !important;
|
||||
width: auto !important;
|
||||
filter: drop-shadow(0 0 15px rgba(0, 242, 254, 0.5)) !important;
|
||||
transition: transform 0.3s ease !important;
|
||||
}
|
||||
|
||||
.navbar-logo:hover img {
|
||||
transform: scale(1.04) !important;
|
||||
}
|
||||
|
||||
.nav-link {
|
||||
color: #cbd5e1 !important;
|
||||
font-weight: 600 !important;
|
||||
font-size: 0.98rem !important;
|
||||
transition: color 0.2s ease !important;
|
||||
}
|
||||
|
||||
.nav-link:hover, .nav-link.active {
|
||||
color: #00f2fe !important;
|
||||
text-shadow: 0 0 8px rgba(0, 242, 254, 0.5) !important;
|
||||
}
|
||||
|
||||
/* 3. Hero Section & URL Shorten Box */
|
||||
#hero {
|
||||
position: relative;
|
||||
padding: 50px 0 70px;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
#hero h1 strong {
|
||||
background: linear-gradient(135deg, #ffffff 40%, #94a3b8 100%);
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
}
|
||||
|
||||
.gradient-primary {
|
||||
background: linear-gradient(135deg, #00f2fe 0%, #10b981 100%) !important;
|
||||
-webkit-background-clip: text !important;
|
||||
-webkit-text-fill-color: transparent !important;
|
||||
}
|
||||
|
||||
/* Master Shorten Form Capsule */
|
||||
form[data-trigger="shorten-form"] {
|
||||
background: rgba(11, 17, 33, 0.92) !important;
|
||||
backdrop-filter: blur(28px) saturate(190%) !important;
|
||||
-webkit-backdrop-filter: blur(28px) saturate(190%) !important;
|
||||
border: 1px solid rgba(0, 242, 254, 0.35) !important;
|
||||
border-radius: 22px !important;
|
||||
box-shadow:
|
||||
0 25px 60px -15px rgba(0, 0, 0, 0.8),
|
||||
0 0 35px rgba(0, 242, 254, 0.2),
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
|
||||
padding: 12px 16px !important;
|
||||
transition: all 0.3s ease !important;
|
||||
}
|
||||
|
||||
form[data-trigger="shorten-form"]:focus-within {
|
||||
border-color: #00f2fe !important;
|
||||
box-shadow:
|
||||
0 30px 70px -15px rgba(0, 0, 0, 0.85),
|
||||
0 0 45px rgba(0, 242, 254, 0.35),
|
||||
inset 0 1px 0 rgba(255, 255, 255, 0.18) !important;
|
||||
}
|
||||
|
||||
form[data-trigger="shorten-form"] input#url {
|
||||
background: transparent !important;
|
||||
color: #ffffff !important;
|
||||
font-size: 1.15rem !important;
|
||||
font-weight: 500 !important;
|
||||
padding: 12px 18px !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
form[data-trigger="shorten-form"] input#url::placeholder {
|
||||
color: #64748b !important;
|
||||
}
|
||||
|
||||
/* Submit Shorten Button */
|
||||
form[data-trigger="shorten-form"] button[type="submit"],
|
||||
.btn-primary {
|
||||
background: linear-gradient(135deg, #00f2fe 0%, #10b981 100%) !important;
|
||||
color: #020617 !important;
|
||||
font-weight: 800 !important;
|
||||
font-size: 1.05rem !important;
|
||||
padding: 14px 30px !important;
|
||||
border-radius: 14px !important;
|
||||
border: none !important;
|
||||
box-shadow: 0 4px 20px rgba(0, 242, 254, 0.4) !important;
|
||||
transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;
|
||||
cursor: pointer !important;
|
||||
letter-spacing: 0.02em !important;
|
||||
}
|
||||
|
||||
form[data-trigger="shorten-form"] button[type="submit"]:hover,
|
||||
.btn-primary:hover {
|
||||
transform: translateY(-2px) scale(1.02) !important;
|
||||
box-shadow: 0 8px 30px rgba(0, 242, 254, 0.6) !important;
|
||||
filter: brightness(1.15) !important;
|
||||
color: #000000 !important;
|
||||
}
|
||||
|
||||
/* Output Result Box */
|
||||
#output-result {
|
||||
background: rgba(12, 18, 34, 0.94) !important;
|
||||
backdrop-filter: blur(20px) !important;
|
||||
border: 1px solid rgba(16, 185, 129, 0.5) !important;
|
||||
border-radius: 16px !important;
|
||||
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5), 0 0 20px rgba(16, 185, 129, 0.25) !important;
|
||||
color: #f8fafc !important;
|
||||
}
|
||||
|
||||
/* 4. Glassmorphism Marketing & Feature Cards */
|
||||
.bg-primary, .bg-light, .bg-white, .section {
|
||||
background: transparent !important;
|
||||
}
|
||||
|
||||
.card {
|
||||
background: rgba(12, 18, 34, 0.92) !important;
|
||||
backdrop-filter: blur(28px) saturate(180%) !important;
|
||||
-webkit-backdrop-filter: blur(28px) saturate(180%) !important;
|
||||
border: 1px solid rgba(0, 242, 254, 0.25) !important;
|
||||
border-radius: 22px !important;
|
||||
box-shadow: 0 15px 45px rgba(0, 0, 0, 0.6) !important;
|
||||
color: #f8fafc !important;
|
||||
transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
|
||||
}
|
||||
|
||||
.card:hover {
|
||||
transform: translateY(-4px) !important;
|
||||
border-color: rgba(0, 242, 254, 0.5) !important;
|
||||
box-shadow: 0 22px 55px rgba(0, 0, 0, 0.7), 0 0 30px rgba(0, 242, 254, 0.2) !important;
|
||||
}
|
||||
|
||||
.card h2, .card h3, .card h4, .card h5 {
|
||||
color: #ffffff !important;
|
||||
}
|
||||
|
||||
.card p, .card span {
|
||||
color: #cbd5e1 !important;
|
||||
}
|
||||
|
||||
/* Feature Icons */
|
||||
.icon, .icon-lg, .icon-md {
|
||||
background: rgba(0, 242, 254, 0.12) !important;
|
||||
border: 1px solid rgba(0, 242, 254, 0.3) !important;
|
||||
color: #00f2fe !important;
|
||||
box-shadow: 0 0 15px rgba(0, 242, 254, 0.25) !important;
|
||||
}
|
||||
|
||||
/* 5. Sign-in & Authentication View (Auth Layout) */
|
||||
.auth-page, body.auth {
|
||||
background: #060913 url('/content/cyber_bg.jpg') no-repeat center center fixed !important;
|
||||
background-size: cover !important;
|
||||
}
|
||||
|
||||
.card.card-auth, .auth-form-card {
|
||||
width: min(520px, 92vw) !important;
|
||||
margin: 40px auto !important;
|
||||
background: rgba(11, 17, 33, 0.9) !important;
|
||||
backdrop-filter: blur(28px) saturate(190%) !important;
|
||||
-webkit-backdrop-filter: blur(28px) saturate(190%) !important;
|
||||
border: 1px solid rgba(0, 242, 254, 0.3) !important;
|
||||
border-radius: 24px !important;
|
||||
box-shadow: 0 25px 65px rgba(0, 0, 0, 0.8), 0 0 40px rgba(0, 242, 254, 0.18) !important;
|
||||
padding: 38px 42px !important;
|
||||
position: relative !important;
|
||||
overflow: hidden !important;
|
||||
}
|
||||
|
||||
/* Glowing Top Accent Line on Auth Card */
|
||||
.card.card-auth::before, .auth-form-card::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 3px;
|
||||
background: linear-gradient(90deg, #00f2fe 0%, #38bdf8 50%, #10b981 100%);
|
||||
box-shadow: 0 0 15px #00f2fe;
|
||||
}
|
||||
|
||||
/* Form Controls & Inputs */
|
||||
.form-control {
|
||||
background: rgba(6, 10, 22, 0.75) !important;
|
||||
border: 1px solid rgba(148, 163, 184, 0.25) !important;
|
||||
border-radius: 12px !important;
|
||||
color: #ffffff !important;
|
||||
padding: 13px 18px !important;
|
||||
font-size: 1rem !important;
|
||||
transition: all 0.25s ease !important;
|
||||
}
|
||||
|
||||
.form-control:focus {
|
||||
border-color: #00f2fe !important;
|
||||
background: rgba(6, 10, 22, 0.95) !important;
|
||||
color: #ffffff !important;
|
||||
box-shadow: 0 0 0 3px rgba(0, 242, 254, 0.25), inset 0 2px 4px rgba(0, 0, 0, 0.4) !important;
|
||||
}
|
||||
|
||||
/* 6. Footer */
|
||||
footer {
|
||||
background: rgba(8, 12, 24, 0.94) !important;
|
||||
backdrop-filter: blur(20px) !important;
|
||||
border-top: 1px solid rgba(0, 242, 254, 0.22) !important;
|
||||
color: #94a3b8 !important;
|
||||
padding: 40px 0 !important;
|
||||
margin-top: 60px !important;
|
||||
}
|
||||
|
||||
footer a {
|
||||
color: #cbd5e1 !important;
|
||||
}
|
||||
|
||||
footer a:hover {
|
||||
color: #00f2fe !important;
|
||||
}
|
||||
|
||||
/* Custom Scrollbar */
|
||||
::-webkit-scrollbar {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
}
|
||||
::-webkit-scrollbar-track {
|
||||
background: rgba(5, 8, 17, 0.9);
|
||||
}
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: rgba(0, 242, 254, 0.45);
|
||||
border-radius: 4px;
|
||||
}
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: rgba(0, 242, 254, 0.75);
|
||||
}
|
||||
|
||||
/* Auth Page Enhancements */
|
||||
.min-vh-100 {
|
||||
background: transparent !important;
|
||||
}
|
||||
|
||||
.col-sm-7.col-lg-6.col-xl-6 {
|
||||
background: rgba(11, 17, 33, 0.85) !important;
|
||||
backdrop-filter: blur(28px) saturate(190%) !important;
|
||||
-webkit-backdrop-filter: blur(28px) saturate(190%) !important;
|
||||
border-right: 1px solid rgba(0, 242, 254, 0.25) !important;
|
||||
box-shadow: 0 0 50px rgba(0, 0, 0, 0.7) !important;
|
||||
}
|
||||
|
||||
.gradient-primary.position-absolute {
|
||||
background: linear-gradient(135deg, rgba(6, 10, 22, 0.95) 0%, rgba(11, 17, 33, 0.95) 100%) !important;
|
||||
border-left: 1px solid rgba(0, 242, 254, 0.2) !important;
|
||||
}
|
||||
|
||||
.gradient-primary.position-absolute::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
background: radial-gradient(circle at center, rgba(0, 242, 254, 0.15) 0%, transparent 70%);
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.form-floating>.form-control {
|
||||
background: rgba(6, 10, 22, 0.8) !important;
|
||||
border: 1px solid rgba(56, 189, 248, 0.28) !important;
|
||||
color: #ffffff !important;
|
||||
}
|
||||
|
||||
.form-floating>.form-control:focus {
|
||||
border-color: #00f2fe !important;
|
||||
box-shadow: 0 0 0 3px rgba(0, 242, 254, 0.25) !important;
|
||||
}
|
||||
|
||||
.form-floating>label {
|
||||
color: #94a3b8 !important;
|
||||
}
|
||||
|
||||
.form-floating>.form-control:focus~label,
|
||||
.form-floating>.form-control:not(:placeholder-shown)~label {
|
||||
color: #00f2fe !important;
|
||||
}
|
||||
|
||||
.form-check-label {
|
||||
color: #cbd5e1 !important;
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 240 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 392 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 114 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 127 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 392 KiB |
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env bash
|
||||
# deploy.sh - Deploy the23 Theme for LAMP Link Shortener
|
||||
# Domain: link.free-warez.win
|
||||
# Target Host: free-warez.win -> /opt/containers/lamp_link/www/link/storage/themes/the23
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
TARGET_HOST="free-warez.win"
|
||||
TARGET_THEME_DIR="/opt/containers/lamp_link/www/link/storage/themes/the23"
|
||||
TARGET_CONTENT_DIR="/opt/containers/lamp_link/www/link/public/content"
|
||||
LOCAL_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
echo "🚀 Deploying LAMP Link Theme & Cyber Assets"
|
||||
echo " Target Host: $TARGET_HOST"
|
||||
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 Theme templates
|
||||
echo "🔄 Syncing theme files to VPS..."
|
||||
rsync -avz "$LOCAL_DIR/the23/" "$TARGET_HOST:$TARGET_THEME_DIR/"
|
||||
|
||||
# 3. Sync Public Assets (CSS, Logo, Wallpaper)
|
||||
echo "🔄 Syncing public assets (CSS & 3D Banner Logo)..."
|
||||
rsync -avz "$LOCAL_DIR/assets/css/cyber-theme.css" "$TARGET_HOST:$TARGET_CONTENT_DIR/cyber-theme.css"
|
||||
rsync -avz "$LOCAL_DIR/assets/img/pageLogo.png" "$TARGET_HOST:$TARGET_CONTENT_DIR/pageLogo.png"
|
||||
rsync -avz "$LOCAL_DIR/assets/img/link_banner_logo.png" "$TARGET_HOST:$TARGET_CONTENT_DIR/link_banner_logo.png"
|
||||
rsync -avz "$LOCAL_DIR/assets/img/cyber_bg.jpg" "$TARGET_HOST:$TARGET_CONTENT_DIR/cyber_bg.jpg"
|
||||
rsync -avz "$LOCAL_DIR/assets/img/link_icon.png" "$TARGET_HOST:$TARGET_CONTENT_DIR/link_icon.png"
|
||||
|
||||
# 4. Fix permissions and flush cache
|
||||
echo "🔄 Updating permissions and clearing cache..."
|
||||
ssh "$TARGET_HOST" "chown -R www-data:www-data $TARGET_THEME_DIR $TARGET_CONTENT_DIR && rm -rf /opt/containers/lamp_link/www/link/storage/cache/*"
|
||||
|
||||
echo "✅ LAMP Link theme and assets updated & cache cleared!"
|
||||
echo "✨ Deployment complete!"
|
||||
@@ -15,6 +15,11 @@
|
||||
<div class="col-sm-7 col-lg-6 col-xl-6 py-6 py-md-0">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-11 col-lg-10 col-xl-6">
|
||||
<div class="text-center mb-4">
|
||||
<a href="<?php echo route('home') ?>">
|
||||
<img src="/content/link_banner_logo.png" alt="link.free-warez.win" class="img-fluid" style="max-width: 380px; width: 100%; height: auto; filter: drop-shadow(0 0 20px rgba(0, 242, 254, 0.5));">
|
||||
</a>
|
||||
</div>
|
||||
<div class="text-center mb-3">
|
||||
<h4 class="fw-bold"><?php ee('Welcome back') ?></h4>
|
||||
</div>
|
||||
|
||||
@@ -3,6 +3,9 @@
|
||||
<?php echo message() ?>
|
||||
<div class="row g-lg-5 py-10">
|
||||
<div class="col-lg-7 text-center text-lg-start">
|
||||
<div class="mb-4">
|
||||
<img src="/content/link_banner_logo.png" alt="link.free-warez.win" class="img-fluid link-hero-banner" style="max-width: 520px; width: 100%; height: auto; filter: drop-shadow(0 0 25px rgba(0, 242, 254, 0.45));">
|
||||
</div>
|
||||
<?php if(isset($count->users) && $count->users): ?>
|
||||
<span class="bg-primary py-2 px-3 rounded-pill text-muted fw-bold">
|
||||
<?php if($count->users > 100): ?>
|
||||
|
||||
@@ -27,7 +27,8 @@
|
||||
var appurl = '<?php echo url() ?>';
|
||||
</script>
|
||||
<?php echo html_entity_decode(config('customheader')) ?>
|
||||
<?php block('header') ?>
|
||||
<?php block('header') ?>
|
||||
<link rel="stylesheet" href="/content/cyber-theme.css?v=2.0">
|
||||
</head>
|
||||
<body<?php echo \Core\View::bodyClass() ?>>
|
||||
<?php section() ?>
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
</script>
|
||||
<?php echo html_entity_decode(config('customheader')) ?>
|
||||
<?php block('header') ?>
|
||||
<link rel="stylesheet" href="/content/cyber-theme.css?v=2.0">
|
||||
</head>
|
||||
<body>
|
||||
<?php view('partials.main_menu') ?>
|
||||
|
||||
Reference in New Issue
Block a user