275 lines
6.6 KiB
CSS
275 lines
6.6 KiB
CSS
/**
|
|
* @file compare.css
|
|
* @brief Stylesheet für die Produktvergleichsseite.
|
|
*
|
|
* Diese Datei enthält alle spezifischen Styles für die Darstellung
|
|
* von zu vergleichenden Produkten in einer übersichtlichen Tabelle.
|
|
* Sie definiert Farben, Ränder, Schatten und Hover-Effekte für
|
|
* ein ansprechendes Dark-Mode-Design.
|
|
*/
|
|
|
|
/**
|
|
* @brief Hauptcontainer für die Vergleichsseite.
|
|
*
|
|
* Setzt den oberen Abstand und das allgemeine Padding für die Seite.
|
|
*/
|
|
.compare-page {
|
|
margin-top: 2rem;
|
|
padding: 1rem;
|
|
}
|
|
|
|
/**
|
|
* @brief Stil für den Seitentitel der Vergleichsseite.
|
|
*
|
|
* Definiert Schriftgröße, Ausrichtung, Farbe und Schriftstärke.
|
|
*/
|
|
.compare-title {
|
|
font-size: 2.5rem;
|
|
margin-bottom: 2rem;
|
|
text-align: center;
|
|
color: #f8fafc;
|
|
font-weight: 700;
|
|
}
|
|
|
|
/**
|
|
* @brief Styling für dem Fallstrick "Leerer Vergleich".
|
|
*
|
|
* Wird angezeigt, wenn keine Produkte zum Vergleich ausgewählt wurden.
|
|
* Enthält ein hervorgehobenes Box-Design mit Hintergrund und Schatten.
|
|
*/
|
|
.compare-empty {
|
|
text-align: center;
|
|
color: #cbd5e1;
|
|
margin-top: 3rem;
|
|
background: #1e293b;
|
|
padding: 3rem;
|
|
border-radius: 1.5rem;
|
|
box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.4);
|
|
}
|
|
|
|
/**
|
|
* @brief Titel-Stil für Produktkategorien beim Vergleich.
|
|
*
|
|
* Unterteilt die Tabelle grafisch nach Kategorien mit entsprechenden Rändern.
|
|
*/
|
|
.compare-category-title {
|
|
margin-top: 3rem;
|
|
margin-bottom: 1.5rem;
|
|
font-size: 1.8rem;
|
|
color: #38bdf8;
|
|
border-bottom: 2px solid rgba(51, 65, 85, 0.5);
|
|
padding-bottom: 0.8rem;
|
|
}
|
|
|
|
/**
|
|
* @brief Wrapper für die scrollbare Vergleichstabelle.
|
|
*
|
|
* Ermöglicht horizontales Scrollen bei vielen Produkten auf kleinen Bildschirmen
|
|
* und setzt das äußere Erscheinungsbild (Hintergrund, Rahmen, Schatten).
|
|
*/
|
|
.compare-table-wrapper {
|
|
overflow-x: auto;
|
|
background: #1e293b;
|
|
border-radius: 1.5rem;
|
|
box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.4);
|
|
padding: 0;
|
|
margin-bottom: 3rem;
|
|
border: 1px solid rgba(255, 255, 255, 0.05);
|
|
}
|
|
|
|
/**
|
|
* @brief Grund-Styling der Vergleichstabelle.
|
|
*
|
|
* Definiert Mindestbreite und reguliert die Zellabstände (Border-Collapse).
|
|
*/
|
|
.compare-table {
|
|
width: 100%;
|
|
border-collapse: separate;
|
|
border-spacing: 0;
|
|
min-width: 800px;
|
|
}
|
|
|
|
/**
|
|
* @brief Stile für Tabellenköpfe und Datenzellen.
|
|
*
|
|
* Fügt Ränder, Abstände und zentrierte Ausrichtung sowie die Textfarbe hinzu.
|
|
*/
|
|
.compare-table th,
|
|
.compare-table td {
|
|
padding: 1.5rem 1rem;
|
|
text-align: center;
|
|
border-bottom: 1px solid rgba(51, 65, 85, 0.5);
|
|
color: #cbd5e1;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
/**
|
|
* @brief Entfernt den unteren Rand für die letzte Tabellenzeile.
|
|
*/
|
|
.compare-table tbody tr:last-child td {
|
|
border-bottom: none;
|
|
}
|
|
|
|
/**
|
|
* @brief Styling für die erste Spalte (Eigenschaftsnamen).
|
|
*
|
|
* Fixiert die Spalte links (Sticky) für leichteres horizontales Scrollen.
|
|
*/
|
|
.compare-table th:first-child,
|
|
.compare-table td:first-child {
|
|
text-align: left;
|
|
font-weight: 600;
|
|
position: sticky;
|
|
left: 0;
|
|
background: #1e293b;
|
|
z-index: 2;
|
|
color: #f8fafc;
|
|
border-right: 1px solid rgba(51, 65, 85, 0.5);
|
|
box-shadow: 4px 0 6px -2px rgba(0, 0, 0, 0.2);
|
|
}
|
|
|
|
/**
|
|
* @brief Styling für den Tabellenkopf.
|
|
*
|
|
* Hebt die Kopfzeile farblich vom Rest der Tabelle ab.
|
|
*/
|
|
.compare-table th {
|
|
background: #0f172a;
|
|
font-weight: bold;
|
|
color: #f8fafc;
|
|
padding-top: 2rem;
|
|
padding-bottom: 2rem;
|
|
}
|
|
|
|
/**
|
|
* @brief Spezifisches Styling für die obere linke Zelle im Tabellenkopf.
|
|
*
|
|
* Erhöht den z-Index, damit sie beim Scrollen immer oben liegt.
|
|
*/
|
|
.compare-table th:first-child {
|
|
background: #0f172a;
|
|
z-index: 3;
|
|
font-size: 1.2rem;
|
|
}
|
|
|
|
/**
|
|
* @brief Hover-Effekt für Tabellenzeilen im Körper (Datenzellen).
|
|
*
|
|
* Hebt die gesamte Zeile hervor, wenn der Benutzer darüber fährt.
|
|
*/
|
|
.compare-table tbody tr:hover td {
|
|
background: #2a3a52;
|
|
}
|
|
|
|
/**
|
|
* @brief Hover-Effekt für die erste Zelle in der hovernden Tabellenzeile.
|
|
*
|
|
* Sorgt für eine konsistente Hervorhebung, auch bei der fixierten Spalte.
|
|
*/
|
|
.compare-table tbody tr:hover td:first-child {
|
|
background: #2a3a52;
|
|
}
|
|
|
|
/**
|
|
* @brief Styling für das Produktbild im Tabellenkopf.
|
|
*
|
|
* Passt die Bildgröße an, setzt einen hellen Verlaufshintergrund und
|
|
* implementiert einen abgerundeten Rahmen sowie eine Größenübergangsanimation.
|
|
*/
|
|
.compare-product-img {
|
|
height: 140px;
|
|
object-fit: contain;
|
|
margin-bottom: 1.2rem;
|
|
border-radius: 0.8rem;
|
|
background: linear-gradient(145deg, #ffffff, #f1f5f9);
|
|
padding: 0.8rem;
|
|
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.2);
|
|
transition: transform 0.3s ease;
|
|
}
|
|
|
|
/**
|
|
* @brief Hover-Animation für das Produktbild.
|
|
*
|
|
* Vergrößert das Bild leicht, wenn der Nutzer mit der Maus darüber fährt.
|
|
*/
|
|
.compare-product-img:hover {
|
|
transform: scale(1.05);
|
|
}
|
|
|
|
/**
|
|
* @brief Styling für den Produktnamen.
|
|
*
|
|
* Definiert Farbe, Schriftgröße und Zeilenhöhe für den anklickbaren Produktnamen.
|
|
*/
|
|
.compare-product-name {
|
|
font-size: 1.15rem;
|
|
color: #60a5fa;
|
|
text-decoration: none;
|
|
transition: color 0.2s;
|
|
display: block;
|
|
margin-bottom: 1rem;
|
|
font-weight: 600;
|
|
line-height: 1.4;
|
|
}
|
|
|
|
/**
|
|
* @brief Hover-Effekt für den Produktnamen.
|
|
*
|
|
* Ändert die Textfarbe für visuelles Feedback beim Drüberfahren.
|
|
*/
|
|
.compare-product-name:hover {
|
|
color: #93c5fd;
|
|
}
|
|
|
|
/**
|
|
* @brief Styling für den Button zum Entfernen eines Produkts aus dem Vergleich.
|
|
*
|
|
* Roter Button (Pill-Shape) mit Schatten und Übergangseffekten.
|
|
*/
|
|
.compare-remove-btn {
|
|
background: #ef4444;
|
|
color: white;
|
|
border: none;
|
|
padding: 0.6rem 1.2rem;
|
|
border-radius: 9999px; /* Pill shape */
|
|
cursor: pointer;
|
|
font-size: 0.85rem;
|
|
font-weight: 600;
|
|
transition: all 0.2s;
|
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
|
|
}
|
|
|
|
/**
|
|
* @brief Hover-Effekt für den Entfernen-Button.
|
|
*
|
|
* Dunkelt das Rot ab, bewegt den Button leicht nach oben und vergrößert den Schatten.
|
|
*/
|
|
.compare-remove-btn:hover {
|
|
background: #dc2626;
|
|
transform: translateY(-1px);
|
|
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
|
|
}
|
|
|
|
/**
|
|
* @brief Zebra-Streifen-Muster für gerade Tabellenzeilen.
|
|
*
|
|
* Wirkt sich nicht auf die fixierte erste Spalte aus, um die Lesbarkeit
|
|
* dunkel schattierter Hintergründe aufrechtzuerhalten.
|
|
*/
|
|
.compare-table tbody tr:nth-child(even) td:not(:first-child) {
|
|
background: rgba(15, 23, 42, 0.2);
|
|
}
|
|
|
|
/**
|
|
* @brief Styling für längere Beschreibungstexte im Vergleich.
|
|
*
|
|
* Begrenzt die Breite, richtet den Text linksbündig aus und optimiert die Zeilenhöhe.
|
|
*/
|
|
.desc-text {
|
|
text-align: left;
|
|
display: inline-block;
|
|
max-width: 300px;
|
|
line-height: 1.6;
|
|
font-size: 0.95rem;
|
|
}
|