diff --git a/app/Http/Controllers/AdminController.php b/app/Http/Controllers/AdminController.php index 383293c..671acd0 100644 --- a/app/Http/Controllers/AdminController.php +++ b/app/Http/Controllers/AdminController.php @@ -53,10 +53,13 @@ public function storeApp(Request $request) 'name' => 'required|string|max:255', 'url' => 'required|url|max:255', 'icon_svg' => 'nullable|string', - 'logo' => 'nullable|file|mimes:jpg,jpeg,png,webp,svg|max:2048', + 'logo' => 'nullable|file|mimes:jpg,jpeg,png,webp,svg,avif,gif,bmp,ico|max:5120', 'color' => 'nullable|string|max:20', 'desc' => 'nullable|string', 'tag' => 'nullable|string|max:255', + ], [ + 'logo.mimes' => 'Invalid file format. Only image formats (PNG, JPG, WEBP, SVG, AVIF, GIF, BMP) are allowed.', + 'logo.max' => 'File size exceeds maximum limit of 5MB. Please upload an image under 5MB.', ]); $logoPath = null; @@ -105,10 +108,13 @@ public function updateApp(Request $request, $id) 'name' => 'required|string|max:255', 'url' => 'required|url|max:255', 'icon_svg' => 'nullable|string', - 'logo' => 'nullable|file|mimes:jpg,jpeg,png,webp,svg|max:2048', + 'logo' => 'nullable|file|mimes:jpg,jpeg,png,webp,svg,avif,gif,bmp,ico|max:5120', 'color' => 'nullable|string|max:20', 'desc' => 'nullable|string', 'tag' => 'nullable|string|max:255', + ], [ + 'logo.mimes' => 'Invalid file format. Only image formats (PNG, JPG, WEBP, SVG, AVIF, GIF, BMP) are allowed.', + 'logo.max' => 'File size exceeds maximum limit of 5MB. Please upload an image under 5MB.', ]); $logoPath = $app->logo; diff --git a/app/Http/Controllers/DashboardController.php b/app/Http/Controllers/DashboardController.php index e5ad7a7..7b5943d 100644 --- a/app/Http/Controllers/DashboardController.php +++ b/app/Http/Controllers/DashboardController.php @@ -165,10 +165,13 @@ public function storePersonalApp(Request $request) $request->validate([ 'name' => 'required|string|max:255', 'url' => 'required|url|max:255', - 'logo' => 'nullable|file|mimes:jpg,jpeg,png,webp,svg|max:2048', + 'logo' => 'nullable|file|mimes:jpg,jpeg,png,webp,svg,avif,gif,bmp,ico|max:5120', 'color' => 'nullable|string|max:20', 'desc' => 'nullable|string', 'tag' => 'nullable|string|max:255', + ], [ + 'logo.mimes' => 'Invalid file format. Only image formats (PNG, JPG, WEBP, SVG, AVIF, GIF, BMP) are allowed.', + 'logo.max' => 'File size exceeds maximum limit of 5MB. Please upload an image under 5MB.', ]); $logoPath = null; @@ -201,10 +204,13 @@ public function updatePersonalApp(Request $request, $id) $request->validate([ 'name' => 'required|string|max:255', 'url' => 'required|url|max:255', - 'logo' => 'nullable|file|mimes:jpg,jpeg,png,webp,svg|max:2048', + 'logo' => 'nullable|file|mimes:jpg,jpeg,png,webp,svg,avif,gif,bmp,ico|max:5120', 'color' => 'nullable|string|max:20', 'desc' => 'nullable|string', 'tag' => 'nullable|string|max:255', + ], [ + 'logo.mimes' => 'Invalid file format. Only image formats (PNG, JPG, WEBP, SVG, AVIF, GIF, BMP) are allowed.', + 'logo.max' => 'File size exceeds maximum limit of 5MB. Please upload an image under 5MB.', ]); $logoPath = $app->logo; diff --git a/public/info.png b/public/info.png new file mode 100644 index 0000000..4de1525 Binary files /dev/null and b/public/info.png differ diff --git a/public/uploads/logos/1784539919_6a5deb0f64426.jpg b/public/uploads/logos/1784539919_6a5deb0f64426.jpg new file mode 100644 index 0000000..9fac835 Binary files /dev/null and b/public/uploads/logos/1784539919_6a5deb0f64426.jpg differ diff --git a/public/uploads/logos/1784545215_6a5dffbf2023f.png b/public/uploads/logos/1784545215_6a5dffbf2023f.png new file mode 100644 index 0000000..a18a51d Binary files /dev/null and b/public/uploads/logos/1784545215_6a5dffbf2023f.png differ diff --git a/public/youtube.png b/public/youtube.png new file mode 100644 index 0000000..a18a51d Binary files /dev/null and b/public/youtube.png differ diff --git a/resources/css/app.css b/resources/css/app.css index 54b247e..b9f73cf 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -7,3 +7,35 @@ @theme { --font-sans: 'Instrument Sans', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; } + +/* Modern Thin White Custom Scrollbars */ +html, body, * { + scrollbar-width: thin; + scrollbar-color: rgba(255, 255, 255, 0.4) rgba(15, 23, 42, 0.35); +} + +::-webkit-scrollbar { + width: 5px; + height: 5px; +} + +::-webkit-scrollbar-track { + background: rgba(15, 23, 42, 0.35); + border-radius: 999px; +} + +::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.4); + border-radius: 999px; + border: 1px solid rgba(255, 255, 255, 0.15); +} + +::-webkit-scrollbar-thumb:hover { + background: rgba(255, 255, 255, 0.85); + box-shadow: 0 0 10px rgba(255, 255, 255, 0.6); +} + +::-webkit-scrollbar-corner { + background: transparent; +} + diff --git a/resources/views/admin/dashboard.blade.php b/resources/views/admin/dashboard.blade.php index 210a7a8..b645e3a 100644 --- a/resources/views/admin/dashboard.blade.php +++ b/resources/views/admin/dashboard.blade.php @@ -22,12 +22,12 @@