Fullscreen uss-na Alert Github @Xiphoseer

# Roadmap & Manifesto

HTMLCARS is continually evolving. This page lists some of the ideas and planned features for this library.

# The LCARS Manifesto

  1. LCARS is the user-interface of all Spaceships of the United Federation of Planets.
  2. LCARS is fundamentally a means of getting and setting the state of a complex system that interfaces with the real world.
  3. LCARS output is highly domain-specific. Its general chrome is consistent and minimalistic. Its data presentation is interactive, tailored to the task and mostly visual.
  4. LCARS input is versatile and precise. Commands are sent by touch or speech. Modes like yellow alert set defaults for the whole system. Procedures combine actions into single parameterized commands.
  5. LCARS state is structured and regular. Scalar or boolean values combined in structs and lists are distributed consistently across the system.
  6. LCARS interfaces are non-destructive and adaptable. Any form of data may be stored, analyzed or used to drive automated systems. Reusing data from an interface somewhere else in the system is explicitly encouraged.
  7. LCARS is dynamic. It will work reliably as configured but will also suggest new views and configurations based on usage patterns and processed data.

# High-Level Goals

  • Implement a comprehensive library of components/widgets
  • Implement an algorithm that places widgets based on input and usage data
  • Adapt this into a proper ES Module / Vue library

# Components

Components are the fundamental building block of an LCARS interface. They may be grouped together to form a single application, but can also be split apart to appear in a different part of the interface.

Actions in particular can be created and moved around freely, depending on how frequently they are used. This is vital for a starship control, where some actions need to exist for different people on the bridge, composed into their usual task interface.

Much like GTK+ Widgets and HTML elements, these components have a minimal and optimal size and aspect ratio. Based on these values, an algorithm or machine learning model places the components onto the available screen.

  • Clock
  • Stardate Display
  • Status Indicator
  • Terminal Emulator
  • Numpad
  • Keyboard
  • Action Group
  • Navigation Wheel
  • Picture Frame
  • Settings Panel