diff --git a/app/public/css/landing.css b/app/public/css/landing.css index 16f1188c..08acab18 100644 --- a/app/public/css/landing.css +++ b/app/public/css/landing.css @@ -8,6 +8,34 @@ padding: 0 1rem; } +/* Site header */ +.site-header { + width: 100%; + background: transparent; + border-bottom: solid 1px var(--falkor-border-secondary); +} + +.site-header-inner { + padding: 1rem; + display: inline-flex; + align-items: center; + gap: 0.4rem; + color: var(--text-primary); + text-decoration: none; + font-weight: 700; + padding-left: 0.25rem; +} + +.site-header-inner img { + height: 40px; + width: auto; + display: block; +} +.site-title { + font-size: 0.95rem; + display: none; +} + .hero-left { padding: 1rem 0; } @@ -42,6 +70,8 @@ color: #fff; text-decoration: none; box-shadow: 0 8px 20px rgba(91, 107, 192, 0.14); + transition: transform 140ms ease, box-shadow 140ms ease, filter 140ms ease; + cursor: pointer; } .btn-ghost { @@ -67,8 +97,22 @@ box-shadow: 0 0 0 3px rgba(91, 107, 192, 0.08); } +.btn-pill:hover { + transform: translateY(-4px); + box-shadow: 0 18px 36px rgba(91, 107, 192, 0.18); +} + +.btn-pill:active { + transform: translateY(-1px) scale(0.997); +} + +.btn-pill:focus { + outline: none; + box-shadow: 0 0 0 4px rgba(59,130,246,0.12); +} + .demo-card { - background: var(--falkor-secondary); + background: var(--bg-tertiary); border-radius: 12px; box-shadow: 0 16px 30px rgba(11, 18, 32, 0.06); padding: 1rem; @@ -77,10 +121,10 @@ /* Use a neutral themed surface for the inner area so it adapts to light/dark */ .demo-inner { - background: var(--bg-tertiary); border-radius: 8px; padding: 1rem; border: 1px solid var(--falkor-border-tertiary); + border: none; } .demo-label { @@ -137,6 +181,14 @@ line-height: 1.25; } +/* SQL token colors for demo code */ +.demo-sql .sql-keyword { color: #7c3aed; font-weight: 700; } +.demo-sql .sql-string { color: #059669; } +.demo-sql .sql-func { color: #2563eb; } +.demo-sql .sql-number { color: #b45309; } + +.demo-sql { white-space: pre-wrap; font-family: monospace; } + .demo-sql.typing { position: relative; } @@ -175,6 +227,22 @@ background: #e7f1ff; color: var(--falkor-primary); text-decoration: none; + border: none; +} + +.demo-cta .btn-full:hover { + transform: translateY(-3px); + box-shadow: 0 14px 30px rgba(11,18,32,0.12); + background: #d9ecff; +} + +.demo-cta .btn-full:active { + transform: translateY(-1px) scale(0.998); +} + +.demo-cta .btn-full:focus { + outline: none; + box-shadow: 0 0 0 4px rgba(59,130,246,0.08); } @media (max-width: 900px) { @@ -187,3 +255,77 @@ font-size: 2.4rem; } } + +/* Feature boxes row */ +.features-row { + display: flex; + gap: 1rem; + margin-top: 4.5rem; + align-items: stretch; + justify-content: center; +} + +.feature-card { + width: 280px; + background: var(--bg-tertiary); + border-radius: 6px; + padding: 0.9rem 1rem; + border: 1px solid var(--falkor-border-tertiary); + box-shadow: 0 8px 20px rgba(11, 18, 32, 0.04); + text-align: center; + transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease; + border: none; +} + +.feature-card:hover { + transform: translateY(-6px); + box-shadow: 0 20px 40px rgba(11, 18, 32, 0.18); + border: solid 1px var(--falkor-border-secondary); +} + +.feature-card .feature-icon { + width: 36px; + height: 36px; + display: inline-flex; + align-items: center; + justify-content: center; + border-radius: 999px; + background: rgba(59,130,246,0.06); + margin: 0 auto 0.6rem auto; +} + +.feature-card:hover .feature-icon { + background: rgba(59,130,246,0.12); +} + +.feature-title { + font-size: 0.9rem; + margin: 0 0 0.35rem 0; + color: var(--text-primary); + font-weight: 700; +} + +.feature-desc { + font-size: 0.82rem; + color: var(--text-secondary); + margin: 0; + line-height: 1.3; +} + +.feature-highlight { + border: 1px solid rgba(59,130,246,0.15); +} + +@media (max-width: 900px) { + .features-row { + flex-direction: column; + gap: 0.75rem; + margin-top: 2rem; + align-items: center; + } + + .feature-card { + width: 100%; + max-width: 520px; + } +} diff --git a/app/templates/base.j2 b/app/templates/base.j2 index d1b578ac..ba07d051 100644 --- a/app/templates/base.j2 +++ b/app/templates/base.j2 @@ -1,5 +1,5 @@ - +
diff --git a/app/templates/landing.j2 b/app/templates/landing.j2 index c7779620..38e9479a 100644 --- a/app/templates/landing.j2 +++ b/app/templates/landing.j2 @@ -7,12 +7,20 @@ {% endblock %} {% block content %} + +The intelligent AI solution that connects your business questions to data across multiple databases. Ask a question in plain English and get runnable SQL and visual results.
+The intelligent AI solution that connects your business questions to data across multiple + databases. Ask a question in plain English and get runnable SQL and visual results.
Goes beyond simple column matching to understand complex business logic and relationships in + your data.
+Ask a single question and get answers from disparate sources like PostgreSQL and Salesforce + in one go.
+Get intelligent suggestions to clarify ambiguity and optimize your queries before you even + run them.
+