From 3287268ff119377dfe2d9f3c787d2549d1df903b Mon Sep 17 00:00:00 2001 From: Bro Date: Fri, 24 Jul 2026 18:18:41 +0700 Subject: [PATCH] feat: UI premium halaman Input Presensi - Filter card: gradient putih-abu, hover shadow, icon di label - Tombol Lanjutkan: gradient blue, shadow lebih dalam - Info bar: gradient with icon box + badge kelas biru - Tabel: sticky student column dengan avatar rounded-xl gradient hover di baris & hover avatar berubah warna - Tombol status: ukuran naik w-10 h-10 rounded-xl border lebih tebal, hover scale 110%, active scale 95% - Bulk set: compact bg box, tombol hover scale - Bottom: card terpisah untuk legend + submit dengan gradient putih-abu border - Info box: gradient emerald-teal dengan icon box shadow - Ukuran font konsisten, spacing lebih lapang --- resources/views/attendances/create.blade.php | 198 ++++++++++--------- 1 file changed, 109 insertions(+), 89 deletions(-) diff --git a/resources/views/attendances/create.blade.php b/resources/views/attendances/create.blade.php index ed7be48..887dfd1 100644 --- a/resources/views/attendances/create.blade.php +++ b/resources/views/attendances/create.blade.php @@ -18,13 +18,15 @@ {{-- Pilih Kelas + Tanggal --}} -
-
-
+
+ +
- +
- ⬜ Belum diisi - ✅ Sudah diisi (siswa terdata/total) + Belum + Terisi
- + + class="w-full px-4 py-2.5 border border-gray-200 rounded-xl text-sm bg-white focus:bg-white focus:outline-none focus:ring-2 focus:ring-blue-500/20 focus:border-blue-500 transition shadow-sm">
@@ -81,19 +85,23 @@ {{-- Info bar --}} -
-
+
+
- - {{ $students->count() }} siswa - - {{ \Carbon\Carbon::parse($date)->translatedFormat('l, d F Y') }} - - Kelas {{ $className }} +
+ +
+
+ {{ $students->count() }} siswa + • + {{ \Carbon\Carbon::parse($date)->translatedFormat('l, d F Y') }} + • + {{ $className }} +
@@ -101,48 +109,58 @@
{{-- Grid table --}} -
+
- - - + + + @foreach($lessonHours as $lh) - @endforeach @foreach($students as $s) - + {{-- Student name --}} - {{-- Per-row bulk buttons --}} @@ -152,35 +170,22 @@ $key = $s->id . '-' . $lh; $currentStatus = isset($existing[$key]) ? $existing[$key]->status : 'hadir'; $statusColors = [ - 'hadir' => 'bg-emerald-100 border-emerald-300 text-emerald-700', - 'sakit' => 'bg-purple-100 border-purple-300 text-purple-700', - 'izin' => 'bg-blue-100 border-blue-300 text-blue-700', - 'alpha' => 'bg-red-100 border-red-300 text-red-700', - 'terlambat' => 'bg-yellow-100 border-yellow-300 text-yellow-700', + 'hadir' => 'bg-emerald-100 border-emerald-300 text-emerald-700 hover:bg-emerald-200', + 'sakit' => 'bg-purple-100 border-purple-300 text-purple-700 hover:bg-purple-200', + 'izin' => 'bg-blue-100 border-blue-300 text-blue-700 hover:bg-blue-200', + 'alpha' => 'bg-red-100 border-red-300 text-red-700 hover:bg-red-200', + 'terlambat' => 'bg-yellow-100 border-yellow-300 text-yellow-700 hover:bg-yellow-200', ]; $statusLabels = [ - 'hadir' => 'H', - 'sakit' => 'S', - 'izin' => 'I', - 'alpha' => 'A', - 'terlambat' => 'T', + 'hadir' => 'H', 'sakit' => 'S', 'izin' => 'I', + 'alpha' => 'A', 'terlambat' => 'T', ]; $statusFull = [ - 'hadir' => 'Hadir', - 'sakit' => 'Sakit', - 'izin' => 'Izin', - 'alpha' => 'Alpha', - 'terlambat' => 'Terlambat', - ]; - $nextStatus = [ - 'hadir' => 'sakit', - 'sakit' => 'izin', - 'izin' => 'alpha', - 'alpha' => 'terlambat', - 'terlambat' => 'hadir', + 'hadir' => 'Hadir', 'sakit' => 'Sakit', 'izin' => 'Izin', + 'alpha' => 'Alpha', 'terlambat' => 'Terlambat', ]; @endphp -
SiswaSet
+ Siswa + +
+ Set + +
+
- Jam ke-{{ $lh }} + +
+ Jam + {{ $lh }} +
-
-
- {{ strtoupper(substr($s->full_name, 0, 1)) }} +
+
+
+ {{ strtoupper(substr($s->full_name, 0, 1)) }}
-

{{ $s->full_name }}

+

{{ $s->full_name }}

-
+
+ class="w-6 h-6 rounded-md text-[9px] font-bold bg-emerald-100 text-emerald-700 border border-emerald-300 hover:bg-emerald-200 hover:scale-110 transition-all duration-150 shadow-sm">H + class="w-6 h-6 rounded-md text-[9px] font-bold bg-purple-100 text-purple-700 border border-purple-300 hover:bg-purple-200 hover:scale-110 transition-all duration-150 shadow-sm">S + class="w-6 h-6 rounded-md text-[9px] font-bold bg-blue-100 text-blue-700 border border-blue-300 hover:bg-blue-200 hover:scale-110 transition-all duration-150 shadow-sm">I + class="w-6 h-6 rounded-md text-[9px] font-bold bg-red-100 text-red-700 border border-red-300 hover:bg-red-200 hover:scale-110 transition-all duration-150 shadow-sm">A + class="w-6 h-6 rounded-md text-[9px] font-bold bg-yellow-100 text-yellow-700 border border-yellow-300 hover:bg-yellow-200 hover:scale-110 transition-all duration-150 shadow-sm">T
+ @@ -194,7 +199,7 @@ - - - {{-- Info --}} -
-
- - Siswa dengan status Alpha (A) minimal 1 jam akan otomatis dicatat sebagai pelanggaran. + {{-- Info --}} +
+
+
+ +
+ Siswa dengan status Alpha (A) minimal 1 jam akan otomatis dicatat sebagai pelanggaran. Klik tombol status untuk rotasi: H → S → I → A → T → H. +
@@ -242,11 +262,11 @@