add cart button component
This commit is contained in:
		
							parent
							
								
									7f49cd68e2
								
							
						
					
					
						commit
						a326630df2
					
				
							
								
								
									
										15
									
								
								src/components/Cart/CartIcon.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								src/components/Cart/CartIcon.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					const CartIcon = () => {
 | 
				
			||||||
 | 
					  return (
 | 
				
			||||||
 | 
					    <svg
 | 
				
			||||||
 | 
					      xmlns='http://www.w3.org/2000/svg'
 | 
				
			||||||
 | 
					      viewBox='0 0 20 20'
 | 
				
			||||||
 | 
					      fill='currentColor'
 | 
				
			||||||
 | 
					    >
 | 
				
			||||||
 | 
					      <path d='M3 1a1 1 0 000 2h1.22l.305 1.222a.997.997 0 00.01.042l1.358 5.43-.893.892C3.74 11.846 4.632 14 6.414 14H15a1 1 0 000-2H6.414l1-1H14a1 1 0 00.894-.553l3-6A1 1 0 0017 3H6.28l-.31-1.243A1 1 0 005 1H3zM16 16.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM6.5 18a1.5 1.5 0 100-3 1.5 1.5 0 000 3z' />
 | 
				
			||||||
 | 
					    </svg>
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default CartIcon;
 | 
				
			||||||
@ -1,20 +1,21 @@
 | 
				
			|||||||
import React from 'react';
 | 
					import React from "react";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import mealsImage from '../../assets/meals.jpg';
 | 
					import mealsImage from "../../assets/meals.jpg";
 | 
				
			||||||
import classes from './Header.module.css';
 | 
					import classes from "./Header.module.css";
 | 
				
			||||||
 | 
					import HeaderCartButton from "./HeaderCartButton";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const Header = () => {
 | 
					const Header = () => {
 | 
				
			||||||
 | 
					  return (
 | 
				
			||||||
    return <>
 | 
					    <>
 | 
				
			||||||
        <header className={classes.header}>
 | 
					      <header className={classes.header}>
 | 
				
			||||||
            <h1>ReactMeals</h1>
 | 
					        <h1>ReactMeals</h1>
 | 
				
			||||||
            <button>Cart</button>
 | 
					        <HeaderCartButton />
 | 
				
			||||||
        </header>
 | 
					      </header>
 | 
				
			||||||
        <div className={classes['main-image']}>
 | 
					      <div className={classes["main-image"]}>
 | 
				
			||||||
            <img src={mealsImage} alt="A table full of delicious food!" />
 | 
					        <img src={mealsImage} alt="A table full of delicious food!" />
 | 
				
			||||||
        </div>
 | 
					      </div>
 | 
				
			||||||
    </>
 | 
					    </>
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
export default Header;
 | 
					export default Header;
 | 
				
			||||||
							
								
								
									
										16
									
								
								src/components/Layout/HeaderCartButton.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								src/components/Layout/HeaderCartButton.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					import CartIcon from "../Cart/CartIcon";
 | 
				
			||||||
 | 
					import classes from "./HeaderCartButton.module.css";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const HeaderCartButton = (props) => {
 | 
				
			||||||
 | 
					  return (
 | 
				
			||||||
 | 
					    <button className={classes.button}>
 | 
				
			||||||
 | 
					      <span className={classes.icon}>
 | 
				
			||||||
 | 
					        <CartIcon />
 | 
				
			||||||
 | 
					      </span>
 | 
				
			||||||
 | 
					      <span>Your Cart</span>
 | 
				
			||||||
 | 
					      <span className={classes.badge}>3</span>
 | 
				
			||||||
 | 
					    </button>
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default HeaderCartButton;
 | 
				
			||||||
							
								
								
									
										60
									
								
								src/components/Layout/HeaderCartButton.module.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								src/components/Layout/HeaderCartButton.module.css
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,60 @@
 | 
				
			|||||||
 | 
					.button {
 | 
				
			||||||
 | 
					  cursor: pointer;
 | 
				
			||||||
 | 
					  font: inherit;
 | 
				
			||||||
 | 
					  border: none;
 | 
				
			||||||
 | 
					  background-color: #4d1601;
 | 
				
			||||||
 | 
					  color: white;
 | 
				
			||||||
 | 
					  padding: 0.75rem 3rem;
 | 
				
			||||||
 | 
					  display: flex;
 | 
				
			||||||
 | 
					  justify-content: space-around;
 | 
				
			||||||
 | 
					  align-items: center;
 | 
				
			||||||
 | 
					  border-radius: 25px;
 | 
				
			||||||
 | 
					  font-weight: bold;
 | 
				
			||||||
 | 
					  margin-right: 20%;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.button:hover,
 | 
				
			||||||
 | 
					.button:active {
 | 
				
			||||||
 | 
					  background-color: #2c0d00;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.icon {
 | 
				
			||||||
 | 
					  width: 1.35rem;
 | 
				
			||||||
 | 
					  height: 1.35rem;
 | 
				
			||||||
 | 
					  margin-right: 0.5rem;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.badge {
 | 
				
			||||||
 | 
					  background-color: #b94517;
 | 
				
			||||||
 | 
					  padding: 0.25rem 1rem;
 | 
				
			||||||
 | 
					  border-radius: 25px;
 | 
				
			||||||
 | 
					  margin-left: 1rem;
 | 
				
			||||||
 | 
					  font-weight: bold;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.button:hover .badge,
 | 
				
			||||||
 | 
					.button:active .badge {
 | 
				
			||||||
 | 
					  background-color: #92320c;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.bump {
 | 
				
			||||||
 | 
					  animation: bump 300ms ease-out;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@keyframes bump {
 | 
				
			||||||
 | 
					  0% {
 | 
				
			||||||
 | 
					    transform: scale(1);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  10% {
 | 
				
			||||||
 | 
					    transform: scale(0.9);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  30% {
 | 
				
			||||||
 | 
					    transform: scale(1.1);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  50% {
 | 
				
			||||||
 | 
					    transform: scale(1.15);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  100% {
 | 
				
			||||||
 | 
					    transform: scale(1);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user