up
41
src/assets/css/font.css
Normal file
@@ -0,0 +1,41 @@
|
||||
@font-face {
|
||||
font-family: "Shopee";
|
||||
font-display: swap;
|
||||
src: url(../font//FVHShopeeText-Bold.otf);
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Shopee Bold";
|
||||
font-display: swap;
|
||||
src: url(../font/ShopeeDisplay-Bold.ttf);
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Shopee Regular";
|
||||
font-display: swap;
|
||||
src: url(../font/ShopeeDisplay-Regular.ttf);
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Shopee Medium";
|
||||
font-display: swap;
|
||||
src: url(../font/ShopeeDisplay-Medium.ttf);
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Shopee Light";
|
||||
font-display: swap;
|
||||
src: url(../font/ShopeeDisplay-Light.ttf);
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Shopee ExtraBold";
|
||||
font-display: swap;
|
||||
src: url(../font/ShopeeDisplay-ExtraBold.ttf);
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Shopee Black";
|
||||
font-display: swap;
|
||||
src: url(../font/ShopeeDisplay-Black.ttf);
|
||||
}
|
||||
737
src/assets/css/style.css
Normal file
@@ -0,0 +1,737 @@
|
||||
:root {
|
||||
--color-global: #462f91;
|
||||
--color-title: #0d0d9c;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar {
|
||||
width: 7px;
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: #462f91;
|
||||
border-radius: 20px;
|
||||
background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(0.7, #462f91), color-stop(0.5, transparent), to(transparent));
|
||||
}
|
||||
|
||||
html {
|
||||
font-size: 100%;
|
||||
font-family: "Shopee", sans-serif;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 1400px !important;
|
||||
margin: 0 auto;
|
||||
width: 1400px !important;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: "Shopee";
|
||||
font-size: 14px;
|
||||
background: #fff;
|
||||
min-width: 1400px;
|
||||
color: #303030;
|
||||
}
|
||||
|
||||
html {
|
||||
font-family: "Shopee";
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-family: "Shopee Bold";
|
||||
}
|
||||
|
||||
b {
|
||||
font-family: "Shopee Bold";
|
||||
}
|
||||
|
||||
p,
|
||||
span {
|
||||
font-family: "Shopee Medium";
|
||||
}
|
||||
|
||||
.icon_2025 {
|
||||
background: url(../images/icon_2025.png) no-repeat;
|
||||
background-size: 228px 175px;
|
||||
display: block;
|
||||
}
|
||||
.icon_2025.map {
|
||||
width: 20px;
|
||||
height: 26px;
|
||||
background-position: 1px 0px;
|
||||
}
|
||||
.icon_2025.search {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
background-position: -70px 0;
|
||||
}
|
||||
.icon_2025.user {
|
||||
width: 26px;
|
||||
height: 26px;
|
||||
background-position: -133px 0px;
|
||||
}
|
||||
.icon_2025.bar {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
background-position: 1px -40px;
|
||||
}
|
||||
.icon_2025.buildpc {
|
||||
width: 36px;
|
||||
height: 24px;
|
||||
background-position: -24px -35px;
|
||||
}
|
||||
.icon_2025.shop {
|
||||
width: 22px;
|
||||
height: 24px;
|
||||
background-position: -70px -35px;
|
||||
}
|
||||
.icon_2025.map-2 {
|
||||
width: 15px;
|
||||
height: 23px;
|
||||
background-position: -26px -3px;
|
||||
}
|
||||
.icon_2025.map-3 {
|
||||
width: 13px;
|
||||
height: 18px;
|
||||
background-position: -49px -3px;
|
||||
}
|
||||
.icon_2025.question {
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
background-position: -100px -35px;
|
||||
}
|
||||
.icon_2025.prduct-save {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
background-position: -133px -35px;
|
||||
}
|
||||
.icon_2025.article {
|
||||
width: 30px;
|
||||
height: 24px;
|
||||
background-position: -162px -35px;
|
||||
}
|
||||
.icon_2025.heart {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
background-position: -98px -141px;
|
||||
}
|
||||
.icon_2025.link {
|
||||
width: 14px;
|
||||
height: 10px;
|
||||
background-position: -212px -108px;
|
||||
}
|
||||
.icon_2025.time {
|
||||
width: 15px;
|
||||
height: 14.5px;
|
||||
background-position: -188px -147.5px;
|
||||
}
|
||||
.icon_2025.mouse {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background-position: -160px -145px;
|
||||
}
|
||||
.icon_2025.facebook {
|
||||
width: 41px;
|
||||
height: 40px;
|
||||
background-position: 0 -135px;
|
||||
}
|
||||
.icon_2025.zalo {
|
||||
width: 41px;
|
||||
height: 40px;
|
||||
background-position: -50px -135px;
|
||||
}
|
||||
.icon_2025.home {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background-position: -207px -129px;
|
||||
}
|
||||
.icon_2025.angle-right {
|
||||
width: 11px;
|
||||
height: 17px;
|
||||
background-position: -212px -152px;
|
||||
}
|
||||
.icon_2025.view {
|
||||
width: 22px;
|
||||
height: 16px;
|
||||
background-position: -205px -8px;
|
||||
}
|
||||
.icon_2025.time-big {
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
background-position: -2px -70px;
|
||||
}
|
||||
.icon_2025.share {
|
||||
width: 21px;
|
||||
height: 21px;
|
||||
background-position: -198px -36px;
|
||||
}
|
||||
.icon_2025.map-4 {
|
||||
width: 18px;
|
||||
height: 25px;
|
||||
background-position: -152px -69px;
|
||||
}
|
||||
|
||||
.icon-star {
|
||||
background: url(../images/icon_star.png) no-repeat;
|
||||
display: block;
|
||||
width: 80px;
|
||||
height: 15px;
|
||||
background-size: 79px 95px;
|
||||
}
|
||||
.icon-star.star5 {
|
||||
background-position: 0 0;
|
||||
}
|
||||
.icon-star.star4 {
|
||||
background-position: 0 -15px;
|
||||
}
|
||||
.icon-star.star3 {
|
||||
background-position: 0 -30px;
|
||||
}
|
||||
.icon-star.star2 {
|
||||
background-position: 0 -47px;
|
||||
}
|
||||
.icon-star.star1 {
|
||||
background-position: 0 -63px;
|
||||
}
|
||||
.icon-star.star0 {
|
||||
background-position: 0 -78px;
|
||||
}
|
||||
.icon-star.star-small {
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
background-position: 0 0;
|
||||
}
|
||||
|
||||
.bg-global {
|
||||
background: var(--color-global);
|
||||
}
|
||||
|
||||
.box-select {
|
||||
position: relative;
|
||||
width: 80px;
|
||||
}
|
||||
.box-select .select {
|
||||
width: 100%;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 1;
|
||||
color: #fff;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
z-index: 2;
|
||||
position: relative;
|
||||
background: transparent;
|
||||
cursor: pointer;
|
||||
font-family: "Shopee Bold";
|
||||
}
|
||||
.box-select .select:focus {
|
||||
outline: none;
|
||||
box-shadow: 0 0 0 2px rgba(70, 47, 145, 0.2);
|
||||
border-color: var(--color-global);
|
||||
}
|
||||
.box-select .select option {
|
||||
background: var(--color-global);
|
||||
font-family: "Shopee";
|
||||
}
|
||||
.box-select::after {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: 7px;
|
||||
content: "";
|
||||
display: block;
|
||||
width: 11px;
|
||||
height: 5px;
|
||||
z-index: 1;
|
||||
background: #d9d9d9;
|
||||
-webkit-clip-path: polygon(50% 100%, 0 0, 100% 0);
|
||||
clip-path: polygon(50% 100%, 0 0, 100% 0);
|
||||
}
|
||||
|
||||
.icon_arrow {
|
||||
background: #d9d9d9;
|
||||
width: 10px;
|
||||
height: 6px;
|
||||
-webkit-clip-path: polygon(50% 100%, 0 0, 100% 0);
|
||||
clip-path: polygon(50% 100%, 0 0, 100% 0);
|
||||
display: block;
|
||||
}
|
||||
|
||||
.header-bottom .box-menu-hover .item {
|
||||
border-bottom: 1px solid #ebebeb;
|
||||
padding: 6px 10px;
|
||||
}
|
||||
.header-bottom .box-menu-hover .item:hover .cate-name {
|
||||
color: var(--color-global);
|
||||
}
|
||||
.header-bottom .box-menu-hover .cate-img {
|
||||
width: 23px;
|
||||
text-align: center;
|
||||
margin-right: 15px;
|
||||
}
|
||||
.header-bottom .box-menu-hover .cate-name {
|
||||
width: calc(100% - 38px);
|
||||
}
|
||||
.header-bottom .box-menu-hover .item:hover .sub-menu {
|
||||
visibility: visible;
|
||||
opacity: 1;
|
||||
transform: translate(0, 0);
|
||||
}
|
||||
.header-bottom .sub-menu {
|
||||
position: absolute;
|
||||
visibility: hidden;
|
||||
left: 225px;
|
||||
top: -1px;
|
||||
width: 860px;
|
||||
background: #fff;
|
||||
border-radius: 5px;
|
||||
box-shadow: 0px 0px 8px 2px rgba(0, 0, 0, 0.1);
|
||||
padding: 6px 10px;
|
||||
height: 453px;
|
||||
opacity: 0;
|
||||
transition: opacity 0.5s, transform 0.5s;
|
||||
transition: all 0.45s ease-out 0s;
|
||||
transform: translate(20px, 0);
|
||||
overflow: auto;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.header-bottom .sub-cate {
|
||||
width: 33.3333333333%;
|
||||
padding: 10px 10px 0 0;
|
||||
margin-top: 10px;
|
||||
border-top: 1px solid #efefef;
|
||||
}
|
||||
.header-bottom .sub-cate li {
|
||||
line-height: 30px;
|
||||
}
|
||||
.header-bottom .sub-cate a:hover {
|
||||
color: var(--color-global);
|
||||
font-weight: bold;
|
||||
}
|
||||
.header-bottom .sub-cate:nth-child(1),
|
||||
.header-bottom .sub-cate:nth-child(2),
|
||||
.header-bottom .sub-cate:nth-child(3) {
|
||||
padding: 0 10px 0 0;
|
||||
margin-top: 0;
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
.effect-image {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
.effect-image:before {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: -100%;
|
||||
z-index: 2;
|
||||
display: block;
|
||||
content: "";
|
||||
width: 50%;
|
||||
height: 100%;
|
||||
background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 100%);
|
||||
transform: skewX(-25deg);
|
||||
cursor: pointer;
|
||||
}
|
||||
.effect-image:hover:before {
|
||||
animation: image 1.1s;
|
||||
}
|
||||
@keyframes image {
|
||||
100% {
|
||||
left: 125%;
|
||||
}
|
||||
}
|
||||
.swiper-button-next,
|
||||
.swiper-button-prev {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
background: #fff;
|
||||
border-radius: 50%;
|
||||
border: 1px solid #d9d9d9;
|
||||
}
|
||||
|
||||
.swiper-button-next:after,
|
||||
.swiper-button-prev:after {
|
||||
font-size: 16px;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.tabs-list .tabs-item.active {
|
||||
background: var(--color-global);
|
||||
color: #fff;
|
||||
font-weight: 700;
|
||||
}
|
||||
.tabs-list .tabs-item {
|
||||
font-family: "Shopee Regular";
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.product-item {
|
||||
padding: 12px;
|
||||
border: 1px solid #d3d3d3;
|
||||
background: #fff;
|
||||
border-radius: 8px;
|
||||
}
|
||||
.product-item .product-image {
|
||||
display: block;
|
||||
height: 240px;
|
||||
width: 100%;
|
||||
position: relative;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.product-item .product-image img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
-o-object-fit: contain;
|
||||
object-fit: contain;
|
||||
transform: translatey(0);
|
||||
transition: 0.2s all ease-in;
|
||||
}
|
||||
.product-item .product-image:hover img {
|
||||
transform: translatey(-5px);
|
||||
}
|
||||
.product-item .product-image .box-saleoff {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
border-radius: 50%;
|
||||
background: #da251c;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
line-height: 52px;
|
||||
font-size: 11px;
|
||||
font-weight: 700;
|
||||
}
|
||||
.product-item .product-image .box-saleoff::before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
width: 42px;
|
||||
height: 42px;
|
||||
border: 1px dashed #fff;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
border-radius: 50%;
|
||||
}
|
||||
.product-item .product-image .icon-save {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
}
|
||||
.product-item .name-product {
|
||||
font-family: "Shopee Bold";
|
||||
font-size: 18px;
|
||||
color: #000;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.product-item .name-product:hover {
|
||||
color: var(--color-title);
|
||||
}
|
||||
.product-item .price {
|
||||
font-family: "Shopee Bold";
|
||||
font-size: 18px;
|
||||
color: #d80a00;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.product-item .old-price {
|
||||
color: #b0b0b0;
|
||||
}
|
||||
.product-item .box-shop {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
background: #ff7a00;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.product-item .box-shop .icon_2025.shop {
|
||||
width: 15px;
|
||||
height: 19px;
|
||||
background-position: -49px -23px;
|
||||
background-size: 160px 125px;
|
||||
filter: brightness(0) invert(1);
|
||||
}
|
||||
|
||||
.box-best-rated-products .swiper-button-next {
|
||||
right: -20px;
|
||||
}
|
||||
.box-best-rated-products .swiper-button-prev {
|
||||
left: -20px;
|
||||
}
|
||||
|
||||
.box-category-homepage .item p:hover {
|
||||
font-family: "Shopee Bold";
|
||||
}
|
||||
|
||||
.item-article {
|
||||
display: flex;
|
||||
padding-bottom: 10px;
|
||||
border-bottom: 1px solid #efefef;
|
||||
align-items: flex-start;
|
||||
}
|
||||
.item-article .image-article {
|
||||
width: 90px;
|
||||
margin-right: 10px;
|
||||
display: block;
|
||||
margin-top: 4px;
|
||||
}
|
||||
.item-article .image-article img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
-o-object-fit: contain;
|
||||
object-fit: contain;
|
||||
transform: translatey(0);
|
||||
transition: 0.2s all ease-in;
|
||||
}
|
||||
.item-article .info {
|
||||
width: calc(100% - 100px);
|
||||
}
|
||||
.item-article .name-article {
|
||||
font-family: "Shopee Bold";
|
||||
font-size: 16px;
|
||||
color: #000;
|
||||
margin-bottom: 3px;
|
||||
}
|
||||
.item-article .name-article:hover {
|
||||
color: var(--color-title);
|
||||
}
|
||||
.item-article .summary {
|
||||
margin-bottom: 3px;
|
||||
font-family: "Shopee Regular";
|
||||
font-size: 16px;
|
||||
color: #161616;
|
||||
}
|
||||
.item-article .link-article {
|
||||
margin-top: 5px;
|
||||
color: var(--color-global);
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.more-link {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 130px;
|
||||
height: 34px;
|
||||
line-height: 34px;
|
||||
font-size: 16px;
|
||||
color: var(--color-global);
|
||||
cursor: pointer;
|
||||
margin-top: 10px;
|
||||
border: 1px solid var(--color-global);
|
||||
border-radius: 4px;
|
||||
}
|
||||
.more-link span {
|
||||
font-family: "Shopee Bold";
|
||||
margin-right: 5px;
|
||||
}
|
||||
.more-link:hover {
|
||||
background: var(--color-global);
|
||||
color: #fff;
|
||||
border: 1px solid var(--color-global);
|
||||
}
|
||||
.more-link:hover i {
|
||||
filter: brightness(0) invert(1);
|
||||
}
|
||||
|
||||
.item-classifieds {
|
||||
display: flex;
|
||||
padding-bottom: 10px;
|
||||
border-bottom: 1px solid #efefef;
|
||||
align-items: flex-start;
|
||||
}
|
||||
.item-classifieds .image-classifieds {
|
||||
width: 90px;
|
||||
margin-right: 10px;
|
||||
display: block;
|
||||
margin-top: 4px;
|
||||
}
|
||||
.item-classifieds .image-classifieds img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
-o-object-fit: contain;
|
||||
object-fit: contain;
|
||||
transform: translatey(0);
|
||||
transition: 0.2s all ease-in;
|
||||
}
|
||||
.item-classifieds .info {
|
||||
width: calc(100% - 100px);
|
||||
}
|
||||
.item-classifieds .summary {
|
||||
font-family: "shopee Regular";
|
||||
font-size: 15px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.item-classifieds .name-classifieds {
|
||||
font-family: "shopee Bold";
|
||||
font-size: 18px;
|
||||
}
|
||||
.item-classifieds .price {
|
||||
font-family: "shopee Bold";
|
||||
font-size: 20px;
|
||||
color: #d80a00;
|
||||
}
|
||||
|
||||
.box-promotions .box-big {
|
||||
position: relative;
|
||||
border-radius: 12px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.box-promotions .box-big::before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: linear-gradient(180deg, rgba(0, 0, 0, 0) 52.88%, #000000 100%);
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
}
|
||||
.box-promotions .box-big::after {
|
||||
position: absolute;
|
||||
content: "";
|
||||
width: 60px;
|
||||
height: 47px;
|
||||
background: url(../images/icon-play.png) no-repeat;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transition: 0.2s all ease-in;
|
||||
transform: translate(-50%, -50%);
|
||||
background-size: contain;
|
||||
}
|
||||
.box-promotions .box-big:hover::after {
|
||||
top: 51%;
|
||||
}
|
||||
.box-promotions .box-big.active::after, .box-promotions .box-big.active::before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.main-footer a {
|
||||
display: block;
|
||||
margin-bottom: 15px;
|
||||
font-size: 16px;
|
||||
font-weight: 550;
|
||||
}
|
||||
.main-footer a:hover {
|
||||
color: var(--color-title);
|
||||
text-decoration: underline;
|
||||
}
|
||||
.main-footer .title {
|
||||
margin-bottom: 15px;
|
||||
position: relative;
|
||||
padding-bottom: 10px;
|
||||
font-size: 22px;
|
||||
}
|
||||
.main-footer .title::after {
|
||||
position: absolute;
|
||||
content: "";
|
||||
width: 75px;
|
||||
height: 2px;
|
||||
background: var(--color-title);
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.breadcrumb span {
|
||||
font-size: 18px;
|
||||
font-family: "Shopee Medium";
|
||||
}
|
||||
|
||||
.page-category .list-cate a {
|
||||
font-family: "Shopee Regular";
|
||||
}
|
||||
.page-category .list-cate a.active {
|
||||
font-family: "Shopee Bold";
|
||||
font-weight: 600;
|
||||
}
|
||||
.page-category .list-cate a:hover {
|
||||
color: var(--color-title);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.checkbox {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
display: block;
|
||||
border: 1px solid #d3d3d3;
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.box-filter label {
|
||||
font-family: "Shopee Light";
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#js-slider-big {
|
||||
height: 680px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#js-slider-big .item img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
-o-object-fit: contain;
|
||||
object-fit: contain;
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
#js-slider-small .item img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
-o-object-fit: contain;
|
||||
object-fit: contain;
|
||||
margin: 0 auto;
|
||||
}
|
||||
#js-slider-small .swiper-slide {
|
||||
border: 1px solid #b1b1b1;
|
||||
width: 100%;
|
||||
height: 130px;
|
||||
border-radius: 12px;
|
||||
}
|
||||
#js-slider-small .swiper-slide-thumb-active {
|
||||
border: 1.5px solid var(--color-title);
|
||||
}
|
||||
|
||||
.box-product-detail .box-shop {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
background: #ff7a00;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.box-product-detail .box-shop .icon_2025.shop {
|
||||
width: 15px;
|
||||
height: 19px;
|
||||
background-position: -49px -23px;
|
||||
background-size: 160px 125px;
|
||||
filter: brightness(0) invert(1);
|
||||
}
|
||||
.box-product-detail .box-shop p {
|
||||
font-weight: 700;
|
||||
}
|
||||
.box-product-detail .box-summary {
|
||||
font-family: "Shopee Medium";
|
||||
font-size: 16px;
|
||||
}
|
||||
.box-product-detail .box-summary li {
|
||||
list-style: inside;
|
||||
}/*# sourceMappingURL=style.css.map */
|
||||
1
src/assets/css/style.css.map
Normal file
783
src/assets/css/style.scss
Normal file
@@ -0,0 +1,783 @@
|
||||
:root {
|
||||
--color-global: #462f91;
|
||||
--color-title: #0d0d9c;
|
||||
}
|
||||
::-webkit-scrollbar-track {
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 10px;
|
||||
}
|
||||
::-webkit-scrollbar {
|
||||
width: 7px;
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: #462f91;
|
||||
border-radius: 20px;
|
||||
background-image: -webkit-gradient(
|
||||
linear,
|
||||
0 0,
|
||||
0 100%,
|
||||
color-stop(0.7, #462f91),
|
||||
color-stop(0.5, transparent),
|
||||
to(transparent)
|
||||
);
|
||||
}
|
||||
html {
|
||||
font-size: 100%;
|
||||
font-family: "Shopee", sans-serif;
|
||||
}
|
||||
|
||||
.container {
|
||||
max-width: 1400px !important;
|
||||
margin: 0 auto;
|
||||
width: 1400px !important;
|
||||
}
|
||||
body {
|
||||
font-family: "Shopee";
|
||||
font-size: 14px;
|
||||
background: #fff;
|
||||
min-width: 1400px;
|
||||
color: #303030;
|
||||
}
|
||||
html {
|
||||
font-family: "Shopee";
|
||||
}
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-family: "Shopee Bold";
|
||||
}
|
||||
b {
|
||||
font-family: "Shopee Bold";
|
||||
}
|
||||
p,
|
||||
span {
|
||||
font-family: "Shopee Medium";
|
||||
}
|
||||
.icon_2025 {
|
||||
background: url(../images/icon_2025.png) no-repeat;
|
||||
background-size: 228px 175px;
|
||||
display: block;
|
||||
&.map {
|
||||
width: 20px;
|
||||
height: 26px;
|
||||
background-position: 1px 0px;
|
||||
}
|
||||
&.search {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
background-position: -70px 0;
|
||||
}
|
||||
&.user {
|
||||
width: 26px;
|
||||
height: 26px;
|
||||
background-position: -133px 0px;
|
||||
}
|
||||
&.bar {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
background-position: 1px -40px;
|
||||
}
|
||||
&.buildpc {
|
||||
width: 36px;
|
||||
height: 24px;
|
||||
background-position: -24px -35px;
|
||||
}
|
||||
&.shop {
|
||||
width: 22px;
|
||||
height: 24px;
|
||||
background-position: -70px -35px;
|
||||
}
|
||||
&.map-2 {
|
||||
width: 15px;
|
||||
height: 23px;
|
||||
background-position: -26px -3px;
|
||||
}
|
||||
&.map-3 {
|
||||
width: 13px;
|
||||
height: 18px;
|
||||
background-position: -49px -3px;
|
||||
}
|
||||
&.question {
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
background-position: -100px -35px;
|
||||
}
|
||||
&.prduct-save {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
background-position: -133px -35px;
|
||||
}
|
||||
&.article {
|
||||
width: 30px;
|
||||
height: 24px;
|
||||
background-position: -162px -35px;
|
||||
}
|
||||
&.heart {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
background-position: -98px -141px;
|
||||
}
|
||||
&.link {
|
||||
width: 14px;
|
||||
height: 10px;
|
||||
background-position: -212px -108px;
|
||||
}
|
||||
&.time {
|
||||
width: 15px;
|
||||
height: 14.5px;
|
||||
background-position: -188px -147.5px;
|
||||
}
|
||||
&.mouse {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background-position: -160px -145px;
|
||||
}
|
||||
&.facebook {
|
||||
width: 41px;
|
||||
height: 40px;
|
||||
background-position: 0 -135px;
|
||||
}
|
||||
&.zalo {
|
||||
width: 41px;
|
||||
height: 40px;
|
||||
background-position: -50px -135px;
|
||||
}
|
||||
|
||||
&.home {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background-position: -207px -129px;
|
||||
}
|
||||
&.angle-right {
|
||||
width: 11px;
|
||||
height: 17px;
|
||||
background-position: -212px -152px;
|
||||
}
|
||||
&.view {
|
||||
width: 22px;
|
||||
height: 16px;
|
||||
background-position: -205px -8px;
|
||||
}
|
||||
&.time-big {
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
background-position: -2px -70px;
|
||||
}
|
||||
&.share {
|
||||
width: 21px;
|
||||
height: 21px;
|
||||
background-position: -198px -36px;
|
||||
}
|
||||
&.map-4 {
|
||||
width: 18px;
|
||||
height: 25px;
|
||||
background-position: -152px -69px;
|
||||
}
|
||||
}
|
||||
|
||||
.icon-star {
|
||||
background: url(../images/icon_star.png) no-repeat;
|
||||
display: block;
|
||||
width: 80px;
|
||||
height: 15px;
|
||||
background-size: 79px 95px;
|
||||
&.star5 {
|
||||
background-position: 0 0;
|
||||
}
|
||||
&.star4 {
|
||||
background-position: 0 -15px;
|
||||
}
|
||||
&.star3 {
|
||||
background-position: 0 -30px;
|
||||
}
|
||||
&.star2 {
|
||||
background-position: 0 -47px;
|
||||
}
|
||||
&.star1 {
|
||||
background-position: 0 -63px;
|
||||
}
|
||||
&.star0 {
|
||||
background-position: 0 -78px;
|
||||
}
|
||||
&.star-small {
|
||||
width: 15px;
|
||||
height: 15px;
|
||||
background-position: 0 0;
|
||||
}
|
||||
}
|
||||
|
||||
.bg-global {
|
||||
background: var(--color-global);
|
||||
}
|
||||
.box-select {
|
||||
position: relative;
|
||||
width: 80px;
|
||||
.select {
|
||||
width: 100%;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 1;
|
||||
color: #fff;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
z-index: 2;
|
||||
position: relative;
|
||||
background: transparent;
|
||||
cursor: pointer;
|
||||
font-family: "Shopee Bold";
|
||||
&:focus {
|
||||
outline: none;
|
||||
box-shadow: 0 0 0 2px rgba(70, 47, 145, 0.2);
|
||||
border-color: var(--color-global);
|
||||
}
|
||||
option {
|
||||
background: var(--color-global);
|
||||
font-family: "Shopee";
|
||||
}
|
||||
}
|
||||
&::after {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: 7px;
|
||||
content: "";
|
||||
display: block;
|
||||
width: 11px;
|
||||
height: 5px;
|
||||
z-index: 1;
|
||||
background: #d9d9d9;
|
||||
clip-path: polygon(50% 100%, 0 0, 100% 0);
|
||||
}
|
||||
}
|
||||
.icon_arrow {
|
||||
background: #d9d9d9;
|
||||
width: 10px;
|
||||
height: 6px;
|
||||
clip-path: polygon(50% 100%, 0 0, 100% 0);
|
||||
display: block;
|
||||
}
|
||||
.header-bottom {
|
||||
.box-menu-hover {
|
||||
.item {
|
||||
border-bottom: 1px solid #ebebeb;
|
||||
padding: 6px 10px;
|
||||
&:hover .cate-name {
|
||||
color: var(--color-global);
|
||||
}
|
||||
}
|
||||
.cate-img {
|
||||
width: 23px;
|
||||
text-align: center;
|
||||
margin-right: 15px;
|
||||
}
|
||||
.cate-name {
|
||||
width: calc(100% - 38px);
|
||||
}
|
||||
.item:hover .sub-menu {
|
||||
visibility: visible;
|
||||
opacity: 1;
|
||||
-webkit-transform: translate(0, 0);
|
||||
transform: translate(0, 0);
|
||||
}
|
||||
}
|
||||
.sub-menu {
|
||||
position: absolute;
|
||||
visibility: hidden;
|
||||
left: 225px;
|
||||
top: -1px;
|
||||
width: 860px;
|
||||
background: #fff;
|
||||
border-radius: 5px;
|
||||
-webkit-box-shadow: 0px 0px 8px 2px rgba(0, 0, 0, 0.1);
|
||||
box-shadow: 0px 0px 8px 2px rgba(0, 0, 0, 0.1);
|
||||
padding: 6px 10px;
|
||||
height: 453px;
|
||||
opacity: 0;
|
||||
-webkit-transition:
|
||||
opacity 0.5s,
|
||||
-webkit-transform 0.5s;
|
||||
transition:
|
||||
opacity 0.5s,
|
||||
-webkit-transform 0.5s;
|
||||
transition:
|
||||
opacity 0.5s,
|
||||
transform 0.5s;
|
||||
transition:
|
||||
opacity 0.5s,
|
||||
transform 0.5s,
|
||||
-webkit-transform 0.5s;
|
||||
-webkit-transition: all 0.45s ease-out 0s;
|
||||
transition: all 0.45s ease-out 0s;
|
||||
-webkit-transform: translate(20px, 0);
|
||||
transform: translate(20px, 0);
|
||||
overflow: auto;
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-ms-flex-wrap: wrap;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
.sub-cate {
|
||||
width: calc(100% / 3);
|
||||
padding: 10px 10px 0 0;
|
||||
margin-top: 10px;
|
||||
border-top: 1px solid #efefef;
|
||||
li {
|
||||
line-height: 30px;
|
||||
}
|
||||
a:hover {
|
||||
color: var(--color-global);
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
.sub-cate:nth-child(1),
|
||||
.sub-cate:nth-child(2),
|
||||
.sub-cate:nth-child(3) {
|
||||
padding: 0 10px 0 0;
|
||||
margin-top: 0;
|
||||
border-top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.effect-image {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
&:before {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: -100%;
|
||||
z-index: 2;
|
||||
display: block;
|
||||
content: "";
|
||||
width: 50%;
|
||||
height: 100%;
|
||||
background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 100%);
|
||||
background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 100%);
|
||||
-webkit-transform: skewX(-25deg);
|
||||
transform: skewX(-25deg);
|
||||
cursor: pointer;
|
||||
}
|
||||
&:hover:before {
|
||||
-webkit-animation: image 1.1s;
|
||||
animation: image 1.1s;
|
||||
}
|
||||
}
|
||||
|
||||
@-webkit-keyframes image {
|
||||
100% {
|
||||
left: 125%;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes image {
|
||||
100% {
|
||||
left: 125%;
|
||||
}
|
||||
}
|
||||
.swiper-button-next,
|
||||
.swiper-button-prev {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
background: #fff;
|
||||
border-radius: 50%;
|
||||
border: 1px solid #d9d9d9;
|
||||
}
|
||||
|
||||
.swiper-button-next:after,
|
||||
.swiper-button-prev:after {
|
||||
font-size: 16px;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.tabs-list {
|
||||
.tabs-item.active {
|
||||
background: var(--color-global);
|
||||
color: #fff;
|
||||
font-weight: 700;
|
||||
}
|
||||
.tabs-item {
|
||||
font-family: "Shopee Regular";
|
||||
font-weight: 400;
|
||||
}
|
||||
}
|
||||
|
||||
.product-item {
|
||||
padding: 12px;
|
||||
border: 1px solid #d3d3d3;
|
||||
background: #fff;
|
||||
border-radius: 8px;
|
||||
.product-image {
|
||||
display: block;
|
||||
height: 240px;
|
||||
width: 100%;
|
||||
position: relative;
|
||||
margin-bottom: 5px;
|
||||
img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: contain;
|
||||
transform: translatey(0);
|
||||
transition: 0.2s all ease-in;
|
||||
}
|
||||
&:hover {
|
||||
img {
|
||||
transform: translatey(-5px);
|
||||
}
|
||||
}
|
||||
.box-saleoff {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
border-radius: 50%;
|
||||
background: #da251c;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
line-height: 52px;
|
||||
font-size: 11px;
|
||||
font-weight: 700;
|
||||
&::before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
width: 42px;
|
||||
height: 42px;
|
||||
border: 1px dashed #fff;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
border-radius: 50%;
|
||||
}
|
||||
}
|
||||
.icon-save {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
.name-product {
|
||||
font-family: "Shopee Bold";
|
||||
font-size: 18px;
|
||||
color: #000;
|
||||
margin-bottom: 10px;
|
||||
&:hover {
|
||||
color: var(--color-title);
|
||||
}
|
||||
}
|
||||
.price {
|
||||
font-family: "Shopee Bold";
|
||||
font-size: 18px;
|
||||
color: #d80a00;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.old-price {
|
||||
color: #b0b0b0;
|
||||
}
|
||||
.box-shop {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
background: #ff7a00;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
.icon_2025.shop {
|
||||
width: 15px;
|
||||
height: 19px;
|
||||
background-position: -49px -23px;
|
||||
background-size: 160px 125px;
|
||||
filter: brightness(0) invert(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.box-best-rated-products {
|
||||
.swiper-button-next {
|
||||
right: -20px;
|
||||
}
|
||||
.swiper-button-prev {
|
||||
left: -20px;
|
||||
}
|
||||
}
|
||||
|
||||
.box-category-homepage {
|
||||
.item p:hover {
|
||||
font-family: "Shopee Bold";
|
||||
}
|
||||
}
|
||||
|
||||
.item-article {
|
||||
display: flex;
|
||||
padding-bottom: 10px;
|
||||
border-bottom: 1px solid #efefef;
|
||||
align-items: flex-start;
|
||||
.image-article {
|
||||
width: 90px;
|
||||
margin-right: 10px;
|
||||
display: block;
|
||||
margin-top: 4px;
|
||||
img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: contain;
|
||||
transform: translatey(0);
|
||||
transition: 0.2s all ease-in;
|
||||
}
|
||||
}
|
||||
.info {
|
||||
width: calc(100% - 100px);
|
||||
}
|
||||
.name-article {
|
||||
font-family: "Shopee Bold";
|
||||
font-size: 16px;
|
||||
color: #000;
|
||||
margin-bottom: 3px;
|
||||
&:hover {
|
||||
color: var(--color-title);
|
||||
}
|
||||
}
|
||||
.summary {
|
||||
margin-bottom: 3px;
|
||||
font-family: "Shopee Regular";
|
||||
font-size: 16px;
|
||||
color: #161616;
|
||||
}
|
||||
.link-article {
|
||||
margin-top: 5px;
|
||||
color: var(--color-global);
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
.more-link {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 130px;
|
||||
height: 34px;
|
||||
line-height: 34px;
|
||||
font-size: 16px;
|
||||
color: var(--color-global);
|
||||
cursor: pointer;
|
||||
margin-top: 10px;
|
||||
border: 1px solid var(--color-global);
|
||||
border-radius: 4px;
|
||||
span {
|
||||
font-family: "Shopee Bold";
|
||||
margin-right: 5px;
|
||||
}
|
||||
&:hover {
|
||||
background: var(--color-global);
|
||||
color: #fff;
|
||||
border: 1px solid var(--color-global);
|
||||
i {
|
||||
filter: brightness(0) invert(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
.item-classifieds {
|
||||
display: flex;
|
||||
padding-bottom: 10px;
|
||||
border-bottom: 1px solid #efefef;
|
||||
align-items: flex-start;
|
||||
.image-classifieds {
|
||||
width: 90px;
|
||||
margin-right: 10px;
|
||||
display: block;
|
||||
margin-top: 4px;
|
||||
img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: contain;
|
||||
transform: translatey(0);
|
||||
transition: 0.2s all ease-in;
|
||||
}
|
||||
}
|
||||
.info {
|
||||
width: calc(100% - 100px);
|
||||
}
|
||||
.summary {
|
||||
font-family: "shopee Regular";
|
||||
font-size: 15px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.name-classifieds {
|
||||
font-family: "shopee Bold";
|
||||
font-size: 18px;
|
||||
}
|
||||
.price {
|
||||
font-family: "shopee Bold";
|
||||
font-size: 20px;
|
||||
color: #d80a00;
|
||||
}
|
||||
}
|
||||
|
||||
.box-promotions {
|
||||
.box-big {
|
||||
position: relative;
|
||||
border-radius: 12px;
|
||||
overflow: hidden;
|
||||
&::before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: linear-gradient(180deg, rgba(0, 0, 0, 0) 52.88%, #000000 100%);
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
}
|
||||
&::after {
|
||||
position: absolute;
|
||||
content: "";
|
||||
width: 60px;
|
||||
height: 47px;
|
||||
background: url(../images/icon-play.png) no-repeat;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transition: 0.2s all ease-in;
|
||||
transform: translate(-50%, -50%);
|
||||
background-size: contain;
|
||||
}
|
||||
&:hover {
|
||||
&::after {
|
||||
top: 51%;
|
||||
}
|
||||
}
|
||||
&.active {
|
||||
&::after,
|
||||
&::before {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.main-footer {
|
||||
a {
|
||||
display: block;
|
||||
margin-bottom: 15px;
|
||||
font-size: 16px;
|
||||
font-weight: 550;
|
||||
&:hover {
|
||||
color: var(--color-title);
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
.title {
|
||||
margin-bottom: 15px;
|
||||
position: relative;
|
||||
padding-bottom: 10px;
|
||||
font-size: 22px;
|
||||
&::after {
|
||||
position: absolute;
|
||||
content: "";
|
||||
width: 75px;
|
||||
height: 2px;
|
||||
background: var(--color-title);
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.breadcrumb {
|
||||
span {
|
||||
font-size: 18px;
|
||||
font-family: "Shopee Medium";
|
||||
}
|
||||
}
|
||||
|
||||
.page-category {
|
||||
.list-cate a {
|
||||
font-family: "Shopee Regular";
|
||||
&.active {
|
||||
font-family: "Shopee Bold";
|
||||
font-weight: 600;
|
||||
}
|
||||
&:hover {
|
||||
color: var(--color-title);
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.checkbox {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
display: block;
|
||||
border: 1px solid #d3d3d3;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.box-filter label {
|
||||
font-family: "Shopee Light";
|
||||
cursor: pointer;
|
||||
}
|
||||
#js-slider-big {
|
||||
height: 680px;
|
||||
width: 100%;
|
||||
}
|
||||
#js-slider-big .item {
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: contain;
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
|
||||
#js-slider-small {
|
||||
.item {
|
||||
img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: contain;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
.swiper-slide {
|
||||
border: 1px solid #b1b1b1;
|
||||
width: 100%;
|
||||
height: 130px;
|
||||
border-radius: 12px;
|
||||
}
|
||||
.swiper-slide-thumb-active {
|
||||
border: 1.5px solid var(--color-title);
|
||||
}
|
||||
}
|
||||
|
||||
.box-product-detail {
|
||||
.box-shop {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
background: #ff7a00;
|
||||
border-radius: 50%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
.icon_2025.shop {
|
||||
width: 15px;
|
||||
height: 19px;
|
||||
background-position: -49px -23px;
|
||||
background-size: 160px 125px;
|
||||
filter: brightness(0) invert(1);
|
||||
}
|
||||
p {
|
||||
font-weight: 700;
|
||||
}
|
||||
}
|
||||
.box-summary {
|
||||
font-family: "Shopee Medium";
|
||||
font-size: 16px;
|
||||
li {
|
||||
list-style: inside;
|
||||
}
|
||||
}
|
||||
}
|
||||
BIN
src/assets/font/FVHShopeeText-Bold.otf
Normal file
BIN
src/assets/font/ShopeeDisplay-Black.ttf
Normal file
BIN
src/assets/font/ShopeeDisplay-Bold.ttf
Normal file
BIN
src/assets/font/ShopeeDisplay-ExtraBold.ttf
Normal file
BIN
src/assets/font/ShopeeDisplay-Light.ttf
Normal file
BIN
src/assets/font/ShopeeDisplay-Medium.ttf
Normal file
BIN
src/assets/font/ShopeeDisplay-Regular.ttf
Normal file
BIN
src/assets/images/avartar.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
BIN
src/assets/images/banner-right-slider-1.png
Normal file
|
After Width: | Height: | Size: 136 KiB |
BIN
src/assets/images/banner-right-slider-2.png
Normal file
|
After Width: | Height: | Size: 454 KiB |
BIN
src/assets/images/banner-right-slider-3.png
Normal file
|
After Width: | Height: | Size: 464 KiB |
BIN
src/assets/images/banner-right-slider-4.png
Normal file
|
After Width: | Height: | Size: 415 KiB |
BIN
src/assets/images/banner-sale-1.png
Normal file
|
After Width: | Height: | Size: 488 KiB |
BIN
src/assets/images/banner-sale-2.png
Normal file
|
After Width: | Height: | Size: 397 KiB |
BIN
src/assets/images/banner-sale-3.png
Normal file
|
After Width: | Height: | Size: 386 KiB |
BIN
src/assets/images/banner-sale-4.png
Normal file
|
After Width: | Height: | Size: 268 KiB |
BIN
src/assets/images/banner-slider.png
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
BIN
src/assets/images/big-product-detail-1.jpg
Normal file
|
After Width: | Height: | Size: 72 KiB |
BIN
src/assets/images/big-product-detail-2.jpg
Normal file
|
After Width: | Height: | Size: 87 KiB |
BIN
src/assets/images/big-product-detail-3.jpg
Normal file
|
After Width: | Height: | Size: 88 KiB |
BIN
src/assets/images/big-product-detail-4.jpg
Normal file
|
After Width: | Height: | Size: 275 KiB |
BIN
src/assets/images/big-product-detail.jpg
Normal file
|
After Width: | Height: | Size: 83 KiB |
BIN
src/assets/images/big-product-detail.png
Normal file
|
After Width: | Height: | Size: 357 KiB |
BIN
src/assets/images/box-image.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
BIN
src/assets/images/category-avatar.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
src/assets/images/icon-cate-1.png
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
src/assets/images/icon-cate-10.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
src/assets/images/icon-cate-11.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
src/assets/images/icon-cate-12.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
src/assets/images/icon-cate-13.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
src/assets/images/icon-cate-14.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
src/assets/images/icon-cate-15.png
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
src/assets/images/icon-cate-16.png
Normal file
|
After Width: | Height: | Size: 9.5 KiB |
BIN
src/assets/images/icon-cate-2.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
src/assets/images/icon-cate-3.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
src/assets/images/icon-cate-4.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
src/assets/images/icon-cate-5.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
src/assets/images/icon-cate-6.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
src/assets/images/icon-cate-7.png
Normal file
|
After Width: | Height: | Size: 9.1 KiB |
BIN
src/assets/images/icon-cate-8.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
src/assets/images/icon-cate-9.png
Normal file
|
After Width: | Height: | Size: 4.8 KiB |
BIN
src/assets/images/icon-file-save.png
Normal file
|
After Width: | Height: | Size: 516 B |
BIN
src/assets/images/icon-play.png
Normal file
|
After Width: | Height: | Size: 786 B |
BIN
src/assets/images/icon_2025.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
src/assets/images/icon_star.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
src/assets/images/image-article.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
src/assets/images/logo-anphat.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
src/assets/images/logo-footer.png
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
BIN
src/assets/images/logo-gearvn.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
src/assets/images/logo-hacom.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
src/assets/images/logo.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
BIN
src/assets/images/promotions-1.png
Normal file
|
After Width: | Height: | Size: 543 KiB |
BIN
src/assets/images/promotions-2.png
Normal file
|
After Width: | Height: | Size: 352 KiB |
BIN
src/assets/images/promotions-3.png
Normal file
|
After Width: | Height: | Size: 452 KiB |
BIN
src/assets/images/promotions-4.png
Normal file
|
After Width: | Height: | Size: 464 KiB |
BIN
src/assets/images/promotions-big.png
Normal file
|
After Width: | Height: | Size: 452 KiB |
BIN
src/assets/images/small-product-detail.png
Normal file
|
After Width: | Height: | Size: 536 KiB |
18
src/components/Header.tsx
Normal file
@@ -0,0 +1,18 @@
|
||||
import { useLocation } from 'preact-iso';
|
||||
|
||||
export function Header() {
|
||||
const { url } = useLocation();
|
||||
|
||||
return (
|
||||
<header>
|
||||
<nav>
|
||||
<a href="/" class={url == '/' && 'active'}>
|
||||
Home
|
||||
</a>
|
||||
<a href="/404" class={url == '/404' && 'active'}>
|
||||
404
|
||||
</a>
|
||||
</nav>
|
||||
</header>
|
||||
);
|
||||
}
|
||||
23
src/index.tsx
Normal file
@@ -0,0 +1,23 @@
|
||||
import { render } from 'preact';
|
||||
import { LocationProvider, Router, Route } from 'preact-iso';
|
||||
|
||||
import { Header } from './components/Header.jsx';
|
||||
import { Home } from './pages/Home/index.jsx';
|
||||
import { NotFound } from './pages/_404.jsx';
|
||||
import './style.css';
|
||||
|
||||
export function App() {
|
||||
return (
|
||||
<LocationProvider>
|
||||
<Header />
|
||||
<main>
|
||||
<Router>
|
||||
<Route path="/" component={Home} />
|
||||
<Route default component={NotFound} />
|
||||
</Router>
|
||||
</main>
|
||||
</LocationProvider>
|
||||
);
|
||||
}
|
||||
|
||||
render(<App />, document.getElementById('app'));
|
||||
39
src/pages/Home/index.tsx
Normal file
@@ -0,0 +1,39 @@
|
||||
import preactLogo from '../../assets/preact.svg';
|
||||
import './style.css';
|
||||
|
||||
export function Home() {
|
||||
return (
|
||||
<div class="home">
|
||||
<a href="https://preactjs.com" target="_blank">
|
||||
<img src={preactLogo} alt="Preact logo" height="160" width="160" />
|
||||
</a>
|
||||
<h1>Get Started building Vite-powered Preact Apps </h1>
|
||||
<section>
|
||||
<Resource
|
||||
title="Learn Preact"
|
||||
description="If you're new to Preact, try the interactive tutorial to learn important concepts"
|
||||
href="https://preactjs.com/tutorial"
|
||||
/>
|
||||
<Resource
|
||||
title="Differences to React"
|
||||
description="If you're coming from React, you may want to check out our docs to see where Preact differs"
|
||||
href="https://preactjs.com/guide/v10/differences-to-react"
|
||||
/>
|
||||
<Resource
|
||||
title="Learn Vite"
|
||||
description="To learn more about Vite and how you can customize it to fit your needs, take a look at their excellent documentation"
|
||||
href="https://vitejs.dev"
|
||||
/>
|
||||
</section>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
function Resource(props) {
|
||||
return (
|
||||
<a href={props.href} target="_blank" class="resource">
|
||||
<h2>{props.title}</h2>
|
||||
<p>{props.description}</p>
|
||||
</a>
|
||||
);
|
||||
}
|
||||
47
src/pages/Home/style.css
Normal file
@@ -0,0 +1,47 @@
|
||||
img {
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
img:hover {
|
||||
filter: drop-shadow(0 0 2em #673ab8aa);
|
||||
}
|
||||
|
||||
.home section {
|
||||
margin-top: 5rem;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
column-gap: 1.5rem;
|
||||
}
|
||||
|
||||
.resource {
|
||||
padding: 0.75rem 1.5rem;
|
||||
border-radius: 0.5rem;
|
||||
text-align: left;
|
||||
text-decoration: none;
|
||||
color: #222;
|
||||
background-color: #f1f1f1;
|
||||
border: 1px solid transparent;
|
||||
}
|
||||
|
||||
.resource:hover {
|
||||
border: 1px solid #000;
|
||||
box-shadow: 0 25px 50px -12px #673ab888;
|
||||
}
|
||||
|
||||
@media (max-width: 639px) {
|
||||
.home section {
|
||||
margin-top: 5rem;
|
||||
grid-template-columns: 1fr;
|
||||
row-gap: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
.resource {
|
||||
color: #ccc;
|
||||
background-color: #161616;
|
||||
}
|
||||
.resource:hover {
|
||||
border: 1px solid #bbb;
|
||||
}
|
||||
}
|
||||
8
src/pages/_404.tsx
Normal file
@@ -0,0 +1,8 @@
|
||||
export function NotFound() {
|
||||
return (
|
||||
<section>
|
||||
<h1>404: Not Found</h1>
|
||||
<p>It's gone :(</p>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
70
src/style.css
Normal file
@@ -0,0 +1,70 @@
|
||||
:root {
|
||||
font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
|
||||
line-height: 1.5;
|
||||
font-weight: 400;
|
||||
|
||||
color: #222;
|
||||
background-color: #ffffff;
|
||||
|
||||
font-synthesis: none;
|
||||
text-rendering: optimizeLegibility;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#app {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
header {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
background-color: #673ab8;
|
||||
}
|
||||
|
||||
header nav {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
header a {
|
||||
color: #fff;
|
||||
padding: 0.75rem;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
header a.active {
|
||||
background-color: #0005;
|
||||
}
|
||||
|
||||
header a:hover {
|
||||
background-color: #0008;
|
||||
}
|
||||
|
||||
main {
|
||||
flex: auto;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
max-width: 1280px;
|
||||
margin: 0 auto;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@media (max-width: 639px) {
|
||||
main {
|
||||
margin: 2rem;
|
||||
}
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
color: #ccc;
|
||||
background-color: #1a1a1a;
|
||||
}
|
||||
}
|
||||