Skip to content

Product1,2 (전시)

샘플 페이지

  • 모듈 구성
Astro
---
import Title from "@shared/ui/title/Title.astro";
import Carousel from "@shared/module/carousel/Carousel.astro";
import ProductUnit from "@shared/module/product-unit/ProductUnit.astro";
const products = [
{
link: "#",
brand: "STUDIO TOMBOY",
name: "레더 블루종 자켓",
price: "299,000",
media: {
src: "/dummy/images/box.svg",
alt: "",
width: 350,
height: 525,
},
},
/* ...*/
];
---
<section class="v-tmpl v-tmpl--product-1" style="margin-bottom: 0px;">
<Title level={2}>3개 / 1단</Title>
<Carousel slidesPerView={3}>
{products.map((item) => (
<swiper-slide>
<!-- ProductUnit 문서 참고 -->
<ProductUnit {...item} />
</swiper-slide>
))}
</Carousel>
</section>
<section class="v-tmpl v-tmpl--product-1" style="margin-bottom: 0px;">
<Title level={2}>2.5개 / 1단</Title>
<Carousel slidesPerView={2.7551}>
<!-- 위와 동일 -->
</Carousel>
</section>
<section class="v-tmpl v-tmpl--product-2" style="margin-bottom: 0px;">
<Title level={2}>2.5개 / 2단</Title>
<Carousel slidesPerView={2.7551} class="v-carousel--multi-row">
<!-- 위와 동일 -->
</Carousel>
</section>

HTML

1단

<!-- 전시 템플릿 간 여백은 style 속성으로 조정 -->
<section class="v-tmpl v-tmpl--product-1" style="margin-bottom: 0px;">
<h2 class="v-truncate v-title">2.5개 / 1단</h2>
<script type="module">
if (!window.customElements.get("swiper-container")) {
import("/ui/lib/swiper/swiper-element-customized-bundle.min.js");
}
</script>
<swiper-container
slides-offset-before="24"
slides-offset-after="24"
space-between="8"
slides-per-view="2.7551"
css-mode="true"
free-mode="true"
class="v-carousel"
>
<swiper-slide>
<!-- ProductUnit 문서 참고 -->
<div class="v-product-unit">
<!-- … -->
</div>
</swiper-slide>
<!-- … -->
</swiper-container>
</section>
<section class="v-tmpl v-tmpl--product-1" style="margin-bottom: 0px;">
<h2 class="v-truncate v-title">3개 / 1단</h2>
<script type="module">
if (!window.customElements.get("swiper-container")) {
import("/ui/lib/swiper/swiper-element-customized-bundle.min.js");
}
</script>
<swiper-container
space-between="8"
slides-per-view="3"
slides-per-group="3"
navigation="true"
pagination="true"
class="v-carousel"
>
<swiper-slide>
<!-- ProductUnit 문서 참고 -->
<div class="v-product-unit">
<!-- … -->
</div>
</swiper-slide>
<!-- … -->
</swiper-container>
</section>

2단

<!-- 전시 템플릿 간 여백은 style 속성으로 조정 -->
<section class="v-tmpl v-tmpl--product-2" style="margin-bottom: 0px;">
<h2 class="v-truncate v-title">2.5개 / 2단</h2>
<script type="module">
if (!window.customElements.get("swiper-container")) {
import("/ui/lib/swiper/swiper-element-customized-bundle.min.js");
}
</script>
<swiper-container
slides-offset-before="24"
slides-offset-after="24"
space-between="8"
slides-per-view="2.7551"
css-mode="true"
free-mode="true"
class="v-carousel v-carousel--multi-row"
>
<swiper-slide>
<!-- ProductUnit 문서 참고 -->
<div class="v-product-unit">
<!-- … -->
</div>
<div class="v-product-unit">
<!-- … -->
</div>
</swiper-slide>
<!-- … -->
</swiper-container>
</section>
<section class="v-tmpl v-tmpl--product-2" style="margin-bottom: 0px;">
<h2 class="v-truncate v-title">3개 / 2단</h2>
<script type="module">
if (!window.customElements.get("swiper-container")) {
import("/ui/lib/swiper/swiper-element-customized-bundle.min.js");
}
</script>
<swiper-container
space-between="8"
slides-per-view="3"
slides-per-group="3"
navigation="true"
pagination="true"
class="v-carousel v-carousel--multi-row"
>
<swiper-slide>
<!-- ProductUnit 문서 참고 -->
<div class="v-product-unit">
<!-- … -->
</div>
<div class="v-product-unit">
<!-- … -->
</div>
</swiper-slide>
<!-- … -->
</swiper-container>
</section>

Preview