Brick is a widget library on top of Bloc.
Lists
BrGlamorousComponents subclass: #BrGlamorousComponentsLists
instanceVariableNames: ''
classVariableNames: ''
package: 'Brick-Examples-! Glamorous components'
Editors
BrGlamorousComponents subclass: #BrGlamorousComponentsEditors
instanceVariableNames: ''
classVariableNames: ''
package: 'Brick-Examples-! Glamorous components'
Buttons
BrGlamorousComponents subclass: #BrGlamorousComponentsButtons
instanceVariableNames: ''
classVariableNames: ''
package: 'Brick-Examples-! Glamorous components'
Pager
BrGlamorousComponents subclass: #BrGlamorousComponentsPagers
instanceVariableNames: ''
classVariableNames: ''
package: 'Brick-Examples-! Glamorous components'
Tabs
BrGlamorousComponents subclass: #BrGlamorousComponentsTabs
instanceVariableNames: ''
classVariableNames: ''
package: 'Brick-Examples-! Glamorous components'
Accordions
BrGlamorousComponents subclass: #BrGlamorousComponentsAccordions
instanceVariableNames: ''
classVariableNames: ''
package: 'Brick-Examples-! Glamorous components'
Breadcrumb
BrGlamorousComponents subclass: #BrGlamorousComponentsBreadcrumbs
instanceVariableNames: ''
classVariableNames: ''
package: 'Brick-Examples-! Glamorous components'
Checkboxes
BrGlamorousComponents subclass: #BrGlamorousComponentsCheckboxes
instanceVariableNames: ''
classVariableNames: ''
package: 'Brick-Examples-! Glamorous components'
Dropdowns
BrGlamorousComponents subclass: #BrGlamorousComponentsDropdowns
instanceVariableNames: ''
classVariableNames: ''
package: 'Brick-Examples-! Glamorous components'
New Brick widgets are typically created by composing existing widgets.
There are several architectural features of Brick that facilitate flexibility and reuse:
Stencils (subclass of BrStencil
BlStencil subclass: #BrStencil
instanceVariableNames: ''
classVariableNames: ''
package: 'Bloc-Core-Stencil'
) are used to create widgets when lazy creation is required, or when the widget to be created depends on the data being displayed.
Looks (subclass of BrLook
BrAptitude subclass: #BrLook
instanceVariableNames: ''
classVariableNames: ''
package: 'Brick-Core-Core'
) provide the ability to modify the element to which they are attached. A typical example is the look of a BrButton
BlElement subclass: #BrButton
uses: TBrEnableable + TBrLayoutAlignable + TBrLayoutResizable + TBrSizeAdjustable
instanceVariableNames: 'labelModel iconModel interactiveModel'
classVariableNames: ''
package: 'Brick-Button - UI'
, whether it has a border or not, a label or not, an icon or not, etc. Looks should only be created when the underlying widget is used in many places, e.g. buttons, and should not affect the API of the widget.
View Models are used to maintain the state of a Brick widget, e.g. pressed, focused, hovered, and, like Looks, can be composed by adding multiple models together. Like Looks, models also receive events.
Functionality that is related, but not directly part of Brick:
Brick is built on top of Bloc elements. If you feel you need to create an element, ask first, you probably don't.
Phlow views are built on top of Brick and are used to compose views of a particular object. Their reuse is typically at the application level where the application interface may be composed of multiple Phlow views.