对于我们这些从事网页设计行业或者正在考虑进入CSS框架的人来说,Bootstrap可能是CSS框架的起点,因为它对于初学者来说非常容易上手,并且在我们的需求量很大国家。但多年来我们经常听到(可以说是趋势)的一个 CSS 框架是 Tailwind CSS。对于那些使用或开始使用各种 JavaScript 库、React、Vue 等框架的人来说,Tailwind CSS 这个名字非常熟悉。即使在今天,Tailwind CSS 仍然是最流行的 CSS 框架。今天我会尝试用一种非常简单的方式来写Tailwind CSS,以便初学者可以很容易地开始Tailwind CSS。
Tailwind CSS 被称为实用优先的 CSS 框架。在这里,您可以通过直接在 HTML 文件中编写实用 CSS 类来创建所有类型的设计。使用 Tailwind CSS 不需要您在 HTML 文件之外做太多事情。它非常快速、灵活且可靠。 Tailwind CSS 基本上是由许多实用 CSS 类组成的,因此即使 CSS 文件在开发时很大,但当它为生产而构建时,它只会为 HTML 文件中使用的 CSS 类生成那些样式,这给了我们一个非常好的解决方案。小 CSS 文件。没有多余或重复的 CSS。
Tailwind CSS 基本上会扫描任何 HTML 文件、JavaScript 组件或任何类型的模板文件中的 CSS 类名称,然后为扫描的 CSS 生成样式,并为我们提供一个静态 CSS 文件,它是 HTML 文件的头部部分。打电话。
我们可以通过多种方式在项目中安装 Tailwind CSS。例如,Tailwind 使用 CLI、使用 PostCSS 并使用 CDN。您可能认为 CDN 很容易使用,但这里最大的问题是您没有获得 Tailwind 配置和自定义功能。这里我将向您展示如何使用 Tailwind CLI 在项目中安装 Tailwind CSS
第 1 步:
首先我们需要在项目中初始化node(您的机器必须安装Node.js 12.13.0版本或更高版本)。创建项目文件夹并在项目文件夹中打开终端,然后输入以下命令并按 Enter 按钮。
npm init -y
第 2 步:
现在我们需要安装 Tailwind CSS 作为开发依赖项。为此,在终端中输入以下命令,然后按 Enter 按钮。
npm install -D tailwindcss
第三步:
现在创建 tailwind.config.js 文件,其中包含 tailwind css 的所有配置。为此,在终端中输入以下命令,然后按 Enter 按钮。
npx tailwindcss init
第四步:
在 tailwind.config.js 文件的内容数组中,写入 Tailwind CSS 实用程序将扫描的所有模板扩展。这意味着我们希望文件中支持tailwind css。例如:我们只会在 html 文件中写入 tailwind css,因此这里我们在 content 数组中写入 .html。
//tailwind.config.js file module.exports = { content: ["*.{html}"], theme: { extend: {}, }, plugins: [], }
第 5 步:
现在创建 2 个文件夹。我分别将文件夹命名为 src 和 dist。在src文件夹中创建一个名为input.css(可以是任意名称)的css文件,并在dist文件夹中创建一个名为output.css(可以是任意名称)的css文件。 input.css 文件基本上由 Tailwind 本身使用,其中包含 Tailwind CSS 的所有指令。通过这些指令,Tailwind CSS 的基础、组件和实用程序 CSS 将被调用。在input.css文件中我们需要编写以下代码。
/* src/input.css */ @tailwind base; @tailwind components; @tailwind utilities;
ধাপ-৬ঃ
এখন টেইলউইন্ড ডেভেলপার মোডে কিভাবে বিল্ড হবে সেটা বলে দেয়ার জন্য package.json ফাইলে আমাদেরকে একটি বিল্ড স্ক্রিপ্ট লিখে দিতে হবে। এই স্ক্রিপ্টের মাধ্যমে Tailwind CLI টেম্পলেট ফাইল স্ক্যান করে স্ট্যাটিক সিএসএস বিল্ড করবে।
"scripts": { "build": "tailwindcss -i ./src/input.css -o ./dist/output.css -w" }
এখানে -i এর পরে ইনপুট সিএসএস ফাইলের এর পাথ, -o এর পরে অউটপুট সিএসএস ফাইলের পাথ নির্দেশ করে দিতে হবে এবং -w এর মাধ্যমে আমরা ওয়াচ ফ্ল্যাগ চালু করে দিয়েছি যাতে tailwind.config.js বা input.css ফাইলে কোন পরিবর্তন হলে অটোমেটিক টেইলউইন্ড বিল্ড হয়।
ধাপ-৭ঃ
এখন output.css ফাইলটি এইচটিএমএল ফাইলের হেডট্যাগ এর মধ্যে কল করতে হবে।
<link rel="stylesheet" href="dist/output.css">
ধাপ-৮ঃ
আমাদের প্রোজেক্ট এখন ১০০% প্রস্তুত টেইলউইন্ড সিএসএস লেখার জন্য। যেকোনো এইচটিএমএল ট্যাগের ক্লাস হিসাবে টেইলউইন্ড সিএসএস ইউটিলিটি ক্লাস গুলো লিখলেই প্রত্যাশিত অউটপুট পেয়ে যাবেন। কিন্তু এর আগে টার্মিনাল এ আপনাকে আর একটা কমান্ড চালু রাখতে হবে সেইটা নিম্নরূপঃ
npm run build
ধাপ-৯ঃ
এই ধাপটা একেবারে অপশনাল আপনি যদি কোড এডিটরে টেইলউইন্ড সিএসএস এর ইন্টেলিজেন্স সাপোর্ট পেতে চান তাহলে টেইলউইন্ড সিএসএস এর নিজস্ব এক্সটেনশন আপনার কোড এডিটরে ইন্সটল করে নিতে পারেন। যেমনঃ Visual Studio Code এর জন্য Tailwind CSS IntelliSense এক্সটেনশন।
正如我之前提到的,Tailwind CSS 是一个由许多实用 CSS 类组成的 CSS 框架。实用功能本质上使 Tailwind CSS 与所有其他 CSS 框架区分开来。就像Bootstrap CSS框架给我们提供了一个完整的组件,而Tailwind CSS框架并没有给我们提供这样一个完整的组件。在 Bootstrap 组件中,边距、填充、宽度、高度、字体大小、颜色都已指定,我们只需将该组件的 HTML 标记放入 HTML 文件中即可获得一个漂亮的卡片组件。另一方面,Tailwind CSS 为我们提供了许多由低级 CSS 制成的实用类,例如 margin、padding,我们可以用它们来按照我们的意愿进行设计。
如果我们想使用vanilla CSS进行设计,那么我们必须做两件事,那就是编写许多有意义的类名,并通过保存这些名称逐行编写CSS CSS文件。这样的话,时间就浪费在寻找有意义的类名上,而且我们还得自己写CSS,有时还会出现代码重复的问题。
另一方面,如果我们使用实用 CSS,我们就不需要再考虑类名,只需调用 Tailwind 的实用类即可完成工作。你可能会想如何记住这么多实用程序类,你不需要记住任何东西,Tailwind的几乎所有实用程序类都是声明性的,如果你的代码编辑器中有Tailwind自己的智能支持,你就不必担心这一点。如果你经常练习几天,一切都会在你的掌控之中。另外要知道的是,Tailwind CSS 都是以 rem 为单位计算的,即 p-6 表示 padding-1.5rem。让我们看一个例子:
<div class="p-6 max-w-sm mx-auto bg-white rounded-xl shadow-lg flex items-center space-x-4"> <div class="shrink-0"> <img class="h-12 w-12" src="https://aiarnob.com/frontend/assets/images/favicons/apple-touch-icon.png" alt="ChitChat Logo"> </div> <div> <div class="text-xl font-medium text-black">AI Arnob</div> <p class="text-slate-500">You have a new message!</p> </div> </div>
উপড়ের সুন্দর কার্ড টা ডিজাইন করার জন্য কিন্তু আমাদের কোন সিএসএস লিখতে হয় নাই জাস্ট কিছু টেইলউইন্ড ইউটিলিটি ক্লাস ব্যবহার করা হয়েছে। লক্ষ করলে দেখবেন যে, এখানে ইউটিলিটি ক্লাসগুলো কতটা ডিক্লারেটিভ, যেমনঃ
এতক্ষণে হয়ত বুঝে গিয়েছেন কিভাবে টেইলউইন্ড ইউটিলিটি ক্লাসগুলো কাজ করে। টেইলউইন্ড সিএসএস এর খুবই সুন্দর একটা ডকুমেন্টেশন আছে এবং সার্চ ফিচার টাও অনেক দুর্দান্ত কাজ করে, আপনার যা প্রয়োজন জাস্ট সার্চ বক্স এ লিখুন রেজাল্ট চলে আসবে চোখের পলকে।
এতক্ষণে হয়ত আপনার মনে প্রশ্ন জেগেছে যে, টেইলউইন্ড সিএসএস এর মাধ্যমে আমরা কিভাবে বিভিন্ন ধরনের স্টেট ম্যানেজ করতে পারি। এটার ও একটা খুব ভালো সমাধান আছে। যেকোনো ইউটিলিটি ক্লাসের সামনে আমাদেরকে জাস্ট মডিফায়ার লিখতে হবে। নিম্নের উদাহরণ তা দেখলেই বুঝতে পারবেন।
<button class="bg-sky-600 hover:bg-sky-700 text-white px-7 py-2 rounded-full"> Click me </button>
এখানে স্বাভাবিক ভাবে বাটন ব্যাকগ্রাউন্ড কালার দেয়া হয়েছে bg-sky-600 এবং হুভার স্টেট এ ব্যাকগ্রাউন্ড কালার দেয়া হয়েছে hover:bg-sky-700। এখানে hover: টা হল মডিফায়ার। এভাবে :focus, :active, :first-child, :required, ::before, ::after, ::placeholder, ::selection এরকম আরও অনেক মডিফায়ার ব্যবহার করে ইউটিলিটি ক্লাস লেখা যায়। বিভিন্ন স্টেট সম্পর্কে আরও বিস্তারিত জানার জন্য ডকুমেন্টেশন দেখুন।
টেইলউইন্ড সিএসএস এর বিভিন্ন রেস্পন্সিভ ইউটিলিটি ভারিয়ান্ট আছে যেগুলো ব্যবহার করে জটিল জটিল রেস্পন্সিভ ইন্টারফেস ডিজাইন করা যায়। টেইলউইন্ড সিএসএস মোবাইল ফার্স্ট এপ্রোচ এ কাজ করে তাই রেস্পন্সিভ এর জন্য ডিফল্ট যে ৫ ধরনের ব্রেকপয়েন্ট(চাইলে আপনি ইচ্ছামত কাস্টোমাইজ করতে পারবেন) আছে সেগুলোতে min-width উল্লেখ করা। ব্রেকপয়েন্টগুলো নিম্নরূপঃ
|ব্রেকপয়েন্ট প্রিফিক্স|মিনিমাম উইড্থ|সিএসএস মিডিয়া কুয়েরি|
|-|-|-|
|sm|640px|@media (min-width: 640px) { ... }|
|md| 768px |@media (min-width: 768px) { ... }|
|lg| 1024px |@media (min-width: 1024px) { ... }|
|xl| 1280px |@media (min-width: 1280px) { ... }|
|2xl| 1536px |@media (min-width: 1536px) { ... }|
সরাসরি কোন ইউটিলিটি ক্লাস লিখলে সেটি সবগুলো ডিভাইসে কাজ করে কিন্তু যখন কোন ইউটিলিটি ক্লাসের এর আগে রেস্পন্সিভ ইউটিলিটি ভারিয়ান্ট যেমনঃ sm: লেখা হবে তখন সেটি ডিভাইস উইড্থ 768px এর সমান বা এর চেয়ে বড় হলে কাজ করবে।
<img class="w-16 md:w-32 lg:w-48" src="...">
এখানে ইমেজ এর ডিফল্ট উইড্থ ১৬, মিডিয়াম স্ক্রীন এর জন্য হবে ৩২ এবং লার্জ স্ক্রীন এর জন্য হবে ৪৮। রেস্পন্সিভ ডিজাইন সম্পর্কে আরও বিস্তারিত জানার জন্য ডকুমেন্টেশন দেখুন।
টেইলউইন্ড সিএসএস ব্যবহার করে খুব সহজে আপনি আপনার ওয়েবসাইটে ডার্ক মোড এনাবল করতে পারবেন। সাইটকে ডার্ক করার জন্য টেইলউইন্ড সিএসএস dark নামে একটি ভারিয়ান্ট দেয়, যেটি যেকোনো ইউটিলিটি ক্লাস এর সামনে দিলে তখন তা শুধুমাত্র ডার্ক মোডে কাজ করবে।
<button class="bg-sky-600 hover:bg-sky-700 dark:bg-sky-200"> Save changes </button>
উপরের কোডে dark:bg-sky-200 লেখা হয়েছে যার ফলে ডার্ক মোডে বাটনটির ব্যাকগ্রাউন্ড কালার হবে bg-sky-200।
ডার্ক মোড স্ট্রাটেজি
ডার্ক মোড স্ট্রাটেজি ২ ধরনের হয় class স্ট্রাটেজি এবং media স্ট্রাটেজি। tailwind.config.js ফাইলে ডার্ক মোড স্ট্রাটেজি বলে দিতে হবে।
//tailwind.config.js file module.exports = { darkMode: 'class', // ... }
আপনি যদি কাস্টম বাটন ব্যবহার করে ডার্ক এবং লাইট মোড toggle করতে চান তাহলে class স্ট্রাটেজি ব্যবহার করতে পারেন আর যদি চান যে অপারেটিং সিস্টেমের প্রেফারেন্স এর উপর নির্ভর করে সাইট ডার্ক অথবা লাইট হবে তাহলে media স্ট্রাটেজি ব্যবহার করতে হবে। ডার্ক মোড সম্পর্কে আরও বিস্তারিত জানার জন্য ডকুমেন্টেশন দেখুন।
আমাদের প্রোজেক্ট এ অনেক সময় একই ডিজাইনের কম্পোনেন্ট একাধিক জায়গায় ব্যবহার করতে হয় তখন দেখা যায় ইউটিলিটি ক্লাসগুলোর ডুপ্লিকেশন চলে আসে। যেমনঃ নিম্নের ডিজাইনে রাউন্ডেড অবতার ডিজাইন বার বার রিপিট করা হয়েছে যার ফোলে একই ইউটিলিটি ক্লাস এর ডুপ্লিকেশন তৈরি হয়েছে।
<div class="p-6 max-w-sm mx-auto bg-white rounded-xl shadow-lg"> <div class="flex items-center space-x-2 text-base"> <h4 class="font-semibold text-slate-900">Users</h4> <span class="rounded-full bg-slate-100 px-2 py-1 text-xs font-semibold text-slate-700">100</span> </div> <div class="mt-3 flex -space-x-2 overflow-hidden"> <img class="inline-block h-12 w-12 rounded-full ring-2 ring-white object-cover" src="https://images.unsplash.com/photo-1491528323818-fdd1faba62cc" alt=""/> <img class="inline-block h-12 w-12 rounded-full ring-2 ring-white object-cover" src="https://images.unsplash.com/photo-1550525811-e5869dd03032" alt=""/> <img class="inline-block h-12 w-12 rounded-full ring-2 ring-white object-cover" src="https://images.unsplash.com/photo-1500648767791-00dcc994a43e" alt=""/> <img class="inline-block h-12 w-12 rounded-full ring-2 ring-white object-cover" src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e" alt=""/> <img class="inline-block h-12 w-12 rounded-full ring-2 ring-white object-cover" src="https://images.unsplash.com/photo-1517365830460-955ce3ccd263" alt=""/> </div> <div class="mt-3 text-sm font-medium"> <a href="#" class="text-blue-500">+ 95 others</a> </div> </div>
ইউটিলিটি ক্লাস এর ডুপ্লিকেশন সমস্যা সমাধানের জন্য টেইলউইন্ড সিএসএস আমাদের সুন্দর একটা প্রসেস দিয়েছে। input.css ফাইলে @apply ডিরেক্টিভ এর মাধ্যমে আমরা আমাদের নিজেরদের পছন্দ মতো ক্লাস নাম দিয়ে নতুন একটা কম্পোনেন্ট তৈরি করতে পারি।
@tailwind base; @tailwind components; @tailwind utilities; @layer components { .user-avatar { @apply inline-block h-12 w-12 rounded-full ring-2 ring-white object-cover; } }
এখন আমরা শুধু user-avatar ক্লাস টা ব্যবহার করলেই রাউন্ডেড অবতার ডিজাইনটা পেয়ে যাব। আরেকটা বিষয় @layer ডিরেক্টিভের মাধ্যমে নির্ধারিত হয় আমাদের তৈরি করা স্টাইল base, components নাকি utilities এর আন্ডার এ যাবে সেইটা।
এখানে আমি চেষ্টা করেছি নতুনদের জন্য টেইলউইন্ড সিএসএস এর বেসিক টা তুলে ধরতে এবং টেইলউইন্ড ভীতিটা দূর করতে। এই লেখাটি মনোযোগ দিয়ে পরে থাকলে আপনি টেইলউইন্ড সিএসএস ব্যবহার করে ডিজাইন করার জন্য প্রাথমিক ভাবে প্রস্তুত। টেইলউইন্ড সিএসএস এর আরও অ্যাডভান্স কিছু বিষয় আছে যেগুলো আপনারা অফিসিয়াল ডকুমেন্টেশন থেকে দেখে নিতে পারেন।
以上是适合初学者的孟加拉语 Tailwind CSS的详细内容。更多信息请关注PHP中文网其他相关文章!