@bedrock-core/ui

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.

@bedrock-core/ui

Logo

⚠️ 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/

Preview


πŸ—Ί 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: Button with 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

βœ… 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
  • βœ… ItemRenderer component β€” render item icons inside layouts
  • βœ… useSetScreen hook β€” 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:

πŸ“– 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.

The @bedrock-core/ui Team

profile avatar
  • 3
    Followers
  • 2
    Projects
  • 267
    Downloads