@bedrock-core/ui

β οΈ Beta Status: Active development. Breaking changes may occur until 1.0.0. Pin exact versions for stability.
This is not ready for production use.
π¦ This is a developer library, not a standalone addon. It does nothing on its own β it is meant to be used by addon developers to build UIs in their own projects.
Custom JSX-driven UI system for Minecraft Bedrock. Components serialize into compact strings decoded by a companion resource pack to render rich layouts beyond native @minecraft/server-ui limitations.
π Full documentation & guides: https://bedrock-core.drav.dev/

πΊ Development Roadmap
β Beta 0.1.0 - Core Foundation
- β Serialization protocol with UTF-8 safety
- β JSX runtime with custom component system
- β
Base components (
Panel,Text,Image,Fragment) - β JSON UI resource pack decoder
- β TypeScript library with proper exports
β Beta 0.2.0 - State & Button
- β
Component:
Buttonwith click events - β State management hooks
- β Event system
β Beta 0.3.0
- No features, just fixes to workflows and automated releases.
β Beta 0.4.0 - Styling
- β Flex, margins, paddings, spacingβ¦
β Beta 0.5.0 - Theming
- β Component theming system β shipped via @bedrock-core/ore-styled
β Beta 0.6.0 - Navigation & Item Rendering
- β Stack-based multi-screen navigation system
- β Screen parameters and typed route state
- β
Navigation hooks:
useNavigation(),useRoute() - β
NavigationContainer,createStackNavigator,Screen - β
ItemRenderercomponent β render item icons inside layouts - β
useSetScreenhook β override screen layout per build - β
Ore-Styled item components:
ItemSlot,ItemContainer,EquipmentSlots
β Beta 0.7.0 - Interactive Components & Custom Natives
- β Custom native component API β register your own native JSON UI components compatible with @bedrock-core/ui
- β
Modal-backed form primitives in
@bedrock-core/ui:Input,Dropdown,Slider(v0) - β
Ore-Styled form fields in
@bedrock-core/ore-styled:Input,Dropdown,Slider - β Scroll fixes β corrected scroll sizing and removed the fixed screen layout
β Beta 0.8.0 - Multi-Scroll & Layout Polish
- β
<Scroll>component β declare up to 4 independent scroll regions per render (pool protocol v0007)
π§ Beta 0.X.0 - Forms (Planned)
- Form submission and validation helpers
π§ Beta 0.X.0 - More core components (Planned)
- Entity render(?)
- Structure render(?)
π Beta 0.X.0 - REDACTED
- ?
- ?
- ?
π Future Considerations
- Compound components (tabs, menus, dialogs)
- Animation support
- Resource pack builder automation
- Reactive data binding (if feasible)
- Export feature for "non-form" JSON UI
- Support for translations params (key:string, with: string[]) in SerializableString
π€ Contributing
Let's talk in Discord https://bedrock-core.drav.dev/discord
For technical documentation and implementation details, see:
- UI Runtime Package - Core framework internals
- Flexbox - Layout engine
- Ore-Styled Components - Optional prebuilt Ore-UI styled components
- Resource Pack - Test addon and reference
- CLI Tool - Project scaffolding
π Resources
What about ore-ui/DDUI?
ore-ui: When it releases in Number.MAX_SAFE_INTEGER years, will consider if it is worth to port for ore-ui.
DDUI: It cannot be made compatible, DDUI does not use JSON UI so we cannot use the same methods.