k8ordo
  • UI
  • Form
  • State
  • Router
  • Static
  • Server
Switch to dark mode
  • Get Started
  • Theming
  • i18n
  • Components
  • Hooks
  • Helpers
  • AI
Open navigation
Styling
  • cn
React
  • mergeRefs
  • mergeProps
  • chain
  • createSafeContext
k8ordo

React libraries that use Baseline features without holding back.

Packages
  • @k8ordo/ui
  • @k8ordo/form
  • @k8ordo/state
  • @k8ordo/router
  • @k8ordo/static
  • @k8ordo/server
UI
  • Get Started
  • Theming
  • i18n
  • Components
  • Hooks
  • Helpers
  • AI Chat
  • Generative UI
  • AI Agents
  • Storybook
Resources
  • GitHub
  • npm

© 2026 k8o — MIT License

Typeset in Noto Sans JP & M PLUS 2

Helpers

Styling
  • cn
React
  • mergeRefs
  • mergeProps
  • chain
  • createSafeContext

mergeProps

A utility that merges multiple props together, properly combining className and event handlers.

Import

Usage

Basic Usage

Both onClick handlers run; classNames merged with cn.

Parameters

base
Type: Record<string, unknown>
Default: -
override
Type: Record<string, unknown>
Default: -
PropTypeDefault
baseRecord<string, unknown>-
overrideRecord<string, unknown>-

Return Value

mergedProps
Type: Omit<A, keyof B> & B
Default: -
PropTypeDefault
mergedPropsOmit<A, keyof B> & B-
import { mergeProps } from '@k8ordo/ui';
const merged = mergeProps(
  { className: 'p-2', onClick: () => log('a') },
  { className: 'text-fg-info', onClick: () => log('b') },
);
// className: 'p-2 text-fg-info' (cn merged)
// onClick: chained — calls 'a' then 'b'