package mosaic

  1. Overview
  2. Docs
Terminal UI framework for OCaml with The Elm Architecture

Install

dune-project
 Dependency

Authors

Maintainers

Sources

mosaic-0.1.0.tbz
sha256=9e4e90d17f9b2af1b07071fe425bc2c519c849c4f1d1ab73cde512be2d874849
sha512=06e9c4a741590942e81a27738d0b5c0413fafec8cf3b7dae047ad69f155e7b718aa4223818dc161b7d028efffcfd3365905e264d6fd31d453910ddfa91dcf9b9

doc/mosaic.ui/Mosaic_ui/Spinner/index.html

Module Mosaic_ui.Spinner

Animated loading indicator with preset frame sets.

Animated spinner cycling through configurable frame sets.

A spinner cycles through an array of text frames at a fixed interval, rendering the current frame with a configurable foreground color. Animation advances on each tick: elapsed time accumulates and the frame index advances by one or more steps when the interval threshold is reached.

Several built-in frame sets are provided (dots, line, arc, etc.). Custom frame sets can be constructed directly as frame_set records.

Types

type t

The type for animated spinner widgets.

type frame_set = {
  1. frames : string array;
    (*

    Frames to cycle through.

    *)
  2. interval : float;
    (*

    Time between frames, in milliseconds.

    *)
}

The type for animation frame sets. The spinner advances one frame each time interval milliseconds have elapsed.

Built-in frame sets

val dots : frame_set

Braille dot pattern (10 frames, 80 ms).

val dots2 : frame_set

Braille block pattern (8 frames, 80 ms).

val line : frame_set

ASCII line rotation (4 frames, 130 ms).

val arc : frame_set

Quarter-circle arc (6 frames, 100 ms).

val bounce : frame_set

Braille bounce (4 frames, 120 ms).

val circle : frame_set

Circle animation (3 frames, 120 ms).

val default_frame_set : frame_set

default_frame_set is dots.

Constructors

val create : parent:Renderable.t -> ?index:int -> ?id:string -> ?style:Toffee.Style.t -> ?visible:bool -> ?z_index:int -> ?opacity:float -> ?frame_set:frame_set -> ?color:Ansi.Color.t -> unit -> t

create ~parent () is a spinner attached to parent, with:

val node : t -> Renderable.t

node t is the underlying Renderable.t of t.

Properties

module Props : sig ... end
val apply_props : t -> Props.t -> unit

apply_props t props replaces all properties of t with props. Wraps the frame index when the frame set changes. Always triggers a re-render.

Accessors

val frame_index : t -> int

frame_index t is the current zero-based frame index of t.

val elapsed : t -> float

elapsed t is the accumulated time in milliseconds since the last frame advance of t.

Setters

val set_frame_set : t -> frame_set -> unit

set_frame_set t fs changes the frame set of t to fs. Resets elapsed time to 0. and wraps the frame index to the new frame count.

val set_color : t -> Ansi.Color.t -> unit

set_color t c changes the foreground color of t to c. Re-renders only if c differs from the current color.

Formatting and inspecting

val pp : Format.formatter -> t -> unit

pp ppf t formats t on ppf for debugging.