Tìm hiểu về Tailwind CSS

Xin chào mọi người, có siêu nhiều bạn đang thắc mắc là có 1 framework CSS nào khác thay đổi thế được Bootstrap hay ko ? Theo bản thân mình thấy hiện giờ có siêu nhiều những framework CSS khác nhau nhưng Bootstrap, Basis thì vẫn là cha đẻ , là nguồn ý tưởng vô tận của những framework CSS khác. Dạo sắp đây chúng ta thấy nổi trên thị trường 1 thứ mang trong mình tên Tailwind CSS giúp xây dựng web site 1 bí quyết nhanh chóng nhất sở hữu những thuộc tính CSS đã được gán thành những class riêng, lúc dùng chúng ta chỉ có việc gọi ra để dùng. Vậy 1 câu hỏi đặt ra là tại sao chúng ta ko dùng Bootstrap cho nó cổ xưa đi ? Dĩ nhiên chắn framwork CSS này nó buộc phải có 1 điểm cộng gì nó thì những lập trình Entrance-end new dùng chứ nhỉ ? Chúng mình sẽ điểm qua 1 vài những ưu nhược điểm của nó nhé.

😃

Thì nó là 1 utility-first CSS framework, nó cũng giống như Bootstrap, nó có những class built-in mà chúng ta có thể dùng. Tailwind CSS có nhiều những class bao gồm những thuộc tính CSS khác nhau và quan yếu, chúng ta có thể dễ dàng mở rộng tạo new ra những class bằng chính những class của nó.

Nói chung là nó cũng na ná Boostrap thôi nhưng 1 điều tiện lợi lúc dùng framework này là chúng ta có nhiều class new hơn tiện lợi hơn Boostrap. Người mua có thể tham khảo tại đây trong Tailwind. Và hơn nữa, việc có nhiều thêm những class nhưng sở hữu quy tắc đặt tên vô cùng thân thiện sở hữu khách hàng, khách hàng cũng có thể nhìn vào class ấy và có thể biết được class này nó đang fashion loại gì. Chúng ta cũng buộc phải nói tới khả năng tùy thuộc} biến và mở rộng cao, đem tới cho ta sự linh hoạt ko giới hạn.

Sau đây mình sẽ giới thiệu cho người mua bí quyết cài đặt Tailwind trong Nextjs nhé. Trường hợp ai dùng Nuxtjs thì người mua cũng có thể khiến tương tự động, trên 1 góc độ nào ấy mình thấy về cơ bản 2 loại này nó giống nhau.

Trước tiên người mua buộc phải tạo 1 Nextjs mission

npm init -y npm set up -save subsequent react react-dom @zeit/next-css

Tiếp theo chúng ta sẽ cài tailwind và 1 vài những package deal khác được dùng để complie CSS

npm set up tailwindcss autoprefixer postcss-loader -save-dev

Và chúng ta cũng cần cài thêm next-css plugin

npm set up @zeit/next-css

Lúc chúng ta init nextjs mission xong rồi, thì chúng ta sẽ tạo 1 file sentayho.com.vn để require 2 plugin tailwindcss và autoprefixer vào nhé

sentayho.com.vnrts = { plugins: [ require(‘tailwindcss’), require(‘autoprefixer’), ], }

Tiếp theo trong file sentayho.com.vn chúng ta sẽ config như sau

import path from ‘path’ import fs from ‘fs’ import withPlugins from ‘next-compose-plugins’ import css from ‘@zeit/next-css’ import much less from ‘@zeit/next-less’ import lessToJS from ‘less-vars-to-js’ import progressBar from ‘next-progressbar’ import nextConfig from ‘./subsequent.base.config’ export default withPlugins([ progressBar, css, [less, lessConfig], ], nextConfig)

Xem Thêm  Pandora Nghĩa Là Gì – Những Bí Ẩn Quanh Cái Vòng Tay Pandora

Trong file sentayho.com.vn người mua cho đoạn script này vào như sau

“scripts”: { “dev”: “subsequent”, “construct”: “subsequent construct”, “begin”: “subsequent begin” }

Trong thư phần property trên trong mission người mua tạo types/much less/tailwind.much less

@tailwind base; @tailwind utilities; @tailwind elements;

Tiếp theo người mua tạo thêm sentayho.com.vn sở hữu nội dung

@import “./libs/tailwind.much less”;

