UNPKG

geeks-ui-framework

Version:

A modern, lightweight CSS framework with 15+ components for developers. Build beautiful interfaces with minimal effort.

324 lines (272 loc) 6.12 kB
/* =================================== BADGE COMPONENT =================================== */ /* Base Badge */ .badge { display: inline-block; padding: 0.35em 0.65em; font-size: 0.75em; font-weight: 700; line-height: 1; color: var(--white); text-align: center; white-space: nowrap; vertical-align: baseline; border-radius: 0.375rem; transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; } .badge:empty { display: none; } /* Badge Colors */ .badge-primary { background-color: var(--primary-color); color: var(--white); } .badge-secondary { background-color: var(--secondary-color); color: var(--white); } .badge-success { background-color: var(--success-color); color: var(--white); } .badge-warning { background-color: var(--warning-color); color: var(--text-color); } .badge-danger { background-color: var(--danger-color); color: var(--white); } .badge-info { background-color: var(--info-color); color: var(--white); } .badge-light { background-color: var(--light-gray); color: var(--text-color); } .badge-dark { background-color: var(--dark-color); color: var(--white); } /* Badge Outline Variants */ .badge-outline-primary { color: var(--primary-color); border: 1px solid var(--primary-color); background-color: transparent; } .badge-outline-secondary { color: var(--secondary-color); border: 1px solid var(--secondary-color); background-color: transparent; } .badge-outline-success { color: var(--success-color); border: 1px solid var(--success-color); background-color: transparent; } .badge-outline-warning { color: var(--warning-color); border: 1px solid var(--warning-color); background-color: transparent; } .badge-outline-danger { color: var(--danger-color); border: 1px solid var(--danger-color); background-color: transparent; } .badge-outline-info { color: var(--info-color); border: 1px solid var(--info-color); background-color: transparent; } .badge-outline-light { color: var(--text-color); border: 1px solid var(--border-color); background-color: transparent; } .badge-outline-dark { color: var(--dark-color); border: 1px solid var(--dark-color); background-color: transparent; } /* Badge Sizes */ .badge-sm { padding: 0.25em 0.5em; font-size: 0.625em; } .badge-lg { padding: 0.5em 0.75em; font-size: 0.875em; } /* Badge Shapes */ .badge-pill { border-radius: 10rem; } .badge-square { border-radius: 0; } .badge-circle { border-radius: 50%; width: 2em; height: 2em; display: inline-flex; align-items: center; justify-content: center; padding: 0; } /* Badge Positioning */ .position-relative { position: relative; } .badge-positioned { position: absolute; top: 0; right: 0; transform: translate(50%, -50%); } .badge-positioned.badge-circle { top: -0.5em; right: -0.5em; transform: none; } /* Badge with Icons */ .badge-icon { display: inline-flex; align-items: center; gap: 0.25em; } .badge-icon::before { width: 1em; height: 1em; } /* Badge Links */ a.badge { text-decoration: none; } a.badge:hover, a.badge:focus { text-decoration: none; filter: brightness(110%); } a.badge-primary:hover, a.badge-primary:focus { background-color: var(--primary-hover); } a.badge-secondary:hover, a.badge-secondary:focus { background-color: var(--secondary-hover); } a.badge-success:hover, a.badge-success:focus { background-color: var(--success-hover); } a.badge-warning:hover, a.badge-warning:focus { background-color: var(--warning-hover); } a.badge-danger:hover, a.badge-danger:focus { background-color: var(--danger-hover); } a.badge-info:hover, a.badge-info:focus { background-color: var(--info-hover); } /* Badge Close Button */ .badge-dismissible { display: inline-flex; align-items: center; gap: 0.5em; padding-right: 0.5em; } .badge-close { background: none; border: none; color: inherit; font-size: 1.2em; line-height: 1; cursor: pointer; padding: 0; margin-left: 0.25em; opacity: 0.7; transition: opacity 0.15s ease-in-out; } .badge-close:hover { opacity: 1; } .badge-close::before { content: '×'; } /* Badge Dot Indicator */ .badge-dot { width: 0.5em; height: 0.5em; border-radius: 50%; padding: 0; min-width: 0.5em; } .badge-dot.badge-sm { width: 0.375em; height: 0.375em; min-width: 0.375em; } .badge-dot.badge-lg { width: 0.75em; height: 0.75em; min-width: 0.75em; } /* Badge Animation */ .badge-pulse { animation: badgePulse 2s infinite; } @keyframes badgePulse { 0% { box-shadow: 0 0 0 0 currentColor; opacity: 1; } 70% { box-shadow: 0 0 0 10px transparent; opacity: 0.7; } 100% { box-shadow: 0 0 0 0 transparent; opacity: 1; } } /* Badge Notification */ .badge-notification { position: absolute; top: -0.5em; right: -0.5em; min-width: 1.5em; height: 1.5em; display: flex; align-items: center; justify-content: center; font-size: 0.75em; font-weight: 700; border: 2px solid var(--white); box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); } /* Badge Group */ .badge-group { display: inline-flex; align-items: center; gap: 0.25rem; } .badge-group .badge { margin: 0; } /* Responsive Badge */ @media (max-width: 576px) { .badge-sm-hide { display: none; } .badge { font-size: 0.625em; padding: 0.25em 0.5em; } }