Class WBootstrap5Theme

public class WBootstrap5Theme extends WTheme
Theme based on the Bootstrap 5 CSS framework.

This theme implements support for building a JWt web application that uses Bootstrap 5 as a theme for its (layout and) styling.

Using this theme, various widgets provided by the library are rendered using markup that is compatible with Bootstrap 5. The bootstrap theme is also extended with a proper (compatible) styling of widgets for which bootstrap does not provide styling (table views, tree views, sliders, etc...).

By default, the theme will use CSS and JavaScript resources that are shipped together with the JWt distribution, but you can replace the CSS with custom-built CSS by reimplementing getStyleSheets().

Although this theme styles individual widgets correctly, for your web application's layout you are recommended to use WTemplate in conjunction with Bootstrap's CSS classes. For this we refer to Bootstrap's documentation at

Custom Sass files can be used to make your own derived theme.

If JWt is installed into PREFIX (and the CMake option INSTALL_THEMES is set to ON), then you can find the source files in PREFIX/share/Wt/themes/bootstrap/5.

Apart from the variables that Bootstrap defines, JWt also provides variables, defined in wt/_variables.scss. All of JWt's variables start with a wt- prefix.

Refer to the example in examples/custom-bs-theme for more information.

See Also:
  • Constructor Details

    • WBootstrap5Theme

      public WBootstrap5Theme()
  • Method Details

    • init

      public void init(WApplication app)
      Description copied from class: WTheme
      Called when the theme is assigned to a WApplication.

      This allows the theme to do things like load resource bundles when it is added to an application using WApplication#setTheme().

      The default implementation does nothing.

      init in class WTheme
    • getName

      public String getName()
      Description copied from class: WTheme
      Returns a theme name.

      Returns a unique name for the theme. This name is used by the default implementation of getResourcesUrl() to compute a location for the theme's resources.

      Specified by:
      getName in class WTheme
    • getResourcesUrl

      public String getResourcesUrl()
      Description copied from class: WTheme
      Returns the URL where theme-related resources are stored.

      The default implementation considers a folder within JWt's resource directory, based on the theme getName().

      getResourcesUrl in class WTheme
    • getStyleSheets

      public List<WLinkedCssStyleSheet> getStyleSheets()
      Description copied from class: WTheme
      Returns a vector with stylesheets for the theme.

      This should return a vector with stylesheets that implement the theme. This list may be tailored to the current user agent, which is read from the application environment.

      Specified by:
      getStyleSheets in class WTheme
    • apply

      public void apply(WWidget widget, WWidget child, int widgetRole)
      Description copied from class: WTheme
      Applies the theme to a child of a composite widget.

      The widgetRole indicates the role that child has within the implementation of the widget.

      Specified by:
      apply in class WTheme
    • apply

      public void apply(WWidget widget, DomElement element, int elementRole)
      Description copied from class: WTheme
      Applies the theme to a DOM element that renders a widget.

      The element is a rendered representation of the widget, and may be further customized to reflect the theme.

      Specified by:
      apply in class WTheme
    • getDisabledClass

      public String getDisabledClass()
      Description copied from class: WTheme
      Returns a generic CSS class name for a disabled element.
      Specified by:
      getDisabledClass in class WTheme
    • getActiveClass

      public String getActiveClass()
      Description copied from class: WTheme
      Returns a generic CSS class name for an active element.
      Specified by:
      getActiveClass in class WTheme
    • utilityCssClass

      public String utilityCssClass(int utilityCssClassRole)
      Description copied from class: WTheme
      Returns a generic CSS class name for the chosen role.
      Specified by:
      utilityCssClass in class WTheme
    • isCanStyleAnchorAsButton

      public boolean isCanStyleAnchorAsButton()
      Description copied from class: WTheme
      Returns whether the theme allows for an anchor to be styled as a button.
      Specified by:
      isCanStyleAnchorAsButton in class WTheme
    • applyValidationStyle

      public void applyValidationStyle(WWidget widget, WValidator.Result validation, EnumSet<ValidationStyleFlag> styles)
      Description copied from class: WTheme
      Applies a style that indicates the result of validation.
      Specified by:
      applyValidationStyle in class WTheme
    • canBorderBoxElement

      public boolean canBorderBoxElement(DomElement element)
      Specified by:
      canBorderBoxElement in class WTheme
    • getPanelCollapseIconSide

      public Side getPanelCollapseIconSide()
      Description copied from class: WTheme
      Returns which side the WPanel collapse icon should be added on.

      Side is assumed to be Side.Left or Side.Right, other sides are not supported.

      getPanelCollapseIconSide in class WTheme