Component reference for brunoesparza.dev. Live demos with actual components.
An inline icon + label component. Pass href for a link or onClick for a button — TypeScript enforces you can only use one. Supports hover/focus icon animation, trailing comma, disabled state, custom className, and an optional ariaLabel override.
Horizontal marquee built on GSAP. Each direct child is one slide in a flex row; no default gap—use `className` when you want spacing. A single React Fragment wrapping multiple nodes counts as one slide (class lands on the wrapper only); pass siblings directly when each node should be its own slide. `stripCopies` repeats the whole list in the DOM (default 3, min 1). `repeat`: `"infinite"` or omit for a continuous timeline, or a whole number of full cycles before stop. `speed` defaults to 1; use `reversed` or `paused` for direction or a frozen strip. Rebuilds automatically when the container resizes.
A single marquee item displaying a large uppercase label paired with an icon. Designed to be placed inside DsInfiniteLoop for continuous horizontal scrolling.
Inside DsInfiniteLoop