UNPKG

barneo-search-widget-lib

Version:

Библиотека для поиска по каталогу Barneo на Vue 3

298 lines (254 loc) 11.2 kB
/* Barneo Products Widget - Dark Mode */ /* Автоматическая темная тема (только если не принудительно отключена) */ @media (prefers-color-scheme: dark) { .barneo-products-widget:not(.barneo-products-widget--light) { /* Основные CSS переменные для темной темы */ --barneo-bg-primary: var(--barneo-gray-900); --barneo-bg-secondary: var(--barneo-gray-800); --barneo-bg-hover: var(--barneo-gray-700); --barneo-bg-disabled: var(--barneo-gray-700); --barneo-bg-skeleton: var(--barneo-gray-600); --barneo-text-primary: var(--barneo-gray-100); --barneo-text-secondary: var(--barneo-gray-300); --barneo-text-muted: var(--barneo-gray-400); --barneo-text-disabled: var(--barneo-gray-500); --barneo-border-light: var(--barneo-gray-700); --barneo-border-medium: var(--barneo-gray-600); --barneo-border-focus: var(--barneo-primary); /* Products Widget Specific */ --barneo-products-bg: var(--barneo-bg-primary); --barneo-products-border: var(--barneo-border-light); --barneo-products-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.3), 0 1px 2px 0 rgba(0, 0, 0, 0.2); --barneo-products-shadow-hover: 0 4px 6px -1px rgba(0, 0, 0, 0.3), 0 2px 4px -1px rgba(0, 0, 0, 0.2); /* Product Card */ --barneo-product-card-bg: var(--barneo-gray-800); --barneo-product-card-border: var(--barneo-gray-700); /* Product Image */ --barneo-product-image-bg: var(--barneo-gray-700); --barneo-product-image-placeholder-bg: var(--barneo-gray-600); /* Product Content */ --barneo-product-title-color: var(--barneo-gray-100); --barneo-product-description-color: var(--barneo-gray-300); --barneo-product-price-color: var(--barneo-success); /* Pagination */ --barneo-pagination-bg: var(--barneo-gray-800); --barneo-pagination-border: var(--barneo-gray-700); --barneo-pagination-button-bg: var(--barneo-gray-800); --barneo-pagination-button-color: var(--barneo-gray-100); --barneo-pagination-button-hover-bg: var(--barneo-gray-700); --barneo-pagination-button-active-bg: var(--barneo-primary); --barneo-pagination-button-active-color: var(--barneo-white); --barneo-pagination-button-disabled-bg: var(--barneo-gray-600); --barneo-pagination-button-disabled-color: var(--barneo-gray-400); /* Loading */ --barneo-loading-spinner-color: var(--barneo-primary); --barneo-loading-text-color: var(--barneo-gray-300); /* Empty State */ --barneo-empty-text-color: var(--barneo-gray-300); --barneo-empty-icon-color: var(--barneo-gray-400); /* Error State */ --barneo-error-text-color: #f87171; --barneo-error-bg: #7f1d1d; --barneo-error-border: #dc2626; } } /* Принудительная светлая тема */ .barneo-products-widget--light { /* Принудительно светлая тема - используем дефолтные переменные */ --barneo-bg-primary: var(--barneo-white); --barneo-bg-secondary: var(--barneo-gray-50); --barneo-bg-hover: var(--barneo-gray-100); --barneo-bg-disabled: var(--barneo-gray-100); --barneo-bg-skeleton: var(--barneo-gray-200); --barneo-text-primary: var(--barneo-gray-900); --barneo-text-secondary: var(--barneo-gray-600); --barneo-text-muted: var(--barneo-gray-500); --barneo-text-disabled: var(--barneo-gray-400); --barneo-border-light: var(--barneo-gray-200); --barneo-border-medium: var(--barneo-gray-300); --barneo-border-focus: var(--barneo-primary); } /* Принудительная темная тема */ .barneo-products-widget--dark { /* Colors - Background */ --barneo-bg-primary: var(--barneo-gray-900); --barneo-bg-secondary: var(--barneo-gray-800); --barneo-bg-hover: var(--barneo-gray-700); --barneo-bg-disabled: var(--barneo-gray-700); --barneo-bg-skeleton: var(--barneo-gray-600); /* Colors - Text */ --barneo-text-primary: var(--barneo-gray-100); --barneo-text-secondary: var(--barneo-gray-300); --barneo-text-muted: var(--barneo-gray-400); --barneo-text-disabled: var(--barneo-gray-500); /* Colors - Border */ --barneo-border-light: var(--barneo-gray-700); --barneo-border-medium: var(--barneo-gray-600); --barneo-border-focus: var(--barneo-primary); /* Products Widget Specific */ --barneo-products-bg: var(--barneo-bg-primary); --barneo-products-border: var(--barneo-border-light); --barneo-products-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.3), 0 1px 2px 0 rgba(0, 0, 0, 0.2); --barneo-products-shadow-hover: 0 4px 6px -1px rgba(0, 0, 0, 0.3), 0 2px 4px -1px rgba(0, 0, 0, 0.2); /* Product Card */ --barneo-product-card-bg: var(--barneo-gray-800); --barneo-product-card-border: var(--barneo-gray-700); /* Product Image */ --barneo-product-image-bg: var(--barneo-gray-700); --barneo-product-image-placeholder-bg: var(--barneo-gray-600); /* Product Content */ --barneo-product-title-color: var(--barneo-gray-100); --barneo-product-description-color: var(--barneo-gray-300); --barneo-product-price-color: var(--barneo-success); /* Pagination */ --barneo-pagination-bg: var(--barneo-gray-800); --barneo-pagination-border: var(--barneo-gray-700); --barneo-pagination-button-bg: var(--barneo-gray-800); --barneo-pagination-button-color: var(--barneo-gray-100); --barneo-pagination-button-hover-bg: var(--barneo-gray-700); --barneo-pagination-button-active-bg: var(--barneo-primary); --barneo-pagination-button-active-color: var(--barneo-white); --barneo-pagination-button-disabled-bg: var(--barneo-gray-600); --barneo-pagination-button-disabled-color: var(--barneo-gray-400); /* Loading */ --barneo-loading-spinner-color: var(--barneo-primary); --barneo-loading-text-color: var(--barneo-gray-300); /* Empty State */ --barneo-empty-text-color: var(--barneo-gray-300); --barneo-empty-icon-color: var(--barneo-gray-400); /* Error State */ --barneo-error-text-color: #f87171; --barneo-error-bg: #7f1d1d; --barneo-error-border: #dc2626; } /* Стили для темной темы (автоматической и принудительной) */ @media (prefers-color-scheme: dark) { .barneo-products-widget:not(.barneo-products-widget--light) { background-color: var(--barneo-bg-primary); color: var(--barneo-text-primary); } .barneo-products-widget:not(.barneo-products-widget--light) .barneo-product-card:hover { border-color: var(--barneo-primary); } .barneo-products-widget:not(.barneo-products-widget--light) .barneo-product-title { color: var(--barneo-text-primary); } .barneo-products-widget:not(.barneo-products-widget--light) .barneo-product-title:hover { color: var(--barneo-primary); } .barneo-products-widget:not(.barneo-products-widget--light) .barneo-pagination-button:hover:not(:disabled) { background-color: rgba(59, 130, 246, 0.2); color: var(--barneo-primary); } .barneo-products-widget:not(.barneo-products-widget--light) .barneo-pagination-page:hover { background-color: rgba(59, 130, 246, 0.2); color: var(--barneo-primary); } .barneo-products-widget:not(.barneo-products-widget--light) .barneo-pagination-page--active { background-color: var(--barneo-primary); color: var(--barneo-white); } .barneo-products-widget:not(.barneo-products-widget--light) .barneo-pagination-page--active:hover { background-color: var(--barneo-primary-hover); color: var(--barneo-white); } /* Skeleton styles for automatic dark mode */ .barneo-products-widget:not(.barneo-products-widget--light) .barneo-product-skeleton-code, .barneo-products-widget:not(.barneo-products-widget--light) .barneo-product-skeleton-article, .barneo-products-widget:not(.barneo-products-widget--light) .barneo-product-skeleton-heart, .barneo-products-widget:not(.barneo-products-widget--light) .barneo-product-skeleton-image-placeholder, .barneo-products-widget:not(.barneo-products-widget--light) .barneo-product-skeleton-price, .barneo-products-widget:not(.barneo-products-widget--light) .barneo-product-skeleton-brand-text, .barneo-products-widget:not(.barneo-products-widget--light) .barneo-product-skeleton-brand-checkmark, .barneo-products-widget:not(.barneo-products-widget--light) .barneo-product-skeleton-availability, .barneo-products-widget:not(.barneo-products-widget--light) .barneo-product-skeleton-title-line, .barneo-products-widget:not(.barneo-products-widget--light) .barneo-product-skeleton-delivery, .barneo-products-widget:not(.barneo-products-widget--light) .barneo-product-skeleton-button { background: linear-gradient( 90deg, var(--barneo-bg-skeleton) 25%, var(--barneo-gray-500) 50%, var(--barneo-bg-skeleton) 75% ); background-size: 200% 100%; animation: barneo-skeleton-shimmer 1.5s infinite; } } /* Dark Mode Specific Adjustments */ .barneo-products-widget--dark .barneo-product-card:hover { border-color: var(--barneo-primary); } .barneo-products-widget--dark .barneo-product-title { color: var(--barneo-text-primary); } .barneo-products-widget--dark .barneo-product-title:hover { color: var(--barneo-primary); } .barneo-products-widget--dark .barneo-pagination-button:hover:not(:disabled) { background-color: rgba(59, 130, 246, 0.2); color: var(--barneo-primary); } .barneo-products-widget--dark .barneo-pagination-page:hover { background-color: rgba(59, 130, 246, 0.2); color: var(--barneo-primary); } .barneo-products-widget--dark .barneo-pagination-page--active { background-color: var(--barneo-primary); color: var(--barneo-white); } .barneo-products-widget--dark .barneo-pagination-page--active:hover { background-color: var(--barneo-primary-hover); color: var(--barneo-white); } .barneo-products-widget--dark .barneo-pagination-button::before, .barneo-products-widget--dark .barneo-pagination-page::before { background: linear-gradient( 90deg, transparent, rgba(255, 255, 255, 0.1), transparent ); } /* Skeleton Dark Mode Styles */ .barneo-products-widget--dark .barneo-product-skeleton-code, .barneo-products-widget--dark .barneo-product-skeleton-article, .barneo-products-widget--dark .barneo-product-skeleton-heart, .barneo-products-widget--dark .barneo-product-skeleton-image-placeholder, .barneo-products-widget--dark .barneo-product-skeleton-price, .barneo-products-widget--dark .barneo-product-skeleton-brand-text, .barneo-products-widget--dark .barneo-product-skeleton-brand-checkmark, .barneo-products-widget--dark .barneo-product-skeleton-availability, .barneo-products-widget--dark .barneo-product-skeleton-title-line, .barneo-products-widget--dark .barneo-product-skeleton-delivery, .barneo-products-widget--dark .barneo-product-skeleton-button { background: linear-gradient( 90deg, var(--barneo-bg-skeleton) 25%, var(--barneo-gray-500) 50%, var(--barneo-bg-skeleton) 75% ); background-size: 200% 100%; animation: barneo-skeleton-shimmer 1.5s infinite; }