Compare commits
5 Commits
8c2a3daee0
...
fe3f93fb9f
| Author | SHA1 | Date | |
|---|---|---|---|
| fe3f93fb9f | |||
| 3c810003c5 | |||
| 6207949e2d | |||
| 76b9ee24c5 | |||
| ad6fdc2226 |
28
apps/admin/public/logo.svg
Normal file
28
apps/admin/public/logo.svg
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600">
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||||
|
<stop offset="0%" style="stop-color:#2FB7E8;stop-opacity:1" />
|
||||||
|
<stop offset="50%" style="stop-color:#0B9FD0;stop-opacity:1" />
|
||||||
|
<stop offset="100%" style="stop-color:#0B7FB3;stop-opacity:1" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<!-- Main arrow shape -->
|
||||||
|
<path d="M 420 150 L 540 150 L 420 300 Z" fill="url(#grad1)" opacity="0.95"/>
|
||||||
|
<path d="M 180 150 L 300 300 L 180 300 Z" fill="url(#grad1)" opacity="0.85"/>
|
||||||
|
|
||||||
|
<!-- Dumbbell - Left -->
|
||||||
|
<g transform="translate(200, 250)">
|
||||||
|
<!-- Left disk -->
|
||||||
|
<circle cx="0" cy="0" r="35" fill="white" opacity="0.95"/>
|
||||||
|
<!-- Bar left -->
|
||||||
|
<rect x="35" y="-15" width="80" height="30" fill="white" rx="4"/>
|
||||||
|
<!-- Right disk -->
|
||||||
|
<circle cx="115" cy="0" r="35" fill="white" opacity="0.95"/>
|
||||||
|
<!-- Grip lines -->
|
||||||
|
<line x1="45" y1="-35" x2="45" y2="35" stroke="url(#grad1)" stroke-width="3" opacity="0.5"/>
|
||||||
|
<line x1="65" y1="-35" x2="65" y2="35" stroke="url(#grad1)" stroke-width="3" opacity="0.5"/>
|
||||||
|
<line x1="85" y1="-35" x2="85" y2="35" stroke="url(#grad1)" stroke-width="3" opacity="0.5"/>
|
||||||
|
<line x1="105" y1="-35" x2="105" y2="35" stroke="url(#grad1)" stroke-width="3" opacity="0.5"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.3 KiB |
BIN
apps/admin/public/nextform-logo.png
Normal file
BIN
apps/admin/public/nextform-logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.5 MiB |
28
apps/admin/public/nextform-logo.svg
Normal file
28
apps/admin/public/nextform-logo.svg
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600">
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||||
|
<stop offset="0%" style="stop-color:#2FB7E8;stop-opacity:1" />
|
||||||
|
<stop offset="50%" style="stop-color:#0B9FD0;stop-opacity:1" />
|
||||||
|
<stop offset="100%" style="stop-color:#0B7FB3;stop-opacity:1" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<!-- Main arrow shape -->
|
||||||
|
<path d="M 420 150 L 540 150 L 420 300 Z" fill="url(#grad1)" opacity="0.95"/>
|
||||||
|
<path d="M 180 150 L 300 300 L 180 300 Z" fill="url(#grad1)" opacity="0.85"/>
|
||||||
|
|
||||||
|
<!-- Dumbbell - Left -->
|
||||||
|
<g transform="translate(200, 250)">
|
||||||
|
<!-- Left disk -->
|
||||||
|
<circle cx="0" cy="0" r="35" fill="white" opacity="0.95"/>
|
||||||
|
<!-- Bar left -->
|
||||||
|
<rect x="35" y="-15" width="80" height="30" fill="white" rx="4"/>
|
||||||
|
<!-- Right disk -->
|
||||||
|
<circle cx="115" cy="0" r="35" fill="white" opacity="0.95"/>
|
||||||
|
<!-- Grip lines -->
|
||||||
|
<line x1="45" y1="-35" x2="45" y2="35" stroke="url(#grad1)" stroke-width="3" opacity="0.5"/>
|
||||||
|
<line x1="65" y1="-35" x2="65" y2="35" stroke="url(#grad1)" stroke-width="3" opacity="0.5"/>
|
||||||
|
<line x1="85" y1="-35" x2="85" y2="35" stroke="url(#grad1)" stroke-width="3" opacity="0.5"/>
|
||||||
|
<line x1="105" y1="-35" x2="105" y2="35" stroke="url(#grad1)" stroke-width="3" opacity="0.5"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.3 KiB |
1
apps/admin/public/nextform.png
Normal file
1
apps/admin/public/nextform.png
Normal file
@ -0,0 +1 @@
|
|||||||
|
PNG - NextForm Logo
|
||||||
@ -51,12 +51,19 @@ export default function Home() {
|
|||||||
{/* Hero Section */}
|
{/* Hero Section */}
|
||||||
<div className="pt-8 pb-4">
|
<div className="pt-8 pb-4">
|
||||||
<div className="space-y-3">
|
<div className="space-y-3">
|
||||||
|
<div className="flex items-center gap-4">
|
||||||
|
<img
|
||||||
|
src="/nextform-logo.png"
|
||||||
|
alt="NextForm"
|
||||||
|
className="h-20 w-20 object-contain"
|
||||||
|
/>
|
||||||
<div className="flex items-center gap-3">
|
<div className="flex items-center gap-3">
|
||||||
<div className="h-12 w-1 bg-gradient-to-b from-blue-600 to-cyan-600 rounded-full"></div>
|
<div className="h-12 w-1 bg-gradient-to-b from-blue-600 to-cyan-600 rounded-full"></div>
|
||||||
<h1 className="text-5xl font-black bg-gradient-to-r from-blue-600 via-blue-700 to-cyan-600 bg-clip-text text-transparent">
|
<h1 className="text-5xl font-black bg-gradient-to-r from-blue-600 via-blue-700 to-cyan-600 bg-clip-text text-transparent">
|
||||||
FitAI Dashboard
|
NextForm
|
||||||
</h1>
|
</h1>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
<p className="text-lg text-gray-600 ml-4">Performance metrics & athlete insights</p>
|
<p className="text-lg text-gray-600 ml-4">Performance metrics & athlete insights</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -52,9 +52,16 @@ export function Navigation(): ReactElement {
|
|||||||
{/* Logo */}
|
{/* Logo */}
|
||||||
<Link
|
<Link
|
||||||
href="/"
|
href="/"
|
||||||
className="text-xl font-bold text-[#FF0000] hover:text-[#00FF00] transition-colors"
|
className="flex items-center gap-3 hover:opacity-80 transition-opacity"
|
||||||
>
|
>
|
||||||
FitAI
|
<img
|
||||||
|
src="/nextform-logo.png"
|
||||||
|
alt="NextForm"
|
||||||
|
className="h-10 w-10 object-contain"
|
||||||
|
/>
|
||||||
|
<span className="text-lg font-bold bg-gradient-to-r from-blue-600 to-blue-800 bg-clip-text text-transparent">
|
||||||
|
NextForm
|
||||||
|
</span>
|
||||||
</Link>
|
</Link>
|
||||||
|
|
||||||
{/* Navigation Items */}
|
{/* Navigation Items */}
|
||||||
|
|||||||
@ -68,15 +68,16 @@ export function Sidebar() {
|
|||||||
<aside className="w-64 bg-gradient-to-b from-slate-900 via-slate-900 to-slate-950 text-white h-screen fixed left-0 top-0 flex flex-col border-r border-slate-800/50 shadow-2xl">
|
<aside className="w-64 bg-gradient-to-b from-slate-900 via-slate-900 to-slate-950 text-white h-screen fixed left-0 top-0 flex flex-col border-r border-slate-800/50 shadow-2xl">
|
||||||
{/* Logo Section */}
|
{/* Logo Section */}
|
||||||
<div className="p-6 border-b border-slate-800/50">
|
<div className="p-6 border-b border-slate-800/50">
|
||||||
<div className="flex items-center gap-3">
|
<div className="flex items-center gap-3 justify-center">
|
||||||
<div className="h-10 w-10 rounded-xl bg-gradient-to-br from-blue-500 to-cyan-500 flex items-center justify-center font-bold text-white shadow-lg">
|
<img
|
||||||
⚡
|
src="/nextform-logo.png"
|
||||||
</div>
|
alt="NextForm"
|
||||||
|
className="h-16 w-16 object-contain"
|
||||||
|
/>
|
||||||
<div>
|
<div>
|
||||||
<h1 className="text-lg font-black bg-gradient-to-r from-blue-400 via-cyan-400 to-blue-300 bg-clip-text text-transparent">
|
<h1 className="text-lg font-black bg-gradient-to-r from-blue-400 via-cyan-400 to-blue-300 bg-clip-text text-transparent">
|
||||||
FitAI
|
NextForm
|
||||||
</h1>
|
</h1>
|
||||||
<p className="text-xs text-slate-400 font-semibold tracking-wide">ADMIN PRO</p>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
BIN
apps/mobile/public/nextform-logo.png
Normal file
BIN
apps/mobile/public/nextform-logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.5 MiB |
28
apps/mobile/public/nextform-logo.svg
Normal file
28
apps/mobile/public/nextform-logo.svg
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600">
|
||||||
|
<defs>
|
||||||
|
<linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||||
|
<stop offset="0%" style="stop-color:#2FB7E8;stop-opacity:1" />
|
||||||
|
<stop offset="50%" style="stop-color:#0B9FD0;stop-opacity:1" />
|
||||||
|
<stop offset="100%" style="stop-color:#0B7FB3;stop-opacity:1" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<!-- Main arrow shape -->
|
||||||
|
<path d="M 420 150 L 540 150 L 420 300 Z" fill="url(#grad1)" opacity="0.95"/>
|
||||||
|
<path d="M 180 150 L 300 300 L 180 300 Z" fill="url(#grad1)" opacity="0.85"/>
|
||||||
|
|
||||||
|
<!-- Dumbbell - Left -->
|
||||||
|
<g transform="translate(200, 250)">
|
||||||
|
<!-- Left disk -->
|
||||||
|
<circle cx="0" cy="0" r="35" fill="white" opacity="0.95"/>
|
||||||
|
<!-- Bar left -->
|
||||||
|
<rect x="35" y="-15" width="80" height="30" fill="white" rx="4"/>
|
||||||
|
<!-- Right disk -->
|
||||||
|
<circle cx="115" cy="0" r="35" fill="white" opacity="0.95"/>
|
||||||
|
<!-- Grip lines -->
|
||||||
|
<line x1="45" y1="-35" x2="45" y2="35" stroke="url(#grad1)" stroke-width="3" opacity="0.5"/>
|
||||||
|
<line x1="65" y1="-35" x2="65" y2="35" stroke="url(#grad1)" stroke-width="3" opacity="0.5"/>
|
||||||
|
<line x1="85" y1="-35" x2="85" y2="35" stroke="url(#grad1)" stroke-width="3" opacity="0.5"/>
|
||||||
|
<line x1="105" y1="-35" x2="105" y2="35" stroke="url(#grad1)" stroke-width="3" opacity="0.5"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.3 KiB |
@ -110,10 +110,16 @@ export default function HomeScreen() {
|
|||||||
>
|
>
|
||||||
{/* Header Section */}
|
{/* Header Section */}
|
||||||
<View style={styles.header}>
|
<View style={styles.header}>
|
||||||
|
<View style={{ flexDirection: "row", alignItems: "center", gap: 8 }}>
|
||||||
|
<Image
|
||||||
|
source={require("../../public/nextform-logo.png")}
|
||||||
|
style={{ width: 40, height: 40, resizeMode: 'contain' }}
|
||||||
|
/>
|
||||||
<View>
|
<View>
|
||||||
<Text style={styles.greeting}>{getGreeting()},</Text>
|
<Text style={styles.greeting}>{getGreeting()},</Text>
|
||||||
<Text style={styles.name}>{user?.firstName || "Athlete"}</Text>
|
<Text style={styles.name}>{user?.firstName || "Athlete"}</Text>
|
||||||
</View>
|
</View>
|
||||||
|
</View>
|
||||||
<View style={styles.avatarContainer}>
|
<View style={styles.avatarContainer}>
|
||||||
{user?.imageUrl ? (
|
{user?.imageUrl ? (
|
||||||
<Image source={{ uri: user.imageUrl }} style={styles.avatar} />
|
<Image source={{ uri: user.imageUrl }} style={styles.avatar} />
|
||||||
|
|||||||
19
update-logo.ps1
Normal file
19
update-logo.ps1
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# Script to update NextForm logo from external folder
|
||||||
|
$sourceFolder = "c:\Users\PC\Desktop\NextForm – Your Smart Fitness Twin\sliki"
|
||||||
|
$adminPublic = "c:\Users\PC\Desktop\fitaiProto\apps\admin\public\nextform-logo.png"
|
||||||
|
$mobilePublic = "c:\Users\PC\Desktop\fitaiProto\apps\mobile\public\nextform-logo.png"
|
||||||
|
|
||||||
|
# Find the latest PNG in source folder
|
||||||
|
$latestPng = Get-ChildItem "$sourceFolder\*.png" -ErrorAction SilentlyContinue |
|
||||||
|
Sort-Object LastWriteTime -Descending |
|
||||||
|
Select-Object -First 1
|
||||||
|
|
||||||
|
if ($latestPng) {
|
||||||
|
Copy-Item $latestPng.FullName $adminPublic -Force
|
||||||
|
Copy-Item $latestPng.FullName $mobilePublic -Force
|
||||||
|
Write-Host "✅ Logo updated from: $($latestPng.Name)"
|
||||||
|
Write-Host "Admin: $adminPublic"
|
||||||
|
Write-Host "Mobile: $mobilePublic"
|
||||||
|
} else {
|
||||||
|
Write-Host "❌ No PNG found in: $sourceFolder"
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user