From 0d8a95473a89759fc29165674d4fb66df98957b5 Mon Sep 17 00:00:00 2001 From: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com> Date: Thu, 9 Apr 2026 19:51:31 +0200 Subject: [PATCH] fix(ui): improve responsive project headings and controls Refine mobile layout for project resource pages by making breadcrumbs and status blocks responsive, improving dropdown and checkbox touch behavior, and adding support for custom modal triggers. Add feature tests covering breadcrumb visibility and responsive checkbox layout. --- resources/css/utilities.css | 4 + resources/views/components/dropdown.blade.php | 49 +++- .../views/components/forms/checkbox.blade.php | 12 +- .../components/modal-confirmation.blade.php | 6 +- .../resources/breadcrumbs.blade.php | 63 ++-- .../views/components/status/index.blade.php | 66 ++--- .../components/status/services.blade.php | 56 ++-- .../livewire/notifications/email.blade.php | 2 +- .../livewire/notifications/telegram.blade.php | 28 +- .../project/application/general.blade.php | 10 +- .../project/application/heading.blade.php | 227 +++++++++------ .../project/database/heading.blade.php | 148 ++++++---- .../project/service/file-storage.blade.php | 8 +- .../project/service/heading.blade.php | 272 +++++++++++------- .../livewire/project/service/index.blade.php | 2 +- .../project/service/stack-form.blade.php | 4 +- .../project/shared/storages/show.blade.php | 4 +- .../views/livewire/server/proxy.blade.php | 2 +- .../views/livewire/server/sentinel.blade.php | 2 +- .../views/livewire/server/show.blade.php | 2 +- .../livewire/source/github/change.blade.php | 2 +- tests/Feature/BreadcrumbsVisibilityTest.php | 71 +++++ .../Feature/ResponsiveCheckboxLayoutTest.php | 113 ++++++++ 23 files changed, 791 insertions(+), 362 deletions(-) create mode 100644 tests/Feature/BreadcrumbsVisibilityTest.php create mode 100644 tests/Feature/ResponsiveCheckboxLayoutTest.php diff --git a/resources/css/utilities.css b/resources/css/utilities.css index 02be0c0c4..a8e807041 100644 --- a/resources/css/utilities.css +++ b/resources/css/utilities.css @@ -145,6 +145,10 @@ @utility dropdown-item { @apply flex relative gap-2 justify-start items-center py-1 pr-4 pl-2 w-full text-xs transition-colors cursor-pointer select-none dark:text-white hover:bg-neutral-100 dark:hover:bg-coollabs outline-none data-disabled:pointer-events-none data-disabled:opacity-50 focus-visible:bg-neutral-100 dark:focus-visible:bg-coollabs; } +@utility dropdown-item-touch { + @apply min-h-10 px-3 py-2 text-sm; +} + @utility dropdown-item-no-padding { @apply flex relative gap-2 justify-start items-center py-1 w-full text-xs transition-colors cursor-pointer select-none dark:text-white hover:bg-neutral-100 dark:hover:bg-coollabs outline-none data-disabled:pointer-events-none data-disabled:opacity-50 focus-visible:bg-neutral-100 dark:focus-visible:bg-coollabs; } diff --git a/resources/views/components/dropdown.blade.php b/resources/views/components/dropdown.blade.php index 666b93dbc..2bb917f79 100644 --- a/resources/views/components/dropdown.blade.php +++ b/resources/views/components/dropdown.blade.php @@ -1,7 +1,44 @@
- -
+ :style="panelStyles" class="absolute top-full z-50 mt-1 min-w-max max-w-[calc(100vw-1rem)] md:top-0 md:mt-6" x-cloak>
+ class="border border-neutral-300 bg-white p-1 shadow-sm dark:border-coolgray-300 dark:bg-coolgray-200"> {{ $slot }}
diff --git a/resources/views/components/forms/checkbox.blade.php b/resources/views/components/forms/checkbox.blade.php index b291759a8..29717b9b8 100644 --- a/resources/views/components/forms/checkbox.blade.php +++ b/resources/views/components/forms/checkbox.blade.php @@ -11,12 +11,12 @@ ])
$fullWidth, 'dark:hover:bg-coolgray-100 cursor-pointer' => !$disabled, ])> -
@if (!isCloud()) -
+
diff --git a/resources/views/livewire/notifications/telegram.blade.php b/resources/views/livewire/notifications/telegram.blade.php index 1c83caf70..f87a13c37 100644 --- a/resources/views/livewire/notifications/telegram.blade.php +++ b/resources/views/livewire/notifications/telegram.blade.php @@ -41,7 +41,7 @@

Deployments

-
+
@@ -49,7 +49,7 @@ id="telegramNotificationsDeploymentSuccessThreadId" />
-
+
@@ -57,7 +57,7 @@ id="telegramNotificationsDeploymentFailureThreadId" />
-
+
@@ -71,7 +71,7 @@

Backups

-
+
@@ -80,7 +80,7 @@
-
+
@@ -94,7 +94,7 @@

Scheduled Tasks

-
+
@@ -103,7 +103,7 @@
-
+
@@ -117,7 +117,7 @@

Server

-
+
@@ -126,7 +126,7 @@
-
+
@@ -135,7 +135,7 @@
-
+
@@ -144,7 +144,7 @@
-
+
@@ -153,7 +153,7 @@
-
+
@@ -162,7 +162,7 @@
-
+
@@ -171,7 +171,7 @@
-
+
diff --git a/resources/views/livewire/project/application/general.blade.php b/resources/views/livewire/project/application/general.blade.php index d743e346e..caf105dbf 100644 --- a/resources/views/livewire/project/application/general.blade.php +++ b/resources/views/livewire/project/application/general.blade.php @@ -276,7 +276,7 @@ class="underline" href="https://coolify.io/docs/knowledge-base/docker/registry" helper="It is calculated together with the Base Directory:
{{ Str::start($baseDirectory . $dockerComposeLocation, '/') }}" x-model="composeLocation" @blur="normalizeComposeLocation()" />
-
+
@if ($buildPack !== 'dockercompose') -
+
@endif -
+
HTTP Basic Authentication
-
+
@@ -543,7 +543,7 @@ class="flex items-start gap-2 p-4 mb-4 text-sm rounded-lg bg-blue-50 dark:bg-blu @endif -
+