| name | library-api-design |
| description | React library public API design principles. Use when designing hooks, components, or utility APIs. |
| allowed-tools | Read, Glob, Grep |
Library API Design Guide
Core Principles
- Simplicity first (Simple > Clever)
- Maintain consistency
- Tree-shaking friendly
- Maximize TypeScript inference
- Ensure SSR safety
Core Patterns
Hook Return Values
function useDebounce<T>(value: T, delay: number): T;
function useToggle(init = false): [boolean, () => void];
function usePagination(): { page; nextPage; prevPage };
Parameters
function useDebounce<T>(
value: T,
delay: number,
options?: {...}
): T
SSR Safety
export function useMediaQuery(query: string): boolean {
const [matches, setMatches] = useState(() => {
if (typeof window === 'undefined') return false;
return window.matchMedia(query).matches;
});
}
Export
export { useDebounce } from './useDebounce';
export default useDebounce;
References