0

9 Đoạn mã Tailwind thông minh giúp tăng tốc phát triển

Chào các lập trình viên giao diện người dùng! Bạn đã sẵn sàng để tăng tốc quy trình phát triển của mình chưa? Nếu bạn đang sử dụng Tailwind CSS, thì bạn đã đi đúng hướng rồi. Nhưng nếu tôi nói rằng có một số đoạn mã cực kỳ hữu ích có thể giúp công việc của bạn nhanh hơn và hiệu quả hơn nữa thì sao? Đúng vậy – chúng ta sắp khám phá 9 đoạn mã Tailwind thông minh giúp bạn tăng tốc phát triển và tạo ra giao diện tuyệt đẹp chỉ trong nháy mắt.

Tailwind CSS đã cách mạng hóa cách chúng ta thiết kế web, mang đến một framework ưu tiên tiện ích, giúp phát triển giao diện người dùng nhanh chóng. Nhưng ngay cả với hệ thống lớp tiện ích phong phú của Tailwind, vẫn luôn có những cách để tối ưu hóa và đơn giản hóa quy trình làm việc. Đó chính là lúc các đoạn mã này phát huy tác dụng. Chúng như những vũ khí bí mật trong bộ công cụ của nhà phát triển, sẵn sàng sử dụng bất cứ khi nào bạn cần.

Vậy nên, hãy mở trình chỉnh sửa mã yêu thích của bạn, khởi động môi trường phát triển và cùng khám phá những đoạn mã Tailwind tiết kiệm thời gian này. Dù bạn là người mới sử dụng Tailwind hay đã là một chuyên gia dày dạn kinh nghiệm, tôi đảm bảo rằng bạn sẽ tìm thấy thứ gì đó hữu ích trong danh sách này. Hãy bắt đầu thôi nào!

1. Container được căn giữa hoàn hảo

Tất cả chúng ta đều đã từng cố gắng tạo một container được căn giữa hoàn hảo, trông đẹp trên mọi kích thước màn hình. Với Tailwind, việc này dễ hơn bao giờ hết, nhưng chúng ta có thể làm cho nó thậm chí còn đơn giản hơn với đoạn mã hữu ích này:

<div class="container mx-auto px-4 sm:px-6 lg:px-8">
  <!-- Your content here -->
</div>

Đoạn mã này tạo một vùng chứa ở giữa với đệm phản hồi. Lớp container này đặt chiều rộng tối đa dựa trên điểm ngắt hiện tại, mx-auto căn giữa theo chiều ngang và các lớp đệm (px-4 sm:px-6 lg:px-8) đảm bảo nội dung của bạn không bị dính vào các cạnh trên màn hình lớn hơn.

Tại sao điều này hữu ích? Nó cung cấp cho bạn một bố cục nhất quán, đáp ứng mà không cần phải viết CSS tùy chỉnh. Bạn có thể sử dụng nó như một wrapper cho nội dung chính của mình, đảm bảo mọi thứ được căn chỉnh gọn gàng và đáp ứng trên mọi thiết bị.

2. Bố cục lưới Responsive

Tạo bố cục lưới responsive là một nhiệm vụ phổ biến trong phát triển UI. Tailwind giúp bạn thực hiện dễ dàng, nhưng đây là một đoạn mã thiết lập lưới phản hồi linh hoạt chỉ trong một lần:

<div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4">
  <!-- Grid items here -->
</div>

Đoạn mã này tạo ra một lưới bắt đầu bằng một cột trên thiết bị di động, sau đó tăng lên 2, 3 và 4 cột khi kích thước màn hình tăng lên. Lớp gap-4 này thêm một số khoảng cách giữa các mục lưới.

Điều này đặc biệt hữu ích cho những thứ như danh sách sản phẩm, thư viện ảnh hoặc bất kỳ nội dung nào cần hiển thị ở định dạng lưới. Nó phản hồi ngay khi xuất xưởng, giúp bạn tiết kiệm thời gian điều chỉnh bố cục.

3. Stylish Button với Hover Effect

Các nút có ở khắp mọi nơi trong thiết kế UI và việc tạo ra một nút đẹp mắt với hiệu ứng di chuột mượt mà là rất quan trọng. Sau đây là đoạn trích Tailwind cho một Stylish Button:

<button class="bg-blue-500 hover:bg-blue-600 text-white font-bold py-2 px-4 rounded transition duration-300 ease-in-out">
  Click me
</button>

Đoạn mã này tạo ra một nút màu xanh với văn bản màu trắng, góc bo tròn và hiệu ứng di chuột tinh tế. Các lớp transitionduration-300 đảm bảo thay đổi màu mượt mà khi di chuột.

