Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (rotor-framework) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Rotor Framework
Rotor is a modular, ViewModel-first UI framework for Roku applications built with BrighterScript and SceneGraph. It is lightweight and designed to intuitively speed up development time while simplifying both the implementation and long-term maintenance process. It features a rich ViewBuilder system and a Roku-friendly implementation of the MVI (Model-View-Intent) design pattern. It helps developers structure large-scale apps with reusable components, state-driven logic, and optimized rendering.
🚀 Key Features
- ViewBuilder system: Declarative and extensible view construction with a flexible, code-based template system, automatic full lifecycle management, and a virtual node tree abstraction.
- Roku-friendly MVI design pattern: Predictable state, clear separation of concerns, and cross-thread compatibility.
- Component-based UI: Isolated, reusable UI widgets and view models.
- i18n support: Locale-aware interface with flexible language resource injection.
- Integrated Animate Library
📦 Installation
Prerequisites
Rotor Framework requires BrighterScript v1. Install the latest version:
npm install --save-dev brighterscript@next @rokucommunity/bslint@nextInstall Rotor Framework
Manual installation:
- Download the latest
rotor-framework.zipfrom GitHub Releases - Extract the ZIP into your project's
source/directory (this will create arotor-framework/folder) - Import Rotor in your main file:
ROPM install:
- Note: You must install without prefix by adding this to
package.json - Don't worry everything is in the
Rotornamespace by default, so this is the only name reserved by the framework.
ropm install rotor-framework"ropm": {
"noprefix": ["rotor-framework"]
}⚡ Quick usage
import "pkg:/source/RotorFramework.bs"
frameworkInstance = new Rotor.Framework()
frameworkInstance.render([
{
id: "helloLabel", ' optional
nodeType: "Label",
fields: {
text: "Hello World!",
color: "#CCCCCC"
}
}
])Token-efficient documentation for AI
You can find 🌱 symbols in all documentation pages. These symbols link to AI-optimized summaries of the respective documentation.
📖 Read more about token savings
📚 Learn More
Framework Core
- Framework Initialization - Configuration, task synchronization
ViewBuilder Reference
- ViewBuilder Overview - High-level architecture and core concepts
- Widget Reference - Complete Widget properties, methods, and usage patterns
- ViewModel Reference - Complete ViewModel structure, lifecycle, and state management
ViewBuilder Plugins
- ViewBuilder Fields Plugin - Field management and binding
- ViewBuilder FontStyle Plugin - Typography and styling
- ViewBuilder Observer Plugin - State observation patterns
- ViewBuilder Focus Plugin - Focus management system
MVI Documentation
- Cross-Thread MVI design pattern - State management across threads
i18N Documentation
- Internationalization support - Locale-aware interface implementation
🔧 Requirements
- Roku SceneGraph (firmware 10.5+ recommended)
- BrighterScript V1
📄 License
Rotor is MIT licensed. See LICENSE.md file for details.
© 2025 Rotor Molnar Balazs