The best way to build your website

Kibo UI is a custom registry of composable, accessible and open source components designed for use with shadcn/ui.

Built with

Reactshadcn/uiTypeScriptTailwind CSSLucideRadix UI

Functional and fully composable

Kibo UI components are designed to be fully composable so you can build, customize and extend them to your own needs.

Explore components

Color Picker

Allows users to select a color. Modeled after the color picker in Figma.

%

Image Zoom

Image zoom is a component that allows you to zoom in on an image.

Placeholder image

QR Code

QR Code is a component that generates a QR code from a string.

Code Block

Provides syntax highlighting, line numbers, and copy to clipboard functionality for code blocks.

ReactMyComponent.jsx
function MyComponent(props) {  return (    <div>      <h1>Hello, {props.name}!</h1>      <p>This is an example React component.</p>    </div>  );}

Dropzone

Allows users to drag-and-drop files into a container to upload or process them.

Marquee

Marquees are a great way to show a list of items in a horizontal scrolling motion.

Building blocks for interfaces

Get your apps and websites up and running quickly with precomposed and animated blocks.

Explore blocks

AI Chatbot

Use Kibo UI components to create a fully featured AI chatbot interface.

Can you explain how to use React hooks effectively?

Ha

React Hooks Best Practices

React hooks are a powerful feature that let you use state and other React features without writing classes. Here are some tips for using them effectively:

Rules of Hooks

  1. Only call hooks at the top level of your component or custom hooks
  2. Don't call hooks inside loops, conditions, or nested functions

Common Hooks

  • useState: For local component state
  • useEffect: For side effects like data fetching
  • useContext: For consuming context
  • useReducer: For complex state logic
  • useCallback: For memoizing functions
  • useMemo: For memoizing values

Example of useState and useEffect

JavaScriptindex.js
function ProfilePage({ userId }) {  const [user, setUser] = useState(null);    useEffect(() => {    // This runs after render and when userId changes    fetchUser(userId).then(userData => {      setUser(userData);    });  }, [userId]);    return user ? <Profile user={user} /> : <Loading />;}

Would you like me to explain any specific hook in more detail?

Op

Yes, could you explain useCallback and useMemo in more detail? When should I use one over the other?

Ha

useCallback vs useMemo

Both hooks help with performance optimization, but they serve different purposes:

useCallback

JavaScriptindex.js
useCallback
memoizes functions to prevent unnecessary re-renders of child components that receive functions as props.

JavaScriptindex.js
// Without useCallback - a new function is created on every renderconst handleClick = () => {  console.log(count);};// With useCallback - the function is only recreated when dependencies changeconst handleClick = useCallback(() => {  console.log(count);}, [count]);

useMemo

JavaScriptindex.js
useMemo
memoizes values to avoid expensive recalculations on every render.

JavaScriptindex.js
// Without useMemo - expensive calculation runs on every renderconst sortedList = expensiveSort(items);// With useMemo - calculation only runs when items changeconst sortedList = useMemo(() => expensiveSort(items), [items]);

When to use which?

  • Use useCallback when:

    • Passing callbacks to optimized child components that rely on reference equality
    • Working with event handlers that you pass to child components
  • Use useMemo when:

    • You have computationally expensive calculations
    • You want to avoid recreating objects that are used as dependencies for other hooks

Performance Note

Don't overuse these hooks! They come with their own overhead. Only use them when you have identified a genuine performance issue.

Op

Collaborative Canvas

Create an online, realtime collaborative canvas with Kibo UI components.

Ha
sh
Le
Hayden BleaselHayden Bleasel
shadcnshadcn
Can we adjust the color?
Lee RobinsonLee Robinson

Pricing

A pricing page with a list of plans and features.

Simple, transparent pricing

Managing a business is hard enough, so why not make your life easier? Our pricing plans are simple, transparent and scale with you.

Hobby

The perfect starting place for your web app or personal project.

Free forever.
50 API calls / month
60 second checks
Single-user account
5 monitors
Basic email support
Popular
Pro

Everything you need to build and scale your business.

$90/month, billed monthly.
Unlimited API calls
30 second checks
Multi-user account
10 monitors
Priority email support
Enterprise

Critical security, performance, observability and support.

Get in touch for pricing.
You can DDOS our API.
Nano-second checks.
Invite your extended family.
Unlimited monitors.
We'll sit on your desk.

What people are saying

We're proud to have a community of users who love using Kibo UI.

Обратил свое внимание на Kibo UI это база более сложных компонентов, которая расширяет идеи shadcn/ui Всякие kanban, gant, редактор и прочее Выглядит интересно, но на первый взгляд сыровато

Image
Reply

Get started with Kibo UI

Install your first component in seconds with the Kibo UI or shadcn CLI.

npx kibo-ui@latest add gantt