feat(design): enhance UI with animations, gradients, and hover effects
- Add AnimatedBackground component with canvas-based floating orbs - Add reusable Button component with shimmer effects and variants - Update globals.css with animation keyframes and utility classes - Enhance Header with glass effect and animated nav underlines - Enhance Footer with gradient overlays and hover effects - Update all pages with animated gradient backgrounds - Add hover effects on cards, icons, and buttons - Implement gradient text effects throughout 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.5
parent
9eebabdc7c
commit
238b1c9a87
+79
-66
@@ -1,4 +1,5 @@
|
||||
import Link from "next/link";
|
||||
"use client";
|
||||
|
||||
import {
|
||||
Building2,
|
||||
Users,
|
||||
@@ -12,13 +13,10 @@ import {
|
||||
Star,
|
||||
Zap,
|
||||
Globe,
|
||||
Phone,
|
||||
} from "lucide-react";
|
||||
|
||||
export const metadata = {
|
||||
title: "Solutions | AB Group LLC",
|
||||
description:
|
||||
"QuickBooks Enterprise, Pro, Premier, and Point of Sale solutions. Find the right accounting software for your business.",
|
||||
};
|
||||
import AnimatedBackground from "../components/AnimatedBackground";
|
||||
import Button from "../components/Button";
|
||||
|
||||
const solutions = [
|
||||
{
|
||||
@@ -137,42 +135,51 @@ export default function SolutionsPage() {
|
||||
return (
|
||||
<>
|
||||
{/* Hero Section */}
|
||||
<section className="bg-zinc-900 text-white">
|
||||
<div className="mx-auto max-w-7xl px-4 py-16 sm:px-6 sm:py-20 lg:px-8 lg:py-24">
|
||||
<section className="relative animated-gradient-bg text-white overflow-hidden">
|
||||
<AnimatedBackground variant="dark" orbCount={5} />
|
||||
<div className="relative mx-auto max-w-7xl px-4 py-16 sm:px-6 sm:py-20 lg:px-8 lg:py-24">
|
||||
<div className="max-w-3xl">
|
||||
<p className="text-red-500 font-semibold mb-4">Our Solutions</p>
|
||||
<h1 className="text-4xl font-bold tracking-tight sm:text-5xl">
|
||||
Find the Right <span className="text-red-500">QuickBooks</span>{" "}
|
||||
<p className="text-red-400 font-semibold mb-4 animate-fade-in">
|
||||
Our Solutions
|
||||
</p>
|
||||
<h1 className="text-4xl font-bold tracking-tight sm:text-5xl animate-slide-up">
|
||||
Find the Right{" "}
|
||||
<span className="text-transparent bg-gradient-to-r from-red-400 via-red-500 to-red-600 bg-clip-text">
|
||||
QuickBooks
|
||||
</span>{" "}
|
||||
for Your Business
|
||||
</h1>
|
||||
<p className="mt-6 text-lg text-zinc-300">
|
||||
<p className="mt-6 text-lg text-zinc-300 animate-slide-up animation-delay-100">
|
||||
From small startups to growing enterprises, we help you choose and
|
||||
implement the perfect QuickBooks solution. Save thousands compared
|
||||
to enterprise alternatives.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="absolute right-10 top-1/4 w-64 h-64 bg-red-500/10 rounded-full blur-3xl animate-float" />
|
||||
</section>
|
||||
|
||||
{/* Solutions */}
|
||||
{solutions.map((solution, index) => (
|
||||
<section
|
||||
key={solution.id}
|
||||
className={index % 2 === 0 ? "bg-white" : "bg-zinc-50"}
|
||||
className={`relative ${index % 2 === 0 ? "bg-white" : "bg-zinc-50"}`}
|
||||
>
|
||||
<div className="mx-auto max-w-7xl px-4 py-16 sm:px-6 md:py-24 lg:px-8">
|
||||
{solution.featured && (
|
||||
<div className="flex items-center gap-2 mb-4">
|
||||
<Star className="h-5 w-5 text-red-600 fill-red-600" />
|
||||
<span className="text-sm font-semibold text-red-600 uppercase tracking-wide">
|
||||
Most Popular
|
||||
</span>
|
||||
<div className="flex items-center gap-1 px-3 py-1 bg-gradient-to-r from-red-500 to-red-600 rounded-full">
|
||||
<Star className="h-4 w-4 text-white fill-white" />
|
||||
<span className="text-xs font-semibold text-white uppercase tracking-wide">
|
||||
Most Popular
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className="grid grid-cols-1 gap-12 lg:grid-cols-2 lg:gap-16">
|
||||
<div>
|
||||
<p className="text-red-600 font-medium mb-2">
|
||||
<p className="text-transparent bg-gradient-to-r from-red-500 to-red-700 bg-clip-text font-medium mb-2">
|
||||
{solution.tagline}
|
||||
</p>
|
||||
<h2 className="text-3xl font-semibold text-zinc-900 sm:text-4xl">
|
||||
@@ -183,37 +190,39 @@ export default function SolutionsPage() {
|
||||
</p>
|
||||
|
||||
<ul className="mt-8 grid grid-cols-1 sm:grid-cols-2 gap-3">
|
||||
{solution.features.map((feature) => (
|
||||
<li key={feature} className="flex items-center gap-2">
|
||||
<CheckCircle className="h-5 w-5 text-red-600 flex-shrink-0" />
|
||||
{solution.features.map((feature, idx) => (
|
||||
<li
|
||||
key={feature}
|
||||
className="flex items-center gap-2 group"
|
||||
style={{ animationDelay: `${idx * 50}ms` }}
|
||||
>
|
||||
<CheckCircle className="h-5 w-5 text-red-600 flex-shrink-0 group-hover:scale-110 transition-transform duration-300" />
|
||||
<span className="text-sm text-zinc-700">{feature}</span>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
|
||||
<div className="mt-8">
|
||||
<Link
|
||||
href="/contact"
|
||||
className="inline-flex items-center justify-center px-6 py-3 bg-red-600 text-white font-medium rounded-lg hover:bg-red-700 transition-colors"
|
||||
>
|
||||
<Button href="/contact">
|
||||
Get a Quote
|
||||
<ArrowRight className="ml-2 h-5 w-5" />
|
||||
</Link>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="grid grid-cols-1 gap-6">
|
||||
{solution.highlights.map((highlight) => (
|
||||
{solution.highlights.map((highlight, idx) => (
|
||||
<div
|
||||
key={highlight.title}
|
||||
className="bg-white rounded-xl p-6 shadow-sm border border-zinc-100"
|
||||
className="group bg-white rounded-xl p-6 shadow-sm border border-zinc-100 hover:shadow-xl hover:shadow-red-500/5 hover:-translate-y-1 transition-all duration-300"
|
||||
style={{ animationDelay: `${idx * 100}ms` }}
|
||||
>
|
||||
<div className="flex items-start gap-4">
|
||||
<div className="w-12 h-12 bg-red-100 rounded-lg flex items-center justify-center flex-shrink-0">
|
||||
<highlight.icon className="h-6 w-6 text-red-600" />
|
||||
<div className="w-12 h-12 bg-gradient-to-br from-red-100 to-red-50 rounded-lg flex items-center justify-center flex-shrink-0 group-hover:bg-gradient-to-br group-hover:from-red-500 group-hover:to-red-700 transition-all duration-300">
|
||||
<highlight.icon className="h-6 w-6 text-red-600 group-hover:text-white transition-colors duration-300" />
|
||||
</div>
|
||||
<div>
|
||||
<h3 className="font-semibold text-zinc-900">
|
||||
<h3 className="font-semibold text-zinc-900 group-hover:text-red-600 transition-colors duration-300">
|
||||
{highlight.title}
|
||||
</h3>
|
||||
<p className="mt-1 text-sm text-zinc-600">
|
||||
@@ -230,8 +239,9 @@ export default function SolutionsPage() {
|
||||
))}
|
||||
|
||||
{/* Integrations */}
|
||||
<section className="bg-zinc-900 text-white py-16 md:py-24">
|
||||
<div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
|
||||
<section className="relative animated-gradient-bg text-white py-16 md:py-24 overflow-hidden">
|
||||
<AnimatedBackground variant="dark" orbCount={4} />
|
||||
<div className="relative mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
|
||||
<div className="text-center max-w-3xl mx-auto mb-12">
|
||||
<h2 className="text-3xl font-semibold sm:text-4xl">
|
||||
Integrations & Add-ons
|
||||
@@ -243,12 +253,13 @@ export default function SolutionsPage() {
|
||||
</div>
|
||||
|
||||
<div className="grid grid-cols-2 sm:grid-cols-4 gap-4">
|
||||
{integrations.map((integration) => (
|
||||
{integrations.map((integration, index) => (
|
||||
<div
|
||||
key={integration}
|
||||
className="bg-white/5 rounded-lg p-4 text-center hover:bg-white/10 transition-colors"
|
||||
className="group bg-white/5 backdrop-blur-sm rounded-lg p-4 text-center hover:bg-gradient-to-br hover:from-red-500/20 hover:to-red-700/20 border border-white/10 hover:border-red-500/30 transition-all duration-300 cursor-pointer"
|
||||
style={{ animationDelay: `${index * 50}ms` }}
|
||||
>
|
||||
<p className="text-sm font-medium text-zinc-300">
|
||||
<p className="text-sm font-medium text-zinc-300 group-hover:text-white transition-colors duration-300">
|
||||
{integration}
|
||||
</p>
|
||||
</div>
|
||||
@@ -264,38 +275,39 @@ export default function SolutionsPage() {
|
||||
{/* Comparison CTA */}
|
||||
<section className="bg-white py-16 md:py-24">
|
||||
<div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
|
||||
<div className="bg-zinc-100 rounded-2xl p-8 md:p-12 text-center">
|
||||
<Building2 className="h-12 w-12 text-red-600 mx-auto mb-4" />
|
||||
<h2 className="text-2xl font-semibold text-zinc-900 sm:text-3xl">
|
||||
Not Sure Which Solution is Right for You?
|
||||
</h2>
|
||||
<p className="mt-4 text-zinc-600 max-w-2xl mx-auto">
|
||||
Let our experts analyze your business needs and recommend the
|
||||
perfect QuickBooks solution. We'll help you choose the right
|
||||
edition and configure it for your specific requirements.
|
||||
</p>
|
||||
<div className="mt-8 flex flex-col sm:flex-row gap-4 justify-center">
|
||||
<Link
|
||||
href="/contact"
|
||||
className="inline-flex items-center justify-center px-6 py-3 bg-red-600 text-white font-medium rounded-lg hover:bg-red-700 transition-colors"
|
||||
>
|
||||
Schedule a Free Consultation
|
||||
<ArrowRight className="ml-2 h-5 w-5" />
|
||||
</Link>
|
||||
<a
|
||||
href="tel:3053878582"
|
||||
className="inline-flex items-center justify-center px-6 py-3 bg-white text-zinc-900 font-medium rounded-lg border border-zinc-200 hover:bg-zinc-50 transition-colors"
|
||||
>
|
||||
Call (305) 387-8582
|
||||
</a>
|
||||
<div className="relative group">
|
||||
<div className="absolute -inset-4 bg-gradient-to-r from-red-500 to-red-700 rounded-3xl opacity-10 blur-xl group-hover:opacity-20 transition-opacity duration-300" />
|
||||
<div className="relative bg-gradient-to-br from-zinc-100 to-zinc-50 rounded-2xl p-8 md:p-12 text-center border border-zinc-200">
|
||||
<div className="w-16 h-16 bg-gradient-to-br from-red-500 to-red-700 rounded-xl flex items-center justify-center mx-auto mb-4 shadow-lg shadow-red-500/20">
|
||||
<Building2 className="h-8 w-8 text-white" />
|
||||
</div>
|
||||
<h2 className="text-2xl font-semibold text-zinc-900 sm:text-3xl">
|
||||
Not Sure Which Solution is Right for You?
|
||||
</h2>
|
||||
<p className="mt-4 text-zinc-600 max-w-2xl mx-auto">
|
||||
Let our experts analyze your business needs and recommend the
|
||||
perfect QuickBooks solution. We'll help you choose the
|
||||
right edition and configure it for your specific requirements.
|
||||
</p>
|
||||
<div className="mt-8 flex flex-col sm:flex-row gap-4 justify-center">
|
||||
<Button href="/contact">
|
||||
Schedule a Free Consultation
|
||||
<ArrowRight className="ml-2 h-5 w-5" />
|
||||
</Button>
|
||||
<Button href="tel:3053878582" variant="secondary">
|
||||
<Phone className="mr-2 h-5 w-5" />
|
||||
Call (305) 387-8582
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{/* CTA Banner */}
|
||||
<section className="bg-red-600 py-12 md:py-16">
|
||||
<div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
|
||||
<section className="relative overflow-hidden animated-gradient-bg-red py-12 md:py-16">
|
||||
<AnimatedBackground variant="red" orbCount={4} />
|
||||
<div className="relative mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
|
||||
<div className="flex flex-col md:flex-row items-center justify-between gap-6">
|
||||
<div className="text-center md:text-left">
|
||||
<h2 className="text-2xl font-semibold text-white sm:text-3xl">
|
||||
@@ -306,13 +318,14 @@ export default function SolutionsPage() {
|
||||
alternatives.
|
||||
</p>
|
||||
</div>
|
||||
<Link
|
||||
<Button
|
||||
href="/contact"
|
||||
className="inline-flex items-center justify-center px-6 py-3 bg-white text-red-600 font-medium rounded-lg hover:bg-red-50 transition-colors"
|
||||
variant="secondary"
|
||||
className="bg-white text-red-600 hover:bg-red-50 border-transparent"
|
||||
>
|
||||
Get Your Quote
|
||||
<ArrowRight className="ml-2 h-5 w-5" />
|
||||
</Link>
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
Reference in New Issue
Block a user