Add Books page and minor improvements

This commit is contained in:
Muhammet Güler
2026-02-03 02:31:54 +03:00
parent 90565412a4
commit 03ff01f24d
18 changed files with 425 additions and 0 deletions
+7
View File
@@ -12,6 +12,13 @@ class PagePolicy
{ {
use HandlesAuthorization; use HandlesAuthorization;
public function before(AuthUser $user, $ability)
{
if ($user->hasRole('super_admin')) {
return true;
}
}
public function viewAny(AuthUser $authUser): bool public function viewAny(AuthUser $authUser): bool
{ {
return $authUser->can('ViewAny:Page'); return $authUser->can('ViewAny:Page');
+20
View File
@@ -0,0 +1,20 @@
<?php
require __DIR__.'/vendor/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';
$app->make('Illuminate\Contracts\Console\Kernel')->bootstrap();
use App\Models\User;
$user = User::where('email', 'admin@truncgil.com')->first();
if (!$user) {
echo "User not found!\n";
exit(1);
}
echo "User: {$user->name} ({$user->email})\n";
echo "Roles: " . $user->roles->pluck('name')->implode(', ') . "\n";
echo "Permissions: " . $user->getAllPermissions()->pluck('name')->implode(', ') . "\n";
echo "Is Super Admin: " . ($user->hasRole('super_admin') ? 'YES' : 'NO') . "\n";
+28
View File
@@ -0,0 +1,28 @@
<?php
require __DIR__.'/vendor/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';
$app->make('Illuminate\Contracts\Console\Kernel')->bootstrap();
use App\Models\User;
use Spatie\Permission\Models\Role;
// İlk kullanıcıyı al
$user = User::first();
if (!$user) {
echo "No user found!\n";
exit(1);
}
echo "User found: {$user->email}\n";
// Super admin rolü var mı kontrol et
$superAdminRole = Role::firstOrCreate(['name' => 'super_admin']);
// Kullanıcıya rolü ata
$user->assignRole($superAdminRole);
echo "Super admin role assigned successfully!\n";
echo "User: {$user->name} ({$user->email})\n";
+14
View File
@@ -0,0 +1,14 @@
<?php
require __DIR__.'/vendor/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';
$app->make('Illuminate\Contracts\Console\Kernel')->bootstrap();
use App\Models\Page;
$pages = Page::all();
foreach ($pages as $page) {
echo "ID: {$page->id} | Title: {$page->title} | Slug: {$page->slug} | Template: {$page->template}\n";
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 682 KiB

@@ -0,0 +1,44 @@
@extends('layouts.site')
@section('title', t('Kitaplarımız'))
@push('styles')
@include('templates.books.css.main')
@endpush
@section('content')
<div class="grow shrink-0">
{{-- Hero Section --}}
@include('templates.books.sections.hero')
{{-- Content Section --}}
<section class="wrapper !bg-[#ffffff] relative border-0 upper-end before:top-[-4rem] before:border-l-transparent before:border-r-[100vw] before:border-t-[4rem] before:border-[#fefefe] before:content-[''] before:block before:absolute before:z-0 before:border-y-transparent before:border-0 before:border-solid before:right-0">
<div class="container py-[4.5rem] xl:!py-24 lg:!py-24 md:!py-24">
{{-- Section Title --}}
<div class="flex flex-wrap mx-[-15px] !mb-12">
<div class="xl:w-10/12 lg:w-10/12 w-full flex-[0_0_auto] !px-[15px] max-w-full !mx-auto !text-center">
<h2 class="!text-[calc(1.305rem_+_0.66vw)] font-bold xl:!text-[1.8rem] !leading-[1.3] !mb-3">{{ t('Yayınlarımız') }}</h2>
<p class="lead !leading-[1.65] text-[0.9rem] font-medium !mb-0">{{ t('Eğitim ve bilim alanında hazırladığımız kitaplarımızı keşfedin.') }}</p>
</div>
</div>
{{-- Categories Removed --}}
{{-- Book List --}}
@include('templates.books.sections.book-list')
</div>
</section>
{{-- CTA Footer --}}
@include('templates.books.sections.footer')
</div>
@endsection
@push('scripts')
@include('templates.books.js.global')
@include('templates.books.js.slider')
@endpush
@@ -0,0 +1,8 @@
<style>
/* Custom book page styles */
.book-card .card-img-top {
height: 300px;
object-fit: cover;
background-color: #f1f1f1;
}
</style>
@@ -0,0 +1,4 @@
<script>
// Global JS for books page
console.log('Global Books JS loaded');
</script>
@@ -0,0 +1,4 @@
<script>
// Slider functionality can be added here
console.log('Slider JS loaded');
</script>
@@ -0,0 +1,6 @@
<nav class="inline-block" aria-label="breadcrumb">
<ol class="breadcrumb flex flex-wrap bg-[none] p-0 !rounded-none list-none !mb-[20px]">
<li class="breadcrumb-item flex !text-[#60697b]"><a class="!text-white hover:text-white" href="/">{{ t('Anasayfa') }}</a></li>
<li class="breadcrumb-item flex !text-white !pl-2 before:font-normal before:!flex before:items-center before:text-[rgba(255,255,255,.5)] before:content-['\e931'] before:text-[0.9rem] before:-mt-px before:!pr-2 before:font-Unicons active" aria-current="page">{{ t('Kitaplarımız') }}</li>
</ol>
</nav>
@@ -0,0 +1,227 @@
{{-- Books List (Vertical) --}}
<div class="flex flex-wrap mx-[-15px] mt-[-40px]">
@php
// Kullanıcıdan gelecek veriler için 3 adet yer tutucu
$books = [
[
'id' => 1,
'title' => 'TENSORFLOW İLE DERİN ÖĞRENME',
'author' => 'Ümit Tunç / İ. Halil Sanduvaç',
'description' => 'Sıkı durun, sizinle derin bir yolculuğa çıkacağız. Bu yolculukta şoförümüz siz, muavininiz biz olacağız. Yapay zeka ve derin öğrenme hususundaki örneklerle belirlediğimiz bu kaynak ile hem bu işin matematiğini, hem de tasarım aşamasına kadar olan aşamaları göreceksiniz.',
'full_description' => 'Sıkı durun, sizinle derin bir yolculuğa çıkacağız.
Bu yolculukta şoförümüz siz, muavininiz biz olacağız.
Yapay zeka ve derin öğrenme hususundaki örneklerle belirlediğimiz bu kaynak ile hem bu işin matematiğini, hem de tasarım aşamasına kadar olan aşamaları göreceksiniz. Günlük hayatta kullanılan canlı örneklerle ilham verebileceğini düşündüğümüz çalışmaları sizlerin huzuruna büyük bir özveriyle sunmanın gururunu yaşıyoruz.
Belki de gelecekteki yeni mesleğinizin adını koyacağınız, belki de hayal gücünüzü pekiştireceğiniz, belki de yeni bir girişimin basamaklarını atacağınız bu güzide eseri yalnızca okumakla ve faydalanmakla kalmayın; yazarı olan ve bu alanda çalışmalar yapan bizlere de projelerinizi, hayallerinizi ve girişimlerinizi gönderin. Hatta bizlere teklifinde dahi bulunabilirsiniz. Sizlerden gelen harika fikirleri büyük bir heyecan ile bekliyoruz.
Ülkemiz adına iyi şeyler üretmeyi amaç edinmiş ve farklı düşünen geleceğin yapay zeka uzmanlarına yararlı olması ümidiyle…
Gelişen yeni dünyada yapay zeka ve derin öğrenme isimlerini daha sık duyuyor, bu husustaki girişim hikayelerine daha fazla rastlıyoruz. Biz, bu hikayelerin kendi ülkemizde de daha fazla olmasını ümit ederek özenle hazırlanmış bir kaynak sunmanın heyecanı içerisindeyiz. Yapay zekaya ilgi duyan ve bu konuda teknik bir donanıma sahip olmak isteyen kişilerin bir baş ucu kaynağı niteliğinde olacağını düşündüğümüz bu eser, günümüzdeki en popüler dillerden olan Python alt yapısıyla TensorFlow\'un inceliklerini öğreten ve canlı örnekle siz değerli geliştiricilerin hizmetine sunulmuştur.
Yapay zeka ve derin öğrenmenin temellerini atıp ileriye taşıyabileceğiniz uygulama temelli bu kitap ile yapay zeka teorisini benimseyecek, hem de pratiği ve uygulama alanlarını pekiştirerek yapay zeka dünyasına adım atmış olacaksınız.',
'topics' => [
'Yapay Zeka (Artificial Intelligence)',
'Derin Öğrenme (Deep Learning)',
'Yapay Nöronlar (Artificial Neurons)',
'Derin Öğrenme Katmanları (Deep Learning Layers)',
'Konvolüsyonel Sinir Ağları (Convolutional Networks)',
'Görüntü İşleme (Image Processing)',
'HaarCascade',
'Makine Öğrenmesi (Machine Learning)',
'Tensorflow',
'OpenCV',
'Nesne Tanıma (Object Detection)',
'Derin Öğrenme Modeli Üretme',
'Veri Artırma (Data Augmentation)',
'Veri Setleri (Datasets)',
'Üretken Rakip Ağlar (GANs)',
'Keras',
'Optik Kağıt Tanıma Projesi',
'Mnist Veri Seti Oluşturma Projesi'
],
'image' => '/assets/img/photos/tensorflow-book-real.jpg',
'year' => 'Yapay Zeka',
'isbn' => '9786052118566',
'pages' => '160',
'dimensions' => '15 x 21 cm'
],
[
'id' => 2,
'title' => 'PHP İLE E-TİCARET KAPILARI',
'author' => 'Ümit Tunç',
'description' => 'Günümüz dünyasında gittikçe büyüyen sektörlerden biri olan sanal mağazacılık, birden bire toplumlarda yeni yeni öğretiler, kavramlar meydana getirmiştir. Kendinizi bu yeniliklere adapte edebilmek için çeşitli kavramlar öğrenilmelidir.',
'full_description' => 'Günümüz dünyasında gittikçe büyüyen sektörlerden biri olan sanal mağazacılık, birden bire toplumlarda yeni yeni öğretiler, kavramlar meydana getirmiştir. Kendinizi bu yeniliklere adapte edebilmek için çeşitli kavramlar öğrenilmelidir. Mesela bir programlama dili. Bunu da öğrenmeniz yetmiyor. Veritabanı programcılığını da öğrenmeniz gerekli. Maalesef ki bunlarla da bitmiyor. Bunları sağlam bir projeye dönüştürebilmeniz ise yoğun bir çalışma ve birikim gerektiriyor. Bu birikimi edinebilmek için Türkçe kaynaklar yetersiz kalıyor.
Kuruluşu doğru yapmak ve olası hataların önüne geçmek için bu videoyu seyredebilirsiniz: <a href="http://www.youtube.com/watch?v=KXIELW-nVsw" target="_blank" class="text-[#e31e24] font-medium hover:underline">http://www.youtube.com/watch?v=KXIELW-nVsw</a>
İşte bu alanda eksiklikleri giderebilmek için, yazılan bu kaynak ile adeta öğrenmeyi zevk haline getireceksiniz. Ezber bozacak metotlar içeren bu kitap size farklı bir bakış açısıyla e-ticaret yazılımını öğretebileceği gibi; bir projenin geliştirilebilirliği bakımından çeşitli örnekler de sunacak. Sözü ve kodu fazla uzatmadan kestirme bir yol izleyen kitap; hedef pazarı gittikçe büyüyen bu sektörün kapılarını da size ardına kadar açacaktır.',
'topics' => [
'Az Kod Çok İş',
'Navicat for MySQL',
'Kobetik',
'MySQL Fonksiyonları',
'Stored Procedure',
'Web Tasarımı ve Site Şablonu',
'Üyelik İşlemleri',
'MD5 ile Kriptolama İşlemleri',
'Mail Onaylama İşlemleri',
'Yönetici İşlemleri',
'Sayfalandırma İşlemleri',
'Ürünler ve Kategoriler',
'Arama Motoru',
'jSon Verilerini Sıralamak',
'Sipariş İşlemleri',
'Satın Alma İşlemleri',
'3D Secure (Sanal POS) İşlemleri',
'EFT / Havale ile Ödeme',
'Güvenlik Önlemleri',
'SSL Sertifikaları',
'HTML5 ve Görsel Estetik',
'Varitabanı Oluşturma',
'SQL Injection',
'Dosyaları Uzak Sunucuya Gönderme',
'Alan Adı ve Barındırma',
'Klasör Erişim İzinleri'
],
'image' => '/assets/img/photos/php-eticaret-book.jpg',
'year' => 'E-Ticaret',
'isbn' => '978-605-5201-333',
'pages' => '440',
'dimensions' => '15 x 21 cm',
'google_play_link' => 'https://play.google.com/store/books/details/%C3%9Cmit_TUN%C3%87_PHP_%C4%B0LE_E_T%C4%B0CARET_KAPILARI?id=aPK3DwAAQBAJ'
],
[
'id' => 3,
'title' => 'ADOBE PREMIERE PRO CC',
'author' => 'Ümit Tunç',
'description' => 'Video editörlüğü hangi açıdan bakılırsa bakılsın bir kişinin mutlaka alaka duyması gerekli olan bir konu. Günümüz dünyasında değişen medya anlayışıyla artık haberler çok uzun yazılardan ziyade görsellerle zenginleştiriliyor.',
'full_description' => 'Video editörlüğü hangi açıdan bakılırsa bakılsın bir kişinin mutlaka alaka duyması gerekli olan bir konu. Günümüz dünyasında değişen medya anlayışıyla artık haberler çok uzun yazılardan ziyade görsellerle zenginleştiriliyor. Kitaplar sesli kitaba dönüştürülüyor. Anlatılması gerekli olan hususlar görüntülü ve sesli ortamlar hâline getirilip çeşitli kanallar ile önümüze servis ediliyor. Peki, bütün bunlar nasıl yapılıyor?
Kendi haberlerinizi hazırlayacağınız, kliplerinizi çekeceğiniz, kitaplarınızı seslendirip görüntülü ortamlara dönüştüreceğiniz, Green Box, Blue Box gibi teknolojileri kullanarak film terminolojisini kavrayacağınız bilgiler, özenle hazırlanmış bu harika kaynağın içerisinde. Sayısal ses ve sayısal video alanında kurgu ve montaj tekniklerinin eğitim videoları ile desteklenerek açıklayıcı bir biçimde anlatıldığı bu kitap, mutlaka kütüphanenizin ön raflarında bulunması gerekli olan bir kaynaktır.',
'topics' => [
'Hareketli Çekilen Görüntüyü Stabilize Etmek (Stabilize Motion)',
'Adobe Audition ile Ses Montajı',
'Kurgu ve Montaj Estetiği',
'Greenbox Görüntülerle Çalışmak',
'Haber ve Film Montajı Teknikleri',
'Ses Kaydında Dikkat Edilmesi Gerekenler',
'Hızlı Ses Montajı',
'Hızlı Video Montajı',
'Sayısal Ses',
'Sayısal Video',
'Animasyon Tekniği ve Geçiş Efektleri',
'Yazı Animasyonları',
'Şekil Animasyonları',
'Frame, KeyFrame Kavramları',
'Render Yöntemleri ve Video Formatları',
'Timeline İşlemleri',
'Time Remapping Kavramı',
'Crawl ve Roll Yazılar',
'Color Correction'
],
'image' => '/assets/img/photos/adobe-premiere-book.jpg',
'year' => 'Video Montaj',
'isbn' => '978-605-5201-456',
'pages' => '312',
'dimensions' => '15 x 21 cm',
'google_play_link' => 'https://play.google.com/store/books/details/%C3%9Cmit_Tun%C3%A7_ADOBE_PREMIERE_PRO_CC?id=it1TDwAAQBAJ'
]
];
@endphp
@foreach($books as $book)
<div class="w-full flex-[0_0_auto] px-[15px] mt-[40px]">
<div class="card shadow-[0_0.25rem_1.75rem_rgba(30,34,40,0.07)] h-full overflow-hidden group">
<div class="flex flex-wrap md:flex-nowrap h-full">
{{-- Book Image (Left Side) --}}
<div class="md:w-4/12 lg:w-3/12 w-full shrink-0 relative bg-gray-100 flex items-center justify-center">
<figure class="h-full w-full !m-0 overflow-hidden flex items-center justify-center p-4">
<img class="max-h-[400px] w-auto object-contain shadow-lg transform group-hover:scale-105 transition-all duration-500" src="{{ $book['image'] }}" alt="{{ $book['title'] }}">
</figure>
</div>
{{-- Book Content (Right Side) --}}
<div class="md:w-8/12 lg:w-9/12 w-full flex flex-col justify-center p-8 lg:p-12">
<div class="post-header mb-4">
<div class="inline-flex mb-3 uppercase tracking-wider text-xs font-bold text-[#e31e24] bg-red-50 px-3 py-1 rounded-full">
{{ $book['year'] }}
</div>
<div class="float-right text-xs text-gray-400 font-mono">
{{ $book['isbn'] }}
</div>
<h2 class="post-title h2 !mb-2 !text-[1.7rem] font-bold text-[#343f52]">
<a href="#" class="hover:text-[#e31e24] transition-colors">{{ $book['title'] }}</a>
</h2>
<div class="text-[#60697b] text-lg mb-4 italic">
{{ $book['author'] }}
</div>
</div>
<div class="content mb-6">
<div x-data="{ expanded: false }" class="relative">
<div class="transition-all duration-500 overflow-hidden"
:style="expanded ? 'max-height: 1000px' : 'max-height: 120px'">
<p class="text-[#60697b] leading-relaxed mb-4 whitespace-pre-line">{!! $book['full_description'] ?: $book['description'] !!}</p>
</div>
{{-- Fade Overlay --}}
<div x-show="!expanded"
class="absolute bottom-0 left-0 w-full h-12 bg-gradient-to-t from-white to-transparent pointer-events-none">
</div>
<button @click="expanded = !expanded"
class="text-[#e31e24] font-semibold text-sm hover:underline mt-2 focus:outline-none flex items-center gap-1">
<span x-text="expanded ? '{{ t('Daha Az Göster') }}' : '{{ t('Devamını Oku') }}'"></span>
<i class="uil" :class="expanded ? 'uil-angle-up' : 'uil-angle-down'"></i>
</button>
</div>
{{-- Attributes --}}
<div class="flex gap-6 text-sm text-gray-500 mb-4 border-b border-gray-100 pb-4">
@if(isset($book['pages']) && $book['pages'] != '-')
<div class="flex items-center gap-2">
<i class="uil uil-file-alt text-[#e31e24]"></i>
<span>{{ $book['pages'] }} Sayfa</span>
</div>
@endif
@if(isset($book['dimensions']) && $book['dimensions'] != '-')
<div class="flex items-center gap-2">
<i class="uil uil-ruler text-[#e31e24]"></i>
<span>{{ $book['dimensions'] }}</span>
</div>
@endif
</div>
{{-- Topics List (Accordion style or simple list) --}}
@if(!empty($book['topics']))
<div class="topics mt-4">
<h4 class="text-sm font-bold text-[#343f52] mb-2 uppercase">{{ t('İçindekiler / Konu Başlıkları') }}</h4>
<div class="flex flex-wrap gap-2">
@foreach(array_slice($book['topics'], 0, 8) as $topic)
<span class="text-xs bg-gray-100 text-gray-600 px-2 py-1 rounded hover:bg-gray-200 transition-colors">{{ $topic }}</span>
@endforeach
@if(count($book['topics']) > 8)
<span class="text-xs text-[#e31e24] px-2 py-1 font-medium">+{{ count($book['topics']) - 8 }} {{ t('daha') }}...</span>
@endif
</div>
</div>
@endif
</div>
<div class="meta flex flex-wrap items-center justify-end gap-4 mt-auto pt-6">
@if(isset($book['google_play_link']))
<a href="{{ $book['google_play_link'] }}" target="_blank" class="inline-flex items-center gap-2 px-4 py-2 bg-black text-white rounded-lg hover:bg-gray-800 transition-colors">
<i class="uil uil-google-play text-xl"></i>
<div class="flex flex-col leading-tight">
<span class="text-[0.6rem] uppercase tracking-wider text-gray-400">Google Play'de</span>
<span class="text-sm font-bold">E-Kitap Olarak İncele</span>
</div>
</a>
@endif
</div>
</div>
</div>
</div>
</div>
@endforeach
</div>
@@ -0,0 +1,12 @@
{{-- Book Categories Filter --}}
<div class="flex flex-wrap mx-[-15px] !mb-10">
<div class="w-full flex-[0_0_auto] !px-[15px] max-w-full !text-center">
<ul class="flex flex-wrap justify-center mb-0 list-none pl-0 gap-2">
<li><a href="#" class="btn btn-sm btn-soft-primary !rounded-[50rem] hover:translate-y-[-0.15rem] transition-all">{{ t('Tümü') }}</a></li>
<li><a href="#" class="btn btn-sm btn-soft-ash !rounded-[50rem] hover:translate-y-[-0.15rem] transition-all">{{ t('Akademik') }}</a></li>
<li><a href="#" class="btn btn-sm btn-soft-ash !rounded-[50rem] hover:translate-y-[-0.15rem] transition-all">{{ t('Edebiyat') }}</a></li>
<li><a href="#" class="btn btn-sm btn-soft-ash !rounded-[50rem] hover:translate-y-[-0.15rem] transition-all">{{ t('Çocuk') }}</a></li>
<li><a href="#" class="btn btn-sm btn-soft-ash !rounded-[50rem] hover:translate-y-[-0.15rem] transition-all">{{ t('Bilim') }}</a></li>
</ul>
</div>
</div>
@@ -0,0 +1,13 @@
<section class="wrapper !bg-[#f6f7f9]">
<div class="container py-[4.5rem] xl:!py-24 lg:!py-24 md:!py-24">
<div class="flex flex-wrap mx-[-15px]">
<div class="xl:w-10/12 lg:w-10/12 w-full flex-[0_0_auto] !px-[15px] max-w-full !mx-auto !text-center">
<h2 class="!text-[calc(1.305rem_+_0.66vw)] font-bold xl:!text-[1.8rem] !leading-[1.3] !mb-3">{{ t('Kitaplarımız Hakkında Bilgi Almak İster misiniz?') }}</h2>
<p class="lead !leading-[1.65] text-[0.9rem] font-medium !mb-6">{{ t('Yayınlarımız hakkında detaylı bilgi almak için bizimle iletişime geçebilirsiniz.') }}</p>
<a href="/iletisim" class="btn btn-primary !text-white !bg-[#e31e24] border-[#e31e24] hover:text-white hover:bg-[#c31217] hover:!border-[#c31217] !rounded-[50rem] hover:translate-y-[-0.15rem] hover:shadow-[0_0.25rem_0.75rem_rgba(30,34,40,0.15)]">
{{ t('İletişime Geçin') }}
</a>
</div>
</div>
</div>
</section>
@@ -0,0 +1,37 @@
<section class="wrapper relative overflow-hidden text-white" style="background: linear-gradient(120deg, #8b5cf6 0%, #d946ef 50%, #f97316 100%) !important;">
{{-- Moving Shapes Overlay --}}
<div class="absolute inset-0 overflow-hidden pointer-events-none">
<div class="absolute top-[-20%] right-[-10%] w-[600px] h-[600px] bg-white/10 rounded-full blur-[80px] mix-blend-overlay animate-pulse duration-[8s]"></div>
<div class="absolute bottom-[-20%] left-[-10%] w-[500px] h-[500px] bg-blue-500/20 rounded-full blur-[100px] mix-blend-overlay"></div>
</div>
{{-- Pattern --}}
<div class="absolute inset-0 opacity-10" style="background-image: radial-gradient(rgba(255,255,255,0.8) 1.5px, transparent 1.5px); background-size: 40px 40px;"></div>
<div class="container relative z-10 pt-32 pb-40 xl:pt-48 lg:pt-44 md:pt-40 xl:pb-[10rem] lg:pb-[10rem] md:pb-[10rem] !text-center">
<div class="flex flex-col items-center justify-center animate-fade-in-up">
{{-- Badge --}}
<div class="mb-8">
<span class="inline-flex items-center gap-2 px-6 py-2 rounded-full bg-white/20 border border-white/30 backdrop-blur-md text-xs font-bold tracking-[0.2em] uppercase text-white shadow-xl hover:bg-white/30 transition-colors">
<i class="uil uil-star"></i> {{ t('Koleksiyon') }}
</span>
</div>
{{-- Main Title --}}
<h1 class="display-1 !text-[4rem] md:!text-[6rem] font-black text-white leading-none mb-6 tracking-tight drop-shadow-lg">
{{ t('Kitaplarımız') }}
</h1>
{{-- Divider --}}
<div class="w-24 h-2 bg-white rounded-full mb-8 shadow-sm opacity-90"></div>
{{-- Subtitle --}}
<p class="text-xl md:text-2xl text-white font-medium max-w-3xl mx-auto leading-relaxed drop-shadow-md">
{{ t('Gökkuşağı tadında bir bilgi yolculuğuna hazır olun.') }}
</p>
</div>
</div>
</section>
@@ -0,0 +1 @@
@include('templates.books.books')