diff --git a/client/app/scripts/components/app.js b/client/app/scripts/components/app.js
index 01cb5de6db..7ac137463d 100644
--- a/client/app/scripts/components/app.js
+++ b/client/app/scripts/components/app.js
@@ -72,7 +72,6 @@ export default class App extends React.Component {
render() {
const showingDetails = this.state.nodeDetails.size > 0;
const showingTerminal = this.state.controlPipe;
- const footer = `Version ${this.state.version} on ${this.state.hostname}`;
// width of details panel blocking a view
const detailsWidth = showingDetails ? 450 : 0;
const topMargin = 100;
@@ -100,17 +99,23 @@ export default class App extends React.Component {
topologyId={this.state.currentTopologyId} />
-
+
);
diff --git a/client/app/styles/main.less b/client/app/styles/main.less
index 72840f73be..80202f17e9 100644
--- a/client/app/styles/main.less
+++ b/client/app/styles/main.less
@@ -23,15 +23,17 @@
@primary-color: @weave-charcoal-blue;
@background-color: lighten(@primary-color, 66%);
-@background-secondary-color: lighten(@background-color, 8%);
+@background-lighter-color: lighten(@background-color, 8%);
+@background-darker-color: darken(@background-color, 8%);
+@background-darker-secondary-color: darken(@background-color, 4%);
@background-dark-color: @primary-color;
@background-medium-color: lighten(@background-dark-color, 55%);
@text-color: lighten(@primary-color, 10%);
-@text-secondary-color: lighten(@primary-color, 33%);
+@text-secondary-color: lighten(@primary-color, 27%);
@text-tertiary-color: lighten(@primary-color, 50%);
@border-light-color: lighten(@primary-color, 66%);
@text-darker-color: @primary-color;
-@white: @background-secondary-color;
+@white: @background-lighter-color;
@details-window-width: 420px;
@details-window-padding-left: 36px;
@@ -50,8 +52,7 @@
}
.palable {
- transition: opacity .2s ease-in-out;
- transition: border-color .2s ease-in-out;
+ transition: all .2s ease-in-out;
}
.hideable {
@@ -74,6 +75,17 @@
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.19), 0 6px 10px rgba(0, 0, 0, 0.23);
}
+.btn-opacity {
+ .palable;
+ opacity: 0.8;
+ &-selected {
+ opacity: 0.9;
+ }
+ &:hover {
+ opacity: 1;
+ }
+}
+
* {
box-sizing: border-box;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
@@ -95,7 +107,7 @@ body {
/* Space out content a bit */
body {
- background: linear-gradient(30deg, @background-color 0%, @background-secondary-color 100%);
+ background: linear-gradient(30deg, @background-color 0%, @background-lighter-color 100%);
color: @text-color;
line-height: 150%;
font-family: @base-font;
@@ -135,6 +147,7 @@ h2 {
width: 100%;
height: 80px;
z-index: 20;
+ display: flex;
}
.footer {
@@ -143,14 +156,20 @@ h2 {
right: 48px;
z-index: 20;
color: @text-tertiary-color;
- font-size: 85%;
+ font-size: 0.7rem;
+ opacity: 0.8;
a {
color: @text-secondary-color;
+ .btn-opacity;
+ text-decoration: none;
+ font-weight: bold;
+ font-size: 90%;
+ }
- &:hover {
- color: @text-color;
- }
+ &-label {
+ text-transform: uppercase;
+ margin: 0 0.25em;
}
}
@@ -158,32 +177,26 @@ h2 {
margin: -8px 0 0 64px;
height: 64px;
width: 250px;
- float: left;
}
.topologies {
- float: left;
- margin: 4px 64px;
+ margin: 4px 0 0 128px;
+ display: flex;
.topologies-item {
- margin: 0px 16px;
- float: left;
+ margin: 0px 8px;
&-label {
- color: @text-secondary-color;
- font-size: 16px;
+ font-size: .8rem;
text-transform: uppercase;
}
}
.topologies-sub {
- margin-top: 4px;
-
&-item {
&-label {
- color: @text-secondary-color;
- font-size: 12px;
+ font-size: .7rem;
text-transform: uppercase;
}
}
@@ -191,33 +204,34 @@ h2 {
.topologies-item-main,
.topologies-sub-item {
+ // border: 1px solid @background-darker-secondary-color;
+ color: @text-secondary-color;
+ .palable;
cursor: pointer;
+ padding: 4px 8px;
+ opacity: 0.7;
+ border-radius: 4px;
+ opacity: 0.8;
+ margin-bottom: 3px;
&-active, &:hover {
- .topologies-sub-item-label,
- .topologies-item-label {
- color: @text-color;
- }
+ color: @text-color;
+ background-color: @background-darker-secondary-color;
}
- }
-
-}
-
-.topology-options {
- margin-top: -16px;
-}
+ &-active {
+ opacity: 0.85;
+ }
-.status {
- &-icon {
- font-size: 16px;
- position: relative;
- top: 1px;
+ &:hover {
+ opacity: 1;
+ }
}
- &-label {
- margin-left: 0.5em;
+ .topologies-sub-item {
+ padding: 2px 8px;
}
+
}
.nodes-chart {
@@ -322,7 +336,7 @@ h2 {
circle.shadow {
stroke: none;
- fill: @background-secondary-color;
+ fill: @background-lighter-color;
}
circle.node {
@@ -877,36 +891,33 @@ h2 {
.sidebar {
position: fixed;
bottom: 16px;
- left: 20px;
- width: 18em;
- font-size: 85%;
+ left: 24px;
+ font-size: .7rem;
&-item {
- background-color: darken(@background-color, 8%);
- border-radius: 2px;
- padding: 4px 8px;
- width: 100%;
- margin-top: 2px;
+ color: @text-secondary-color;
+ margin-top: 4px;
- &.status {
- background-color: darken(@background-color, 4%);
- color: @text-secondary-color;
- }
&.status-loading {
animation: status-loading 2.0s infinite ease-in-out;
}
&-action {
- float: right;
+ .btn-opacity;
text-transform: uppercase;
font-weight: bold;
color: darken(@weave-orange, 25%);
cursor: pointer;
font-size: 90%;
+ margin-left: 0.5em;
}
}
}
+.status {
+ text-transform: uppercase;
+}
+
@keyframes blinking {
0%, 100% {
opacity: 1.0;
@@ -917,10 +928,10 @@ h2 {
@keyframes status-loading {
0%, 100% {
- background-color: darken(@background-color, 4%);
+ background-color: @background-darker-secondary-color;
color: @text-secondary-color;
} 50% {
- background-color: darken(@background-color, 8%);
+ background-color: @background-darker-color;
color: @text-color;
}
}