> ## Documentation Index
> Fetch the complete documentation index at: https://anvil.servicetitan.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Visual Foundations

> Visual foundations are the atomic elements that bring together a Carto UI.

export const OverviewGrid = ({description, items}) => {
  const hasImages = items?.some(item => item.image || item.darkImage);
  return <div className="my-10">
      <p className="mt-2 text-lg text-gray-600 dark:text-gray-400">
        {description}
      </p>

      <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8 mt-12">
        {items && items.length > 0 ? items.map(item => hasImages ? <a key={item.title} href={item.href} className="group block border-0 shadow-none hover:no-underline">
                  <div className="rounded-xl overflow-hidden">
                    <div className="w-full relative" style={{
    aspectRatio: "16/9"
  }}>
                      {item.image && <img src={item.image} alt={item.title} onLoad={() => <div>test</div>} className={`absolute inset-0 w-full h-full object-cover m-0 block border-0${item.darkImage ? " dark:hidden" : ""}`} />}
                      {item.darkImage && <img src={item.darkImage} alt={item.title} className="absolute inset-0 w-full h-full object-cover hidden dark:block m-0 border-0" />}
                    </div>
                  </div>
                  <h4 className="mt-2 text-center text-gray-800 dark:text-gray-200 group-hover:text-blue-500 dark:group-hover:text-blue-400 transition-colors">
                    {item.title}
                  </h4>
                </a> : <Card key={item.title} title={item.title} href={item.href}>
                  {item.description}
                </Card>) : null}
      </div>
    </div>;
};

<OverviewGrid
  description="Visual foundations are the atomic elements that bring together a Carto UI."
  items={[
{
title: "Colors",
href: "/docs/kits/ai-kit/foundations/colors",
image: "/images/docs/kits/ai-kit/foundations/colors/overview-image.png",
},
{
title: "Typography",
href: "/docs/kits/ai-kit/foundations/typography",
image:
"/images/docs/kits/ai-kit/foundations/typography/overview-image.png",
},
{
title: "Iconography",
href: "/docs/kits/ai-kit/foundations/iconography",
image:
"/images/docs/kits/ai-kit/foundations/iconography/overview-image.png",
},
{
title: "Illustrations",
href: "/docs/kits/ai-kit/foundations/illustrations",
image:
"/images/docs/kits/ai-kit/foundations/illustrations/overview-image.png",
},
{
title: "Data Visualization",
href: "/docs/kits/ai-kit/foundations/data-visualization",
image:
"/images/docs/kits/ai-kit/foundations/data-visualization/overview-image.png",
},
]}
/>
