]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 1552885 - Fix issues in the post-Sandstone skin including low contrast, visited...
authorKohei Yoshino <kohei.yoshino@gmail.com>
Fri, 24 May 2019 22:34:02 +0000 (18:34 -0400)
committerGitHub <noreply@github.com>
Fri, 24 May 2019 22:34:02 +0000 (18:34 -0400)
27 files changed:
extensions/BMO/template/en/default/bug/create/create-mozlist.html.tmpl
extensions/BugModal/template/en/default/bug_modal/edit.html.tmpl
extensions/BugModal/template/en/default/bug_modal/field.html.tmpl
extensions/BugModal/web/bug_modal.css
extensions/BugModal/web/bug_modal.js
extensions/UserProfile/web/styles/user_profile.css
js/bug.js
skins/lib/prism.css
skins/standard/admin.css
skins/standard/attachment.css
skins/standard/buglist.css
skins/standard/fonts/FiraMono-Bold.woff [deleted file]
skins/standard/fonts/FiraMono-Bold.woff2 [deleted file]
skins/standard/fonts/FiraMono-Regular.woff [deleted file]
skins/standard/fonts/FiraMono-Regular.woff2 [deleted file]
skins/standard/fonts/NotoMono-Regular.woff [new file with mode: 0644]
skins/standard/fonts/NotoMono-Regular.woff2 [new file with mode: 0644]
skins/standard/global.css
skins/standard/index.css
skins/standard/summarize-time.css
template/en/default/bug/create/create.html.tmpl
template/en/default/bug/edit.html.tmpl
template/en/default/global/header.html.tmpl
template/en/default/list/edit-multiple.html.tmpl
template/en/default/mfa/recovery.html.tmpl
template/en/default/reports/chart.html.tmpl
template/en/default/reports/report.html.tmpl

index 9bffdec45504e5e422426be0661265f531f80891..af11e11cea414cd70e4bc792c934ad9634aaaa3a 100644 (file)
       [% INCLUDE global/textarea.html.tmpl
          name           = 'listLongDesc'
          id             = 'listLongDesc'
-         minrows        = 10
-         maxrows        = 25
+         minrows        = 5
+         maxrows        = 15
          cols           = constants.COMMENT_COLS
          defaultcontent = listLongDesc
        %]
       [% INCLUDE global/textarea.html.tmpl
          name           = 'comment'
          id             = 'comment'
-         minrows        = 10
-         maxrows        = 25
+         minrows        = 5
+         maxrows        = 15
          cols           = constants.COMMENT_COLS
          defaultcontent = comment
        %]
index b2ea6022acd0287b23321b4ced9665e434c401e3..96134cfb7b32db0d4e820817c914ed540ffdf883 100644 (file)
         view_only = 1
     %]
       <div id="field-value-bug_id">
-        [% this_bug_href = basepath _ "show_bug.cgi?id=$bug.id" %]
-        [% IF cgi.param("format") %]
-          [% format_uri = cgi.param("format") FILTER uri %]
-          [% this_bug_href = this_bug_href _ "&format=" _ format_uri %]
-        [% END %]
-        <a id="this-bug" href="[% this_bug_href FILTER html %]">
-          [%~ terms.Bug _ " " _ bug.id FILTER none ~%]
-        </a>
+        [% terms.Bug _ " " _ bug.id FILTER none %]
         [% IF bug.alias %]
           <span class="edit-hide">
             ([% bug.alias FILTER html %])
index ae786e27eff3c75ef8ffc4068e10f3cb3a526da5..fa16ebe813cdbe6218331f4e5455b4e9eac9c4f2 100644 (file)
@@ -262,7 +262,7 @@ END;
                  [%+ aria_labelledby_html FILTER none +%] [% " required" IF required %]>
         [% CASE constants.FIELD_TYPE_USER %]
           [% IF action && !action.hidden %]
-            <button class="field-button minor [%= action.class FILTER html IF action.class %]"
+            <button type="button" class="field-button minor [%= action.class FILTER html IF action.class %]"
               data-field="[% name FILTER html %]"
               [% IF action.id %]id="[% action.id FILTER html %]"[% END %]>
               [% action.caption FILTER html %]
index ad3e880840be55fe14f403c321015caa7e48ef4a..bf6dddc4812bb19390b6da1abcc0462927959747 100644 (file)
@@ -43,7 +43,6 @@
 
 .spin-toggle {
   display: inline;
-  cursor: pointer;
 }
 
 .spin-toggle:hover {
@@ -182,24 +181,18 @@ a.activity-ref {
 
 .module .field .value {
   display: table-cell;
+  padding-right: 10px;
 }
 
 .module .field .value.wide {
   display: block;
 }
 
-.module .field .value.edit {
+.module .field .value input[type="text"],
+.module .field .value input:not([type]) {
   width: 100%;
 }
 
-.module .field .value input {
-  width: 100%;
-}
-
-.module .field .value input[type="checkbox"] {
-  width: auto;
-}
-
 .module .field .value.short input {
   width: 170px;
 }
@@ -308,6 +301,10 @@ input[type="number"] {
   margin-left: 5px;
 }
 
+#module-security-content {
+  padding: 8px;
+}
+
 #module-user-story-content {
   overflow: hidden;
 }
@@ -332,10 +329,6 @@ input[type="number"] {
   color: var(--secondary-label-color);
 }
 
-#cc-latch {
-  cursor: pointer;
-}
-
 #cc-list {
   overflow-y: auto;
   clear: both;
