/
BlackEr
/
proect
Обзор
Документация
Войти
/
BlackEr
/
proect
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
frontend/src/index.css
1 381 строка
21 KB
blynkerq
first_commit
18 дек 2025, 20:31
18 дек 2025, 20:31
7c36f43
Код
Авторство
О чём код?
:root { --primary: #0a2540; --secondary: #1e3a5f; --accent: #ff6b35; --light: #f8f9fa; --dark-text: #212529; --gray: #6c757d; --border: #dee2e6; } * { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background-color: #f0f4f8; color: var(--dark-text); line-height: 1.6; } a { text-decoration: none; color: inherit; } .app { display: flex; flex-direction: column; min-height: 100vh; } /* Top Bar */ .top-bar { background: #111; color: white; padding: 0.5rem 1rem; font-size: 0.8rem; display: flex; justify-content: space-between; align-items: center; } .region-selector, .nav-links, .service-icons { display: flex; gap: 1rem; } .service-icons span { display: flex; align-items: center; gap: 0.3rem; } /* Main Header */ .main-header { display: flex; justify-content: space-between; align-items: center; padding: 1rem 2rem; background: white; border-bottom: 1px solid #eee; } .menu button { background: none; border: none; font-weight: bold; cursor: pointer; margin-right: 1rem; } .logo img { height: 50px; max-width: 150px; object-fit: contain; filter: brightness(1); transition: filter 0.2s; } .logo img:hover { filter: brightness(1.1); } .header-icons button { background: none; border: none; cursor: pointer; margin-left: 1rem; font-size: 1.2rem; } /* Main Navigation */ .main-nav { display: flex; gap: 1.5rem; padding: 0.5rem 2rem; background: white; border-top: 1px solid #eee; justify-content: center; } .main-nav a { text-decoration: none; color: #333; font-weight: 500; transition: color 0.2s; } .main-nav a:hover { color: var(--accent); } /* Hero Banner */ .hero-banner { position: relative; width: 100%; height: 400px; overflow: hidden; margin-bottom: 2rem; } .hero-image-container { position: relative; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; overflow: hidden; } .hero-image-container img { width: 100%; height: 100%; object-fit: cover; filter: brightness(0.8); } .banner-text { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: white; text-align: center; background: rgba(0,0,0,0.5); padding: 1rem 2rem; border-radius: 8px; } .banner-text h1 { font-size: 2.5rem; margin: 0; font-weight: bold; } /* Brands Section */ .brands-section { display: flex; justify-content: center; align-items: center; gap: 2rem; padding: 2rem; background: #f8f9fa; } .brand-logo { display: flex; justify-content: center; align-items: center; width: 80px; height: 80px; background: white; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.08); overflow: hidden; } .brand-logo img { max-width: 100%; max-height: 100%; object-fit: contain; opacity: 0.8; transition: opacity 0.2s; } .brand-logo img:hover { opacity: 1; } /* Promo Section */ .promo-section { display: flex; gap: 1rem; margin-bottom: 2rem; flex-wrap: wrap; justify-content: center; } .promo-box { min-width: 300px; position: relative; overflow: hidden; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); background: white; } .promo-image-container { width: 100%; height: 200px; display: flex; justify-content: center; align-items: center; background: #f8f9fa; overflow: hidden; } .promo-image-container img { max-width: 100%; max-height: 100%; object-fit: contain; } .promo-title { position: absolute; bottom: 0; left: 0; right: 0; background: rgba(0,0,0,0.7); color: white; padding: 0.5rem 1rem; text-align: center; font-weight: bold; font-size: 0.9rem; } /* Shoes Slider */ .shoes-slider { position: relative; width: 100%; height: 400px; overflow: hidden; margin-bottom: 2rem; background: #6c1a1a; } .shoes-image-container { position: relative; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; overflow: hidden; } .shoes-image-container img { width: 100%; height: 100%; object-fit: cover; filter: brightness(0.9); } .slider-content { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: white; text-align: center; background: rgba(0,0,0,0.5); padding: 2rem; border-radius: 8px; max-width: 600px; backdrop-filter: blur(5px); } .slider-content h2 { font-size: 2rem; margin-bottom: 1rem; font-weight: bold; } .slider-content p { font-size: 0.9rem; line-height: 1.4; opacity: 0.8; } /* Popular Products */ .popular-products { margin-bottom: 2rem; padding: 2rem; text-align: center; } .popular-products h2 { text-align: center; margin-bottom: 1.5rem; font-size: 1.8rem; color: #333; } .products-grid { display: flex; justify-content: center; gap: 1rem; flex-wrap: wrap; padding: 0 1rem; } @media (max-width: 576px) { .products-grid { gap: 0.8rem; } } /* Product Card */ .product-card { background: white; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.08); overflow: hidden; transition: transform 0.2s, box-shadow 0.2s; padding: 1rem; text-align: center; width: 240px; cursor: pointer; } .product-card:hover { transform: translateY(-4px); box-shadow: 0 4px 12px rgba(0,0,0,0.12); } .product-image-container { width: 100%; height: 180px; display: flex; justify-content: center; align-items: center; background-color: #f8f9fa; border-radius: 4px; position: relative; margin-bottom: 0.8rem; overflow: hidden; } .product-img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 4px; } .discount-badge { position: absolute; top: 5px; left: 5px; background-color: #ff6b35; color: white; padding: 2px 6px; border-radius: 4px; font-size: 0.8rem; font-weight: bold; } .product-brand { font-size: 1.1rem; font-weight: bold; margin: 0 0 0.3rem 0; color: #0a2540; } .product-name { font-size: 0.9rem; margin: 0 0 0.5rem 0; color: #495057; line-height: 1.4; } .product-price-row { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.3rem; } .old-price { text-decoration: line-through; color: #999; font-size: 0.9rem; } .current-price { font-weight: bold; font-size: 1rem; color: black; } .current-price.on-sale { color: #ff6b35; } .product-category { font-size: 0.8rem; color: #6c757d; margin: 0; } .add-to-cart-btn { margin-top: 0.5rem; padding: 0.4rem 0.8rem; background: #ff6b35; color: white; border: none; border-radius: 4px; cursor: pointer; width: 100%; } /* Loyalty Section */ .loyalty-section { display: flex; gap: 1rem; margin-bottom: 2rem; flex-wrap: wrap; justify-content: center; } .loyalty-box { flex: 1; min-width: 300px; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); overflow: hidden; } .loyalty-bg { width: 100%; height: 300px; position: relative; background-color: #f8f9fa; display: flex; justify-content: center; align-items: center; text-align: center; color: white; padding: 2rem; overflow: hidden; background-size: cover; background-position: center; } .loyalty-bg::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.5); z-index: 1; } .loyalty-content { position: relative; z-index: 2; max-width: 80%; } .loyalty-logo { font-size: 0.9rem; font-weight: bold; margin-bottom: 0.5rem; opacity: 0.8; } .loyalty-content h3 { font-size: 1.5rem; margin: 0.5rem 0; font-weight: bold; } .loyalty-content p { font-size: 0.9rem; line-height: 1.4; margin-bottom: 1rem; opacity: 0.8; } .loyalty-content input { width: 100%; padding: 0.5rem; margin-bottom: 0.5rem; border: none; border-radius: 4px; text-align: center; background: rgba(255,255,255,0.9); } .loyalty-content button { width: 100%; padding: 0.5rem; background: var(--accent); color: white; border: none; border-radius: 4px; cursor: pointer; } /* Shops Section */ .shops-section { display: flex; flex-direction: column; gap: 1rem; padding: 2rem; } .shops-section h2 { text-align: center; margin-bottom: 1.5rem; } /* Footer */ .footer { background: #0a2540; color: white; padding: 2rem 1rem; font-size: 0.9rem; } .footer-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2rem; padding-bottom: 1rem; border-bottom: 1px solid #1e3a5f; } .footer-logo img { height: 50px; max-width: 150px; object-fit: contain; } .newsletter { display: flex; gap: 0.5rem; } .newsletter input { padding: 0.5rem; border: none; border-radius: 4px; flex: 1; max-width: 400px; } .newsletter button { padding: 0.5rem 1rem; background: white; color: #0a2540; border: none; border-radius: 4px; cursor: pointer; font-weight: bold; } .footer-content { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 2rem; margin-bottom: 2rem; } .footer-column h4 { margin-bottom: 1rem; font-size: 1rem; color: #ddd; } .footer-column a { display: block; color: #ccc; text-decoration: none; margin-bottom: 0.5rem; transition: color 0.2s; } .footer-column a:hover { color: white; } .contact-item { display: flex; gap: 0.5rem; margin-bottom: 1rem; } .contact-item span { font-size: 1.2rem; } .app-buttons { display: flex; gap: 0.5rem; margin-bottom: 1rem; } .app-buttons button { padding: 0.4rem 0.8rem; background: #1e3a5f; color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 0.8rem; } .qr-code img { width: 100px; height: 100px; border: 1px solid #ddd; } .footer-bottom { display: flex; justify-content: space-between; align-items: center; padding-top: 1rem; border-top: 1px solid #1e3a5f; font-size: 0.8rem; } .social-icons { display: flex; gap: 0.5rem; } .social-icons span { font-size: 1.2rem; cursor: pointer; } .copyright { color: #aaa; } /* Modal */ .modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.6); display: flex; justify-content: center; align-items: center; z-index: 1000; } .modal { background: white; border-radius: 8px; width: 90%; max-width: 800px; max-height: 90vh; overflow-y: auto; padding: 2rem; } @media (max-width: 576px) { .modal { padding: 1.5rem; width: 95%; } } .modal-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 1.5rem; } .close-btn { background: none; border: none; font-size: 1.5rem; cursor: pointer; color: var(--gray); } /* Auth Pages */ .auth-page { display: flex; justify-content: center; align-items: center; min-height: 100vh; background: #f0f4f8; padding: 1rem; } .auth-container { background: white; padding: 2rem; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); width: 100%; max-width: 400px; text-align: center; } .auth-container h2 { margin-bottom: 1.5rem; color: #0a2540; font-size: 1.8rem; } .auth-container input { width: 100%; padding: 0.75rem; margin: 0.5rem 0 1rem; border: 1px solid #dee2e6; border-radius: 4px; font-size: 1rem; } .auth-container button[type="submit"] { width: 100%; padding: 0.75rem; background: #ff6b35; color: white; border: none; border-radius: 4px; font-size: 1rem; cursor: pointer; margin: 1rem 0; } .error { color: red; margin-bottom: 1rem; } .link-btn { background: none; border: none; color: #ff6b35; cursor: pointer; text-decoration: underline; padding: 0; font-size: 0.95rem; } .back-btn { display: inline-block; padding: 0.5rem 1rem; background: #6c757d; color: white; border: none; border-radius: 4px; cursor: pointer; text-decoration: none; margin-top: 1rem; } /* Account Page */ .account-page { max-width: 800px; margin: 2rem auto; padding: 2rem; background: white; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); } .account-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2rem; } .logout-btn { padding: 0.5rem 1rem; background: #dc3545; color: white; border: none; border-radius: 4px; cursor: pointer; } /* Product Page */ .product-page { max-width: 900px; margin: 2rem auto; padding: 0 1rem; } .product-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2rem; } .product-image { max-width: 100%; height: auto; border-radius: 8px; margin: 1rem auto; display: block; } .discount-badge { background: #ff6b35; color: white; padding: 0.2rem 0.5rem; border-radius: 4px; font-weight: bold; display: inline-block; margin-bottom: 1rem; } .old-price { text-decoration: line-through; color: #999; margin-right: 0.5rem; } .current-price { font-weight: bold; color: black; } .current-price.on-sale { color: #ff6b35; } /* Shops Page */ .shops-page { max-width: 1000px; margin: 2rem auto; padding: 0 1rem; } .shops-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2rem; } .shops-content { display: flex; flex-direction: column; gap: 1rem; } .shops-list { display: flex; flex-direction: column; gap: 1rem; } .shop-item { background: white; padding: 1.2rem; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.08); } .shop-address { font-weight: bold; margin-bottom: 0.3rem; } .shop-phone { color: var(--accent); } .shop-map { margin-top: 0.8rem; width: 100%; height: 200px; border: none; border-radius: 4px; } /* Common Page Styles */ .page-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2rem; padding-bottom: 1rem; border-bottom: 1px solid #eee; } .page-header h1, .page-header h2 { color: #0a2540; margin: 0; } /* About Page */ .about-page { max-width: 800px; margin: 2rem auto; padding: 0 1rem; } .about-content p { margin-bottom: 1.2rem; line-height: 1.6; font-size: 1.05rem; } .values h3 { margin: 1.5rem 0 1rem; color: #0a2540; } .values ul { padding-left: 1.5rem; } .values li { margin-bottom: 0.5rem; } /* Contacts Page */ .contacts-page { max-width: 900px; margin: 2rem auto; padding: 0 1rem; } .contact-info, .contact-form { background: white; padding: 1.5rem; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.08); margin-bottom: 2rem; } .contact-form input, .contact-form textarea { width: 100%; padding: 0.75rem; margin: 0.5rem 0; border: 1px solid #dee2e6; border-radius: 4px; font-size: 1rem; } .contact-form button { width: 100%; padding: 0.75rem; background: #ff6b35; color: white; border: none; border-radius: 4px; font-size: 1rem; cursor: pointer; margin-top: 1rem; } .form-success { color: green; text-align: center; margin-bottom: 1rem; } /* Cart Page */ .cart-page { max-width: 900px; margin: 2rem auto; padding: 0 1rem; } .empty-cart { text-align: center; font-size: 1.2rem; color: #6c757d; margin: 2rem 0; } .cart-items { margin-bottom: 2rem; } .cart-item { display: flex; align-items: center; padding: 1rem; border: 1px solid #eee; border-radius: 8px; margin-bottom: 1rem; position: relative; } .cart-item-img { width: 80px; height: 80px; object-fit: contain; margin-right: 1rem; border-radius: 4px; } .cart-item-info { flex: 1; } .cart-item-info h3 { margin: 0 0 0.3rem; font-size: 1.1rem; } .quantity-controls { display: inline-flex; gap: 0.5rem; margin-top: 0.5rem; } .quantity-controls button { width: 24px; height: 24px; background: #0a2540; color: white; border: none; border-radius: 4px; cursor: pointer; } .quantity-controls span { min-width: 24px; text-align: center; } .remove-btn { position: absolute; top: 10px; right: 10px; background: #dc3545; color: white; width: 24px; height: 24px; border: none; border-radius: 50%; cursor: pointer; font-weight: bold; } .cart-summary { text-align: center; padding: 1.5rem; background: #f8f9fa; border-radius: 8px; } .cart-summary h3 { font-size: 1.5rem; margin-bottom: 1rem; color: #0a2540; } .order-btn { width: 100%; padding: 0.75rem; background: #28a745; color: white; border: none; border-radius: 4px; font-size: 1.1rem; cursor: pointer; margin-bottom: 1rem; } .order-btn:disabled { background: #6c757d; cursor: not-allowed; } .clear-cart-btn { width: 100%; padding: 0.75rem; background: #dc3545; color: white; border: none; border-radius: 4px; cursor: pointer; } .order-status { text-align: center; padding: 0.75rem; margin-bottom: 1rem; border-radius: 4px; } .order-status.success { background: #d4edda; color: #155724; } .order-status.error { background: #f8d7da; color: #721c24; } /* Search Page */ .search-page { max-width: 900px; margin: 2rem auto; padding: 0 1rem; } .search-form { display: flex; gap: 0.5rem; margin-bottom: 2rem; } .search-input { flex: 1; padding: 0.75rem; border: 1px solid #dee2e6; border-radius: 4px; font-size: 1rem; } .search-button { padding: 0.75rem 1rem; background: #ff6b35; color: white; border: none; border-radius: 4px; cursor: pointer; font-size: 1rem; } .loading, .no-results, .no-query { text-align: center; padding: 2rem; font-size: 1.1rem; color: #6c757d; } .search-results h2 { text-align: center; margin-bottom: 1.5rem; color: #0a2540; } .products-grid { display: flex; justify-content: center; gap: 1rem; flex-wrap: wrap; padding: 0 1rem; } @media (max-width: 576px) { .products-grid { gap: 0.8rem; } } /* Product Card in Search */ .product-card { background: white; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.08); overflow: hidden; transition: transform 0.2s, box-shadow 0.2s; padding: 1rem; text-align: center; width: 240px; cursor: pointer; } .product-card:hover { transform: translateY(-4px); box-shadow: 0 4px 12px rgba(0,0,0,0.12); } .product-image-container { width: 100%; height: 180px; display: flex; justify-content: center; align-items: center; background-color: #f8f9fa; border-radius: 4px; position: relative; margin-bottom: 0.8rem; overflow: hidden; } .product-img { max-width: 100%; max-height: 100%; object-fit: contain; border-radius: 4px; } .product-brand { font-size: 1.1rem; font-weight: bold; margin: 0 0 0.3rem 0; color: #0a2540; } .product-name { font-size: 0.9rem; margin: 0 0 0.5rem 0; color: #495057; line-height: 1.4; } .product-price-row { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.3rem; } .current-price { font-weight: bold; font-size: 1rem; color: black; } /* Category Pages */ .category-page { max-width: 900px; margin: 2rem auto; padding: 0 1rem; } .category-content { text-align: center; padding: 2rem; } .category-content p { font-size: 1.1rem; line-height: 1.6; color: #6c757d; margin-bottom: 2rem; } .placeholder-products { display: flex; justify-content: center; gap: 1rem; flex-wrap: wrap; } .product-placeholder { background: white; border-radius: 8px; box-shadow: 0 2px 6px rgba(0,0,0,0.08); padding: 1rem; width: 240px; text-align: center; } .product-image { width: 100%; height: 180px; background: #f8f9fa; border-radius: 4px; margin-bottom: 0.8rem; display: flex; justify-content: center; align-items: center; } .product-image::before { content: ''; width: 60px; height: 60px; background: #ddd; border-radius: 50%; opacity: 0.5; } .product-placeholder h3 { font-size: 1rem; margin: 0.5rem 0; color: #0a2540; } .product-placeholder p { font-size: 0.9rem; color: #ff6b35; font-weight: bold; } /* Responsive */ @media (max-width: 768px) { .top-bar { flex-direction: column; gap: 0.5rem; text-align: center; } .main-header { flex-direction: column; gap: 1rem; padding: 1rem; } .main-nav { flex-wrap: wrap; padding: 0.5rem 1rem; } .hero-banner { height: 250px; } .brands-section { flex-wrap: wrap; gap: 1rem; } .promo-section, .loyalty-section { flex-direction: column; } .footer-top { flex-direction: column; gap: 1rem; } .footer-content { grid-template-columns: 1fr; } .footer-bottom { flex-direction: column; gap: 1rem; text-align: center; } } .sale-page { max-width: 900px; margin: 2rem auto; padding: 0 1rem; } .sale-products h2 { text-align: center; margin-bottom: 1.5rem; color: #0a2540; } .no-sale { text-align: center; padding: 2rem; font-size: 1.1rem; color: #6c757d; }