đ° āϧāĻžāĻĒ ā§§: Tailwind CSS āĻāύā§āϏāĻāϞ āĻāϰāĻž (Vite āϏāĻš)
Laravel 9/10+ āĻāĻžāϰā§āϏāύ⧠Vite āĻĄāĻŋāĻĢāϞā§āĻāĻāĻžāĻŦā§ āĻĨāĻžāĻā§āĨ¤ āϤāĻžāĻ āĻāĻŽāϰāĻž āύāĻŋāĻā§āϰ āĻŽāϤ⧠āĻāϰ⧠Tailwind CSS āĻāύā§āϏāĻāϞ āĻāϰāĻŦā§:
â āĻāĻžāϰā§āĻŽāĻŋāύāĻžāϞ⧠āύāĻŋāĻā§āϰ āĻāĻŽāĻžāύā§āĻĄ āĻāĻžāϞāĻžāĻ:
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
âĄī¸ āĻāϤ⧠āĻĻā§āĻāĻŋ āĻĢāĻžāĻāϞ āϤā§āϰāĻŋ āĻšāĻŦā§:
tailwind.config.js
postcss.config.js
đ§Š āϧāĻžāĻĒ ā§¨: Tailwind āĻāύāĻĢāĻŋāĻāĻžāϰ āĻāϰāĻž
đš tailwind.config.js āĻĢāĻžāĻāϞ⧠āύāĻŋāĻā§āϰ āĻŽāϤ⧠āĻāϰ⧠content āϏā§āĻ āĻāϰā§:
/** @type {import('tailwindcss').Config} */
module.exports = {
content: [
"./resources/**/*.blade.php",
"./resources/**/*.js",
"./resources/**/*.vue",
],
theme: {
extend: {},
},
plugins: [],
}
āĻāĻ content āĻŦāϞ⧠Tailwind āĻā§ āĻā§āύ āĻā§āύ āĻĢāĻžāĻāϞ⧠āĻā§āϞāĻžāϏ āĻā§āĻāĻāϤ⧠āĻšāĻŦā§āĨ¤
đ¨ āϧāĻžāĻĒ ā§Š: Tailwind CSS āĻĢāĻžāĻāϞ āϝā§āĻā§āϤ āĻāϰāĻž
đš resources/css/app.css āĻĢāĻžāĻāϞ⧠āύāĻŋāĻā§āϰ ā§ŠāĻāĻŋ āϞāĻžāĻāύā§āϰ āĻā§āĻĄ āϝā§āĻ āĻāϰā§:
@tailwind base;
@tailwind components;
@tailwind utilities;
āĻāĻ āĻĢāĻžāĻāϞ Laravel Jetstream āĻāϰ āϏāĻŽāϝāĻŧ āĻ āĻā§āĻŽā§āĻāĻŋāĻ āϤā§āϰāĻŋ āĻšāϝāĻŧā§ āϝāĻžāϝāĻŧāĨ¤ āϝāĻĻāĻŋ āύāĻž āĻĨāĻžāĻā§ āϤāĻžāĻšāϞ⧠āύāĻŋāĻā§ āĻŦāĻžāύāĻŋāϝāĻŧā§ āύāĻžāĻāĨ¤
âī¸ āϧāĻžāĻĒ ā§Ē: Vite Assets āĻāĻŽā§āĻĒāĻžāĻāϞ āĻāϰāĻž
â āĻāĻžāϰā§āĻŽāĻŋāύāĻžāϞ⧠āϞāĻŋāĻā§:
npm run dev
âĄī¸ āĻāϤ⧠Tailwind CSS public/build āĻĢā§āϞā§āĻĄāĻžāϰ⧠compiled āĻšāϝāĻŧā§ āϝāĻžāĻŦā§āĨ¤
đĨ āĻĒā§āϰā§āĻĄāĻžāĻāĻļāύā§āϰ āĻāύā§āϝ (live server āĻ) āĻāĻžāϞāĻžāϤ⧠āĻšāĻŦā§:
npm run build
đ§ą āϧāĻžāĻĒ ā§Ģ: Blade Layout āĻĢāĻžāĻāϞ āϤā§āϰāĻŋ āĻāϰāĻž
â
resources/views/layouts/app.blade.php āĻĢāĻžāĻāϞ āĻŦāĻžāύāĻžāĻ:
<!DOCTYPE html>
<html lang="bn">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@yield('title', 'Laravel Ecommerce')</title>
@vite('resources/css/app.css')
</head>
<body class="bg-gray-100 text-gray-900">
<!-- Navbar -->
<header class="bg-white shadow p-4">
<div class="container mx-auto flex justify-between">
<a href="/" class="text-xl font-bold">đĻ āĻāĻāĻŽāĻžāϰā§āϏ</a>
<nav>
<a href="/" class="px-4">āĻšā§āĻŽ</a>
<a href="/shop" class="px-4">āĻĻā§āĻāĻžāύ</a>
<a href="/login" class="px-4">āϞāĻāĻāύ</a>
</nav>
</div>
</header>
<!-- Content Area -->
<main class="container mx-auto py-10">
@yield('content')
</main>
</body>
</html>
đ§Ē āϧāĻžāĻĒ ā§Ŧ: Layout āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž
â
resources/views/welcome.blade.php āĻĢāĻžāĻāϞ āĻ āύāĻŋāĻā§āϰ āĻŽāϤ⧠āĻāϰā§:
@extends('layouts.app')
@section('title', 'āĻšā§āĻŽāĻĒā§āĻ')
@section('content')
<h1 class="text-3xl font-bold text-center">āĻāĻŽāĻžāĻĻā§āϰ Laravel āĻāĻāĻŽāĻžāϰā§āϏ āĻāϝāĻŧā§āĻŦāϏāĻžāĻāĻā§ āϏā§āĻŦāĻžāĻāϤāĻŽ!</h1>
<p class="mt-4 text-center text-gray-600">āĻāĻ āĻĒā§āĻāĻāĻāĻŋ Tailwind CSS āĻĻāĻŋāϝāĻŧā§ āĻĄāĻŋāĻāĻžāĻāύ āĻāϰāĻž āĻšāϝāĻŧā§āĻā§āĨ¤</p>
@endsection
đ¨ āϧāĻžāĻĒ ā§: Tailwind Global Customization (Color, Typography, Spacing)
â
tailwind.config.js āĻĢāĻžāĻāϞ⧠theme.extend āĻ āύāĻŋāĻā§āϰ āĻāĻžāϞāĻžāϰ/āĻĢāύā§āĻ āϝā§āĻā§āϤ āĻāϰā§:
module.exports = {
content: [
"./resources/**/*.blade.php",
"./resources/**/*.js",
"./resources/**/*.vue",
],
theme: {
extend: {
colors: {
primary: '#0f172a',
accent: '#f43f5e',
},
fontFamily: {
sans: ['Poppins', 'sans-serif'],
},
},
},
plugins: [],
}
āϤāĻžāϰāĻĒāϰ āϤā§āĻŽāĻŋ āĻā§āϞāĻžāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§:
<div class="bg-primary text-white p-6">Primary Background</div>
<h1 class="font-sans text-accent">Accent Color</h1>
<div class="h-128 bg-gray-200">Custom Height</div>
đ āϧāĻžāĻĒ ā§Ž: Responsive Grid/Container System
Tailwind CSS āĻĻāĻŋāϝāĻŧā§ āϏāĻšāĻā§ āĻā§āϰāĻŋāĻĄ āĻāĻŦāĻ āĻāύā§āĻā§āĻāύāĻžāϰ āĻŦāĻžāύāĻžāύ⧠āϝāĻžāϝāĻŧāĨ¤
â Responsive Container:
<div class="container mx-auto px-4">
<h1 class="text-2xl font-bold">Welcome</h1>
</div>
â Responsive Grid Layout:
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
<div class="bg-white shadow p-4">āĻĒāĻŖā§āϝ ā§§</div>
<div class="bg-white shadow p-4">āĻĒāĻŖā§āϝ ⧍</div>
<div class="bg-white shadow p-4">āĻĒāĻŖā§āϝ ā§Š</div>
</div>
đ āĻļā§āώ āĻāĻĨāĻž:
| āĻŦāĻŋāώāϝāĻŧ | āϏā§āĻā§āĻĒ |
|---|---|
| Tailwind āĻāύā§āϏāĻāϞ | npm install -D tailwindcss... |
| config āĻāϰāĻž | tailwind.config.js |
| blade layout | layouts/app.blade.php |
| āĻāĻŋāĻāϤ⧠layout āĻŦā§āϝāĻŦāĻšāĻžāϰ | @extends('layouts.app') |
| asset āϰāĻžāύ | npm run dev |
| grid/spacing/font/color āĻāĻžāϏā§āĻāĻŽ | tailwind.config.js āĻ extend |
đ āĻāĻāύ āĻāĻžāĻāϞ⧠āĻāĻŽāĻŋ āϤā§āĻŽāĻžāĻā§ āĻĻā§āĻāĻžāϤ⧠āĻĒāĻžāϰāĻŋ:
- Hero āϏā§āĻāĻļāύ āĻŦāĻžāύāĻžāύ⧠Tailwind āĻĻāĻŋāϝāĻŧā§
- āĻĒāĻŖā§āϝ āĻāĻžāϰā§āĻĄ (Product Card) āĻŦāĻžāύāĻžāύ⧠āĻā§āϰāĻŋāĻĄā§
- Dark mode āĻāĻŦāĻ responsiveness
- Header, Footer, Mobile NavBar