@@ -343,6 +336,10 @@ input[type="number"] {
   white-space: nowrap;
 }
 
+#cc-list .cc-user {
+  margin: 4px 0;
+}
+
 #cc-list .vcard {
   display: inline-block;
 }
@@ -371,10 +368,6 @@ input[type="number"] {
   width: 100%;
 }
 
-.cc-loadable {
-  cursor: pointer;
-}
-
 .cc-loadable:hover {
   text-decoration: underline;
 }
@@ -575,7 +568,6 @@ td.flag-requestee {
   opacity: 1;
   font-size: var(--font-size-small);
   text-align: center;
-  cursor: pointer;
   transition: all .2s 2s;
   will-change: transform; /* for performance */
 }
@@ -822,7 +814,6 @@ h3.change-name a {
 .change-set .attachment.deleted .label [itemprop="description"],
 .change-set .attachment.obsolete .label [itemprop="description"] {
   text-decoration: line-through;
-  text-decoration-color: var(--secondary-label-color);
 }
 
 .change-set .attachment .outer {
@@ -945,7 +936,6 @@ h3.change-name a {
   outline: 0;
   border-bottom: 4px solid transparent;
   padding: 4px 8px;
-  cursor: pointer;
 }
 
 #comment-tabs li[aria-selected="true"] {
@@ -997,6 +987,7 @@ h3.change-name a {
 #mode-container {
   display: table-cell;
   margin: 5px;
+  border-left: 5px solid transparent;
   padding: 5px;
   text-align: right;
   white-space: nowrap;
@@ -1083,7 +1074,6 @@ a.lightbox-icon.markdown {
   max-width: 90%;
   background-color: var(--secondary-region-background-color);
   box-shadow: var(--primary-region-box-shadow);
-  cursor: pointer;
 }
 
 #lb_overlay {
index afd438ac7bf68fe129202b028179b5b9f7d60a57..d6358208f755764658eca388b7891a94c01f6670 100644 (file)
@@ -948,7 +948,7 @@ $(function() {
     } else if (BUGZILLA.user.settings.zoom_textareas) {
         // add comment --> enlarge on focus
         $('#comment').focus(function(event) {
-            $(event.target).attr('rows', 25);
+            $(event.target).attr('rows', 15);
         });
     }
 
index 000ed36a087540be15d1737d98000112b810acba..e7eea036bacae240a2654023eba25212f64a5c2f 100644 (file)
@@ -12,6 +12,7 @@
 #user_profile_table th {
   text-align: right;
   padding-right: 1em;
+  color: var(--secondary-label-color);
   vertical-align: middle;
   white-space: nowrap;
 }
index f67444c5ed90e7969532a2b2674bfb661fc92a52..209d034ad7a4f3b496e31d3582ddb9f48a08d3be 100644 (file)
--- a/js/bug.js
+++ b/js/bug.js
@@ -94,7 +94,7 @@ YAHOO.bugzilla.dupTable = {
                   `id=${oRecord.getData('id')}&addselfcc=1&token=${escape(oData)}`;
         var button = document.createElement('a');
         button.setAttribute('href',  url);
-        button.innerHTML = YAHOO.bugzilla.dupTable.addCcMessage;
+        button.innerHTML = `<input type="button" value="${YAHOO.bugzilla.dupTable.addCcMessage.htmlEncode()}">`;
         el.appendChild(button);
         new YAHOO.widget.Button(button);
     },
index 0286f9cff55ef2a9baf2cb1c886e2d5395b2b5e6..488b0063300f2b2bf3d0de88fbeb6d1f5645c976 100644 (file)
@@ -1,9 +1,7 @@
-/* PrismJS 1.15.0
-https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript+c+cpp+diff+http+json+markdown+perl+python+rust+yaml&plugins=autolinker */
 /**
- * prism.js default theme for JavaScript, CSS and HTML
- * Based on dabblet (http://dabblet.com)
- * @author Lea Verou
+ * Based on PrismJS themes
+ * https://github.com/PrismJS/prism/blob/master/themes/prism.css
+ * https://github.com/PrismJS/prism/blob/master/themes/prism-dark.css
  */
 
 code[class*="language-"],
@@ -50,10 +48,7 @@ pre[class*="language-"] {
   color: slategray;
 }
 
-.token.punctuation {
-  color: #999;
-}
-
+.token.punctuation,
 .namespace {
   opacity: .7;
 }
@@ -118,3 +113,56 @@ pre[class*="language-"] {
 .token a {
   color: inherit;
 }
+
+@media screen and (prefers-color-scheme: dark) {
+  .token.comment,
+  .token.prolog,
+  .token.doctype,
+  .token.cdata {
+    color: hsl(30, 20%, 50%);
+  }
+
+  .token.property,
+  .token.tag,
+  .token.boolean,
+  .token.number,
+  .token.constant,
+  .token.symbol,
+  .token.deleted {
+    color: hsl(350, 40%, 70%);
+  }
+
+  .token.selector,
+  .token.attr-name,
+  .token.string,
+  .token.char,
+  .token.builtin,
+  .token.inserted {
+    color: hsl(75, 70%, 60%);
+  }
+
+  .token.operator,
+  .token.entity,
+  .token.url,
+  .language-css .token.string,
+  .style .token.string,
+  .token.variable {
+    color: hsl(40, 90%, 60%);
+  }
+
+  .token.atrule,
+  .token.attr-value,
+  .token.keyword {
+    color: hsl(350, 40%, 70%);
+  }
+
+  .token.function,
+  .token.class-name {
+    color: inherit;
+  }
+
+  .token.regex,
+  .token.important {
+    color: #e90;
+  }
+}
index 42a239634030f27988e80c767cd9bde52837e929..e0bb460275084b113d3d4c7876dd6a41173af13a 100644 (file)
@@ -191,7 +191,7 @@ th.title {
 }
 
 #public_key {
-  font-size: var(--font-size-monospace);
+  font-size-adjust: .5;
   font-family: var(--font-family-monospace);
 }
 
index af57fbf97a405f108c804c8d648a5df90614177e..d33849c053b16cdc3fc6473980ec8ae704b999f8 100644 (file)
@@ -103,7 +103,7 @@ tbody.file pre:empty {
   width: 3em;
   color: var(--tertiary-label-color);
   border-right: 1px solid var(--secondary-control-border-color);
-  font-size: var(--font-size-monospace);
+  font-size-adjust: .5;
   font-family: var(--font-family-monospace);
   text-align: right;
 }
@@ -460,7 +460,7 @@ div#update_container {
   padding: 8px;
   width: 100%;
   height: 100%;
-  font-size: var(--font-size-monospace);
+  font-size-adjust: .5;
   font-family: var(--font-family-monospace);
 }
 
index 85044285753e28620e55b68ff91e28d90c29c61d..ed761d6896a6de67b814c15c8cbf35b0aa1fd555 100644 (file)
@@ -15,7 +15,7 @@
 
 .bz_query_timestamp {
   font-weight: bold;
-  color: var(--tertiary-label-color);
+  color: var(--secondary-label-color);
 }
 
 .bz_query_buttons form {
 /* Style bug rows according to severity. */
 .bz_blocker,
 .bz_blocker .bz_short_desc_column {
-  color: rgb(var(--accent-color-red-1)) !important;
+  color: rgb(var(--accent-color-red-2)) !important;
   font-weight: bold;
 }
 
 .bz_critical,
 .bz_critical .bz_short_desc_column {
-  color: rgb(var(--accent-color-red-1)) !important;
+  color: rgb(var(--accent-color-red-2)) !important;
 }
 
 /* Align columns in the "change multiple bugs" form to the right. */
diff --git a/skins/standard/fonts/FiraMono-Bold.woff b/skins/standard/fonts/FiraMono-Bold.woff
deleted file mode 100644 (file)
index 735352f..0000000
Binary files a/skins/standard/fonts/FiraMono-Bold.woff and /dev/null differ
diff --git a/skins/standard/fonts/FiraMono-Bold.woff2 b/skins/standard/fonts/FiraMono-Bold.woff2
deleted file mode 100644 (file)
index 832aaab..0000000
Binary files a/skins/standard/fonts/FiraMono-Bold.woff2 and /dev/null differ
diff --git a/skins/standard/fonts/FiraMono-Regular.woff b/skins/standard/fonts/FiraMono-Regular.woff
deleted file mode 100644 (file)
index b38ee14..0000000
Binary files a/skins/standard/fonts/FiraMono-Regular.woff and /dev/null differ
diff --git a/skins/standard/fonts/FiraMono-Regular.woff2 b/skins/standard/fonts/FiraMono-Regular.woff2
deleted file mode 100644 (file)
index 9fa44b7..0000000
Binary files a/skins/standard/fonts/FiraMono-Regular.woff2 and /dev/null differ
diff --git a/skins/standard/fonts/NotoMono-Regular.woff b/skins/standard/fonts/NotoMono-Regular.woff
new file mode 100644 (file)
index 0000000..2804c12
Binary files /dev/null and b/skins/standard/fonts/NotoMono-Regular.woff differ
diff --git a/skins/standard/fonts/NotoMono-Regular.woff2 b/skins/standard/fonts/NotoMono-Regular.woff2
new file mode 100644 (file)
index 0000000..6b08860
Binary files /dev/null and b/skins/standard/fonts/NotoMono-Regular.woff2 differ
index f25cc5fd7d0a9991b02f673d4fe6a8793750b86c..f3cf92aa37cb13a63a6d3487eb6a5a6a64c7e783 100644 (file)
 }
 
 @font-face {
-  font-family: 'Fira Mono';
+  font-family: 'Noto Mono';
   font-style: normal;
   font-weight: normal;
-  src: local('Fira Mono'),
-    url('fonts/FiraMono-Regular.woff2?v=3.202') format('woff2'),
-    url('fonts/FiraMono-Regular.woff?v=3.202') format('woff');
-}
-
-@font-face {
-  font-family: 'Fira Mono';
-  font-style: normal;
-  font-weight: bold;
-  src: local('Fira Mono Bold'),
-    url('fonts/FiraMono-Bold.woff2?v=3.202') format('woff2'),
-    url('fonts/FiraMono-Bold.woff?v=3.202') format('woff');
+  src: local('Noto Mono'),
+    url('fonts/NotoMono-Regular.woff2?v=1.00') format('woff2'),
+    url('fonts/NotoMono-Regular.woff?v=1.00') format('woff');
 }
 
 @font-face {
     --font-size-medium: 13px;
     --font-size-small: 12px;
     --font-size-x-small: 11px;
-    --font-size-monospace: 90%;
     --line-height-default: 1.25;
     --line-height-comfortable: 1.5;
     --font-family-sans-serif: 'FiraGO', sans-serif;
-    --font-family-monospace: 'Menlo', 'Consolas', 'Droid Sans Mono', 'Fira Mono', monospace;
+    --font-family-monospace: 'Menlo', 'Noto Mono', monospace;
 
     /** Region */
     --primary-region-border-radius: 4px;
 
     /** Control */
     --control-border-radius: 4px;
-    --control-padding: 6px 8px;
+    --control-padding: 6px;
 
     /** Button */
     --button-border-radius: 4px;
     /** Accent Colors */
     --accent-color-red-1: 220, 40, 30;
     --accent-color-red-2: 194, 35, 27;
-    --accent-color-green-1: 70, 140, 70;
-    --accent-color-blue-1: 0, 125, 210;
-    --accent-color-blue-2: 0, 103, 171;
+    --accent-color-green-1: 40, 120, 40;
+    --accent-color-blue-1: 0, 108, 191;
+    --accent-color-blue-2: 0, 94, 166;
+    --accent-color-blue-3: 0, 122, 204; /* B 80% */
+    --accent-color-blue-4: 0, 107, 179; /* B 70% */
+    --accent-color-blue-5: 0, 92, 153; /* B 60% */
     --accent-color-yellow-1: 210, 210, 60;
     --accent-color-lightyellow-1: 250, 250, 190;
     --accent-color-pink-1: 250, 195, 195;
     --accent-color-lightgreen-1: 195, 250, 195;
     --accent-color-wine-1: 217, 207, 238;
+    --accent-color-purple-1: 146, 72, 200;
 
     /** App */
-    --application-foreground-color: rgb(60, 61, 62);
+    --application-foreground-color: rgb(40, 41, 42);
     --application-background-color: rgb(235, 236, 237);
     --application-header-foreground-color: rgb(200, 201, 202);
     --application-header-foreground-hover-color: rgb(240, 241, 242);
 
     /** Label */
     --primary-label-color: var(--application-foreground-color);
-    --secondary-label-color: rgb(100, 101, 102);
-    --tertiary-label-color: rgb(140, 141, 142);
+    --secondary-label-color: rgb(80, 81, 82);
+    --tertiary-label-color: rgb(120, 121, 122);
     --inverted-label-color: rgb(240, 241, 242);
-    --required-label-color: rgb(var(--accent-color-red-1));
+    --required-label-color: rgb(var(--accent-color-red-2));
 
     /** Text */
     --primary-text-color: var(--application-foreground-color);
     --primary-text-background-color: var(--primary-region-background-color);
-    --secondary-text-color: rgb(120, 121, 122);
+    --secondary-text-color: rgb(100, 101, 102);
     --secondary-text-border-color: rgb(220, 221, 222);
     --placeholder-text-color: var(--secondary-text-color);
     --secondary-text-background-color: var(--primary-region-header-background-color);
     --selected-text-background-color: rgba(var(--accent-color-blue-1), .3);
     --link-text-color: rgb(var(--accent-color-blue-1));
-    --link-text-hover-color: rgb(var(--accent-color-blue-2));
+    --hovered-link-text-color: rgb(var(--accent-color-blue-2));
+    --visited-link-text-color: rgb(var(--accent-color-purple-1));
     --text-shadow-light: 0 0 4px rgb(40, 41, 42);
 
     /** Message */
     --warning-message-background-color: rgb(var(--accent-color-lightyellow-1));
     --warning-message-border-color: rgb(var(--accent-color-yellow-1));
-    --error-message-foreground-color: rgb(var(--accent-color-red-1));
+    --error-message-foreground-color: rgb(var(--accent-color-red-2));
     --error-message-background-color: rgb(var(--accent-color-pink-1));
     --positive-message-foreground-color: rgb(var(--accent-color-green-1));
     --positive-message-background-color: rgb(var(--accent-color-lightgreen-1));
     --selected-control-background-color: rgb(230, 231, 232);
     --invalid-control-border-color: rgb(var(--accent-color-red-1));
     --disabled-control-foreground-color: rgb(160, 161, 162);
+    --scrollbar-color: rgb(190, 191, 192) var(--application-background-color);
 
     /** Button */
     --primary-button-foreground-color: rgb(255, 255, 255);
-    --primary-button-background-color: rgb(var(--accent-color-blue-1));
-    --primary-button-border-color: rgb(var(--accent-color-blue-1));
+    --primary-button-background-color: rgb(var(--accent-color-blue-3));
+    --primary-button-border-color: var(--primary-button-background-color);
+    --hovered-primary-button-foreground-color: var(--primary-button-foreground-color);
+    --hovered-primary-button-background-color: rgb(var(--accent-color-blue-4));
+    --hovered-primary-button-border-color: var(--hovered-primary-button-background-color);
+    --pressed-primary-button-foreground-color: var(--primary-button-foreground-color);
+    --pressed-primary-button-background-color: rgb(var(--accent-color-blue-5));
+    --pressed-primary-button-border-color: var(--pressed-primary-button-background-color);
     --secondary-button-foreground-color: var(--primary-label-color);
     --secondary-button-background-color: rgb(230, 231, 232);
     --secondary-button-border-color: rgb(210, 211, 212);
+    --hovered-secondary-button-foreground-color: var(--secondary-button-foreground-color);
+    --hovered-secondary-button-background-color: rgb(220, 221, 222);
+    --hovered-secondary-button-border-color: var(--secondary-button-border-color);
+    --pressed-secondary-button-foreground-color: var(--secondary-button-foreground-color);
+    --pressed-secondary-button-background-color: rgb(200, 201, 202);
+    --pressed-secondary-button-border-color: var(--secondary-button-border-color);
     --danger-button-foreground-color: var(--primary-button-foreground-color);
     --danger-button-background-color: rgb(var(--accent-color-red-1));
     --danger-button-border-color: rgb(var(--accent-color-red-1));
-    --pressed-button-foreground-color: var(--primary-button-foreground-color);
-    --pressed-button-background-color: rgb(100, 101, 102);
+    --selected-button-foreground-color: var(--primary-button-foreground-color);
+    --selected-button-background-color: rgb(100, 101, 102);
     --disabled-button-foreground-color: var(--disabled-control-foreground-color);
     --disabled-button-background-color: var(--secondary-button-background-color);
 
   select:not([multiple]):not([size]) {
     background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="rgb(160, 161, 162)" viewBox="0 0 24 24"><path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"/><path fill="none" d="M0 0h24v24H0V0z"/></svg>');
   }
+
+  #private-bug-banner {
+    --confidential-bug-background-color: #b595f5;
+    --security-bug-background-color: #ffaf1a;
+  }
 }
 
 /**
 @media screen and (prefers-color-scheme: dark) {
   :root {
     /** Accent Colors */
-    --accent-color-red-1: 255, 47, 36;
-    --accent-color-red-2: 220, 40, 30;
-    --accent-color-green-1: 17, 166, 17;
-    --accent-color-blue-3: 0, 148, 247;
+    --accent-color-red-1: 220, 40, 30;
+    --accent-color-red-2: 255, 80, 80;
+    --accent-color-green-1: 42, 186, 39;
+    --accent-color-blue-1: 26, 168, 245;
+    --accent-color-blue-2: 24, 151, 219;
+    --accent-color-blue-3: 0, 122, 204; /* B 80% */
+    --accent-color-blue-4: 0, 107, 179; /* B 70% */
+    --accent-color-blue-5: 0, 77, 128; /* B 50% */
     --accent-color-lightyellow-1: 51, 37, 3;
     --accent-color-pink-1: 128, 64, 64;
     --accent-color-lightgreen-1: 64, 128, 64;
     --accent-color-wine-1: 50, 45, 64;
+    --accent-color-purple-1: 200, 118, 255;
 
     /** App */
-    --application-foreground-color: rgb(200, 201, 202);
+    --application-foreground-color: rgb(210, 211, 212);
     --application-background-color: rgb(30, 31, 32);
 
     /** Region */
     --overlay-background-color: rgba(10, 11, 12, .7);
 
     /** Label */
-    --secondary-label-color: rgb(160, 161, 162);
-    --tertiary-label-color: rgb(120, 121, 122);
+    --secondary-label-color: rgb(170, 171, 172);
+    --tertiary-label-color: rgb(130, 131, 132);
     --inverted-label-color: rgb(60, 61, 62);
 
     /** Text */
-    --secondary-text-color: rgb(140, 141, 142);
+    --secondary-text-color: rgb(150, 151, 152);
     --secondary-text-border-color: rgb(60, 61, 62);
-    --link-text-color: rgb(var(--accent-color-blue-3));
-    --link-text-hover-color: rgb(var(--accent-color-blue-1));
 
     /** Control */
     --control-background-color: rgb(35, 36, 37);
     --control-border-color: rgb(60, 61, 62);
-    --selected-control-background-color: rgb(50, 51, 52);
+    --selected-control-background-color: rgb(60, 61, 62);
     --disabled-control-foreground-color: rgb(90, 91, 92);
+    --scrollbar-color: rgb(70, 71, 72) var(--application-background-color);
 
     /** Button */
-    --secondary-button-background-color: rgb(60, 61, 62);
-    --secondary-button-border-color: rgb(50, 51, 52);
-    --pressed-button-foreground-color: rgb(60, 61, 62);
-    --pressed-button-background-color: rgb(180, 181, 182);
+    --secondary-button-background-color: rgb(70, 71, 72);
+    --secondary-button-border-color: rgb(70, 71, 72);
+    --hovered-secondary-button-background-color: rgb(60, 61, 62);
+    --pressed-secondary-button-background-color: rgb(40, 41, 42);
+    --selected-button-foreground-color: rgb(60, 61, 62);
+    --selected-button-background-color: rgb(180, 181, 182);
 
     /** Menu */
     --menu-box-shadow: 0 1px 12px rgba(10, 11, 12, .5);
     --grid-subheader-background-color: rgb(70, 71, 72);
   }
 
