fix: tighten CTA footer spacing and product detail scaling
This commit is contained in:
parent
3f2c51eb1f
commit
9d3180287a
@ -1,4 +1,4 @@
|
||||
import { Routes, Route } from "react-router";
|
||||
import { Routes, Route, useLocation } from "react-router";
|
||||
import LandingPage from "./pages/LandingPage";
|
||||
import ProductDetailPage from "./components/ProductDetailPage";
|
||||
import AboutPage from "./pages/AboutPage";
|
||||
@ -14,6 +14,10 @@ import ShopDrawer from "./components/ShopDrawer";
|
||||
import CartToast from "./components/CartToast";
|
||||
|
||||
function App() {
|
||||
const location = useLocation();
|
||||
const shouldFlushFooter =
|
||||
location.pathname === "/" || location.pathname.startsWith("/duft/");
|
||||
|
||||
return (
|
||||
<>
|
||||
<ScrollToTop />
|
||||
@ -31,7 +35,7 @@ function App() {
|
||||
|
||||
<ShopDrawer />
|
||||
<CartToast />
|
||||
<Footer />
|
||||
<Footer flushTop={shouldFlushFooter} />
|
||||
<SupportChatbot />
|
||||
</>
|
||||
);
|
||||
|
||||
@ -5,6 +5,10 @@
|
||||
border-top: 1px solid rgba(255, 255, 255, 0.08);
|
||||
}
|
||||
|
||||
.site-footer--flush {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.site-footer__inner {
|
||||
max-width: 1600px;
|
||||
margin: 0 auto;
|
||||
@ -77,4 +81,4 @@
|
||||
grid-template-columns: 1fr;
|
||||
padding: 24px 16px 28px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
import { Link } from "react-router";
|
||||
import "./Footer.css";
|
||||
|
||||
function Footer() {
|
||||
function Footer({ flushTop = false }) {
|
||||
return (
|
||||
<footer className="site-footer">
|
||||
<footer className={`site-footer${flushTop ? " site-footer--flush" : ""}`}>
|
||||
<div className="site-footer__inner">
|
||||
<div className="site-footer__brand">
|
||||
<Link to="/" className="site-footer__logo">
|
||||
@ -37,4 +37,4 @@ function Footer() {
|
||||
);
|
||||
}
|
||||
|
||||
export default Footer;
|
||||
export default Footer;
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
.detail-page {
|
||||
min-height: 100vh;
|
||||
color: #1f1f1f;
|
||||
padding: 26px 38px 38px;
|
||||
padding: 26px 38px 0;
|
||||
background:
|
||||
linear-gradient(to right, rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.1)),
|
||||
linear-gradient(to bottom, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.45));
|
||||
@ -13,7 +13,10 @@
|
||||
background: #f5f5f5;
|
||||
border: 1px solid #d9d9d9;
|
||||
border-radius: 0px;
|
||||
padding: 0 38px 38px;
|
||||
width: 100%;
|
||||
max-width: 1680px;
|
||||
margin: 0 auto;
|
||||
padding: 0 38px 0;
|
||||
}
|
||||
|
||||
/* --- Product Detail Page Wrapper End --- */
|
||||
@ -40,13 +43,13 @@
|
||||
}
|
||||
|
||||
.detail-topbar-label {
|
||||
font-size: 10px;
|
||||
font-size: 11px;
|
||||
letter-spacing: 0.22em;
|
||||
color: #777;
|
||||
}
|
||||
|
||||
.detail-topbar-name {
|
||||
font-size: 12px;
|
||||
font-size: 13px;
|
||||
letter-spacing: 0.16em;
|
||||
color: #1f1f1f;
|
||||
}
|
||||
@ -62,7 +65,7 @@
|
||||
background: none;
|
||||
border: none;
|
||||
padding: 0;
|
||||
font-size: 13px;
|
||||
font-size: 14px;
|
||||
cursor: pointer;
|
||||
color: #1f1f1f;
|
||||
letter-spacing: 0.01em;
|
||||
@ -86,8 +89,8 @@
|
||||
|
||||
.detail-layout {
|
||||
display: grid;
|
||||
grid-template-columns: 1.02fr 1fr;
|
||||
gap: 28px;
|
||||
grid-template-columns: minmax(420px, 760px) minmax(0, 1fr);
|
||||
gap: 34px;
|
||||
align-items: start;
|
||||
}
|
||||
|
||||
@ -98,6 +101,9 @@
|
||||
.detail-gallery {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
max-width: 760px;
|
||||
justify-self: center;
|
||||
}
|
||||
|
||||
.detail-main-image {
|
||||
@ -171,13 +177,13 @@
|
||||
.detail-meta-grid span {
|
||||
display: block;
|
||||
margin-bottom: 8px;
|
||||
font-size: 10px;
|
||||
font-size: 11px;
|
||||
letter-spacing: 0.22em;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.detail-meta-grid p {
|
||||
font-size: 14px;
|
||||
font-size: 15px;
|
||||
line-height: 1.55;
|
||||
margin: 0;
|
||||
}
|
||||
@ -204,7 +210,7 @@
|
||||
}
|
||||
|
||||
.detail-structure h3 {
|
||||
font-size: 12px;
|
||||
font-size: 13px;
|
||||
letter-spacing: 0.24em;
|
||||
font-weight: 500;
|
||||
margin: 0;
|
||||
@ -245,7 +251,7 @@
|
||||
.structure-phase {
|
||||
display: block;
|
||||
margin-bottom: 0;
|
||||
font-size: 10px;
|
||||
font-size: 11px;
|
||||
letter-spacing: 0.18em;
|
||||
color: #555;
|
||||
}
|
||||
@ -277,7 +283,7 @@
|
||||
min-width: 0;
|
||||
min-height: 42px;
|
||||
padding: 10px 12px;
|
||||
font-size: 13px;
|
||||
font-size: 14px;
|
||||
line-height: 1.25;
|
||||
text-align: center;
|
||||
box-sizing: border-box;
|
||||
@ -319,14 +325,14 @@
|
||||
}
|
||||
|
||||
.structure-info-label {
|
||||
font-size: 10px;
|
||||
font-size: 11px;
|
||||
letter-spacing: 0.24em;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.structure-info-box p {
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
font-size: 15px;
|
||||
line-height: 1.7;
|
||||
color: #3f3f3f;
|
||||
}
|
||||
@ -343,7 +349,7 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
font-size: 12px;
|
||||
font-size: 13px;
|
||||
letter-spacing: 0.08em;
|
||||
color: #666;
|
||||
}
|
||||
@ -380,7 +386,7 @@
|
||||
.mood-label {
|
||||
display: block;
|
||||
margin-bottom: 10px;
|
||||
font-size: 10px;
|
||||
font-size: 11px;
|
||||
letter-spacing: 0.2em;
|
||||
color: #555;
|
||||
}
|
||||
@ -474,6 +480,7 @@
|
||||
flex-direction: column;
|
||||
gap: 28px;
|
||||
padding-top: 4px;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.detail-heading {
|
||||
@ -492,7 +499,7 @@
|
||||
|
||||
.detail-kicker {
|
||||
display: inline-block;
|
||||
font-size: 10px;
|
||||
font-size: 11px;
|
||||
letter-spacing: 0.24em;
|
||||
color: #777;
|
||||
}
|
||||
@ -507,7 +514,7 @@
|
||||
}
|
||||
|
||||
.detail-heading p {
|
||||
max-width: 520px;
|
||||
max-width: 640px;
|
||||
font-size: 18px;
|
||||
line-height: 1.45;
|
||||
color: #5f5f5f;
|
||||
@ -523,7 +530,7 @@
|
||||
.label-title {
|
||||
display: block;
|
||||
margin-bottom: 0;
|
||||
font-size: 10px;
|
||||
font-size: 11px;
|
||||
letter-spacing: 0.24em;
|
||||
color: #666;
|
||||
}
|
||||
@ -552,7 +559,7 @@
|
||||
.detail-copy-label {
|
||||
display: block;
|
||||
margin-bottom: 10px;
|
||||
font-size: 10px;
|
||||
font-size: 11px;
|
||||
letter-spacing: 0.24em;
|
||||
color: #666;
|
||||
}
|
||||
@ -561,7 +568,7 @@
|
||||
white-space: pre-line;
|
||||
line-height: 1.6;
|
||||
margin: 0;
|
||||
font-size: 15px;
|
||||
font-size: 16px;
|
||||
color: #1f1f1f;
|
||||
}
|
||||
|
||||
@ -595,7 +602,7 @@
|
||||
padding: 0 10px;
|
||||
border: 1px solid #ff6a00;
|
||||
color: #ff6a00;
|
||||
font-size: 11px;
|
||||
font-size: 12px;
|
||||
letter-spacing: 0.16em;
|
||||
}
|
||||
|
||||
@ -618,14 +625,14 @@
|
||||
}
|
||||
|
||||
.delivery-item-label {
|
||||
font-size: 10px;
|
||||
font-size: 11px;
|
||||
letter-spacing: 0.2em;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.delivery-item p {
|
||||
margin: 0;
|
||||
font-size: 15px;
|
||||
font-size: 16px;
|
||||
line-height: 1.45;
|
||||
color: #1f1f1f;
|
||||
}
|
||||
@ -683,21 +690,21 @@
|
||||
}
|
||||
|
||||
.comment-card-title {
|
||||
font-size: 11px;
|
||||
font-size: 12px;
|
||||
letter-spacing: 0.18em;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.comment-card p {
|
||||
margin: 0;
|
||||
font-size: 15px;
|
||||
font-size: 16px;
|
||||
line-height: 1.55;
|
||||
color: #1f1f1f;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.comment-card-author {
|
||||
font-size: 12px;
|
||||
font-size: 13px;
|
||||
letter-spacing: 0.08em;
|
||||
color: #777;
|
||||
}
|
||||
@ -728,7 +735,7 @@
|
||||
|
||||
.review-section-text {
|
||||
margin: 0;
|
||||
font-size: 15px;
|
||||
font-size: 16px;
|
||||
line-height: 1.55;
|
||||
color: #5f5f5f;
|
||||
}
|
||||
@ -756,13 +763,13 @@
|
||||
}
|
||||
|
||||
.review-stars {
|
||||
font-size: 14px;
|
||||
font-size: 15px;
|
||||
letter-spacing: 0.18em;
|
||||
color: #ff6a00;
|
||||
}
|
||||
|
||||
.review-count {
|
||||
font-size: 11px;
|
||||
font-size: 12px;
|
||||
letter-spacing: 0.08em;
|
||||
color: #666;
|
||||
}
|
||||
@ -788,7 +795,7 @@
|
||||
border: 1px solid #d9d9d9;
|
||||
background: transparent;
|
||||
padding: 12px 14px;
|
||||
font-size: 12px;
|
||||
font-size: 13px;
|
||||
letter-spacing: 0.08em;
|
||||
color: #1f1f1f;
|
||||
cursor: pointer;
|
||||
@ -854,7 +861,7 @@
|
||||
}
|
||||
|
||||
.review-detail-label {
|
||||
font-size: 10px;
|
||||
font-size: 11px;
|
||||
letter-spacing: 0.18em;
|
||||
color: #666;
|
||||
}
|
||||
@ -874,7 +881,7 @@
|
||||
}
|
||||
|
||||
.review-detail-value {
|
||||
font-size: 12px;
|
||||
font-size: 13px;
|
||||
color: #1f1f1f;
|
||||
text-align: right;
|
||||
}
|
||||
@ -910,7 +917,7 @@
|
||||
border: 1px solid #d2d2d2;
|
||||
border-radius: 0px;
|
||||
background: transparent;
|
||||
font-size: 13px;
|
||||
font-size: 14px;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
@ -946,7 +953,7 @@
|
||||
.size-title {
|
||||
display: block;
|
||||
margin-bottom: 10px;
|
||||
font-size: 12px;
|
||||
font-size: 13px;
|
||||
letter-spacing: 0.02em;
|
||||
color: #1f1f1f;
|
||||
}
|
||||
@ -960,7 +967,7 @@
|
||||
}
|
||||
|
||||
.size-card small {
|
||||
font-size: 11px;
|
||||
font-size: 12px;
|
||||
color: #6a6a6a;
|
||||
}
|
||||
|
||||
@ -982,16 +989,16 @@
|
||||
.discovery-note-text strong {
|
||||
display: block;
|
||||
margin-bottom: 6px;
|
||||
font-size: 13px;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.discovery-note-text p {
|
||||
font-size: 12px;
|
||||
font-size: 13px;
|
||||
line-height: 1.45;
|
||||
color: #d0d0d0;
|
||||
margin: 0;
|
||||
max-width: 420px;
|
||||
max-width: 520px;
|
||||
}
|
||||
|
||||
.discovery-note-text .discount-preview {
|
||||
@ -1088,7 +1095,7 @@
|
||||
|
||||
.detail-bottom-cta p {
|
||||
margin-top: 18px;
|
||||
font-size: 15px;
|
||||
font-size: 16px;
|
||||
line-height: 1.5;
|
||||
color: #fff;
|
||||
}
|
||||
@ -1128,6 +1135,15 @@
|
||||
.detail-structure-layout {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.detail-layout {
|
||||
grid-template-columns: minmax(380px, 680px) minmax(0, 1fr);
|
||||
gap: 28px;
|
||||
}
|
||||
|
||||
.detail-gallery {
|
||||
max-width: 680px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1100px) {
|
||||
@ -1135,6 +1151,10 @@
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.detail-gallery {
|
||||
width: min(100%, 720px);
|
||||
}
|
||||
|
||||
.detail-info {
|
||||
gap: 24px;
|
||||
}
|
||||
@ -1149,6 +1169,18 @@
|
||||
}
|
||||
|
||||
@media (max-width: 700px) {
|
||||
.detail-page {
|
||||
padding: 18px 14px 0;
|
||||
}
|
||||
|
||||
.detail-shell {
|
||||
padding: 0 16px 0;
|
||||
}
|
||||
|
||||
.detail-layout {
|
||||
gap: 24px;
|
||||
}
|
||||
|
||||
.detail-columns,
|
||||
.detail-meta-grid,
|
||||
.size-grid,
|
||||
@ -1197,6 +1229,18 @@
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.detail-bottom-cta {
|
||||
padding: 32px 20px;
|
||||
}
|
||||
|
||||
.detail-bottom-cta h2 {
|
||||
font-size: 34px;
|
||||
}
|
||||
|
||||
.detail-bottom-cta p {
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.discovery-note {
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
@ -1238,9 +1282,21 @@
|
||||
}
|
||||
|
||||
@media (max-width: 480px) {
|
||||
.detail-page {
|
||||
padding: 12px 10px 0;
|
||||
}
|
||||
|
||||
.detail-shell {
|
||||
padding: 0 12px 0;
|
||||
}
|
||||
|
||||
.structure-tags-grid {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.detail-bottom-cta {
|
||||
padding: 28px 16px;
|
||||
}
|
||||
}
|
||||
|
||||
/* --- Responsive End --- */
|
||||
|
||||
@ -385,7 +385,7 @@
|
||||
gap: 28px;
|
||||
align-items: center;
|
||||
background: #ff6a00;
|
||||
margin: 20px;
|
||||
margin: 20px 20px 0;
|
||||
border-radius: 0;
|
||||
padding: 40px 38px;
|
||||
}
|
||||
@ -516,7 +516,7 @@
|
||||
}
|
||||
|
||||
.discovery-section {
|
||||
margin: 12px;
|
||||
margin: 12px 12px 0;
|
||||
padding: 28px 20px;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user