landing: lift screenshots off the page; align feature thumbnails
Two fixes after a visual review:
1. Drop-shadow on every `.shot` so screenshots read as raised elements,
not part of the page chrome. Soft slate shadow in light mode; deeper
pure-black shadow + accent-tinted glow on hover in dark mode (the slate
shadow disappears against the near-black background). The hover state
also nudges the card up 1px so the lift is felt, not just seen.
2. Vertical alignment of the news / macro / hourly thumbnails inside the
three feature cards. The cards are already equal-height (grid row,
default stretch); now `.feature-card__body { flex-grow: 1 }` plus
`display:flex; flex-direction:column` on the card pushes the body
text to fill the column, which lands every thumbnail at the same y
regardless of how much copy sits above it. Fixed 18px gap between
body text and thumbnail.
This commit is contained in:
parent
4ded3632e9
commit
77b867c924
1 changed files with 46 additions and 9 deletions
|
|
@ -1570,6 +1570,11 @@ a.btn-secondary:hover { color: var(--accent); border-color: var(--accent); }
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
padding: 22px 22px 24px;
|
padding: 22px 22px 24px;
|
||||||
background: var(--surface);
|
background: var(--surface);
|
||||||
|
/* Flex column so the screenshot thumbnail can dock to the bottom via
|
||||||
|
margin-top:auto — that's what lines the three thumbnails up across
|
||||||
|
cards regardless of body-text length. */
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
.feature-card__tag {
|
.feature-card__tag {
|
||||||
font-family: var(--font-mono);
|
font-family: var(--font-mono);
|
||||||
|
|
@ -1590,6 +1595,10 @@ a.btn-secondary:hover { color: var(--accent); border-color: var(--accent); }
|
||||||
line-height: 1.6;
|
line-height: 1.6;
|
||||||
color: var(--muted);
|
color: var(--muted);
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
/* Grow to fill the flex column so the thumbnail below docks to the
|
||||||
|
bottom of the card. With grid-stretched equal-height cards, this is
|
||||||
|
what aligns the thumbnails across the three cards. */
|
||||||
|
flex-grow: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* --- Section primitives reused across pricing/about/legal ---------- */
|
/* --- Section primitives reused across pricing/about/legal ---------- */
|
||||||
|
|
@ -1731,11 +1740,12 @@ a.btn-secondary:hover { color: var(--accent); border-color: var(--accent); }
|
||||||
strip, and a <dialog>-based lightbox. See app/templates/landing.html. */
|
strip, and a <dialog>-based lightbox. See app/templates/landing.html. */
|
||||||
|
|
||||||
/* All clickable screenshots are <button>s — reset the default chrome so they
|
/* All clickable screenshots are <button>s — reset the default chrome so they
|
||||||
read as image cards, not form controls. */
|
read as image cards, not form controls. The shadow is the main "this is a
|
||||||
|
screenshot, not part of the page" signal; the border alone blends in. */
|
||||||
.shot {
|
.shot {
|
||||||
appearance: none;
|
appearance: none;
|
||||||
-webkit-appearance: none;
|
-webkit-appearance: none;
|
||||||
background: transparent;
|
background: var(--surface);
|
||||||
border: 1px solid var(--border);
|
border: 1px solid var(--border);
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|
@ -1744,16 +1754,39 @@ a.btn-secondary:hover { color: var(--accent); border-color: var(--accent); }
|
||||||
cursor: zoom-in;
|
cursor: zoom-in;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
transition: border-color 120ms ease, transform 120ms ease;
|
transition: border-color 120ms ease, transform 120ms ease,
|
||||||
|
box-shadow 160ms ease;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
box-shadow: 0 6px 22px rgba(15, 23, 42, 0.18),
|
||||||
|
0 2px 6px rgba(15, 23, 42, 0.10);
|
||||||
}
|
}
|
||||||
.shot:hover,
|
.shot:hover {
|
||||||
.shot:focus-visible {
|
|
||||||
border-color: var(--accent);
|
border-color: var(--accent);
|
||||||
outline: none;
|
transform: translateY(-1px);
|
||||||
|
box-shadow: 0 10px 28px rgba(15, 23, 42, 0.22),
|
||||||
|
0 4px 10px rgba(15, 23, 42, 0.14);
|
||||||
}
|
}
|
||||||
.shot:focus-visible {
|
.shot:focus-visible {
|
||||||
box-shadow: 0 0 0 2px var(--accent);
|
outline: none;
|
||||||
|
border-color: var(--accent);
|
||||||
|
box-shadow: 0 0 0 2px var(--accent),
|
||||||
|
0 6px 22px rgba(15, 23, 42, 0.18);
|
||||||
|
}
|
||||||
|
/* Dark mode: the soft slate shadow disappears against the near-black bg.
|
||||||
|
Use a deeper, slightly accent-tinted glow so the cards still lift. */
|
||||||
|
[data-theme="dark"] .shot {
|
||||||
|
box-shadow: 0 8px 30px rgba(0, 0, 0, 0.55),
|
||||||
|
0 2px 8px rgba(0, 0, 0, 0.35);
|
||||||
|
}
|
||||||
|
[data-theme="dark"] .shot:hover {
|
||||||
|
box-shadow: 0 14px 36px rgba(0, 0, 0, 0.65),
|
||||||
|
0 0 0 1px rgba(0, 217, 255, 0.20);
|
||||||
|
}
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
.shot {
|
||||||
|
box-shadow: 0 8px 30px rgba(0, 0, 0, 0.55),
|
||||||
|
0 2px 8px rgba(0, 0, 0, 0.35);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.shot img {
|
.shot img {
|
||||||
display: block;
|
display: block;
|
||||||
|
|
@ -1783,9 +1816,13 @@ a.btn-secondary:hover { color: var(--accent); border-color: var(--accent); }
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Thumbnail tucked at the bottom of each feature card. */
|
/* Thumbnail at the bottom of each feature card. Vertical alignment across
|
||||||
|
the three cards is achieved by `.feature-card__body { flex-grow: 1 }`
|
||||||
|
above, which lets the body fill all available space inside the
|
||||||
|
equal-height grid cell — the thumbnail then sits at the same y across
|
||||||
|
cards. The fixed margin-top keeps a predictable gap above. */
|
||||||
.feature-card__shot {
|
.feature-card__shot {
|
||||||
margin-top: 16px;
|
margin-top: 18px;
|
||||||
}
|
}
|
||||||
.feature-card__shot img {
|
.feature-card__shot img {
|
||||||
max-height: 200px;
|
max-height: 200px;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue