You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2017/09/27 18:13:21 UTC

[myfaces-tobago] branch master updated: TOBAGO-1812: Revise flex layout manager: * use Bootstrap CSS classes, instead of our own

This is an automated email from the ASF dual-hosted git repository.

lofwyr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git


The following commit(s) were added to refs/heads/master by this push:
     new ef348f8  TOBAGO-1812: Revise flex layout manager: <tc:flexLayout> * use Bootstrap CSS classes, instead of our own
ef348f8 is described below

commit ef348f86b533cc47a1ebb97b7cba00cf8e5bc2b3
Author: Udo Schnurpfeil <lo...@apache.org>
AuthorDate: Wed Sep 27 20:13:16 2017 +0200

    TOBAGO-1812: Revise flex layout manager: <tc:flexLayout>
    * use Bootstrap CSS classes, instead of our own
---
 .../renderkit/renderer/FlexLayoutRenderer.java     |   7 +-
 .../taglib/component/FlexLayoutTagDeclaration.java |   2 +-
 .../tobago/renderkit/css/BootstrapClass.java       | 362 ++++++++++++++++-----
 .../myfaces/tobago/renderkit/css/TobagoClass.java  | 104 +++---
 tobago-core/src/main/resources/scss/_tobago.scss   |  45 ---
 .../tobago/renderkit/css/TobagoClassUnitTest.java  |  15 +-
 6 files changed, 365 insertions(+), 170 deletions(-)

diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/FlexLayoutRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/FlexLayoutRenderer.java
index 92e03cd..2b396b9 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/FlexLayoutRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/FlexLayoutRenderer.java
@@ -20,8 +20,8 @@
 package org.apache.myfaces.tobago.internal.renderkit.renderer;
 
 import org.apache.myfaces.tobago.component.UIFlexLayout;
-import org.apache.myfaces.tobago.context.Markup;
 import org.apache.myfaces.tobago.renderkit.RendererBase;
+import org.apache.myfaces.tobago.renderkit.css.BootstrapClass;
 import org.apache.myfaces.tobago.renderkit.css.TobagoClass;
 import org.apache.myfaces.tobago.renderkit.html.DataAttributes;
 import org.apache.myfaces.tobago.renderkit.html.HtmlElements;
@@ -82,8 +82,9 @@ public class FlexLayoutRenderer extends RendererBase {
     boolean vertically = rows.contains(";");
     writer.writeClassAttribute(
         TobagoClass.FLEX_LAYOUT,
-        TobagoClass.FLEX_LAYOUT.createMarkup(vertically ? Markup.VERTICALLY : Markup.NULL),
-        TobagoClass.valueOf(flexLayout.getAlignItems()));
+        BootstrapClass.D_FLEX,
+        vertically ? BootstrapClass.FLEX_COLUMN : null,
+        BootstrapClass.valueOf(flexLayout.getAlignItems()));
   }
 
   @Override
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/FlexLayoutTagDeclaration.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/FlexLayoutTagDeclaration.java
index 77ebca3..e56c6be 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/FlexLayoutTagDeclaration.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/FlexLayoutTagDeclaration.java
@@ -33,7 +33,7 @@ import org.apache.myfaces.tobago.layout.AlignItems;
 import org.apache.myfaces.tobago.layout.JustifyContent;
 
 /**
- * Renders a flex layout (CSS3 feature).
+ * Renders a <a href=https://www.w3.org/TR/css-flexbox-1/>Flexible Box Layout</a>.
  *
  * @since 3.0.0
  */
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/BootstrapClass.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/BootstrapClass.java
index 3bcd3c6..fdabcc0 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/BootstrapClass.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/BootstrapClass.java
@@ -20,7 +20,9 @@
 package org.apache.myfaces.tobago.renderkit.css;
 
 import org.apache.myfaces.tobago.component.Attributes;
+import org.apache.myfaces.tobago.layout.AlignItems;
 import org.apache.myfaces.tobago.layout.ColumnPartition;
