blob: a9b8b664509eb9c07dea50b8b130b45f1d035b36 [file]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
"use client";
import { FEATURES } from "@/lib/constants";
import {
Database,
Eye,
UserCheck,
Zap,
GitBranch,
FlaskConical,
} from "lucide-react";
import { BlurFade } from "@/components/ui/blur-fade";
const iconMap: Record<string, React.ElementType> = {
Database,
Eye,
UserCheck,
Zap,
GitBranch,
FlaskConical,
};
export default function Features() {
return (
<section id="features" className="py-20 sm:py-28">
<div className="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
<BlurFade delay={0.1} inView>
<div className="text-center mb-14">
<h2 className="text-3xl font-bold sm:text-4xl">
Everything you need to build AI applications
</h2>
<p className="mt-3 text-[var(--muted)] text-lg max-w-2xl mx-auto">
Burr provides the building blocks for reliable, observable, and
testable AI-powered applications.
</p>
</div>
</BlurFade>
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6">
{FEATURES.map((feature, i) => {
const Icon = iconMap[feature.icon];
return (
<BlurFade key={feature.title} delay={0.15 + i * 0.05} inView>
<div className="group rounded-2xl border border-[var(--card-border)] bg-[var(--card-bg)] p-8 hover:border-[#7B2FBE]/30 hover:shadow-xl hover:shadow-[#7B2FBE]/5 transition-all duration-300">
<div className="mb-5 inline-flex items-center justify-center rounded-xl bg-[#7B2FBE]/10 p-3.5 text-[#7B2FBE] group-hover:bg-[#7B2FBE]/15 transition-colors">
<Icon className="h-7 w-7" />
</div>
<h3 className="text-xl font-semibold mb-3">
{feature.title}
</h3>
<p className="text-[15px] text-[var(--muted)] leading-relaxed">
{feature.description}
</p>
</div>
</BlurFade>
);
})}
</div>
</div>
</section>
);
}