Hiệu ứng Button Press 3D đẹp ná thở với CSS

Muốn nút bấm trên giao diện trông "đã tay" hơn khi click? Với hiệu ứng Button Press 3D bằng CSS thuần, bạn có thể biến một nút bình thường thành một button có chiều sâu, có bóng đổ, và cảm giác nhấn cực kỳ chân thật.

Hiệu ứng Button Press 3D đẹp ná thở với CSS

Bài viết này sẽ hướng dẫn bạn tạo hiệu ứng button 3D với CSS từ A–Z, kèm demo trực tiếp để bạn có thể copy & dùng ngay trong dự án.

HTML – Tạo cấu trúc Button đơn giản

Phần HTML chỉ cần những thẻ <button> bình thường với class riêng để chúng ta style bằng CSS.
Bạn có thể dùng trong form, popup, hay bất kỳ nơi nào cần nút CTA.

<div class="button-3d-demo">
    <button class="btn-3d btn-3d-primary">Nhấn mình đi</button>
    <button class="btn-3d btn-3d-success">Xác nhận</button>
    <button class="btn-3d btn-3d-danger">Xóa luôn</button>
</div>

CSS – Tạo hiệu ứng Button Press 3D bằng box-shadow

Ý tưởng chính:

  • Dùng box-shadow để tạo phần “chân” cho nút, giúp nó trông như đang nổi lên khỏi nền.
  • Khi nhấn (pseudo-class :active), giảm translateYbox-shadow để tạo cảm giác nút bị ấn xuống.
  • Thêm transition để hiệu ứng mượt mà, cảm giác tự nhiên hơn.
/* Container demo nút 3D */
.button-3d-demo {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    align-items: center;
    padding: 16px 0;
}

/* Base style cho button 3D */
.btn-3d {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 120px;
    padding: 10px 18px;
    border-radius: 999px;
    border: none;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.02em;
    cursor: pointer;
    color: #fff;
    text-shadow: 0 1px 0 rgba(0, 0, 0, 0.15);
    outline: none;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
    transform: translateY(0);
    box-shadow: 0 6px 0 rgba(0, 0, 0, 0.2), 0 10px 18px rgba(0, 0, 0, 0.18);
    transition:
        transform 0.12s ease-out,
        box-shadow 0.12s ease-out,
        filter 0.15s ease-out,
        background 0.15s ease-out;
}

/* Các biến thể màu */
.btn-3d-primary {
    background: linear-gradient(135deg, #2f80ed, #1c64f2);
}

.btn-3d-success {
    background: linear-gradient(135deg, #00b894, #019874);
}

.btn-3d-danger {
    background: linear-gradient(135deg, #e63946, #c71f2d);
}

/* Hover: nổi hơn, sáng hơn một chút */
.btn-3d:hover {
    filter: brightness(1.05);
    box-shadow: 0 7px 0 rgba(0, 0, 0, 0.22), 0 12px 20px rgba(0, 0, 0, 0.2);
}

/* Active: hiệu ứng nhấn xuống 3D */
.btn-3d:active {
    transform: translateY(4px);
    box-shadow: 0 3px 0 rgba(0, 0, 0, 0.25), 0 6px 12px rgba(0, 0, 0, 0.22);
}

/* Focus: dành cho keyboard users, tăng accessibility */
.btn-3d:focus-visible {
    box-shadow:
        0 0 0 3px rgba(255, 255, 255, 0.8),
        0 0 0 5px rgba(47, 128, 237, 0.6),
        0 6px 0 rgba(0, 0, 0, 0.2),
        0 10px 18px rgba(0, 0, 0, 0.18);
}

/* Optional: disable state */
.btn-3d:disabled {
    cursor: not-allowed;
    opacity: 0.65;
    box-shadow: 0 3px 0 rgba(0, 0, 0, 0.12), 0 6px 10px rgba(0, 0, 0, 0.15);
    transform: translateY(0);
}

Giải thích nhanh hiệu ứng Button Press 3D

  • Chiều sâu 3D: được tạo bởi hai lớp box-shadow, một bóng đậm sát nút (giống phần “chân”), một bóng mờ xa hơn (giống bóng đổ dưới nền).
  • Hiệu ứng nhấn: khi ở trạng thái :active, nút được translateY(4px) xuống dưới và giảm độ cao của box-shadow, khiến nó trông như bị ấn xuống.
  • Transition: làm cho việc chuyển giữa trạng thái thường ↔ hover ↔ active trông mượt mà, không bị “gắt”.
  • Nhiều biến thể màu: các class như .btn-3d-primary, .btn-3d-success, .btn-3d-danger giúp bạn tái sử dụng cùng một hiệu ứng 3D nhưng với màu sắc khác nhau.

Bạn có thể dùng hiệu ứng Button Press 3D đẹp ná thở với CSS này cho nút kêu gọi hành động (CTA), form đăng ký, giao diện game, hoặc bất kỳ nơi nào cần cảm giác “đã tay” khi bấm. Chỉ với vài dòng CSS, giao diện trông xịn hẳn lên mà không cần đến JavaScript.

Bình luận


  • Không có bình luận.

Init Toolbox

Nhấn Ctrl + \ trên máy tính, hoặc vuốt sang trái ở bất kỳ đâu trên mobile.

Đăng nhập





Đang tải...