[am] Add dark-mode support
Screenshots:
* "Mine"- https://screenshot.googleplex.com/5u5SEwC3uKcviau.png
* "Alerts"- https://screenshot.googleplex.com/F5eybAht6sRcEpd.png
* "Alerts" Bot-centric view- https://screenshot.googleplex.com/4ADVcHaiiLkRikk.png
* "Silences"- https://screenshot.googleplex.com/4fnBAJPD2TEnT8k.png
* "Stats"- https://screenshot.googleplex.com/54SUuPEngQjUMVR.png
Improvements:
* Made widths of all comments/matches/history/silences consistent.
* All sections have “border-radius: 0.5em” for consistency.
* Added background for notes/matches of silences.
Before: https://screenshot.googleplex.com/3Gd752YGc4xuWzk
After: https://screenshot.googleplex.com/7EjjsATRvLMh3jS
Bug: skia:11231
Change-Id: Iabd89f3d04e2e55b3d1cdb9516816e7aee0836af
Reviewed-on: https://skia-review.googlesource.com/c/buildbot/+/364637
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Ravi Mistry <rmistry@google.com>
diff --git a/am/modules/alert-manager-sk/alert-manager-sk.scss b/am/modules/alert-manager-sk/alert-manager-sk.scss
index 9e69b46..9a3be57 100644
--- a/am/modules/alert-manager-sk/alert-manager-sk.scss
+++ b/am/modules/alert-manager-sk/alert-manager-sk.scss
@@ -1,4 +1,4 @@
-@import '~elements-sk/colors';
+@import '../themes/themes.scss';
alert-manager-sk {
spinner-sk[active] {
@@ -40,7 +40,7 @@
}
.bot-incident-list {
- color: var(--gray);
+ color: var(--inactive);
}
.bot-incident-elem {
@@ -50,7 +50,7 @@
h2 {
align-items: center;
- color: var(--red);
+ color: var(--active);
margin: 0;
padding: 0;
font-size: 14px;
@@ -62,23 +62,23 @@
}
h2.assigned {
- color: var(--orange);
+ color: var(--assigned);
}
h2.inactive {
- color: var(--gray);
+ color: var(--inactive);
}
h2.selected {
- background: var(--white);
+ background: var(--selected);
}
h2.silenced {
- color: var(--green);
+ color: var(--silenced);
}
.silences h2.inactive {
- color: var(--gray);
+ color: var(--inactive);
}
footer {
@@ -101,12 +101,13 @@
tabs-sk {
padding: 5px 0 0 5px;
- border-bottom: dotted var(--gray) 1px;
+ border-bottom: dotted var(--on-background) 1px;
button {
border: none;
- background: var(--white);
- color: var(--gray);
+ background: var(--surface);
+ color: var(--on-surface);
+ fill: var(--on-surface);
}
}
@@ -150,36 +151,36 @@
padding: 1em;
h2 {
- color: var(--blue);
+ color: var(--primary);
display: flex;
justify-content: space-between;
}
}
comment-icon-sk, alarm-off-icon-sk, thumbs-up-down-icon-sk {
- fill: var(--green);
+ fill: var(--icons);
padding: 0.2em 0.6em;
}
.inactive comment-icon-sk {
- fill: gray;
+ fill: var(--inactive);
}
person-icon-sk {
- fill: var(--light-orange);
+ fill: var(--assigned-person);
}
.assigned-circle {
border: solid;
- border-color: var(--light-orange);
+ border-color: var(--assigned-person);
border-radius: 50%;
- color: var(--light-orange);
+ color: var(--assigned-person);
padding: 0.2em;
}
notifications-icon-sk {
padding: 0 0.6em;
- fill: var(--blue);
+ fill: var(--primary);
}
.invisible {
@@ -193,22 +194,22 @@
header {
grid-area: header;
- color: var(--blue);
- fill: var(--blue);
+ color: var(--primary);
+ fill: var(--primary);
padding: 0.4em;
justify-content: flex-end;
display: flex;
login-sk .email,
login-sk .logInOut {
- color: var(--blue);
+ color: var(--primary);
}
}
header,
.edit,
footer {
- border-left: solid 1px black;
+ border-left: solid 1px var(--on-background);
}
display: grid;
diff --git a/am/modules/alert-manager-sk/alert-manager-sk.ts b/am/modules/alert-manager-sk/alert-manager-sk.ts
index 6c76b39..ab702e0 100644
--- a/am/modules/alert-manager-sk/alert-manager-sk.ts
+++ b/am/modules/alert-manager-sk/alert-manager-sk.ts
@@ -34,6 +34,7 @@
import { Login } from '../../../infra-sk/modules/login';
import { BotChooserSk } from '../bot-chooser-sk/bot-chooser-sk';
import { EmailChooserSk } from '../email-chooser-sk/email-chooser-sk';
+import '../../../infra-sk/modules/theme-chooser-sk';
import * as paramset from '../paramset';
import { displaySilence, expiresIn } from '../am';
@@ -130,7 +131,10 @@
}
private static template = (ele: AlertManagerSk) => html`
-<header>${ele.infraGardener()}</header>
+<header>
+ ${ele.infraGardener()}
+ <theme-chooser-sk></theme-chooser-sk>
+</header>
<section class=nav>
<tabs-sk @tab-selected-sk=${ele.tabSwitch} selected=${ele.state.tab}>
<button>Mine</button>
diff --git a/am/modules/bot-chooser-sk/bot-chooser-sk.scss b/am/modules/bot-chooser-sk/bot-chooser-sk.scss
index 4d6591d..2942272 100644
--- a/am/modules/bot-chooser-sk/bot-chooser-sk.scss
+++ b/am/modules/bot-chooser-sk/bot-chooser-sk.scss
@@ -3,7 +3,7 @@
bot-chooser-sk {
dialog-sk {
h2 {
- color: var(--blue);
+ color: var(--primary);
margin: 0;
}
}
diff --git a/am/modules/email-chooser-sk/email-chooser-sk.scss b/am/modules/email-chooser-sk/email-chooser-sk.scss
index c2cc020..1336aeb 100644
--- a/am/modules/email-chooser-sk/email-chooser-sk.scss
+++ b/am/modules/email-chooser-sk/email-chooser-sk.scss
@@ -3,7 +3,7 @@
email-chooser-sk {
dialog-sk {
h2 {
- color: var(--blue);
+ color: var(--primary);
margin: 0;
}
}
diff --git a/am/modules/incident-sk/incident-sk.scss b/am/modules/incident-sk/incident-sk.scss
index 49c1e07..0348d5d 100644
--- a/am/modules/incident-sk/incident-sk.scss
+++ b/am/modules/incident-sk/incident-sk.scss
@@ -39,7 +39,7 @@
}
td a {
- color: var(--blue);
+ color: var(--primary);
}
textarea {
@@ -48,7 +48,7 @@
}
p {
- background: var(--white);
+ background: var(--comments);
padding: 0.5em;
display: block;
border-radius: 0.5em;
@@ -65,27 +65,27 @@
.date {
margin: 0 1em;
- color: var(--orange);
+ color: var(--assigned);
}
.author {
- color: var(--green);
+ color: var(--icons);
}
.flaky,
.recently-expired-silence {
font-size: 0.75em;
- color: var(--black);
+ color: var(--background);
}
delete-icon-sk {
- fill: var(--gray);
+ fill: var(--on-background);
cursor: pointer;
border: solid transparent 1px;
}
delete-icon-sk:hover {
- border: solid var(--gray) 1px;
+ border: solid var(--on-background) 1px;
}
.meta {
@@ -121,5 +121,6 @@
incident-sk[minimized] {
margin: 1em;
- background: var(--dark-white);
+ background: var(--minimized);
+ border-radius: 0.5em;
}
diff --git a/am/modules/silence-sk/silence-sk.scss b/am/modules/silence-sk/silence-sk.scss
index 273c3fe..6508df4 100644
--- a/am/modules/silence-sk/silence-sk.scss
+++ b/am/modules/silence-sk/silence-sk.scss
@@ -35,21 +35,21 @@
.date {
margin: 0 1em;
- color: var(--orange);
+ color: var(--assigned);
}
.author {
- color: var(--green);
+ color: var(--icons);
}
delete-icon-sk {
- fill: var(--gray);
+ fill: var(--on-background);
cursor: pointer;
border: solid transparent 1px;
}
delete-icon-sk:hover {
- border: solid var(--gray) 1px;
+ border: solid var(--on-background) 1px;
}
input.duration {
@@ -66,7 +66,6 @@
section.notes,
section.addNote {
- max-width: 40em;
margin: 1em;
}
@@ -80,6 +79,9 @@
.matches {
margin: 1em;
+ background-color: var(--selected);
+ border-radius: 0.5em;
+ padding: 0.5em;
h1 {
margin: 0;
@@ -88,26 +90,26 @@
h2 {
padding: 0.2em 1em;
- color: var(--blue);
+ color: var(--primary);
}
}
h2 {
align-items: center;
- color: var(--red);
+ color: var(--active);
margin: 0;
padding: 0.2em 1em;
font-size: 14px;
cursor: pointer;
- color: var(--blue);
+ color: var(--primary);
}
h2.inactive {
- color: var(--gray);
+ color: var(--inactive);
}
p {
- background: var(--white);
+ background: var(--comments);
padding: 0.5em;
display: block;
border-radius: 0.5em;
@@ -130,5 +132,9 @@
silence-sk[collapsable] {
margin: 1em;
- background: var(--dark-white);
+ background: var(--minimized);
+ border-radius: 0.5em;
+ p, input, textarea {
+ background: var(--background);
+ }
}
diff --git a/am/modules/themes/themes.scss b/am/modules/themes/themes.scss
new file mode 100644
index 0000000..472e74e
--- /dev/null
+++ b/am/modules/themes/themes.scss
@@ -0,0 +1,48 @@
+@import '~elements-sk/themes/themes';
+
+.body-sk.darkmode {
+ --primary: var(--light-blue);
+ --primary-variant: var(--light-blue-200);
+ --on-primary-variant: var(--black);
+ --dark-grayish-blue: #8899A6;
+ --dark-desaturated-blue: #192734;
+
+ --active: var(--red-300);
+ --inactive: var(--dark-grayish-blue);
+ --silenced: var(--green-300);
+ --assigned: var(--orange-300);
+ --selected: var(--dark-desaturated-blue);
+
+ --minimized: var(--dark-desaturated-blue);
+ --comments: var(--dark-desaturated-blue);
+ --icons: var(--green-300);
+ --disabled: var(--grey-700);
+}
+
+.body-sk {
+ --primary: var(--blue-800);
+ --primary-variant: var(--light-blue-600);
+ --secondary: var(--green-500);
+ --very-dark-gray: #4F4F4F;
+
+ --active: var(--red);
+ --inactive: var(--very-dark-gray);
+ --silenced: var(--green);
+ --assigned: var(--orange);
+ --assigned-person: var(--light-orange);
+ --selected: var(--dark-white);
+
+ --minimized: var(--dark-white);
+ --comments: var(--dark-white);
+ --icons: var(--green);
+
+ input, textarea {
+ border: solid 1px var(--on-surface);
+ color: solid 1px var(--on-surface);
+ background: solid 1px var(--surface);
+ }
+
+ a {
+ color: var(--primary);
+ }
+}
diff --git a/am/pages/index.html b/am/pages/index.html
index 16def70..9f9b56d 100644
--- a/am/pages/index.html
+++ b/am/pages/index.html
@@ -7,7 +7,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link id=favicon rel="icon" type="image/png" href="/static/icon-active.png">
</head>
-<body>
+<body class="body-sk">
<alert-manager-sk></alert-manager-sk>
</body>
</html>