Bạn có thể dễ dàng tùy chỉnh bằng cách thay đổi lớp màu (ví dụ: bg-green-500 cho nút màu xanh lá cây) hoặc điều chỉnh độ đệm và độ đậm phông chữ cho phù hợp với nhu cầu thiết kế của bạn.

4. Responsive Navigation Menu

Menu điều hướng có thể phức tạp, đặc biệt là khi làm cho chúng responsive. Sau đây là đoạn trích Tailwind cho một menu điều hướng đơn giản, responsive:

<nav class="bg-gray-800">
  <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
    <div class="flex items-center justify-between h-16">
      <div class="flex items-center">
        <div class="flex-shrink-0">
          <img class="h-8 w-8" src="/logo.svg" alt="Logo">
        </div>
        <div class="hidden md:block">
          <div class="ml-10 flex items-baseline space-x-4">
            <a href="#" class="text-gray-300 hover:bg-gray-700 hover:text-white px-3 py-2 rounded-md text-sm font-medium">Home</a>
            <a href="#" class="text-gray-300 hover:bg-gray-700 hover:text-white px-3 py-2 rounded-md text-sm font-medium">About</a>
            <a href="#" class="text-gray-300 hover:bg-gray-700 hover:text-white px-3 py-2 rounded-md text-sm font-medium">Services</a>
            <a href="#" class="text-gray-300 hover:bg-gray-700 hover:text-white px-3 py-2 rounded-md text-sm font-medium">Contact</a>
          </div>
        </div>
      </div>
    </div>
  </div>
</nav>

Đoạn mã này tạo ra một thanh điều hướng có chủ đề tối với logo và các mục menu. Các mục menu được ẩn trên màn hình di động (hidden md:block) và xuất hiện trên màn hình trung bình và lớn hơn.

Hãy nhớ rằng đây chỉ là cấu trúc. Bạn cần thêm một số JavaScript để chuyển đổi menu di động, nhưng điều này cung cấp cho bạn điểm khởi đầu vững chắc cho điều hướng phản hồi.

5. Thành phần thẻ (Card component) có hiệu ứng di chuột

Thành phần thẻ là các thành phần UI đa năng được sử dụng trong nhiều thiết kế. Sau đây là đoạn trích Tailwind cho một thẻ có hiệu ứng di chuột tinh tế:

<div class="max-w-sm rounded overflow-hidden shadow-lg hover:shadow-xl transition-shadow duration-300 ease-in-out">
  <img class="w-full" src="/card-image.jpg" alt="Card image">
  <div class="px-6 py-4">
    <div class="font-bold text-xl mb-2">Card Title</div>
    <p class="text-gray-700 text-base">
      This is some example text for the card body. You can put any content here.
    </p>
  </div>
  <div class="px-6 pt-4 pb-2">
    <span class="inline-block bg-gray-200 rounded-full px-3 py-1 text-sm font-semibold text-gray-700 mr-2 mb-2">#tag1</span>
    <span class="inline-block bg-gray-200 rounded-full px-3 py-1 text-sm font-semibold text-gray-700 mr-2 mb-2">#tag2</span>
  </div>
</div>

Thẻ này có hình ảnh, tiêu đề, nội dung và thẻ. Lớp hover:shadow-xl này tạo hiệu ứng chiều sâu đẹp mắt khi di chuột qua thẻ.

Thẻ rất tuyệt để hiển thị thông tin được nhóm lại, cho dù đó là bài đăng trên blog, thông tin chi tiết về sản phẩm hay hồ sơ người dùng. Đoạn mã này cung cấp cho bạn điểm khởi đầu tốt mà bạn có thể dễ dàng tùy chỉnh để phù hợp với nhu cầu cụ thể của mình.

6. Bảng giá Responsive

Bảng giá phổ biến trong nhiều ứng dụng web. Sau đây là đoạn trích Tailwind cho bảng giá responsive:

<div class="flex flex-col md:flex-row justify-center items-center space-y-4 md:space-y-0 md:space-x-4">
  <div class="w-full md:w-1/3 bg-white rounded-lg shadow-lg p-6">
    <h2 class="text-2xl font-bold mb-4">Basic Plan</h2>
    <p class="text-gray-600 mb-6">Perfect for small projects</p>
    <p class="text-4xl font-bold mb-6">$9.99<span class="text-base font-normal">/month</span></p>
    <ul class="mb-6">
      <li class="mb-2 flex items-center"><svg class="h-5 w-5 mr-2 text-green-500" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg> Feature 1</li>
      <li class="mb-2 flex items-center"><svg class="h-5 w-5 mr-2 text-green-500" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg> Feature 2</li>
      <li class="mb-2 flex items-center"><svg class="h-5 w-5 mr-2 text-green-500" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"></path></svg> Feature 3</li>
    </ul>
    <button class="w-full bg-blue-500 text-white rounded-lg px-4 py-2 hover:bg-blue-600 transition duration-300 ease-in-out">Choose Plan</button>
  </div>
  <!-- Repeat for other pricing tiers -->
