diff --git a/resources/views/components/btn.blade.php b/resources/views/components/btn.blade.php index af346a3..80b9e84 100644 --- a/resources/views/components/btn.blade.php +++ b/resources/views/components/btn.blade.php @@ -1,13 +1,15 @@ @props(['variant' => 'secondary', 'icon' => false, 'href' => null, 'size' => 'sm']) @php - // One button style for the whole app — compact, consistent (R10). + // One button style for the whole app — EVERY variant carries a persistent + // border + background (R10). No borderless variants: low-emphasis actions use + // `secondary`, destructive ones use `danger-soft` (red-tinted, always — not + // only on hover). Unknown variants fall back to the bordered `secondary`. $variants = [ 'primary' => 'bg-accent text-void hover:bg-accent-bright', 'accent' => 'border border-accent/25 bg-accent/10 text-accent-text hover:bg-accent/15', 'secondary' => 'border border-line bg-inset text-ink-2 hover:bg-raised hover:text-ink', 'danger' => 'bg-offline text-void hover:bg-offline/90', - 'ghost' => 'text-ink-2 hover:bg-raised hover:text-ink', - 'ghost-danger' => 'text-ink-3 hover:bg-offline/10 hover:text-offline', + 'danger-soft' => 'border border-offline/25 bg-offline/10 text-offline hover:bg-offline/15', ]; // sm = compact toolbar/row buttons; lg = full-height primary CTA (≥44px touch target, R7). $sizes = [ diff --git a/resources/views/livewire/files/index.blade.php b/resources/views/livewire/files/index.blade.php index f22c99b..8fc11b1 100644 --- a/resources/views/livewire/files/index.blade.php +++ b/resources/views/livewire/files/index.blade.php @@ -119,10 +119,10 @@ {{-- Row actions --}}
@unless ($isDir) - {{ __('files.download') }} - {{ __('common.edit') }} + {{ __('files.download') }} + {{ __('common.edit') }} @endunless - {{ __('common.delete') }} + {{ __('common.delete') }}
@endforeach diff --git a/resources/views/livewire/servers/show.blade.php b/resources/views/livewire/servers/show.blade.php index d295eb5..8b4eb1a 100644 --- a/resources/views/livewire/servers/show.blade.php +++ b/resources/views/livewire/servers/show.blade.php @@ -125,7 +125,7 @@ {{ $cred->disabled ? __('common.unlock') : __('common.lock') }} - + {{ __('common.delete') }} @@ -207,7 +207,7 @@ @if ($supported) @if ($check['key'] === 'fail2ban') - @@ -320,7 +320,7 @@ 'text-offline' => $ruleTone === 'offline', ])>{{ strtolower($rule['action'] ?? 'allow') }} @unless ($fwReadOnly) - @@ -351,7 +351,7 @@ :padded="false"> @if ($f2bSupported && $f2bInstalled && $f2bActive) - @@ -395,7 +395,7 @@ @foreach ($jail['bannedIps'] as $ip)
{{ $ip }} - {{ __('common.unlock') }} + {{ __('common.unlock') }}
@endforeach @@ -504,7 +504,7 @@

{{ $key['fingerprint'] }}

- + diff --git a/resources/views/livewire/settings/index.blade.php b/resources/views/livewire/settings/index.blade.php index 8ddc5d8..08b86e4 100644 --- a/resources/views/livewire/settings/index.blade.php +++ b/resources/views/livewire/settings/index.blade.php @@ -106,7 +106,7 @@ @if ($twoFactorEnabled) - {{ __('common.disable') }} + {{ __('common.disable') }} @else {{ __('settings.twofa_setup') }} diff --git a/tests/Feature/ButtonComponentTest.php b/tests/Feature/ButtonComponentTest.php new file mode 100644 index 0000000..b1e2362 --- /dev/null +++ b/tests/Feature/ButtonComponentTest.php @@ -0,0 +1,25 @@ +x'); + $this->assertStringContainsString('border border-offline/25', $html); + $this->assertStringContainsString('bg-offline/10', $html); + $this->assertStringContainsString('text-offline', $html); + } + + public function test_no_borderless_ghost_variants_remain(): void + { + // Unknown variants fall back to secondary (bordered) — never borderless. + $html = Blade::render('x'); + $this->assertStringContainsString('border border-line', $html); + $this->assertStringContainsString('bg-inset', $html); + } +}