Buttons

<b:button>extends the standard JSF h:button component.

Button Look

Button styles can be applied to anything with the look attribute:

Live preview

b:button look attribute Description
missing Standard gray button with gradient
look="primary" Provides extra visual weight and identifies the primary action in a set of buttons
look="info" Used as an alternative to the default styles
look="success" Indicates a successful or positive action
look="warning" Indicates caution should be taken with this action
look="danger" Indicates a dangerous or potentially negative action
look="link" Alternate dark gray button, not tied to a semantic action or use

Button size

Fancy larger or smaller buttons? Add size="lg" (Large), size="sm" (Small), or size="xs" for additional sizes.

Live preview

Buttons with Icons

Buttons can can have an icon adding the attribute icon (on the left or right, default is left).

You can control the icon position by specifying it in the attribute iconAlign.

The Icon attribute will add a Glyphicon icon (Bootstrap's default), but now you can also use a Font Awesome icon using the iconAwesome attribute instead of icon.

Both icon and iconAwesome attributes, require the icon name as value the icon name without the trailing glyphicon- prefix and fa- prefix respectively.

Live preview

Default(Glyphicons) Font Awesome

Icon modifiers since 0.9.0

Both Fontawesome icons and Glyphicons can be decorated with modifiers:

Live preview

Disabled State

Make buttons look unclickable by fading them by 50%.

Live preview


Button functionality

Just like h:button, <b:button> does GET requests targeting bookmarkable URLs.

If you don't want to trigger a navigation, but simply call an AJAX or JavaScript method, omit the outcome. You can make your intention more explicit by writing outcome="@none".

Special cases: href and targetSince 1.1.0

You can also use <b:button /> with the attributes href and / or target. Both attributes are not supported by traditional HTML buttons. Hence, they are rendered as an HTML anchor tag.

AJAX not supported

AJAX isn't supported because <b:button /> doesn't send POST requests to the server. If you need to communicate with the server (with or without AJAX), use <b:commandButton/> or <b:remoteCommand />.

Live preview

Responsive design since 0.9.0breaking change in 1.1.0

You can use all the attributes controlling the responsive behaviour of <b:column /> also with <b:button />. Note that this is equivalent to putting it into a <b:column />. In particular, the the CSS styles are inside the column div.

Breaking change with version 1.1.0: Until BootsFaces 1.0.2, the generated HTML code didn't comply to the rules of Bootstrap. This approach worked, but the buttons bleed into the padding of their container. In other words, the buttons were to wide. BootsFaces 1.1.0 fixes this. If your CSS rules use the id of the button, you might have to modify the selector of the rule to #id > button.

Live preview

Visibility depending on screen size since 0.8.6/0.9.0

You can play also with col-*-*, visible and hidden attribute, as any bootstrap elements. For example:

Live preview

Visible on >= md:
Visible on <= sm:
Visible on sm...lg:
Visible on xs and md:
Col-md-6, offset 2:

Reference section

Attribute Default value Description
accesskey (none) Access key to transfer focus to the input element.
binding (none) An EL expression referring to a server side UIComponent instance in a backing bean.
col-lg
colLg (alternative writing)
-1 Integer value to specify how many columns to span on large screens (≥1200 pixels wide). The number may optionally be followed by "column" or "columns". Alternative legal values: half, one-third, two-thirds, one-fourth, three-fourths.
col-md
colMd (alternative writing)
-1 Integer value to specify how many columns to span on medium screens (≥992 pixels wide). The number may optionally be followed by "column" or "columns". Alternative legal values: half, one-third, two-thirds, one-fourth, three-fourths.
col-sm
colSm (alternative writing)
-1 Integer value to specify how many columns to span on small screens (≥768p pixels wide). The number may optionally be followed by "column" or "columns". Alternative legal values: half, one-third, two-thirds, one-fourth, three-fourths.
col-xs
colXs (alternative writing)
-1 Integer value to specify how many columns to span on tiny screens (≤ 767 pixels wide). The number may optionally be followed by "column" or "columns". Alternative legal values: half, one-third, two-thirds, one-fourth, three-fourths.
dir (none) Direction indication for text that does not inherit directionality. Legal values: ltr (Default. Left-to-right text direction), rtl (Right-to-left text direction) and auto (let the browser figure out the direction of your alphabet, based on the page content).
disabled false Boolean value to specify if the button is disabled.
dismiss (none) This attribute is mapped to the HTML5 data-dismiss custom attribute.
display block If you use the "visible" attribute, the value of this attribute is added. Legal values: block, inline, inline-block. Default: block.
fragment (none) The fragment that is to be appended to the target URL. The # separator is applied automatically and needs not be included.
hidden (none) This column is hidden on a certain screen size and below. Legal values: lg, md, sm, xs.
href (none) Specifies the URL of the page the link goes to.
icon (none) Button Icon, can be one of the Bootstrap icon names. Alignment can be specified with icon-align attribute.
icon-align
iconAlign (alternative writing)
(none) Alignment can be right or left.
icon-awesome
iconAwesome (alternative writing)
(none) Font Awesome Icon to show in this Button, can be one of the Font Awesome icon names. Alignment can be specified with the icon-align attribute.
icon-flip
iconFlip (alternative writing)
(none) Flip the icon: can be H (horizontal) or V (vertical).
icon-rotate
iconRotate (alternative writing)
(none) Rotate 90 degrees the icon: Can be L,R.
icon-size
iconSize (alternative writing)
(none) Icon Size: legal values are lg, 2x, 3x, 4x, 5x.
icon-spin
iconSpin (alternative writing)
false Boolean value: if true the icon will spin.
id (none) Unique identifier of the component in a namingContainer.
lang (none) Code describing the language used in the generated markup for this component.
large-screen
largeScreen (alternative writing)
-1 Alternative spelling to col-lg. Integer value to specify how many columns to span on large screens (≥1200 pixels wide). The number may optionally be followed by "column" or "columns". Alternative legal values: half, one-third, two-thirds, one-fourth, three-fourths.
look (none) Look of the Button, can be primary, block, info, success, warning, important, error, inverse. If not specified, Standard gray button with gradient is rendered.
medium-screen
mediumScreen (alternative writing)
-1 Alternative spelling to col-md. Integer value to specify how many columns to span on medium screens (≥992 pixels wide). The number may optionally be followed by "column" or "columns". Alternative legal values: half, one-third, two-thirds, one-fourth, three-fourths.
offset (none) Integer value to specify how many columns to offset.
offset-lg
offsetLg (alternative writing)
(none) Integer value to specify how many columns to offset.
offset-md
offsetMd (alternative writing)
(none) Integer value to specify how many columns to offset.
offset-sm
offsetSm (alternative writing)
(none) Integer value to specify how many columns to offset.
offset-xs
offsetXs (alternative writing)
(none) Integer value to specify how many columns to offset.
onblur (none) Client side callback to execute when input element loses focus.
onchange (none) Client side callback to execute when input element loses focus and its value has been modified since gaining focus.
onclick (none) The onclick attribute.
ondblclick (none) Client side callback to execute when input element is double clicked.
onfocus (none) Client side callback to execute when input element receives focus.
onkeydown (none) Client side callback to execute when a key is pressed down over input element.
onkeypress (none) Client side callback to execute when a key is pressed and released over input element.
onkeyup (none) Client side callback to execute when a key is released over input element.
onmousedown (none) Client side callback to execute when a pointer input element is pressed down over input element.
onmousemove (none) Client side callback to execute when a pointer input element is moved within input element.
onmouseout (none) Client side callback to execute when a pointer input element is moved away from input element.
onmouseover (none) Client side callback to execute when a pointer input element is moved onto input element.
onmouseup (none) Client side callback to execute when a pointer input element is released over input element.
onselect (none) Client side callback to execute when text within input element is selected by user.
outcome (none) The outcome to navigate to.
rendered false Boolean value to specify the rendering of the component, when set to false the component will not be rendered.
size (none) Size of the button, can be large ('lg'), small ('sm'), or tiny ('xs'). If not specified, standard size button is rendered.
small-screen
smallScreen (alternative writing)
-1 Alternative spelling to col-sm. Integer value to specify how many columns to span on small screens (≥768p pixels wide). The number may optionally be followed by "column" or "columns". Alternative legal values: half, one-third, two-thirds, one-fourth, three-fourths.
span (none) Integer value to specify how many columns to span on medium screens (≥992 pixels). The number may optionally be followed by "column" or "columns". Alternative legal values: half, one-third, two-thirds, one-fourth, three-fourths.
style (none) Inline style of the input element.
style-class
styleClass (alternative writing)
(none) Style class of this element.
tabindex (none) Position of this element in the tabbing order for the current document. This value must be an integer between 0 and 32767.
target (none) Optional target of the HTML anchor tag that's rendered. E.g. # opens the link in a new tab. This attribute is only evaluated if you provide an href.
tiny-screen
tinyScreen (alternative writing)
-1 Alternative spelling to col-xs. Integer value to specify how many columns to span on tiny screens (≤ 767 pixels wide). The number may optionally be followed by "column" or "columns". Alternative legal values: half, one-third, two-thirds, one-fourth, three-fourths.
title (none) Advisory tooltip information.
tooltip (none) The text of the tooltip.
tooltip-container
tooltipContainer (alternative writing)
body Where is the tooltip div generated? That's primarily a technical value that can be used to fix rendering errors in special cases. Also see data-container in the documentation of Bootstrap. The default value is body.
tooltip-delay
tooltipDelay (alternative writing)
0 The tooltip is shown and hidden with a delay. This value is the delay in milliseconds. Defaults to 0 (no delay).
tooltip-delay-hide
tooltipDelayHide (alternative writing)
0 The tooltip is hidden with a delay. This value is the delay in milliseconds. Defaults to 0 (no delay).
tooltip-delay-show
tooltipDelayShow (alternative writing)
0 The tooltip is shown with a delay. This value is the delay in milliseconds. Defaults to 0 (no delay).
tooltip-position
tooltipPosition (alternative writing)
(none) Where is the tooltip to be displayed? Possible values: "top", "bottom", "right", "left", "auto", "auto top", "auto bottom", "auto right" and "auto left". Default to "bottom".
value (none) Optional button caption.
visible (none) This column is shown on a certain screen size and above. Legal values: lg, md, sm, xs.