Mình ko muốn đi giới thiệu từng class trong tailwind css, việc ấy sẽ gây mất thời kì và nhàm chán. Thay đổi vào ấy mình sẽ thử tạo ra 1 web page và fashion theo class rồi mình sẽ nói cụ thể cho người mua nhé. hehe. Ngay bây giờ} chúng mình sẽ vào folder web page và tạo 1 file sentayho.com.vn nhé

import ‘~/property/types/much less/app.much less’; const Demo = () => ( <div className=”flex justify-between items-center py-4 bg-blue-900″> <div className=”flex-shrink-0 ml-10 cursor-pointer”> <i className=”fas fa-drafting-compass fa-2x text-orange-500″></i> <span className=”ml-1 text-3xl text-blue-200 font-semibold”>Viblo</span> </div> <i className=”fas fa-bars fa-2x seen md:invisible mr-10 md:mr-0 text-blue-200 cursor-pointer”></i> <ul className=”hidden md:flex overflow-x-hidden mr-10 font-semibold”> <li className=”mr-6 p-1 border-b-2 border-orange-500″> <a className=”text-blue-200 cursor-default” href=”#”>House</a> </li> <li className=”mr-6 p-1″> <a className=”text-white hover:text-blue-300″ href=”#”>Companies</a> </li> <li className=”mr-6 p-1″> <a className=”text-white hover:text-blue-300″ href=”#”>Tasks</a> </li> <li className=”mr-6 p-1″> <a className=”text-white hover:text-blue-300″ href=”#”>Workforce</a> </li> <li className=”mr-6 p-1″> <a className=”text-white hover:text-blue-300″ href=”#”>About</a> </li> <li className=”mr-6 p-1″> <a className=”text-white hover:text-blue-300″ href=”#”>Contacts</a> </li> </ul> </div> ); export default Demo;

Tiếp theo chúng ta sẽ bật npm run dev, đánh đường dẫn, kết quả chúng ta sẽ thu được như sau

Mình sẽ đi qua 1 vài những class như sau: Trước tiên thì chúng ta muốn tạo được thanh menu thì chúng ta sẽ buộc phải tạo ra 1 div có class flex container để chứa đa số những thành phần trong thanh menu ấy, ấy chính là emblem, những navigation như House, Service, Undertaking, Workforce, About, Contacts. Và chúng ta cũng ko quên fashion padding và background cho thanh menu py-4 thêm padding cho trên và dưới sở hữu những thông số py-1 tức là padding-top và padding-bottom từng bên 0.25rem, tương tự động chúng ta cũng nâng cao dần lên từ py-1 cho tới py-64, người mua tham khảo trên đây nhé. Cùng sở hữu nữa ấy chính là class bg-orange-900 tức là thuộc tính css background-color màu sắc cam và 900 chính là mức độ đậm của màu sắc cam.

Chúng ta sẽ trước tiên tới sở hữu emblem, chúng ta dùng class ml-10 để lo có thể bí quyết margin bên trái 1 khoảng là 2.5 rem. và lúc di chuột qua biểu tượng emblem này thì chuột sẽ thay đổi đổi thành hình bàn tay lúc chúng ta có thuộc tính cursor-pointer.

Chữ Viblo chúng ta muốn nâng cao font-size lên thì dùng class text-3xl, màu sắc chữ xan blue tương đối nhẹ text-blue-200 và 1 chút font-weight: 600 font-semibold

Icon 3 gạch được fashion sở hữu class seen lúc width màn hình dưới 768px, lúc màn hình lớn hơn thì icon 3 gạch này sẽ bị ẩn đi sở hữu class md:invisible . Người mua lưu ý, trong tailwind css thì lúc chúng ta muốn responsive cho những màn thì chúng ta chỉ cần thêm những tiền tố sm:, md:, lg:, xl: vào trước những class . Người mua tham khảo thêm responsive trên đây.

Xem Thêm  Phương pháp Chọn Gà Chọi Đòn Hay Bách Chiến Bách Thắng

Tiếp tới ấy chính là thành phần hợp tác điều hướng House, Service, Undertaking, Workforce, About, Contacts, Chúng ta thấy gần như những hợp tác điều hướng này có cùng class fashion như nhau nhưng thành phần House sẽ khiến khác đi 1 chút bằng những thêm fashion cursor-default. Và đáng nhẽ ra nó sẽ thành 1 danh sách sổ xuống nhưng do dùng class hidden nên lúc màn hình tầm 768px trở xuống danh sách ấy sẽ bị ẩn đi, và lúc màn hình trên 768px thì danh sách ấy được hiện lên nằm ngang sở hữu class md:flex overflow-x-hidden.

Như người mua đã biết đấy, lúc chúng ta dùng framwork này bên cạnh việc nhiều class hơn tiện cho việc chúng ta fashion thì chúng ta còn có thể dùng lại những class build-in trong framework này để viết 1 class new. Đấy chính là lúc chúng ta dùng từ khóa @apply.

Ngay bây giờ} chúng ta lại mở file property/types/much less/sentayho.com.vn ra chúng ta sẽ viết thêm css cho class như sau

