Files
Simple-Wishlist/css/tweaks.css
2025-08-18 20:39:36 +02:00

232 lines
5.0 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* ============ Base / Vars ============ */
@font-face {
font-family: "Comfortaa";
font-style: normal;
font-weight: 300;
src: url(../webfonts/comfortaa.woff2) format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
U+FEFF, U+FFFD;
}
:root {
--wl-card-radius: 0.75rem;
}
body {
font-family: system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue",
Arial, "Comfortaa", sans-serif;
}
/* Utility */
.object-fit-cover {
object-fit: cover;
}
.object-fit-contain {
object-fit: contain;
}
/* ============ Cards ============ */
.card {
border-radius: var(--wl-card-radius);
transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.card .ratio {
--bs-aspect-ratio: 56.25%; /* 16:9 Bildfläche */
border-top-left-radius: var(--wl-card-radius);
border-top-right-radius: var(--wl-card-radius);
background: #fff;
}
.card-img-top {
width: 100%;
height: 100%;
padding: 0;
display: block;
}
.card-body {
display: flex;
flex-direction: column;
gap: 0.35rem;
min-height: 9rem;
}
/* Titelzeile */
.card-title-row {
gap: 0.5rem;
}
.card-title-row .card-title,
.card-title {
margin: 0 0 0.25rem 0;
font-weight: 700;
line-height: 1.15;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.qty-pill {
display: inline-block;
padding: 0.15rem 0.5rem;
font-size: 0.8rem;
line-height: 1;
border-radius: 999px;
background: var(--bs-gray-200);
color: var(--bs-gray-800);
}
/* Beschreibung (2 Zeilen Ellipsis) */
.card-text {
color: #333;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
min-height: 2.6em;
}
/* Status rechts */
.status-right .fs-6 {
line-height: 1.2;
}
.card .text-end small,
.card .text-end .badge {
white-space: nowrap;
}
/* Header Controls */
.navbar-brand svg {
opacity: 0.9;
}
.navbar .form-control#sortby {
min-width: 10.5rem;
}
/* Demo-/Bootstrap-Beispielkram killen */
.bd-placeholder-img,
.bd-placeholder-img-lg,
.b-example-divider,
.b-example-vr,
.nav-scroller,
.nav-scroller .nav {
display: none !important;
}
/* ============ Admin-Icons (schwebend) ============ */
/* schwebende Admin-Icons sichtbar machen */
.wl-card {
position: relative;
} /* hast du schon */
.wl-card .admin-actions {
position: absolute;
top: 0.5rem;
right: 0.5rem;
background: rgba(255, 255, 255, 0.85);
backdrop-filter: blur(2px);
border-radius: 999px;
padding: 0.125rem;
z-index: 10;
opacity: 0;
transform: translateY(-4px);
transition: opacity 0.18s ease, transform 0.18s ease;
}
/* beim Hovern (oder Tastaturfokus) einblenden */
.wl-card:hover .admin-actions {
opacity: 1;
transform: none;
}
/* --- Admin-Icon oben rechts bleibt kompakt --- */
.wl-card .btn-icon {
box-sizing: border-box;
width: 34px;
height: 34px;
padding: 0;
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 999px;
}
/* ============ Untere Aktionsleiste ============ */
.btn-group-pills {
display: flex;
justify-content: center;
gap: 0.45rem;
flex-wrap: wrap;
align-items: center;
}
/* Idle: klein und fix 40px */
.btn-group-pills > .btn.btn-pill {
flex: 0 0 40px !important;
min-width: 40px; /* falls Bootstrap-Mindestbreiten reinfunken */
}
/* Hover/Fokus/Aktiv: darf wachsen */
.btn-group-pills > .btn.btn-pill:hover,
.btn-group-pills > .btn.btn-pill:focus,
.btn-group-pills > .btn.btn-pill:active {
flex: 0 1 16rem !important; /* überschreibt die Idle-Regel */
width: auto !important; /* falls irgendwo width:40px gewinnt */
padding: 0.5rem 0.8rem; /* „aufklappen“ */
justify-content: flex-start;
}
/* Text mit aufklappen */
.btn-pill:hover span,
.btn-pill:focus span,
.btn-pill:active span {
width: auto;
opacity: 1;
margin-left: 0.35rem;
}
/* kompakter Grundzustand: NUR Icon, super schmal */
.btn-pill {
box-sizing: border-box; /* Breite inkl. Padding & Border */
display: inline-flex;
align-items: center;
width: 40px;
height: 40px;
flex-basis: 40px;
padding: 0;
border-radius: 999px;
overflow: hidden;
white-space: nowrap;
}
.btn-pill i { font-size: 1rem; line-height: 1; margin: 0 .5rem; }
.btn-pill span {
width: 0; opacity: 0; overflow: hidden; white-space: nowrap; margin-left: 0;
transition: width .18s ease, opacity .18s ease, margin-left .18s ease;
}
/* Hover: Button wächst, Text klappt auf */
.btn-pill:hover {
width: auto;
flex: 0 1 16rem;
padding: .5rem .8rem;
/* Keine Ausrichtung hier setzen die Utility-Klasse bleibt wirksam */
}
.btn-pill:hover span { width: auto; opacity: 1; margin-left: .35rem; }
/* Fokus sichtbar (zugänglich) */
.btn-pill:focus-visible {
outline: 2px solid rgba(13, 110, 253, 0.5);
outline-offset: 2px;
}
/* ============ Responsive Tweaks ============ */
@media (max-width: 575.98px) {
.card-body {
min-height: unset;
}
.btn-group-pills {
gap: 0.35rem;
}
.btn-pill {
width: 38px;
flex-basis: 38px;
}
}