+import org.apache.myfaces.tobago.layout.JustifyContent;
 import org.apache.myfaces.tobago.layout.TextAlign;
 import org.apache.myfaces.tobago.util.ComponentUtils;
 import org.slf4j.Logger;
@@ -45,14 +47,22 @@ public enum BootstrapClass implements CssItem {
   ALERT_WARNING("alert-warning"),
   ALERT_INFO("alert-info"),
   ALERT_DISMISSIBLE("alert-dismissible"),
+  ALIGN_ITEMS_BASELINE("align-items-baseline"),
   ALIGN_ITEMS_CENTER("align-items-center"),
+  ALIGN_ITEMS_END("align-items-end"),
+  ALIGN_ITEMS_START("align-items-start"),
+  ALIGN_ITEMS_STRETCH("align-items-stretch"),
   BG_DARK("bg-dark"),
-  /** @deprecated since 4.0.0, please use {@link #BG_DARK} */
+  /**
+   * @deprecated since 4.0.0, please use {@link #BG_DARK}
+   */
   @Deprecated
   BG_INVERSE("bg-dark"),
   BADGE("badge"),
   BADGE_DANGER("badge-danger"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   BADGE_DEFAULT("badge-default"),
   BADGE_INFO("badge-info"),
@@ -69,7 +79,9 @@ public enum BootstrapClass implements CssItem {
   BTN_TOOLBAR("btn-toolbar"),
   BTN_WARNING("btn-warning"),
   CARD("card"),
-  /** @deprecated since 4.0.0, please use {@link #CARD_BODY} */
+  /**
+   * @deprecated since 4.0.0, please use {@link #CARD_BODY}
+   */
   @Deprecated
   CARD_BLOCK("card-body"),
   CARD_BODY("card-body"),
@@ -138,44 +150,69 @@ public enum BootstrapClass implements CssItem {
   COL_10("col-10"),
   COL_11("col-11"),
   COL_12("col-12"),
-  /** @deprecated since 4.0.0, please use {@link #COL_1} */
+  /**
+   * @deprecated since 4.0.0, please use {@link #COL_1}
+   */
   @Deprecated
   COL_XS_1("col-1"),
-  /** @deprecated since 4.0.0, please use {@link #COL_2} */
+  /**
+   * @deprecated since 4.0.0, please use {@link #COL_2}
+   */
   @Deprecated
   COL_XS_2("col-2"),
-  /** @deprecated since 4.0.0, please use {@link #COL_3} */
+  /**
+   * @deprecated since 4.0.0, please use {@link #COL_3}
+   */
   @Deprecated
   COL_XS_3("col-3"),
-  /** @deprecated since 4.0.0, please use {@link #COL_4} */
+  /**
+   * @deprecated since 4.0.0, please use {@link #COL_4}
+   */
   @Deprecated
   COL_XS_4("col-4"),
-  /** @deprecated since 4.0.0, please use {@link #COL_5} */
+  /**
+   * @deprecated since 4.0.0, please use {@link #COL_5}
+   */
   @Deprecated
   COL_XS_5("col-5"),
-  /** @deprecated since 4.0.0, please use {@link #COL_6} */
+  /**
+   * @deprecated since 4.0.0, please use {@link #COL_6}
+   */
   @Deprecated
   COL_XS_6("col-6"),
-  /** @deprecated since 4.0.0, please use {@link #COL_7} */
+  /**
+   * @deprecated since 4.0.0, please use {@link #COL_7}
+   */
   @Deprecated
   COL_XS_7("col-7"),
-  /** @deprecated since 4.0.0, please use {@link #COL_8} */
+  /**
+   * @deprecated since 4.0.0, please use {@link #COL_8}
+   */
   @Deprecated
   COL_XS_8("col-8"),
-  /** @deprecated since 4.0.0, please use {@link #COL_9} */
+  /**
+   * @deprecated since 4.0.0, please use {@link #COL_9}
+   */
   @Deprecated
   COL_XS_9("col-9"),
-  /** @deprecated since 4.0.0, please use {@link #COL_10} */
+  /**
+   * @deprecated since 4.0.0, please use {@link #COL_10}
+   */
   @Deprecated
   COL_XS_10("col-10"),
-  /** @deprecated since 4.0.0, please use {@link #COL_11} */
+  /**
+   * @deprecated since 4.0.0, please use {@link #COL_11}
+   */
   @Deprecated
   COL_XS_11("col-11"),
-  /** @deprecated since 4.0.0, please use {@link #COL_12} */
+  /**
+   * @deprecated since 4.0.0, please use {@link #COL_12}
+   */
   @Deprecated
   COL_XS_12("col-12"),
   CONTAINER("container"),
   CONTAINER_FLUID("container-fluid"),
+  D_FLEX("d-flex"),
   D_INLINE("d-inline"),
   D_NONE("d-none"),
   D_SM_NONE("d-sm-none"),
@@ -192,34 +229,53 @@ public enum BootstrapClass implements CssItem {
   FIGURE_IMG("figure-img"),
   FIXED_BOTTOM("fixed-bottom"),
   FIXED_TOP("fixed-top"),
+  FLEX_COLUMN("flex-column"),
+  FLEX_COLUMN_REVERSE("flex-column-reverse"),
+  FLEX_ROW("flex-row"),
+  FLEX_ROW_REVERSE("flex-row-reverse"),
   FORM_CHECK("form-check"),
   FORM_CHECK_INLINE("form-check-inline"),
   FORM_CHECK_INPUT("form-check-input"),
   FORM_CHECK_LABEL("form-check-label"),
   FORM_CONTROL("form-control"),
   FORM_CONTROL_PLAINTEXT("form-control-plaintext"),
-  /** @deprecated since 4.0.0, please use {@link #FORM_CONTROL_PLAINTEXT} */
+  /**
+   * @deprecated since 4.0.0, please use {@link #FORM_CONTROL_PLAINTEXT}
+   */
   @Deprecated
   FORM_CONTROL_STATIC("form-control-plaintext"),
   FORM_GROUP("form-group"),
   FORM_INLINE("form-inline"),
   //TODO: adjust to the new bootstrap concept
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   HAS_DANGER("has-danger"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   HAS_SUCCESS("has-success"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   HAS_WARNING("has-warning"),
-  /** @deprecated since 4.0.0, please use {@link #D_SM_NONE} */
+  /**
+   * @deprecated since 4.0.0, please use {@link #D_SM_NONE}
+   */
   @Deprecated
   HIDDEN_SM_UP("d-sm-none"),
   INPUT_GROUP("input-group"),
   INPUT_GROUP_ADDON("input-group-addon"),
   INPUT_GROUP_BTN("input-group-btn"),
   INVISIBLE("invisible"),
+  JUSTIFY_CONTENT_AROUND("justify-content-around"),
+  JUSTIFY_CONTENT_BETWEEN("justify-content-between"),
+  JUSTIFY_CONTENT_CENTER("justify-content-center"),
+  JUSTIFY_CONTENT_END("justify-content-end"),
+  JUSTIFY_CONTENT_START("justify-content-start"),
   ML_AUTO("ml-auto"),
   MODAL("modal"),
   MODAL_CONTENT("modal-content"),
@@ -242,172 +298,282 @@ public enum BootstrapClass implements CssItem {
   NAVBAR_BRAND("navbar-brand"),
   NAVBAR_DARK("navbar-dark"),
   NAVBAR_EXPAND_SM("navbar-expand-sm"),
-  /** @deprecated since 4.0.0, please use {@link #FIXED_BOTTOM} */
+  /**
+   * @deprecated since 4.0.0, please use {@link #FIXED_BOTTOM}
+   */
   @Deprecated
   NAVBAR_FIXED_BOTTOM("fixed-bottom"),
-  /** @deprecated since 4.0.0, please use {@link #FIXED_TOP} */
+  /**
+   * @deprecated since 4.0.0, please use {@link #FIXED_TOP}
+   */
   @Deprecated
   NAVBAR_FIXED_TOP("fixed-top"),
-  /** @deprecated since 4.0.0, please use {@link #NAVBAR_DARK} */
+  /**
+   * @deprecated since 4.0.0, please use {@link #NAVBAR_DARK}
+   */
   @Deprecated
   NAVBAR_INVERSE("navbar-inverse"),
   NAVBAR_NAV("navbar-nav"),
-  /** @deprecated since 4.0.0, please use {@link #NAVBAR_EXPAND_SM} */
+  /**
+   * @deprecated since 4.0.0, please use {@link #NAVBAR_EXPAND_SM}
+   */
   @Deprecated
   NAVBAR_TOGGLEABLE("navbar-expand-sm"),
-  /** @deprecated since 4.0.0, please use {@link #NAVBAR_EXPAND_SM} */
+  /**
+   * @deprecated since 4.0.0, please use {@link #NAVBAR_EXPAND_SM}
+   */
   @Deprecated
   NAVBAR_TOGGLEABLE_XS("navbar-expand-sm"),
   NAVBAR_TOGGLER("navbar-toggler"),
   NAVBAR_TOGGLER_ICON("navbar-toggler-icon"),
-  /** @deprecated since 4.0.0, please use markup in tc:bar */
+  /**
+   * @deprecated since 4.0.0, please use markup in tc:bar
+   */
   @Deprecated
   NAVBAR_TOGGLER_LEFT("navbar-toggler-left"),
-  /** @deprecated since 4.0.0, please use markup in tc:bar */
+  /**
+   * @deprecated since 4.0.0, please use markup in tc:bar
+   */
   @Deprecated
   NAVBAR_TOGGLER_RIGHT("navbar-toggler-right"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_LG_0("offset-lg-0"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_LG_1("offset-lg-1"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_LG_2("offset-lg-2"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_LG_3("offset-lg-3"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_LG_4("offset-lg-4"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_LG_5("offset-lg-5"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_LG_6("offset-lg-6"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_LG_7("offset-lg-7"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_LG_8("offset-lg-8"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_LG_9("offset-lg-9"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_LG_10("offset-lg-10"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_LG_11("offset-lg-11"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_MD_0("offset-md-0"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_MD_1("offset-md-1"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_MD_2("offset-md-2"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_MD_3("offset-md-3"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_MD_4("offset-md-4"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_MD_5("offset-md-5"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_MD_6("offset-md-6"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_MD_7("offset-md-7"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_MD_8("offset-md-8"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_MD_9("offset-md-9"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_MD_10("offset-md-10"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_MD_11("offset-md-11"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_SM_0("offset-sm-0"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_SM_1("offset-sm-1"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_SM_2("offset-sm-2"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_SM_3("offset-sm-3"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_SM_4("offset-sm-4"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_SM_5("offset-sm-5"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_SM_6("offset-sm-6"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_SM_7("offset-sm-7"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_SM_8("offset-sm-8"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_SM_9("offset-sm-9"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_SM_10("offset-sm-10"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_SM_11("offset-sm-11"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_1("offset-1"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_2("offset-2"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_3("offset-3"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_4("offset-4"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_5("offset-5"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_6("offset-6"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_7("offset-7"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_8("offset-8"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_9("offset-9"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_10("offset-10"),
-  /** @deprecated since 4.0.0 */
+  /**
+   * @deprecated since 4.0.0
+   */
   @Deprecated
   OFFSET_11("offset-11"),
-  /** @deprecated since 4.0.0, please use {@link #SHOW} */
+  /**
+   * @deprecated since 4.0.0, please use {@link #SHOW}
+   */
   @Deprecated
   OPEN("show"),
   PAGE_ITEM("page-item"),
@@ -484,7 +650,6 @@ public enum BootstrapClass implements CssItem {
   }
 
   /**
-   *
    * @since 4.0.0
    */
   public static CssItem textAlign(final TextAlign textAlign) {
@@ -615,4 +780,49 @@ public enum BootstrapClass implements CssItem {
       }
     }
   }
+
+  public static CssItem valueOf(AlignItems alignItems) {
+    if (alignItems == null) {
+      return null;
+    } else {
+      switch (alignItems) {
+        case baseline:
+          return ALIGN_ITEMS_BASELINE;
+        case center:
+          return ALIGN_ITEMS_CENTER;
+        case flexEnd:
+          return ALIGN_ITEMS_END;
+        case flexStart:
+          return ALIGN_ITEMS_START;
+        case stretch:
+          return ALIGN_ITEMS_STRETCH;
+        default:
+          LOG.warn("Undefined alignItems: '{}'.", alignItems);
+          return null;
+      }
+    }
+  }
+
+  public static CssItem valueOf(JustifyContent justifyContent) {
+    if (justifyContent == null) {
+      return null;
+    } else {
+      switch (justifyContent) {
+        case center:
+          return JUSTIFY_CONTENT_CENTER;
+        case flexEnd:
+          return JUSTIFY_CONTENT_END;
+        case flexStart:
+          return JUSTIFY_CONTENT_START;
+        case spaceBetween:
+          return JUSTIFY_CONTENT_BETWEEN;
+        case spaceAround:
+          return JUSTIFY_CONTENT_AROUND;
+        default:
+          LOG.warn("Undefined justifyContent: '{}'.", justifyContent);
+          return null;
+      }
+    }
+  }
+
 }
diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/TobagoClass.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/TobagoClass.java
index d51ac70..2a1d8c9 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/TobagoClass.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/css/TobagoClass.java
@@ -46,26 +46,70 @@ public enum TobagoClass implements CssItem {
 
   INPUT_PSEUDO("tobago-inputPseudo"),
 
+  /**
+   * @deprecated since 4.0.0, use {@link BootstrapClass#ALIGN_ITEMS_BASELINE}
+   */
+  @Deprecated
   ALIGN_ITEMS__BASELINE("tobago-alignItems-baseline"),
+  /**
+   * @deprecated since 4.0.0, use {@link BootstrapClass#ALIGN_ITEMS_CENTER}
+   */
+  @Deprecated
   ALIGN_ITEMS__CENTER("tobago-alignItems-center"),
+  /**
+   * @deprecated since 4.0.0, use {@link BootstrapClass#ALIGN_ITEMS_END}
+   */
+  @Deprecated
   ALIGN_ITEMS__FLEX_END("tobago-alignItems-flexEnd"),
+  /**
+   * @deprecated since 4.0.0, use {@link BootstrapClass#ALIGN_ITEMS_START}
+   */
+  @Deprecated
   ALIGN_ITEMS__FLEX_START("tobago-alignItems-flexStart"),
+  /**
+   * @deprecated since 4.0.0, use {@link BootstrapClass#ALIGN_ITEMS_STRETCH}
+   */
+  @Deprecated
   ALIGN_ITEMS__STRETCH("tobago-alignItems-stretch"),
 
+  /**
+   * @deprecated since 4.0.0, use {@link BootstrapClass#JUSTIFY_CONTENT_CENTER}
+   */
+  @Deprecated
   JUSTIFY_CONTENT__CENTER("tobago-justifyContent-center"),
+  /**
+   * @deprecated since 4.0.0, use {@link BootstrapClass#JUSTIFY_CONTENT_START}
+   */
+  @Deprecated
   JUSTIFY_CONTENT__FLEX_START("tobago-justifyContent-flexStart"),
+  /**
+   * @deprecated since 4.0.0, use {@link BootstrapClass#JUSTIFY_CONTENT_END}
+   */
+  @Deprecated
   JUSTIFY_CONTENT__FLEX_END("tobago-justifyContent-flexEnd"),
+  /**
+   * @deprecated since 4.0.0, use {@link BootstrapClass#JUSTIFY_CONTENT_BETWEEN}
+   */
+  @Deprecated
   JUSTIFY_CONTENT__SPACE_BETWEEN("tobago-justifyContent-spaceBetween"),
+  /**
+   * @deprecated since 4.0.0, use {@link BootstrapClass#JUSTIFY_CONTENT_AROUND}
+   */
+  @Deprecated
   JUSTIFY_CONTENT__SPACE_AROUND("tobago-justifyContent-spaceAround"),
 
   DROPDOWN__SUBMENU("tobago-dropdown-submenu"),
-  /** @deprecated Since 3.0.1. Please use {@link TobagoClass#DROPDOWN__SUBMENU} */
+  /**
+   * @deprecated Since 3.0.1. Please use {@link TobagoClass#DROPDOWN__SUBMENU}
+   */
   @Deprecated
   DROPDOWN_SUBMENU(DROPDOWN__SUBMENU.getName()),
   TABLE_LAYOUT__FIXED("tobago-tableLayout-fixed"),
 
   HAS__INFO("tobago-has-info"),
-  /** @deprecated Since 3.0.1. Please use {@link TobagoClass#HAS__INFO} */
+  /**
+   * @deprecated Since 3.0.1. Please use {@link TobagoClass#HAS__INFO}
+   */
   @Deprecated
   HAS_INFO(HAS__INFO.getName()),
   REQUIRED("tobago-required"),
@@ -92,7 +136,9 @@ public enum TobagoClass implements CssItem {
   IMAGE("tobago-image"),
   IN("tobago-in"),
   INPUT__GROUP__OUTER("tobago-input-group-outer"),
-  /** @deprecated Since 3.0.1. Please use {@link TobagoClass#INPUT__GROUP__OUTER} */
+  /**
+   * @deprecated Since 3.0.1. Please use {@link TobagoClass#INPUT__GROUP__OUTER}
+   */
   @Deprecated
   INPUT_GROUP_OUTER(INPUT__GROUP__OUTER.getName()),
   LABEL("tobago-label"),
@@ -187,48 +233,20 @@ public enum TobagoClass implements CssItem {
     return name;
   }
 
-  public static TobagoClass valueOf(AlignItems alignItems) {
-    if (alignItems == null) {
-      return null;
-    } else {
-      switch (alignItems) {
-        case baseline:
-          return ALIGN_ITEMS__BASELINE;
-        case center:
-          return ALIGN_ITEMS__CENTER;
-        case flexEnd:
-          return ALIGN_ITEMS__FLEX_END;
-        case flexStart:
-          return ALIGN_ITEMS__FLEX_START;
-        case stretch:
-          return ALIGN_ITEMS__STRETCH;
-        default:
-          LOG.warn("Undefined alignItems: '{}'.", alignItems);
-          return null;
-      }
-    }
+  /**
+   * @deprecated since 4.0.0, use {@link BootstrapClass#valueOf(AlignItems)}
+   */
+  @Deprecated
+  public static CssItem valueOf(AlignItems alignItems) {
+    return BootstrapClass.valueOf(alignItems);
   }
 
-  public static TobagoClass valueOf(JustifyContent justifyContent) {
-    if (justifyContent == null) {
-      return null;
-    } else {
-      switch (justifyContent) {
-        case center:
-          return JUSTIFY_CONTENT__CENTER;
-        case flexEnd:
-          return JUSTIFY_CONTENT__FLEX_END;
-        case flexStart:
-          return JUSTIFY_CONTENT__FLEX_START;
-        case spaceBetween:
-          return JUSTIFY_CONTENT__SPACE_BETWEEN;
-        case spaceAround:
-          return JUSTIFY_CONTENT__SPACE_AROUND;
-        default:
-          LOG.warn("Undefined justifyContent: '{}'.", justifyContent);
-          return null;
-      }
-    }
+  /**
+   * @deprecated since 4.0.0, use {@link BootstrapClass#valueOf(JustifyContent)}
+   */
+  @Deprecated
+  public static CssItem valueOf(JustifyContent justifyContent) {
+    return BootstrapClass.valueOf(justifyContent);
   }
 
   @Preliminary
diff --git a/tobago-core/src/main/resources/scss/_tobago.scss b/tobago-core/src/main/resources/scss/_tobago.scss
index 3954762..2ffce2a 100644
--- a/tobago-core/src/main/resources/scss/_tobago.scss
+++ b/tobago-core/src/main/resources/scss/_tobago.scss
@@ -220,7 +220,6 @@ body {
 /* flexLayout -------------------------------------------------------------- */
 
 .tobago-flexLayout {
-  display: flex;
   min-width: 0;
   /* without this, Firefox/Webkit are different from IE:
      Set the minimal width to zero make flex-layout responsive for the width,
@@ -240,50 +239,6 @@ body {
   }
 }
 
-.tobago-flexLayout-markup-vertically {
-  flex-direction: column;
-}
-
-.tobago-alignItems-baseline {
-  align-items: baseline;
-}
-
-.tobago-alignItems-center {
-  align-items: center;
-}
-
-.tobago-alignItems-flexEnd {
-  align-items: flex-end;
-}
-
-.tobago-alignItems-flexStart {
-  align-items: flex-start;
-}
-
-.tobago-alignItems-stretch {
-  align-items: stretch;
-}
-
-.tobago-justifyContent-center {
-  justify-content: center;
-}
-
-.tobago-justifyContent-flexStart {
-  justify-content: flex-start;
-}
-
-.tobago-justifyContent-flexEnd {
-  justify-content: flex-end;
-}
-
-.tobago-justifyContent-spaceBetween {
-  justify-content: space-between;
-}
-
-.tobago-justifyContent-spaceAround {
-  justify-content: space-around;
-}
-
 /* flowLayout ---------------------------------------------------------- */
 .tobago-flowLayout {
 }
diff --git a/tobago-core/src/test/java/org/apache/myfaces/tobago/renderkit/css/TobagoClassUnitTest.java b/tobago-core/src/test/java/org/apache/myfaces/tobago/renderkit/css/TobagoClassUnitTest.java
index 27b1146..11f7833 100644
--- a/tobago-core/src/test/java/org/apache/myfaces/tobago/renderkit/css/TobagoClassUnitTest.java
+++ b/tobago-core/src/test/java/org/apache/myfaces/tobago/renderkit/css/TobagoClassUnitTest.java
@@ -23,6 +23,7 @@ import org.junit.Assert;
 import org.junit.Test;
 
 import java.io.FileNotFoundException;
+import java.util.ArrayList;
 import java.util.List;
 
 public class TobagoClassUnitTest {
@@ -68,10 +69,20 @@ public class TobagoClassUnitTest {
    * This test checks whether every item of the {@link TobagoClass} occurs in the _tobago.scss.
    */
   @Test
-  public void testCompareTobagoCss() throws FileNotFoundException {
+  public void testCompareTobagoCss() throws FileNotFoundException, NoSuchFieldException {
+
+    final TobagoClass[] allValues = TobagoClass.values();
+    final List<TobagoClass> toCheck = new ArrayList<>();
+    for (TobagoClass value : allValues) {
+      boolean ignoreByTest = TobagoClass.class.getField(value.name()).isAnnotationPresent(Deprecated.class);
+      if (!ignoreByTest) {
+        toCheck.add(value);
+      }
+    }
 
     final List<CssItem> missing =
-        CssClassUtils.compareCss("src/main/resources/scss/_tobago.scss", TobagoClass.values());
+        CssClassUtils.compareCss("src/main/resources/scss/_tobago.scss",
+        toCheck.toArray(new CssItem[toCheck.size()]));
 
     Assert.assertTrue("These classes are missing in _tobago.scss: " + missing, missing.isEmpty());
   }

-- 
To stop receiving notification emails like this one, please contact
['"commits@myfaces.apache.org" <co...@myfaces.apache.org>'].