@import “./libs/tailwind.much less”; .demo { @apply flex justify-between items-center py-4 bg-blue-900; }

Và tiếp tục người mua thay đổi đoạn code thành như sau thì người mua cũng nhận được kết quả giống y hệt như ban đầu

import ‘~/property/types/much less/app.much less’; const Demo = () => ( <div className=”demo”> <div className=”flex-shrink-0 ml-10 cursor-pointer”> <i className=”fas fa-drafting-compass fa-2x text-orange-500″></i> <span className=”ml-1 text-3xl text-blue-200 font-semibold”>Viblo</span> </div> <i className=”fas fa-bars fa-2x seen md:invisible mr-10 md:mr-0 text-blue-200 cursor-pointer”></i> <ul className=”hidden md:flex overflow-x-hidden mr-10 font-semibold”> <li className=”mr-6 p-1 border-b-2 border-orange-500″> <a className=”text-blue-200 cursor-default” href=”#”>House</a> </li> <li className=”mr-6 p-1″> <a className=”text-white hover:text-blue-300″ href=”#”>Companies</a> </li> <li className=”mr-6 p-1″> <a className=”text-white hover:text-blue-300″ href=”#”>Tasks</a> </li> <li className=”mr-6 p-1″> <a className=”text-white hover:text-blue-300″ href=”#”>Workforce</a> </li> <li className=”mr-6 p-1″> <a className=”text-white hover:text-blue-300″ href=”#”>About</a> </li> <li className=”mr-6 p-1″> <a className=”text-white hover:text-blue-300″ href=”#”>Contacts</a> </li> </ul> </div> ); export default Demo;

Đây có thể nói là 1 đặc điểm biệt lập mà mình thích nhất trên framework này, tại vì nó giúp mình dùng được những class built-in của framework trong 1 class new, trông code chúng ta gọn gàng hơn siêu là nhiều. Trường hợp dùng Bootstrap thì mình sẽ buộc phải viết hết đa số những class built-in của framework mà mình cần vào thẻ ấy, như thế nhìn code front-end mình trông nó ko gọn tí nào cả.

Tiếp theo ấy chính là bạn có thể generate responsive, hover, focus, energetic, group-hovercác class này bằng bí quyết chúng ta sẽ viết trong file css , wrap chúng bằng @variants

Dí dụ

/* Enter */ @variants hover, focus { .banana { coloration: yellow; } } /* Output */ .banana { coloration: yellow; } .hover:banana:hover { coloration: yellow; } .focus:banana:focus { coloration: yellow; }

Viết 1 mà sinh ra được nhiều thứ như này, thực ngắn gọn mà lại mang trong mình lại hiệu quả đúng ko người mua.

Tiếp theo tới responsive nó cũng tương tự động như vậy

.bg-gradient-brand { background-image: linear-gradient(blue, inexperienced); } /* … */ @media (min-width: 640px) { .sm:bg-gradient-brand { background-image: linear-gradient(blue, inexperienced); } /* … */ } @media (min-width: 768px) { .md:bg-gradient-brand { background-image: linear-gradient(blue, inexperienced); } /* … */ } @media (min-width: 1024px) { .lg:bg-gradient-brand { background-image: linear-gradient(blue, inexperienced); } /* … */ } @media (min-width: 1280px) { .xl:bg-gradient-brand { background-image: linear-gradient(blue, inexperienced); } /* … */ }

Xem Thêm  Photo voltaic System Scope 3.2.3 – Khám phá hệ mặt trời, hành tinh, vì sao

Dùng phương thức theme() để người mua có thể truy cập là lấy ra giá trị trong Tailwind config. Dí dụ bạn có file sentayho.com.vn như sau :

sentayho.com.vnrts = { necessary: true, theme: { screens: { vs: ‘320px’, sm: ‘576px’, md: ‘768px’, lg: ‘992px’, xl: ‘1200px’, xxl: ‘1600px’, }, prolong: {}, fontSize: { xs: ‘.75rem’, sm: ‘.875rem’, tiny: ‘.875rem’, base: ‘1rem’, lg: ‘1.125rem’, xl: ‘1.25rem’, ‘2xl’: ‘1.5rem’, ‘3xl’: ‘1.875rem’, ‘4xl’: ‘2.25rem’, ‘5xl’: ‘3rem’, ‘6xl’: ‘4rem’, ‘7xl’: ‘5rem’, ‘8xl’: ‘6rem’, ‘9xl’: ‘7rem’, ’10xl’: ‘8rem’, ’11xl’: ‘9rem’, }, }, variants: {}, plugins: [], }

Ngay bây giờ} người mua có file css như sau

