mirror of
https://github.com/vercel/commerce.git
synced 2025-07-22 12:24:18 +00:00
Merge pull request #31 from KieIO/m5-lytran
M5: styles header, home page
This commit is contained in:
@@ -42,7 +42,7 @@
|
|||||||
@apply hidden;
|
@apply hidden;
|
||||||
@screen md {
|
@screen md {
|
||||||
@apply flex items-center list-none;
|
@apply flex items-center list-none;
|
||||||
li {
|
> li {
|
||||||
@apply flex justify-center items-center w-full;
|
@apply flex justify-center items-center w-full;
|
||||||
&:not(:last-child) {
|
&:not(:last-child) {
|
||||||
margin-right: 4.8rem;
|
margin-right: 4.8rem;
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
a {
|
a {
|
||||||
@appy no-underline;
|
@appy no-underline;
|
||||||
&:hover {
|
&:hover {
|
||||||
opacity: .8;
|
opacity: 0.8;
|
||||||
}
|
}
|
||||||
&.iconFavourite {
|
&.iconFavourite {
|
||||||
svg path {
|
svg path {
|
||||||
@@ -61,7 +61,14 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.btnCart {
|
||||||
|
&:hover {
|
||||||
|
svg path {
|
||||||
|
fill: var(--primary);
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -68,7 +68,7 @@ const HeaderMenu = memo(({ isFull, openModalAuthen, openModalInfo }: Props) => {
|
|||||||
<MenuDropdown options={optionMenu} isHasArrow={false}><IconUser /></MenuDropdown>
|
<MenuDropdown options={optionMenu} isHasArrow={false}><IconUser /></MenuDropdown>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<button>
|
<button className={s.btnCart}>
|
||||||
<IconBuy />
|
<IconBuy />
|
||||||
</button>
|
</button>
|
||||||
</li>
|
</li>
|
||||||
|
@@ -3,9 +3,6 @@
|
|||||||
.menuDropdown {
|
.menuDropdown {
|
||||||
@apply relative cursor-pointer;
|
@apply relative cursor-pointer;
|
||||||
width: fit-content;
|
width: fit-content;
|
||||||
.label {
|
|
||||||
all: unset;
|
|
||||||
}
|
|
||||||
&:hover {
|
&:hover {
|
||||||
.label {
|
.label {
|
||||||
color: var(--primary);
|
color: var(--primary);
|
||||||
@@ -20,10 +17,21 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.label {
|
.label {
|
||||||
|
all: unset;
|
||||||
@apply flex justify-end items-center transition-all duration-200;
|
@apply flex justify-end items-center transition-all duration-200;
|
||||||
svg path {
|
svg path {
|
||||||
width: fit-content;
|
width: fit-content;
|
||||||
}
|
}
|
||||||
|
&:focus,
|
||||||
|
&:active {
|
||||||
|
color: var(--primary);
|
||||||
|
svg path {
|
||||||
|
fill: currentColor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&:focus-visible {
|
||||||
|
outline: 2px solid #000;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.arrow {
|
&.arrow {
|
||||||
@@ -66,18 +74,9 @@
|
|||||||
@apply rounded list-none bg-white;
|
@apply rounded list-none bg-white;
|
||||||
border: 1px solid var(--text-active);
|
border: 1px solid var(--text-active);
|
||||||
margin-top: 0.4rem;
|
margin-top: 0.4rem;
|
||||||
li {
|
> li {
|
||||||
@apply block w-full transition-all duration-200 cursor-pointer text-active;
|
@apply block w-full transition-all duration-200 cursor-pointer text-active;
|
||||||
word-wrap: break-word;
|
|
||||||
-webkit-hyphens: auto;
|
|
||||||
-ms-hyphens: auto;
|
|
||||||
-moz-hyphens: auto;
|
|
||||||
hyphens: auto;
|
|
||||||
overflow-x: hidden;
|
|
||||||
position: relative;
|
|
||||||
max-width: 15rem;
|
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
text-overflow: ellipsis;
|
|
||||||
button {
|
button {
|
||||||
all: unset;
|
all: unset;
|
||||||
color: currentColor;
|
color: currentColor;
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
import Link from 'next/link'
|
import Link from 'next/link'
|
||||||
import React, { useEffect, useRef } from 'react'
|
import React, { useEffect, useRef } from 'react'
|
||||||
import { ButtonCommon, Inputcommon } from 'src/components/common'
|
import { ButtonCommon, Inputcommon, InputPassword } from 'src/components/common'
|
||||||
import InputPassword from 'src/components/common/InputPassword/InputPassword'
|
|
||||||
import { ROUTE } from 'src/utils/constanst.utils'
|
import { ROUTE } from 'src/utils/constanst.utils'
|
||||||
import { CustomInputCommon } from 'src/utils/type.utils'
|
import { CustomInputCommon } from 'src/utils/type.utils'
|
||||||
import s from '../FormAuthen.module.scss'
|
import s from '../FormAuthen.module.scss'
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
import React, { useEffect, useRef } from 'react'
|
import React, { useEffect, useRef } from 'react'
|
||||||
import { ButtonCommon, Inputcommon } from 'src/components/common'
|
import { ButtonCommon, Inputcommon, InputPassword } from 'src/components/common'
|
||||||
import s from '../FormAuthen.module.scss'
|
import s from '../FormAuthen.module.scss'
|
||||||
import styles from './FormRegister.module.scss'
|
import styles from './FormRegister.module.scss'
|
||||||
import SocialAuthen from '../SocialAuthen/SocialAuthen'
|
import SocialAuthen from '../SocialAuthen/SocialAuthen'
|
||||||
|
@@ -11,11 +11,19 @@
|
|||||||
@apply grid;
|
@apply grid;
|
||||||
grid-template-columns: 1fr 1.8fr;
|
grid-template-columns: 1fr 1.8fr;
|
||||||
.left {
|
.left {
|
||||||
@apply flex items-end justify-center custom-border-radius-lg;
|
@apply relative flex items-end justify-center custom-border-radius-lg;
|
||||||
margin-right: 1.6rem;
|
margin-right: 1.6rem;
|
||||||
background-image: url('./assets/home_banner.png');
|
.imgWrap {
|
||||||
background-repeat: no-repeat;
|
@apply absolute w-full h-full;
|
||||||
background-size: cover;
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
> div {
|
||||||
|
@apply w-full h-full custom-border-radius-lg;
|
||||||
|
}
|
||||||
|
img {
|
||||||
|
object-fit: cover;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.text {
|
.text {
|
||||||
@apply relative font-heading text-center;
|
@apply relative font-heading text-center;
|
||||||
|
@@ -1,8 +1,9 @@
|
|||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { Banner } from 'src/components/common'
|
import { Banner } from 'src/components/common'
|
||||||
import s from './HomeBanner.module.scss'
|
|
||||||
import BannerImgRight from './assets/banner_full.png'
|
import BannerImgRight from './assets/banner_full.png'
|
||||||
import BannerImgRight2 from './assets/banner_product.png'
|
import HomeBannerImg from './assets/home_banner.png'
|
||||||
|
import s from './HomeBanner.module.scss'
|
||||||
|
import Image from 'next/image'
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
className?: string
|
className?: string
|
||||||
@@ -13,6 +14,9 @@ const HomeBanner = ({ }: Props) => {
|
|||||||
return (
|
return (
|
||||||
<div className={s.homeBanner}>
|
<div className={s.homeBanner}>
|
||||||
<section className={s.left}>
|
<section className={s.left}>
|
||||||
|
<div className={s.imgWrap}>
|
||||||
|
<Image src={HomeBannerImg} placeholder='blur' />
|
||||||
|
</div>
|
||||||
<div className={s.text}>
|
<div className={s.text}>
|
||||||
Freshness<br />guaranteed
|
Freshness<br />guaranteed
|
||||||
</div>
|
</div>
|
||||||
@@ -28,10 +32,10 @@ const HomeBanner = ({ }: Props) => {
|
|||||||
{
|
{
|
||||||
title: "Save 15% on your first order 2",
|
title: "Save 15% on your first order 2",
|
||||||
subtitle: "Last call! Shop deep deals on 100+ bulk picks while you can.",
|
subtitle: "Last call! Shop deep deals on 100+ bulk picks while you can.",
|
||||||
imgLink: BannerImgRight2.src,
|
imgLink: BannerImgRight.src,
|
||||||
size: "small",
|
size: "small",
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
</div >
|
</div >
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 212 KiB |
@@ -149,6 +149,7 @@
|
|||||||
.line {
|
.line {
|
||||||
@apply flex justify-between items-center;
|
@apply flex justify-between items-center;
|
||||||
> div {
|
> div {
|
||||||
|
flex: 1;
|
||||||
&:not(:last-child) {
|
&:not(:last-child) {
|
||||||
margin-right: 1.6rem;
|
margin-right: 1.6rem;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user