From 2e1ec469fc2964cd9a052fe26c84bcf2cc991a20 Mon Sep 17 00:00:00 2001 From: Umbrix Dev Date: Fri, 6 Feb 2026 01:11:44 +0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20=D0=9F=D1=80=D0=B8=D0=BC=D0=B5?= =?UTF-8?q?=D0=BD=D0=B5=D0=BD=D1=8B=20=D1=86=D0=B2=D0=B5=D1=82=D0=B0=20Umb?= =?UTF-8?q?rix=20brand=20=D0=BA=D0=BE=20=D0=B2=D1=81=D0=B5=D0=BC=20=D1=8D?= =?UTF-8?q?=D0=BB=D0=B5=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D0=BC=20Setup=20Wiza?= =?UTF-8?q?rd?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Прогресс бар: #2fbea5 (primary) - Кнопки устройств: teal hover - Блоки скачивания: rgba primary bg - Location cards: teal selection - Final step кнопки: primary colors - Все текст цвета: CSS variables --- components/SetupWizard.tsx | 132 ++++++++++++++++++++++++------------- 1 file changed, 86 insertions(+), 46 deletions(-) diff --git a/components/SetupWizard.tsx b/components/SetupWizard.tsx index f942e85..009af9c 100644 --- a/components/SetupWizard.tsx +++ b/components/SetupWizard.tsx @@ -206,14 +206,17 @@ export default function SetupWizard({ {hasApp === false && ( -
-

Скачайте Umbrix:

+
+

Скачайте Umbrix:

e.currentTarget.style.background = 'var(--primary-dark)'} + onMouseLeave={e => e.currentTarget.style.background = 'var(--primary)'} > 🪟 Windows @@ -221,7 +224,10 @@ export default function SetupWizard({ href="https://umbrix.net/download" target="_blank" rel="noopener noreferrer" - className="px-4 py-2 bg-blue-600 hover:bg-blue-700 rounded-lg text-white font-medium transition-colors text-center" + className="px-4 py-2 rounded-lg font-medium transition-colors text-center" + style={{ background: 'var(--primary)', color: 'var(--text-white)' }} + onMouseEnter={e => e.currentTarget.style.background = 'var(--primary-dark)'} + onMouseLeave={e => e.currentTarget.style.background = 'var(--primary)'} > 🍎 macOS @@ -229,14 +235,20 @@ export default function SetupWizard({ href="https://umbrix.net/download" target="_blank" rel="noopener noreferrer" - className="px-4 py-2 bg-blue-600 hover:bg-blue-700 rounded-lg text-white font-medium transition-colors text-center" + className="px-4 py-2 rounded-lg font-medium transition-colors text-center" + style={{ background: 'var(--primary)', color: 'var(--text-white)' }} + onMouseEnter={e => e.currentTarget.style.background = 'var(--primary-dark)'} + onMouseLeave={e => e.currentTarget.style.background = 'var(--primary)'} > 🐧 Linux
@@ -257,10 +269,13 @@ export default function SetupWizard({ setMobileOS('android'); setHasApp(null); }} - className="p-6 bg-slate-800/50 hover:bg-slate-700/50 border-2 border-slate-700 hover:border-green-500 rounded-xl transition-all" + className="p-6 rounded-xl border-2 transition-all" + style={{ background: 'var(--bg-elevated)', borderColor: 'var(--border)' }} + onMouseEnter={e => e.currentTarget.style.borderColor = 'var(--success)'} + onMouseLeave={e => e.currentTarget.style.borderColor = 'var(--border)'} >
🤖
-

Android

+

Android

@@ -288,30 +306,36 @@ export default function SetupWizard({
{hasApp === false && ( -
-

Рекомендуем:

+
+

Рекомендуем:

{mobileOS === 'android' ? (
-
• V2RayNG
-
• Hiddify
-
• v2rayTun
+
• V2RayNG
+
• Hiddify
+
• v2rayTun
) : (
-
• Shadowrocket (AppStore)
-
• Hiddify (AppStore)
+
• Shadowrocket (AppStore)
+
• Hiddify (AppStore)
)} @@ -342,23 +366,26 @@ export default function SetupWizard({ key={location.id} onClick={() => handleLocationToggle(location.id)} disabled={!isSelected && !canSelect} - className={`w-full p-4 rounded-xl border-2 transition-all flex items-center justify-between ${ - isSelected - ? 'bg-blue-600/20 border-blue-500' - : canSelect - ? 'bg-slate-800/50 border-slate-700 hover:border-slate-600' - : 'bg-slate-800/30 border-slate-700/50 opacity-50 cursor-not-allowed' - }`} + className="w-full p-4 rounded-xl border-2 transition-all flex items-center justify-between" + style={{ + background: isSelected ? 'rgba(47, 190, 165, 0.2)' : canSelect ? 'var(--bg-elevated)' : 'var(--bg-card)', + borderColor: isSelected ? 'var(--primary)' : 'var(--border)', + opacity: canSelect || isSelected ? 1 : 0.5, + cursor: canSelect || isSelected ? 'pointer' : 'not-allowed' + }} + onMouseEnter={e => { if (canSelect && !isSelected) e.currentTarget.style.borderColor = 'var(--text-primary)' }} + onMouseLeave={e => { if (!isSelected) e.currentTarget.style.borderColor = 'var(--border)' }} >
-
- {isSelected && } +
+ {isSelected && }
- {location.name} + {location.name}
- {location.ping} + {location.ping} ); })} @@ -367,11 +394,15 @@ export default function SetupWizard({ @@ -383,33 +414,39 @@ export default function SetupWizard({
🎉
-

+

{deviceType === 'desktop' ? 'Скопируйте ссылку и вставьте в Umbrix' : 'Отсканируйте QR код или скопируйте ссылку'}

{deviceType === 'mobile' && ( )} @@ -421,10 +458,13 @@ export default function SetupWizard({
)} -
+