UNPKG

geeks-ui-framework

Version:

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

325 lines (272 loc) 6.81 kB
/* =================================== CARDS COMPONENT =================================== */ /* Base Card */ .card { position: relative; display: flex; flex-direction: column; min-width: 0; word-wrap: break-word; background-color: var(--white); background-clip: border-box; border: 1px solid var(--border-color); border-radius: 0.5rem; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); transition: box-shadow 0.15s ease-in-out, transform 0.15s ease-in-out; } .card:hover { box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15); transform: translateY(-2px); } /* Card Body */ .card-body { flex: 1 1 auto; padding: 1.5rem; } .card-body:first-child { border-top-left-radius: calc(0.5rem - 1px); border-top-right-radius: calc(0.5rem - 1px); } .card-body:last-child { border-bottom-right-radius: calc(0.5rem - 1px); border-bottom-left-radius: calc(0.5rem - 1px); } /* Card Title */ .card-title { margin-bottom: 0.75rem; font-size: 1.25rem; font-weight: 600; color: var(--text-color); } /* Card Subtitle */ .card-subtitle { margin-top: -0.375rem; margin-bottom: 0.75rem; font-size: 0.875rem; color: var(--muted-color); } /* Card Text */ .card-text { margin-bottom: 1rem; color: var(--text-color); line-height: 1.6; } .card-text:last-child { margin-bottom: 0; } /* Card Header */ .card-header { padding: 1rem 1.5rem; margin-bottom: 0; background-color: var(--light-gray); border-bottom: 1px solid var(--border-color); border-top-left-radius: calc(0.5rem - 1px); border-top-right-radius: calc(0.5rem - 1px); font-weight: 600; color: var(--text-color); } .card-header:first-child { border-radius: calc(0.5rem - 1px) calc(0.5rem - 1px) 0 0; } /* Card Footer */ .card-footer { padding: 1rem 1.5rem; background-color: var(--light-gray); border-top: 1px solid var(--border-color); border-bottom-right-radius: calc(0.5rem - 1px); border-bottom-left-radius: calc(0.5rem - 1px); } .card-footer:last-child { border-radius: 0 0 calc(0.5rem - 1px) calc(0.5rem - 1px); } /* Card Images */ .card-img { width: 100%; border-radius: calc(0.5rem - 1px); } .card-img-top { width: 100%; border-top-left-radius: calc(0.5rem - 1px); border-top-right-radius: calc(0.5rem - 1px); } .card-img-bottom { width: 100%; border-bottom-right-radius: calc(0.5rem - 1px); border-bottom-left-radius: calc(0.5rem - 1px); } /* Card Overlay */ .card-img-overlay { position: absolute; top: 0; right: 0; bottom: 0; left: 0; padding: 1.5rem; border-radius: calc(0.5rem - 1px); background: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.6) 100%); color: var(--white); } .card-img-overlay .card-title, .card-img-overlay .card-subtitle, .card-img-overlay .card-text { color: var(--white); } /* Card Link */ .card-link { color: var(--primary-color); text-decoration: none; transition: color 0.15s ease-in-out; } .card-link:hover { color: var(--primary-hover); text-decoration: underline; } .card-link+.card-link { margin-left: 1rem; } /* Card Groups */ .card-group { display: flex; flex-direction: column; } .card-group>.card { margin-bottom: 1rem; } /* Card Deck */ .card-deck { display: flex; flex-direction: column; } .card-deck .card { margin-bottom: 1rem; } /* Card Columns */ .card-columns { column-count: 1; column-gap: 1.25rem; orphans: 1; widows: 1; } .card-columns .card { display: inline-block; width: 100%; margin-bottom: 1rem; } /* Card Variants */ .card-primary { background-color: var(--primary-color); border-color: var(--primary-color); color: var(--white); } .card-primary .card-title, .card-primary .card-subtitle, .card-primary .card-text { color: var(--white); } .card-primary .card-header, .card-primary .card-footer { background-color: rgba(255, 255, 255, 0.1); border-color: rgba(255, 255, 255, 0.2); } .card-secondary { background-color: var(--secondary-color); border-color: var(--secondary-color); color: var(--white); } .card-success { background-color: var(--success-color); border-color: var(--success-color); color: var(--white); } .card-warning { background-color: var(--warning-color); border-color: var(--warning-color); color: var(--text-color); } .card-danger { background-color: var(--danger-color); border-color: var(--danger-color); color: var(--white); } .card-info { background-color: var(--info-color); border-color: var(--info-color); color: var(--white); } .card-light { background-color: var(--light-gray); border-color: var(--border-color); color: var(--text-color); } .card-dark { background-color: var(--dark-color); border-color: var(--dark-color); color: var(--white); } /* Card Outline Variants */ .card-outline-primary { background-color: transparent; border-color: var(--primary-color); } .card-outline-secondary { background-color: transparent; border-color: var(--secondary-color); } .card-outline-success { background-color: transparent; border-color: var(--success-color); } .card-outline-warning { background-color: transparent; border-color: var(--warning-color); } .card-outline-danger { background-color: transparent; border-color: var(--danger-color); } .card-outline-info { background-color: transparent; border-color: var(--info-color); } /* Responsive Card Layout */ @media (min-width: 576px) { .card-columns { column-count: 2; } .card-group, .card-deck { flex-direction: row; } .card-group>.card, .card-deck .card { flex: 1 0 0%; margin-bottom: 0; } .card-group>.card+.card, .card-deck .card+.card { margin-left: 1rem; } .card-group>.card { border-radius: 0; } .card-group>.card:first-child { border-top-right-radius: 0; border-bottom-right-radius: 0; } .card-group>.card:last-child { border-top-left-radius: 0; border-bottom-left-radius: 0; } .card-group>.card:only-child { border-radius: 0.5rem; } .card-group>.card:not(:first-child):not(:last-child) { border-radius: 0; } } @media (min-width: 768px) { .card-columns { column-count: 3; } }