From bdb367555d1db003931c0096467ad731566afb51 Mon Sep 17 00:00:00 2001 From: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com> Date: Wed, 5 Aug 2026 22:34:56 +0200 Subject: [PATCH] feat(ui): unify brand accents and polish shared controls Standardize highlighted buttons, selected controls, and loading indicators on coollabs accent colors; improve light-mode log toolbar styling; enhance small popups with compact/icon modes; and align navbars, helpers, and related layouts with matching tests. --- config/livewire.php | 2 +- resources/css/app.css | 36 ++++++++--- resources/css/utilities.css | 12 ++++ .../application/settings-section.blade.php | 15 +++-- .../components/applications/links.blade.php | 8 ++- .../components/breadcrumb-switcher.blade.php | 3 - .../components/dashboard/navbar.blade.php | 28 ++++++++- resources/views/components/helper.blade.php | 16 ++++- resources/views/components/loading.blade.php | 2 +- .../views/components/page-loading.blade.php | 2 +- .../views/components/popup-small.blade.php | 60 +++++++++++++++++-- .../views/components/project/navbar.blade.php | 2 +- .../server/provider-link-modal.blade.php | 2 +- .../server/provider-token-picker.blade.php | 2 +- .../views/components/services/links.blade.php | 9 ++- .../shared-variables/editor.blade.php | 17 +++--- .../components/table-pagination.blade.php | 2 +- .../views/components/team/navbar.blade.php | 2 +- .../views/components/top-breadcrumb.blade.php | 9 --- .../views/components/unsaved-bar.blade.php | 4 +- .../components/upgrade-progress.blade.php | 2 +- resources/views/livewire/dashboard.blade.php | 4 +- .../livewire/deployments-indicator.blade.php | 2 +- .../livewire/destination/index.blade.php | 2 +- .../livewire/destination/new/docker.blade.php | 2 +- .../views/livewire/layout-popups.blade.php | 2 +- .../livewire/notifications/email.blade.php | 2 +- .../livewire/project/add-empty.blade.php | 2 +- .../application/backup/create.blade.php | 2 +- .../application/backup/index.blade.php | 2 +- .../application/deployment/show.blade.php | 16 ++--- .../project/application/domains.blade.php | 2 +- .../views/livewire/project/index.blade.php | 6 +- .../livewire/project/new/select.blade.php | 8 +-- .../livewire/project/resource/index.blade.php | 8 +-- .../project/service/configuration.blade.php | 4 +- .../project/service/domains.blade.php | 2 +- .../project/service/storage.blade.php | 2 +- .../service/volume-backup/index.blade.php | 2 +- .../shared/configuration-checker.blade.php | 10 +++- .../shared/environment-variable/all.blade.php | 4 +- .../shared/scheduled-task/all.blade.php | 2 +- .../livewire/project/shared/tags.blade.php | 2 +- .../views/livewire/project/show.blade.php | 8 +-- .../livewire/security/api-tokens.blade.php | 2 +- .../security/cloud-init-script-form.blade.php | 2 +- .../security/cloud-init-scripts.blade.php | 2 +- .../cloud-provider-token-form.blade.php | 2 +- .../security/cloud-provider-tokens.blade.php | 2 +- .../security/private-key/create.blade.php | 2 +- .../security/private-key/index.blade.php | 2 +- .../views/livewire/server/create.blade.php | 2 +- .../views/livewire/server/index.blade.php | 6 +- .../server/new/by-digital-ocean.blade.php | 2 +- .../livewire/server/new/by-hetzner.blade.php | 2 +- .../views/livewire/server/new/by-ip.blade.php | 2 +- .../livewire/server/new/by-vultr.blade.php | 2 +- .../livewire/source/github/change.blade.php | 4 +- .../livewire/source/gitlab/change.blade.php | 2 +- .../views/livewire/storage/index.blade.php | 2 +- .../views/livewire/switch-team.blade.php | 6 -- resources/views/livewire/tags/show.blade.php | 12 ++-- .../views/livewire/team/create.blade.php | 2 +- .../views/livewire/team/invite-link.blade.php | 2 +- resources/views/livewire/upgrade.blade.php | 2 +- resources/views/source/all.blade.php | 2 +- .../Feature/BreadcrumbSelectionStyleTest.php | 14 +++++ .../DashboardServersEmptyStateTest.php | 1 + .../Feature/DeploymentLogToolbarStyleTest.php | 20 +++++++ .../EnvironmentVariableTableLayoutTest.php | 7 +++ tests/Feature/HelperInfoButtonTest.php | 2 +- .../Feature/HighlightedButtonStylingTest.php | 19 ++++++ .../Livewire/ConfigurationCheckerTest.php | 19 ++++++ tests/Feature/LivewireLoadingColorTest.php | 22 +++++++ .../ResourceHeadingUnifiedNavbarTest.php | 4 +- tests/Feature/SentinelUnsavedBarFlashTest.php | 9 +++ tests/Feature/ServerIndexViewSwitcherTest.php | 22 +++++++ .../SettingsSectionDescriptionTest.php | 7 ++- .../SharedVariablesTitleOnDesktopTest.php | 22 +++++-- tests/Feature/StorageSettingsLayoutTest.php | 2 +- tests/Feature/TagsShowPageTest.php | 7 +++ 81 files changed, 423 insertions(+), 149 deletions(-) create mode 100644 tests/Feature/BreadcrumbSelectionStyleTest.php create mode 100644 tests/Feature/DeploymentLogToolbarStyleTest.php create mode 100644 tests/Feature/HighlightedButtonStylingTest.php create mode 100644 tests/Feature/LivewireLoadingColorTest.php create mode 100644 tests/Feature/ServerIndexViewSwitcherTest.php diff --git a/config/livewire.php b/config/livewire.php index bd3733076..efe1002e5 100644 --- a/config/livewire.php +++ b/config/livewire.php @@ -118,7 +118,7 @@ return [ 'navigate' => [ 'show_progress_bar' => true, - 'progress_bar_color' => '#ffff00', + 'progress_bar_color' => '#6b16ed', ], /* diff --git a/resources/css/app.css b/resources/css/app.css index 3f0e28743..a0b80d195 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -268,7 +268,7 @@ button[isError]:not(:disabled) { } button[isHighlighted]:not(:disabled) { - @apply text-coollabs-200 bg-coollabs-50 border-coollabs hover:bg-coollabs hover:text-white dark:bg-warning/15 dark:text-warning dark:border-warning/25 dark:hover:bg-warning/20 dark:hover:text-warning; + @apply button-highlighted; } h1 { @@ -2427,11 +2427,16 @@ input[type="search"]::-webkit-search-results-decoration { Mobile stacks: search → meta → full-width actions (no side-by-side overlap). */ .logs-viewer-toolbar { flex-shrink: 0; - border-bottom: 1px solid rgba(255, 255, 255, 0.08); - background: rgba(255, 255, 255, 0.035); + border-bottom: 1px solid var(--color-neutral-200); + background: var(--color-neutral-50); padding: 0.5rem 0.75rem; } +.dark .logs-viewer-toolbar { + border-bottom-color: rgba(255, 255, 255, 0.08); + background: rgba(255, 255, 255, 0.035); +} + .logs-viewer-toolbar-controls { display: flex; min-width: 0; @@ -2503,11 +2508,17 @@ input[type="search"]::-webkit-search-results-decoration { .logs-viewer-status-badge { height: 1.5rem !important; flex-shrink: 0; - border-color: rgba(255, 255, 255, 0.1) !important; - background: rgba(255, 255, 255, 0.05) !important; + border-color: var(--color-neutral-200) !important; + background: white !important; padding-inline: 0.5rem !important; font-size: 0.6875rem !important; font-weight: 500 !important; + color: var(--color-neutral-700) !important; +} + +.dark .logs-viewer-status-badge { + border-color: rgba(255, 255, 255, 0.1) !important; + background: rgba(255, 255, 255, 0.05) !important; color: #d4d4d4 !important; } @@ -2615,18 +2626,27 @@ input[type="search"]::-webkit-search-results-decoration { align-items: center; justify-content: center; border-radius: 0.5rem; - color: #a3a3a3; + color: var(--color-neutral-500); transition: color 0.15s, background-color 0.15s; } .logs-viewer-btn:hover { + background: var(--color-neutral-100); + color: var(--color-neutral-900); +} + +.dark .logs-viewer-btn { + color: #a3a3a3; +} + +.dark .logs-viewer-btn:hover { background: rgba(255, 255, 255, 0.06); color: #f5f5f5; } .logs-viewer-btn-active { - background: color-mix(in oklab, var(--color-warning) 14%, transparent); - color: var(--color-warning); + background: var(--color-coollabs); + color: #fff; } .logs-viewer-viewport { diff --git a/resources/css/utilities.css b/resources/css/utilities.css index 74ab1c4e0..6f139cd21 100644 --- a/resources/css/utilities.css +++ b/resources/css/utilities.css @@ -130,6 +130,18 @@ @apply inline-flex shrink-0 gap-1.5 justify-center items-center whitespace-nowrap px-2.5 h-9 min-h-9 text-[13px] text-black normal-case rounded-md border outline-0 cursor-pointer font-medium transition-colors bg-white border-neutral-200 hover:bg-neutral-100 dark:bg-white/[0.06] dark:text-fg dark:hover:text-fg dark:hover:bg-white/[0.1] dark:border-white/[0.08] hover:text-black disabled:cursor-not-allowed min-w-fit dark:disabled:text-fg-faint disabled:border-neutral-200 dark:disabled:border-white/[0.06] disabled:hover:bg-transparent disabled:bg-transparent disabled:text-neutral-300 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-accent; } +@utility button-highlighted { + @apply border-2 text-coollabs-200 dark:text-white bg-coollabs-50 dark:bg-coollabs/20 border-coollabs dark:border-coollabs-100 hover:bg-coollabs hover:text-white dark:hover:bg-coollabs-100 dark:hover:text-white; +} + +@utility control-selected { + @apply bg-coollabs text-white dark:bg-coollabs dark:text-white; +} + +@utility loading-indicator { + @apply text-coollabs dark:text-coollabs-100; +} + /* Compact icon-only control (gear, chevrons, etc.) */ @utility icon-button { @apply inline-flex size-7 shrink-0 items-center justify-center rounded-md border border-transparent text-neutral-400 outline-0 transition-colors hover:bg-neutral-100 hover:text-black focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-accent disabled:pointer-events-none disabled:opacity-35 dark:text-fg-faint dark:hover:bg-white/[0.07] dark:hover:text-fg; diff --git a/resources/views/components/application/settings-section.blade.php b/resources/views/components/application/settings-section.blade.php index ad6e3f78b..27b087bd5 100644 --- a/resources/views/components/application/settings-section.blade.php +++ b/resources/views/components/application/settings-section.blade.php @@ -6,13 +6,18 @@ ])
merge(['class' => 'application-settings-section']) }}> -
filled($description ?? $helper)])> +
-

{{ $title }}

@if (filled($description ?? $helper)) -

- {!! $description ?? $helper !!} -

+

+ + + {{ $title }} + + +

+ @else +

{{ $title }}

@endif
@isset($actions) diff --git a/resources/views/components/applications/links.blade.php b/resources/views/components/applications/links.blade.php index adddc9e75..647dc1ab9 100644 --- a/resources/views/components/applications/links.blade.php +++ b/resources/views/components/applications/links.blade.php @@ -27,8 +27,12 @@ -