فهرست منبع

Ticket #1848 - Issue №2.

AntonLV 7 سال پیش
والد
کامیت
e5e7d2e4ea

+ 51 - 34
modules/boonex/decorous/data/template/system/css/default.less

@@ -54,7 +54,8 @@ html.bx-media-phone {
     box-shadow: @bx-shadow-card;
 }
 .bx-popup-applied {
-    .radius(@bx-border-radius-popup);
+    border-radius: @bx-border-radius-popup;
+    background-clip: padding-box;
 }
 .bx-popup-applied:not(.bx-popup-chain),
 .bx-popup-applied.bx-popup-chain .bx-popup-chain-item {
@@ -362,7 +363,8 @@ a.bx-def-font-h3:hover {
     border-style: @bx-border-type;
     border-color: @bx-color-border-cover;
 
-    .radius(@bx-border-radius-cover);
+    border-radius: @bx-border-radius-cover;
+    background-clip: padding-box;
 
     -webkit-box-shadow: @bx-shadow-cover;
     -moz-box-shadow: @bx-shadow-cover;
@@ -383,7 +385,8 @@ a.bx-def-font-h3:hover {
     border-style: @bx-border-type;
     border-color: @bx-color-border-cover-icon;
 
-    .radius(@bx-border-radius-cover-icon);
+    border-radius: @bx-border-radius-cover-icon;
+    background-clip: padding-box;
 
     -webkit-box-shadow: @bx-shadow-cover-icon;
     -moz-box-shadow: @bx-shadow-cover-icon;
@@ -408,75 +411,87 @@ a.bx-def-font-h3:hover {
 
 /* block */
 .bx-def-border-block {
-	border-width: @bx-border-width-block;
-	border-style: @bx-border-type;
-	border-color: @bx-color-border-block;
+    border-width: @bx-border-width-block;
+    border-style: @bx-border-type;
+    border-color: @bx-color-border-block;
 
-	.radius(@bx-border-radius-block);
+    border-radius: @bx-border-radius-block;
+    background-clip: padding-box;
 }
 .bx-def-border-radius-block {
-    .radius(@bx-border-radius-block);
+    border-radius: @bx-border-radius-block;
+    background-clip: padding-box;
 }
 .bx-db-header {
-	padding: @bx-title-padding-block;
+    padding: @bx-title-padding-block;
 
-	border-width: @bx-border-width-block-title;
-	border-style: solid;
-	border-color: @bx-color-border-block-title;
+    border-width: @bx-border-width-block-title;
+    border-style: solid;
+    border-color: @bx-color-border-block-title;
 
-	.radius(@bx-border-radius-block-title);
+    border-radius: @bx-border-radius-block-title;
 }
 .bx-def-color-bg-block .bx-db-header,
 .bx-def-image-bg-block .bx-db-header {
     background-color: @bx-color-block-title;
 }
 .bx-db-header .bx-db-title {
-	font-family: @bx-font-family-block-title;
-	font-weight: @bx-font-weight-block-title;
-	color: @bx-color-font-block-title;
+    font-family: @bx-font-family-block-title;
+    font-weight: @bx-font-weight-block-title;
+    color: @bx-color-font-block-title;
 }
 .bx-db-header .bx-db-title.bx-def-font-h2 {
-	font-size: @bx-font-size-block-title;
+    font-size: @bx-font-size-block-title;
 }
 .bx-db-divider {
-	border-top:@bx-height-block-title-div @bx-border-type @bx-color-block-title-div;
+    border-top:@bx-height-block-title-div @bx-border-type @bx-color-block-title-div;
 }
 
 
 /* box */
 .bx-def-box {
-	border-width: @bx-border-width-box;
-	border-style: @bx-border-type;
-	border-color: @bx-color-border-box;
+    border-width: @bx-border-width-box;
+    border-style: @bx-border-type;
+    border-color: @bx-color-border-box;
 }
 .bx-def-box.bx-def-padding {
-	padding: @bx-content-padding-card;
+    padding: @bx-content-padding-card;
 }
 .bx-def-box.bx-def-color-bg-box {
-	.background-color (@bx-color-box);
+    .background-color (@bx-color-box);
 }
 .bx-def-box.bx-def-color-bg-box-active,
 .bx-def-box.bx-def-color-bg-box-hover:hover {
     .background-color (@bx-color-box-hover);
 }
 .bx-def-box.bx-def-round-corners {
-	.radius(@bx-border-radius-box);
+    border-radius: @bx-border-radius-box;
+    background-clip: padding-box;
+}
+.bx-base-text-unit.bx-base-text-unit-ext.bx-def-round-corners img.bx-base-text-unit-cover.bx-def-round-corners,
+.bx-base-text-unit.bx-base-text-unit-ext .bx-def-round-corners img.bx-base-text-unit-cover.bx-def-round-corners {
+    border-radius: @bx-border-radius-box-tl @bx-border-radius-box-tr 0 0;
+}
+.bx-base-text-unit.bx-base-text-unit-gallery.bx-def-round-corners .bx-base-text-unit-thumb.bx-def-round-corners,
+.bx-base-text-unit.bx-base-text-unit-gallery .bx-def-round-corners .bx-base-text-unit-thumb.bx-def-round-corners {
+    border-radius: 0 0 @bx-border-radius-box-br @bx-border-radius-box-bl;
 }
 
 /* popup */
 .bx-popup-border {
-	border-width: @bx-border-width-popup;
-	border-style: solid;
-	border-color: @bx-color-border-popup;
+    border-width: @bx-border-width-popup;
+    border-style: solid;
+    border-color: @bx-color-border-popup;
 
-	.radius(@bx-border-radius-popup);
+    border-radius: @bx-border-radius-popup;
+    background-clip: padding-box;
 }
 .bx-popup-color-bg {
-	background-color: @bx-color-popup;
+    background-color: @bx-color-popup;
 
-	background-image: @bx-image-bg-popup;
-	background-repeat: @bx-image-bg-popup-repeat;
-	background-attachment: @bx-image-bg-popup-attachment;
+    background-image: @bx-image-bg-popup;
+    background-repeat: @bx-image-bg-popup-repeat;
+    background-attachment: @bx-image-bg-popup-attachment;
     background-size: @bx-image-bg-popup-size;
 }
 .bx-popup-content-indent {
@@ -759,7 +774,8 @@ a.bx-def-font-h3:hover {
 	border-style: solid;
 	border-color: @bx-color-border-button;
 
-	.radius(@bx-border-radius-button);
+        border-radius: @bx-border-radius-button;
+	background-clip: padding-box;
 
 	text-shadow: @bx-shadow-font-button;
 
@@ -812,7 +828,8 @@ a.bx-def-font-h3:hover {
 	border-style: solid;
 	border-color: @bx-color-border-button-small;
 
-	.radius(@bx-border-radius-button-small);
+        border-radius: @bx-border-radius-button-small;
+	background-clip: padding-box;
 
 	text-shadow: @bx-shadow-font-button-small;
 

+ 136 - 279
modules/boonex/decorous/data/template/system/scripts/BxTemplConfig.php

@@ -9,8 +9,8 @@
 
 class BxTemplConfig extends BxBaseConfig
 {
-	protected $_isModule;
-	
+    protected $_isModule;
+
     function __construct()
     {
         parent::__construct();
@@ -66,7 +66,7 @@ class BxTemplConfig extends BxBaseConfig
         $this->_aConfig['aLessConfig']['bx-image-bg-menu-slide-repeat'] = $this->_setBgRepeat($sName . '_menu_slide_bg_image_repeat', 'no-repeat');
         $this->_aConfig['aLessConfig']['bx-image-bg-menu-slide-attachment'] = $this->_setBgAttachment($sName . '_menu_slide_bg_image_attachment', 'scroll');
         $this->_aConfig['aLessConfig']['bx-image-bg-menu-slide-size'] = $this->_setBgSize($sName . '_menu_slide_bg_image_size', 'cover');
-        
+
 
         //--- Shadow
         $this->_aConfig['aLessConfig']['bx-shadow-header'] = $this->_setShadow($sName . '_header_shadow');
@@ -99,9 +99,9 @@ class BxTemplConfig extends BxBaseConfig
         $this->_aConfig['aLessConfig']['bx-height-cover'] = $this->_setSize($sName . '_cover_height', '40vh');
         $this->_aConfig['aLessConfig']['bx-height-block-title-div'] = $this->_setSize($sName . '_block_title_div_height', '1px');
         $this->_aConfig['aLessConfig']['bx-height-form-input'] = $this->_setSize($sName . '_form_input_height', '2.2rem');
-		$this->_aConfig['aLessConfig']['bx-height-button'] = $this->_setSize($sName . '_button_lg_height', '2.25rem');
-		$this->_aConfig['aLessConfig']['bx-height-button-small'] = $this->_setSize($sName . '_button_sm_height', '1.5rem');
-		
+        $this->_aConfig['aLessConfig']['bx-height-button'] = $this->_setSize($sName . '_button_lg_height', '2.25rem');
+        $this->_aConfig['aLessConfig']['bx-height-button-small'] = $this->_setSize($sName . '_button_sm_height', '1.5rem');
+
 
         //--- Title/Content Margins
         $this->_aConfig['aLessConfig']['bx-content-padding-header'] = $this->_setMargin($sName . '_header_content_padding');
@@ -116,15 +116,15 @@ class BxTemplConfig extends BxBaseConfig
         $this->_aConfig['aLessConfig']['bx-content-padding-menu-page'] = $this->_setMargin($sName . '_menu_page_content_padding');
         $this->_aConfig['aLessConfig']['bx-content-padding-menu-slide'] = $this->_setMargin($sName . '_menu_slide_content_padding');
 
-		$this->_aConfig['aLessConfig']['bx-title-padding-block'] = $this->_setMargin($sName . '_block_title_padding');
-		$this->_aConfig['aLessConfig']['bx-title-padding-popup'] = $this->_setMargin($sName . '_popup_title_padding');
+        $this->_aConfig['aLessConfig']['bx-title-padding-block'] = $this->_setMargin($sName . '_block_title_padding');
+        $this->_aConfig['aLessConfig']['bx-title-padding-popup'] = $this->_setMargin($sName . '_popup_title_padding');
 
 
         //--- Colors
-		if($this->_isModule) {
-	        $this->_aConfig['aLessConfig']['bx-color-hl'] = $this->_setColorRgba($sName . '_general_item_bg_color_hover', 'rgba(196, 248, 156, 0.2)');
-			$this->_aConfig['aLessConfig']['bx-color-active'] = $this->_setColorRgba($sName . '_general_item_bg_color_active', 'rgba(196, 248, 156, 0.4)');
-		}
+        if($this->_isModule) {
+            $this->_aConfig['aLessConfig']['bx-color-hl'] = $this->_setColorRgba($sName . '_general_item_bg_color_hover', 'rgba(196, 248, 156, 0.2)');
+            $this->_aConfig['aLessConfig']['bx-color-active'] = $this->_setColorRgba($sName . '_general_item_bg_color_active', 'rgba(196, 248, 156, 0.4)');
+        }
 
         $this->_aConfig['aLessConfig']['bx-color-header'] = $this->_setColorRgba($sName . '_header_bg_color', 'rgba(59, 134, 134, 1)');
         $this->_aConfig['aLessConfig']['bx-color-footer'] = $this->_setColorRgba($sName . '_footer_bg_color', 'rgba(255, 255, 255, 1)');
@@ -142,14 +142,14 @@ class BxTemplConfig extends BxBaseConfig
         $this->_aConfig['aLessConfig']['bx-color-menu-add'] = $this->_setColorRgba($sName . '_menu_add_bg_color', 'rgba(255, 255, 255, 0.9)');
         $this->_aConfig['aLessConfig']['bx-color-menu-page'] = $this->_setColorRgba($sName . '_menu_page_bg_color', 'rgba(242, 242, 242, 1)');
         $this->_aConfig['aLessConfig']['bx-color-menu-slide'] = $this->_setColorRgba($sName . '_menu_slide_bg_color', 'rgba(255, 255, 255, 0.9)');
-		$this->_aConfig['aLessConfig']['bx-color-form-input'] = $this->_setColorRgba($sName . '_form_input_bg_color', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-form-input-active'] = $this->_setColorRgba($sName . '_form_input_bg_color_active', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-form-input'] = $this->_setColorRgba($sName . '_form_input_bg_color', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-form-input-active'] = $this->_setColorRgba($sName . '_form_input_bg_color_active', 'rgba(255, 255, 255, 1)');
         $this->_aConfig['aLessConfig']['bx-color-button'] = $this->_setColorRgba($sName . '_button_lg_bg_color', 'rgba(108, 170, 138, 1)');
         $this->_aConfig['aLessConfig']['bx-color-button-hover'] = $this->_setColorRgba($sName . '_button_lg_bg_color_hover', 'rgba(58, 134, 134, 1)');
         $this->_aConfig['aLessConfig']['bx-color-button-small'] = $this->_setColorRgba($sName . '_button_sm_bg_color', 'rgba(108, 170, 138, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-button-small-hover'] = $this->_setColorRgba($sName . '_button_sm_bg_color_hover', 'rgba(58, 134, 134, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-button-small-hover'] = $this->_setColorRgba($sName . '_button_sm_bg_color_hover', 'rgba(58, 134, 134, 1)');
 
-		$this->_aConfig['aLessConfig']['bx-color-font-cover'] = $this->_setColorRgba($sName . '_cover_font_color', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-font-cover'] = $this->_setColorRgba($sName . '_cover_font_color', 'rgba(255, 255, 255, 1)');
         $this->_aConfig['aLessConfig']['bx-color-font-block-title'] = $this->_setColorRgba($sName . '_block_title_font_color', 'rgba(0, 0, 20, 1)');
         $this->_aConfig['aLessConfig']['bx-color-font-popup-title'] = $this->_setColorRgba($sName . '_popup_title_font_color', 'rgba(255, 255, 255, 1.0)');
 
@@ -174,19 +174,19 @@ class BxTemplConfig extends BxBaseConfig
         $this->_aConfig['aLessConfig']['bx-color-border-button-small'] = $this->_setColorRgba($sName . '_button_sm_border_color', $sDefColBorder);
         $this->_aConfig['aLessConfig']['bx-color-border-button-small-hover'] = $this->_setColorRgba($sName . '_button_sm_border_color_hover', $sDefColBorder);
 
-		$this->_aConfig['aLessConfig']['bx-color-icon-header'] = $this->_setColorRgba($sName . '_header_icon_color', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-icon-header-hover'] = $this->_setColorRgba($sName . '_header_icon_color_hover', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-icon-footer'] = $this->_setColorRgba($sName . '_footer_icon_color', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-icon-footer-hover'] = $this->_setColorRgba($sName . '_footer_icon_color_hover', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-icon-body'] = $this->_setColorRgba($sName . '_body_icon_color', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-icon-body-hover'] = $this->_setColorRgba($sName . '_body_icon_color_hover', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-icon-header'] = $this->_setColorRgba($sName . '_header_icon_color', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-icon-header-hover'] = $this->_setColorRgba($sName . '_header_icon_color_hover', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-icon-footer'] = $this->_setColorRgba($sName . '_footer_icon_color', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-icon-footer-hover'] = $this->_setColorRgba($sName . '_footer_icon_color_hover', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-icon-body'] = $this->_setColorRgba($sName . '_body_icon_color', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-icon-body-hover'] = $this->_setColorRgba($sName . '_body_icon_color_hover', 'rgba(62, 134, 133, 1)');
 
-		$this->_aConfig['aLessConfig']['bx-color-link-header'] = $this->_setColorRgba($sName . '_header_link_color', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-link-header-hover'] = $this->_setColorRgba($sName . '_header_link_color_hover', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-link-footer'] = $this->_setColorRgba($sName . '_footer_link_color', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-link-footer-hover'] = $this->_setColorRgba($sName . '_footer_link_color_hover', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-link-body'] = $this->_setColorRgba($sName . '_body_link_color', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-link-body-hover'] = $this->_setColorRgba($sName . '_body_link_color_hover', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-link-header'] = $this->_setColorRgba($sName . '_header_link_color', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-link-header-hover'] = $this->_setColorRgba($sName . '_header_link_color_hover', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-link-footer'] = $this->_setColorRgba($sName . '_footer_link_color', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-link-footer-hover'] = $this->_setColorRgba($sName . '_footer_link_color_hover', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-link-body'] = $this->_setColorRgba($sName . '_body_link_color', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-link-body-hover'] = $this->_setColorRgba($sName . '_body_link_color_hover', 'rgba(62, 134, 133, 1)');
 
         //--- Borders
         $this->_aConfig['aLessConfig']['bx-border-width-header'] = $this->_setSize($sName . '_header_border_size');
@@ -207,87 +207,105 @@ class BxTemplConfig extends BxBaseConfig
         $this->_aConfig['aLessConfig']['bx-border-width-button-small'] = $this->_setSize($sName . '_button_sm_border_size');
 
         $this->_aConfig['aLessConfig']['bx-border-radius-block'] = $this->_setSize($sName . '_block_border_radius');
+        list(
+            $this->_aConfig['aLessConfig']['bx-border-radius-block-tl'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-block-tr'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-block-br'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-block-bl']
+        ) = $this->_setSizeDivided($this->_aConfig['aLessConfig']['bx-border-radius-block']);
         $this->_aConfig['aLessConfig']['bx-border-radius-cover'] = $this->_setSize($sName . '_cover_border_radius');
         $this->_aConfig['aLessConfig']['bx-border-radius-cover-icon'] = $this->_setSize($sName . '_cover_icon_border_radius');
         $this->_aConfig['aLessConfig']['bx-border-radius-block-title'] = $this->_setSize($sName . '_block_title_border_radius');
         $this->_aConfig['aLessConfig']['bx-border-radius-box'] = $this->_setSize($sName . '_card_border_radius', '3px');
+        list(
+            $this->_aConfig['aLessConfig']['bx-border-radius-box-tl'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-box-tr'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-box-br'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-box-bl']
+        ) = $this->_setSizeDivided($this->_aConfig['aLessConfig']['bx-border-radius-box']);
         $this->_aConfig['aLessConfig']['bx-border-radius-popup'] = $this->_setSize($sName . '_popup_border_radius', '3px');
+        list(
+            $this->_aConfig['aLessConfig']['bx-border-radius-popup-tl'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-popup-tr'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-popup-br'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-popup-bl']
+        ) = $this->_setSizeDivided($this->_aConfig['aLessConfig']['bx-border-radius-popup']);
         $this->_aConfig['aLessConfig']['bx-border-radius-button'] = $this->_setSize($sName . '_button_lg_border_radius');
         $this->_aConfig['aLessConfig']['bx-border-radius-button-small'] = $this->_setSize($sName . '_button_sm_border_radius');
 
         //--- Text
         $this->_aConfig['aLessConfig']['bx-text-align-cover'] = $this->_setAlign($sName . '_cover_text_align');
 
-		//--- Default Fonts
-		if($this->_isModule) {
-	        $this->_aConfig['aLessConfig']['bx-font-family'] = $this->_setValue($sName . '_font_family', 'Helvetica, Arial, sans-serif');
-	        $this->_aConfig['aLessConfig']['bx-font-size-default'] = $this->_setSize($sName . '_font_size_default', '18px');
-	        $this->_aConfig['aLessConfig']['bx-font-size-small'] = $this->_setSize($sName . '_font_size_small', '14px');
-	        $this->_aConfig['aLessConfig']['bx-font-size-middle'] = $this->_setSize($sName . '_font_size_middle', '16px');
-	        $this->_aConfig['aLessConfig']['bx-font-size-large'] = $this->_setSize($sName . '_font_size_large', '22px');
-	        $this->_aConfig['aLessConfig']['bx-font-size-h1'] = $this->_setSize($sName . '_font_size_h1', '38px');
-	        $this->_aConfig['aLessConfig']['bx-font-size-h2'] = $this->_setSize($sName . '_font_size_h2', '24px');
-	        $this->_aConfig['aLessConfig']['bx-font-size-h3'] = $this->_setSize($sName . '_font_size_h3', '18px');
-
-	        $this->_aConfig['aLessConfig']['bx-font-color-default'] = $this->_setColorRgba($sName . '_font_color_default', 'rgba(51, 51, 51, 1)');
-	        $this->_aConfig['aLessConfig']['bx-font-color-grayed'] = $this->_setColorRgba($sName . '_font_color_grayed', 'rgba(153, 153, 153, 1)');
-	        $this->_aConfig['aLessConfig']['bx-font-color-contrasted'] = $this->_setColorRgba($sName . '_font_color_contrasted', 'rgba(255, 255, 255, 1)');
-		}
-
-		//--- Font Family
-		$this->_aConfig['aLessConfig']['bx-font-family-cover'] = $this->_setValue($sName . '_cover_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-block-title'] = $this->_setValue($sName . '_block_title_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-popup-title'] = $this->_setValue($sName . '_popup_title_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-form-input'] = $this->_setValue($sName . '_form_input_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-menu-main'] = $this->_setValue($sName . '_menu_main_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-menu-account'] = $this->_setValue($sName . '_menu_account_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-menu-add'] = $this->_setValue($sName . '_menu_add_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-menu-page'] = $this->_setValue($sName . '_menu_page_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-menu-slide'] = $this->_setValue($sName . '_menu_slide_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-button'] = $this->_setValue($sName . '_button_lg_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-button-small'] = $this->_setValue($sName . '_button_sm_font_family');
-
-		//--- Font Size
-		$this->_aConfig['aLessConfig']['bx-font-size-cover'] = $this->_setSize($sName . '_cover_font_size', '2.0rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-block-title'] = $this->_setSize($sName . '_block_title_font_size', '1.5rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-popup-title'] = $this->_setSize($sName . '_popup_title_font_size', '1.5rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-form-input'] = $this->_setSize($sName . '_form_input_font_size', '1.125rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-menu-main'] = $this->_setSize($sName . '_menu_main_font_size', '1.125rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-menu-account'] = $this->_setSize($sName . '_menu_account_font_size', '1.125rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-menu-add'] = $this->_setSize($sName . '_menu_add_font_size', '1.125rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-menu-page'] = $this->_setSize($sName . '_menu_page_font_size', '1.2rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-menu-slide'] = $this->_setSize($sName . '_menu_slide_font_size', '1.0rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-button'] = $this->_setSize($sName . '_button_lg_font_size', '1rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-button-small'] = $this->_setSize($sName . '_button_sm_font_size', '0.9rem');
-
-		//--- Font Color
-		$sColFontDef = 'rgba(51, 51, 51, 1.0)';		//--- Default
-		$sColFontGrd = 'rgba(153, 153, 153, 1)';	//--- Grayed
-		$sColFontCnt = 'rgba(255, 255, 255, 1)';	//--- Contrasted
-		$sColFontLnk = 'rgba(62, 134, 133, 1)';		//--- Link
-		$sColFontLnkHov = 'rgba(62, 134, 133, 1)';	//--- Link on-hiver
-		$this->_aConfig['aLessConfig']['bx-font-color-footer'] = $this->_setColorRgba($sName . '_footer_font_color', $sColFontDef);
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-main'] = $this->_setColorRgba($sName . '_menu_main_font_color', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-main-hover'] = $this->_setColorRgba($sName . '_menu_main_font_color_hover', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-main-active'] = $this->_setColorRgba($sName . '_menu_main_font_color_active', 'rgba(0, 0, 0, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-account'] = $this->_setColorRgba($sName . '_menu_account_font_color', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-account-hover'] = $this->_setColorRgba($sName . '_menu_account_font_color_hover', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-account-active'] = $this->_setColorRgba($sName . '_menu_account_font_color_active', 'rgba(0, 0, 0, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-add'] = $this->_setColorRgba($sName . '_menu_add_font_color', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-add-hover'] = $this->_setColorRgba($sName . '_menu_add_font_color_hover', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-add-active'] = $this->_setColorRgba($sName . '_menu_add_font_color_active', 'rgba(0, 0, 0, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-page'] = $this->_setColorRgba($sName . '_menu_page_font_color', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-page-hover'] = $this->_setColorRgba($sName . '_menu_page_font_color_hover', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-page-active'] = $this->_setColorRgba($sName . '_menu_page_font_color_active', 'rgba(0, 0, 0, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-slide'] = $this->_setColorRgba($sName . '_menu_slide_font_color', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-slide-hover'] = $this->_setColorRgba($sName . '_menu_slide_font_color_hover', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-slide-active'] = $this->_setColorRgba($sName . '_menu_slide_font_color_active', 'rgba(0, 0, 0, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-button'] = $this->_setColorRgba($sName . '_button_lg_font_color', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-button-hover'] = $this->_setColorRgba($sName . '_button_lg_font_color_hover', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-button-small'] = $this->_setColorRgba($sName . '_button_sm_font_color', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-button-small-hover'] = $this->_setColorRgba($sName . '_button_sm_font_color_hover', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-form-input'] = $this->_setColorRgba($sName . '_form_input_font_color', $sColFontDef);
-		$this->_aConfig['aLessConfig']['bx-font-color-default-h1'] = $this->_setColorRgba($sName . '_font_color_default_h1', $sColFontDef);
+        //--- Default Fonts
+        if($this->_isModule) {
+            $this->_aConfig['aLessConfig']['bx-font-family'] = $this->_setValue($sName . '_font_family', 'Helvetica, Arial, sans-serif');
+            $this->_aConfig['aLessConfig']['bx-font-size-default'] = $this->_setSize($sName . '_font_size_default', '18px');
+            $this->_aConfig['aLessConfig']['bx-font-size-small'] = $this->_setSize($sName . '_font_size_small', '14px');
+            $this->_aConfig['aLessConfig']['bx-font-size-middle'] = $this->_setSize($sName . '_font_size_middle', '16px');
+            $this->_aConfig['aLessConfig']['bx-font-size-large'] = $this->_setSize($sName . '_font_size_large', '22px');
+            $this->_aConfig['aLessConfig']['bx-font-size-h1'] = $this->_setSize($sName . '_font_size_h1', '38px');
+            $this->_aConfig['aLessConfig']['bx-font-size-h2'] = $this->_setSize($sName . '_font_size_h2', '24px');
+            $this->_aConfig['aLessConfig']['bx-font-size-h3'] = $this->_setSize($sName . '_font_size_h3', '18px');
+
+            $this->_aConfig['aLessConfig']['bx-font-color-default'] = $this->_setColorRgba($sName . '_font_color_default', 'rgba(51, 51, 51, 1)');
+            $this->_aConfig['aLessConfig']['bx-font-color-grayed'] = $this->_setColorRgba($sName . '_font_color_grayed', 'rgba(153, 153, 153, 1)');
+            $this->_aConfig['aLessConfig']['bx-font-color-contrasted'] = $this->_setColorRgba($sName . '_font_color_contrasted', 'rgba(255, 255, 255, 1)');
+        }
+
+        //--- Font Family
+        $this->_aConfig['aLessConfig']['bx-font-family-cover'] = $this->_setValue($sName . '_cover_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-block-title'] = $this->_setValue($sName . '_block_title_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-popup-title'] = $this->_setValue($sName . '_popup_title_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-form-input'] = $this->_setValue($sName . '_form_input_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-menu-main'] = $this->_setValue($sName . '_menu_main_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-menu-account'] = $this->_setValue($sName . '_menu_account_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-menu-add'] = $this->_setValue($sName . '_menu_add_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-menu-page'] = $this->_setValue($sName . '_menu_page_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-menu-slide'] = $this->_setValue($sName . '_menu_slide_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-button'] = $this->_setValue($sName . '_button_lg_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-button-small'] = $this->_setValue($sName . '_button_sm_font_family');
+
+        //--- Font Size
+        $this->_aConfig['aLessConfig']['bx-font-size-cover'] = $this->_setSize($sName . '_cover_font_size', '2.0rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-block-title'] = $this->_setSize($sName . '_block_title_font_size', '1.5rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-popup-title'] = $this->_setSize($sName . '_popup_title_font_size', '1.5rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-form-input'] = $this->_setSize($sName . '_form_input_font_size', '1.125rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-menu-main'] = $this->_setSize($sName . '_menu_main_font_size', '1.125rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-menu-account'] = $this->_setSize($sName . '_menu_account_font_size', '1.125rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-menu-add'] = $this->_setSize($sName . '_menu_add_font_size', '1.125rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-menu-page'] = $this->_setSize($sName . '_menu_page_font_size', '1.2rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-menu-slide'] = $this->_setSize($sName . '_menu_slide_font_size', '1.0rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-button'] = $this->_setSize($sName . '_button_lg_font_size', '1rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-button-small'] = $this->_setSize($sName . '_button_sm_font_size', '0.9rem');
+
+        //--- Font Color
+        $sColFontDef = 'rgba(51, 51, 51, 1.0)';		//--- Default
+        $sColFontGrd = 'rgba(153, 153, 153, 1)';	//--- Grayed
+        $sColFontCnt = 'rgba(255, 255, 255, 1)';	//--- Contrasted
+        $sColFontLnk = 'rgba(62, 134, 133, 1)';		//--- Link
+        $sColFontLnkHov = 'rgba(62, 134, 133, 1)';	//--- Link on-hiver
+        $this->_aConfig['aLessConfig']['bx-font-color-footer'] = $this->_setColorRgba($sName . '_footer_font_color', $sColFontDef);
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-main'] = $this->_setColorRgba($sName . '_menu_main_font_color', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-main-hover'] = $this->_setColorRgba($sName . '_menu_main_font_color_hover', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-main-active'] = $this->_setColorRgba($sName . '_menu_main_font_color_active', 'rgba(0, 0, 0, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-account'] = $this->_setColorRgba($sName . '_menu_account_font_color', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-account-hover'] = $this->_setColorRgba($sName . '_menu_account_font_color_hover', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-account-active'] = $this->_setColorRgba($sName . '_menu_account_font_color_active', 'rgba(0, 0, 0, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-add'] = $this->_setColorRgba($sName . '_menu_add_font_color', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-add-hover'] = $this->_setColorRgba($sName . '_menu_add_font_color_hover', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-add-active'] = $this->_setColorRgba($sName . '_menu_add_font_color_active', 'rgba(0, 0, 0, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-page'] = $this->_setColorRgba($sName . '_menu_page_font_color', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-page-hover'] = $this->_setColorRgba($sName . '_menu_page_font_color_hover', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-page-active'] = $this->_setColorRgba($sName . '_menu_page_font_color_active', 'rgba(0, 0, 0, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-slide'] = $this->_setColorRgba($sName . '_menu_slide_font_color', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-slide-hover'] = $this->_setColorRgba($sName . '_menu_slide_font_color_hover', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-slide-active'] = $this->_setColorRgba($sName . '_menu_slide_font_color_active', 'rgba(0, 0, 0, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-button'] = $this->_setColorRgba($sName . '_button_lg_font_color', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-button-hover'] = $this->_setColorRgba($sName . '_button_lg_font_color_hover', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-button-small'] = $this->_setColorRgba($sName . '_button_sm_font_color', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-button-small-hover'] = $this->_setColorRgba($sName . '_button_sm_font_color_hover', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-form-input'] = $this->_setColorRgba($sName . '_form_input_font_color', $sColFontDef);
+        $this->_aConfig['aLessConfig']['bx-font-color-default-h1'] = $this->_setColorRgba($sName . '_font_color_default_h1', $sColFontDef);
         $this->_aConfig['aLessConfig']['bx-font-color-grayed-h1'] = $this->_setColorRgba($sName . '_font_color_grayed_h1', $sColFontGrd);
         $this->_aConfig['aLessConfig']['bx-font-color-contrasted-h1'] = $this->_setColorRgba($sName . '_font_color_contrasted_h1', $sColFontCnt);
         $this->_aConfig['aLessConfig']['bx-font-color-link-h1'] = $this->_setColorRgba($sName . '_font_color_link_h1', $sColFontLnk);
@@ -303,187 +321,26 @@ class BxTemplConfig extends BxBaseConfig
         $this->_aConfig['aLessConfig']['bx-font-color-link-h3'] = $this->_setColorRgba($sName . '_font_color_link_h3', $sColFontLnk);
         $this->_aConfig['aLessConfig']['bx-font-color-link-h3-hover'] = $this->_setColorRgba($sName . '_font_color_link_h3_hover', $sColFontLnkHov);
 
-		//--- Font Weight
-		$this->_aConfig['aLessConfig']['bx-font-weight-cover'] = $this->_setValue($sName . '_cover_font_weight', '700');
-		$this->_aConfig['aLessConfig']['bx-font-weight-block-title'] = $this->_setValue($sName . '_block_title_font_weight', '500');
-		$this->_aConfig['aLessConfig']['bx-font-weight-menu-main'] = $this->_setValue($sName . '_menu_main_font_weight', '400');
-		$this->_aConfig['aLessConfig']['bx-font-weight-menu-account'] = $this->_setValue($sName . '_menu_account_font_weight', '400');
-		$this->_aConfig['aLessConfig']['bx-font-weight-menu-add'] = $this->_setValue($sName . '_menu_add_font_weight', '400');
-		$this->_aConfig['aLessConfig']['bx-font-weight-menu-page'] = $this->_setValue($sName . '_menu_page_font_weight', '400');
-		$this->_aConfig['aLessConfig']['bx-font-weight-menu-slide'] = $this->_setValue($sName . '_menu_slide_font_weight', '400');
-		$this->_aConfig['aLessConfig']['bx-font-weight-button'] = $this->_setValue($sName . '_button_lg_font_weight', '400');
-		$this->_aConfig['aLessConfig']['bx-font-weight-button-small'] = $this->_setValue($sName . '_button_sm_font_weight', '400');
-		$this->_aConfig['aLessConfig']['bx-font-weight-h1'] = $this->_setValue($sName . '_font_weight_h1', '700');
-		$this->_aConfig['aLessConfig']['bx-font-weight-h2'] = $this->_setValue($sName . '_font_weight_h2', '700');
-		$this->_aConfig['aLessConfig']['bx-font-weight-h3'] = $this->_setValue($sName . '_font_weight_h3', '500');
-
-		//--- Viewport 
-		$this->_aConfig['aLessConfig']['bx-viewport-font-tablet'] = $this->_setValue($sName . '_vpt_font_size_scale', '100%');
-		$this->_aConfig['aLessConfig']['bx-viewport-font-mobile'] = $this->_setValue($sName . '_vpm_font_size_scale', '85%');
-
-		if($this->_isModule)
-        	$this->setPageWidth('bx_decorous_page_width');
-    }
-
-    protected function _setValue($sKey, $sDefault = '')
-    {
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue))
-			$sValue = $sDefault;
-
-    	return $sValue;
-    }
-
-	protected function _setSize($sKey, $sDefault = '')
-    {
-    	if(empty($sDefault))
-    		$sDefault = '0px';
-
-    	$sPattern = "/([0-9\.]+\s*((px)|(rem)|(vh))){1}/";
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || !preg_match($sPattern, $sValue))
-    		$sValue = $sDefault;
-
-    	return $sValue;
-    }
-
-    protected function _setMargin($sKey, $sDefault = '')
-    {
-    	if(empty($sDefault))
-    		$sDefault = '0px';
-
-    	$sPattern = "/([0-9\.]+\s*((px)|(rem))\s*){1,4}/";
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || ($sValue != 'inherit' && !preg_match($sPattern, $sValue)))
-    		$sValue = $sDefault;
-
-    	return $sValue;
-    }
-
-	protected function _setColorRgb($sKey, $sDefault = '')
-    {
-    	if(empty($sDefault))
-    		$sDefault = 'rgb(51, 51, 51)';
-
-    	$sPattern = "/rgb\s*\(\s*[0-9]{1,3}\s*,\s*[0-9]{1,3}\s*,\s*[0-9]{1,3}\s*\)/";
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || !preg_match($sPattern, $sValue))
-    		$sValue = $sDefault;
-
-    	return $sValue;
-    }
-
-    protected function _setColorRgba($sKey, $sDefault = '')
-    {
-    	if(empty($sDefault))
-    		$sDefault = 'rgba(51, 51, 51, 1.0)';
-
-    	$sPattern = "/rgba?\s*\(\s*([0-9]{1,3}\s*,?\s*){3}\s*([0-9\.]+)?\s*\)/";
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || !preg_match($sPattern, $sValue))
-    		$sValue = $sDefault;
-
-    	return $sValue;
-    }
-
-    protected function _setBgUrl($sKey, $oStorage = null)
-    {
-    	if(empty($oStorage))
-    		$oStorage = BxDolStorage::getObjectInstance('sys_images_custom');
-
-		$iImageId = (int)getParam($sKey);
-		if(empty($iImageId))
-			return "none";
-
-		$sImageUrl = $oStorage->getFileUrlById($iImageId);
-		if(empty($sImageUrl))
-			return "none";
-
-		return "url('" . $sImageUrl . "')";
-    }
-
-    protected function _setBgRepeat($sKey, $sDefault = '')
-    {
-		if(empty($sDefault))
-    		$sDefault = 'repeat';
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || !in_array($sValue, array('no-repeat', 'repeat', 'repeat-x', 'repeat-y')))
-    		$sValue = $sDefault;
-
-		return $sValue;
-    }
-
-    protected function _setBgAttachment($sKey, $sDefault = '')
-    {
-		if(empty($sDefault))
-    		$sDefault = 'scroll';
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || !in_array($sValue, array('fixed', 'scroll', 'local')))
-    		$sValue = $sDefault;
-
-		return $sValue;
-    }
-
-    protected function _setBgSize($sKey, $sDefault = '')
-    {
-		if(empty($sDefault))
-    		$sDefault = 'auto';
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || !in_array($sValue, array('auto', 'cover', 'contain')))
-    		$sValue = $sDefault;
-
-		return $sValue;
-    }
-
-    protected function _setShadow($sKey, $sDefault = '')
-    {
-    	if(empty($sDefault))
-    		$sDefault = '0px 1px 3px 0px rgba(0, 0, 0, 0.25)';
-
-    	$sPattern = "/((-?[0-9]+\s*px\s*){4}\s*rgba\s*\(\s*([0-9]{1,3}\s*,\s*){3}\s*[0-9\.]+\s*\)\s*,?\s*)+/";
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || $sValue == 'none')
-    		$sValue = 'none';
-    	else if(!preg_match($sPattern, $sValue))
-    		$sValue = $sDefault;
-
-		return $sValue;
-    }
-
-    protected function _setShadowFont($sKey, $sDefault = '')
-    {
-    	if(empty($sDefault))
-    		$sDefault = '0px 1px 3px rgba(0, 0, 0, 0.25)';
-
-    	$sPattern = "/(-?[0-9]+\s*px\s*){3}\s*rgba\s*\(\s*([0-9]{1,3}\s*,\s*){3}\s*[0-9\.]+\s*\)/";
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || $sValue == 'none')
-    		$sValue = 'none';
-    	else if(!preg_match($sPattern, $sValue))
-    		$sValue = $sDefault;
-
-		return $sValue;
-    }
-    
-    protected function _setAlign($sKey, $sDefault = '')
-    {
-		if(empty($sDefault))
-    		$sDefault = 'left';
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || !in_array($sValue, array('left', 'center', 'right')))
-    		$sValue = $sDefault;
-
-		return $sValue;
+        //--- Font Weight
+        $this->_aConfig['aLessConfig']['bx-font-weight-cover'] = $this->_setValue($sName . '_cover_font_weight', '700');
+        $this->_aConfig['aLessConfig']['bx-font-weight-block-title'] = $this->_setValue($sName . '_block_title_font_weight', '500');
+        $this->_aConfig['aLessConfig']['bx-font-weight-menu-main'] = $this->_setValue($sName . '_menu_main_font_weight', '400');
+        $this->_aConfig['aLessConfig']['bx-font-weight-menu-account'] = $this->_setValue($sName . '_menu_account_font_weight', '400');
+        $this->_aConfig['aLessConfig']['bx-font-weight-menu-add'] = $this->_setValue($sName . '_menu_add_font_weight', '400');
+        $this->_aConfig['aLessConfig']['bx-font-weight-menu-page'] = $this->_setValue($sName . '_menu_page_font_weight', '400');
+        $this->_aConfig['aLessConfig']['bx-font-weight-menu-slide'] = $this->_setValue($sName . '_menu_slide_font_weight', '400');
+        $this->_aConfig['aLessConfig']['bx-font-weight-button'] = $this->_setValue($sName . '_button_lg_font_weight', '400');
+        $this->_aConfig['aLessConfig']['bx-font-weight-button-small'] = $this->_setValue($sName . '_button_sm_font_weight', '400');
+        $this->_aConfig['aLessConfig']['bx-font-weight-h1'] = $this->_setValue($sName . '_font_weight_h1', '700');
+        $this->_aConfig['aLessConfig']['bx-font-weight-h2'] = $this->_setValue($sName . '_font_weight_h2', '700');
+        $this->_aConfig['aLessConfig']['bx-font-weight-h3'] = $this->_setValue($sName . '_font_weight_h3', '500');
+
+        //--- Viewport 
+        $this->_aConfig['aLessConfig']['bx-viewport-font-tablet'] = $this->_setValue($sName . '_vpt_font_size_scale', '100%');
+        $this->_aConfig['aLessConfig']['bx-viewport-font-mobile'] = $this->_setValue($sName . '_vpm_font_size_scale', '85%');
+
+        if($this->_isModule)
+            $this->setPageWidth('bx_decorous_page_width');
     }
 }
 

+ 58 - 39
modules/boonex/lucid/data/template/system/css/default.less

@@ -63,7 +63,8 @@ html.bx-media-phone {
     box-shadow: @bx-shadow-card;
 }
 .bx-popup-applied {
-    .radius(@bx-border-radius-popup);
+    border-radius: @bx-border-radius-popup;
+    background-clip: padding-box;
 }
 .bx-popup-applied:not(.bx-popup-chain),
 .bx-popup-applied.bx-popup-chain .bx-popup-chain-item {
@@ -359,7 +360,8 @@ a.bx-def-font-h3:hover {
     border-style: @bx-border-type;
     border-color: @bx-color-border-cover;
 
-    .radius(@bx-border-radius-cover);
+    border-radius: @bx-border-radius-cover;
+    background-clip: padding-box;
 
     -webkit-box-shadow: @bx-shadow-cover;
     -moz-box-shadow: @bx-shadow-cover;
@@ -380,7 +382,8 @@ a.bx-def-font-h3:hover {
     border-style: @bx-border-type;
     border-color: @bx-color-border-cover-icon;
 
-    .radius(@bx-border-radius-cover-icon);
+    border-radius: @bx-border-radius-cover-icon;
+    background-clip: padding-box;
 
     -webkit-box-shadow: @bx-shadow-cover-icon;
     -moz-box-shadow: @bx-shadow-cover-icon;
@@ -405,23 +408,25 @@ a.bx-def-font-h3:hover {
 
 /* block */
 .bx-def-border-block {
-	border-width: @bx-border-width-block;
-	border-style: @bx-border-type;
-	border-color: @bx-color-border-block;
+    border-width: @bx-border-width-block;
+    border-style: @bx-border-type;
+    border-color: @bx-color-border-block;
 
-	.radius(@bx-border-radius-block);
+    border-radius: @bx-border-radius-block;
+    background-clip: padding-box;
 }
 .bx-def-border-radius-block {
-    .radius(@bx-border-radius-block);
+    border-radius: @bx-border-radius-block;
+    background-clip: padding-box;
 }
 .bx-db-header {
-	padding: @bx-title-padding-block;
+    padding: @bx-title-padding-block;
 
-	border-width: @bx-border-width-block-title;
-	border-style: solid;
-	border-color: @bx-color-border-block-title;
+    border-width: @bx-border-width-block-title;
+    border-style: solid;
+    border-color: @bx-color-border-block-title;
 
-	.radius(@bx-border-radius-block-title);	
+    border-radius: @bx-border-radius-block-title;
 }
 .bx-def-color-bg-block .bx-db-header,
 .bx-def-image-bg-block .bx-db-header {
@@ -457,31 +462,37 @@ a.bx-def-font-h3:hover {
     .background-color (@bx-color-box-hover);
 }
 .bx-def-box.bx-def-round-corners {
-	.radius(@bx-border-radius-box);
-	overflow: hidden;
+    border-radius: @bx-border-radius-box;
+    background-clip: padding-box;
+}
+.bx-base-text-unit.bx-base-text-unit-ext.bx-def-round-corners img.bx-base-text-unit-cover.bx-def-round-corners,
+.bx-base-text-unit.bx-base-text-unit-ext .bx-def-round-corners img.bx-base-text-unit-cover.bx-def-round-corners {
+    border-radius: @bx-border-radius-box-tl @bx-border-radius-box-tr 0 0;
+}
+.bx-base-text-unit.bx-base-text-unit-gallery.bx-def-round-corners .bx-base-text-unit-thumb.bx-def-round-corners,
+.bx-base-text-unit.bx-base-text-unit-gallery .bx-def-round-corners .bx-base-text-unit-thumb.bx-def-round-corners {
+    border-radius: 0 0 @bx-border-radius-box-br @bx-border-radius-box-bl;
 }
 
 /* box: timeline */
 .bx-tl-view div.bx-tl-item div.bx-tl-item-footer {
-    .radius(@bx-border-radius-box);
-
-    border-top-left-radius: 0;
-    border-top-right-radius: 0;    
+    border-radius: 0 0 @bx-border-radius-box-br @bx-border-radius-box-bl;
 }
 
 /* popup */
 .bx-popup-border {
-	border-width: @bx-border-width-popup;
-	border-style: solid;
-	border-color: @bx-color-border-popup;
+    border-width: @bx-border-width-popup;
+    border-style: solid;
+    border-color: @bx-color-border-popup;
 
-	.radius(@bx-border-radius-popup);
+    border-radius: @bx-border-radius-popup;
+    background-clip: padding-box;
 }
 .bx-popup-color-bg {
-	background-color: @bx-color-popup;
+    background-color: @bx-color-popup;
 
-	background-image: @bx-image-bg-popup;
-	background-repeat: @bx-image-bg-popup-repeat;
+    background-image: @bx-image-bg-popup;
+    background-repeat: @bx-image-bg-popup-repeat;
     background-size: @bx-image-bg-popup-size;
 }
 .bx-popup-content-indent {
@@ -718,15 +729,17 @@ a.bx-def-font-h3:hover {
 .bx-form-value .bx-form-input-textarea,
 .bx-form-value .bx-form-input-password,
 .bx-form-value .bx-form-input-text {
-	border-color: @bx-color-border-form-input;
-	border-width: @bx-border-width-form-input;
-	.radius(@bx-border-radius-form-input);
+    border-color: @bx-color-border-form-input;
+    border-width: @bx-border-width-form-input;
 
-	background-color: @bx-color-form-input;
+    border-radius: @bx-border-radius-form-input;
+    background-clip: padding-box;
 
-	-webkit-box-shadow: @bx-shadow-form-input;
-	-moz-box-shadow: @bx-shadow-form-input;
-	box-shadow: @bx-shadow-form-input;
+    background-color: @bx-color-form-input;
+
+    -webkit-box-shadow: @bx-shadow-form-input;
+    -moz-box-shadow: @bx-shadow-form-input;
+    box-shadow: @bx-shadow-form-input;
 }
 .bx-form-value .bx-form-input-slider,
 .bx-form-value .bx-form-input-doublerange,
@@ -794,7 +807,8 @@ a.bx-def-font-h3:hover {
 	border-style: solid;
 	border-color: @bx-color-border-button;
 
-	.radius(@bx-border-radius-button);
+        border-radius: @bx-border-radius-button;
+	background-clip: padding-box;
 
 	-webkit-box-shadow: @bx-shadow-button;
 	-moz-box-shadow: @bx-shadow-button;
@@ -819,7 +833,8 @@ a.bx-def-font-h3:hover {
 	border-style: solid;
 	border-color: @bx-color-border-button-primary;
 
-	.radius(@bx-border-radius-button-primary);
+        border-radius: @bx-border-radius-button-primary;
+	background-clip: padding-box;
 
 	-webkit-box-shadow: @bx-shadow-button-primary;
 	-moz-box-shadow: @bx-shadow-button-primary;
@@ -898,7 +913,8 @@ a.bx-def-font-h3:hover {
 	border-style: solid;
 	border-color: @bx-color-border-button-large;
 
-	.radius(@bx-border-radius-button-large);
+        border-radius: @bx-border-radius-button-large;
+	background-clip: padding-box;
 
 	-webkit-box-shadow: @bx-shadow-button-large;
 	-moz-box-shadow: @bx-shadow-button-large;
@@ -923,7 +939,8 @@ a.bx-def-font-h3:hover {
 	border-style: solid;
 	border-color: @bx-color-border-button-large-primary;
 
-	.radius(@bx-border-radius-button-large-primary);
+        border-radius: @bx-border-radius-button-large-primary;
+	background-clip: padding-box;
 
 	-webkit-box-shadow: @bx-shadow-button-large-primary;
 	-moz-box-shadow: @bx-shadow-button-large-primary;
@@ -1002,7 +1019,8 @@ a.bx-def-font-h3:hover {
 	border-style: solid;
 	border-color: @bx-color-border-button-small;
 
-	.radius(@bx-border-radius-button-small);
+        border-radius: @bx-border-radius-button-small;
+        background-clip: padding-box;
 
 	-webkit-box-shadow: @bx-shadow-button-small;
 	-moz-box-shadow: @bx-shadow-button-small;
@@ -1027,7 +1045,8 @@ a.bx-def-font-h3:hover {
 	border-style: solid;
 	border-color: @bx-color-border-button-small-primary;
 
-	.radius(@bx-border-radius-button-small-primary);
+        border-radius: @bx-border-radius-button-small-primary;
+        background-clip: padding-box;
 
 	-webkit-box-shadow: @bx-shadow-button-small-primary;
 	-moz-box-shadow: @bx-shadow-button-small-primary;

+ 182 - 327
modules/boonex/lucid/data/template/system/scripts/BxTemplConfig.php

@@ -9,8 +9,8 @@
 
 class BxTemplConfig extends BxBaseConfig
 {
-	protected $_isModule;
-	
+    protected $_isModule;
+
     function __construct()
     {
         parent::__construct();
@@ -19,19 +19,18 @@ class BxTemplConfig extends BxBaseConfig
         $this->_isModule = BxDolModuleQuery::getInstance()->isModuleByName($sName);
 
         //--- Defaults
-
         $this->_aConfig['aLessConfig'] = array_merge($this->_aConfig['aLessConfig'], array(
-			'bx-margin' => '16px',
-			'bx-margin-sec' => '8px',
-			'bx-margin-thd' => '4px',
-
-			'bx-padding' => '16px',
-			'bx-padding-sec' => '8px',
-			'bx-padding-thd' => '4px',
-        		
-			'bx-size-avatar' => '96px',
-			'bx-size-thumb' => '32px',
-			'bx-size-icon' => '32px',
+            'bx-margin' => '16px',
+            'bx-margin-sec' => '8px',
+            'bx-margin-thd' => '4px',
+
+            'bx-padding' => '16px',
+            'bx-padding-sec' => '8px',
+            'bx-padding-thd' => '4px',
+
+            'bx-size-avatar' => '96px',
+            'bx-size-thumb' => '32px',
+            'bx-size-icon' => '32px',
         ));
 
         //--- Images
@@ -71,7 +70,7 @@ class BxTemplConfig extends BxBaseConfig
         $this->_aConfig['aLessConfig']['bx-image-bg-menu-slide'] = $this->_setBgUrl($sName . '_menu_slide_bg_image', $oStorage);
         $this->_aConfig['aLessConfig']['bx-image-bg-menu-slide-repeat'] = $this->_setBgRepeat($sName . '_menu_slide_bg_image_repeat', 'no-repeat');
         $this->_aConfig['aLessConfig']['bx-image-bg-menu-slide-size'] = $this->_setBgSize($sName . '_menu_slide_bg_image_size', 'cover');
-        
+
 
         //--- Shadow
         $this->_aConfig['aLessConfig']['bx-shadow-header'] = $this->_setShadow($sName . '_header_shadow');
@@ -112,13 +111,13 @@ class BxTemplConfig extends BxBaseConfig
         $this->_aConfig['aLessConfig']['bx-height-cover'] = $this->_setSize($sName . '_cover_height', '40vh');
         $this->_aConfig['aLessConfig']['bx-height-block-title-div'] = $this->_setSize($sName . '_block_title_div_height', '1px');
         $this->_aConfig['aLessConfig']['bx-height-form-input'] = $this->_setSize($sName . '_form_input_height', '2.2rem');
-		$this->_aConfig['aLessConfig']['bx-height-button-large'] = $this->_setSize($sName . '_button_lg_height', '2.25rem');
-		$this->_aConfig['aLessConfig']['bx-height-button-large-primary'] = $this->_setSize($sName . '_button_lgp_height', '2.25rem');
+        $this->_aConfig['aLessConfig']['bx-height-button-large'] = $this->_setSize($sName . '_button_lg_height', '2.25rem');
+        $this->_aConfig['aLessConfig']['bx-height-button-large-primary'] = $this->_setSize($sName . '_button_lgp_height', '2.25rem');
         $this->_aConfig['aLessConfig']['bx-height-button'] = $this->_setSize($sName . '_button_nl_height', '2.25rem');
-		$this->_aConfig['aLessConfig']['bx-height-button-primary'] = $this->_setSize($sName . '_button_nlp_height', '2.25rem');
-		$this->_aConfig['aLessConfig']['bx-height-button-small'] = $this->_setSize($sName . '_button_sm_height', '1.5rem');
-		$this->_aConfig['aLessConfig']['bx-height-button-small-primary'] = $this->_setSize($sName . '_button_smp_height', '1.5rem');
-		
+        $this->_aConfig['aLessConfig']['bx-height-button-primary'] = $this->_setSize($sName . '_button_nlp_height', '2.25rem');
+        $this->_aConfig['aLessConfig']['bx-height-button-small'] = $this->_setSize($sName . '_button_sm_height', '1.5rem');
+        $this->_aConfig['aLessConfig']['bx-height-button-small-primary'] = $this->_setSize($sName . '_button_smp_height', '1.5rem');
+
 
         //--- Title/Content Margins
         $this->_aConfig['aLessConfig']['bx-content-padding-header'] = $this->_setMargin($sName . '_header_content_padding');
@@ -133,15 +132,15 @@ class BxTemplConfig extends BxBaseConfig
         $this->_aConfig['aLessConfig']['bx-content-padding-menu-page'] = $this->_setMargin($sName . '_menu_page_content_padding');
         $this->_aConfig['aLessConfig']['bx-content-padding-menu-slide'] = $this->_setMargin($sName . '_menu_slide_content_padding');
 
-		$this->_aConfig['aLessConfig']['bx-title-padding-block'] = $this->_setMargin($sName . '_block_title_padding');
-		$this->_aConfig['aLessConfig']['bx-title-padding-popup'] = $this->_setMargin($sName . '_popup_title_padding');
+        $this->_aConfig['aLessConfig']['bx-title-padding-block'] = $this->_setMargin($sName . '_block_title_padding');
+        $this->_aConfig['aLessConfig']['bx-title-padding-popup'] = $this->_setMargin($sName . '_popup_title_padding');
 
 
         //--- Colors
-		if($this->_isModule) {
-	        $this->_aConfig['aLessConfig']['bx-color-hl'] = $this->_setColorRgba($sName . '_general_item_bg_color_hover', 'rgba(196, 248, 156, 0.2)');
-			$this->_aConfig['aLessConfig']['bx-color-active'] = $this->_setColorRgba($sName . '_general_item_bg_color_active', 'rgba(196, 248, 156, 0.4)');
-		}
+        if($this->_isModule) {
+            $this->_aConfig['aLessConfig']['bx-color-hl'] = $this->_setColorRgba($sName . '_general_item_bg_color_hover', 'rgba(196, 248, 156, 0.2)');
+            $this->_aConfig['aLessConfig']['bx-color-active'] = $this->_setColorRgba($sName . '_general_item_bg_color_active', 'rgba(196, 248, 156, 0.4)');
+        }
 
         $this->_aConfig['aLessConfig']['bx-color-header'] = $this->_setColorRgba($sName . '_header_bg_color', 'rgba(59, 134, 134, 1)');
         $this->_aConfig['aLessConfig']['bx-color-footer'] = $this->_setColorRgba($sName . '_footer_bg_color', 'rgba(255, 255, 255, 1)');
@@ -159,22 +158,22 @@ class BxTemplConfig extends BxBaseConfig
         $this->_aConfig['aLessConfig']['bx-color-menu-add'] = $this->_setColorRgba($sName . '_menu_add_bg_color', 'rgba(255, 255, 255, 0.9)');
         $this->_aConfig['aLessConfig']['bx-color-menu-page'] = $this->_setColorRgba($sName . '_menu_page_bg_color', 'rgba(242, 242, 242, 1)');
         $this->_aConfig['aLessConfig']['bx-color-menu-slide'] = $this->_setColorRgba($sName . '_menu_slide_bg_color', 'rgba(255, 255, 255, 0.9)');
-		$this->_aConfig['aLessConfig']['bx-color-form-input'] = $this->_setColorRgba($sName . '_form_input_bg_color', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-form-input-active'] = $this->_setColorRgba($sName . '_form_input_bg_color_active', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-form-input'] = $this->_setColorRgba($sName . '_form_input_bg_color', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-form-input-active'] = $this->_setColorRgba($sName . '_form_input_bg_color_active', 'rgba(255, 255, 255, 1)');
         $this->_aConfig['aLessConfig']['bx-color-button-large'] = $this->_setColorRgba($sName . '_button_lg_bg_color', 'rgba(108, 170, 138, 1)');
         $this->_aConfig['aLessConfig']['bx-color-button-large-hover'] = $this->_setColorRgba($sName . '_button_lg_bg_color_hover', 'rgba(58, 134, 134, 1)');
         $this->_aConfig['aLessConfig']['bx-color-button-large-primary'] = $this->_setColorRgba($sName . '_button_lgp_bg_color', 'rgba(108, 170, 138, 1)');
         $this->_aConfig['aLessConfig']['bx-color-button-large-primary-hover'] = $this->_setColorRgba($sName . '_button_lgp_bg_color_hover', 'rgba(58, 134, 134, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-button'] = $this->_setColorRgba($sName . '_button_nl_bg_color', 'rgba(108, 170, 138, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-button'] = $this->_setColorRgba($sName . '_button_nl_bg_color', 'rgba(108, 170, 138, 1)');
         $this->_aConfig['aLessConfig']['bx-color-button-hover'] = $this->_setColorRgba($sName . '_button_nl_bg_color_hover', 'rgba(58, 134, 134, 1)');
         $this->_aConfig['aLessConfig']['bx-color-button-primary'] = $this->_setColorRgba($sName . '_button_nlp_bg_color', 'rgba(108, 170, 138, 1)');
         $this->_aConfig['aLessConfig']['bx-color-button-primary-hover'] = $this->_setColorRgba($sName . '_button_nlp_bg_color_hover', 'rgba(58, 134, 134, 1)');
         $this->_aConfig['aLessConfig']['bx-color-button-small'] = $this->_setColorRgba($sName . '_button_sm_bg_color', 'rgba(108, 170, 138, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-button-small-hover'] = $this->_setColorRgba($sName . '_button_sm_bg_color_hover', 'rgba(58, 134, 134, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-button-small-primary'] = $this->_setColorRgba($sName . '_button_smp_bg_color', 'rgba(108, 170, 138, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-button-small-primary-hover'] = $this->_setColorRgba($sName . '_button_smp_bg_color_hover', 'rgba(58, 134, 134, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-button-small-hover'] = $this->_setColorRgba($sName . '_button_sm_bg_color_hover', 'rgba(58, 134, 134, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-button-small-primary'] = $this->_setColorRgba($sName . '_button_smp_bg_color', 'rgba(108, 170, 138, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-button-small-primary-hover'] = $this->_setColorRgba($sName . '_button_smp_bg_color_hover', 'rgba(58, 134, 134, 1)');
 
-		$this->_aConfig['aLessConfig']['bx-color-font-cover'] = $this->_setColorRgba($sName . '_cover_font_color', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-font-cover'] = $this->_setColorRgba($sName . '_cover_font_color', 'rgba(255, 255, 255, 1)');
         $this->_aConfig['aLessConfig']['bx-color-font-block-title'] = $this->_setColorRgba($sName . '_block_title_font_color', 'rgba(0, 0, 20, 1)');
         $this->_aConfig['aLessConfig']['bx-color-font-popup-title'] = $this->_setColorRgba($sName . '_popup_title_font_color', 'rgba(255, 255, 255, 1.0)');
 
@@ -207,19 +206,19 @@ class BxTemplConfig extends BxBaseConfig
         $this->_aConfig['aLessConfig']['bx-color-border-button-small-primary'] = $this->_setColorRgba($sName . '_button_smp_border_color', $sDefColBorder);
         $this->_aConfig['aLessConfig']['bx-color-border-button-small-primary-hover'] = $this->_setColorRgba($sName . '_button_smp_border_color_hover', $sDefColBorder);
 
-		$this->_aConfig['aLessConfig']['bx-color-icon-header'] = $this->_setColorRgba($sName . '_header_icon_color', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-icon-header-hover'] = $this->_setColorRgba($sName . '_header_icon_color_hover', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-icon-footer'] = $this->_setColorRgba($sName . '_footer_icon_color', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-icon-footer-hover'] = $this->_setColorRgba($sName . '_footer_icon_color_hover', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-icon-body'] = $this->_setColorRgba($sName . '_body_icon_color', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-icon-body-hover'] = $this->_setColorRgba($sName . '_body_icon_color_hover', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-icon-header'] = $this->_setColorRgba($sName . '_header_icon_color', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-icon-header-hover'] = $this->_setColorRgba($sName . '_header_icon_color_hover', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-icon-footer'] = $this->_setColorRgba($sName . '_footer_icon_color', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-icon-footer-hover'] = $this->_setColorRgba($sName . '_footer_icon_color_hover', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-icon-body'] = $this->_setColorRgba($sName . '_body_icon_color', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-icon-body-hover'] = $this->_setColorRgba($sName . '_body_icon_color_hover', 'rgba(62, 134, 133, 1)');
 
-		$this->_aConfig['aLessConfig']['bx-color-link-header'] = $this->_setColorRgba($sName . '_header_link_color', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-link-header-hover'] = $this->_setColorRgba($sName . '_header_link_color_hover', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-link-footer'] = $this->_setColorRgba($sName . '_footer_link_color', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-link-footer-hover'] = $this->_setColorRgba($sName . '_footer_link_color_hover', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-link-body'] = $this->_setColorRgba($sName . '_body_link_color', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-link-body-hover'] = $this->_setColorRgba($sName . '_body_link_color_hover', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-link-header'] = $this->_setColorRgba($sName . '_header_link_color', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-link-header-hover'] = $this->_setColorRgba($sName . '_header_link_color_hover', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-link-footer'] = $this->_setColorRgba($sName . '_footer_link_color', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-link-footer-hover'] = $this->_setColorRgba($sName . '_footer_link_color_hover', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-link-body'] = $this->_setColorRgba($sName . '_body_link_color', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-link-body-hover'] = $this->_setColorRgba($sName . '_body_link_color_hover', 'rgba(62, 134, 133, 1)');
 
         //--- Borders
         $this->_aConfig['aLessConfig']['bx-border-width-header'] = $this->_setSize($sName . '_header_border_size');
@@ -244,11 +243,29 @@ class BxTemplConfig extends BxBaseConfig
         $this->_aConfig['aLessConfig']['bx-border-width-button-small-primary'] = $this->_setSize($sName . '_button_smp_border_size');
 
         $this->_aConfig['aLessConfig']['bx-border-radius-block'] = $this->_setSize($sName . '_block_border_radius');
+        list(
+            $this->_aConfig['aLessConfig']['bx-border-radius-block-tl'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-block-tr'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-block-br'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-block-bl']
+        ) = $this->_setSizeDivided($this->_aConfig['aLessConfig']['bx-border-radius-block']);
         $this->_aConfig['aLessConfig']['bx-border-radius-cover'] = $this->_setSize($sName . '_cover_border_radius');
         $this->_aConfig['aLessConfig']['bx-border-radius-cover-icon'] = $this->_setSize($sName . '_cover_icon_border_radius');
         $this->_aConfig['aLessConfig']['bx-border-radius-block-title'] = $this->_setSize($sName . '_block_title_border_radius');
         $this->_aConfig['aLessConfig']['bx-border-radius-box'] = $this->_setSize($sName . '_card_border_radius', '3px');
+        list(
+            $this->_aConfig['aLessConfig']['bx-border-radius-box-tl'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-box-tr'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-box-br'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-box-bl']
+        ) = $this->_setSizeDivided($this->_aConfig['aLessConfig']['bx-border-radius-box']);
         $this->_aConfig['aLessConfig']['bx-border-radius-popup'] = $this->_setSize($sName . '_popup_border_radius', '3px');
+        list(
+            $this->_aConfig['aLessConfig']['bx-border-radius-popup-tl'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-popup-tr'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-popup-br'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-popup-bl']
+        ) = $this->_setSizeDivided($this->_aConfig['aLessConfig']['bx-border-radius-popup']);
         $this->_aConfig['aLessConfig']['bx-border-radius-form-input'] = $this->_setSize($sName . '_form_input_border_radius', '3px');
         $this->_aConfig['aLessConfig']['bx-border-radius-button-large'] = $this->_setSize($sName . '_button_lg_border_radius');
         $this->_aConfig['aLessConfig']['bx-border-radius-button-large-primary'] = $this->_setSize($sName . '_button_lgp_border_radius');
@@ -260,94 +277,93 @@ class BxTemplConfig extends BxBaseConfig
         //--- Text
         $this->_aConfig['aLessConfig']['bx-text-align-cover'] = $this->_setAlign($sName . '_cover_text_align');
         $this->_aConfig['aLessConfig']['bx-text-align-menu-main-items'] = $this->_setAlign($sName . '_menu_main_align_items');
-        
-
-		//--- Default Fonts
-		if($this->_isModule) {
-	        $this->_aConfig['aLessConfig']['bx-font-family'] = $this->_setValue($sName . '_font_family', 'Helvetica, Arial, sans-serif');
-	        $this->_aConfig['aLessConfig']['bx-font-size-default'] = $this->_setSize($sName . '_font_size_default', '18px');
-	        $this->_aConfig['aLessConfig']['bx-font-size-small'] = $this->_setSize($sName . '_font_size_small', '14px');
-	        $this->_aConfig['aLessConfig']['bx-font-size-middle'] = $this->_setSize($sName . '_font_size_middle', '16px');
-	        $this->_aConfig['aLessConfig']['bx-font-size-large'] = $this->_setSize($sName . '_font_size_large', '22px');
-	        $this->_aConfig['aLessConfig']['bx-font-size-h1'] = $this->_setSize($sName . '_font_size_h1', '38px');
-	        $this->_aConfig['aLessConfig']['bx-font-size-h2'] = $this->_setSize($sName . '_font_size_h2', '24px');
-	        $this->_aConfig['aLessConfig']['bx-font-size-h3'] = $this->_setSize($sName . '_font_size_h3', '18px');
-
-	        $this->_aConfig['aLessConfig']['bx-font-color-default'] = $this->_setColorRgba($sName . '_font_color_default', 'rgba(51, 51, 51, 1)');
-	        $this->_aConfig['aLessConfig']['bx-font-color-grayed'] = $this->_setColorRgba($sName . '_font_color_grayed', 'rgba(153, 153, 153, 1)');
-	        $this->_aConfig['aLessConfig']['bx-font-color-contrasted'] = $this->_setColorRgba($sName . '_font_color_contrasted', 'rgba(255, 255, 255, 1)');
-		}
-
-		//--- Font Family
-		$this->_aConfig['aLessConfig']['bx-font-family-cover'] = $this->_setValue($sName . '_cover_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-block-title'] = $this->_setValue($sName . '_block_title_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-popup-title'] = $this->_setValue($sName . '_popup_title_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-form-input'] = $this->_setValue($sName . '_form_input_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-menu-main'] = $this->_setValue($sName . '_menu_main_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-menu-account'] = $this->_setValue($sName . '_menu_account_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-menu-add'] = $this->_setValue($sName . '_menu_add_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-menu-page'] = $this->_setValue($sName . '_menu_page_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-menu-slide'] = $this->_setValue($sName . '_menu_slide_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-button-large'] = $this->_setValue($sName . '_button_lg_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-button-large-primary'] = $this->_setValue($sName . '_button_lgp_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-button'] = $this->_setValue($sName . '_button_nl_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-button-primary'] = $this->_setValue($sName . '_button_nlp_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-button-small'] = $this->_setValue($sName . '_button_sm_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-button-small-primary'] = $this->_setValue($sName . '_button_smp_font_family');
-
-		//--- Font Size
-		$this->_aConfig['aLessConfig']['bx-font-size-cover'] = $this->_setSize($sName . '_cover_font_size', '2.0rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-block-title'] = $this->_setSize($sName . '_block_title_font_size', '1.5rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-popup-title'] = $this->_setSize($sName . '_popup_title_font_size', '1.5rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-form-input'] = $this->_setSize($sName . '_form_input_font_size', '1.125rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-menu-main'] = $this->_setSize($sName . '_menu_main_font_size', '1.125rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-menu-account'] = $this->_setSize($sName . '_menu_account_font_size', '1.125rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-menu-add'] = $this->_setSize($sName . '_menu_add_font_size', '1.125rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-menu-page'] = $this->_setSize($sName . '_menu_page_font_size', '1.2rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-menu-slide'] = $this->_setSize($sName . '_menu_slide_font_size', '1.0rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-button-large'] = $this->_setSize($sName . '_button_lg_font_size', '1rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-button-large-primary'] = $this->_setSize($sName . '_button_lgp_font_size', '1rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-button'] = $this->_setSize($sName . '_button_nl_font_size', '1rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-button-primary'] = $this->_setSize($sName . '_button_nlp_font_size', '1rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-button-small'] = $this->_setSize($sName . '_button_sm_font_size', '0.9rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-button-small-primary'] = $this->_setSize($sName . '_button_smp_font_size', '0.9rem');
-
-		//--- Font Color
-		$sColFontDef = 'rgba(51, 51, 51, 1.0)';		//--- Default
-		$sColFontGrd = 'rgba(153, 153, 153, 1)';	//--- Grayed
-		$sColFontCnt = 'rgba(255, 255, 255, 1)';	//--- Contrasted
-		$sColFontLnk = 'rgba(62, 134, 133, 1)';		//--- Link
-		$sColFontLnkHov = 'rgba(62, 134, 133, 1)';	//--- Link on-hiver
-		$this->_aConfig['aLessConfig']['bx-font-color-footer'] = $this->_setColorRgba($sName . '_footer_font_color', $sColFontDef);
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-main'] = $this->_setColorRgba($sName . '_menu_main_font_color', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-main-hover'] = $this->_setColorRgba($sName . '_menu_main_font_color_hover', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-main-active'] = $this->_setColorRgba($sName . '_menu_main_font_color_active', 'rgba(0, 0, 0, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-account'] = $this->_setColorRgba($sName . '_menu_account_font_color', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-account-hover'] = $this->_setColorRgba($sName . '_menu_account_font_color_hover', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-account-active'] = $this->_setColorRgba($sName . '_menu_account_font_color_active', 'rgba(0, 0, 0, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-add'] = $this->_setColorRgba($sName . '_menu_add_font_color', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-add-hover'] = $this->_setColorRgba($sName . '_menu_add_font_color_hover', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-add-active'] = $this->_setColorRgba($sName . '_menu_add_font_color_active', 'rgba(0, 0, 0, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-page'] = $this->_setColorRgba($sName . '_menu_page_font_color', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-page-hover'] = $this->_setColorRgba($sName . '_menu_page_font_color_hover', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-page-active'] = $this->_setColorRgba($sName . '_menu_page_font_color_active', 'rgba(0, 0, 0, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-slide'] = $this->_setColorRgba($sName . '_menu_slide_font_color', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-slide-hover'] = $this->_setColorRgba($sName . '_menu_slide_font_color_hover', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-slide-active'] = $this->_setColorRgba($sName . '_menu_slide_font_color_active', 'rgba(0, 0, 0, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-button-large'] = $this->_setColorRgba($sName . '_button_lg_font_color', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-button-large-hover'] = $this->_setColorRgba($sName . '_button_lg_font_color_hover', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-button-large-primary'] = $this->_setColorRgba($sName . '_button_lgp_font_color', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-button-large-primary-hover'] = $this->_setColorRgba($sName . '_button_lgp_font_color_hover', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-button'] = $this->_setColorRgba($sName . '_button_nl_font_color', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-button-hover'] = $this->_setColorRgba($sName . '_button_nl_font_color_hover', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-button-primary'] = $this->_setColorRgba($sName . '_button_nlp_font_color', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-button-primary-hover'] = $this->_setColorRgba($sName . '_button_nlp_font_color_hover', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-button-small'] = $this->_setColorRgba($sName . '_button_sm_font_color', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-button-small-hover'] = $this->_setColorRgba($sName . '_button_sm_font_color_hover', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-button-small-primary'] = $this->_setColorRgba($sName . '_button_smp_font_color', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-button-small-primary-hover'] = $this->_setColorRgba($sName . '_button_smp_font_color_hover', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-form-input'] = $this->_setColorRgba($sName . '_form_input_font_color', $sColFontDef);
-		$this->_aConfig['aLessConfig']['bx-font-color-default-h1'] = $this->_setColorRgba($sName . '_font_color_default_h1', $sColFontDef);
+
+        //--- Default Fonts
+        if($this->_isModule) {
+            $this->_aConfig['aLessConfig']['bx-font-family'] = $this->_setValue($sName . '_font_family', 'Helvetica, Arial, sans-serif');
+            $this->_aConfig['aLessConfig']['bx-font-size-default'] = $this->_setSize($sName . '_font_size_default', '18px');
+            $this->_aConfig['aLessConfig']['bx-font-size-small'] = $this->_setSize($sName . '_font_size_small', '14px');
+            $this->_aConfig['aLessConfig']['bx-font-size-middle'] = $this->_setSize($sName . '_font_size_middle', '16px');
+            $this->_aConfig['aLessConfig']['bx-font-size-large'] = $this->_setSize($sName . '_font_size_large', '22px');
+            $this->_aConfig['aLessConfig']['bx-font-size-h1'] = $this->_setSize($sName . '_font_size_h1', '38px');
+            $this->_aConfig['aLessConfig']['bx-font-size-h2'] = $this->_setSize($sName . '_font_size_h2', '24px');
+            $this->_aConfig['aLessConfig']['bx-font-size-h3'] = $this->_setSize($sName . '_font_size_h3', '18px');
+
+            $this->_aConfig['aLessConfig']['bx-font-color-default'] = $this->_setColorRgba($sName . '_font_color_default', 'rgba(51, 51, 51, 1)');
+            $this->_aConfig['aLessConfig']['bx-font-color-grayed'] = $this->_setColorRgba($sName . '_font_color_grayed', 'rgba(153, 153, 153, 1)');
+            $this->_aConfig['aLessConfig']['bx-font-color-contrasted'] = $this->_setColorRgba($sName . '_font_color_contrasted', 'rgba(255, 255, 255, 1)');
+        }
+
+        //--- Font Family
+        $this->_aConfig['aLessConfig']['bx-font-family-cover'] = $this->_setValue($sName . '_cover_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-block-title'] = $this->_setValue($sName . '_block_title_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-popup-title'] = $this->_setValue($sName . '_popup_title_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-form-input'] = $this->_setValue($sName . '_form_input_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-menu-main'] = $this->_setValue($sName . '_menu_main_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-menu-account'] = $this->_setValue($sName . '_menu_account_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-menu-add'] = $this->_setValue($sName . '_menu_add_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-menu-page'] = $this->_setValue($sName . '_menu_page_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-menu-slide'] = $this->_setValue($sName . '_menu_slide_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-button-large'] = $this->_setValue($sName . '_button_lg_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-button-large-primary'] = $this->_setValue($sName . '_button_lgp_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-button'] = $this->_setValue($sName . '_button_nl_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-button-primary'] = $this->_setValue($sName . '_button_nlp_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-button-small'] = $this->_setValue($sName . '_button_sm_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-button-small-primary'] = $this->_setValue($sName . '_button_smp_font_family');
+
+        //--- Font Size
+        $this->_aConfig['aLessConfig']['bx-font-size-cover'] = $this->_setSize($sName . '_cover_font_size', '2.0rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-block-title'] = $this->_setSize($sName . '_block_title_font_size', '1.5rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-popup-title'] = $this->_setSize($sName . '_popup_title_font_size', '1.5rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-form-input'] = $this->_setSize($sName . '_form_input_font_size', '1.125rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-menu-main'] = $this->_setSize($sName . '_menu_main_font_size', '1.125rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-menu-account'] = $this->_setSize($sName . '_menu_account_font_size', '1.125rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-menu-add'] = $this->_setSize($sName . '_menu_add_font_size', '1.125rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-menu-page'] = $this->_setSize($sName . '_menu_page_font_size', '1.2rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-menu-slide'] = $this->_setSize($sName . '_menu_slide_font_size', '1.0rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-button-large'] = $this->_setSize($sName . '_button_lg_font_size', '1rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-button-large-primary'] = $this->_setSize($sName . '_button_lgp_font_size', '1rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-button'] = $this->_setSize($sName . '_button_nl_font_size', '1rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-button-primary'] = $this->_setSize($sName . '_button_nlp_font_size', '1rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-button-small'] = $this->_setSize($sName . '_button_sm_font_size', '0.9rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-button-small-primary'] = $this->_setSize($sName . '_button_smp_font_size', '0.9rem');
+
+        //--- Font Color
+        $sColFontDef = 'rgba(51, 51, 51, 1.0)';		//--- Default
+        $sColFontGrd = 'rgba(153, 153, 153, 1)';	//--- Grayed
+        $sColFontCnt = 'rgba(255, 255, 255, 1)';	//--- Contrasted
+        $sColFontLnk = 'rgba(62, 134, 133, 1)';		//--- Link
+        $sColFontLnkHov = 'rgba(62, 134, 133, 1)';	//--- Link on-hiver
+        $this->_aConfig['aLessConfig']['bx-font-color-footer'] = $this->_setColorRgba($sName . '_footer_font_color', $sColFontDef);
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-main'] = $this->_setColorRgba($sName . '_menu_main_font_color', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-main-hover'] = $this->_setColorRgba($sName . '_menu_main_font_color_hover', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-main-active'] = $this->_setColorRgba($sName . '_menu_main_font_color_active', 'rgba(0, 0, 0, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-account'] = $this->_setColorRgba($sName . '_menu_account_font_color', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-account-hover'] = $this->_setColorRgba($sName . '_menu_account_font_color_hover', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-account-active'] = $this->_setColorRgba($sName . '_menu_account_font_color_active', 'rgba(0, 0, 0, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-add'] = $this->_setColorRgba($sName . '_menu_add_font_color', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-add-hover'] = $this->_setColorRgba($sName . '_menu_add_font_color_hover', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-add-active'] = $this->_setColorRgba($sName . '_menu_add_font_color_active', 'rgba(0, 0, 0, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-page'] = $this->_setColorRgba($sName . '_menu_page_font_color', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-page-hover'] = $this->_setColorRgba($sName . '_menu_page_font_color_hover', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-page-active'] = $this->_setColorRgba($sName . '_menu_page_font_color_active', 'rgba(0, 0, 0, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-slide'] = $this->_setColorRgba($sName . '_menu_slide_font_color', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-slide-hover'] = $this->_setColorRgba($sName . '_menu_slide_font_color_hover', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-slide-active'] = $this->_setColorRgba($sName . '_menu_slide_font_color_active', 'rgba(0, 0, 0, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-button-large'] = $this->_setColorRgba($sName . '_button_lg_font_color', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-button-large-hover'] = $this->_setColorRgba($sName . '_button_lg_font_color_hover', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-button-large-primary'] = $this->_setColorRgba($sName . '_button_lgp_font_color', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-button-large-primary-hover'] = $this->_setColorRgba($sName . '_button_lgp_font_color_hover', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-button'] = $this->_setColorRgba($sName . '_button_nl_font_color', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-button-hover'] = $this->_setColorRgba($sName . '_button_nl_font_color_hover', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-button-primary'] = $this->_setColorRgba($sName . '_button_nlp_font_color', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-button-primary-hover'] = $this->_setColorRgba($sName . '_button_nlp_font_color_hover', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-button-small'] = $this->_setColorRgba($sName . '_button_sm_font_color', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-button-small-hover'] = $this->_setColorRgba($sName . '_button_sm_font_color_hover', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-button-small-primary'] = $this->_setColorRgba($sName . '_button_smp_font_color', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-button-small-primary-hover'] = $this->_setColorRgba($sName . '_button_smp_font_color_hover', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-form-input'] = $this->_setColorRgba($sName . '_form_input_font_color', $sColFontDef);
+        $this->_aConfig['aLessConfig']['bx-font-color-default-h1'] = $this->_setColorRgba($sName . '_font_color_default_h1', $sColFontDef);
         $this->_aConfig['aLessConfig']['bx-font-color-grayed-h1'] = $this->_setColorRgba($sName . '_font_color_grayed_h1', $sColFontGrd);
         $this->_aConfig['aLessConfig']['bx-font-color-contrasted-h1'] = $this->_setColorRgba($sName . '_font_color_contrasted_h1', $sColFontCnt);
         $this->_aConfig['aLessConfig']['bx-font-color-link-h1'] = $this->_setColorRgba($sName . '_font_color_link_h1', $sColFontLnk);
@@ -363,40 +379,40 @@ class BxTemplConfig extends BxBaseConfig
         $this->_aConfig['aLessConfig']['bx-font-color-link-h3'] = $this->_setColorRgba($sName . '_font_color_link_h3', $sColFontLnk);
         $this->_aConfig['aLessConfig']['bx-font-color-link-h3-hover'] = $this->_setColorRgba($sName . '_font_color_link_h3_hover', $sColFontLnkHov);
 
-		//--- Font Weight
-		$this->_aConfig['aLessConfig']['bx-font-weight-cover'] = $this->_setValue($sName . '_cover_font_weight', '700');
-		$this->_aConfig['aLessConfig']['bx-font-weight-block-title'] = $this->_setValue($sName . '_block_title_font_weight', '500');
-		$this->_aConfig['aLessConfig']['bx-font-weight-menu-main'] = $this->_setValue($sName . '_menu_main_font_weight', '400');
-		$this->_aConfig['aLessConfig']['bx-font-weight-menu-account'] = $this->_setValue($sName . '_menu_account_font_weight', '400');
-		$this->_aConfig['aLessConfig']['bx-font-weight-menu-add'] = $this->_setValue($sName . '_menu_add_font_weight', '400');
-		$this->_aConfig['aLessConfig']['bx-font-weight-menu-page'] = $this->_setValue($sName . '_menu_page_font_weight', '400');
-		$this->_aConfig['aLessConfig']['bx-font-weight-menu-slide'] = $this->_setValue($sName . '_menu_slide_font_weight', '400');
-		$this->_aConfig['aLessConfig']['bx-font-weight-button-large'] = $this->_setValue($sName . '_button_lg_font_weight', '400');
-		$this->_aConfig['aLessConfig']['bx-font-weight-button-large-primary'] = $this->_setValue($sName . '_button_lgp_font_weight', '400');
-		$this->_aConfig['aLessConfig']['bx-font-weight-button'] = $this->_setValue($sName . '_button_nl_font_weight', '400');
-		$this->_aConfig['aLessConfig']['bx-font-weight-button-primary'] = $this->_setValue($sName . '_button_nlp_font_weight', '400');
-		$this->_aConfig['aLessConfig']['bx-font-weight-button-small'] = $this->_setValue($sName . '_button_sm_font_weight', '400');
-		$this->_aConfig['aLessConfig']['bx-font-weight-button-small-primary'] = $this->_setValue($sName . '_button_smp_font_weight', '400');
-		$this->_aConfig['aLessConfig']['bx-font-weight-h1'] = $this->_setValue($sName . '_font_weight_h1', '700');
-		$this->_aConfig['aLessConfig']['bx-font-weight-h2'] = $this->_setValue($sName . '_font_weight_h2', '700');
-		$this->_aConfig['aLessConfig']['bx-font-weight-h3'] = $this->_setValue($sName . '_font_weight_h3', '500');
-
-		//--- Viewport 
-		$this->_aConfig['aLessConfig']['bx-viewport-font-tablet'] = $this->_setValue($sName . '_vpt_font_size_scale', '100%');
-		$this->_aConfig['aLessConfig']['bx-viewport-font-mobile'] = $this->_setValue($sName . '_vpm_font_size_scale', '85%');
-
-		if($this->_isModule) {
-        	$this->setPageWidth('bx_lucid_page_width');
-
-        	$oModule = BxDolModule::getInstance($sName);
-        	if($oModule)
-        	    $oModule->_oTemplate->addJs(array(
-        	        //'jquery.mobile.custom.min.js',
-        	        'jquery.menu-aim.js',
+        //--- Font Weight
+        $this->_aConfig['aLessConfig']['bx-font-weight-cover'] = $this->_setValue($sName . '_cover_font_weight', '700');
+        $this->_aConfig['aLessConfig']['bx-font-weight-block-title'] = $this->_setValue($sName . '_block_title_font_weight', '500');
+        $this->_aConfig['aLessConfig']['bx-font-weight-menu-main'] = $this->_setValue($sName . '_menu_main_font_weight', '400');
+        $this->_aConfig['aLessConfig']['bx-font-weight-menu-account'] = $this->_setValue($sName . '_menu_account_font_weight', '400');
+        $this->_aConfig['aLessConfig']['bx-font-weight-menu-add'] = $this->_setValue($sName . '_menu_add_font_weight', '400');
+        $this->_aConfig['aLessConfig']['bx-font-weight-menu-page'] = $this->_setValue($sName . '_menu_page_font_weight', '400');
+        $this->_aConfig['aLessConfig']['bx-font-weight-menu-slide'] = $this->_setValue($sName . '_menu_slide_font_weight', '400');
+        $this->_aConfig['aLessConfig']['bx-font-weight-button-large'] = $this->_setValue($sName . '_button_lg_font_weight', '400');
+        $this->_aConfig['aLessConfig']['bx-font-weight-button-large-primary'] = $this->_setValue($sName . '_button_lgp_font_weight', '400');
+        $this->_aConfig['aLessConfig']['bx-font-weight-button'] = $this->_setValue($sName . '_button_nl_font_weight', '400');
+        $this->_aConfig['aLessConfig']['bx-font-weight-button-primary'] = $this->_setValue($sName . '_button_nlp_font_weight', '400');
+        $this->_aConfig['aLessConfig']['bx-font-weight-button-small'] = $this->_setValue($sName . '_button_sm_font_weight', '400');
+        $this->_aConfig['aLessConfig']['bx-font-weight-button-small-primary'] = $this->_setValue($sName . '_button_smp_font_weight', '400');
+        $this->_aConfig['aLessConfig']['bx-font-weight-h1'] = $this->_setValue($sName . '_font_weight_h1', '700');
+        $this->_aConfig['aLessConfig']['bx-font-weight-h2'] = $this->_setValue($sName . '_font_weight_h2', '700');
+        $this->_aConfig['aLessConfig']['bx-font-weight-h3'] = $this->_setValue($sName . '_font_weight_h3', '500');
+
+        //--- Viewport 
+        $this->_aConfig['aLessConfig']['bx-viewport-font-tablet'] = $this->_setValue($sName . '_vpt_font_size_scale', '100%');
+        $this->_aConfig['aLessConfig']['bx-viewport-font-mobile'] = $this->_setValue($sName . '_vpm_font_size_scale', '85%');
+
+        if($this->_isModule) {
+            $this->setPageWidth('bx_lucid_page_width');
+
+            $oModule = BxDolModule::getInstance($sName);
+            if($oModule)
+                $oModule->_oTemplate->addJs(array(
+                    //'jquery.mobile.custom.min.js',
+                    'jquery.menu-aim.js',
                 ));
-		}
+        }
 
-		BxDolTemplate::getInstance()->addJs(array(
+        BxDolTemplate::getInstance()->addJs(array(
             'modernizr.min.js'
         ));
 
@@ -405,167 +421,6 @@ class BxTemplConfig extends BxBaseConfig
             'menu-dropdown.css'
         ));
     }
-
-    protected function _setValue($sKey, $sDefault = '')
-    {
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue))
-			$sValue = $sDefault;
-
-    	return $sValue;
-    }
-
-	protected function _setSize($sKey, $sDefault = '')
-    {
-    	if(empty($sDefault))
-    		$sDefault = '0px';
-
-    	$sPattern = "/([0-9\.]+\s*((px)|(rem)|(vh))){1}/";
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || !preg_match($sPattern, $sValue))
-    		$sValue = $sDefault;
-
-    	return $sValue;
-    }
-
-    protected function _setMargin($sKey, $sDefault = '')
-    {
-    	if(empty($sDefault))
-    		$sDefault = '0px';
-
-    	$sPattern = "/([0-9\.]+\s*((px)|(rem))\s*){1,4}/";
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || ($sValue != 'inherit' && !preg_match($sPattern, $sValue)))
-    		$sValue = $sDefault;
-
-    	return $sValue;
-    }
-
-	protected function _setColorRgb($sKey, $sDefault = '')
-    {
-    	if(empty($sDefault))
-    		$sDefault = 'rgb(51, 51, 51)';
-
-    	$sPattern = "/rgb\s*\(\s*[0-9]{1,3}\s*,\s*[0-9]{1,3}\s*,\s*[0-9]{1,3}\s*\)/";
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || !preg_match($sPattern, $sValue))
-    		$sValue = $sDefault;
-
-    	return $sValue;
-    }
-
-    protected function _setColorRgba($sKey, $sDefault = '')
-    {
-    	if(empty($sDefault))
-    		$sDefault = 'rgba(51, 51, 51, 1.0)';
-
-    	$sPattern = "/rgba?\s*\(\s*([0-9]{1,3}\s*,?\s*){3}\s*([0-9\.]+)?\s*\)/";
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || !preg_match($sPattern, $sValue))
-    		$sValue = $sDefault;
-
-    	return $sValue;
-    }
-
-    protected function _setBgUrl($sKey, $oStorage = null)
-    {
-    	if(empty($oStorage))
-    		$oStorage = BxDolStorage::getObjectInstance('sys_images_custom');
-
-		$iImageId = (int)getParam($sKey);
-		if(empty($iImageId))
-			return "none";
-
-		$sImageUrl = $oStorage->getFileUrlById($iImageId);
-		if(empty($sImageUrl))
-			return "none";
-
-		return "url('" . $sImageUrl . "')";
-    }
-
-    protected function _setBgRepeat($sKey, $sDefault = '')
-    {
-		if(empty($sDefault))
-    		$sDefault = 'repeat';
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || !in_array($sValue, array('no-repeat', 'repeat', 'repeat-x', 'repeat-y')))
-    		$sValue = $sDefault;
-
-		return $sValue;
-    }
-
-    protected function _setBgAttachment($sKey, $sDefault = '')
-    {
-		if(empty($sDefault))
-    		$sDefault = 'scroll';
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || !in_array($sValue, array('fixed', 'scroll', 'local')))
-    		$sValue = $sDefault;
-
-		return $sValue;
-    }
-
-    protected function _setBgSize($sKey, $sDefault = '')
-    {
-		if(empty($sDefault))
-    		$sDefault = 'auto';
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || !in_array($sValue, array('auto', 'cover', 'contain')))
-    		$sValue = $sDefault;
-
-		return $sValue;
-    }
-
-    protected function _setShadow($sKey, $sDefault = '')
-    {
-    	if(empty($sDefault))
-    		$sDefault = '0px 1px 3px 0px rgba(0, 0, 0, 0.25)';
-
-    	$sPattern = "/(-?[0-9]+\s*px\s*){4}\s*rgba\s*\(\s*([0-9]{1,3}\s*,\s*){3}\s*[0-9\.]+\s*\)/";
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || $sValue == 'none')
-    		$sValue = 'none';
-    	else if(!preg_match($sPattern, $sValue))
-    		$sValue = $sDefault;
-
-		return $sValue;
-    }
-
-    protected function _setShadowFont($sKey, $sDefault = '')
-    {
-    	if(empty($sDefault))
-    		$sDefault = '0px 1px 3px rgba(0, 0, 0, 0.25)';
-
-    	$sPattern = "/(-?[0-9]+\s*px\s*){3}\s*rgba\s*\(\s*([0-9]{1,3}\s*,\s*){3}\s*[0-9\.]+\s*\)/";
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || $sValue == 'none')
-    		$sValue = 'none';
-    	else if(!preg_match($sPattern, $sValue))
-    		$sValue = $sDefault;
-
-		return $sValue;
-    }
-    
-    protected function _setAlign($sKey, $sDefault = '')
-    {
-		if(empty($sDefault))
-    		$sDefault = 'left';
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || !in_array($sValue, array('left', 'center', 'right')))
-    		$sValue = $sDefault;
-
-		return $sValue;
-    }
 }
 
 /** @} */

+ 40 - 31
modules/boonex/protean/data/template/system/css/default.less

@@ -345,8 +345,8 @@ a.bx-def-font-h3:hover {
     border-style: @bx-border-type;
     border-color: @bx-color-border-cover;
 
-	border-radius: @bx-border-radius-cover;
-	background-clip: padding-box;
+    border-radius: @bx-border-radius-cover;
+    background-clip: padding-box;
 
     -webkit-box-shadow: @bx-shadow-cover;
     -moz-box-shadow: @bx-shadow-cover;
@@ -367,8 +367,8 @@ a.bx-def-font-h3:hover {
     border-style: @bx-border-type;
     border-color: @bx-color-border-cover-icon;
 
-	border-radius: @bx-border-radius-cover-icon;
-	background-clip: padding-box;
+    border-radius: @bx-border-radius-cover-icon;
+    background-clip: padding-box;
     
     -webkit-box-shadow: @bx-shadow-cover-icon;
     -moz-box-shadow: @bx-shadow-cover-icon;
@@ -393,24 +393,25 @@ a.bx-def-font-h3:hover {
 
 /* block */
 .bx-def-border-block {
-	border-width: @bx-border-width-block;
-	border-style: @bx-border-type;
-	border-color: @bx-color-border-block;
+    border-width: @bx-border-width-block;
+    border-style: @bx-border-type;
+    border-color: @bx-color-border-block;
 
-	border-radius: @bx-border-radius-block;
-	background-clip: padding-box;    
+    border-radius: @bx-border-radius-block;
+    background-clip: padding-box;
 }
 .bx-def-border-radius-block {
-    .radius(@bx-border-radius-block);
+    border-radius: @bx-border-radius-block;
+    background-clip: padding-box;
 }
 .bx-db-header {
-	padding: @bx-title-padding-block;
+    padding: @bx-title-padding-block;
 
-	border-width: @bx-border-width-block-title;
-	border-style: solid;
-	border-color: @bx-color-border-block-title;
+    border-width: @bx-border-width-block-title;
+    border-style: solid;
+    border-color: @bx-color-border-block-title;
 
-	border-radius: @bx-border-radius-block-title;
+    border-radius: @bx-border-radius-block-title;
 }
 .bx-def-color-bg-block .bx-db-header,
 .bx-def-image-bg-block .bx-db-header {
@@ -432,40 +433,48 @@ a.bx-def-font-h3:hover {
 
 /* box */
 .bx-def-box {
-	border-width: @bx-border-width-box;
-	border-style: @bx-border-type;
-	border-color: @bx-color-border-box;
+    border-width: @bx-border-width-box;
+    border-style: @bx-border-type;
+    border-color: @bx-color-border-box;
 }
 .bx-def-box.bx-def-padding {
-	padding: @bx-content-padding-card;
+    padding: @bx-content-padding-card;
 }
 .bx-def-box.bx-def-color-bg-box {
-	.background-color (@bx-color-box);
+    .background-color (@bx-color-box);
 }
 .bx-def-box.bx-def-color-bg-box-active,
 .bx-def-box.bx-def-color-bg-box-hover:hover {
     .background-color (@bx-color-box-hover);
 }
 .bx-def-box.bx-def-round-corners {
-	border-radius: @bx-border-radius-box;
-	background-clip: padding-box;
+    border-radius: @bx-border-radius-box;
+    background-clip: padding-box;
+}
+.bx-base-text-unit.bx-base-text-unit-ext.bx-def-round-corners img.bx-base-text-unit-cover.bx-def-round-corners,
+.bx-base-text-unit.bx-base-text-unit-ext .bx-def-round-corners img.bx-base-text-unit-cover.bx-def-round-corners {
+    border-radius: @bx-border-radius-box-tl @bx-border-radius-box-tr 0 0;
+}
+.bx-base-text-unit.bx-base-text-unit-gallery.bx-def-round-corners .bx-base-text-unit-thumb.bx-def-round-corners,
+.bx-base-text-unit.bx-base-text-unit-gallery .bx-def-round-corners .bx-base-text-unit-thumb.bx-def-round-corners {
+    border-radius: 0 0 @bx-border-radius-box-br @bx-border-radius-box-bl;
 }
 
 /* popup */
 .bx-popup-border {
-	border-width: @bx-border-width-popup;
-	border-style: solid;
-	border-color: @bx-color-border-popup;
+    border-width: @bx-border-width-popup;
+    border-style: solid;
+    border-color: @bx-color-border-popup;
 
-	border-radius: @bx-border-radius-popup;
-	background-clip: padding-box;
+    border-radius: @bx-border-radius-popup;
+    background-clip: padding-box;
 }
 .bx-popup-color-bg {
-	background-color: @bx-color-popup;
+    background-color: @bx-color-popup;
 
-	background-image: @bx-image-bg-popup;
-	background-repeat: @bx-image-bg-popup-repeat;
-	background-attachment: @bx-image-bg-popup-attachment;
+    background-image: @bx-image-bg-popup;
+    background-repeat: @bx-image-bg-popup-repeat;
+    background-attachment: @bx-image-bg-popup-attachment;
     background-size: @bx-image-bg-popup-size;
 }
 .bx-popup-content-indent {

+ 129 - 272
modules/boonex/protean/data/template/system/scripts/BxTemplConfig.php

@@ -9,7 +9,7 @@
 
 class BxTemplConfig extends BxBaseConfig
 {
-	protected $_isModule;
+    protected $_isModule;
 	
     function __construct()
     {
@@ -62,7 +62,7 @@ class BxTemplConfig extends BxBaseConfig
         $this->_aConfig['aLessConfig']['bx-image-bg-menu-slide-repeat'] = $this->_setBgRepeat($sName . '_menu_slide_bg_image_repeat', 'no-repeat');
         $this->_aConfig['aLessConfig']['bx-image-bg-menu-slide-attachment'] = $this->_setBgAttachment($sName . '_menu_slide_bg_image_attachment', 'scroll');
         $this->_aConfig['aLessConfig']['bx-image-bg-menu-slide-size'] = $this->_setBgSize($sName . '_menu_slide_bg_image_size', 'cover');
-        
+
 
         //--- Shadow
         $this->_aConfig['aLessConfig']['bx-shadow-header'] = $this->_setShadow($sName . '_header_shadow');
@@ -93,9 +93,9 @@ class BxTemplConfig extends BxBaseConfig
         $this->_aConfig['aLessConfig']['bx-height-cover'] = $this->_setSize($sName . '_cover_height', '40vh');
         $this->_aConfig['aLessConfig']['bx-height-block-title-div'] = $this->_setSize($sName . '_block_title_div_height', '1px');
         $this->_aConfig['aLessConfig']['bx-height-form-input'] = $this->_setSize($sName . '_form_input_height', '2.2rem');
-		$this->_aConfig['aLessConfig']['bx-height-button'] = $this->_setSize($sName . '_button_lg_height', '2.25rem');
-		$this->_aConfig['aLessConfig']['bx-height-button-small'] = $this->_setSize($sName . '_button_sm_height', '1.5rem');
-		
+        $this->_aConfig['aLessConfig']['bx-height-button'] = $this->_setSize($sName . '_button_lg_height', '2.25rem');
+        $this->_aConfig['aLessConfig']['bx-height-button-small'] = $this->_setSize($sName . '_button_sm_height', '1.5rem');
+
 
         //--- Title/Content Margins
         $this->_aConfig['aLessConfig']['bx-content-padding-header'] = $this->_setMargin($sName . '_header_content_padding');
@@ -109,15 +109,15 @@ class BxTemplConfig extends BxBaseConfig
         $this->_aConfig['aLessConfig']['bx-content-padding-menu-page'] = $this->_setMargin($sName . '_menu_page_content_padding');
         $this->_aConfig['aLessConfig']['bx-content-padding-menu-slide'] = $this->_setMargin($sName . '_menu_slide_content_padding');
 
-		$this->_aConfig['aLessConfig']['bx-title-padding-block'] = $this->_setMargin($sName . '_block_title_padding');
-		$this->_aConfig['aLessConfig']['bx-title-padding-popup'] = $this->_setMargin($sName . '_popup_title_padding');
+        $this->_aConfig['aLessConfig']['bx-title-padding-block'] = $this->_setMargin($sName . '_block_title_padding');
+        $this->_aConfig['aLessConfig']['bx-title-padding-popup'] = $this->_setMargin($sName . '_popup_title_padding');
 
 
         //--- Colors
-		if($this->_isModule) {
-	        $this->_aConfig['aLessConfig']['bx-color-hl'] = $this->_setColorRgba($sName . '_general_item_bg_color_hover', 'rgba(196, 248, 156, 0.2)');
-			$this->_aConfig['aLessConfig']['bx-color-active'] = $this->_setColorRgba($sName . '_general_item_bg_color_active', 'rgba(196, 248, 156, 0.4)');
-		}
+        if($this->_isModule) {
+            $this->_aConfig['aLessConfig']['bx-color-hl'] = $this->_setColorRgba($sName . '_general_item_bg_color_hover', 'rgba(196, 248, 156, 0.2)');
+            $this->_aConfig['aLessConfig']['bx-color-active'] = $this->_setColorRgba($sName . '_general_item_bg_color_active', 'rgba(196, 248, 156, 0.4)');
+        }
 
         $this->_aConfig['aLessConfig']['bx-color-header'] = $this->_setColorRgba($sName . '_header_bg_color', 'rgba(59, 134, 134, 1)');
         $this->_aConfig['aLessConfig']['bx-color-footer'] = $this->_setColorRgba($sName . '_footer_bg_color', 'rgba(255, 255, 255, 1)');
@@ -134,14 +134,14 @@ class BxTemplConfig extends BxBaseConfig
         $this->_aConfig['aLessConfig']['bx-color-menu-account'] = $this->_setColorRgba($sName . '_menu_account_bg_color', 'rgba(255, 255, 255, 0.9)');
         $this->_aConfig['aLessConfig']['bx-color-menu-page'] = $this->_setColorRgba($sName . '_menu_page_bg_color', 'rgba(242, 242, 242, 1)');
         $this->_aConfig['aLessConfig']['bx-color-menu-slide'] = $this->_setColorRgba($sName . '_menu_slide_bg_color', 'rgba(255, 255, 255, 0.9)');
-		$this->_aConfig['aLessConfig']['bx-color-form-input'] = $this->_setColorRgba($sName . '_form_input_bg_color', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-form-input-active'] = $this->_setColorRgba($sName . '_form_input_bg_color_active', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-form-input'] = $this->_setColorRgba($sName . '_form_input_bg_color', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-form-input-active'] = $this->_setColorRgba($sName . '_form_input_bg_color_active', 'rgba(255, 255, 255, 1)');
         $this->_aConfig['aLessConfig']['bx-color-button'] = $this->_setColorRgba($sName . '_button_lg_bg_color', 'rgba(108, 170, 138, 1)');
         $this->_aConfig['aLessConfig']['bx-color-button-hover'] = $this->_setColorRgba($sName . '_button_lg_bg_color_hover', 'rgba(58, 134, 134, 1)');
         $this->_aConfig['aLessConfig']['bx-color-button-small'] = $this->_setColorRgba($sName . '_button_sm_bg_color', 'rgba(108, 170, 138, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-button-small-hover'] = $this->_setColorRgba($sName . '_button_sm_bg_color_hover', 'rgba(58, 134, 134, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-button-small-hover'] = $this->_setColorRgba($sName . '_button_sm_bg_color_hover', 'rgba(58, 134, 134, 1)');
 
-		$this->_aConfig['aLessConfig']['bx-color-font-cover'] = $this->_setColorRgba($sName . '_cover_font_color', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-font-cover'] = $this->_setColorRgba($sName . '_cover_font_color', 'rgba(255, 255, 255, 1)');
         $this->_aConfig['aLessConfig']['bx-color-font-block-title'] = $this->_setColorRgba($sName . '_block_title_font_color', 'rgba(0, 0, 20, 1)');
         $this->_aConfig['aLessConfig']['bx-color-font-popup-title'] = $this->_setColorRgba($sName . '_popup_title_font_color', 'rgba(255, 255, 255, 1.0)');
 
@@ -165,19 +165,19 @@ class BxTemplConfig extends BxBaseConfig
         $this->_aConfig['aLessConfig']['bx-color-border-button-small'] = $this->_setColorRgba($sName . '_button_sm_border_color', $sDefColBorder);
         $this->_aConfig['aLessConfig']['bx-color-border-button-small-hover'] = $this->_setColorRgba($sName . '_button_sm_border_color_hover', $sDefColBorder);
 
-		$this->_aConfig['aLessConfig']['bx-color-icon-header'] = $this->_setColorRgba($sName . '_header_icon_color', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-icon-header-hover'] = $this->_setColorRgba($sName . '_header_icon_color_hover', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-icon-footer'] = $this->_setColorRgba($sName . '_footer_icon_color', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-icon-footer-hover'] = $this->_setColorRgba($sName . '_footer_icon_color_hover', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-icon-body'] = $this->_setColorRgba($sName . '_body_icon_color', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-icon-body-hover'] = $this->_setColorRgba($sName . '_body_icon_color_hover', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-icon-header'] = $this->_setColorRgba($sName . '_header_icon_color', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-icon-header-hover'] = $this->_setColorRgba($sName . '_header_icon_color_hover', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-icon-footer'] = $this->_setColorRgba($sName . '_footer_icon_color', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-icon-footer-hover'] = $this->_setColorRgba($sName . '_footer_icon_color_hover', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-icon-body'] = $this->_setColorRgba($sName . '_body_icon_color', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-icon-body-hover'] = $this->_setColorRgba($sName . '_body_icon_color_hover', 'rgba(62, 134, 133, 1)');
 
-		$this->_aConfig['aLessConfig']['bx-color-link-header'] = $this->_setColorRgba($sName . '_header_link_color', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-link-header-hover'] = $this->_setColorRgba($sName . '_header_link_color_hover', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-link-footer'] = $this->_setColorRgba($sName . '_footer_link_color', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-link-footer-hover'] = $this->_setColorRgba($sName . '_footer_link_color_hover', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-link-body'] = $this->_setColorRgba($sName . '_body_link_color', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-color-link-body-hover'] = $this->_setColorRgba($sName . '_body_link_color_hover', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-link-header'] = $this->_setColorRgba($sName . '_header_link_color', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-link-header-hover'] = $this->_setColorRgba($sName . '_header_link_color_hover', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-link-footer'] = $this->_setColorRgba($sName . '_footer_link_color', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-link-footer-hover'] = $this->_setColorRgba($sName . '_footer_link_color_hover', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-link-body'] = $this->_setColorRgba($sName . '_body_link_color', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-color-link-body-hover'] = $this->_setColorRgba($sName . '_body_link_color_hover', 'rgba(62, 134, 133, 1)');
 
         //--- Borders
         $this->_aConfig['aLessConfig']['bx-border-width-header'] = $this->_setSize($sName . '_header_border_size');
@@ -197,82 +197,100 @@ class BxTemplConfig extends BxBaseConfig
         $this->_aConfig['aLessConfig']['bx-border-width-button-small'] = $this->_setSize($sName . '_button_sm_border_size');
 
         $this->_aConfig['aLessConfig']['bx-border-radius-block'] = $this->_setSize($sName . '_block_border_radius');
+        list(
+            $this->_aConfig['aLessConfig']['bx-border-radius-block-tl'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-block-tr'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-block-br'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-block-bl']
+        ) = $this->_setSizeDivided($this->_aConfig['aLessConfig']['bx-border-radius-block']);
         $this->_aConfig['aLessConfig']['bx-border-radius-cover'] = $this->_setSize($sName . '_cover_border_radius');
         $this->_aConfig['aLessConfig']['bx-border-radius-cover-icon'] = $this->_setSize($sName . '_cover_icon_border_radius');
         $this->_aConfig['aLessConfig']['bx-border-radius-block-title'] = $this->_setSize($sName . '_block_title_border_radius');
         $this->_aConfig['aLessConfig']['bx-border-radius-box'] = $this->_setSize($sName . '_card_border_radius', '3px');
+        list(
+            $this->_aConfig['aLessConfig']['bx-border-radius-box-tl'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-box-tr'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-box-br'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-box-bl']
+        ) = $this->_setSizeDivided($this->_aConfig['aLessConfig']['bx-border-radius-box']);
         $this->_aConfig['aLessConfig']['bx-border-radius-popup'] = $this->_setSize($sName . '_popup_border_radius', '3px');
+        list(
+            $this->_aConfig['aLessConfig']['bx-border-radius-popup-tl'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-popup-tr'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-popup-br'],
+            $this->_aConfig['aLessConfig']['bx-border-radius-popup-bl']
+        ) = $this->_setSizeDivided($this->_aConfig['aLessConfig']['bx-border-radius-popup']);
         $this->_aConfig['aLessConfig']['bx-border-radius-button'] = $this->_setSize($sName . '_button_lg_border_radius');
         $this->_aConfig['aLessConfig']['bx-border-radius-button-small'] = $this->_setSize($sName . '_button_sm_border_radius');
 
         //--- Text
         $this->_aConfig['aLessConfig']['bx-text-align-cover'] = $this->_setAlign($sName . '_cover_text_align');
 
-		//--- Default Fonts
-		if($this->_isModule) {
-	        $this->_aConfig['aLessConfig']['bx-font-family'] = $this->_setValue($sName . '_font_family', 'Helvetica, Arial, sans-serif');
-	        $this->_aConfig['aLessConfig']['bx-font-size-default'] = $this->_setSize($sName . '_font_size_default', '18px');
-	        $this->_aConfig['aLessConfig']['bx-font-size-small'] = $this->_setSize($sName . '_font_size_small', '14px');
-	        $this->_aConfig['aLessConfig']['bx-font-size-middle'] = $this->_setSize($sName . '_font_size_middle', '16px');
-	        $this->_aConfig['aLessConfig']['bx-font-size-large'] = $this->_setSize($sName . '_font_size_large', '22px');
-	        $this->_aConfig['aLessConfig']['bx-font-size-h1'] = $this->_setSize($sName . '_font_size_h1', '38px');
-	        $this->_aConfig['aLessConfig']['bx-font-size-h2'] = $this->_setSize($sName . '_font_size_h2', '24px');
-	        $this->_aConfig['aLessConfig']['bx-font-size-h3'] = $this->_setSize($sName . '_font_size_h3', '18px');
-
-	        $this->_aConfig['aLessConfig']['bx-font-color-default'] = $this->_setColorRgba($sName . '_font_color_default', 'rgba(51, 51, 51, 1)');
-	        $this->_aConfig['aLessConfig']['bx-font-color-grayed'] = $this->_setColorRgba($sName . '_font_color_grayed', 'rgba(153, 153, 153, 1)');
-	        $this->_aConfig['aLessConfig']['bx-font-color-contrasted'] = $this->_setColorRgba($sName . '_font_color_contrasted', 'rgba(255, 255, 255, 1)');
-		}
-
-		//--- Font Family
-		$this->_aConfig['aLessConfig']['bx-font-family-cover'] = $this->_setValue($sName . '_cover_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-block-title'] = $this->_setValue($sName . '_block_title_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-popup-title'] = $this->_setValue($sName . '_popup_title_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-form-input'] = $this->_setValue($sName . '_form_input_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-menu-main'] = $this->_setValue($sName . '_menu_main_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-menu-account'] = $this->_setValue($sName . '_menu_account_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-menu-page'] = $this->_setValue($sName . '_menu_page_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-menu-slide'] = $this->_setValue($sName . '_menu_slide_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-button'] = $this->_setValue($sName . '_button_lg_font_family');
-		$this->_aConfig['aLessConfig']['bx-font-family-button-small'] = $this->_setValue($sName . '_button_sm_font_family');
-
-		//--- Font Size
-		$this->_aConfig['aLessConfig']['bx-font-size-cover'] = $this->_setSize($sName . '_cover_font_size', '2.0rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-block-title'] = $this->_setSize($sName . '_block_title_font_size', '1.5rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-popup-title'] = $this->_setSize($sName . '_popup_title_font_size', '1.5rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-form-input'] = $this->_setSize($sName . '_form_input_font_size', '1.125rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-menu-main'] = $this->_setSize($sName . '_menu_main_font_size', '1.125rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-menu-account'] = $this->_setSize($sName . '_menu_account_font_size', '1.125rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-menu-page'] = $this->_setSize($sName . '_menu_page_font_size', '1.2rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-menu-slide'] = $this->_setSize($sName . '_menu_slide_font_size', '1.0rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-button'] = $this->_setSize($sName . '_button_lg_font_size', '1rem');
-		$this->_aConfig['aLessConfig']['bx-font-size-button-small'] = $this->_setSize($sName . '_button_sm_font_size', '0.9rem');
-
-		//--- Font Color
-		$sColFontDef = 'rgba(51, 51, 51, 1.0)';		//--- Default
-		$sColFontGrd = 'rgba(153, 153, 153, 1)';	//--- Grayed
-		$sColFontCnt = 'rgba(255, 255, 255, 1)';	//--- Contrasted
-		$sColFontLnk = 'rgba(62, 134, 133, 1)';		//--- Link
-		$sColFontLnkHov = 'rgba(62, 134, 133, 1)';	//--- Link on-hiver
-		$this->_aConfig['aLessConfig']['bx-font-color-footer'] = $this->_setColorRgba($sName . '_footer_font_color', $sColFontDef);
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-main'] = $this->_setColorRgba($sName . '_menu_main_font_color', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-main-hover'] = $this->_setColorRgba($sName . '_menu_main_font_color_hover', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-main-active'] = $this->_setColorRgba($sName . '_menu_main_font_color_active', 'rgba(0, 0, 0, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-account'] = $this->_setColorRgba($sName . '_menu_account_font_color', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-account-hover'] = $this->_setColorRgba($sName . '_menu_account_font_color_hover', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-account-active'] = $this->_setColorRgba($sName . '_menu_account_font_color_active', 'rgba(0, 0, 0, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-page'] = $this->_setColorRgba($sName . '_menu_page_font_color', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-page-hover'] = $this->_setColorRgba($sName . '_menu_page_font_color_hover', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-page-active'] = $this->_setColorRgba($sName . '_menu_page_font_color_active', 'rgba(0, 0, 0, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-slide'] = $this->_setColorRgba($sName . '_menu_slide_font_color', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-slide-hover'] = $this->_setColorRgba($sName . '_menu_slide_font_color_hover', 'rgba(62, 134, 133, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-menu-slide-active'] = $this->_setColorRgba($sName . '_menu_slide_font_color_active', 'rgba(0, 0, 0, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-button'] = $this->_setColorRgba($sName . '_button_lg_font_color', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-button-hover'] = $this->_setColorRgba($sName . '_button_lg_font_color_hover', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-button-small'] = $this->_setColorRgba($sName . '_button_sm_font_color', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-button-small-hover'] = $this->_setColorRgba($sName . '_button_sm_font_color_hover', 'rgba(255, 255, 255, 1)');
-		$this->_aConfig['aLessConfig']['bx-font-color-form-input'] = $this->_setColorRgba($sName . '_form_input_font_color', $sColFontDef);
-		$this->_aConfig['aLessConfig']['bx-font-color-default-h1'] = $this->_setColorRgba($sName . '_font_color_default_h1', $sColFontDef);
+        //--- Default Fonts
+        if($this->_isModule) {
+            $this->_aConfig['aLessConfig']['bx-font-family'] = $this->_setValue($sName . '_font_family', 'Helvetica, Arial, sans-serif');
+            $this->_aConfig['aLessConfig']['bx-font-size-default'] = $this->_setSize($sName . '_font_size_default', '18px');
+            $this->_aConfig['aLessConfig']['bx-font-size-small'] = $this->_setSize($sName . '_font_size_small', '14px');
+            $this->_aConfig['aLessConfig']['bx-font-size-middle'] = $this->_setSize($sName . '_font_size_middle', '16px');
+            $this->_aConfig['aLessConfig']['bx-font-size-large'] = $this->_setSize($sName . '_font_size_large', '22px');
+            $this->_aConfig['aLessConfig']['bx-font-size-h1'] = $this->_setSize($sName . '_font_size_h1', '38px');
+            $this->_aConfig['aLessConfig']['bx-font-size-h2'] = $this->_setSize($sName . '_font_size_h2', '24px');
+            $this->_aConfig['aLessConfig']['bx-font-size-h3'] = $this->_setSize($sName . '_font_size_h3', '18px');
+
+            $this->_aConfig['aLessConfig']['bx-font-color-default'] = $this->_setColorRgba($sName . '_font_color_default', 'rgba(51, 51, 51, 1)');
+            $this->_aConfig['aLessConfig']['bx-font-color-grayed'] = $this->_setColorRgba($sName . '_font_color_grayed', 'rgba(153, 153, 153, 1)');
+            $this->_aConfig['aLessConfig']['bx-font-color-contrasted'] = $this->_setColorRgba($sName . '_font_color_contrasted', 'rgba(255, 255, 255, 1)');
+        }
+
+        //--- Font Family
+        $this->_aConfig['aLessConfig']['bx-font-family-cover'] = $this->_setValue($sName . '_cover_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-block-title'] = $this->_setValue($sName . '_block_title_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-popup-title'] = $this->_setValue($sName . '_popup_title_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-form-input'] = $this->_setValue($sName . '_form_input_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-menu-main'] = $this->_setValue($sName . '_menu_main_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-menu-account'] = $this->_setValue($sName . '_menu_account_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-menu-page'] = $this->_setValue($sName . '_menu_page_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-menu-slide'] = $this->_setValue($sName . '_menu_slide_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-button'] = $this->_setValue($sName . '_button_lg_font_family');
+        $this->_aConfig['aLessConfig']['bx-font-family-button-small'] = $this->_setValue($sName . '_button_sm_font_family');
+
+        //--- Font Size
+        $this->_aConfig['aLessConfig']['bx-font-size-cover'] = $this->_setSize($sName . '_cover_font_size', '2.0rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-block-title'] = $this->_setSize($sName . '_block_title_font_size', '1.5rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-popup-title'] = $this->_setSize($sName . '_popup_title_font_size', '1.5rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-form-input'] = $this->_setSize($sName . '_form_input_font_size', '1.125rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-menu-main'] = $this->_setSize($sName . '_menu_main_font_size', '1.125rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-menu-account'] = $this->_setSize($sName . '_menu_account_font_size', '1.125rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-menu-page'] = $this->_setSize($sName . '_menu_page_font_size', '1.2rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-menu-slide'] = $this->_setSize($sName . '_menu_slide_font_size', '1.0rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-button'] = $this->_setSize($sName . '_button_lg_font_size', '1rem');
+        $this->_aConfig['aLessConfig']['bx-font-size-button-small'] = $this->_setSize($sName . '_button_sm_font_size', '0.9rem');
+
+        //--- Font Color
+        $sColFontDef = 'rgba(51, 51, 51, 1.0)';		//--- Default
+        $sColFontGrd = 'rgba(153, 153, 153, 1)';	//--- Grayed
+        $sColFontCnt = 'rgba(255, 255, 255, 1)';	//--- Contrasted
+        $sColFontLnk = 'rgba(62, 134, 133, 1)';		//--- Link
+        $sColFontLnkHov = 'rgba(62, 134, 133, 1)';	//--- Link on-hiver
+        $this->_aConfig['aLessConfig']['bx-font-color-footer'] = $this->_setColorRgba($sName . '_footer_font_color', $sColFontDef);
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-main'] = $this->_setColorRgba($sName . '_menu_main_font_color', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-main-hover'] = $this->_setColorRgba($sName . '_menu_main_font_color_hover', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-main-active'] = $this->_setColorRgba($sName . '_menu_main_font_color_active', 'rgba(0, 0, 0, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-account'] = $this->_setColorRgba($sName . '_menu_account_font_color', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-account-hover'] = $this->_setColorRgba($sName . '_menu_account_font_color_hover', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-account-active'] = $this->_setColorRgba($sName . '_menu_account_font_color_active', 'rgba(0, 0, 0, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-page'] = $this->_setColorRgba($sName . '_menu_page_font_color', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-page-hover'] = $this->_setColorRgba($sName . '_menu_page_font_color_hover', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-page-active'] = $this->_setColorRgba($sName . '_menu_page_font_color_active', 'rgba(0, 0, 0, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-slide'] = $this->_setColorRgba($sName . '_menu_slide_font_color', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-slide-hover'] = $this->_setColorRgba($sName . '_menu_slide_font_color_hover', 'rgba(62, 134, 133, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-menu-slide-active'] = $this->_setColorRgba($sName . '_menu_slide_font_color_active', 'rgba(0, 0, 0, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-button'] = $this->_setColorRgba($sName . '_button_lg_font_color', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-button-hover'] = $this->_setColorRgba($sName . '_button_lg_font_color_hover', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-button-small'] = $this->_setColorRgba($sName . '_button_sm_font_color', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-button-small-hover'] = $this->_setColorRgba($sName . '_button_sm_font_color_hover', 'rgba(255, 255, 255, 1)');
+        $this->_aConfig['aLessConfig']['bx-font-color-form-input'] = $this->_setColorRgba($sName . '_form_input_font_color', $sColFontDef);
+        $this->_aConfig['aLessConfig']['bx-font-color-default-h1'] = $this->_setColorRgba($sName . '_font_color_default_h1', $sColFontDef);
         $this->_aConfig['aLessConfig']['bx-font-color-grayed-h1'] = $this->_setColorRgba($sName . '_font_color_grayed_h1', $sColFontGrd);
         $this->_aConfig['aLessConfig']['bx-font-color-contrasted-h1'] = $this->_setColorRgba($sName . '_font_color_contrasted_h1', $sColFontCnt);
         $this->_aConfig['aLessConfig']['bx-font-color-link-h1'] = $this->_setColorRgba($sName . '_font_color_link_h1', $sColFontLnk);
@@ -288,186 +306,25 @@ class BxTemplConfig extends BxBaseConfig
         $this->_aConfig['aLessConfig']['bx-font-color-link-h3'] = $this->_setColorRgba($sName . '_font_color_link_h3', $sColFontLnk);
         $this->_aConfig['aLessConfig']['bx-font-color-link-h3-hover'] = $this->_setColorRgba($sName . '_font_color_link_h3_hover', $sColFontLnkHov);
 
-		//--- Font Weight
-		$this->_aConfig['aLessConfig']['bx-font-weight-cover'] = $this->_setValue($sName . '_cover_font_weight', '700');
-		$this->_aConfig['aLessConfig']['bx-font-weight-block-title'] = $this->_setValue($sName . '_block_title_font_weight', '500');
-		$this->_aConfig['aLessConfig']['bx-font-weight-menu-main'] = $this->_setValue($sName . '_menu_main_font_weight', '400');
-		$this->_aConfig['aLessConfig']['bx-font-weight-menu-account'] = $this->_setValue($sName . '_menu_account_font_weight', '400');
-		$this->_aConfig['aLessConfig']['bx-font-weight-menu-page'] = $this->_setValue($sName . '_menu_page_font_weight', '400');
-		$this->_aConfig['aLessConfig']['bx-font-weight-menu-slide'] = $this->_setValue($sName . '_menu_slide_font_weight', '400');
-		$this->_aConfig['aLessConfig']['bx-font-weight-button'] = $this->_setValue($sName . '_button_lg_font_weight', '400');
-		$this->_aConfig['aLessConfig']['bx-font-weight-button-small'] = $this->_setValue($sName . '_button_sm_font_weight', '400');
-		$this->_aConfig['aLessConfig']['bx-font-weight-h1'] = $this->_setValue($sName . '_font_weight_h1', '700');
-		$this->_aConfig['aLessConfig']['bx-font-weight-h2'] = $this->_setValue($sName . '_font_weight_h2', '700');
-		$this->_aConfig['aLessConfig']['bx-font-weight-h3'] = $this->_setValue($sName . '_font_weight_h3', '500');
-
-		//--- Viewport 
-		$this->_aConfig['aLessConfig']['bx-viewport-font-tablet'] = $this->_setValue($sName . '_vpt_font_size_scale', '100%');
-		$this->_aConfig['aLessConfig']['bx-viewport-font-mobile'] = $this->_setValue($sName . '_vpm_font_size_scale', '85%');
-
-		if($this->_isModule)
-        	$this->setPageWidth('bx_protean_page_width');
-    }
-
-    protected function _setValue($sKey, $sDefault = '')
-    {
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue))
-			$sValue = $sDefault;
-
-    	return $sValue;
-    }
-
-	protected function _setSize($sKey, $sDefault = '')
-    {
-    	if(empty($sDefault))
-    		$sDefault = '0px';
-
-    	$sPattern = "/([0-9\.]+\s*((px)|(rem)|(vh))){1}/";
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || !preg_match($sPattern, $sValue))
-    		$sValue = $sDefault;
-
-    	return $sValue;
-    }
-
-    protected function _setMargin($sKey, $sDefault = '')
-    {
-    	if(empty($sDefault))
-    		$sDefault = '0px';
-
-    	$sPattern = "/([0-9\.]+\s*((px)|(rem))\s*){1,4}/";
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || ($sValue != 'inherit' && !preg_match($sPattern, $sValue)))
-    		$sValue = $sDefault;
-
-    	return $sValue;
-    }
-
-	protected function _setColorRgb($sKey, $sDefault = '')
-    {
-    	if(empty($sDefault))
-    		$sDefault = 'rgb(51, 51, 51)';
-
-    	$sPattern = "/rgb\s*\(\s*[0-9]{1,3}\s*,\s*[0-9]{1,3}\s*,\s*[0-9]{1,3}\s*\)/";
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || !preg_match($sPattern, $sValue))
-    		$sValue = $sDefault;
-
-    	return $sValue;
-    }
-
-    protected function _setColorRgba($sKey, $sDefault = '')
-    {
-    	if(empty($sDefault))
-    		$sDefault = 'rgba(51, 51, 51, 1.0)';
-
-    	$sPattern = "/rgba?\s*\(\s*([0-9]{1,3}\s*,?\s*){3}\s*([0-9\.]+)?\s*\)/";
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || !preg_match($sPattern, $sValue))
-    		$sValue = $sDefault;
-
-    	return $sValue;
-    }
-
-    protected function _setBgUrl($sKey, $oStorage = null)
-    {
-    	if(empty($oStorage))
-    		$oStorage = BxDolStorage::getObjectInstance('sys_images_custom');
-
-		$iImageId = (int)getParam($sKey);
-		if(empty($iImageId))
-			return "none";
-
-		$sImageUrl = $oStorage->getFileUrlById($iImageId);
-		if(empty($sImageUrl))
-			return "none";
-
-		return "url('" . $sImageUrl . "')";
-    }
-
-    protected function _setBgRepeat($sKey, $sDefault = '')
-    {
-		if(empty($sDefault))
-    		$sDefault = 'repeat';
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || !in_array($sValue, array('no-repeat', 'repeat', 'repeat-x', 'repeat-y')))
-    		$sValue = $sDefault;
-
-		return $sValue;
-    }
-
-    protected function _setBgAttachment($sKey, $sDefault = '')
-    {
-		if(empty($sDefault))
-    		$sDefault = 'scroll';
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || !in_array($sValue, array('fixed', 'scroll', 'local')))
-    		$sValue = $sDefault;
-
-		return $sValue;
-    }
-
-    protected function _setBgSize($sKey, $sDefault = '')
-    {
-		if(empty($sDefault))
-    		$sDefault = 'auto';
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || !in_array($sValue, array('auto', 'cover', 'contain')))
-    		$sValue = $sDefault;
-
-		return $sValue;
-    }
-
-    protected function _setShadow($sKey, $sDefault = '')
-    {
-    	if(empty($sDefault))
-    		$sDefault = '0px 1px 3px 0px rgba(0, 0, 0, 0.25)';
-
-    	$sPattern = "/((-?[0-9]+\s*px\s*){4}\s*rgba\s*\(\s*([0-9]{1,3}\s*,\s*){3}\s*[0-9\.]+\s*\)\s*,?\s*)+/";
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || $sValue == 'none')
-    		$sValue = 'none';
-    	else if(!preg_match($sPattern, $sValue))
-    		$sValue = $sDefault;
-
-		return $sValue;
-    }
-
-    protected function _setShadowFont($sKey, $sDefault = '')
-    {
-    	if(empty($sDefault))
-    		$sDefault = '0px 1px 3px rgba(0, 0, 0, 0.25)';
-
-    	$sPattern = "/(-?[0-9]+\s*px\s*){3}\s*rgba\s*\(\s*([0-9]{1,3}\s*,\s*){3}\s*[0-9\.]+\s*\)/";
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || $sValue == 'none')
-    		$sValue = 'none';
-    	else if(!preg_match($sPattern, $sValue))
-    		$sValue = $sDefault;
-
-		return $sValue;
-    }
-    
-    protected function _setAlign($sKey, $sDefault = '')
-    {
-		if(empty($sDefault))
-    		$sDefault = 'left';
-
-    	$sValue = trim(getParam($sKey));
-    	if(!$this->_isModule || empty($sValue) || !in_array($sValue, array('left', 'center', 'right')))
-    		$sValue = $sDefault;
-
-		return $sValue;
+        //--- Font Weight
+        $this->_aConfig['aLessConfig']['bx-font-weight-cover'] = $this->_setValue($sName . '_cover_font_weight', '700');
+        $this->_aConfig['aLessConfig']['bx-font-weight-block-title'] = $this->_setValue($sName . '_block_title_font_weight', '500');
+        $this->_aConfig['aLessConfig']['bx-font-weight-menu-main'] = $this->_setValue($sName . '_menu_main_font_weight', '400');
+        $this->_aConfig['aLessConfig']['bx-font-weight-menu-account'] = $this->_setValue($sName . '_menu_account_font_weight', '400');
+        $this->_aConfig['aLessConfig']['bx-font-weight-menu-page'] = $this->_setValue($sName . '_menu_page_font_weight', '400');
+        $this->_aConfig['aLessConfig']['bx-font-weight-menu-slide'] = $this->_setValue($sName . '_menu_slide_font_weight', '400');
+        $this->_aConfig['aLessConfig']['bx-font-weight-button'] = $this->_setValue($sName . '_button_lg_font_weight', '400');
+        $this->_aConfig['aLessConfig']['bx-font-weight-button-small'] = $this->_setValue($sName . '_button_sm_font_weight', '400');
+        $this->_aConfig['aLessConfig']['bx-font-weight-h1'] = $this->_setValue($sName . '_font_weight_h1', '700');
+        $this->_aConfig['aLessConfig']['bx-font-weight-h2'] = $this->_setValue($sName . '_font_weight_h2', '700');
+        $this->_aConfig['aLessConfig']['bx-font-weight-h3'] = $this->_setValue($sName . '_font_weight_h3', '500');
+
+        //--- Viewport 
+        $this->_aConfig['aLessConfig']['bx-viewport-font-tablet'] = $this->_setValue($sName . '_vpt_font_size_scale', '100%');
+        $this->_aConfig['aLessConfig']['bx-viewport-font-mobile'] = $this->_setValue($sName . '_vpm_font_size_scale', '85%');
+
+        if($this->_isModule)
+            $this->setPageWidth('bx_protean_page_width');
     }
 }
 

+ 197 - 6
template/scripts/BxBaseConfig.php

@@ -89,14 +89,205 @@ class BxBaseConfig extends BxDol implements iBxDolSingleton
 
     protected function setPageWidth($sParamName)
     {
-    	if(!class_exists('BxDolDb') || !BxDolDb::getInstance() || empty($sParamName)) 
-    		return;
+        if(!class_exists('BxDolDb') || !BxDolDb::getInstance() || empty($sParamName)) 
+            return;
 
-		$mixedWidth = getParam($sParamName);
-		if(is_numeric($mixedWidth))
-			$mixedWidth .= 'px';
+        $mixedWidth = getParam($sParamName);
+        if(is_numeric($mixedWidth))
+            $mixedWidth .= 'px';
 
-		$this->_aConfig['aLessConfig']['bx-page-width'] = $mixedWidth;
+        $this->_aConfig['aLessConfig']['bx-page-width'] = $mixedWidth;
+    }
+
+    protected function _setValue($sKey, $sDefault = '')
+    {
+        $sValue = trim(getParam($sKey));
+        if(!$this->_isModule || empty($sValue))
+            $sValue = $sDefault;
+
+        return $sValue;
+    }
+
+    protected function _setSize($sKey, $sDefault = '')
+    {
+        if(empty($sDefault))
+            $sDefault = '0px';
+
+        $sPattern = "/([0-9\.]+\s*((px)|(rem)|(vh))){1}/";
+
+        $sValue = trim(getParam($sKey));
+        if(!$this->_isModule || empty($sValue) || !preg_match($sPattern, $sValue))
+            $sValue = $sDefault;
+
+        return $sValue;
+    }
+
+    protected function _setSizeDivided($sValue)
+    {
+        $aEmpty = array(0, 0, 0, 0);
+
+        $aValues = explode(' ', $sValue);
+        if(empty($aValues) || !is_array($aValues))
+            return $aEmpty;
+
+        $aResult = $aEmpty;
+        switch(count($aValues)) {
+            case 1:
+                $aResult = array($aValues[0], $aValues[0], $aValues[0], $aValues[0]);
+                break;
+
+            case 2:
+                $aResult = array($aValues[0], $aValues[1], $aValues[0], $aValues[1]);
+                break;
+
+            case 3:
+                $aResult = array($aValues[0], $aValues[1], $aValues[2], $aValues[1]);
+                break;
+
+            case 4:
+                $aResult = array($aValues[0], $aValues[1], $aValues[2], $aValues[3]);
+                break;
+        }
+
+        return $aResult;
+    }
+
+    protected function _setMargin($sKey, $sDefault = '')
+    {
+        if(empty($sDefault))
+            $sDefault = '0px';
+
+        $sPattern = "/([0-9\.]+\s*((px)|(rem))\s*){1,4}/";
+
+        $sValue = trim(getParam($sKey));
+        if(!$this->_isModule || empty($sValue) || ($sValue != 'inherit' && !preg_match($sPattern, $sValue)))
+            $sValue = $sDefault;
+
+        return $sValue;
+    }
+
+    protected function _setColorRgb($sKey, $sDefault = '')
+    {
+        if(empty($sDefault))
+            $sDefault = 'rgb(51, 51, 51)';
+
+        $sPattern = "/rgb\s*\(\s*[0-9]{1,3}\s*,\s*[0-9]{1,3}\s*,\s*[0-9]{1,3}\s*\)/";
+
+        $sValue = trim(getParam($sKey));
+        if(!$this->_isModule || empty($sValue) || !preg_match($sPattern, $sValue))
+            $sValue = $sDefault;
+
+        return $sValue;
+    }
+
+    protected function _setColorRgba($sKey, $sDefault = '')
+    {
+        if(empty($sDefault))
+            $sDefault = 'rgba(51, 51, 51, 1.0)';
+
+        $sPattern = "/rgba?\s*\(\s*([0-9]{1,3}\s*,?\s*){3}\s*([0-9\.]+)?\s*\)/";
+
+        $sValue = trim(getParam($sKey));
+        if(!$this->_isModule || empty($sValue) || !preg_match($sPattern, $sValue))
+            $sValue = $sDefault;
+
+        return $sValue;
+    }
+
+    protected function _setBgUrl($sKey, $oStorage = null)
+    {
+        if(empty($oStorage))
+            $oStorage = BxDolStorage::getObjectInstance('sys_images_custom');
+
+        $iImageId = (int)getParam($sKey);
+        if(empty($iImageId))
+            return "none";
+
+        $sImageUrl = $oStorage->getFileUrlById($iImageId);
+        if(empty($sImageUrl))
+            return "none";
+
+        return "url('" . $sImageUrl . "')";
+    }
+
+    protected function _setBgRepeat($sKey, $sDefault = '')
+    {
+        if(empty($sDefault))
+            $sDefault = 'repeat';
+
+        $sValue = trim(getParam($sKey));
+        if(!$this->_isModule || empty($sValue) || !in_array($sValue, array('no-repeat', 'repeat', 'repeat-x', 'repeat-y')))
+            $sValue = $sDefault;
+
+        return $sValue;
+    }
+
+    protected function _setBgAttachment($sKey, $sDefault = '')
+    {
+        if(empty($sDefault))
+            $sDefault = 'scroll';
+
+        $sValue = trim(getParam($sKey));
+        if(!$this->_isModule || empty($sValue) || !in_array($sValue, array('fixed', 'scroll', 'local')))
+            $sValue = $sDefault;
+
+        return $sValue;
+    }
+
+    protected function _setBgSize($sKey, $sDefault = '')
+    {
+        if(empty($sDefault))
+            $sDefault = 'auto';
+
+        $sValue = trim(getParam($sKey));
+        if(!$this->_isModule || empty($sValue) || !in_array($sValue, array('auto', 'cover', 'contain')))
+            $sValue = $sDefault;
+
+        return $sValue;
+    }
+
+    protected function _setShadow($sKey, $sDefault = '')
+    {
+        if(empty($sDefault))
+            $sDefault = '0px 1px 3px 0px rgba(0, 0, 0, 0.25)';
+
+        $sPattern = "/((-?[0-9]+\s*px\s*){4}\s*rgba\s*\(\s*([0-9]{1,3}\s*,\s*){3}\s*[0-9\.]+\s*\)\s*,?\s*)+/";
+
+        $sValue = trim(getParam($sKey));
+        if(!$this->_isModule || empty($sValue) || $sValue == 'none')
+            $sValue = 'none';
+        else if(!preg_match($sPattern, $sValue))
+            $sValue = $sDefault;
+
+        return $sValue;
+    }
+
+    protected function _setShadowFont($sKey, $sDefault = '')
+    {
+        if(empty($sDefault))
+            $sDefault = '0px 1px 3px rgba(0, 0, 0, 0.25)';
+
+        $sPattern = "/(-?[0-9]+\s*px\s*){3}\s*rgba\s*\(\s*([0-9]{1,3}\s*,\s*){3}\s*[0-9\.]+\s*\)/";
+
+        $sValue = trim(getParam($sKey));
+        if(!$this->_isModule || empty($sValue) || $sValue == 'none')
+            $sValue = 'none';
+        else if(!preg_match($sPattern, $sValue))
+            $sValue = $sDefault;
+
+        return $sValue;
+    }
+
+    protected function _setAlign($sKey, $sDefault = '')
+    {
+        if(empty($sDefault))
+            $sDefault = 'left';
+
+        $sValue = trim(getParam($sKey));
+        if(!$this->_isModule || empty($sValue) || !in_array($sValue, array('left', 'center', 'right')))
+            $sValue = $sDefault;
+
+        return $sValue;
     }
 }