"use client"; import React, { useState } from "react"; import { motion } from "motion/react"; import Link from "next/link"; import { cn } from "@/lib/utils"; export function FullBackgroundImageWithText({ gradientFade = true, }: { gradientFade?: boolean; }) { const logos = [ { name: "Aceternity UI", image: "https://assets.aceternity.com/pro/logos/aceternity-ui.png", }, { name: "Gamity", image: "https://assets.aceternity.com/pro/logos/gamity.png", }, { name: "Host it", image: "https://assets.aceternity.com/pro/logos/hostit.png", }, { name: "Asteroid Kit", image: "https://assets.aceternity.com/pro/logos/asteroid-kit.png", }, ]; return (

The best community for
Indie Hackers

We're building a community of indie hackers to help each other succeed. Get in touch with us to join the community.

{logos.map((logo) => ( ))}
); } export const Button = ({ href, as: Tag = "a", children, className, variant = "primary", ...props }: { href?: string; as?: React.ElementType | any; children: React.ReactNode; className?: string; variant?: "primary" | "secondary" | "simple"; } & ( | React.ComponentPropsWithoutRef<"a"> | React.ComponentPropsWithoutRef<"button"> )) => { const baseStyles = "no-underline flex space-x-2 group cursor-pointer relative border-none transition duration-200 rounded-full p-px text-xs font-semibold leading-6 px-4 py-2"; const variantStyles = { primary: "w-full sm:w-44 h-10 rounded-lg text-sm text-center items-center justify-center relative z-20 bg-black text-white", secondary: "relative z-20 text-sm bg-white text-black w-full sm:w-44 h-10 flex items-center justify-center rounded-lg hover:-translate-y-0.5 ", simple: "relative z-20 text-sm bg-transparent text-white w-full sm:w-44 h-10 flex items-center justify-center rounded-lg hover:-translate-y-0.5 ", }; return ( {children} ); }; import Image from "next/image"; export const BlurImage = (props: React.ComponentProps) => { const [isLoading, setLoading] = useState(true); const { src, width, height, alt, layout, ...rest } = props; return ( setLoading(false)} src={src} width={width} height={height} loading="lazy" decoding="async" blurDataURL={src as string} layout={layout} alt={alt ? alt : "Avatar"} {...rest} /> ); };