Reusable built-in components for Breeze views.
Import this module in your view to use the provided components:
defmodule MyView do
use Breeze.View
import Breeze.Blocks
...
endBuilt-in component previews
See the Built-in Components page for rendered previews and example source for each component.
Class merging
All components expose a class attribute (and where applicable an
item_class attribute) that are merged with the component's defaults using
merge_class/2. Style tokens are grouped by their property key, everything
before the last - segment, so an override of "width-32" replaces the
default "width-24" while leaving other properties intact (including focus:
prefixes).
Summary
Functions
Merge two class strings, with override taking precedence over default for
matching style properties.
Alias for merge_class/2, retained for style-string compatibility.
Functions
Attributes
id(:string) - Defaults tonil.focusable(:boolean) - Defaults totrue.class(:string) - Defaults tonil.style(:any) - Defaults tonil.- Global attributes are accepted.
Slots
inner_block(required)
Attributes
id(:string) (required)selected(:string) - Defaults tonil.class(:string) - Defaults tonil.style(:any) - Defaults tonil.menu_class(:string) - Defaults tonil.menu_style(:any) - Defaults tonil.item_class(:string) - Defaults tonil.item_style(:any) - Defaults tonil.- Global attributes are accepted.
Slots
item- Accepts attributes:value(:string) (required)
Attributes
id(:string) - Defaults tonil.flash(:any) - Defaults to[].variant(:string) - Defaults to"default".placement(:string) - Defaults to"bottom-right".width(:integer) - Defaults to40.offset(:integer) - Defaults to1.gap(:integer) - Defaults to1.layer(:integer) - Defaults to60.class(:string) - Defaults tonil.style(:any) - Defaults tonil.- Global attributes are accepted.
Attributes
id(:string) (required)class(:string) - Defaults tonil.style(:any) - Defaults tonil.input-value(:string) - Defaults to"".input-cursor(:any) - Defaults tonil.input-placeholder(:string) - Defaults tonil.- Global attributes are accepted.
Slots
inner_block
Attributes
keybindings(:list) - Defaults to[].class(:string) - Defaults tonil.
Attributes
id(:string) (required)loop(:boolean) - Defaults totrue.variant(:string) - Defaults tonil.virtual(:boolean) - Defaults tofalse.virtual_overscan(:integer) - Defaults to24.offset(:integer) - Defaults tonil.virtual_window(:integer) - Defaults tonil.selected-indicator(:string) - Defaults to">".class(:string) - Defaults tonil.style(:any) - Defaults tonil.item_class(:string) - Defaults tonil.item_style(:any) - Defaults tonil.- Global attributes are accepted.
Slots
item- Accepts attributes:value(:string) (required)
Attributes
id(:string) (required)content(:string) (required)width(:integer) (required)class(:string) - Defaults tonil.style(:any) - Defaults tonil.
Merge two class strings, with override taking precedence over default for
matching style properties.
The property key for each style token is everything before its final -
segment, so tokens that share the same prefix override one another:
iex> Breeze.Blocks.merge_class("border width-24 height-8", "width-32")
"border width-32 height-8"
iex> Breeze.Blocks.merge_class("overflow-scroll", "overflow-hidden")
"overflow-hidden"Tokens from override that do not match any default key are appended:
iex> Breeze.Blocks.merge_class("border width-24", "bg-4")
"border width-24 bg-4"nil or an empty string override returns the default unchanged.
Alias for merge_class/2, retained for style-string compatibility.
Attributes
id(:string) (required)width(:integer) - Defaults tonil.height(:integer) - Defaults tonil.inset(:integer) - Defaults tonil.inset_x(:integer) - Defaults tonil.inset_y(:integer) - Defaults tonil.dim(:boolean) - Defaults tofalse.class(:string) - Defaults tonil.style(:any) - Defaults tonil.frame_class(:string) - Defaults tonil.frame_style(:any) - Defaults tonil.- Global attributes are accepted.
Slots
titleinner_block
Attributes
id(:string) - Defaults tonil.width(:integer) - Defaults tonil.height(:integer) - Defaults tonil.scroll(:boolean) - Defaults tofalse.class(:string) - Defaults tonil.style(:any) - Defaults tonil.title_class(:string) - Defaults tonil.title_style(:any) - Defaults tonil.scroll_class(:string) - Defaults tonil.scroll_style(:any) - Defaults tonil.focus_within(:boolean) - Defaults totrue.- Global attributes are accepted.
Slots
titleinner_block
Attributes
id(:string) (required)class(:string) - Defaults tonil.style(:any) - Defaults tonil.- Global attributes are accepted.
Slots
inner_block(required)
Attributes
id(:string) (required)rows(:list) - Defaults to[].selected(:any) - Defaults tonil.row_value(:any) - Defaults to:id.loop(:boolean) - Defaults totrue.scroll_padding(:integer) - Defaults to0.virtual(:boolean) - Defaults tofalse.virtual_overscan(:integer) - Defaults to24.offset(:integer) - Defaults tonil.virtual_window(:integer) - Defaults tonil.empty(:string) - Defaults to"No rows".class(:string) - Defaults tonil.- Global attributes are accepted.
Slots
col- Accepts attributes:label(:string) - Defaults tonil.width(:any) - Defaults tonil.align(:any) - Defaults to"left".class(:string) - Defaults tonil.style(:any) - Defaults tonil.
Attributes
id(:string) (required)selected(:string) - Defaults tonil.variant(:string) - Defaults to"default".highlight(:string) - Defaults to"primary".panel(:boolean) - Defaults totrue.class(:string) - Defaults tonil.style(:any) - Defaults tonil.item_class(:string) - Defaults tonil.item_style(:any) - Defaults tonil.- Global attributes are accepted.
Slots
tab- Accepts attributes:value(:string) (required)label(:string) (required)highlight(:string) - Defaults tonil.
Attributes
id(:string) (required)class(:string) - Defaults tonil.style(:any) - Defaults tonil.textarea-value(:string) - Defaults to"".textarea-cursor(:any) - Defaults tonil.textarea-placeholder(:string) - Defaults tonil.textarea-prefix(:string) - Defaults tonil.textarea-submit-on-enter(:boolean) - Defaults tofalse.disabled(:boolean) - Defaults tofalse.- Global attributes are accepted.
Attributes
id(:string) (required)nodes(:list) - Defaults to[].selected(:any) - Defaults tonil.expanded(:any) - Defaults tonil.default_expanded(:any) - Defaults to[].loop(:boolean) - Defaults totrue.virtual(:boolean) - Defaults tofalse.virtual_overscan(:integer) - Defaults to24.offset(:integer) - Defaults tonil.virtual_window(:integer) - Defaults tonil.collapsed_prefix(:string) - Defaults to">".expanded_prefix(:string) - Defaults to"⌄".class(:string) - Defaults tonil.style(:any) - Defaults tonil.- Global attributes are accepted.
Slots
itemempty