diff --git a/app/Support/AvatarUrl.php b/app/Support/AvatarUrl.php index c724881a..c3a760be 100644 --- a/app/Support/AvatarUrl.php +++ b/app/Support/AvatarUrl.php @@ -15,6 +15,7 @@ class AvatarUrl } $avatarHash = $hash ?: self::resolveHash($userId); + if (!$avatarHash) { return self::default(); } @@ -30,7 +31,9 @@ class AvatarUrl public static function default(): string { - return asset('img/default-avatar.webp'); + $base = rtrim((string) config('cdn.avatar_url', 'https://files.skinbase.org'), '/'); + + return sprintf('%s/avatars/default.webp', $base); } private static function resolveHash(int $userId): ?string diff --git a/public/gfx/skinbase_back_001.webp b/public/gfx/skinbase_back_001.webp new file mode 100644 index 00000000..1d22c152 Binary files /dev/null and b/public/gfx/skinbase_back_001.webp differ diff --git a/public/gfx/skinbase_back_002.webp b/public/gfx/skinbase_back_002.webp new file mode 100644 index 00000000..4efa6c26 Binary files /dev/null and b/public/gfx/skinbase_back_002.webp differ diff --git a/public/gfx/skinbase_back_003.webp b/public/gfx/skinbase_back_003.webp new file mode 100644 index 00000000..f16ace6c Binary files /dev/null and b/public/gfx/skinbase_back_003.webp differ diff --git a/public/gfx/skinbase_back_004.webp b/public/gfx/skinbase_back_004.webp new file mode 100644 index 00000000..ced047e8 Binary files /dev/null and b/public/gfx/skinbase_back_004.webp differ diff --git a/resources/views/auth/confirm-password.blade.php b/resources/views/auth/confirm-password.blade.php index fc1b58f7..9c474593 100644 --- a/resources/views/auth/confirm-password.blade.php +++ b/resources/views/auth/confirm-password.blade.php @@ -1,21 +1,18 @@ @extends('layouts.nova') @section('content') -
-
-

Confirm Password

-

Please confirm your password before continuing.

+
+
+
+

Confirm Password

+

Please confirm your password before continuing.

@csrf
- - - + +
diff --git a/resources/views/auth/forgot-password.blade.php b/resources/views/auth/forgot-password.blade.php index 8721ed76..1c885ac0 100644 --- a/resources/views/auth/forgot-password.blade.php +++ b/resources/views/auth/forgot-password.blade.php @@ -1,10 +1,11 @@ @extends('layouts.nova') @section('content') -
-
-

Reset Password

-

Enter your email and we'll send a link to reset your password.

+
+
+
+

Reset Password

+

Enter your email and we'll send a link to reset your password.

@@ -12,8 +13,8 @@ @csrf
- - + +
diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php index df7bd53a..1976a391 100644 --- a/resources/views/auth/login.blade.php +++ b/resources/views/auth/login.blade.php @@ -1,49 +1,46 @@ @extends('layouts.nova') @section('content') -
-
-

Log in

-

Sign in to continue to your Skinbase account.

+
+
+
+

Login

- +

Access your Skinbase account.

- - @csrf + -
- - - -
+ + @csrf -
- - - -
+
+ + + +
-
- -
+
+ + + +
-
- @if (Route::has('password.request')) - - {{ __('Forgot your password?') }} - - @else - - @endif +
+ - - {{ __('Log in') }} - -
- + @if (Route::has('password.request')) + Forgot password? + @endif +
+ + + +

Don’t have an account? Create one

+ +
@endsection diff --git a/resources/views/auth/register-notice.blade.php b/resources/views/auth/register-notice.blade.php index ff02b675..5e162e15 100644 --- a/resources/views/auth/register-notice.blade.php +++ b/resources/views/auth/register-notice.blade.php @@ -2,9 +2,11 @@ @section('content')
-
-
-

Check your inbox

+
+
+
+
+

Check your inbox

@if($email !== '')

We sent a verification link to {{ $email }}.

Click the link in that email to continue setup.

@@ -83,4 +85,4 @@ }, 1000); }); -@endsection \ No newline at end of file +@endsection diff --git a/resources/views/auth/register.blade.php b/resources/views/auth/register.blade.php index 619a8f96..20d63587 100644 --- a/resources/views/auth/register.blade.php +++ b/resources/views/auth/register.blade.php @@ -1,41 +1,32 @@ @extends('layouts.nova') @section('content') -
-
-

Create Account

-

Start with your email. You will set your password and username after verification.

+
+
+
+

Create Account

-
- @csrf +

Start with your email. You’ll choose a password and username after verification.

- + + @csrf - -
- - - -
+
+ + + +
- @if(config('services.recaptcha.enabled')) - - - @endif + @if(config('services.recaptcha.enabled')) + + + @endif -
- - {{ __('Already registered?') }} - + - - {{ __('Register') }} - -
- +

