Compare commits

...
Author SHA1 Message Date
Val Alexander 6ebcf67ab2 Merge branch 'staging' into okcode/featured-card-hover-home-link 2026-04-18 14:37:18 -05:00
Val AlexanderandClaude Opus 4.6 82a3cd3590 chore: remove unused footer divider element
The site-footer-divider was already hidden via CSS (display: none) on
home-v2 pages. Remove the element entirely since it serves no purpose.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-18 14:31:50 -05:00
Val AlexanderandClaude Opus 4.6 6c9339260d fix: address review feedback — mobile brand, category grid, hover drama
- Keep brand name visible on mobile (remove display:none for
  .brand-name-responsive at ≤639px) so the home link is always
  discoverable. Add TODO comment on the commented-out logo block.
- Add .about-panel-categories .about-grid to the ≤640px media query
  so the category grid correctly collapses to single-column on mobile.
- Bump carousel card hover to translateY(-3px) with 0 6px 24px shadow
  for a slightly more dramatic lift — still within the 12px top / 48px
  bottom track padding so nothing clips.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-18 14:19:20 -05:00
Val AlexanderandClaude Opus 4.6 f33d995113 fix: reduce carousel card hover effect and increase track padding
The carousel cards were getting clipped by the parent overflow:hidden
container. Reduce the hover transform from translateY(-4px) scale(1.01)
to translateY(-2px) and shrink box-shadow spread across all theme
variants. Increase carousel track top padding from 4px to 12px to
accommodate the upward shift without cutoff.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-18 14:07:50 -05:00
Val AlexanderandClaude Opus 4.6 95c3ae361b fix: remove extra footer padding and ensure full-width nav/footer for boxed layout
Zero out the outer .site-footer padding and set background to transparent
on home-v2 pages so the app-shell background bleeds through edge-to-edge.
Remove the redundant light-mode footer background override (app-shell
background already covers it). Nav and footer now visually span full
viewport width while .home-v2-main content stays boxed at --page-max.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-18 14:03:15 -05:00
Val AlexanderandClaude Opus 4.6 527b77ee19 fix: impose max page width on home page using --page-max (1536px)
Constrain .home-v2-main to max-width: var(--page-max) and center it
with margin-inline: auto. Extend the home page background color to the
full viewport via .app-shell:has(.home-v2-main) for both light and dark
themes so the background bleeds edge-to-edge beyond the content column.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-18 13:55:02 -05:00
Val AlexanderandClaude Opus 4.6 2478c441ba fix: hide logo, use ClawHub as home link, and clean up rejection categories grid
Comment out the brand logo image for now, rename "Immediate rejection
categories" to "Rejection Categories", remove the featured card variant,
and switch to an auto-fill grid so cards spread evenly at full width.
Add overflow: visible on the categories panel to prevent hover shadow
clipping.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-18 13:46:50 -05:00
4 changed files with 69 additions and 45 deletions
-1
View File
@@ -4,7 +4,6 @@ export function Footer() {
return (
<footer className="site-footer" role="contentinfo">
<div className="site-footer-inner">
<div className="site-footer-divider" aria-hidden="true" />
<div className="footer-grid">
{FOOTER_NAV_SECTIONS.map((section) => (
<div key={section.title} className="footer-col">
+3 -2
View File
@@ -202,9 +202,10 @@ export default function Header() {
search={{ q: undefined, highlighted: undefined, search: undefined }}
className="brand"
>
<span className="brand-mark">
{/* TODO: Re-introduce logo once new asset is ready */}
{/* <span className="brand-mark">
<img src="/clawd-logo.png" alt="" aria-hidden="true" className="brand-mark-image" />
</span>
</span> */}
<span className="brand-name brand-name-responsive">{siteName}</span>
</Link>
+4 -4
View File
@@ -111,14 +111,14 @@ function AboutPage() {
</aside>
<section className="about-panel about-panel-categories">
<div className="home-section-header about-categories-header">
<h2 className="home-section-title">Immediate rejection categories</h2>
<div className="home-section-header">
<h2 className="home-section-title">Rejection Categories</h2>
</div>
<div className="about-grid">
{prohibitedCategories.map((category, index) => (
{prohibitedCategories.map((category) => (
<article
key={category.title}
className={`about-rule-card${index % 3 === 0 ? ' about-rule-card-featured' : ''}`}
className="about-rule-card"
>
<h2>{category.title}</h2>
<p>{category.examples}</p>
+62 -38
View File
@@ -4272,10 +4272,6 @@ code {
}
@media (max-width: 639px) {
.brand-name-responsive {
display: none;
}
.brand-mark-image {
display: none;
}
@@ -7352,6 +7348,14 @@ html.theme-transition::view-transition-new(theme) {
gap: 20px;
}
.about-panel-categories {
overflow: visible;
}
.about-panel-categories .about-grid {
grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}
.about-rule-card,
.about-pattern {
display: flex;
@@ -7429,19 +7433,6 @@ html.theme-transition::view-transition-new(theme) {
grid-column: span 3;
}
.about-grid {
grid-template-columns: repeat(6, minmax(0, 1fr));
gap: 22px;
}
.about-rule-card {
grid-column: span 2;
}
.about-rule-card-featured {
grid-column: span 3;
}
.about-patterns {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
@@ -7468,19 +7459,6 @@ html.theme-transition::view-transition-new(theme) {
grid-column: span 5;
}
.about-grid {
grid-template-columns: repeat(12, minmax(0, 1fr));
gap: 24px;
}
.about-rule-card {
grid-column: span 4;
}
.about-rule-card-featured {
grid-column: span 6;
}
.about-patterns {
grid-template-columns: repeat(4, minmax(0, 1fr));
}
@@ -7490,6 +7468,7 @@ html.theme-transition::view-transition-new(theme) {
.about-bento,
.about-grid,
.about-patterns,
.about-panel-categories .about-grid,
.souls-coming-grid {
grid-template-columns: 1fr;
}
@@ -7645,6 +7624,9 @@ html.theme-transition::view-transition-new(theme) {
/* --- Variables (scoped) --- */
.home-v2-main {
max-width: var(--page-max);
margin-inline: auto;
width: 100%;
--hv2-bg: #060608;
--hv2-surface: rgba(255,255,255,0.02);
--hv2-surface-hover: rgba(255,255,255,0.045);
@@ -8061,7 +8043,7 @@ html.theme-transition::view-transition-new(theme) {
.home-v2-carousel-track {
display: flex;
gap: 16px;
padding: 4px 48px 48px;
padding: 12px 48px 48px;
animation: home-v2-scroll 46s linear infinite;
width: max-content;
}
@@ -8091,8 +8073,8 @@ html.theme-transition::view-transition-new(theme) {
}
.home-v2-c-card:hover {
border-color: var(--hv2-border-hover);
transform: translateY(-4px) scale(1.01);
box-shadow: 0 8px 32px rgba(0,0,0,0.25);
transform: translateY(-3px);
box-shadow: 0 6px 24px rgba(0,0,0,0.22);
background: var(--hv2-surface-hover);
}
.home-v2-c-head {
@@ -8522,7 +8504,7 @@ html.theme-transition::view-transition-new(theme) {
padding: 0 20px;
}
.home-v2-carousel-track {
padding: 4px 20px 36px;
padding: 12px 20px 36px;
}
.home-v2-c-card {
min-width: 280px;
@@ -8560,6 +8542,49 @@ html.theme-transition::view-transition-new(theme) {
max-width: none;
}
/* ═══ MINIMAL FOOTER (home-v2 pages) ═══ */
/* Fix: use :has() since main is wrapped in ErrorBoundary */
.app-shell:has(.home-v2-main) > .site-footer .footer-grid {
display: none;
}
.app-shell:has(.home-v2-main) > .site-footer .site-footer-divider {
display: none;
}
.app-shell:has(.home-v2-main) > .site-footer {
border-top: 1px solid rgba(255,255,255,0.06);
padding: 0;
background: transparent;
}
.app-shell:has(.home-v2-main) > .site-footer .site-footer-inner {
max-width: none;
padding: 20px 48px;
}
.app-shell:has(.home-v2-main) > .site-footer .footer-bottom {
padding: 0;
margin: 0;
border: none;
font-size: 13px;
color: #555;
display: flex;
align-items: center;
justify-content: space-between;
}
.app-shell:has(.home-v2-main) > .site-footer .footer-bottom a {
color: #777;
}
.app-shell:has(.home-v2-main) > .site-footer .footer-bottom a:hover {
color: #aaa;
}
/* ═══ HOME V2 — Page-max constraint + full-bleed background ═══ */
.app-shell:has(.home-v2-main) {
background: #060608;
}
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) {
background: #faf6f1;
}
/* ═══ HOME V2 — Full-width nav override ═══ */
.app-shell:has(.home-v2-main) > header,
.app-shell:has(.home-v2-main) > nav,
@@ -8663,7 +8688,7 @@ html.theme-transition::view-transition-new(theme) {
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.05),
inset 0 0 24px rgba(0, 0, 0, 0.2),
0 8px 32px rgba(0, 0, 0, 0.25);
0 6px 24px rgba(0, 0, 0, 0.22);
}
/* Dark mode — search bar inner fade */
@@ -8705,7 +8730,7 @@ html.theme-transition::view-transition-new(theme) {
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.8),
inset 0 0 30px rgba(170, 125, 80, 0.08),
0 4px 20px rgba(140, 100, 60, 0.12),
0 4px 18px rgba(140, 100, 60, 0.12),
0 0 0 1px rgba(160, 115, 72, 0.12);
}
@@ -8840,7 +8865,6 @@ html.theme-transition::view-transition-new(theme) {
/* Light — footer */
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) > .site-footer {
border-top-color: rgba(170, 125, 80, 0.15);
background: var(--hv2-bg);
}
[data-theme-resolved="light"] .app-shell:has(.home-v2-main) > .site-footer .footer-bottom {
color: #9c8b7a;
@@ -8915,7 +8939,7 @@ html.theme-transition::view-transition-new(theme) {
box-shadow:
inset 0 1px 0 rgba(255, 255, 255, 0.06),
inset 0 0 32px rgba(0, 0, 0, 0.25),
0 8px 36px rgba(0, 0, 0, 0.3);
0 6px 28px rgba(0, 0, 0, 0.28);
}
/* Dark — search inset */