forked from mirror/crumbs-original
feat: add app screenshots, lightbox, and polish landing page
- 6 screenshots (3 desktop + 3 mobile) with real app data - Click-to-zoom lightbox on all screenshots - Align header logo color (gold) between website and app - Remove placeholder images Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
8a7ef196f0
commit
81091c28af
Binary file not shown.
|
After Width: | Height: | Size: 131 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 129 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 63 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 65 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 31 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 74 KiB |
+46
-5
@@ -70,7 +70,7 @@
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="hero-screenshot animate-in delay-3">
|
<div class="hero-screenshot animate-in delay-3">
|
||||||
<div class="screenshot-placeholder"></div>
|
<img src="assets/screenshot-grid.png" alt="Crumbs notes grid view showing colorful note cards with checklists, tags, and rich text" width="1280" height="800" loading="eager">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
@@ -142,18 +142,34 @@
|
|||||||
<section class="screenshots" id="screenshots">
|
<section class="screenshots" id="screenshots">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<h2 class="animate-in">See it in action</h2>
|
<h2 class="animate-in">See it in action</h2>
|
||||||
|
<h3 class="screenshots-subtitle animate-in">Desktop</h3>
|
||||||
<div class="screenshots-grid">
|
<div class="screenshots-grid">
|
||||||
<div class="screenshot-card animate-in delay-1">
|
<div class="screenshot-card animate-in delay-1">
|
||||||
<div class="screenshot-placeholder"></div>
|
<img src="assets/screenshot-grid.png" alt="Notes grid view with colorful cards, checklists, and tags" width="1280" height="800" loading="lazy">
|
||||||
<div class="screenshot-label">Notes grid view</div>
|
<div class="screenshot-label">Notes grid view</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="screenshot-card animate-in delay-2">
|
<div class="screenshot-card animate-in delay-2">
|
||||||
<div class="screenshot-placeholder"></div>
|
<img src="assets/screenshot-editor.png" alt="Rich text editor with formatting toolbar" width="1280" height="800" loading="lazy">
|
||||||
<div class="screenshot-label">Rich text editor</div>
|
<div class="screenshot-label">Rich text editor</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="screenshot-card animate-in delay-3">
|
<div class="screenshot-card animate-in delay-3">
|
||||||
<div class="screenshot-placeholder"></div>
|
<img src="assets/screenshot-tags.png" alt="Tag filtering showing bretzel-tagged notes" width="1280" height="800" loading="lazy">
|
||||||
<div class="screenshot-label">Mobile view</div>
|
<div class="screenshot-label">Tag filtering</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<h3 class="screenshots-subtitle animate-in">Mobile</h3>
|
||||||
|
<div class="screenshots-grid screenshots-grid-mobile">
|
||||||
|
<div class="screenshot-card screenshot-card-mobile animate-in delay-1">
|
||||||
|
<img src="assets/screenshot-mobile-grid.png" alt="Mobile grid view with notes and tags" width="390" height="844" loading="lazy">
|
||||||
|
<div class="screenshot-label">Notes view</div>
|
||||||
|
</div>
|
||||||
|
<div class="screenshot-card screenshot-card-mobile animate-in delay-2">
|
||||||
|
<img src="assets/screenshot-mobile-editor.png" alt="Mobile checklist editor" width="390" height="844" loading="lazy">
|
||||||
|
<div class="screenshot-label">Checklist editor</div>
|
||||||
|
</div>
|
||||||
|
<div class="screenshot-card screenshot-card-mobile animate-in delay-3">
|
||||||
|
<img src="assets/screenshot-mobile-sidebar.png" alt="Mobile sidebar with tags" width="390" height="844" loading="lazy">
|
||||||
|
<div class="screenshot-label">Sidebar & tags</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -209,7 +225,32 @@
|
|||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
|
<!-- Lightbox -->
|
||||||
|
<div class="lightbox" id="lightbox" role="dialog" aria-label="Image preview">
|
||||||
|
<img src="" alt="">
|
||||||
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
// Lightbox
|
||||||
|
const lightbox = document.getElementById('lightbox');
|
||||||
|
const lightboxImg = lightbox.querySelector('img');
|
||||||
|
|
||||||
|
document.querySelectorAll('.screenshot-card img, .hero-screenshot img').forEach(img => {
|
||||||
|
img.addEventListener('click', () => {
|
||||||
|
lightboxImg.src = img.src;
|
||||||
|
lightboxImg.alt = img.alt;
|
||||||
|
lightbox.classList.add('active');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
lightbox.addEventListener('click', () => {
|
||||||
|
lightbox.classList.remove('active');
|
||||||
|
});
|
||||||
|
|
||||||
|
document.addEventListener('keydown', (e) => {
|
||||||
|
if (e.key === 'Escape') lightbox.classList.remove('active');
|
||||||
|
});
|
||||||
|
|
||||||
// Mobile nav toggle
|
// Mobile nav toggle
|
||||||
const toggle = document.querySelector('.nav-toggle');
|
const toggle = document.querySelector('.nav-toggle');
|
||||||
const navLinks = document.querySelector('.nav-links');
|
const navLinks = document.querySelector('.nav-links');
|
||||||
|
|||||||
+72
-2
@@ -126,7 +126,7 @@ section {
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 0.75rem;
|
gap: 0.75rem;
|
||||||
color: var(--text);
|
color: var(--primary);
|
||||||
font-family: 'Press Start 2P', cursive;
|
font-family: 'Press Start 2P', cursive;
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
}
|
}
|
||||||
@@ -404,13 +404,35 @@ section {
|
|||||||
.screenshots h2 {
|
.screenshots h2 {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: clamp(0.9rem, 2.5vw, 1.25rem);
|
font-size: clamp(0.9rem, 2.5vw, 1.25rem);
|
||||||
margin-bottom: 3rem;
|
margin-bottom: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.screenshots-subtitle {
|
||||||
|
text-align: center;
|
||||||
|
font-size: 0.7rem;
|
||||||
|
color: var(--text-muted);
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.1em;
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.screenshots-grid {
|
.screenshots-grid {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
|
grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
|
||||||
gap: 1.5rem;
|
gap: 1.5rem;
|
||||||
|
margin-bottom: 3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.screenshots-grid-mobile {
|
||||||
|
grid-template-columns: repeat(3, 1fr);
|
||||||
|
max-width: 48rem;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.screenshot-card-mobile {
|
||||||
|
max-width: 14rem;
|
||||||
|
justify-self: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.screenshot-card {
|
.screenshot-card {
|
||||||
@@ -569,6 +591,46 @@ section {
|
|||||||
padding: 0.2rem 0.6rem;
|
padding: 0.2rem 0.6rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ── Lightbox ── */
|
||||||
|
.lightbox {
|
||||||
|
position: fixed;
|
||||||
|
inset: 0;
|
||||||
|
z-index: 200;
|
||||||
|
background: rgba(26, 26, 46, 0.85);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
padding: 2rem;
|
||||||
|
cursor: zoom-out;
|
||||||
|
opacity: 0;
|
||||||
|
visibility: hidden;
|
||||||
|
transition: opacity 150ms ease-out, visibility 150ms ease-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lightbox.active {
|
||||||
|
opacity: 1;
|
||||||
|
visibility: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lightbox img {
|
||||||
|
max-width: 100%;
|
||||||
|
max-height: 90vh;
|
||||||
|
border: 2px solid var(--border-subtle);
|
||||||
|
border-radius: 2px;
|
||||||
|
box-shadow: 4px 4px 0px rgba(0, 0, 0, 0.3);
|
||||||
|
transform: scale(0.95);
|
||||||
|
transition: transform 150ms ease-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lightbox.active img {
|
||||||
|
transform: scale(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.screenshot-card img,
|
||||||
|
.hero-screenshot img {
|
||||||
|
cursor: zoom-in;
|
||||||
|
}
|
||||||
|
|
||||||
/* ── Animations ── */
|
/* ── Animations ── */
|
||||||
@keyframes fade-up {
|
@keyframes fade-up {
|
||||||
from {
|
from {
|
||||||
@@ -634,6 +696,14 @@ section {
|
|||||||
.screenshots-grid {
|
.screenshots-grid {
|
||||||
grid-template-columns: 1fr;
|
grid-template-columns: 1fr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.screenshots-grid-mobile {
|
||||||
|
grid-template-columns: repeat(3, 1fr);
|
||||||
|
}
|
||||||
|
|
||||||
|
.screenshot-card-mobile {
|
||||||
|
max-width: none;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 480px) {
|
@media (max-width: 480px) {
|
||||||
|
|||||||
Reference in New Issue
Block a user