+  input[type="checkbox"]:checked {
+    background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path fill="rgb(35, 36, 37)" d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/></svg>');
+  }
+
+  input[type="checkbox"]:indeterminate {
+    background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="rgb(35, 36, 37)" d="M19 13H5v-2h14v2z"/><path d="M0 0h24v24H0z" fill="none"/></svg>');
+  }
+
   select:not([multiple]):not([size]) {
     background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="rgb(90, 91, 92)" d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"/><path fill="none" d="M0 0h24v24H0V0z"/></svg>');
   }
@@ -328,13 +355,13 @@ body {
   font-size: var(--font-size-medium);
   line-height: var(--line-height-default);
   font-family: var(--font-family-sans-serif);
-  scrollbar-color: var(--control-border-color) var(--secondary-control-border-color);
+  scrollbar-color: var(--scrollbar-color);
 }
 
 pre,
 code,
 kbd {
-  font-size: var(--font-size-monospace);
+  font-size-adjust: .5;
   font-family: var(--font-family-monospace);
 }
 
@@ -386,11 +413,17 @@ a {
   text-decoration: none;
 }
 
-a:hover {
-  color: var(--link-text-hover-color);
+a:hover,
+a:focus,
+a:active {
+  color: var(--hovered-link-text-color);
   text-decoration: underline;
 }
 
+a:visited {
+  color: var(--visited-link-text-color);
+}
+
 table {
   border-collapse: collapse;
 }
@@ -436,6 +469,9 @@ select:not([multiple]):not([size]) {
 
 @supports (-moz-appearance: none) {
   /* Remove extra padding in Firefox */
+  button,
+  input[type="button"],
+  input[type="submit"],
   select:not([multiple]):not([size]) {
     padding-top: 5px !important;
     padding-bottom: 5px !important;
@@ -512,6 +548,7 @@ textarea {
   padding: var(--control-padding);
 }
 
+input[type="checkbox"]:focus,
 input[type="date"]:focus,
 input[type="email"]:focus,
 input[type="number"]:focus,
@@ -578,12 +615,28 @@ input[type="submit"] {
   box-shadow: none;
 }
 
+button:hover,
+input[type="submit"]:hover,
+input[type="button"]:hover {
+  border-color: var(--hovered-secondary-button-border-color);
+  color: var(--hovered-secondary-button-foreground-color);
+  background-color: var(--hovered-secondary-button-background-color);
+}
+
 button:focus,
 input[type="submit"]:focus,
 input[type="button"]:focus {
   border-color: var(--focused-control-border-color);
 }
 
+button:active,
+input[type="submit"]:active,
+input[type="button"]:active {
+  border-color: var(--pressed-secondary-button-border-color);
+  color: var(--pressed-secondary-button-foreground-color);
+  background-color: var(--pressed-secondary-button-background-color);
+}
+
 button.primary,
 button:not([type]),
 button[type="submit"]:not(.secondary),
@@ -595,6 +648,24 @@ input[type="submit"]:not(.secondary) {
   font-weight: 500;
 }
 
+button.primary:hover,
+button:not([type]):hover,
+button[type="submit"]:not(.secondary):hover,
+input[type="submit"]:not(.secondary):hover {
+  border-color: var(--hovered-primary-button-border-color);
+  color: var(--hovered-primary-button-foreground-color);
+  background-color: var(--hovered-primary-button-background-color);
+}
+
+button.primary:active,
+button:not([type]):active,
+button[type="submit"]:not(.secondary):active,
+input[type="submit"]:not(.secondary):active {
+  border-color: var(--pressed-primary-button-border-color);
+  color: var(--pressed-primary-button-foreground-color);
+  background-color: var(--pressed-primary-button-background-color);
+}
+
 button.danger {
   border-color: var(--danger-button-border-color);
   color: var(--danger-button-foreground-color);
@@ -635,7 +706,7 @@ input[type="checkbox"]:checked {
   background-color: var(--checked-control-background-color);
   background-position: center;
   background-repeat: no-repeat;
-  background-size: 16px 16px;
+  background-size: 18px 18px;
 }
 
 input[type="radio"] {
@@ -704,8 +775,8 @@ input[type="radio"]:checked {
 .buttons.toggle[role="radiogroup"] input[type="radio"]:checked + label {
   z-index: 2;
   border-color: var(--secondary-button-border-color);
-  color: var(--pressed-button-foreground-color);
-  background-color: var(--pressed-button-background-color);
+  color: var(--selected-button-foreground-color);
+  background-color: var(--selected-button-background-color);
 }
 
 .buttons.toggle[role="radiogroup"] input[type="radio"]:focus + label {
@@ -776,6 +847,15 @@ input[type="radio"]:checked {
 .yui-skin-sam .yui-dt table tr,
 .yui3-skin-sam .yui3-datatable-table tr {
   border-bottom: 1px solid var(--grid-border-color) !important;
+  background-color: transparent !important;
+}
+
+.yui-skin-sam .yui-dt-col-summary {
+  font-size: var(--font-size-large) !important;
+}
+
+.yui-skin-sam .yui-dt-message {
+  background-color: transparent !important;
 }
 
 .yui-skin-sam .yui-dt table .yui-skin-sam td,
@@ -809,6 +889,15 @@ input[type="radio"]:checked {
   display: inline-block;
 }
 
+.yui-skin-sam .yui-button {
+  border: 0 !important;
+  background: transparent !important;
+}
+
+.yui-skin-sam .yui-button .first-child {
+  border: 0 !important;
+}
+
 #bugzilla-body .yui-ac-content {
   max-height: 19em;
   overflow: auto;
@@ -870,10 +959,6 @@ input[type="radio"]:checked {
     background-color: var(--application-background-color);
   }
 
-  body[class*="bz_group_"] {
-    background-color: rgb(var(--accent-color-wine-1)); /* Colorize private bugs */
-  }
-
   #wrapper {
     display: flex;
     flex-direction: column;
@@ -1272,6 +1357,41 @@ input[type="radio"]:checked {
   content: '\E5CD';
 }
 
+/**
+ * Private group banner for confidential and security bugs
+ */
+
+#private-bug-banner {
+  padding: 4px;
+  color: #111;
+  background-color: var(--confidential-bug-background-color);
+  text-align: center;
+  -moz-user-select: none;
+  -webkit-user-select: none;
+  user-select: none;
+}
+
+#private-bug-banner .icon {
+  font-family: 'Material Icons';
+  vertical-align: text-bottom;
+}
+
+#private-bug-banner .icon::before {
+  content: '\E897';
+}
+
+#private-bug-banner.security {
+  background-color: var(--security-bug-background-color);
+}
+
+#private-bug-banner strong {
+  text-transform: uppercase;
+}
+
+#private-bug-banner .groups {
+  font-size: var(--font-size-small);
+}
+
 /**
  * Narrower global header
  */
@@ -1669,7 +1789,7 @@ input.validation_error_field {
   color: var(--control-foreground-color);
   background-color: var(--menu-background-color);
   box-shadow: var(--menu-box-shadow);
-  cursor: pointer;
+  cursor: default;
   width: auto !important;
 }
 
@@ -1813,10 +1933,6 @@ table.tabs .clickable_area {
   display: inline-block;
 }
 
-.dropdown-button {
-  cursor: pointer;
-}
-
 .dropdown-button * {
   pointer-events: none;
 }
@@ -1919,7 +2035,7 @@ table.tabs .clickable_area {
 .dropdown-content [role="option"] {
   outline: 0;
   text-decoration: none;
-  cursor: pointer;
+  cursor: default;
 }
 
 .dropdown-content [role^="menuitem"]:hover,
@@ -2011,19 +2127,19 @@ table.tabs .clickable_area {
 .dropdown-panel .notifications img {
   float: left;
   border-radius: 4px;
-  width: 40px;
-  height: 40px;
+  width: 32px;
+  height: 32px;
 }
 
 .dropdown-panel .notifications img ~ * {
   display: block;
-  margin-left: 52px;
+  margin-left: 44px;
 }
 
 .dropdown-panel .notifications label {
   display: -webkit-box;
   overflow: hidden;
-  max-height: 40px;
+  max-height: calc(2em * var(--line-height-default));
   white-space: normal;
   text-overflow: ellipsis;
   -webkit-line-clamp: 2;
@@ -2223,6 +2339,7 @@ div.bz_comment_text pre {
 #comment_preview {
   display: block;
   clear: both;
+  overflow: auto;
   border: 1px solid var(--control-border-color);
   padding: 12px;
   color: var(--primary-text-color);
@@ -2274,7 +2391,7 @@ pre.comment-text {
 }
 
 .comment-text.empty {
-  color: var(--tertiary-label-color) !important;
+  color: var(--secondary-label-color) !important;
 }
 
 /**
@@ -2590,6 +2707,7 @@ pre.comment-text {
   line-height: 1.45;
   background-color: var(--secondary-text-background-color);
   border-radius: 3px;
+  padding: 1em;
 }
 
 .markdown-body pre code {
index b70190cbde915b82d46794457cf7b3867d0e7a26..07e67c2885202c03a3c69de3223b0f3794996b2a 100644 (file)
@@ -90,7 +90,7 @@
  #tiles a:hover,
  #tiles a:focus,
  #tiles a:active {
-   color: var(--link-text-hover-color);
+   color: var(--hovered-link-text-color);
    text-decoration: none;
  }
 
index def229e23fb80b53003feb16a1d9c38d40e91eeb..997cd32b524b66b466b7bf892e08cc2d6711b45f 100644 (file)
@@ -19,7 +19,7 @@ table.realitems {
 
 tr.section_total {
   color: var(--inverted-label-color);
-  background: var(--pressed-button-background-color);
+  background: var(--selected-button-background-color);
 }
 
 td.subtotal {
index 94e850cded08f52161ae90976fe7c1e932932125..85b4fee8cf5d7219ecbe09f42fadda2fc0be4685 100644 (file)
@@ -544,8 +544,8 @@ TUI_hide_default('expert_fields');
         [% comment FILTER none %]
       [%- END %]
       [% INCLUDE bug/comment.html.tmpl
-         minrows        = 10
-         maxrows        = 25
+         minrows        = 5
+         maxrows        = 15
          cols           = constants.COMMENT_COLS
          defaultcontent = defaultcontent
        %]
index fd151b3f1257943451979eab6a63e563e610c29c..a1144ddd20e7ed949604da33f4f0f9d655bd1b77 100644 (file)
       <table><tr><td>
         [% IF bug.check_can_change_field('longdesc', 0, 1) %]
           [% INCLUDE bug/comment.html.tmpl
-                     minrows   = 10
-                     maxrows   = 25
+                     minrows   = 5
+                     maxrows   = 15
                      cols      = constants.COMMENT_COLS
           %]
           [% Hook.process("after_comment_textarea", 'bug/edit.html.tmpl') %]
index 0814b4bf54ba5a8f0991cda829ab0bd166731333..2b14f99374bba7f87aeff684ab923581517d9263 100644 (file)
   </div>
 </header> [%# header %]
 
+[%
+  IF bug && bug.groups_in.size;
+    is_security_bug = 0;
+    FOREACH group IN bug.groups_in;
+      IF group.name.match('^(.*security|\w+sec)$'); is_security_bug = 1; END;
+    END;
+%]
+  <div id="private-bug-banner" class="[% IF is_security_bug %]security[% ELSE %]confidential[% END %]">
+    <span class="icon" aria-hidden="true"></span>
+    <strong>[% IF is_security_bug %]Security Issue[% ELSE %]Confidential[% END %]</strong>
+  </div>
+[% END %]
+
 <main id="bugzilla-body" tabindex="-1">
 <div id="main-inner">
 
index aa03a7d5f77ba7e9e54e64fd7aada03bf03902a6..0e3f282e0c3e5bef5763a224fba0eace9e45d3cd 100644 (file)
   name    = 'comment'
   id      = 'comment'
   minrows = 5
-  maxrows = 25
+  maxrows = 15
   cols    = constants.COMMENT_COLS
 %]<br>
 
index bc078e9208786f8204c1c78756b6e867844a563b..80224f791af7dd5798faf3af8d043fcf45e9c1fc 100644 (file)
@@ -9,7 +9,7 @@
 [% css = BLOCK %]
 
 #codes {
-  font-size: var(--font-size-monospace);
+  font-size-adjust: .5;
   font-family: var(--font-family-monospace);
 }
 
index a7006aa7032e904a679cae327eac68ee491f2003..955ab56d158434ab776feab59092b5cdbeb9d9cd 100644 (file)
@@ -39,7 +39,7 @@
   [% END %]
 
   <img alt="Graphical report results" src="[% imageurl %]"
-    width="[% width %]" height="[% height %]">
+    width="[% width %]" height="[% height %]" style="padding:8px;background:#FFF;">
   <p>
     [% sizeurl = BLOCK %]chart.cgi?
       [% imagebase FILTER html %]&amp;action=wrap
index 9d864ba589b9202d4af652c6c410e9898cb55f6b..6203a39dd16b118429ca72f6f3de15873d36a7f3 100644 (file)
       [% END %]
 
       <img alt="Graphical report results" src="[% imageurl %]"
-        width="[% width %]" height="[% height %]">
+        width="[% width %]" height="[% height %]" style="padding:8px;background:#FFF;">
     [% END %]
     <br>
   [% END %]