Already registered? Sign in

+ +
@endsection diff --git a/resources/views/auth/reset-password.blade.php b/resources/views/auth/reset-password.blade.php index ecdd722a..d70c76b3 100644 --- a/resources/views/auth/reset-password.blade.php +++ b/resources/views/auth/reset-password.blade.php @@ -1,10 +1,11 @@ @extends('layouts.nova') @section('content') -
-
-

Reset Password

-

Choose a new password for your account.

+
+
+
+

Reset Password

+

Choose a new password for your account.

@csrf @@ -14,15 +15,15 @@
- - + +
- - + +
@@ -30,9 +31,7 @@
- +
diff --git a/resources/views/auth/setup-password.blade.php b/resources/views/auth/setup-password.blade.php index 5e4d94c1..c25d07bb 100644 --- a/resources/views/auth/setup-password.blade.php +++ b/resources/views/auth/setup-password.blade.php @@ -1,10 +1,11 @@ @extends('layouts.nova') @section('content') -
-
-

Set Your Password

-
+
+
+
+

Set Your Password

+
@include('auth.partials.onboarding-progress', ['currentStep' => 'verified']) @if (session('status')) @@ -13,23 +14,21 @@
@endif -

- {{ __('Create a password for ') }}{{ $email }} -

+

{{ __('Create a password for ') }}{{ $email }}

@csrf
- - + +

{{ __('Minimum 10 characters, include at least one number and one symbol.') }}

- - + +
diff --git a/resources/views/auth/setup-username.blade.php b/resources/views/auth/setup-username.blade.php index 97e0c18a..6e21e926 100644 --- a/resources/views/auth/setup-username.blade.php +++ b/resources/views/auth/setup-username.blade.php @@ -1,10 +1,11 @@ @extends('layouts.nova') @section('content') -
-
-

Choose Username

-
+
+
+
+

Choose Username

+
@include('auth.partials.onboarding-progress', ['currentStep' => 'password']) @if (session('status')) @@ -23,19 +24,8 @@ @csrf
- - + +

diff --git a/resources/views/auth/verify-email.blade.php b/resources/views/auth/verify-email.blade.php index d2110de0..884a144e 100644 --- a/resources/views/auth/verify-email.blade.php +++ b/resources/views/auth/verify-email.blade.php @@ -1,10 +1,11 @@ @extends('layouts.nova') @section('content') -
-
-

Verify Your Email

-

Before getting started, please verify your email address by clicking the link we sent you.

+
+
+
+

Verify Your Email

+

Before getting started, please verify your email address by clicking the link we sent you.

@if (session('status') == 'verification-link-sent')
diff --git a/resources/views/layouts/nova.blade.php b/resources/views/layouts/nova.blade.php index 989d29a5..15e6cbae 100644 --- a/resources/views/layouts/nova.blade.php +++ b/resources/views/layouts/nova.blade.php @@ -42,10 +42,30 @@ /* Card enter animation */ .nova-card-enter { opacity: 0; transform: translateY(10px) scale(0.995); } .nova-card-enter.nova-card-enter-active { transition: transform 380ms cubic-bezier(.2,.9,.2,1), opacity 380ms ease-out; opacity: 1; transform: none; } + + /* Auth card consistency */ + .auth-card { max-width: 720px; margin-left: auto; margin-right: auto; } + .auth-card h1 { font-size: 1.25rem; line-height: 1.2; } + .auth-card p { color: rgba(203,213,225,0.9); } @stack('head') - +@php + $authBgRoutes = [ + 'login', 'register', 'register.notice', 'password.request', 'password.reset', + 'verification.notice', 'registration.verify', 'setup.password.create', 'setup.username.create', 'password.confirm' + ]; + $useAuthBackground = request()->route() && in_array(request()->route()->getName(), $authBgRoutes); + $authBackgrounds = [ + '/gfx/skinbase_back_001.webp', + '/gfx/skinbase_back_002.webp', + '/gfx/skinbase_back_003.webp', + '/gfx/skinbase_back_004.webp', + ]; + $selectedAuthBg = $useAuthBackground ? $authBackgrounds[array_rand($authBackgrounds)] : null; +@endphp + +
diff --git a/routes/auth.php b/routes/auth.php index aefe97f1..b6315712 100644 --- a/routes/auth.php +++ b/routes/auth.php @@ -80,6 +80,9 @@ Route::middleware('auth')->group(function () { Route::put('password', [PasswordController::class, 'update'])->name('password.update'); + Route::get('logout', [AuthenticatedSessionController::class, 'destroy']) + ->name('logout.get'); + Route::post('logout', [AuthenticatedSessionController::class, 'destroy']) ->name('logout'); });