add hero mockup

This commit is contained in:
2026-09-12 21:09:40 +02:00
parent ebfe68c132
commit 88d6d9ddef
3 changed files with 67 additions and 83 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

+57 -26
View File
@@ -199,12 +199,14 @@ a:hover {
position: relative; position: relative;
padding-block: clamp(3rem, 8vw, 6rem); padding-block: clamp(3rem, 8vw, 6rem);
overflow: hidden; overflow: hidden;
isolation: isolate;
} }
.hero::before { .hero::before {
content: ""; content: "";
position: absolute; position: absolute;
inset: 0; inset: 0;
z-index: 0;
background: background:
radial-gradient( radial-gradient(
ellipse 80% 60% at 50% -20%, ellipse 80% 60% at 50% -20%,
@@ -219,20 +221,55 @@ a:hover {
pointer-events: none; pointer-events: none;
} }
.hero__watermark { .hero__inner {
position: absolute; position: relative;
right: 12%; z-index: 1;
top: 50%; display: flex;
transform: translateY(-50%); flex-wrap: nowrap;
width: min(18rem, 40vw); align-items: center;
height: auto; justify-content: space-between;
opacity: 0.06; gap: clamp(1rem, 2vw, 1.5rem);
pointer-events: none;
} }
.hero__content { .hero__content {
position: relative; position: relative;
max-width: 42rem; flex: 0 1 24rem;
min-width: 0;
max-width: 28rem;
}
.hero__visual {
position: relative;
z-index: 1;
flex: 0 1 46rem;
min-width: 0;
width: 100%;
max-width: 46rem;
height: auto;
}
@media (max-width: 64rem) {
.hero__inner {
flex-wrap: wrap;
width: min(100% - 2rem, var(--max-width));
}
.hero__content {
flex: 1 1 100%;
max-width: none;
}
.hero__highlights {
display: flex;
flex-wrap: wrap;
gap: 0.5rem 0.75rem;
}
.hero__visual {
flex: 1 1 100%;
max-width: 30rem;
margin-inline: auto;
}
} }
.hero__badge { .hero__badge {
@@ -250,28 +287,28 @@ a:hover {
} }
.hero h1 { .hero h1 {
margin: 0 0 1.25rem; margin: 0 0 1rem;
font-size: clamp(2rem, 5vw, 3rem); font-size: clamp(1.75rem, 4vw, 2.35rem);
font-weight: 700; font-weight: 700;
line-height: 1.15; line-height: 1.15;
letter-spacing: -0.03em; letter-spacing: -0.03em;
} }
.hero__highlights { .hero__highlights {
display: flex; display: grid;
flex-wrap: wrap; grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0.5rem 0.75rem; gap: 0.5rem;
margin: 0; margin: 0;
padding: 0; padding: 0;
list-style: none; list-style: none;
} }
.hero__highlights li { .hero__highlights li {
padding: 0.375rem 0.75rem; padding: 0.3rem 0.6rem;
border: 1px solid var(--border); border: 1px solid var(--border);
border-radius: var(--radius); border-radius: var(--radius);
background: var(--surface); background: var(--surface);
font-size: 0.875rem; font-size: 0.8125rem;
font-weight: 500; font-weight: 500;
color: var(--text); color: var(--text);
} }
@@ -285,18 +322,12 @@ a:hover {
} }
.hero__sub { .hero__sub {
margin: 2rem 0 2rem; margin: 1.25rem 0 1.25rem;
font-size: clamp(1rem, 2vw, 1.125rem); font-size: 0.9375rem;
color: var(--muted); color: var(--muted);
line-height: 1.7; line-height: 1.6;
} }
.hero__actions-row {
display: flex;
flex-wrap: wrap;
align-items: flex-end;
gap: 1rem 1.25rem;
}
.link-group { .link-group {
display: flex; display: flex;
+10 -57
View File
@@ -49,72 +49,25 @@
<main> <main>
<section class="hero"> <section class="hero">
<div class="container"> <div class="container hero__inner">
<img
class="hero__watermark"
src="assets/favicon.png"
width="463"
height="539"
alt=""
aria-hidden="true"
/>
<div class="hero__content"> <div class="hero__content">
<p class="hero__badge">Free &amp; open source</p> <p class="hero__badge">Free &amp; open source</p>
<h1>Self-hosted crypto shop</h1> <h1>Privacy-first, self-hosted crypto commerce</h1>
<ul class="hero__highlights" aria-label="Key features">
<li>Non-custodial</li>
<li>No JS</li>
<li>No accounts</li>
<li>Clearnet &amp; Tor onion</li>
</ul>
<p class="hero__sub"> <p class="hero__sub">
Complete, privacy-focused crypto e-commerce solution. Built with a Complete, privacy-focused crypto e-commerce solution. Built with a
mission to support the crypto economy. mission to support the crypto economy.
</p> </p>
<div class="hero__actions"> <div class="hero__actions">
<div class="hero__actions-row"> <a class="btn btn--primary" href="#features">See features</a>
<div class="link-group">
<span class="link-group__label">Repository</span>
<div class="repo-links">
<a
class="btn btn--primary"
href="https://git.nobswebdev.com/nobswebdev/nullcart"
target="_blank"
rel="noopener noreferrer"
>Clearnet</a
>
<a
class="btn btn--ghost"
href="http://4f5t7o2vgo4sdaliwax3isyxzfuxvbvkuwk4smfowutrvx2uneu4egyd.onion/nobswebdev/nullcart"
target="_blank"
rel="noopener noreferrer"
>Tor</a
>
</div>
</div>
<div class="link-group">
<span class="link-group__label">Live demo</span>
<div class="repo-links">
<a
class="btn btn--primary"
href="https://demo.nullcart.net/"
target="_blank"
rel="noopener noreferrer"
>Clearnet</a
>
<a
class="btn btn--ghost"
href="http://3jh2ltksxtsmjidik3st6dawfdcheo2cyv2vth2365af75zdxnwqqsyd.onion/"
target="_blank"
rel="noopener noreferrer"
>Tor</a
>
</div>
</div>
<a class="btn btn--ghost" href="#features">See features</a>
</div>
</div> </div>
</div> </div>
<img
class="hero__visual"
src="assets/hero_mockup.png"
width="1024"
height="562"
alt="NullCart storefront on desktop and mobile"
/>
</div> </div>
</section> </section>