From 97f379ff440dc1b1bcfea29c0d5c8b38193cd62f Mon Sep 17 00:00:00 2001
From: Mads Rasmussen
Date: Mon, 13 Mar 2017 20:06:57 +0100
Subject: [PATCH 01/16] add more contrast to placeholder text
---
src/Umbraco.Web.UI.Client/src/less/forms.less | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Umbraco.Web.UI.Client/src/less/forms.less b/src/Umbraco.Web.UI.Client/src/less/forms.less
index cfb06d4dc0..869d0b7740 100644
--- a/src/Umbraco.Web.UI.Client/src/less/forms.less
+++ b/src/Umbraco.Web.UI.Client/src/less/forms.less
@@ -331,7 +331,7 @@ input[type="checkbox"]:focus {
// Placeholder text gets special styles because when browsers invalidate entire lines if it doesn't understand a selector
input,
textarea {
- .placeholder();
+ .placeholder(@gray-6);
}
From aa7e739b0e3d6176dfc7c3e8f4b242561c15f354 Mon Sep 17 00:00:00 2001
From: Mads Rasmussen
Date: Mon, 13 Mar 2017 20:09:44 +0100
Subject: [PATCH 02/16] increase sections label font size
---
src/Umbraco.Web.UI.Client/src/less/sections.less | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Umbraco.Web.UI.Client/src/less/sections.less b/src/Umbraco.Web.UI.Client/src/less/sections.less
index 9e5c48b87b..51ec5c7436 100644
--- a/src/Umbraco.Web.UI.Client/src/less/sections.less
+++ b/src/Umbraco.Web.UI.Client/src/less/sections.less
@@ -51,7 +51,7 @@ ul.sections li a {
}
ul.sections a span {
- font-size: 10px;
+ font-size: 11px;
line-height: 1.4em;
opacity: 0;
-webkit-transition: all .3s linear;
From fd8e200bd7166945e4dc9be77c4875c015b38b17 Mon Sep 17 00:00:00 2001
From: Mads Rasmussen
Date: Mon, 13 Mar 2017 20:38:02 +0100
Subject: [PATCH 03/16] make property editor placeholder lighter + increase
font size
---
.../src/less/components/umb-group-builder.less | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/src/less/components/umb-group-builder.less b/src/Umbraco.Web.UI.Client/src/less/components/umb-group-builder.less
index ad585b967c..09b605bcb1 100644
--- a/src/Umbraco.Web.UI.Client/src/less/components/umb-group-builder.less
+++ b/src/Umbraco.Web.UI.Client/src/less/components/umb-group-builder.less
@@ -367,7 +367,7 @@ input.umb-group-builder__group-sort-value {
/* ---------- PLACEHOLDER BOX ---------- */
.umb-group-builder__placeholder-box {
- background: @gray-8;
+ background: @gray-9;
box-sizing: border-box;
display: flex;
align-items: center;
@@ -475,7 +475,7 @@ input.umb-group-builder__group-sort-value {
border-radius: 5px;
color: @gray-3;
font-weight: bold;
- font-size: 13px;
+ font-size: 14px;
color: @turquoise-d1;
&:hover {
text-decoration: none;
From 76a6449ffa506a45ff85b5485e1afa758f70e912 Mon Sep 17 00:00:00 2001
From: Mads Rasmussen
Date: Mon, 13 Mar 2017 20:47:36 +0100
Subject: [PATCH 04/16] increase font size on actions menu
---
src/Umbraco.Web.UI.Client/src/less/tree.less | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/src/less/tree.less b/src/Umbraco.Web.UI.Client/src/less/tree.less
index 0cb345f871..e3fbd15c04 100644
--- a/src/Umbraco.Web.UI.Client/src/less/tree.less
+++ b/src/Umbraco.Web.UI.Client/src/less/tree.less
@@ -377,12 +377,15 @@ div.locked:before{
.umb-actions a {
white-space: nowrap;
display: block;
- font-size: 14px;
+ font-size: 15px;
color: @black;
- padding: 8px 25px 8px 20px;
+ padding: 9px 25px 9px 20px;
text-decoration: none;
cursor: pointer;
+ display: flex;
+ align-items: center;
}
+
.umb-actions a:hover, .umb-actions a:focus,
.umb-actions li.selected {
color: @black !important;
@@ -393,11 +396,10 @@ div.locked:before{
display: inline-block;
vertical-align: middle;
padding-left: 15px;
- padding-top: 2px;
}
+
.umb-actions i {
color: @gray-6;
- margin-top: 2px;
font-size: 18px;
vertical-align: middle;
color: @gray-3;
@@ -430,15 +432,16 @@ div.locked:before{
display: block;
clear: right;
line-height: 14px;
- color: @gray-7;
+ color: @gray-6;
white-space: normal;
+ margin-top: 2px;
}
.umb-actions-child li a:hover .menuLabel small {
text-decoration: none !important
}
.umb-actions-child i {
- font-size: 32px;
- min-width: 32px;
+ font-size: 30px;
+ min-width: 30px;
text-align: center;
line-height: 24px; /* set line-height to ensure all icons use same line-height */
}
From 874c679bfe62fff164341fa5b881be36bcc6ee20 Mon Sep 17 00:00:00 2001
From: Mads Rasmussen
Date: Mon, 13 Mar 2017 20:53:55 +0100
Subject: [PATCH 05/16] update tree header
---
src/Umbraco.Web.UI.Client/src/less/tree.less | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/src/less/tree.less b/src/Umbraco.Web.UI.Client/src/less/tree.less
index e3fbd15c04..f2815f445c 100644
--- a/src/Umbraco.Web.UI.Client/src/less/tree.less
+++ b/src/Umbraco.Web.UI.Client/src/less/tree.less
@@ -119,10 +119,9 @@
.umb-tree li.root > div a,
.umb-tree li.root h5, .umb-tree-header {
- text-transform: uppercase;
- color: @gray-7;
+ color: @gray-2;
font-weight: bold;
- font-size: 13px;
+ font-size: 15px;
}
.umb-tree ins {
From 185af08e755a43dfe379e8a74b51309003571d7f Mon Sep 17 00:00:00 2001
From: Mads Rasmussen
Date: Mon, 13 Mar 2017 21:02:43 +0100
Subject: [PATCH 06/16] increase header description font-size
---
src/Umbraco.Web.UI.Client/src/less/panel.less | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Umbraco.Web.UI.Client/src/less/panel.less b/src/Umbraco.Web.UI.Client/src/less/panel.less
index c4ac2f4861..6bc2a2b2de 100644
--- a/src/Umbraco.Web.UI.Client/src/less/panel.less
+++ b/src/Umbraco.Web.UI.Client/src/less/panel.less
@@ -470,7 +470,7 @@ input.umb-panel-header-description {
background: transparent;
border-color: transparent;
margin-bottom: 0;
- font-size: 12px;
+ font-size: 13px;
box-sizing: border-box;
height: 25px;
line-height: 25px;
From 9ebe7f683a6bbea930d7919100fc037bb21b33a7 Mon Sep 17 00:00:00 2001
From: Mads Rasmussen
Date: Mon, 13 Mar 2017 22:40:12 +0100
Subject: [PATCH 07/16] increase font size for validation label
---
.../src/less/forms/umb-validation-label.less | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Umbraco.Web.UI.Client/src/less/forms/umb-validation-label.less b/src/Umbraco.Web.UI.Client/src/less/forms/umb-validation-label.less
index 733f054669..a57748c35e 100644
--- a/src/Umbraco.Web.UI.Client/src/less/forms/umb-validation-label.less
+++ b/src/Umbraco.Web.UI.Client/src/less/forms/umb-validation-label.less
@@ -3,7 +3,7 @@
padding: 1px 5px;
background: @red;
color: @white;
- font-size: 10px;
+ font-size: 11px;
line-height: 1.5em;
}
From fdfae0f78ad04ee6b2427384b9536ae7f47e29fc Mon Sep 17 00:00:00 2001
From: Mads Rasmussen
Date: Mon, 13 Mar 2017 22:43:24 +0100
Subject: [PATCH 08/16] increase font size for template insert description
---
.../src/less/components/umb-insert-code-box.less | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/Umbraco.Web.UI.Client/src/less/components/umb-insert-code-box.less b/src/Umbraco.Web.UI.Client/src/less/components/umb-insert-code-box.less
index efa40f8f6e..b0f9a7db3d 100644
--- a/src/Umbraco.Web.UI.Client/src/less/components/umb-insert-code-box.less
+++ b/src/Umbraco.Web.UI.Client/src/less/components/umb-insert-code-box.less
@@ -24,7 +24,8 @@
}
.umb-insert-code-box__description {
- font-size: 12px;
+ font-size: 13px;
+ line-height: 1.6em;
}
.umb-insert-code-box__check {
From 691c13d1e1054de976cdd5d03bea340c66942727 Mon Sep 17 00:00:00 2001
From: Mads Rasmussen
Date: Wed, 15 Mar 2017 10:26:05 +0100
Subject: [PATCH 09/16] less bright and "dangerous" alerts, notifications and
validation messages
---
.../src/less/alerts.less | 16 ++++--
.../notifications/umb-notifications.less | 53 ++++++++++---------
src/Umbraco.Web.UI.Client/src/less/forms.less | 4 +-
src/Umbraco.Web.UI.Client/src/less/navs.less | 7 +--
.../src/less/variables.less | 48 ++++++++---------
.../notifications/umb-notifications.html | 2 +-
6 files changed, 72 insertions(+), 58 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/src/less/alerts.less b/src/Umbraco.Web.UI.Client/src/less/alerts.less
index c575f58f0c..1798e0b7fa 100644
--- a/src/Umbraco.Web.UI.Client/src/less/alerts.less
+++ b/src/Umbraco.Web.UI.Client/src/less/alerts.less
@@ -7,10 +7,10 @@
// -------------------------
.alert {
- padding: 8px 35px 8px 14px;
+ padding: 5px 35px 5px 14px;
margin-bottom: @baseLineHeight;
background-color: @warningBackground;
- border: 1px solid @warningBorder;
+ border-left: 2px solid @warningBorder;
.border-radius(@baseBorderRadius);
}
.alert,
@@ -44,31 +44,36 @@
border-color: @successBorder;
color: @successText;
}
+
.alert-success h4 {
color: @successText;
}
+
.alert-danger,
.alert-error {
background-color: @errorBackground;
border-color: @errorBorder;
color: @errorText;
}
+
.alert-danger h4,
.alert-error h4 {
color: @errorText;
}
+
.alert-info {
background-color: @infoBackground;
border-color: @infoBorder;
color: @infoText;
}
+
.alert-info h4 {
color: @infoText;
}
.alert-form {
background-color: @gray-10;
- border: 1px solid @gray-3 !important;
+ border-color: @gray-7;
color: @gray-3;
}
@@ -77,7 +82,10 @@
}
.alert-form h4 {
- color: @gray-3;
+ color: @gray-1;
+ margin-bottom: 5px;
+ font-weight: bold;
+ font-size: 16px;
}
diff --git a/src/Umbraco.Web.UI.Client/src/less/components/notifications/umb-notifications.less b/src/Umbraco.Web.UI.Client/src/less/components/notifications/umb-notifications.less
index 77dc6c6995..76d5d47a8f 100644
--- a/src/Umbraco.Web.UI.Client/src/less/components/notifications/umb-notifications.less
+++ b/src/Umbraco.Web.UI.Client/src/less/components/notifications/umb-notifications.less
@@ -1,35 +1,40 @@
.umb-notifications {
- z-index: 1000;
- position: absolute;
- bottom: 52px;
- left: 0;
- right: 0;
- border-bottom: none;
- margin: auto;
- padding: 0px;
- border: none;
- background: none;
- border-radius: 0;
+ z-index: 1000;
+ position: absolute;
+ bottom: 53px;
+ left: 0;
+ right: 0;
+ border-bottom: none;
+ margin: auto;
+ padding: 0px;
+ background: none;
+ border-radius: 0;
}
.umb-notifications__notifications {
- list-style: none;
- margin: 0;
- position: relative;
+ list-style: none;
+ margin: 0;
+ position: relative;
}
-
.umb-notifications__notification {
- padding: 5px 20px;
- text-shadow: none;
- font-size: 14px;
- border: none;
- border-radius: 0;
- position: relative;
- margin-bottom: 0;
+ border-width: 1px;
+ border-style: solid;
+ padding: 5px 20px;
+ text-shadow: none;
+ font-size: 14px;
+ border-radius: 3px;
+ position: relative;
+ margin-bottom: 0;
+ left: 50%;
+ transform: translate(-50%);
+ width: 85%;
+ bottom: 10px;
+ margin-bottom: 2px;
+ box-shadow: 0 5px 10px rgba(0,0,0,0.05), 0 3px 3px rgba(0,0,0,0.12);
}
.umb-notifications__notification.-extra-padding {
- padding-top: 20px;
- padding-bottom: 20px;
+ padding-top: 20px;
+ padding-bottom: 20px;
}
diff --git a/src/Umbraco.Web.UI.Client/src/less/forms.less b/src/Umbraco.Web.UI.Client/src/less/forms.less
index 869d0b7740..97d91d6c27 100644
--- a/src/Umbraco.Web.UI.Client/src/less/forms.less
+++ b/src/Umbraco.Web.UI.Client/src/less/forms.less
@@ -19,7 +19,7 @@ label small, .guiDialogTiny {
label.control-label, .control-label {
padding: 0 10px 0 0 !important;
font-weight: bold;
- color: @black;
+ color: @gray-2;
}
@@ -483,7 +483,7 @@ input[type="checkbox"][readonly] {
// Error
.show-validation.ng-invalid .control-group.error,
.show-validation.ng-invalid .umb-panel-header-content-wrapper {
- .formFieldState(@formErrorText, @formErrorText, @formErrorBackground);
+ .formFieldState(@formErrorText, @formErrorBorder, @formErrorBackground);
}
//val-highlight directive styling
diff --git a/src/Umbraco.Web.UI.Client/src/less/navs.less b/src/Umbraco.Web.UI.Client/src/less/navs.less
index da0dfc0110..c594789b6c 100644
--- a/src/Umbraco.Web.UI.Client/src/less/navs.less
+++ b/src/Umbraco.Web.UI.Client/src/less/navs.less
@@ -158,9 +158,10 @@
.show-validation .tab-error a,
.show-validation .tab-error a:hover,
.show-validation .tab-error a:focus {
- color: @white !important;
- background-color: @red !important;
- border-color: @errorBorder;
+ background-color: @red-washed !important;
+ border-top-color: @errorBorder;
+ border-left-color: @errorBorder;
+ border-right-color: @errorBorder;
}
.show-validation .tab-error a:before {
diff --git a/src/Umbraco.Web.UI.Client/src/less/variables.less b/src/Umbraco.Web.UI.Client/src/less/variables.less
index 314035f1ae..5d757fef9b 100644
--- a/src/Umbraco.Web.UI.Client/src/less/variables.less
+++ b/src/Umbraco.Web.UI.Client/src/less/variables.less
@@ -310,21 +310,21 @@
// alerts
// -------------------------
-@warningText: @white;
-@warningBackground: @orange;
-@warningBorder: transparent;
+@warningText: @black;
+@warningBackground: @yellow-washed;
+@warningBorder: @yellow;
-@errorText: @white;
-@errorBackground: @red-d1;
-@errorBorder: transparent;
+@errorText: @black;
+@errorBackground: @red-washed;
+@errorBorder: @red;
-@successText: @white;
-@successBackground: @green-d1;
-@successBorder: transparent;
+@successText: @black;
+@successBackground: @green-washed;
+@successBorder: @green;
-@infoText: @white;
-@infoBackground: @turquoise-d1;
-@infoBorder: transparent;
+@infoText: @black;
+@infoBackground: @turquoise-washed;
+@infoBorder: @turquoise;
// SD: Had to duplicate the above but prefix with 'form' inversed colors
// because we cannot share the above alert colors with forms otherwise we end up with white
@@ -332,21 +332,21 @@
// Form states
// -------------------------
-@formWarningText: @warningBackground;
-@formWarningBackground: lighten(@warningBackground, 38%);
-@formWarningBorder: darken(spin(@warningBackground, -10), 3%);
+@formWarningText: @black;
+@formWarningBackground: @yellow-washed;
+@formWarningBorder: @yellow;
-@formErrorText: @errorBackground;
-@formErrorBackground: lighten(@errorBackground, 55%);
-@formErrorBorder: darken(spin(@errorBackground, -10), 3%);
+@formErrorText: @black;
+@formErrorBackground: @red-washed;
+@formErrorBorder: @red;
-@formSuccessText: @successBackground;
-@formSuccessBackground: lighten(@successBackground, 48%);
-@formSuccessBorder: darken(spin(@successBackground, -10), 5%);
+@formSuccessText: @black;
+@formSuccessBackground: @green-washed;
+@formSuccessBorder: @green;
-@formInfoText: @infoBackground;
-@formInfoBackground: lighten(@infoBackground, 41%);
-@formInfoBorder: darken(spin(@infoBackground, -10), 7%);
+@formInfoText: @black;
+@formInfoBackground: @turquoise-washed;
+@formInfoBorder: @turquoise;
// Tooltips and popovers
diff --git a/src/Umbraco.Web.UI.Client/src/views/components/notifications/umb-notifications.html b/src/Umbraco.Web.UI.Client/src/views/components/notifications/umb-notifications.html
index 9962e2dd84..ab3b9abcbd 100644
--- a/src/Umbraco.Web.UI.Client/src/views/components/notifications/umb-notifications.html
+++ b/src/Umbraco.Web.UI.Client/src/views/components/notifications/umb-notifications.html
@@ -2,7 +2,7 @@
-
+ ng-class="{'-extra-padding': notification.type === 'form'}">
×
From 9ee3471153510af1c6e1da7b046f51e9fe0d0d30 Mon Sep 17 00:00:00 2001
From: Mads Rasmussen
Date: Wed, 15 Mar 2017 10:38:42 +0100
Subject: [PATCH 10/16] add font smoothing to installer
---
src/Umbraco.Web.UI.Client/src/less/application/grid.less | 2 ++
src/Umbraco.Web.UI.Client/src/less/installer.less | 6 ++++++
2 files changed, 8 insertions(+)
diff --git a/src/Umbraco.Web.UI.Client/src/less/application/grid.less b/src/Umbraco.Web.UI.Client/src/less/application/grid.less
index 83cb7f5fb5..c1db0579ad 100644
--- a/src/Umbraco.Web.UI.Client/src/less/application/grid.less
+++ b/src/Umbraco.Web.UI.Client/src/less/application/grid.less
@@ -19,6 +19,8 @@ body {
line-height: @baseLineHeight;
color: @textColor;
background-color: @bodyBackground;
+
+ // better font rendering
-webkit-font-smoothing: antialiased;
font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
diff --git a/src/Umbraco.Web.UI.Client/src/less/installer.less b/src/Umbraco.Web.UI.Client/src/less/installer.less
index 954ffa2095..bacb922633 100644
--- a/src/Umbraco.Web.UI.Client/src/less/installer.less
+++ b/src/Umbraco.Web.UI.Client/src/less/installer.less
@@ -40,6 +40,12 @@ body {
vertical-align: middle;
text-align: center;
+
+ // better font rendering
+ -webkit-font-smoothing: antialiased;
+ font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+
}
#logo{
From c9fc0fbed16c92b15173283e67b3c75efb6c4081 Mon Sep 17 00:00:00 2001
From: Mads Rasmussen
Date: Wed, 15 Mar 2017 14:35:11 +0100
Subject: [PATCH 11/16] Update installer gray buttons to purple buttons + align
label with input
---
.../src/installer/steps/database.html | 2 +-
.../src/installer/steps/upgrade.html | 2 +-
.../src/installer/steps/user.html | 13 +++++++++----
src/Umbraco.Web.UI.Client/src/less/installer.less | 8 +++++++-
4 files changed, 18 insertions(+), 7 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/src/installer/steps/database.html b/src/Umbraco.Web.UI.Client/src/installer/steps/database.html
index 1b13768c9a..6b71f1db9e 100644
--- a/src/Umbraco.Web.UI.Client/src/installer/steps/database.html
+++ b/src/Umbraco.Web.UI.Client/src/installer/steps/database.html
@@ -100,7 +100,7 @@
-
+
Validating your database connection...
diff --git a/src/Umbraco.Web.UI.Client/src/installer/steps/upgrade.html b/src/Umbraco.Web.UI.Client/src/installer/steps/upgrade.html
index 5242fa8554..ec45b652c9 100644
--- a/src/Umbraco.Web.UI.Client/src/installer/steps/upgrade.html
+++ b/src/Umbraco.Web.UI.Client/src/installer/steps/upgrade.html
@@ -8,7 +8,7 @@
To read a report of changes between your current version {{installer.current.model.currentVersion}} and this version your upgrading to {{installer.current.model.newVersion}}
- View Report
+ View Report
diff --git a/src/Umbraco.Web.UI.Client/src/installer/steps/user.html b/src/Umbraco.Web.UI.Client/src/installer/steps/user.html
index 7be0d23959..68958be0a6 100644
--- a/src/Umbraco.Web.UI.Client/src/installer/steps/user.html
+++ b/src/Umbraco.Web.UI.Client/src/installer/steps/user.html
@@ -46,16 +46,21 @@
diff --git a/src/Umbraco.Web.UI.Client/src/less/installer.less b/src/Umbraco.Web.UI.Client/src/less/installer.less
index bacb922633..b37271834a 100644
--- a/src/Umbraco.Web.UI.Client/src/less/installer.less
+++ b/src/Umbraco.Web.UI.Client/src/less/installer.less
@@ -122,7 +122,7 @@ body {
h1{
border-bottom: 1px solid @gray-10;
padding-bottom: 10px;
- color: @gray-3;
+ color: @gray-2;
}
.error h1, .error .message, span.error{ color: @red;}
@@ -134,6 +134,12 @@ input.ng-dirty.ng-invalid{border-color: #b94a48; color: #b94a48;}
opacity: 0.6;
}
+
+#installer label.control-label,
+#installer .constrol-label {
+ padding-top: 5px !important;
+}
+
.controls{
text-align: left
}
From 00b0515fc1f74346d70732c2c5c414e51737a06b Mon Sep 17 00:00:00 2001
From: Mads Rasmussen
Date: Thu, 16 Mar 2017 10:31:48 +0100
Subject: [PATCH 12/16] Revert "less bright and "dangerous" alerts,
notifications and validation messages"
This reverts commit 691c13d1e1054de976cdd5d03bea340c66942727.
---
.../src/less/alerts.less | 16 ++----
.../notifications/umb-notifications.less | 53 +++++++++----------
src/Umbraco.Web.UI.Client/src/less/forms.less | 4 +-
src/Umbraco.Web.UI.Client/src/less/navs.less | 7 ++-
.../src/less/variables.less | 48 ++++++++---------
.../notifications/umb-notifications.html | 2 +-
6 files changed, 58 insertions(+), 72 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/src/less/alerts.less b/src/Umbraco.Web.UI.Client/src/less/alerts.less
index 1798e0b7fa..c575f58f0c 100644
--- a/src/Umbraco.Web.UI.Client/src/less/alerts.less
+++ b/src/Umbraco.Web.UI.Client/src/less/alerts.less
@@ -7,10 +7,10 @@
// -------------------------
.alert {
- padding: 5px 35px 5px 14px;
+ padding: 8px 35px 8px 14px;
margin-bottom: @baseLineHeight;
background-color: @warningBackground;
- border-left: 2px solid @warningBorder;
+ border: 1px solid @warningBorder;
.border-radius(@baseBorderRadius);
}
.alert,
@@ -44,36 +44,31 @@
border-color: @successBorder;
color: @successText;
}
-
.alert-success h4 {
color: @successText;
}
-
.alert-danger,
.alert-error {
background-color: @errorBackground;
border-color: @errorBorder;
color: @errorText;
}
-
.alert-danger h4,
.alert-error h4 {
color: @errorText;
}
-
.alert-info {
background-color: @infoBackground;
border-color: @infoBorder;
color: @infoText;
}
-
.alert-info h4 {
color: @infoText;
}
.alert-form {
background-color: @gray-10;
- border-color: @gray-7;
+ border: 1px solid @gray-3 !important;
color: @gray-3;
}
@@ -82,10 +77,7 @@
}
.alert-form h4 {
- color: @gray-1;
- margin-bottom: 5px;
- font-weight: bold;
- font-size: 16px;
+ color: @gray-3;
}
diff --git a/src/Umbraco.Web.UI.Client/src/less/components/notifications/umb-notifications.less b/src/Umbraco.Web.UI.Client/src/less/components/notifications/umb-notifications.less
index 76d5d47a8f..77dc6c6995 100644
--- a/src/Umbraco.Web.UI.Client/src/less/components/notifications/umb-notifications.less
+++ b/src/Umbraco.Web.UI.Client/src/less/components/notifications/umb-notifications.less
@@ -1,40 +1,35 @@
.umb-notifications {
- z-index: 1000;
- position: absolute;
- bottom: 53px;
- left: 0;
- right: 0;
- border-bottom: none;
- margin: auto;
- padding: 0px;
- background: none;
- border-radius: 0;
+ z-index: 1000;
+ position: absolute;
+ bottom: 52px;
+ left: 0;
+ right: 0;
+ border-bottom: none;
+ margin: auto;
+ padding: 0px;
+ border: none;
+ background: none;
+ border-radius: 0;
}
.umb-notifications__notifications {
- list-style: none;
- margin: 0;
- position: relative;
+ list-style: none;
+ margin: 0;
+ position: relative;
}
+
.umb-notifications__notification {
- border-width: 1px;
- border-style: solid;
- padding: 5px 20px;
- text-shadow: none;
- font-size: 14px;
- border-radius: 3px;
- position: relative;
- margin-bottom: 0;
- left: 50%;
- transform: translate(-50%);
- width: 85%;
- bottom: 10px;
- margin-bottom: 2px;
- box-shadow: 0 5px 10px rgba(0,0,0,0.05), 0 3px 3px rgba(0,0,0,0.12);
+ padding: 5px 20px;
+ text-shadow: none;
+ font-size: 14px;
+ border: none;
+ border-radius: 0;
+ position: relative;
+ margin-bottom: 0;
}
.umb-notifications__notification.-extra-padding {
- padding-top: 20px;
- padding-bottom: 20px;
+ padding-top: 20px;
+ padding-bottom: 20px;
}
diff --git a/src/Umbraco.Web.UI.Client/src/less/forms.less b/src/Umbraco.Web.UI.Client/src/less/forms.less
index 97d91d6c27..869d0b7740 100644
--- a/src/Umbraco.Web.UI.Client/src/less/forms.less
+++ b/src/Umbraco.Web.UI.Client/src/less/forms.less
@@ -19,7 +19,7 @@ label small, .guiDialogTiny {
label.control-label, .control-label {
padding: 0 10px 0 0 !important;
font-weight: bold;
- color: @gray-2;
+ color: @black;
}
@@ -483,7 +483,7 @@ input[type="checkbox"][readonly] {
// Error
.show-validation.ng-invalid .control-group.error,
.show-validation.ng-invalid .umb-panel-header-content-wrapper {
- .formFieldState(@formErrorText, @formErrorBorder, @formErrorBackground);
+ .formFieldState(@formErrorText, @formErrorText, @formErrorBackground);
}
//val-highlight directive styling
diff --git a/src/Umbraco.Web.UI.Client/src/less/navs.less b/src/Umbraco.Web.UI.Client/src/less/navs.less
index c594789b6c..da0dfc0110 100644
--- a/src/Umbraco.Web.UI.Client/src/less/navs.less
+++ b/src/Umbraco.Web.UI.Client/src/less/navs.less
@@ -158,10 +158,9 @@
.show-validation .tab-error a,
.show-validation .tab-error a:hover,
.show-validation .tab-error a:focus {
- background-color: @red-washed !important;
- border-top-color: @errorBorder;
- border-left-color: @errorBorder;
- border-right-color: @errorBorder;
+ color: @white !important;
+ background-color: @red !important;
+ border-color: @errorBorder;
}
.show-validation .tab-error a:before {
diff --git a/src/Umbraco.Web.UI.Client/src/less/variables.less b/src/Umbraco.Web.UI.Client/src/less/variables.less
index 5d757fef9b..314035f1ae 100644
--- a/src/Umbraco.Web.UI.Client/src/less/variables.less
+++ b/src/Umbraco.Web.UI.Client/src/less/variables.less
@@ -310,21 +310,21 @@
// alerts
// -------------------------
-@warningText: @black;
-@warningBackground: @yellow-washed;
-@warningBorder: @yellow;
+@warningText: @white;
+@warningBackground: @orange;
+@warningBorder: transparent;
-@errorText: @black;
-@errorBackground: @red-washed;
-@errorBorder: @red;
+@errorText: @white;
+@errorBackground: @red-d1;
+@errorBorder: transparent;
-@successText: @black;
-@successBackground: @green-washed;
-@successBorder: @green;
+@successText: @white;
+@successBackground: @green-d1;
+@successBorder: transparent;
-@infoText: @black;
-@infoBackground: @turquoise-washed;
-@infoBorder: @turquoise;
+@infoText: @white;
+@infoBackground: @turquoise-d1;
+@infoBorder: transparent;
// SD: Had to duplicate the above but prefix with 'form' inversed colors
// because we cannot share the above alert colors with forms otherwise we end up with white
@@ -332,21 +332,21 @@
// Form states
// -------------------------
-@formWarningText: @black;
-@formWarningBackground: @yellow-washed;
-@formWarningBorder: @yellow;
+@formWarningText: @warningBackground;
+@formWarningBackground: lighten(@warningBackground, 38%);
+@formWarningBorder: darken(spin(@warningBackground, -10), 3%);
-@formErrorText: @black;
-@formErrorBackground: @red-washed;
-@formErrorBorder: @red;
+@formErrorText: @errorBackground;
+@formErrorBackground: lighten(@errorBackground, 55%);
+@formErrorBorder: darken(spin(@errorBackground, -10), 3%);
-@formSuccessText: @black;
-@formSuccessBackground: @green-washed;
-@formSuccessBorder: @green;
+@formSuccessText: @successBackground;
+@formSuccessBackground: lighten(@successBackground, 48%);
+@formSuccessBorder: darken(spin(@successBackground, -10), 5%);
-@formInfoText: @black;
-@formInfoBackground: @turquoise-washed;
-@formInfoBorder: @turquoise;
+@formInfoText: @infoBackground;
+@formInfoBackground: lighten(@infoBackground, 41%);
+@formInfoBorder: darken(spin(@infoBackground, -10), 7%);
// Tooltips and popovers
diff --git a/src/Umbraco.Web.UI.Client/src/views/components/notifications/umb-notifications.html b/src/Umbraco.Web.UI.Client/src/views/components/notifications/umb-notifications.html
index ab3b9abcbd..9962e2dd84 100644
--- a/src/Umbraco.Web.UI.Client/src/views/components/notifications/umb-notifications.html
+++ b/src/Umbraco.Web.UI.Client/src/views/components/notifications/umb-notifications.html
@@ -2,7 +2,7 @@
-
+ ng-class="{'-no-border -extra-padding': notification.type === 'form'}">
×
From 30d5bfa7b49c92b96a1beb92094b9152b85c4df2 Mon Sep 17 00:00:00 2001
From: Mads Rasmussen
Date: Thu, 16 Mar 2017 15:49:59 +0100
Subject: [PATCH 13/16] move nonode css to less file, update grunt build +
update no node colors + font
---
src/Umbraco.Web.UI.Client/gruntFile.js | 16 +-
.../src/assets/css/nonodes.style.min.css | 17 -
.../src/less/pages/nonodes.less | 367 ++++++++++++++++++
3 files changed, 380 insertions(+), 20 deletions(-)
delete mode 100644 src/Umbraco.Web.UI.Client/src/assets/css/nonodes.style.min.css
create mode 100644 src/Umbraco.Web.UI.Client/src/less/pages/nonodes.less
diff --git a/src/Umbraco.Web.UI.Client/gruntFile.js b/src/Umbraco.Web.UI.Client/gruntFile.js
index 9ce6c14731..29b83939ac 100644
--- a/src/Umbraco.Web.UI.Client/gruntFile.js
+++ b/src/Umbraco.Web.UI.Client/gruntFile.js
@@ -11,17 +11,17 @@ module.exports = function (grunt) {
//TODO: Too much watching, this brings windows to it's knees when in dev mode
//run by the watch task
grunt.registerTask('watch-js', ['jshint:dev', 'concat', 'copy:app', 'copy:mocks', 'copy:canvasdesigner', 'copy:vs', 'karma:unit']);
- grunt.registerTask('watch-less', ['recess:build', 'recess:installer', 'recess:canvasdesigner', 'postcss', 'copy:canvasdesigner', 'copy:assets', 'copy:vs']);
+ grunt.registerTask('watch-less', ['recess:build', 'recess:installer', 'recess:nonodes', 'recess:canvasdesigner', 'postcss', 'copy:canvasdesigner', 'copy:assets', 'copy:vs']);
grunt.registerTask('watch-html', ['copy:views', 'copy:vs']);
grunt.registerTask('watch-installer', ['concat:install', 'concat:installJs', 'copy:installer', 'copy:vs']);
grunt.registerTask('watch-canvasdesigner', ['copy:canvasdesigner', 'concat:canvasdesignerJs', 'copy:vs']);
grunt.registerTask('watch-test', ['jshint:dev', 'karma:unit']);
//triggered from grunt
- grunt.registerTask('build', ['concat', 'recess:build', 'recess:installer', 'recess:canvasdesigner', 'postcss', 'bower-install-simple', 'bower', 'copy', 'clean:post']);
+ grunt.registerTask('build', ['concat', 'recess:build', 'recess:installer', 'recess:nonodes', 'recess:canvasdesigner', 'postcss', 'bower-install-simple', 'bower', 'copy', 'clean:post']);
//triggered from grunt dev vs or grunt vs
- grunt.registerTask('build-dev', ['clean:pre', 'concat', 'recess:build', 'recess:installer', 'postcss', 'bower-install-simple', 'bower', 'copy']);
+ grunt.registerTask('build-dev', ['clean:pre', 'concat', 'recess:build', 'recess:installer', 'recess:nonodes', 'postcss', 'bower-install-simple', 'bower', 'copy']);
//utillity tasks
grunt.registerTask('docs', ['ngdocs']);
@@ -293,6 +293,16 @@ module.exports = function (grunt) {
compress: true
}
},
+ nonodes: {
+ files: {
+ '<%= distdir %>/assets/css/nonodes.style.min.css':
+ ['src/less/pages/nonodes.less']
+ },
+ options: {
+ compile: true,
+ compress: true
+ }
+ },
installer: {
files: {
'<%= distdir %>/assets/css/installer.css':
diff --git a/src/Umbraco.Web.UI.Client/src/assets/css/nonodes.style.min.css b/src/Umbraco.Web.UI.Client/src/assets/css/nonodes.style.min.css
deleted file mode 100644
index 5299a59c7e..0000000000
--- a/src/Umbraco.Web.UI.Client/src/assets/css/nonodes.style.min.css
+++ /dev/null
@@ -1,17 +0,0 @@
-@font-face {
- font-family: 'Open Sans';
- font-style: normal;
- font-weight: 400;
- src: url('../fonts/opensans/OpenSans-Regular-webfont.eot');
- src: local('Open Sans'), local('OpenSans'), url('../fonts/opensans/OpenSans-Regular-webfont.eot?#iefix') format('embedded-opentype'), url('../fonts/opensans/OpenSans-Regular-webfont.ttf') format('truetype'), url('../fonts/opensans/OpenSans-Regular-webfont.svg#open_sansregular') format('svg');
-}
-
-@font-face {
- font-family: 'Open Sans';
- font-style: normal;
- font-weight: 600;
- src: url('../fonts/opensans/OpenSans-Semibold-webfont.eot');
- src: local('Open Sans Semibold'), local('OpenSans-Semibold'), url('../fonts/opensans/OpenSans-Semibold-webfont.eot?#iefix') format('embedded-opentype'), url('../fonts/opensans/OpenSans-Semibold-webfont.ttf') format('truetype'), url('../fonts/opensans/OpenSans-Semibold-webfont.svg#open_sanssemibold') format('svg');
-}
-
-abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,p,pre,q,samp,section,small,span,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,ul,var,video{margin:0;padding:0;outline:0;border:0;background:0 0;vertical-align:baseline;font-size:100%}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}nav ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}a{margin:0;padding:0;background:0 0;vertical-align:baseline;font-size:100%}ins{background-color:#ff9;color:#000;text-decoration:none}mark{background-color:#ff9;color:#000;font-weight:700;font-style:italic}del{text-decoration:line-through}abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}table{border-spacing:0;border-collapse:collapse}hr{display:block;margin:1em 0;padding:0;height:1px;border:0;border-top:1px solid #ccc}input,select{vertical-align:middle}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}body,html{height:100%;width:100%;color:#fff;font-family:'Open Sans',sans-serif;font-weight:400;font-size:.9375em;line-height:1.5}h1{font-size:1.7em;margin:40px auto 10px;font-weight:700}h2{font-size:1.35em;margin:0 auto .4em;font-weight:700}h3{font-size:1em;font-weight:400;font-style:italic}p{font-size:1em;line-height:1.6}p+a{margin-top:1rem;display:inline-block}a,a:active,a:visited{text-decoration:none}.cta{margin:4.5em auto 1.5em;padding-bottom:4.5em}.button,.button:visited{padding:.9375em 1.875em;border-radius:.1em;font-weight:600;font-size:1.2em;background:#2e99f4;color:#fff;display:inline-block;border:none;transition:all 200ms ease-in-out}.button:hover,.button:visited:hover{border-bottom:none;background:#0c80e3}section{background:url(../img/nonodesbg.jpg) center center/cover;height:100%;width:100%;display:table;padding:3em 1.75em}section a,section a:focus,section a:visited{color:#46a5f5;font-size:1.1625em;border-bottom:1px solid transparent;transition:border-bottom 100ms ease-in-out}section a:focus:hover,section a:hover,section a:visited:hover{border-bottom:1px solid}section:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.17);background:linear-gradient(45deg,rgba(85,98,112,.1) 10%,rgba(255,107,107,.1) 95%);z-index:0}section article{display:table-cell;vertical-align:middle;margin:0 auto;text-align:center;position:relative;z-index:100}section article>div{max-width:60em;margin:0 auto}section .logo{background:url(../img/logo.png) no-repeat;width:91px;height:91px;margin:0 auto}section .row{overflow:hidden}section .row .col{text-align:left;width:100%}section .row .col:nth-child(2){margin-top:3em}@media screen and (min-width:48em){body,html{font-size:1em}h1{font-size:2.5em;margin:70px auto 0;letter-spacing:.5px}h2{font-size:1.4375em;margin:0 auto 1em}h3{font-size:1.2em}a{font-size:1.1rem;font-weight:600}p+a{margin-top:3rem}.cta{margin:7.5em auto 2.5em;border-bottom:1px solid rgba(255,255,255,.5);padding-bottom:7.5em}section{padding:0 15px}section .row .col{float:left;width:50%;padding-right:5%;display:inline-block}section .row .col:nth-child(2){padding-right:0;padding-left:5%;margin-top:0}.button{font-size:1.1625em}}
\ No newline at end of file
diff --git a/src/Umbraco.Web.UI.Client/src/less/pages/nonodes.less b/src/Umbraco.Web.UI.Client/src/less/pages/nonodes.less
new file mode 100644
index 0000000000..868a358d21
--- /dev/null
+++ b/src/Umbraco.Web.UI.Client/src/less/pages/nonodes.less
@@ -0,0 +1,367 @@
+@import "../fonts.less"; // Loading fonts
+@import "../variables.less"; // Loading variables
+
+abbr,
+address,
+article,
+aside,
+audio,
+b,
+blockquote,
+body,
+canvas,
+caption,
+cite,
+code,
+dd,
+del,
+details,
+dfn,
+div,
+dl,
+dt,
+em,
+fieldset,
+figcaption,
+figure,
+footer,
+form,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+header,
+hgroup,
+html,
+i,
+iframe,
+img,
+ins,
+kbd,
+label,
+legend,
+li,
+mark,
+menu,
+nav,
+object,
+ol,
+p,
+pre,
+q,
+samp,
+section,
+small,
+span,
+strong,
+sub,
+summary,
+sup,
+table,
+tbody,
+td,
+tfoot,
+th,
+thead,
+time,
+tr,
+ul,
+var,
+video {
+ margin: 0;
+ padding: 0;
+ outline: 0;
+ border: 0;
+ background: 0 0;
+ vertical-align: baseline;
+ font-size: 100%;
+}
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+menu,
+nav,
+section {
+ display: block;
+}
+
+nav ul {
+ list-style: none;
+}
+
+blockquote,
+q {
+ quotes: none;
+}
+
+blockquote:after,
+blockquote:before,
+q:after,
+q:before {
+ content: '';
+ content: none;
+}
+
+a {
+ margin: 0;
+ padding: 0;
+ background: 0 0;
+ vertical-align: baseline;
+ font-size: 100%;
+}
+
+ins {
+ background-color: @yellow-l3;
+ color: @black;
+ text-decoration: none;
+}
+
+mark {
+ background-color: @yellow-l3;
+ color: @black;
+ font-weight: bold;
+ font-style: italic;
+}
+
+del {
+ text-decoration: line-through;
+}
+
+abbr[title],
+dfn[title] {
+ border-bottom: 1px dotted;
+ cursor: help;
+}
+
+table {
+ border-spacing: 0;
+ border-collapse: collapse;
+}
+
+hr {
+ display: block;
+ margin: 1em 0;
+ padding: 0;
+ height: 1px;
+ border: 0;
+ border-top: 1px solid @gray-8;
+}
+
+input,
+select {
+ vertical-align: middle;
+}
+
+html {
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+*,
+:after,
+:before {
+ box-sizing: border-box;
+}
+
+body,
+html {
+ height: 100%;
+ width: 100%;
+ color: @white;
+ font-family: @sansFontFamily;
+ font-weight: 400;
+ font-size: .9375em;
+ line-height: 1.5;
+}
+
+h1 {
+ font-size: 1.7em;
+ margin: 40px auto 10px;
+ font-weight: 700;
+}
+
+h2 {
+ font-size: 1.35em;
+ margin: 0 auto .4em;
+ font-weight: 700;
+}
+
+h3 {
+ font-size: 1em;
+ font-weight: 400;
+ font-style: italic;
+}
+
+p {
+ font-size: 1em;
+ line-height: 1.6;
+}
+
+p+a {
+ margin-top: 1rem;
+ display: inline-block;
+}
+
+a,
+a:active,
+a:visited {
+ text-decoration: none;
+}
+
+.cta {
+ margin: 4.5em auto 1.5em;
+ padding-bottom: 4.5em;
+}
+
+.button,
+.button:visited {
+ padding: .9375em 1.875em;
+ border-radius: .1em;
+ font-weight: 600;
+ font-size: 1.2em;
+ background: @green;
+ color: @white;
+ display: inline-block;
+ border: none;
+ transition: all 200ms ease-in-out;
+ border-radius: 3px;
+}
+
+.button:hover,
+.button:visited:hover {
+ border-bottom: none;
+ background: @green-d1;
+}
+
+section {
+ background-image: url(../img/nonodesbg.jpg);
+ background-position: center center;
+ background-size: cover;
+ height: 100%;
+ width: 100%;
+ display: table;
+ padding: 3em 1.75em
+}
+
+section a,
+section a:focus,
+section a:visited {
+ color: @white;
+ font-size: 1.1625em;
+ border-bottom: 1px solid @white;
+ transition: border-bottom 100ms ease-in-out;
+}
+
+section a:focus:hover,
+section a:hover,
+section a:visited:hover {
+ border-bottom: 1px solid;
+}
+
+section:after {
+ content: "";
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ background: rgba(0, 0, 0, .17);
+ background: linear-gradient(45deg, rgba(85, 98, 112, .1) 10%, rgba(255, 107, 107, .1) 95%);
+ z-index: 0
+}
+
+section article {
+ display: table-cell;
+ vertical-align: middle;
+ margin: 0 auto;
+ text-align: center;
+ position: relative;
+ z-index: 100;
+}
+
+section article>div {
+ max-width: 60em;
+ margin: 0 auto;
+ padding-top: 50px;
+ padding-bottom: 70px;
+}
+
+section .logo {
+ background-image: url(../img/logo.png);
+ background-repeat: no-repeat;
+ width: 91px;
+ height: 91px;
+ margin: 0 auto;
+}
+
+section .row {
+ overflow: hidden;
+}
+
+section .row .col {
+ text-align: left;
+ width: 100%;
+}
+
+section .row .col:nth-child(2) {
+ margin-top: 3em;
+}
+
+@media screen and (min-width:48em) {
+ body,
+ html {
+ font-size: 1em;
+ }
+ h1 {
+ font-size: 2.5em;
+ margin: 70px auto 0;
+ letter-spacing: .5px;
+ }
+ h2 {
+ font-size: 1.4375em;
+ margin: 0 auto 1em;
+ }
+ h3 {
+ font-size: 1.2em;
+ }
+ a {
+ font-size: 1.1rem;
+ font-weight: 600;
+ }
+ p+a {
+ margin-top: 3rem;
+ }
+ .cta {
+ margin: 7.5em auto 2.5em;
+ border-bottom: 1px solid @gray-5;
+ padding-bottom: 7.5em;
+ }
+ section {
+ padding: 0 15px;
+ }
+ section .row .col {
+ float: left;
+ width: 50%;
+ padding-right: 5%;
+ display: inline-block;
+ }
+ section .row .col:nth-child(2) {
+ padding-right: 0;
+ padding-left: 5%;
+ margin-top: 0;
+ }
+ .button {
+ font-size: 1.1625em;
+ }
+}
+
+
+
From e3bc6f148a77239c35d4a161c4b6d3a0c771c4e1 Mon Sep 17 00:00:00 2001
From: Sebastiaan Janssen
Date: Fri, 17 Mar 2017 11:35:15 +0100
Subject: [PATCH 14/16] New installer background image
---
.../src/assets/img/installer.jpg | Bin 304723 -> 279297 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
diff --git a/src/Umbraco.Web.UI.Client/src/assets/img/installer.jpg b/src/Umbraco.Web.UI.Client/src/assets/img/installer.jpg
index 97fc1052614ef99ea2428af7ab3e06d3297dc94a..b380efc4956ca90fb05399310e04275427e21160 100644
GIT binary patch
literal 279297
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