54 componentsFree and open source

Copy.Paste.
Repeat.

Animated React components you own. Add one with a single command, in TypeScript or JavaScript, with Tailwind or plain CSS.

Browse components
$npx @hritik-sharmaa/repeat-ui add

Live

Made to be seen moving.

Every tile is the real component, running right here. Click through for the code.

Install

One command. Your code.

  1. 01

    Pick

    Find a component, then choose TypeScript or JavaScript, Tailwind or plain CSS.

  2. 02

    Add

    Run our CLI, or the shadcn CLI. The packages it needs install for you.

  3. 03

    Own it

    The files land in your repo. No runtime package, nothing to update, change anything.

~/my-app

$

import type { ButtonHTMLAttributes } from "react";

// Shared by every Repeat UI button, so they line up side by side.
const SIZES = {
  sm: { height: 36, paddingInline: 16, fontSize: 14 },
  md: { height: 44, paddingInline: 22, fontSize: 15 },
  lg: { height: 52, paddingInline: 28, fontSize: 17 },
};

export interface SimpleProps extends ButtonHTMLAttributes<HTMLButtonElement> {
  size?: keyof typeof SIZES;
  color?: string;
  textColor?: string;
  radius?: number;
}

const Simple = ({
  children,
  size = "md",
  color = "#ffffff",
  textColor = "#0a0a0a",
  radius = 10,
  className = "",
  style,
  ...rest
}: SimpleProps) => {
  return (
    <button
      type="button"
      className={`inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap border border-black/10 font-semibold leading-none shadow-sm transition duration-200 hover:-translate-y-0.5 hover:shadow-lg active:translate-y-0 active:shadow-sm disabled:pointer-events-none disabled:opacity-50 ${className}`}
      style={{ ...SIZES[size], background: color, color: textColor, borderRadius: radius, ...style }}
      {...rest}>
      {children}
    </button>
  );
};

export default Simple;

Flavors

Four flavors. One component.

Every component ships in TypeScript and JavaScript, styled with Tailwind or plain CSS. Flip the switches: this is the real code you get.

Motion built in

Every component moves. Hover, press, type, drag, loop.

Works with shadcn

Add any component with npx shadcn add, into the same folder.

No lock-in

No runtime package. The code is copied into your repo, yours to change.

Free and open source

MIT licensed. Every component is free, and contributions are welcome.

Catalog

Browse by category.

See everything

Ship it. Then repeat.

Start with any component. Every one of them is free.