diff --git a/com.twin.app.shoptime/src/views/DetailPanel/ProductAllSection/ProductAllSection.module.less b/com.twin.app.shoptime/src/views/DetailPanel/ProductAllSection/ProductAllSection.module.less index d9b9e14e..ca63f147 100644 --- a/com.twin.app.shoptime/src/views/DetailPanel/ProductAllSection/ProductAllSection.module.less +++ b/com.twin.app.shoptime/src/views/DetailPanel/ProductAllSection/ProductAllSection.module.less @@ -239,6 +239,9 @@ width: 100%; display: flex; align-items: center; + > div:last-child { + margin-left: 10px; + } } // 모바일 쇼핑 섹션 (mobileSection 참고) @@ -449,7 +452,7 @@ // LayoutSample 포커스 테스트용 스타일 .layoutSample { - width: 1124px; + width: 1114px; height: 300px; background-color: yellow; margin-bottom: 20px; @@ -597,7 +600,7 @@ width: 1210px; // 절대 크기 지정 height: 100%; // 좌측 30px, 우측 66px(스크롤바) 패딩을 명시적으로 적용 - padding: 0 10px 0 30px; + padding: 0 15px 0 30px; box-sizing: border-box; margin: 0; overflow-y: auto; @@ -920,7 +923,7 @@ // LayoutSample 포커스 테스트용 스타일 .layoutSample { - width: 1124px; + width: 1114px; height: 300px; background-color: yellow; margin-bottom: 20px; diff --git a/com.twin.app.shoptime/src/views/DetailPanel/ProductContentSection/ProductDetail/ProductDetail.new.module.less b/com.twin.app.shoptime/src/views/DetailPanel/ProductContentSection/ProductDetail/ProductDetail.new.module.less index 2ec68fba..c5daa52b 100644 --- a/com.twin.app.shoptime/src/views/DetailPanel/ProductContentSection/ProductDetail/ProductDetail.new.module.less +++ b/com.twin.app.shoptime/src/views/DetailPanel/ProductContentSection/ProductDetail/ProductDetail.new.module.less @@ -4,19 +4,19 @@ // 단일 이미지용 ProductDetail 컨테이너 - 명확한 1054px 크기 .rollingWrap { position: relative; - width: 1124px; // 고정 크기 (Description, UserReviews와 동일) - max-width: 1124px; - height: 680px; // 고정 높이로 각 이미지가 한 화면 차지 + width: 1114px; // 고정 크기 (Description, UserReviews와 동일) + max-width: 1114px; + height: 670px; // 고정 높이로 각 이미지가 한 화면 차지 background-color: rgba(255, 255, 255, 1); border-radius: 12px; margin-bottom: 30px; // 다음 ProductDetail과의 간격 box-sizing: border-box; padding: 6px; // 포커스 테두리(6px)를 위한 정확한 공간 확보 - + &:last-child { margin-bottom: 0; // 마지막 이미지는 하단 마진 제거 } - + // 메인 이미지 영역 - 단일 이미지 중앙 배치 .itemBox { width: 100%; @@ -37,7 +37,7 @@ bottom: -6px; left: -6px; } - + .thumbnailWrapper .productImage { transform: scale(1.015); // 가로세로 10px 정도 확대 효과 } @@ -50,7 +50,7 @@ .size(@w: 42px, @h: 42px); background-size: 42px 42px; background-position: center center; - + &.leftBtn { .position(@position: absolute, @top: 349px, @left: 43px); // 높이 중앙: (740/2 - 21) = 349px, 좌측: 30px + 13px = 43px background-image: url("../../../../../assets/images/btn/btn_prev_thumb_nor.png"); @@ -58,7 +58,7 @@ background-image: url("../../../../../assets/images/btn/btn_prev_thumb_foc.png"); } } - + &.rightBtn { .position(@position: absolute, @top: 349px, @right: 43px); // 높이 중앙: 349px, 우측: 30px + 13px = 43px background-image: url("../../../../../assets/images/btn/btn_next_thumb_nor.png"); @@ -70,12 +70,12 @@ .thumbnailWrapper { position: relative; - width: 100%; - height: 100%; // 부모 itemBox의 680px 전체 사용 + width: 658px; + height: 610px; display: flex; align-items: center; justify-content: center; - + .productImage { max-width: 100%; max-height: 100%; diff --git a/com.twin.app.shoptime/src/views/DetailPanel/ProductContentSection/UserReviews/UserReviewDetail/UserReviewDetail.module.less b/com.twin.app.shoptime/src/views/DetailPanel/ProductContentSection/UserReviews/UserReviewDetail/UserReviewDetail.module.less index f15fe948..e44a6a76 100644 --- a/com.twin.app.shoptime/src/views/DetailPanel/ProductContentSection/UserReviews/UserReviewDetail/UserReviewDetail.module.less +++ b/com.twin.app.shoptime/src/views/DetailPanel/ProductContentSection/UserReviews/UserReviewDetail/UserReviewDetail.module.less @@ -9,7 +9,9 @@ display: flex; justify-content: center; align-items: center; - + :focus { + border: none; + } // 좌측 화살표 (이전 리뷰) - detailpanel PNG 사용 .leftArrow { width: 50px; @@ -20,10 +22,10 @@ display: flex; justify-content: center; align-items: center; - + // 화살표 아이콘 (< 모양, 17px x 29px) &::before { - content: ''; + content: ""; width: 17px; height: 29px; background-image: url("../../../../../../assets/images/detailpanel/left-arrow.svg"); @@ -32,26 +34,22 @@ background-repeat: no-repeat; display: block; } - + &:focus { - outline: none; - + outline: 4px solid @PRIMARY_COLOR_RED !important; + &::before { background-image: url("../../../../../../assets/images/detailpanel/left-arrow-red.svg"); } - - &::after { - .focused(@boxShadow: 0px, @borderRadius: 4px); - } } - + &:hover { &::before { background-image: url("../../../../../../assets/images/detailpanel/left-arrow-red.svg"); } } } - + // 메인 콘텐츠 영역 (피그마 레이아웃 적용) .mainContent { flex: 1; @@ -61,24 +59,24 @@ display: flex; justify-content: flex-start; align-items: flex-start; - + .reviewContainer { flex: 1; align-self: stretch; padding: 30px; - background: #F8F8F8; + background: #f8f8f8; border-radius: 12px; display: flex; justify-content: flex-start; align-items: flex-start; margin-right: 30px; // gap: 30 → margin-right: 30px - + // 이미지 섹션 (피그마: flex: 1, align-self: stretch, padding: 5px 4px) .imageSection { flex: 1; align-self: stretch; display: flex; - + .reviewImage { width: 357px; height: 467px; @@ -87,7 +85,7 @@ object-fit: cover; } } - + // 정보 섹션 .infoSection { flex: 1; @@ -97,7 +95,7 @@ justify-content: flex-start; align-items: flex-start; margin-left: 30px; // gap: 30 → margin-left: 30px - + // 메타 섹션 (별점, 이메일, 날짜) .metaSection { align-self: stretch; @@ -107,20 +105,20 @@ justify-content: flex-start; align-items: flex-start; margin-bottom: 15px; // gap: 15 → margin-bottom: 15px - + .ratingContainer { padding-bottom: 20px; display: inline-flex; // 피그마: inline-flex justify-content: flex-start; align-items: flex-start; margin-right: 4px; // gap: 4 → margin-right: 4px - + .starRating { // 별점 아이콘들 사이 간격은 StarRating 컴포넌트 내부에서 처리 // :global 사용 금지로 인해 내부 처리에 맡김 } } - + .email { width: 400px; min-height: 31px; @@ -134,7 +132,7 @@ overflow-wrap: break-word; margin-bottom: 20px; } - + .date { color: #333333; font-size: 24px; @@ -144,7 +142,7 @@ word-wrap: break-word; } } - + // 리뷰 텍스트 .reviewText { align-self: stretch; @@ -157,26 +155,26 @@ } } } - + // 커스텀 스크롤바 .customScrollbar { width: 6px; align-self: stretch; position: relative; - background: #E7E7E7; + background: #e7e7e7; overflow: hidden; - + .scrollTrack { width: 6px; height: 100px; left: 0; top: 0; position: absolute; - background: #7A808D; + background: #7a808d; } } } - + // 우측 화살표 (다음 리뷰) - detailpanel PNG 사용 .rightArrow { width: 50px; @@ -187,10 +185,10 @@ display: flex; justify-content: center; align-items: center; - + // 화살표 아이콘 (> 모양, 17px x 29px) &::before { - content: ''; + content: ""; width: 17px; height: 29px; background-image: url("../../../../../../assets/images/detailpanel/right-arrow.svg"); @@ -199,26 +197,22 @@ background-repeat: no-repeat; display: block; } - + &:focus { - outline: none; - + outline: 4px solid @PRIMARY_COLOR_RED !important; + &::before { background-image: url("../../../../../../assets/images/detailpanel/right-arrow-red.svg"); } - - &::after { - .focused(@boxShadow: 0px, @borderRadius: 4px); - } } - + &:hover { &::before { background-image: url("../../../../../../assets/images/detailpanel/right-arrow-red.svg"); } } } - + // 리뷰 데이터가 없을 때 .noReview { display: flex; @@ -228,4 +222,4 @@ font-size: 24px; font-family: @baseFont; } -} \ No newline at end of file +} diff --git a/com.twin.app.shoptime/src/views/DetailPanel/ProductContentSection/YouMayAlsoLike/YouMayAlsoLike.module.less b/com.twin.app.shoptime/src/views/DetailPanel/ProductContentSection/YouMayAlsoLike/YouMayAlsoLike.module.less index 25ebe9ef..0906deeb 100644 --- a/com.twin.app.shoptime/src/views/DetailPanel/ProductContentSection/YouMayAlsoLike/YouMayAlsoLike.module.less +++ b/com.twin.app.shoptime/src/views/DetailPanel/ProductContentSection/YouMayAlsoLike/YouMayAlsoLike.module.less @@ -15,8 +15,8 @@ .tVerticalPagenator { .size(@w: 1114px, @h: auto); // 마진 포함 전체 크기 (1054px + 60px) max-width: 1114px; - padding-left: 30px; // 좌측 30px 마진 - padding-right: 30px; // 우측 30px 마진 + // padding-left: 30px; // 좌측 30px 마진 + // padding-right: 30px; // 우측 30px 마진 box-sizing: border-box; // .sectionTitle { @@ -28,8 +28,8 @@ // } .tHeader { background: transparent; - .size(@w: 1054px, @h: 36px); // 마진 제외 콘텐츠 크기 - max-width: 1054px; + .size(@w: 1144px, @h: 36px); // 마진 제외 콘텐츠 크기 + max-width: 1144px; margin-bottom: 20px; > div { @@ -58,20 +58,20 @@ // } .renderCardContainer { - width: auto; + width: 1144px; display: flex; flex-wrap: wrap; // margin-top: 34px; > div { /* item card */ margin: 0 15px 15px 0; - .size(@w:300px,@h:435px); + .size(@w:360px,@h:494px); background-color: rgba(51, 51, 51, 0.95); border: none; > div:nth-child(1) { /* img wrapper*/ - .size(@w:264px,@h:264px); + .size(@w:323px,@h:323px); > img { .size(@w:100%,@h:100%); @@ -79,18 +79,17 @@ } > div:nth-child(2) { + margin-top: 15px; /* desc wrapper */ > div > h3 { /* title */ color: rgba(234, 234, 234, 1); - margin-top: 15px; - .size(@w:100%,@h:62px); + .size(@w:100%,@h:64px); line-height: 31px; } > p { /* priceInfo */ height: 43px; - line-height: 35px; text-align: center; > span { diff --git a/com.twin.app.shoptime/src/views/DetailPanel/ProductInfoSection/QRCode/QRCode.jsx b/com.twin.app.shoptime/src/views/DetailPanel/ProductInfoSection/QRCode/QRCode.jsx index 0894414c..b7634e37 100644 --- a/com.twin.app.shoptime/src/views/DetailPanel/ProductInfoSection/QRCode/QRCode.jsx +++ b/com.twin.app.shoptime/src/views/DetailPanel/ProductInfoSection/QRCode/QRCode.jsx @@ -1,5 +1,6 @@ import React, { useMemo } from 'react'; +import classNames from 'classnames'; import { useSelector } from 'react-redux'; import TQRCode from '../../../../components/TQRCode/TQRCode'; @@ -56,7 +57,7 @@ export default function QRCode({ }, [productInfo, isShopByMobile, detailUrl]); return ( -