</div>

Đoạn mã này tạo ra một thẻ giá có tiêu đề, giá, danh sách tính năng và nút kêu gọi hành động. Bố cục phản hồi, chuyển từ cột trên thiết bị di động sang hàng trên màn hình lớn hơn.

Bạn có thể dễ dàng sao chép thẻ này cho các mức giá khác nhau và tùy chỉnh nội dung và kiểu dáng để phù hợp với thương hiệu của bạn. Các biểu tượng dấu kiểm thêm nét trực quan đẹp mắt vào danh sách tính năng.

7. Animated Loading Spinner

Đôi khi, bạn cần cho người dùng thấy nội dung đang tải. Sau đây là một animated loading spinner đơn giản sử dụng Tailwind:

<div class="flex justify-center items-center">
  <div class="animate-spin rounded-full h-32 w-32 border-t-2 border-b-2 border-blue-500"></div>
</div>

Điều này tạo ra một vòng quay tải tròn liên tục. Lớp animate-spin cung cấp hoạt ảnh xoay, trong khi các lớp đường viền tạo ra giao diện của vòng quay.

Bạn có thể dễ dàng điều chỉnh kích thước bằng cách thay đổi các lớp h-32w-32 hoặc thay đổi màu sắc bằng cách sửa đổi lớp border-blue-500. Đây là một cách nhẹ nhàng để chỉ ra trạng thái tải mà không cần dựa vào các thư viện bên ngoài hoặc hoạt ảnh CSS phức tạp.

8. Thư viện hình ảnh Responsive

Tạo một thư viện ảnh responsive có thể dễ dàng với Tailwind. Sau đây là một đoạn trích cho một thư viện ảnh responsive đơn giản:

<div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4">
  <div class="relative overflow-hidden rounded-lg shadow-lg">
    <img class="w-full h-64 object-cover transition duration-300 ease-in-out transform hover:scale-110" src="/image1.jpg" alt="Gallery image 1">
  </div>
  <div class="relative overflow-hidden rounded-lg shadow-lg">
    <img class="w-full h-64 object-cover transition duration-300 ease-in-out transform hover:scale-110" src="/image2.jpg" alt="Gallery image 2">
  </div>
  <!-- Add more images as needed -->
</div>

Thư viện này sử dụng bố cục lưới phản hồi tương tự như những gì chúng ta đã thấy trước đó. Mỗi hình ảnh được chứa trong một div có các góc bo tròn và bóng đổ. Bản thân hình ảnh có hiệu ứng thu phóng tinh tế khi di chuột qua, nhờ vào lớp hover:scale-110.

Lớp object-cover đảm bảo rằng hình ảnh lấp đầy vùng chứa của chúng mà không bị biến dạng, bất kể kích thước ban đầu của chúng. Điều này đặc biệt hữu ích khi xử lý hình ảnh có nhiều kích thước và tỷ lệ khung hình khác nhau.

9. Thành phần cảnh báo có thể tùy chỉnh

Cảnh báo rất quan trọng để cung cấp phản hồi cho người dùng. Sau đây là đoạn trích Tailwind cho một thành phần cảnh báo đa năng:

<div class="bg-blue-100 border-l-4 border-blue-500 text-blue-700 p-4 mb-4" role="alert">
  <p class="font-bold">Info</p>
  <p>This is an informational message.</p>
</div>

<div class="bg-green-100 border-l-4 border-green-500 text-green-700 p-4 mb-4" role="alert">
  <p class="font-bold">Success</p>
  <p>Your action was completed successfully.</p>
</div>

<div class="bg-yellow-100 border-l-4 border-yellow-500 text-yellow-700 p-4 mb-4" role="alert">
  <p class="font-bold">Warning</p>
  <p>Be careful with this action.</p>
</div>

<div class="bg-red-100 border-l-4 border-red-500 text-red-700 p-4 mb-4" role="alert">
  <p class="font-bold">Error</p>
  <p>Something went wrong. Please try again.</p>
</div>

Đoạn mã này cung cấp bốn kiểu cảnh báo khác nhau: thông tin, thành công, cảnh báo và lỗi. Mỗi cảnh báo có viền trái màu và màu nền phù hợp để dễ phân biệt trực quan.

Bạn có thể dễ dàng tùy chỉnh các cảnh báo này bằng cách thay đổi các lớp màu hoặc thêm biểu tượng. Thuộc tính role="alert" này được bao gồm để hỗ trợ khả năng truy cập, đảm bảo trình đọc màn hình thông báo đúng các thông báo này.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí