From 169fe78af9b17fd8dbf7ee13f247eeef7375acc6 Mon Sep 17 00:00:00 2001 From: Hermes Virtual Office Bot Date: Wed, 21 Oct 2026 13:30:43 +0000 Subject: [PATCH] =?UTF-8?q?feat(FEAT-09):=20=D0=A0=D0=B5=D1=84=D0=B5=D1=80?= =?UTF-8?q?=D0=B0=D0=BB=D1=8C=D0=BD=D0=B0=D1=8F=20=D0=BF=D1=80=D0=BE=D0=B3?= =?UTF-8?q?=D1=80=D0=B0=D0=BC=D0=BC=D0=B0=20=C2=AB=D0=9F=D1=80=D0=B8=D0=B2?= =?UTF-8?q?=D0=B5=D0=B4=D0=B8=20=D0=B4=D1=80=D1=83=D0=B3=D0=B0=20=E2=80=94?= =?UTF-8?q?=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B8=20+14=20=D0=B4=D0=BD?= =?UTF-8?q?=D0=B5=D0=B9=20VPN=C2=BB=20[DEV=20staging]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- REPO_MAP.md | 7 +- frontend/src/features/FEAT-09.tsx | 5 + frontend/src/features/PreviewApp.html | 517 +++++++++++++------------ frontend/src/features/PreviewDev.html | 531 ++++++++++++++------------ 4 files changed, 587 insertions(+), 473 deletions(-) create mode 100644 frontend/src/features/FEAT-09.tsx diff --git a/REPO_MAP.md b/REPO_MAP.md index 9c3a0d0..5fc97db 100644 --- a/REPO_MAP.md +++ b/REPO_MAP.md @@ -8,5 +8,8 @@ | `contracts/PRD.md` | 9 ✅ | contract | | `contracts/WEB_REFERENCES.md` | 20 ✅ | contract | | `backend/app/modules/core/router.py` | 2 ✅ | backend-module | -| `frontend/src/features/PreviewApp.html` | 213 ⚠️ OVER 200L | frontend-fsd | -| `frontend/src/features/PreviewDev.html` | 213 ⚠️ OVER 200L | frontend-fsd | +| `frontend/src/features/FEAT-09.tsx` | 5 ✅ | frontend-fsd | +| `frontend/src/features/PreviewApp.html` | 745 ⚠️ OVER 200L | frontend-fsd | +| `frontend/src/features/PreviewDev.html` | 745 ⚠️ OVER 200L | frontend-fsd | +| `frontend/assets/hero.jpg` | 5055 ⚠️ OVER 200L | frontend-fsd | +| `frontend/assets/logo.jpg` | 3841 ⚠️ OVER 200L | frontend-fsd | diff --git a/frontend/src/features/FEAT-09.tsx b/frontend/src/features/FEAT-09.tsx new file mode 100644 index 0000000..b317c6d --- /dev/null +++ b/frontend/src/features/FEAT-09.tsx @@ -0,0 +1,5 @@ +// Modular Feature FEAT-09: Реферальная программа «Приведи друга — получи +14 дней VPN» +// Path: features/referral-bonus (< 200 lines enforced) +export function FEAT_09Widget() { + return
Реферальная программа «Приведи друга — получи +14 дней VPN»
; +} diff --git a/frontend/src/features/PreviewApp.html b/frontend/src/features/PreviewApp.html index 293bb26..65b52fe 100644 --- a/frontend/src/features/PreviewApp.html +++ b/frontend/src/features/PreviewApp.html @@ -13,86 +13,133 @@ --bg-deep: #04100b; --bg-card: #081d14; --bg-card-hover: #0d2b1e; - --mint: #4ade80; - --mint-bright: #22c55e; + --accent: #4ade80; + --accent-bright: #86efac; + --accent-rgb: 74, 222, 128; + --text-main: #ecfdf5; } body { font-family: 'Manrope', sans-serif; background-color: var(--bg-deep); - color: #ecfdf5; + color: var(--text-main); background-image: - radial-gradient(circle at 75% 22%, rgba(34, 197, 94, 0.14) 0%, transparent 45%), - radial-gradient(circle at 20% 60%, rgba(16, 185, 129, 0.10) 0%, transparent 50%), - linear-gradient(rgba(52, 211, 153, 0.03) 1px, transparent 1px), - linear-gradient(90deg, rgba(52, 211, 153, 0.03) 1px, transparent 1px); + radial-gradient(circle at 75% 22%, rgba(var(--accent-rgb), 0.16) 0%, transparent 45%), + radial-gradient(circle at 20% 60%, rgba(var(--accent-rgb), 0.11) 0%, transparent 50%), + linear-gradient(rgba(var(--accent-rgb), 0.035) 1px, transparent 1px), + linear-gradient(90deg, rgba(var(--accent-rgb), 0.035) 1px, transparent 1px); background-size: 100% 100%, 100% 100%, 48px 48px, 48px 48px; + transition: background-color 0.35s ease, color 0.35s ease; } .font-unbounded { font-family: 'Unbounded', sans-serif; } - /* GorillaVPN signature chamfered corners */ + .accent-text { + color: var(--accent); + } + .accent-bg { + background-color: var(--accent); + color: var(--bg-deep); + } + .accent-border { + border-color: rgba(var(--accent-rgb), 0.32); + } + .gorilla-subcard { + background-color: var(--bg-card); + border: 1px solid rgba(var(--accent-rgb), 0.24); + } + /* GorillaVPN signature chamfered corners with dynamic palette variables */ .gorilla-card { - background: linear-gradient(165deg, rgba(11, 37, 26, 0.92) 0%, rgba(5, 19, 13, 0.96) 100%); - border: 1px solid rgba(74, 222, 128, 0.22); + background: linear-gradient(165deg, var(--bg-card) 0%, var(--bg-deep) 100%); + border: 1px solid rgba(var(--accent-rgb), 0.28); clip-path: polygon(0 0, calc(100% - 26px) 0, 100% 26px, 100% 100%, 26px 100%, 0 calc(100% - 26px)); - box-shadow: 0 20px 50px rgba(0, 0, 0, 0.65), inset 0 1px 0 rgba(74, 222, 128, 0.15); + box-shadow: 0 20px 50px rgba(0, 0, 0, 0.65), inset 0 1px 0 rgba(var(--accent-rgb), 0.18); + transition: border-color 0.3s ease, background 0.3s ease; } .gorilla-btn { - background: linear-gradient(90deg, #4ade80 0%, #86efac 100%); - color: #03150c; + background: linear-gradient(90deg, var(--accent) 0%, var(--accent-bright) 100%); + color: #050a07; font-weight: 800; transition: all 0.2s ease; - box-shadow: 0 0 28px rgba(74, 222, 128, 0.35); + box-shadow: 0 0 28px rgba(var(--accent-rgb), 0.38); } .gorilla-btn:hover { transform: translateY(-1px); - box-shadow: 0 0 38px rgba(74, 222, 128, 0.6); - filter: brightness(1.05); + box-shadow: 0 0 38px rgba(var(--accent-rgb), 0.65); + filter: brightness(1.06); } @keyframes radarSweep { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .radar-sweep { - background: conic-gradient(from 0deg, rgba(74, 222, 128, 0.38) 0deg, rgba(74, 222, 128, 0.0) 90deg, transparent 360deg); + background: conic-gradient(from 0deg, rgba(var(--accent-rgb), 0.40) 0deg, rgba(var(--accent-rgb), 0.0) 90deg, transparent 360deg); animation: radarSweep 5s linear infinite; } @keyframes pulseGlow { - 0%, 100% { box-shadow: 0 0 0 0 rgba(74, 222, 128, 0.6); } - 50% { box-shadow: 0 0 0 10px rgba(74, 222, 128, 0); } + 0%, 100% { box-shadow: 0 0 0 0 rgba(var(--accent-rgb), 0.6); } + 50% { box-shadow: 0 0 0 10px rgba(var(--accent-rgb), 0); } } .node-pulse { animation: pulseGlow 2.2s infinite; } - + - +
-
+
-
- Катюша VPN Logo - +
+ Катюша VPN Logo +
- Катюша VPN - Пробиваем любые стены · VLESS Reality + Катюша VPN + Персонаж и гамма по промпту · VLESS Reality
-