Tailwind Css & PHP
Tailwind Css & PHP
Web Statis
Secara sederhana, website statis dapat didefinisikan sebagai website
yang kontennya konstan atau tidak berubah. Setiap laman dibuat
dengan kode HTML dan menunjukkan informasi yang sama kepada
setiap pengunjung. Hanya webmaster atau developer yang bisa
melakukan update pada konten website statis. Umumnya website statis
dibuat dengan menggunakan HTML dan CSS oleh developer yang
memahami pemrograman dan coding. Anda juga bisa menggunakan
generator website statis seperti Jekyll, Hexo, atau Hugo. Karena website
statis tidak membutuhkan update konten secara berkala, website statis
tidak memerlukan database. Biasanya website statis digunakan untuk
website perusahaan yang hanya perlu memberikan informasi-informasi
dasar seperti alamat, kontak, dan sejarah perusahaan.
Web Dinamis
Website dinamis mempunyai konten yang dapat di-update secara
berkala dengan mudah. Adanya kemampuan website dalam pembaruan
konten tersebut, maka diperlukan adanya database di dalamnya. Web
dinamis dibuat dengan bahasa pemrograman yang lebih kompleks dari
pada web statis, seperti menggunakan bahasa pemrograman PHP,
Javascript, Phyton, dan lain sebagainya. Perancangan web dinamis
dibuat semudah mungkin sehingga pengguna website dapat
menggunakan secara maksimal sesuai dengan kebutuhan para
penggunanya. Web dinamis memungkinkan untuk memiliki banyak user
untuk dapat melakukan proses update konten sendiri tanpa merubah
desain web utama.
kita akan membahas Tailwind css, tailwind css adalah framework css
yang paling mudah dipelajari.Tailwind css adalah framework CSS yang
bersifat utility-first. Artinya, framework ini menyediakan serangkaian
utility classes untuk merancang elemen UI langsung di markup, tanpa
harus meninggalkan HTML dan kembali ke stylesheet untuk
menentukan style.
Keuntungan utama dari metode ini adalah kamu tidak perlu menulis CSS
dari awal karena Tailwind telah menyediakan serangkaian utility classes
yang siap digunakan.
Awal Mula:
● Tailwind CSS muncul sebagai tanggapan terhadap kebutuhan
pengembang untuk meningkatkan produktivitas dalam pengembangan
UI.
● Penciptanya menyadari bahwa kebanyakan proyek UI memiliki pola
yang serupa dalam hal styling, sehingga mereka menciptakan kerangka
kerja yang memanfaatkan kelas-kelas utilitas untuk mengatur tampilan.
Filosofi:
● Salah satu poin utama dalam filosofi Tailwind CSS adalah "utility-first".
Pendekatan ini mengubah cara pengembang memikirkan CSS, dengan
menggabungkan serangkaian kelas utilitas kecil untuk membangun
tampilan daripada menulis gaya CSS khusus.
● Ini memungkinkan pengembang untuk fokus pada struktur dan
fungsionalitas, sementara tampilan ditangani oleh kelas-kelas utilitas.
Pertumbuhan dan Penerimaan:
● Seiring waktu, Tailwind CSS mendapatkan popularitas yang signifikan di
kalangan pengembang web.
● Komunitas pengguna Tailwind tumbuh dengan cepat, dengan kontribusi
dari berbagai pengembang yang menyediakan sumber daya, tutorial,
dan plugin yang berbeda.
<html>
<head>
<meta charset="UTF-8">
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body>
Hello world!
</h1>
</body>
</html>
Setelah itu, buka dengan web browser.
Maka hasilnya:
Setelah itu, masuk ke dalam folder yang sudah dibuat tadi dengan
perintah
cd belajar-tailwind
Kemudian seperti biasa, kita harus melakukan inisialisasi atau persiapan
awal dengan NPM di dalam folder ini.
Jalankan perintah:
npm init
Kemudian isi dengan data project, jika tidak mau diubah biarkan saja
kosong dengan menekan enter.
Perintah ini akan membuat file baru bernama package.json yang berisi
metadata project seperti (package name, version, description, author).
Selanjutnya kita akan menginstall tailwind css menggunakan npm.
Jalankan perintah ini di Terminal atau CMD:
npm install tailwindcss
untuk menginstall Tailwind ke dalam project.
Tunggulah sampai prosesnya selesai.
Setelah itu, lanjutkan membuat file konfigurasi tailwind.
Jalankan perintah:
npx tailwindcss init
Perintah ini akan membuat file baru bernama tailwind.config.js. File ini
berisi konfigurasi yang dibutuhkan Tailwind.
Berikut tampilan dari project setelah melakukan proses instalasi tailwind.
Kemudian, kita akan melakukan konfigurasi path konten pada file
tailwind.config.js.
Menjelaskan
/** @type {import('tailwindcss').Config} */
module.exports = {
content: ["./src/**/*.{html,js}"],
theme: {
extend: {},
},
plugins: [],
}
Perhatikan pada bagian content:, di sana kita menambahkan path
./src/**.
Artinya saat kita melakukan build CSS, si Tailwind akan mencari
class-class apa saja yang dipakai di file HTML dan JS pada path
tersebut.
Setelah itu, buat folder baru dengan nama src di dalam project.
Kemudian buat file CSS baru di dalam src dengan nama input.css dan
isi seperti ini:
@tailwind base;
@tailwind components;
@tailwind utilities;
Selanjutnya buatlah file index.html di dalam folder src untuk
menggunakan class-class dari Tailwind.
Isi file index.html seperti ini:
Menjelaskan
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
</body>
</html>
Karena kita akan buka di Live server atau localhost. Jika kamu mau
langsung buka tanpa live server, cukup tuliskan seperti ini tanpa /
../dist/output.css
Tanda ../ artinya kita mau akses file CSS yang berada di parent direktori.
Ini karena kita menyimpan file HTML-nya di dalam folder src.
O iya, file dist/output.css ini belum ada. File ini akan dibuat otomatis oleh
Tailwind.
Caranya:
Jalankan perintah berikut:
npx tailwindcss -i src/input.css -o dist/output.css
Perintah ini 👆 bertujuan untuk membuat file CSS (output.css)
berdasarkan class-class yang dipakai pada path konten (index.html).
Ini hasil build-nya:
Jika kamu ingin hasil build-nya di-optimasi (minify), gunakan opsi
--minify di belakangnya.
Contoh:
npx tailwindcss -i src/input.css -o dist/output.css --minify
Hasil output.css akan di-minify.
Hasil build yang minify ini cocok dipakai di production, karena ukurannya
lebih kecil dan sudah dioptimasi.
Jika kamu membuka file index.html di browser sekarang, maka tidak
akan ada hasil CSS dari Tailwind.
Tenang..
Jangan panik!
Ini karena kita menuliskan di href dengan /dist, seharusnya ../dist/
biar dia membaca folder dist.
Coba ubah /dist/ menjadi ../dist/.
<link rel="stylesheet" href="../dist/output.css" />
Maka hasilnya:
Menggunakan Live Server
Alur kerja kita di project Tailwind dengan NPM adalah seperti ini:
1. Ubah atau gunakan class di file HTML
2. Jalankan perintah untuk build CSS Tailwind
3. Lihat hasilnya di browser
Ini cukup merepotkan, karena harus dilakukan berulang-ulang.
Biar tidak begini, kita bisa pakai Live server dan membuat custom
script sendiri di package.json.
Silahkan buka file package.json, lalu di bagian "scripts" buat
menjadi seperti ini:
package.json
Menjelaskan
{
"name": "belajar-tailwind",
"version": "1.0.0",
"main": "index.js",
"scripts": {
},
"author": "",
"license": "ISC",
"dependencies": {
"tailwindcss": "^3.1.8"
}
Pada script ini, kita menentukan perintah untuk build CSS tailwind
dengan opsi --watch.
Ini artinya Tailwind akan memantau perubahan yang terjadi pada
konten, lalu langsung melakukan build otomatis.
Setelah itu, install extension Live Server Preview di VS Code.
#Tailwind#CSS
Di tutorial Tailwind kali ini, kita akan belajar membuat komponen Card
dengan efek image zoom-in saat mouse hover.
Kira-kira preview-nya seperti ini:
Gimana cara buatnya di Tailwind?
Mari kita pelajari..
Membuat File HTML
Buatlah file HTML baru dengan nama card-image-zoom-in.html dan isi
seperti ini:
card-image-zoom-in.html
Menjelaskan
<!DOCTYPE html>
<html lang="en">
<head>
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="bg-gray-200">
</html>
Pada kode HTML ini, kita menggunakan Tailwind dari CDN. Ini supaya
cepat dan gak ribet setup-setup pakai NPM.
Oke, setelah itu.. lanjut!
</picture>
</div>
Ini 👆 kode untuk membuat komponen card, kamu bisa atur ukuran
lebar, padding, dan margin dengan mengubah class p, m, dan w.
● p-4 artinya paddingnya sebesar 1rem atau 16px;
● m-4 artinya marginnya sebesar 1rem atau 16px;
● w-80 artinya lebarnya sebesar 20rem atau 320px;
Ini bisa kamu lihat di dokumentasi Tailwind.
Oke, sekarang coba buka card-image-zoom-in.html di browser.
Maka hasilnya:
Selanjutnya kita akan membuat efek Zoom-in pada image saat di hover
pointer
<img
class="hover:scale-125"
src="https://picsum.photos/360/240"
/>
</picture>
</p>
</div>
Pada kode ini kita melakukan scale image dengan class
hover:scale-125. Artinya image akan diperbesar menjadi 125 (1.25)
pada saat hover.
Hasilnya:
Imagenya berhasil di-zoom, tapi ini bukan seperti yang kita
inginkan.
Kita ingin:
“Ukuran gambarnya tetap, tapi hanya zoom-in pada bagian dalam
gambar saja”
Ini bisa kita lakukan dengan menambahkan overflow-hidden pada
kontainer gambar, yakni elemen <picture>.
Silahkan ubah kodenya menjadi seperti ini:
Menjelaskan
<div class="p-4 m-8 w-80 bg-white shadow-md rounded-xl">
<img
class="hover:scale-125"
src="https://picsum.photos/360/240"
/>
</picture>
</p>
</div>
Hasilnya:
Mantap 👍
Tapi transisinya terlalu cepat. 🤔
Menentukan Durasi dan Transisi di Tailwind
Biar terlihat smooth transisi efek zoom-in imagenya, kita perlu
menambahkan class duration dan ease-in.
● Class duration digunakan untuk menentukan seberapa lama
transisi dilakukan
● Class ease-in digunakan untuk menentukan kurva timeline
dari waktu, selain ease-in ada juga linear, ease-out,
ease-in-out.
Mari kita coba!
Silahkan ubah kode komponen card menjadi seperti ini:
Menjelaskan
<div class="p-4 m-8 w-80 bg-white shadow-md rounded-xl">
src="https://picsum.photos/360/240"
/>
</picture>
</p>
</div>
Class duration-150 artinya kita ingin menentukan durasi transisi
selama 150ms.
Maka hasilnya:
Nah, ini baru mantap-tapp 👍
Apa Selanjutnya?
Kita sudah berhasil membuat card dengan efek image zoom-in saat
hover.
Intinya untuk membuat efek ini, kita butuh class scale,
overflow-hidden, duration, dan ease-in.
Sisanya hanya tambahan biar komponennya terlihat lebih elegan
5. Gaya Tambahan:
● Beri gaya tambahan seperti bayangan, transisi, atau efek lainnya
untuk menambah kesan menarik. Gunakan kelas-kelas seperti
shadow-md atau transition duration-300.
content: ["./layouts/**/*.html"],
theme: {
extend: {},
},
plugins: [],
}
Setelah itu, kita butuh satu lagi file konfigurasi untuk postcess.
Buatlah file baru di folder project dengan nama
postcss.config.js dan isi sebagai berikut:
Menjelaskan
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
@tailwind components;
@tailwind utilities;
Pada file CSS ini, kita memanggil fungsi tailwind. Nantinya
akan diproses oleh tailwindcss dan postcss.
Step 6: Membuat Layout untuk Index
Buatlah file index.html di dalam folder layouts dengan isi
sebagai berikut:
Menjelaskan
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
{{ if .Site.IsServer }}
{{ end }}
</head>
<body>
Hello world!
</h1>
</body>
</html>
Pada layout ini, kita menggunakan beberapa class dari Tailwind
seperti text-3xl , font-bold, dan underline.
Apakah ini akan berhasil?
Mari kita coba!
Yap berhasil!
Tailwind berhasil kita gunakan pada Hugo.
Berikutnya kita akan coba gunakan pada Theme. Caranya
hampir sama, cuma beda di alamat PATH yang dipakai di
konfigurasi.
content: [
"./layouts/**/*.html",
"./theme/masukangin/layouts/**/*.html",
],
theme: {
extend: {},
},
plugins: [],
}
Intinya, di mana pun kita menggunakan cass Tailwind, maka
wajib kita tambahkan di sana.
Mungkin kedepan kita akan menggunakannya di content dan
shortcodes, maka bisa juga ditambahkan di sana.
Oke lanjut..
{{ if .Site.IsServer }}
<link rel="stylesheet" href="{{ $styles.RelPermalink }}" />
{{ else }}
{{ end }}
Setelah itu, buka file layouts/index.html pada tema masukangin
dan tambahkan kode berikut di sana.
Menjelaskan
{{ define "main" }}
</h1>
{{ end }}
Kemudian, agar file index.html ini tidak bentrok dengan
index.html yang ada di luar tema.. silahkan hapus index.html
yang di luar tema.
languageCode = 'en-us'
theme = 'masukangin'
● Kelebihan: