Custom user interface components
Replace every interface element with React components that match your brand.
Key features
Key features
Key features
Key features
Component overrides
Replace any UI element through simple prop-based component replacement without breaking functionality. Perfect for branded applications that feel completely native.
Component overrides
Replace any UI element through simple prop-based component replacement without breaking functionality. Perfect for branded applications that feel completely native.
Component overrides
Replace any UI element through simple prop-based component replacement without breaking functionality. Perfect for branded applications that feel completely native.
Component overrides
Replace any UI element through simple prop-based component replacement without breaking functionality. Perfect for branded applications that feel completely native.
CSS variable theming
Customize colors, fonts, and spacing through semantic CSS variables, light and dark modes included. Match existing design systems without architectural conflicts.
CSS variable theming
Customize colors, fonts, and spacing through semantic CSS variables, light and dark modes included. Match existing design systems without architectural conflicts.
CSS variable theming
Customize colors, fonts, and spacing through semantic CSS variables, light and dark modes included. Match existing design systems without architectural conflicts.
CSS variable theming
Customize colors, fonts, and spacing through semantic CSS variables, light and dark modes included. Match existing design systems without architectural conflicts.
Menu customization
Extend context menus, toolbars, and panels with custom actions and organize them into logical groups. Ideal for domain-specific workflows and shortcuts.
Menu customization
Extend context menus, toolbars, and panels with custom actions and organize them into logical groups. Ideal for domain-specific workflows and shortcuts.
Menu customization
Extend context menus, toolbars, and panels with custom actions and organize them into logical groups. Ideal for domain-specific workflows and shortcuts.
Menu customization
Extend context menus, toolbars, and panels with custom actions and organize them into logical groups. Ideal for domain-specific workflows and shortcuts.
Style property system
Create shared styling properties that work across multiple shape types for consistent theming and visual unity.
Style property system
Create shared styling properties that work across multiple shape types for consistent theming and visual unity.
Style property system
Create shared styling properties that work across multiple shape types for consistent theming and visual unity.
Style property system
Create shared styling properties that work across multiple shape types for consistent theming and visual unity.
Responsive layouts
Components automatically adapt to different screen sizes with built-in breakpoint handling and mobile-optimized behavior patterns.
Responsive layouts
Components automatically adapt to different screen sizes with built-in breakpoint handling and mobile-optimized behavior patterns.
Responsive layouts
Components automatically adapt to different screen sizes with built-in breakpoint handling and mobile-optimized behavior patterns.
Responsive layouts
Components automatically adapt to different screen sizes with built-in breakpoint handling and mobile-optimized behavior patterns.
Asset replacement
Replace icons, fonts, and visual assets with your branded versions while keeping editor functionality intact.
Asset replacement
Replace icons, fonts, and visual assets with your branded versions while keeping editor functionality intact.
Asset replacement
Replace icons, fonts, and visual assets with your branded versions while keeping editor functionality intact.
Asset replacement
Replace icons, fonts, and visual assets with your branded versions while keeping editor functionality intact.
Customize everything
No black boxes, no compromises. Extend, replace, and control every layer of the canvas.
Customize everything
No black boxes, no compromises. Extend, replace, and control every layer of the canvas.
Customize everything
No black boxes, no compromises. Extend, replace, and control every layer of the canvas.
Customize everything
No black boxes, no compromises. Extend, replace, and control every layer of the canvas.
Engineering details
Engineering details
Engineering details
Engineering details
Component override architecture
The UI system uses a comprehensive interface with over 25 replaceable components covering toolbars, menus, panels, and dialogs. Pass replacement components through props to customize anything from individual buttons to complete interface sections. Components merge with defaults automatically, and setting components to null removes them entirely from the interface.
Component override architecture
The UI system uses a comprehensive interface with over 25 replaceable components covering toolbars, menus, panels, and dialogs. Pass replacement components through props to customize anything from individual buttons to complete interface sections. Components merge with defaults automatically, and setting components to null removes them entirely from the interface.
Component override architecture
The UI system uses a comprehensive interface with over 25 replaceable components covering toolbars, menus, panels, and dialogs. Pass replacement components through props to customize anything from individual buttons to complete interface sections. Components merge with defaults automatically, and setting components to null removes them entirely from the interface.
Component override architecture
The UI system uses a comprehensive interface with over 25 replaceable components covering toolbars, menus, panels, and dialogs. Pass replacement components through props to customize anything from individual buttons to complete interface sections. Components merge with defaults automatically, and setting components to null removes them entirely from the interface.
Container-content separation
Every major UI component follows a consistent pattern where container components handle state and positioning while content components handle rendering. This separation lets you wrap existing content with custom containers or replace content while keeping proven interaction logic. The pattern supports both complete replacement and compositional customization.
Container-content separation
Every major UI component follows a consistent pattern where container components handle state and positioning while content components handle rendering. This separation lets you wrap existing content with custom containers or replace content while keeping proven interaction logic. The pattern supports both complete replacement and compositional customization.
Container-content separation
Every major UI component follows a consistent pattern where container components handle state and positioning while content components handle rendering. This separation lets you wrap existing content with custom containers or replace content while keeping proven interaction logic. The pattern supports both complete replacement and compositional customization.
Container-content separation
Every major UI component follows a consistent pattern where container components handle state and positioning while content components handle rendering. This separation lets you wrap existing content with custom containers or replace content while keeping proven interaction logic. The pattern supports both complete replacement and compositional customization.
Shape utility extensions
Custom shapes inherit from base shape utilities that handle geometry calculations, hit testing, and rendering optimizations automatically. Your custom shape code focuses on unique visual and interactive aspects while the framework handles canvas performance, selection behavior, and collaborative synchronization. The system includes full TypeScript support for type-safe shape definitions.
Shape utility extensions
Custom shapes inherit from base shape utilities that handle geometry calculations, hit testing, and rendering optimizations automatically. Your custom shape code focuses on unique visual and interactive aspects while the framework handles canvas performance, selection behavior, and collaborative synchronization. The system includes full TypeScript support for type-safe shape definitions.
Shape utility extensions
Custom shapes inherit from base shape utilities that handle geometry calculations, hit testing, and rendering optimizations automatically. Your custom shape code focuses on unique visual and interactive aspects while the framework handles canvas performance, selection behavior, and collaborative synchronization. The system includes full TypeScript support for type-safe shape definitions.
Shape utility extensions
Custom shapes inherit from base shape utilities that handle geometry calculations, hit testing, and rendering optimizations automatically. Your custom shape code focuses on unique visual and interactive aspects while the framework handles canvas performance, selection behavior, and collaborative synchronization. The system includes full TypeScript support for type-safe shape definitions.
CSS variable system
The theming system uses semantic CSS variables that map to actual color values for light and dark modes. This two-layer approach lets you customize brand colors while maintaining semantic meaning throughout your interface.
CSS variable system
The theming system uses semantic CSS variables that map to actual color values for light and dark modes. This two-layer approach lets you customize brand colors while maintaining semantic meaning throughout your interface.
CSS variable system
The theming system uses semantic CSS variables that map to actual color values for light and dark modes. This two-layer approach lets you customize brand colors while maintaining semantic meaning throughout your interface.
CSS variable system
The theming system uses semantic CSS variables that map to actual color values for light and dark modes. This two-layer approach lets you customize brand colors while maintaining semantic meaning throughout your interface.
Branching chat starter kit
Build visual conversation interfaces where users create branching chat trees with AI integration. Perfect for interactive chatbots, conversation design tools, and storytelling applications. Create, connect, and organize chat nodes on an infinite canvas with real-time AI responses and context-aware conversation flows.
Agent starter kit
Give your AI agents visual superpowers. Allow them to read drawings, generate diagrams, and interact with canvas elements just like human users. You handle the AI integration, tldraw handles the complex canvas interactions, shape recognition, and visual rendering.
Agent starter kit
Give your AI agents visual superpowers. Allow them to read drawings, generate diagrams, and interact with canvas elements just like human users. You handle the AI integration, tldraw handles the complex canvas interactions, shape recognition, and visual rendering.
Branching chat starter kit
Build visual conversation interfaces where users create branching chat trees with AI integration. Perfect for interactive chatbots, conversation design tools, and storytelling applications. Create, connect, and organize chat nodes on an infinite canvas with real-time AI responses and context-aware conversation flows.
Examples
Examples
Examples
Examples
Full control, simple setup
From menus to theming, adapt every layer of the canvas without breaking flow.
Full control, simple setup
From menus to theming, adapt every layer of the canvas without breaking flow.
Full control, simple setup
From menus to theming, adapt every layer of the canvas without breaking flow.
Full control, simple setup
From menus to theming, adapt every layer of the canvas without breaking flow.
© 2025 tldraw