@import url("https://fonts.googleapis.com/css2?family=Poppins:[email protected];400;600&display=swap");
:root {
/*Animations*/
--delay-titles: 0.3s;
--delay-product: 0.6s;
--delay-product-image: 1s;
--delay-product-detail: 1.1s;
--delay-product-star: 1.3s;
/*icons Size multiply*/
--ggs: 1.5;
/*Colors*/
--color-light: #faf4f4;
--color-dark: #17171f;
--color-dark-rgb: 23, 23, 31;
/*Font Familiy*/
--font-family: "Poppins", sans-serif;
}
body {
background-color: var(--color-light);
font-family: var(--font-family);
.margin-vertical {
margin: 10px 0;
}
.col-6-sm {
animation: fade-in-bottom 0.6s cubic-bezier(0.39, 0.575, 0.565, 1) both
var(--delay-titles);
}
}
#wrapper {
width: 420px;
height: 720px;
margin: 40px auto;
background: var(--color-dark);
border-radius: 45px;
overflow-y: auto;
overflow-x: hidden;
box-shadow: -40px 50px 40px -20px rgb(var(--color-dark-rgb) / 15%);
@media (max-width: 540px) {
margin: 0px;
width: 100%;
border-radius: 0;
padding: 0;
height: 100vh;
}
header {
z-index: 5;
position: sticky;
top: 0;
background: linear-gradient(
0deg,
rgba(0, 0, 0, 0) 0%,
rgba(var(--color-dark-rgb), 0.8) 25%,
rgba(var(--color-dark-rgb), 1) 100%
);
color: var(--color-light);
padding: 30px 25px;
padding-bottom: 15px;
.page-title {
margin: 0;
font-size: 16px;
color: var(--color-light);
padding: 5px 0;
}
.profile {
display: inline-block;
width: 40px;
height: 40px;
border-radius: 15px;
background: url("https://i.pravatar.cc/50?img=45") no-repeat center center;
background-size: cover;
position: relative;
&:before {
width: 7px;
height: 7px;
border-radius: 100%;
content: "";
position: absolute;
top: 0;
display: block;
right: 0;
box-shadow: 0 0 0 3px var(--color-dark);
background-color: #e7d583;
}
}
}
section {
padding: 0px 25px;
}
.hero-card {
margin: 20px 0;
height: 160px;
box-shadow: inset 1px 2px 0 rgba(255, 255, 255, 0.4);
border-radius: 35px;
animation: flip-in-hor-top 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
background: radial-gradient(
farthest-side at center center,
#eed8db 5%,
transparent 180px
),
radial-gradient(
farthest-side at bottom center,
#f0c1bb 5%,
transparent 180px
),
radial-gradient(farthest-side at left bottom, #ebc6c0 5%, transparent 180px),
radial-gradient(farthest-side at left center, #dabbc3 5%, transparent 180px),
radial-gradient(farthest-side at left top, #e7cdce 5%, transparent 180px),
radial-gradient(farthest-side at right top, #bcb7d7 5%, transparent 180px),
radial-gradient(farthest-side at right bottom, #bcb7d7 5%, transparent),
radial-gradient(farthest-side at right center, #bcb7d7 5%, transparent),
radial-gradient(farthest-side at top center, #f6ede8 60%, transparent 500px);
&:before {
content: "";
display: block;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: -1;
transform: scaleY(0.8);
filter: blur(35px);
background: radial-gradient(
farthest-side at center center,
#eed8db 5%,
transparent 180px
),
radial-gradient(
farthest-side at bottom center,
#f0c1bb 5%,
transparent 180px
),
radial-gradient(farthest-side at left bottom, #ebc6c0 5%, transparent 180px),
radial-gradient(farthest-side at left center, #dabbc3 5%, transparent 180px),
radial-gradient(farthest-side at left top, #e7cdce 5%, transparent 180px),
radial-gradient(farthest-side at right top, #bcb7d7 5%, transparent 180px),
radial-gradient(farthest-side at right bottom, #bcb7d7 5%, transparent),
radial-gradient(farthest-side at right center, #bcb7d7 5%, transparent),
radial-gradient(farthest-side at top center, #f6ede8 60%, transparent 500px);
z-index: 0;
}
.content-image {
position: absolute;
right: 0;
top: 0;
text-align: right;
img {
width: 60%;
animation: float 6s ease-in-out infinite;
margin-right: -10%;
margin-top: -20px;
}
}
.card-content {
padding: 25px;
z-index: 1;
position: relative;
h3 {
margin: 0;
font-weight: 600;
font-family: var(--font-family);
}
p {
margin: 0;
font-family: var(--font-family);
font-size: 14px;
font-weight: 400;
}
.content-input {
margin-top: 10px;
border-radius: 15px;
background: white;
max-width: 120px;
padding: 13px;
display: flex;
flex-direction: row;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.05);
i {
--ggs: 0.6;
margin: 0;
color: #b3aeab;
flex: 0 0 16px;
}
input {
padding: 0 10px;
font-family: var(--font-family);
width: 100%;
outline: none;
border: 0;
color: #b3aeab;
font-size: 12px;
}
}
}
}
.segment-title {
color: var(--color-light);
font-family: var(--font-family);
font-size: 18px;
font-weight: 600;
margin: 5px;
}
.btn {
display: inline-flex;
color: var(--color-light);
padding: 15px;
border-radius: 10px;
box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.1);
background: transparent;
transition: ease all 0.3s;
text-decoration: none;
font-family: var(--font-family);
font-weight: 600;
font-size: 12px;
i {
color: var(--color-light);
}
&:hover {
background-color: var(--color-light);
box-shadow: 0 0 0 1px rgba(255, 255, 255, 0);
i {
color: var(--color-dark);
}
}
}
.btn-primary {
position: relative;
padding: 12px 18px 12px 25px;
color: var(--color-dark);
border-radius: 18px;
transition: ease all 0.3s;
vertical-align: middle;
background: radial-gradient(
farthest-side at bottom center,
#f0c1bb 25%,
transparent 75%
),
radial-gradient(farthest-side at left bottom, #ebc6c0 25%, transparent 75%),
radial-gradient(farthest-side at left center, #dabbc3 25%, transparent 75%),
radial-gradient(farthest-side at left top, #e7cdce 25%, transparent 75%),
radial-gradient(farthest-side at right top, #bcb7d7 25%, transparent 75%),
radial-gradient(farthest-side at right bottom, #bcb7d7 25%, transparent 75%),
radial-gradient(farthest-side at right center, #bcb7d7 25%, transparent 75%),
radial-gradient(farthest-side at top center, #f6ede8 60%, transparent 100%),
radial-gradient(
farthest-side at center center,
#eed8db 100%,
transparent 100%
);
z-index: 2;
display: inline-block;
i {
color: var(--color-dark);
--ggs: 0.6;
flex: 0 0 1;
height: 14px;
}
img {
width: 8px;
height: 7px;
vertical-align: middle;
margin-left: 5px;
}
&:before {
pointer-events: none;
content: "";
display: block;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: -1;
transition: ease all 0.3s;
transform: scaleY(0.7);
opacity: 0.6;
filter: blur(35px);
background: radial-gradient(
farthest-side at bottom center,
#f0c1bb 25%,
transparent 75%
),
radial-gradient(farthest-side at left bottom, #ebc6c0 25%, transparent 75%),
radial-gradient(farthest-side at left center, #dabbc3 25%, transparent 75%),
radial-gradient(farthest-side at left top, #e7cdce 25%, transparent 75%),
radial-gradient(farthest-side at right top, #bcb7d7 25%, transparent 75%),
radial-gradient(farthest-side at right bottom, #bcb7d7 25%, transparent 75%),
radial-gradient(farthest-side at right center, #bcb7d7 25%, transparent 75%),
radial-gradient(farthest-side at top center, #f6ede8 60%, transparent 100%),
radial-gradient(
farthest-side at center center,
#eed8db 100%,
transparent 100%
);
}
&:hover {
transform: scale(1.05);
}
}
.product {
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(#2f2e36, #313038);
border-radius: 18px;
min-height: 200px;
font-family: var(--font-family);
font-size: 18px;
font-weight: 600;
box-shadow: inset 0px 1.5px 0 1px rgba(255, 255, 255, 0.1);
color: var(--color-light);
position: relative;
animation: fade-in-bottom 0.6s ease-out var(--delay-product);
animation-fill-mode: backwards;
& > img {
max-width: 130px;
max-height: 130px;
margin-top: -35px;
animation: fade-in-bottom 0.6s cubic-bezier(0.39, 0.575, 0.565, 1) both
var(--delay-product-image);
}
.star {
width: 45px;
height: 45px;
position: absolute;
bottom: 0;
right: 0;
background-color: var(--color-dark);
border-radius: 18px 0 0 0;
display: flex;
align-items: center;
justify-content: center;
//animation: scale-in-br 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both var(--delay-product-star);
img {
width: 24px;
box-shadow: 0 0 5px -5px #faa827;
}
i {
color: var(--color-light);
--ggs: 1;
transition: ease all 0.3s;
}
&:hover {
img {
animation: wobble-hor-bottom 1s both;
cursor: pointer;
}
i {
animation: wobble-hor-bottom 1s both;
cursor: pointer;
color: pink;
}
}
&:before {
content: "";
position: absolute;
left: -20px;
bottom: 0;
background: #313038;
width: 20px;
height: 20px;
border-radius: 18px;
box-shadow: 10px 10px 0 0 var(--color-dark);
}
&:after {
content: "";
position: absolute;
right: 0;
top: -20px;
background: #313038;
width: 20px;
height: 20px;
border-radius: 18px;
box-shadow: 10px 10px 0 0 var(--color-dark);
}
}
.detail {
position: absolute;
left: 0;
z-index: 3;
bottom: 0;
width: calc(100% - 65px);
padding: 10px;
animation: swing-in-left-fwd 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275)
both var(--delay-product-detail);
.name {
font-family: var(--font-family);
font-size: 14px;
font-weight: 600;
margin: 0;
color: var(--color-light);
}
.detail-footer {
display: flex;
.review {
display: flex;
color: #f7ad32;
font-family: var(--font-family);
font-size: 12px;
font-weight: 600;
width: 40%;
align-items: center;
img {
width: 12px;
height: 12px;
vertical-align: middle;
display: inline-block;
margin-right: 5px;
}
i {
margin-right: 5px;
color: #f7ad32;
--ggs: 0.7;
transition: ease all 0.3s;
}
}
.price {
color: #626169;
font-family: var(--font-family);
font-size: 14px;
font-weight: 400;
width: 60%;
}
}
}
}
.featured-product {
animation: fade-in-bottom 0.6s cubic-bezier(0.39, 0.575, 0.565, 1) both
var(--delay-product-detail);
box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.1);
border-radius: 35px;
display: flex;
place-content: stretch;
margin-bottom: 30px;
.product-detail {
width: 100%;
justify-content: flex-end;
display: flex;
flex-direction: column;
.product-name {
margin-top: auto;
font-family: var(--font-family);
font-size: 12px;
font-weight: 600;
margin: 0;
color: var(--color-light);
}
.price {
color: #626169;
margin: 0;
margin-bottom: 10px;
font-family: var(--font-family);
font-size: 14px;
font-weight: 400;
width: 60%;
}
}
.content-img {
width: 100px;
margin-top: -10px;
margin-bottom: 10px;
flex: 0 0 100px;
img {
width: 100%;
max-width: 75px;
height: auto;
margin: 0 auto;
display: block;
}
}
.star {
width: 20%;
flex: 0 0 20%;
padding: 20px 0;
.review {
text-align: center;
display: block;
color: #f7ad32;
font-family: var(--font-family);
font-size: 12px;
font-weight: 600;
margin-top: 5px;
}
img {
display: block;
margin: 0 auto;
width: 24px;
height: 24px;
}
i {
margin: 0 auto;
padding: 0;
color: var(--color-light);
--ggs: 1.2;
transition: ease all 0.3s;
}
&:hover {
cursor: pointer;
i {
color: #f7ad32;
}
}
}
}
}
/*Animations*/
@keyframes wobble-hor-bottom {
0%,
100% {
-webkit-transform: translateX(0%);
transform: translateX(0%);
-webkit-transform-origin: 50% 50%;
transform-origin: 50% 50%;
}
15% {
-webkit-transform: translateX(-5px) rotate(-6deg);
transform: translateX(-5px) rotate(-6deg);
}
30% {
-webkit-transform: translateX(4px) rotate(6deg);
transform: translateX(4px) rotate(6deg);
}
45% {
-webkit-transform: translateX(-3px) rotate(-3.6deg);
transform: translateX(-3px) rotate(-3.6deg);
}
60% {
-webkit-transform: translateX(2px) rotate(2.4deg);
transform: translateX(2px) rotate(2.4deg);
}
75% {
-webkit-transform: translateX(-1px) rotate(-1.2deg);
transform: translateX(-1px) rotate(-1.2deg);
}
}
@keyframes fade-in-bottom {
0% {
-webkit-transform: translateY(50px);
transform: translateY(50px);
opacity: 0;
}
100% {
-webkit-transform: translateY(0);
transform: translateY(0);
opacity: 1;
}
}
@keyframes scale-in-br {
0% {
-webkit-transform: scale(0);
transform: scale(0);
-webkit-transform-origin: 100% 100%;
transform-origin: 100% 100%;
opacity: 1;
}
100% {
-webkit-transform: scale(1);
transform: scale(1);
-webkit-transform-origin: 100% 100%;
transform-origin: 100% 100%;
opacity: 1;
}
}
@keyframes flip-in-hor-top {
0% {
-webkit-transform: rotateX(-80deg);
transform: rotateX(-80deg);
opacity: 0;
}
100% {
-webkit-transform: rotateX(0);
transform: rotateX(0);
opacity: 1;
}
}
@keyframes swing-in-left-fwd {
0% {
-webkit-transform: rotateY(100deg);
transform: rotateY(100deg);
-webkit-transform-origin: left;
transform-origin: left;
opacity: 0;
}
100% {
-webkit-transform: rotateY(0);
transform: rotateY(0);
-webkit-transform-origin: left;
transform-origin: left;
opacity: 1;
}
}
@keyframes float {
0% {
transform: translatey(0px);
}
50% {
transform: translatey(-20px);
}
100% {
transform: translatey(0px);
}
}
/* DEV */
.dev,
.instagram {
position: fixed;
font-size: 14px;
top: 10px;
left: 10px;
padding: 1em;
color: var(--color-dark);
background-color: rgba(255, 255, 255, 0.7);
border-radius: 25px;
@media (max-width: 540px) {
position: relative;
width: 100%;
top: 0;
left: 0;
padding: 1em 0;
}
a {
text-decoration: none;
font-weight: bold;
color: var(--color-dark);
transition: ease all 0.3s;
&:hover {
color: #ef5350;
text-decoration: underline;
}
}
span {
color: #ef5350;
}
}
.instagram {
top: auto;
left: auto;
bottom: 0;
right: 0;
}
View Compiled