Improve overall CMS styling: refined design tokens, improved card/button/input components, circular avatars on me page

This commit is contained in:
root
2026-06-26 19:38:06 +02:00
parent 0ac3a5ea21
commit 5bd7b2333f
18 changed files with 300 additions and 513 deletions
@@ -1,17 +1,19 @@
@props(['icon' => '', 'classes' => ''])
<div class="w-full flex flex-col gap-y-4 rounded-lg overflow-hidden bg-[#2b303c] pb-4 shadow-sm {{ $classes }}" style="color: var(--color-text);">
<div class="flex gap-x-2 bg-[#21242e] p-3">
<div class="w-full flex flex-col gap-y-4 rounded-xl overflow-hidden pb-4 shadow-sm border {{ $classes }}"
style="background-color: var(--color-surface); color: var(--color-text); border-color: color-mix(in srgb, var(--color-text-muted) 15%, transparent);">
<div class="flex gap-x-2.5 p-3.5 rounded-t-xl"
style="background-color: color-mix(in srgb, var(--color-primary) 8%, var(--color-surface)); border-bottom: 1px solid color-mix(in srgb, var(--color-primary) 20%, transparent);">
@if (!empty($icon))
<div class="max-w-12.5 max-h-12.5 min-w-12.5 min-h-12.5 rounded-full relative flex items-center justify-center {{ $icon }}"></div>
<div class="w-[50px] h-[50px] min-w-[50px] rounded-full flex items-center justify-center {{ $icon }} shadow-sm"></div>
@endif
<div class="flex flex-col justify-center text-sm">
<p class="font-semibold">{{ $title }}</p>
@if(isset($underTitle))
<p class="text-muted">{{ $underTitle }}</p>
<p class="text-xs mt-0.5 text-muted">{{ $underTitle }}</p>
@endif
</div>
</div>
@@ -1,6 +1,9 @@
@props(['classes' => '', 'type' => 'submit'])
<button type="{{ $type }}"
class="w-full rounded bg-[var(--button-danger-color)] hover:bg-[var(--button-danger-hover-color)] text-[var(--button-danger-text-color)] border-2 border-[var(--button-danger-border-color)] transition ease-in-out duration-150 font-semibold px-6 py-2 {{ $classes }}">
class="w-full rounded-lg bg-[var(--button-danger-color)] hover:bg-[var(--button-danger-hover-color)] text-[var(--button-danger-text-color)] border-2 border-[var(--button-danger-border-color)] transition-all ease-in-out duration-200 font-semibold px-6 py-2.5 {{ $classes }}"
style="border-radius: var(--border-radius); box-shadow: 0 1px 2px rgba(0,0,0,0.1);"
onmouseover="this.style.boxShadow='0 2px 8px rgba(0,0,0,0.15)'; this.style.transform='translateY(-1px)'"
onmouseout="this.style.boxShadow='0 1px 2px rgba(0,0,0,0.1)'; this.style.transform='translateY(0)'">
{{ $slot }}
</button>
@@ -1,14 +1,17 @@
@props(['errorBag' => '', 'classes' => '', 'name', 'type' => 'text', 'value' => '', 'placeholder' => '', 'required' => true, 'autofocus' => false, 'readonly' => false])
<input
class="{{ $classes }} focus:ring-0 border-2 rounded w-full @error($name, $errorBag) !border-red-600 ring-red-500 @enderror" style="border-color: var(--input-border-color, #4b5563); background-color: var(--input-background, #21242e); color: var(--input-text-color, #e2e8f0);"
class="{{ $classes }} focus:ring-0 border-2 rounded-lg w-full px-4 py-2.5 transition-all duration-200 @error($name, $errorBag) !border-red-500 @enderror"
style="border-color: var(--input-border-color, #4b5563); background-color: var(--input-background, #21242e); color: var(--input-text-color, #e2e8f0);"
id="{{ $name }}" type="{{ $type }}" name="{{ $name }}" value="{{ $value }}"
autocomplete="{{ $name }}" placeholder="{{ $placeholder }}" @if ($readonly) required @endif
autocomplete="{{ $name }}" placeholder="{{ $placeholder }}" @if ($required) required @endif
@if ($autofocus) autofocus="{{ $name }}" @endif
@if ($readonly) readonly @endif>
@if ($readonly) readonly @endif
onfocus="this.style.borderColor='var(--color-primary)'; this.style.boxShadow='0 0 0 3px color-mix(in srgb, var(--color-primary) 20%, transparent)'"
onblur="this.style.borderColor='var(--input-border-color, #4b5563)'; this.style.boxShadow='none'">
@error($name, $errorBag)
<p class="mt-1 text-xs italic" style="color: var(--button-danger-color, #ef4444);">
<p class="mt-1.5 text-xs font-medium" style="color: var(--button-danger-color, #ef4444);">
{{ $message }}
</p>
@enderror
@@ -1,6 +1,9 @@
@props(['classes' => '', 'type' => 'submit'])
<button type="{{ $type }}"
class="w-full rounded bg-transparent hover:bg-[var(--button-outline-hover-color)] text-[var(--button-outline-text-color)] border-2 border-[var(--button-outline-color)] transition ease-in-out duration-150 font-semibold px-6 py-2 {{ $classes }}">
class="w-full rounded-lg bg-transparent hover:bg-[var(--button-outline-hover-color)] text-[var(--button-outline-text-color)] border-2 border-[var(--button-outline-color)] transition-all ease-in-out duration-200 font-semibold px-6 py-2.5 {{ $classes }}"
style="border-radius: var(--border-radius); box-shadow: 0 1px 2px rgba(0,0,0,0.1);"
onmouseover="this.style.boxShadow='0 2px 8px rgba(0,0,0,0.15)'; this.style.transform='translateY(-1px)'"
onmouseout="this.style.boxShadow='0 1px 2px rgba(0,0,0,0.1)'; this.style.transform='translateY(0)'">
{{ $slot }}
</button>
@@ -1,6 +1,9 @@
@props(['classes' => '', 'type' => 'submit'])
<button type="{{ $type }}"
class="{{ $classes }} w-full rounded p-2 border-2 transition ease-in-out duration-200 font-semibold" style="background-color: var(--button-color); color: var(--button-text-color); border-color: var(--button-color);">
class="{{ $classes }} w-full rounded-lg px-6 py-2.5 border-2 transition-all ease-in-out duration-200 font-semibold"
style="background-color: var(--button-color); color: var(--button-text-color); border-color: var(--button-color); border-radius: var(--border-radius); box-shadow: 0 1px 2px rgba(0,0,0,0.1);"
onmouseover="this.style.boxShadow='0 2px 8px rgba(0,0,0,0.15)'; this.style.transform='translateY(-1px)'"
onmouseout="this.style.boxShadow='0 1px 2px rgba(0,0,0,0.1)'; this.style.transform='translateY(0)'">
{{ $slot }}
</button>
@@ -1,6 +1,9 @@
@props(['classes' => '', 'type' => 'submit'])
<button type="{{ $type }}"
class="w-full rounded bg-[var(--button-secondary-color)] hover:bg-[var(--button-secondary-hover-color)] text-[var(--button-secondary-text-color)] border-2 border-[var(--button-secondary-border-color)] transition ease-in-out duration-150 font-semibold px-6 py-2 {{ $classes }}">
class="w-full rounded-lg bg-[var(--button-secondary-color)] hover:bg-[var(--button-secondary-hover-color)] text-[var(--button-secondary-text-color)] border-2 border-[var(--button-secondary-border-color)] transition-all ease-in-out duration-200 font-semibold px-6 py-2.5 {{ $classes }}"
style="border-radius: var(--border-radius); box-shadow: 0 1px 2px rgba(0,0,0,0.1);"
onmouseover="this.style.boxShadow='0 2px 8px rgba(0,0,0,0.15)'; this.style.transform='translateY(-1px)'"
onmouseout="this.style.boxShadow='0 1px 2px rgba(0,0,0,0.1)'; this.style.transform='translateY(0)'">
{{ $slot }}
</button>