Raxol.UI.Layout.Responsive (Raxol v2.0.1)

View Source

Responsive layout system with breakpoint support for terminal UI components.

Provides breakpoint-based responsive design with container queries, responsive typography, and adaptive spacing. Supports terminal size detection and adaptation.

Breakpoints

Default breakpoints based on terminal columns: :xs (0-39), :sm (40-79), :md (80-119), :lg (120-159), :xl (160+).

Usage

%{
  type: :responsive,
  attrs: %{
    breakpoints: %{
      xs: %{flex_direction: :column, gap: 5},
      md: %{flex_direction: :row, gap: 15}
    }
  },
  children: children
}

Summary

Functions

Applies responsive typography scaling.

Gets the current breakpoint based on available space.

Creates responsive spacing based on breakpoint.

Measures responsive containers.

Processes a responsive container, adapting layout based on available space.

Processes a responsive grid with column breakpoints.

Functions

apply_responsive_typography(attrs, breakpoint)

Applies responsive typography scaling.

get_current_breakpoint(space, attrs \\ %{})

Gets the current breakpoint based on available space.

get_responsive_spacing(spacing_config, breakpoint)

Creates responsive spacing based on breakpoint.

measure_responsive(responsive, available_space)

Measures responsive containers.

process_responsive(responsive, space, acc)

Processes a responsive container, adapting layout based on available space.

process_responsive_grid(grid, space, acc)

Processes a responsive grid with column breakpoints.