Files
stoffhaus-hanke-theme/NOVAChild/themes/my-nova/sass/my-nova.scss

361 lines
8.8 KiB
SCSS

//
// Platz für eigene Style Angaben in SCSS-Notation
//
// Alle Änderungen hier müssen anschließend mit einem SCSS-Compiler
// (z.B. dem JTL-Theme-Editor Plugin) nach my-nova.css kompiliert werden
// --------------------------------------------------
// Lädt Core-Funktionen
@import '../../../../NOVA/themes/base/sass/functions';
// Lädt "my-nova"-Variablen. Hier können Variablen aus Bootstrap und dem NOVA-Theme überschrieben werden.
@import "variables";
// Lädt Style Angaben des Themes, hier "clear".
@import '../../../../NOVA/themes/clear/sass/allstyles';
// Für die anderen Themes müssen neben der "allstyles" des Themes auch die jeweiligen Regeln aus der "theme.scss"
// (z.B. für blackline aus der blackline.scss) übernommen werden.
// @import '../../../../NOVA/themes/blackline/sass/allstyles';
// @import '../../../../NOVA/themes/midnight/sass/allstyles';
// my-nova Theme
// Hier können alle Style-Angaben notiert werden, die nur Auswirkungen auf dieses Theme haben
// ------------------- Beginn eigenes CSS ----------------------------
// --- Globale Anpassungen ---
body {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
// --- Header & Navigation (Modern & Glassmorphism) ---
header {
background-image: url('https://stoffhaus-hanke.de/media/image/storage/opc/header/headerfinal.png');
background-size: cover;
background-position: center;
background-repeat: no-repeat;
position: relative;
// Ein sanftes Overlay, damit der Header-Text besser lesbar ist, falls das Bild unruhig ist
&::before {
content: '';
position: absolute;
top: 0; left: 0; right: 0; bottom: 0;
background: linear-gradient(to bottom, rgba(255,255,255,0.85) 0%, rgba(255,255,255,0.4) 100%);
z-index: 0;
}
> * {
position: relative;
z-index: 1;
}
}
// Sticky Header Verfeinerung (falls im Backend aktiviert)
#header-wrapper.is-sticky {
background-color: rgba(255, 255, 255, 0.95) !important;
backdrop-filter: blur(10px);
box-shadow: $box-shadow-sm;
transition: all 0.3s ease;
}
#header-top-bar {
background-color: $footer-bg-color;
color: $white;
padding: 8px 0;
.ara-topinfo {
font-weight: 500;
margin: 0;
padding: 0;
list-style: none;
display: flex;
justify-content: center;
gap: 20px;
li {
display: inline-flex;
align-items: center;
color: $white;
}
a {
color: $white;
text-decoration: none;
transition: $transition-base;
&:hover { color: $secondary; }
}
i { margin-right: 6px; }
}
}
#shop-logo {
border-radius: $border-radius-lg;
background-color: rgba(255, 255, 255, 0.9);
backdrop-filter: blur(10px); // Glassmorphism Effekt
padding: 10px;
box-shadow: $box-shadow-sm;
transition: $transition-base;
&:hover {
transform: translateY(-2px);
box-shadow: $box-shadow;
}
}
header .nav-link {
background-color: rgba(255, 255, 255, 0.85);
backdrop-filter: blur(8px);
color: $header-color;
font-size: 16px;
font-weight: 600;
border-radius: 30px; // Pillen-Form für moderne Navigation
padding: 8px 16px !important;
margin: 0 4px;
transition: $transition-base;
box-shadow: 0 2px 8px rgba(0,0,0,0.03);
&:hover, &.active {
background-color: $white;
color: $primary;
transform: translateY(-2px);
box-shadow: $box-shadow-sm;
}
}
// Mega-Menu (Dropdowns) Animation & Styling
.dropdown-menu {
border: none;
border-radius: $border-radius;
box-shadow: $box-shadow;
padding: 20px;
animation: fade-in-up 0.3s ease;
}
@keyframes fade-in-up {
from { opacity: 0; transform: translateY(10px); }
to { opacity: 1; transform: translateY(0); }
}
.secure-checkout-topbar {
border-radius: $border-radius-lg;
background-color: rgba(255, 255, 255, 0.9);
backdrop-filter: blur(10px);
box-shadow: $box-shadow-sm;
}
// --- Suchleiste (Prominent & Einladend) ---
#search-form {
.form-control {
border-radius: 30px 0 0 30px;
border: 1px solid #e0e0e0;
padding: 10px 20px;
background-color: #f9f8f6;
transition: all 0.3s ease;
&:focus {
background-color: #ffffff;
border-color: $secondary;
box-shadow: 0 0 0 3px rgba($secondary, 0.2);
}
}
.btn-search {
border-radius: 0 30px 30px 0;
background: $primary;
color: $white;
border: 1px solid $primary;
transition: $transition-base;
&:hover {
background: darken($primary, 8%);
border-color: darken($primary, 8%);
}
}
}
// --- Buttons ---
.btn {
font-weight: 500;
letter-spacing: 0.3px;
border-radius: 30px; // Moderne abgerundete Buttons
transition: $transition-base;
&.btn-primary,
#article_buyfield .choose_quantity .submit,
button[name="inWarenkorb"] {
background-color: $primary !important;
border-color: $primary !important;
color: $white !important;
box-shadow: 0 4px 12px rgba($primary, 0.3);
&:hover {
background-color: darken($primary, 8%) !important;
border-color: darken($primary, 8%) !important;
transform: translateY(-2px);
box-shadow: 0 6px 16px rgba($primary, 0.4);
}
}
}
// --- Produktboxen (Modernes Card-Design mit Fokus auf Texturen) ---
.productbox {
border: none;
border-radius: $border-radius-lg;
background: $white;
box-shadow: $box-shadow-sm;
transition: $transition-base;
overflow: hidden;
margin-bottom: 30px;
// Image Zoom Effekt für Stoffe
.productbox-image {
overflow: hidden;
border-radius: $border-radius-lg $border-radius-lg 0 0;
img {
transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
}
&:hover {
transform: translateY(-5px);
box-shadow: $box-shadow;
.productbox-image img {
transform: scale(1.08); // Sanfter Zoom auf die Stoffstruktur
}
}
.productbox-title {
font-family: $headings-font-family;
font-weight: 600;
font-size: 1.1rem;
margin-top: 15px;
}
.price {
font-weight: 600;
color: $primary;
font-size: 1.2rem;
}
// Elegante Ribbons (Sale, Neu)
.ribbon {
border-radius: 20px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 1px;
font-size: 0.75rem;
padding: 4px 12px;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
&.ribbon-sale { background-color: #e74c3c; color: white; }
&.ribbon-new { background-color: $secondary; color: white; }
}
}
// --- Artikeldetailseite (PDP - Product Detail Page) ---
.product-detail {
// Kaufbox (Sticky auf Desktop für bessere Conversion)
@media (min-width: 992px) {
#buy-form {
position: sticky;
top: 120px; // Abstand zum (sticky) Header
padding: 25px;
background: #ffffff;
border-radius: $border-radius-lg;
box-shadow: $box-shadow-sm;
border: 1px solid rgba(0,0,0,0.03);
}
}
// Großer, auffälliger Warenkorb-Button
#add-to-cart button {
width: 100%;
padding: 15px;
font-size: 1.1rem;
text-transform: uppercase;
letter-spacing: 1px;
}
// Preis-Darstellung
.price_wrapper {
.price {
font-size: 2.2rem;
font-weight: 700;
color: $primary;
}
}
}
// --- Footer ---
#footer {
background-color: $footer-bg-color;
color: $footer-color;
padding-top: 60px;
.form-control {
background-color: rgba(255, 255, 255, 0.1);
border: 1px solid rgba(255, 255, 255, 0.2);
color: $white;
border-radius: 30px;
&::placeholder {
color: rgba(255, 255, 255, 0.6);
}
&:focus {
background-color: rgba(255, 255, 255, 0.15);
border-color: $secondary;
box-shadow: 0 0 0 0.2rem rgba($secondary, 0.25);
}
}
.label-slide .form-group:not(.exclude-from-label-slide):not(.checkbox) {
label {
background: transparent;
color: rgba(255, 255, 255, 0.8);
}
}
a {
color: rgba(255, 255, 255, 0.8);
transition: $transition-base;
&:hover:not(.btn) {
color: $secondary; // Warmer Hover-Effekt im Footer
text-decoration: none;
}
}
.productlist-filter-headline,
.newsletter-footer-heading,
.h3, h3 {
color: $white;
font-family: $headings-font-family;
}
}
// --- Layout Wrapper ---
@media screen and (min-width: 1200px) {
#main-wrapper {
background-image: url('https://stoffhaus-hanke.de/media/image/storage/opc/header/stoffballen.png');
background-attachment: fixed;
background-size: cover;
background-position: center;
}
#content {
max-width: 1200px;
margin: 40px auto;
background-color: rgba(255, 255, 255, 0.97); // Leicht transparent für Eleganz
border-radius: $border-radius-lg;
box-shadow: $box-shadow;
padding: 30px;
}
.breadcrumb-wrapper {
max-width: 1200px;
margin: 20px auto;
background-color: rgba(255, 255, 255, 0.95);
border-radius: $border-radius-lg;
box-shadow: $box-shadow-sm;
padding: 10px 20px;
}
}