diff --git a/assets/css/frontend/widget-batch5.css b/assets/css/frontend/widget-batch5.css index 6d0a9e8c..a51c6701 100644 --- a/assets/css/frontend/widget-batch5.css +++ b/assets/css/frontend/widget-batch5.css @@ -1303,3 +1303,132 @@ .aksrt-faq__main { grid-template-columns: 1fr; } .aksrt-faq__a { padding-left: 14px; } } + +/* ---- batch12: video shell + bookmark links styles + product oneline swiper ---- */ +.aksrt-video-widget { + position: relative; + width: 100%; + overflow: hidden; + border-radius: 10px; + background: #000; +} +.aksrt-video-widget.radius8 { border-radius: 10px; } +.aksrt-video-widget__frame, +.aksrt-video-widget__player, +.aksrt-video-widget .aksrt-video { + position: absolute; + inset: 0; + width: 100%; + height: 100%; +} +.aksrt-video-widget__frame { + border: 0; + display: block; +} +.aksrt-video-widget.controller-hide .aksrt-video video::-webkit-media-controls { + opacity: 0; + transition: opacity .2s ease; +} +.aksrt-video-widget.controller-hide:hover .aksrt-video video::-webkit-media-controls { + opacity: 1; +} + +.aksrt-bookmark-links.links-box { + display: flex; + flex-wrap: wrap; + gap: 12px; +} +.aksrt-bookmark-links.style-card .author-minicard, +.aksrt-bookmark-links.style-bigcard .author-minicard { + flex: 1 1 calc(50% - 12px); + min-width: 140px; + background: var(--surface-2, #f8fafc); + border: 1px solid var(--color-line, #e5e7eb); + padding: 12px; + box-sizing: border-box; +} +.aksrt-bookmark-links.style-bigcard .author-minicard { + flex: 1 1 100%; + text-align: center; +} +.aksrt-bookmark-links .avatar-img img, +.aksrt-bookmark-links .link-img img { + width: 42px; + height: 42px; + border-radius: 50%; + object-fit: cover; +} +.aksrt-bookmark-links.style-bigcard .avatar-img img { + width: 64px; + height: 64px; +} +.aksrt-bookmark-links.style-image { + display: flex; + flex-wrap: wrap; + gap: 10px; +} +.aksrt-bookmark-links.style-image .link-only-img img { + width: 48px; + height: 48px; + border-radius: 10px; + object-fit: cover; +} +.aksrt-bookmark-links.style-simple { + display: block; + line-height: 1.9; + font-size: 13px; +} +.aksrt-bookmark-links.style-simple a { + color: inherit; + text-decoration: none; + margin-right: 8px; +} +.aksrt-bookmark-links.style-simple a:hover { + color: var(--color-primary, #3b82f6); +} +.aksrt-bookmark-links.has-box { + padding: 12px; + border: 1px solid var(--color-line, #e5e7eb); + border-radius: 12px; + background: var(--surface-1, #fff); +} + +.aksrt-product-oneline-swiper { + position: relative; + overflow: hidden; + padding: 0 28px 4px; +} +.aksrt-product-oneline-swiper .swiper-wrapper { + display: flex; +} +.aksrt-product-oneline-swiper .swiper-slide { + width: auto; + max-width: 46%; + min-width: 150px; + height: auto; +} +.aksrt-product-oneline-swiper .aksrt-product-card { + height: 100%; +} +.aksrt-product-oneline-swiper .swiper-button-prev, +.aksrt-product-oneline-swiper .swiper-button-next { + width: 28px; + height: 28px; + margin-top: 0; + top: 42%; + border-radius: 50%; + background: var(--surface-1, #fff); + border: 1px solid var(--color-line, #e5e7eb); + color: var(--color-ink, #111); + box-shadow: 0 2px 8px rgba(0,0,0,.06); +} +.aksrt-product-oneline-swiper .swiper-button-prev:after, +.aksrt-product-oneline-swiper .swiper-button-next:after { + font-size: 12px; + font-weight: 700; +} +.aksrt-product-oneline-swiper .swiper-button-prev { left: 0; } +.aksrt-product-oneline-swiper .swiper-button-next { right: 0; } +.aksrt-product-widget--oneline .aksrt-product-widget__grid { + /* legacy flex fallback if swiper unavailable */ +} diff --git a/src/AKSRT/Widgets/WidgetProductList.php b/src/AKSRT/Widgets/WidgetProductList.php index 8a76c6c3..e6847945 100644 --- a/src/AKSRT/Widgets/WidgetProductList.php +++ b/src/AKSRT/Widgets/WidgetProductList.php @@ -93,6 +93,7 @@ class WidgetProductList extends \WP_Widget { if (!$products->have_posts()) { return ''; } + $oneline = $style === 'oneline'; ob_start(); while ($products->have_posts()) { $products->the_post(); @@ -100,30 +101,36 @@ class WidgetProductList extends \WP_Widget { $card = class_exists('\AKSRT\Shop\Shop') ? \AKSRT\Shop\Shop::get_instance()->build_product_card_view($pid) : []; + if ($oneline) { + echo '
'; } wp_reset_postdata(); return (string) ob_get_clean(); @@ -231,12 +238,25 @@ class WidgetProductList extends \WP_Widget { $style_class = 'aksrt-product-widget--' . $style; echo ''; + + if ($style === 'oneline') { + // zibll-style horizontal swiper-scroll (shared slider.js Type A). + echo '