rmcg.dev/projects/FrontendMentor/newbie/equalizer-landing-page/css/style.css

458 lines
8.8 KiB
CSS

@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;700&display=swap");
/*
* Sizings
*
* Desktop: 1440x1832
* Tablet: 768x1781
* Mobile: 375x1945
*/
*,
::before,
::after {
margin: 0;
padding: 0;
box-sizing: border-box;
}
:root {
/* Colors */
--col-cyan: hsla(177, 68%, 64%, 1);
--col-orange: hsla(33, 100%, 70%, 1);
--col-orangey-red: hsla(12, 94%, 65%, 1);
--col-off-white: hsl(20, 33%, 98%);
--col-black: hsla(244, 23%, 12%, 1);
/* Typography */
--fw-400: 400;
--fw-700: 700;
--fs-header-page: 2.5rem;
--lh-header-page: 3rem;
--ls-header-page: -0.0284rem;
--fw-header-page: var(--fw-700);
--fs-header-card: 2rem;
--lh-header-card: 2.5rem;
--fw-header-card: var(--fw-700);
--fs-body-page: 1rem;
--lh-body-page: 1.625rem;
--fw-body-page: var(--fw-400);
--fs-body-card: 1.125rem;
--lh-body-card: 1.75rem;
--fw-body-card: var(--fw-400);
--fs-footer: 1rem;
--lh-footer: 1.625rem;
--fw-footer: var(--fw-400);
--fs-price: 4.0625rem;
--lh-price: 3.25rem;
--fw-price: var(--fw-700);
--fs-term: 1.25rem;
--lh-term: 2rem;
--fw-term: var(--fw-400);
--ls-term: -0.0125rem;
--fs-button: 1.125rem;
--lh-button: 2rem;
--ls-button: -0.0112rem;
--fw-button: var(--fw-700);
/* Other */
--image-background: url(../assets/bg-main-mobile.png);
--image-page-background: none;
--image-card-background: url(../assets/bg-pattern-2.svg);
--border-radius: 0.75rem;
}
body {
min-height: 100vh;
font-family: "IBM Plex Sans", sans-serif;
background-image: var(--image-background);
background-repeat: no-repeat;
background-position: 1.875rem -16.875rem;
background-color: #f2f2f2;
}
header {
position: relative;
padding: 0 1.5rem;
}
.logo {
margin-top: 2.5rem;
}
.intro-section {
margin-top: 3.6875rem; /* per design ...4rem; */
padding: 0 1.5rem;
}
.intro-section__header {
font-size: var(--fs-header-page);
line-height: var(--lh-header-page);
letter-spacing: var(--ls-header-page);
font-weight: var(--fw-header-page);
}
.intro-section__body {
margin-top: 1.25rem;
font-size: var(--fs-body-page);
line-height: var(--lh-body-page);
font-weight: var(--fw-body-page);
}
.product-card {
margin: auto;
margin-top: 34.125rem; /* ehh */
padding: 3rem 2.25rem 2.875rem 2.25rem;
color: var(--col-off-white);
background-color: var(--col-orangey-red);
border-radius: var(--border-radius);
position: relative;
max-width: 25rem;
}
.product-card__image {
position: absolute;
width: 13.0606rem;
margin: -33rem 3rem;
}
.product-card::before {
position: absolute;
z-index: -1;
background-color: #191826;
background-image: var(--image-card-background);
background-position: top center;
background-repeat: no-repeat;
background-size: 17.5rem;
top: -23.8rem;
left: -0px;
content: " ";
width: 100%;
height: 100%;
border-radius: var(--border-radius);
}
.product-card__header {
font-size: var(--fs-header-card);
line-height: var(--lh-header-card);
font-weight: var(--fw-header-card);
}
.product-card__body {
margin-top: 0.75rem;
font-size: var(--fs-body-card);
line-height: var(--lh-body-card);
font-weight: var(--fw-body-card);
}
.price-block {
margin-top: 2.25rem;
padding-left: 0.5rem;
display: flex;
align-items: center;
gap: 1rem;
}
.price-block__price {
font-size: var(--fs-price);
line-height: var(--lh-price);
font-weight: var(--fw-price);
}
.price-block__term {
font-size: var(--fs-term);
line-height: var(--lh-term);
letter-spacing: var(--ls-term);
font-weight: var(--fw-term);
}
.button-block {
margin-top: 2rem;
padding-left: 0.5rem;
}
.button + .button {
margin-top: 1rem;
}
.button {
font-size: var(--fs-button);
line-height: var(--lh-button);
font-weight: var(--fw-button);
text-decoration: none;
display: flex;
justify-content: center;
align-items: center;
gap: 0.5rem;
padding: 0.9375rem 0;
border-radius: var(--border-radius);
}
.button-ios {
background-color: var(--col-black);
color: var(--col-off-white);
}
.button-android {
background-color: var(--col-off-white);
color: var(--col-black);
}
.button-ios:is(:hover, :focus) {
background-color: var(--col-cyan);
}
.button-android:is(:hover, :focus) {
background-color: var(--col-orange);
}
.footer {
margin-top: 3.875rem; /* per design 4rem; */
padding: 0 1.5rem;
margin-bottom: 5rem;
}
.footer__logo {
margin-bottom: 1.8125rem; /* per design 2rem; */
}
.footer__body {
font-size: var(--fs-footer);
font-weight: var(--fw-footer);
line-height: var(--lh-footer);
width: 32ch;
margin-bottom: 4rem;
}
.footer__email {
font-weight: var(--fw-700);
}
.footer__social-block {
display: flex;
gap: 1.25rem;
align-items: center;
}
.footer__social-block a {
color: black;
}
.footer__social-block svg:is(:hover, :focus) {
/* fill: currentColor; */
color: var(--col-orangey-red);
}
@media screen and (min-width: 750px) {
:root {
--fs-header-page: 4rem;
--lh-header-page: 4rem;
--ls-header-page: -0.0456rem;
--fs-body-page: 1.125rem;
--lh-body-page: 1.75rem;
--image-background: url(../assets/bg-main-tablet.png);
--image-page-background: url(../assets/bg-pattern-1.svg);
}
body {
background-position: -25rem -18rem;
}
header::before {
position: absolute;
background-image: var(--image-page-background);
background-position: top right;
background-repeat: no-repeat;
background-size: 16.666875rem;
top: -2rem;
left: 2.25rem;
width: 100%;
height: 500%;
content: " ";
}
header {
padding: 0 2.4375rem;
}
.logo {
margin-top: 3.875rem;
}
.intro-section {
margin-top: 5.625rem;
width: 61ch;
padding: 0 2.4375rem;
}
.intro-section__body {
margin-top: 1.75rem;
}
.product-card::before {
top: -9.375rem;
left: -14.9375rem;
width: 43.6875rem;
height: 37.5rem;
background-position: 14.375rem -1.875rem;
}
.product-card {
margin-top: 25rem;
width: 24.9375rem;
margin-left: 17rem;
padding: 3rem 3rem 2.875rem 3rem;
max-width: unset;
}
.product-card__image {
width: 16.8881rem;
margin: -21rem -14rem;
z-index: -1;
}
.footer {
margin-top: 85px;
padding: 0 2.0625rem;
position: relative;
margin-bottom: 5.3125rem;
}
.footer__body {
width: 40ch;
}
.footer__social-block {
position: absolute;
right: 2.4375rem;
bottom: 1.75rem;
}
}
@media screen and (min-width: 1400px) {
:root {
--fs-header-page: 5.5rem;
--lh-header-page: 5.5rem;
--ls-header-page: -0.0625rem;
--fs-header-card: 2.5rem;
--lh-header-card: 3.25rem;
--fs-body-page: 1.25rem;
--lh-body-page: 2.125rem;
--fs-body-card: 1.25rem;
--lh-body-card: 2.125rem;
--image-background: url(../assets/bg-main-desktop.png);
}
body {
background-position: -20rem -15rem;
}
header::before {
top: -2.1875rem;
left: 0;
background-size: auto;
}
header {
padding: 0 10.3219rem;
}
.intro-section {
margin-top: 7.8131rem;
padding: 0 10.3219rem;
width: 130ch;
}
.intro-section__body {
margin-top: 2.5rem;
width: 70ch;
}
.product-card::before {
background-size: 19.5rem;
background-position: 20.8125rem -2.5rem;
width: 69.375rem;
top: -5.625rem;
left: -35.625rem;
}
.product-card {
margin-top: 25.6875rem;
width: 27.875rem;
margin-left: 46rem;
padding: 3.625rem 3.6875rem 3rem 3.375rem;
}
.product-card__image {
width: 19.5rem;
margin: -22.625rem -32.8125rem;
}
.product-card__body {
margin-top: 1.375rem;
}
.price-block {
padding: unset;
}
.button-block {
margin-top: 2.875rem;
padding: unset;
}
.footer {
display: flex;
justify-content: center;
align-items: center;
margin-bottom: 5.6875rem;
}
.footer__logo {
align-self: flex-start;
height: 100%;
margin-right: 8.5625rem;
margin-bottom: unset;
}
.footer__body {
margin-bottom: 0;
margin-right: 21.25rem;
}
.footer__social-block {
position: relative;
right: initial;
bottom: initial;
height: 100%;
}
}