.btn-blue { font-size: theme(‘fontSize.11xl’); }

Thực dễ dàng đúng ko nào người mua.

Trong mission nextjs, chúng ta sẽ tạo 1 file sentayho.com.vn sở hữu nội dung như sau:

sentayho.com.vnrts = { necessary: true, theme: { screens: { vs: ‘320px’, sm: ‘576px’, md: ‘768px’, lg: ‘992px’, xl: ‘1200px’, xxl: ‘1600px’, }, prolong: {}, fontSize: { xs: ‘.75rem’, sm: ‘.875rem’, tiny: ‘.875rem’, base: ‘1rem’, lg: ‘1.125rem’, xl: ‘1.25rem’, ‘2xl’: ‘1.5rem’, ‘3xl’: ‘1.875rem’, ‘4xl’: ‘2.25rem’, ‘5xl’: ‘3rem’, ‘6xl’: ‘4rem’, ‘7xl’: ‘5rem’, ‘8xl’: ‘6rem’, ‘9xl’: ‘7rem’, ’10xl’: ‘8rem’, ’11xl’: ‘9rem’, }, }, variants: {}, plugins: [], }

Dí dụ trên trên mình custome lại những kích cở của màn hình, fontSize những thứ . Tương tự động người mua muốn custome font-family thì người mua chỉ việc thêm vào file này thôi

sentayho.com.vnrts = { necessary: true, theme: { screens: { vs: ‘320px’, sm: ‘576px’, md: ‘768px’, lg: ‘992px’, xl: ‘1200px’, xxl: ‘1600px’, }, prolong: {}, fontSize: { xs: ‘.75rem’, sm: ‘.875rem’, tiny: ‘.875rem’, base: ‘1rem’, lg: ‘1.125rem’, xl: ‘1.25rem’, ‘2xl’: ‘1.5rem’, ‘3xl’: ‘1.875rem’, ‘4xl’: ‘2.25rem’, ‘5xl’: ‘3rem’, ‘6xl’: ‘4rem’, ‘7xl’: ‘5rem’, ‘8xl’: ‘6rem’, ‘9xl’: ‘7rem’, ’10xl’: ‘8rem’, ’11xl’: ‘9rem’, }, fontFamily: { show: [‘Gilroy’, ‘sans-serif’], physique: [‘Graphik’, ‘sans-serif’], }, }, variants: {}, plugins: [], }

Dễ như ăn kẹo đúng ko người mua Tìm hiểu về Tailwind CSS))

Đây là 1 điểm mình siêu thích trên framework CSS này bởi vì chúng ta có thể viết class cho những sự kiện hover, focus, energetic, disabled, visited, first-child, last-child, odd-child, even-child, focus-within, cho những thẻ.

Ví như

<kind> <enter class=”bg-gray-200 hover:bg-white hover:border-gray-300 focus:outline-none focus:bg-white focus:shadow-outline focus:border-gray-300 …”> <button class=”bg-teal-500 hover:bg-teal-600 focus:outline-none focus:shadow-outline …”> Signal Up </button> </kind>

Đoạn code trên là chúng ta tạo ra 1 ô enter sở hữu nút Enroll, thay đổi vì buộc phải viết css dài dướm dà chúng ta thêm tiền tố hover, focus vào trước class thôi là chúng ta đã có thể thực hành thay đổi đổi fashion lúc hover hoặc focus vào thẻ html. Người mua tham khảo thêm những thí dụ tại đây

Vậy qua ấy, qua 1 vài những tìm hiểu của mình về Tailwind CSS trên trên cũng giúp người mua phần nào mường tượng ra nó là loại gì, nó dùng như thế nào, 1 vài những dặc điểm đặc trung của nó ra sao. Mong rằng qua bài viết này của mình người mua có thể dùng và ứng dụng chúng vào những mission người mua đang khiến. Cảm ơn người mua đã đọc bài viết của mình.