Todos os componentes

About Mission

About Mission é um componente para React e Tailwind CSS, da biblioteca UI Layouts, com licença MIT. Copia e cola no teu projeto.

UI Layouts MIT other

O que é

About Mission é um componente para React e Tailwind CSS, da biblioteca UI Layouts, com licença MIT. Copia e cola no teu projeto.

Como usar

Abre o componente no catálogo, carrega em copiar, e cola no teu projeto. O prompt copiado leva o código e as regras para o teu agente o reproduzir sem alterar nada.

Abrir no catálogo

Cinco cópias grátis por mês. Sem cartão.

Precisa de

npm i motion

Licença

Este componente vem de UI Layouts e é redistribuído sob a licença MIT, que permite uso comercial. O aviso de copyright viaja com o código.

About Mission

../../packages/blocks/src/about-section/about-mission.tsx
'use client'
import { Button } from '@repo/shadcn'
import { ChevronDown, Atom, Clapperboard, Columns3 } from 'lucide-react'

export const AboutMission = () => {
  return (
    <section className="min-h-screen overflow-hidden bg-linear-to-br dark:from-neutral-800 from-slate-50 to-blue-50 dark:to-neutral-950">
      <div className="py-20 relative flex flex-col justify-center items-center gap-y-8 z-10">
        <span>ABOUT US</span>
        <span className="text-6xl max-w-3xl mx-auto text-center font-medium">
          We are driven by the vision of sustainable future
        </span>
        <Button className="flex gap-2 items-center border-2 backdrop-blur-md border-black rounded-full p-2 px-3 cursor-pointer">
          Scroll Down <ChevronDown />
        </Button>
        <div className="absolute bottom-0 left-0 right-0 top-0 z-0 pointer-events-none bg-[linear-gradient(to_right,#4f4f4f2e_1px,transparent_1px),linear-gradient(to_bottom,#4f4f4f2e_1px,transparent_1px)] bg-size-[48px_50px] mask-[radial-gradient(ellipse_25%_30%_at_50%_50%,#000_65%,transparent_110%)]"></div>
      </div>

      <div className="p-8 lg:p-12">
        <div className="max-w-5xl mx-auto md:flex text-left gap-10">
          <h2 className="text-3xl lg:text-4xl lg:w-72 w-52 uppercase font-medium mb-8 shrink-0">
            Our Mission
          </h2>
          <div className="">
            <p className="text-xl dark:text-neutral-400 text-neutral-600 mb-12 leading-relaxed">
              We believe technology should empower everyone to create, innovate,
              and solve meaningful problems. Our mission is to democratize
              access to powerful tools that were once only available to large
              corporations.
            </p>
            <div className="grid md:grid-cols-3 gap-8">
              <div className="text-center">
                <div className="w-16 h-16 dark:bg-blue-950/50 bg-blue-100 rounded-full flex items-center justify-center mx-auto mb-4">
                  <Atom className="text-blue-500" />
                </div>
                <h3 className="text-xl font-semibold dark:text-neutral-200 text-neutral-900 mb-2">
                  Innovation
                </h3>
                <p className="text-neutral-600">
                  Pushing boundaries with cutting-edge technology
                </p>
              </div>
              <div className="text-center">
                <div className="w-16 h-16 dark:bg-green-950/50 bg-green-100 rounded-full flex items-center justify-center mx-auto mb-4">
                  <Columns3 className="text-green-500" />
                </div>
                <h3 className="text-xl font-semibold dark:text-neutral-200 text-neutral-900 mb-2">
                  Accessibility
                </h3>
                <p className="text-neutral-600">
                  Making powerful tools available to everyone
                </p>
              </div>
              <div className="text-center">
                <div className="w-16 h-16 dark:bg-purple-950/50 bg-purple-100 rounded-full flex items-center justify-center mx-auto mb-4">
                  <Clapperboard className="text-purple-500" />
                </div>
                <h3 className="text-xl font-semibold dark:text-neutral-200 text-neutral-900 mb-2">
                  Impact
                </h3>
                <p className="text-neutral-600">
                  Creating meaningful change in the world
                </p>
              </div>
            </div>
          </div>
        </div>
      </div>
    </section>
  )
}
./components/ui/timeline-animation.tsx
import type { Variants } from 'motion/react';
import { type HTMLMotionProps, motion, useInView } from 'motion/react';
import type React from 'react';

type TimelineContentProps<T extends keyof HTMLElementTagNameMap> = {
  children?: React.ReactNode;
  animationNum: number;
  className?: string;
  timelineRef: React.RefObject<HTMLElement | null>;
  as?: T;
  customVariants?: Variants;
  once?: boolean;
} & HTMLMotionProps<T>;

export const TimelineAnimation = <T extends keyof HTMLElementTagNameMap = 'div'>({
  children,
  animationNum,
  timelineRef,
  className,
  as,
  customVariants,
  once = true,
  ...props
}: TimelineContentProps<T>) => {
  const defaultSequenceVariants = {
    visible: (i: number) => ({
      filter: 'blur(0px)',
      y: 0,
      opacity: 1,
      transition: {
        delay: i * 0.5,
        duration: 0.5,
      },
    }),
    hidden: {
      filter: 'blur(20px)',
      y: 0,
      opacity: 0,
    },
  };

  const sequenceVariants = customVariants || defaultSequenceVariants;

  const isInView = useInView(timelineRef, {
    once,
  });

  const MotionComponent = motion[as || 'div'] as React.ElementType;

  return (
    <MotionComponent
      initial='hidden'
      animate={isInView ? 'visible' : 'hidden'}
      custom={animationNum}
      variants={sequenceVariants}
      className={className}
      {...props}
    >
      {children}
    </MotionComponent>
  );
};

Componentes parecidos