100-project-100-days-website/100_projects/78-product-card/assets/scss/styles.scss

403 lines
8.2 KiB
SCSS
Raw Normal View History

2023-05-10 17:34:04 +03:00
/*===== GOOGLE FONTS =====*/
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap');
/*===== VARIABLES CSS =====*/
:root{
--header-height: 3.5rem;
/*===== Colors =====*/
--first-color: #A29596;
--primary: #A29596;
--second-color: #33303D;
--black-color: #111111;
--white-color: #FFF;
/*===== Font and typography =====*/
--body-font: 'Roboto', sans-serif;
--biggest-font-size: 1.5rem;
--big-font-size: 1.5rem;
--normal-font-size: .938rem;
--smaller-font-size: .75rem;
// Responsive typography
@media screen and (min-width: 968px){
--biggest-font-size: 3.25rem;
--big-font-size: 2.25rem;
--normal-font-size: 1rem;
--smaller-font-size: .813rem;
}
/*========== Font weight ==========*/
--font-medium: 500;
--font-bold: 700;
/*===== z index =====*/
--z-fixed: 100;
--z-modal: 1000;
}
/*===== BASE =====*/
*,::before,::after{
box-sizing: border-box;
margin: 0;
padding: 0;
}
body{
font-family: var(--body-font);
background-color: var(--white-color);
color: var(--black-color);
}
h1,h2,h3,p{
margin: 0;
}
ul{
margin: 0;
padding: 0;
list-style: none;
}
a{
text-decoration: none;
}
/*===== LAYOUT =====*/
.grid{
max-width: 1200px;
margin-left: 1rem;
margin-right: 1rem;
}
.header{
width: 100%;
position: fixed;
top: 0;
left: 0;
z-index: var(--z-fixed);
background-color: var(--white-color);
}
/*===== HEADER & NAV =====*/
.nav{
height: var(--header-height);
display: flex;
justify-content: space-between;
align-items: center;
&__menu{
@media screen and(max-width: 968px){
position: fixed;
left: -100%;
top: var(--header-height);
background-color: var(--white-color);
width: 80%;
height: 100%;
padding: 2rem;
z-index: var(--z-fixed);
transition: .3s;
}
}
&__list{
display: flex;
flex-direction: column;
row-gap: 2rem;
}
&__item{
font-weight: var(--font-bold);
}
&__link{
color: var(--black-color);
}
&__toggle{
cursor: pointer;
}
}
/* Show menu */
.show{
left: 0;
}
/*===== HOME =====*/
.home{
height: 100vh;
display: grid;
row-gap: 3.5rem;
grid-template-rows: repeat(2, max-content);
overflow: hidden;
}
/*===== Sneaker =====*/
.sneaker{
display: flex;
justify-content: center;
align-items: center;
margin-top: 6rem;
position: relative;
&__figure{
width: 240px;
height: 240px;
background-color: var(--primary);
border-radius: 50%;
transition: .5s;
}
&__img{
width: 313px;
position: absolute;
top: 16%;
left: 9%;
right: 0;
margin-left: auto;
margin-right: auto;
transform: rotate(30deg);
opacity: 0;
filter: drop-shadow(0px 10px 10px rgba(17, 17, 17, 0.4));
&.shows{
opacity: 1;
}
}
&__colors{
position: absolute;
right: 2%;
}
&__color{
display: block;
width: 10px;
height: 10px;
border-radius: 50%;
margin-bottom: .5rem;
cursor: pointer;
&.active{
border: 2px solid var(--white-color);
box-shadow: 0 0 2px rgba(0, 0, 0, 1);
}
}
&__colors-one{
background-color: var(--first-color);
}
&__colors-two{
background-color: var(--black-color);
}
}
/*===== Data =====*/
.data{
margin-bottom: 1.5rem;
&__subtitle{
font-size: var(--normal-font-size);
font-weight: var(--font-medium);
}
&__title{
font-size: var(--biggest-font-size);
margin-bottom: .5rem;
}
&__description{
font-size: var(--normal-font-size);
}
}
.actions{
display: flex;
justify-content: space-between;
}
/*===== Size =====*/
.size{
&__title{
font-size: var(--normal-font-size);
margin-bottom: 1rem;
}
&__content{
display: flex;
}
&__tallas{
width: 30px;
height: 30px;
margin-right: .5rem;
font-size: var(--smaller-font-size);
text-align: center;
line-height: 30px;
border-radius: .25rem;
cursor: pointer;
}
&__tallas.active{
background-color: var(--primary);
color: var(--white-color);
}
}
/*===== Qty =====*/
.quantity{
&__title{
font-size: var(--normal-font-size);
margin-bottom: 1rem;
}
&__content{
width: 100px;
height: 30px;
display: flex;
justify-content: space-between;
align-items: center;
background-color: var(--primary);
color: var(--white-color);
padding: .5rem;
border-radius: .25rem;
}
}
/*===== Price =====*/
.price{
position: fixed;
left: 0;
bottom: 0;
width: 100%;
padding: 1rem 0;
background-color: var(--white-color);
border-radius: 1.5rem 1.5rem 0 0;
box-shadow: 0px 0px 20px rgba(17, 17, 17, 0.25);
display: flex;
justify-content: space-evenly;
align-items: center;
&__title{
font-size: var(--big-font-size);
color: var(--black-color);
}
&__button{
background-color: var(--primary);
color: var(--white-color);
padding: 1.25rem 3.125rem;
border-radius: .5rem;
transition: box-shadow .4s;
}
}
/*===== BREAKPOINTS =====*/
/* For small devices */
@media screen and (max-width: 320px){
.home{
row-gap: 1.5rem;
}
.sneaker{
&__figure{
width: 210px;
height: 210px;
}
& img{
width: 230px;
}
&__colors{
right: 1%;
}
}
.price{
&__title{
font-size: var(--normal-font-size);
}
&__button{
padding: 1.25rem 2rem;
}
}
}
/* For medium devices */
@media screen and (min-width: 480px){
.data__description{
width: 350px;
}
}
@media screen and (min-width: 768px){
.home{
grid-template-columns: repeat(2, max-content);
align-content: center;
justify-content: center;
column-gap: 6rem;
row-gap: 0;
}
.sneaker{
margin-top: 0;
&__colors{
right: -10%;
}
&__img{
left: -6%;
}
}
.actions{
margin-bottom: 3rem;
}
.price{
position: initial;
background-color: initial;
justify-content: space-between;
box-shadow: none;
padding: 0;
&__title{
color: var(--black-color);
font-weight: var(--font-medium);
}
}
}
/* For large devices */
@media screen and(min-width: 968px){
.nav{
height: calc(var(--header-height) + 1.5rem);
&__list{
flex-direction: row;
column-gap: 3rem;
}
&__toggle{
display: none;
}
}
.sneaker{
margin: 0;
&__figure{
width: 430px;
height: 430px;
}
&__img{
width: 550px;
top: 13%;
}
&__colors{
right: initial;
bottom: -3rem;
& span{
display: inline-block;
}
}
}
.info{
align-self: center;
}
.data{
margin-bottom: 2.5rem;
&__subtitle{
font-size: 1.5rem;
}
&__title{
margin-bottom: 1rem;
}
}
.size__tallas{
width: 34px;
height: 34px;
line-height: 35px;
}
}
@media screen and (min-width: 1200px){
.grid{
margin-left: auto;
margin-right: auto;
}
}