summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--coverage/htmlfiles/pyfile.html8
-rw-r--r--coverage/htmlfiles/style.css243
-rw-r--r--coverage/htmlfiles/style.scss287
-rw-r--r--tests/gold/html/a/a_py.html6
-rw-r--r--tests/gold/html/b_branch/b_py.html8
-rw-r--r--tests/gold/html/bom/2/bom_py.html6
-rw-r--r--tests/gold/html/bom/bom_py.html6
-rw-r--r--tests/gold/html/isolatin1/isolatin1_py.html6
-rw-r--r--tests/gold/html/omit_1/m1_py.html6
-rw-r--r--tests/gold/html/omit_1/m2_py.html6
-rw-r--r--tests/gold/html/omit_1/m3_py.html6
-rw-r--r--tests/gold/html/omit_1/main_py.html6
-rw-r--r--tests/gold/html/omit_2/m2_py.html6
-rw-r--r--tests/gold/html/omit_2/m3_py.html6
-rw-r--r--tests/gold/html/omit_2/main_py.html6
-rw-r--r--tests/gold/html/omit_3/m3_py.html6
-rw-r--r--tests/gold/html/omit_3/main_py.html6
-rw-r--r--tests/gold/html/omit_4/m1_py.html6
-rw-r--r--tests/gold/html/omit_4/m3_py.html6
-rw-r--r--tests/gold/html/omit_4/main_py.html6
-rw-r--r--tests/gold/html/omit_5/m1_py.html6
-rw-r--r--tests/gold/html/omit_5/main_py.html6
-rw-r--r--tests/gold/html/other/blah_blah_other_py.html6
-rw-r--r--tests/gold/html/other/here_py.html6
-rw-r--r--tests/gold/html/partial/partial_py.html8
-rw-r--r--tests/gold/html/styled/a_py.html6
-rw-r--r--tests/gold/html/styled/style.css243
-rw-r--r--tests/gold/html/unicode/unicode_py.html6
28 files changed, 682 insertions, 247 deletions
diff --git a/coverage/htmlfiles/pyfile.html b/coverage/htmlfiles/pyfile.html
index eb0f99c8..ec0f416f 100644
--- a/coverage/htmlfiles/pyfile.html
+++ b/coverage/htmlfiles/pyfile.html
@@ -33,12 +33,12 @@
<h2 class="stats">
{{nums.n_statements}} statements &nbsp;
- <span class="{{category.run}} shortkey_r button_toggle_run">{{nums.n_executed}} run</span>
- <span class="{{category.mis}} shortkey_m button_toggle_mis">{{nums.n_missing}} missing</span>
- <span class="{{category.exc}} shortkey_x button_toggle_exc">{{nums.n_excluded}} excluded</span>
+ <button type="button" class="{{category.run}} shortkey_r button_toggle_run" title="Toggle lines run">{{nums.n_executed}} run</button>
+ <button type="button" class="{{category.mis}} shortkey_m button_toggle_mis" title="Toggle lines missing">{{nums.n_missing}} missing</button>
+ <button type="button" class="{{category.exc}} shortkey_x button_toggle_exc" title="Toggle lines excluded">{{nums.n_excluded}} excluded</button>
{% if has_arcs %}
- <span class="{{category.par}} shortkey_p button_toggle_par">{{nums.n_partial_branches}} partial</span>
+ <button type="button" class="{{category.par}} shortkey_p button_toggle_par" title="Toggle lines partially run">{{nums.n_partial_branches}} partial</button>
{% endif %}
</h2>
</div>
diff --git a/coverage/htmlfiles/style.css b/coverage/htmlfiles/style.css
index e8ff5765..ab9dbcb9 100644
--- a/coverage/htmlfiles/style.css
+++ b/coverage/htmlfiles/style.css
@@ -4,11 +4,17 @@
/* Don't edit this .css file. Edit the .scss file instead! */
html, body, h1, h2, h3, p, table, td, th { margin: 0; padding: 0; border: 0; font-weight: inherit; font-style: inherit; font-size: 100%; font-family: inherit; vertical-align: baseline; }
-body { font-family: georgia, serif; font-size: 1em; }
+body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; font-size: 1em; background: #fff; color: #000; }
+
+@media (prefers-color-scheme: dark) { body { background: #1e1e1e; } }
+
+@media (prefers-color-scheme: dark) { body { color: #eee; } }
html > body { font-size: 16px; }
-p { font-size: .75em; line-height: 1.33333333em; }
+a:active, a:focus { outline: 2px dashed #007acc; }
+
+p { font-size: .875em; line-height: 1.4em; }
table { border-collapse: collapse; }
@@ -19,15 +25,22 @@ table tr.hidden { display: none !important; }
p#no_rows { display: none; font-size: 1.2em; }
a.nav { text-decoration: none; color: inherit; }
+
a.nav:hover { text-decoration: underline; color: inherit; }
#header { background: #f8f8f8; width: 100%; border-bottom: 1px solid #eee; }
+@media (prefers-color-scheme: dark) { #header { background: black; } }
+
+@media (prefers-color-scheme: dark) { #header { border-color: #333; } }
+
.indexfile #footer { margin: 1em 3em; }
.pyfile #footer { margin: 1em 1em; }
-#footer .content { padding: 0; font-size: 85%; font-family: verdana, sans-serif; color: #666666; font-style: italic; }
+#footer .content { padding: 0; color: #666; font-style: italic; }
+
+@media (prefers-color-scheme: dark) { #footer .content { color: #aaa; } }
#index { margin: 1em 0 0 3em; }
@@ -35,90 +48,236 @@ a.nav:hover { text-decoration: underline; color: inherit; }
h1 { font-size: 1.25em; display: inline-block; }
-#filter_container { display: inline-block; float: right; margin: 0 2em 0 0; }
-#filter_container input { width: 10em; }
+#filter_container { float: right; margin: 0 2em 0 0; }
+
+#filter_container input { width: 10em; padding: 0.2em 0.5em; border: 2px solid #ccc; background: #fff; color: #000; }
+
+@media (prefers-color-scheme: dark) { #filter_container input { border-color: #444; } }
+
+@media (prefers-color-scheme: dark) { #filter_container input { background: #1e1e1e; } }
+
+@media (prefers-color-scheme: dark) { #filter_container input { color: #eee; } }
+
+#filter_container input:focus { border-color: #007acc; }
h2.stats { margin-top: .5em; font-size: 1em; }
-.stats span { border: 1px solid; border-radius: .1em; padding: .1em .5em; margin: 0 .1em; cursor: pointer; border-color: #ccc #999 #999 #ccc; }
-.stats span.run { background: #eeffee; }
-.stats span.run.show_run { border-color: #999 #ccc #ccc #999; background: #ddffdd; }
-.stats span.mis { background: #ffeeee; }
-.stats span.mis.show_mis { border-color: #999 #ccc #ccc #999; background: #ffdddd; }
-.stats span.exc { background: #f7f7f7; }
-.stats span.exc.show_exc { border-color: #999 #ccc #ccc #999; background: #eeeeee; }
-.stats span.par { background: #ffffd5; }
-.stats span.par.show_par { border-color: #999 #ccc #ccc #999; background: #ffffaa; }
+.stats button { font-family: inherit; font-size: inherit; border: 2px solid; border-radius: .1em; color: inherit; padding: .1em .5em; margin: 0 .1em; cursor: pointer; border-color: #ccc; }
+
+@media (prefers-color-scheme: dark) { .stats button { border-color: #444; } }
+
+.stats button:active, .stats button:focus { outline: 2px dashed #007acc; }
+
+.stats button:active, .stats button:focus { outline: 2px dashed #007acc; }
+
+.stats button.run { background: #eeffee; }
+
+@media (prefers-color-scheme: dark) { .stats button.run { background: #373d29; } }
+
+.stats button.run.show_run { background: #dfd; border-color: #00dd00; }
+
+@media (prefers-color-scheme: dark) { .stats button.run.show_run { background: #373d29; } }
+
+.stats button.mis { background: #ffeeee; }
+
+@media (prefers-color-scheme: dark) { .stats button.mis { background: #4b1818; } }
+
+.stats button.mis.show_mis { background: #fdd; border-color: #ff0000; }
+
+@media (prefers-color-scheme: dark) { .stats button.mis.show_mis { background: #4b1818; } }
+
+.stats button.exc { background: #f7f7f7; }
+
+@media (prefers-color-scheme: dark) { .stats button.exc { background: #333; } }
+
+.stats button.exc.show_exc { background: #eee; border-color: #808080; }
+
+@media (prefers-color-scheme: dark) { .stats button.exc.show_exc { background: #333; } }
+
+.stats button.par { background: #ffffd5; }
-#source p .annotate.long, .help_panel { display: none; position: absolute; z-index: 999; background: #ffffcc; border: 1px solid #888; border-radius: .2em; box-shadow: #cccccc .2em .2em .2em; color: #333; padding: .25em .5em; }
+@media (prefers-color-scheme: dark) { .stats button.par { background: #650; } }
+
+.stats button.par.show_par { background: #ffa; border-color: #dddd00; }
+
+@media (prefers-color-scheme: dark) { .stats button.par.show_par { background: #650; } }
+
+.help_panel, #source p .annotate.long { display: none; position: absolute; z-index: 999; background: #ffffcc; border: 1px solid #888; border-radius: .2em; color: #333; padding: .25em .5em; }
#source p .annotate.long { white-space: normal; float: right; top: 1.75em; right: 1em; height: auto; }
#keyboard_icon { float: right; margin: 5px; cursor: pointer; }
.help_panel { padding: .5em; border: 1px solid #883; }
+
.help_panel .legend { font-style: italic; margin-bottom: 1em; }
-.indexfile .help_panel { width: 20em; height: 4em; }
-.pyfile .help_panel { width: 16em; height: 8em; }
+
+.indexfile .help_panel { width: 20em; min-height: 4em; }
+
+.pyfile .help_panel { width: 16em; min-height: 8em; }
#panel_icon { float: right; cursor: pointer; }
.keyhelp { margin: .75em; }
-.keyhelp .key { border: 1px solid black; border-color: #888 #333 #333 #888; padding: .1em .35em; font-family: monospace; font-weight: bold; background: #eee; }
-#source { padding: 1em 0 1em 3rem; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; }
+.keyhelp .key { border: 1px solid black; border-color: #888 #333 #333 #888; padding: .1em .35em; font-family: SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-weight: bold; background: #eee; }
+
+#source { padding: 1em 0 1em 3rem; font-family: SFMono-Regular, Menlo, Monaco, Consolas, monospace; }
+
#source p { position: relative; white-space: pre; }
+
#source p * { box-sizing: border-box; }
-#source p .n { float: left; text-align: right; width: 3rem; box-sizing: border-box; margin-left: -3rem; padding-right: 1em; color: #999999; font-family: verdana, sans-serif; }
-#source p .n a { text-decoration: none; color: #999999; font-size: .8333em; line-height: 1em; }
-#source p .n a:hover { text-decoration: underline; color: #999999; }
+
+#source p .n { float: left; text-align: right; width: 3rem; box-sizing: border-box; margin-left: -3rem; padding-right: 1em; color: #999; }
+
+@media (prefers-color-scheme: dark) { #source p .n { color: #777; } }
+
+#source p .n a { text-decoration: none; color: #999; }
+
+@media (prefers-color-scheme: dark) { #source p .n a { color: #777; } }
+
+#source p .n a:hover { text-decoration: underline; color: #999; }
+
+@media (prefers-color-scheme: dark) { #source p .n a:hover { color: #777; } }
+
#source p.highlight .n { background: #ffdd00; }
-#source p .t { display: inline-block; width: 100%; box-sizing: border-box; margin-left: -.5em; padding-left: 0.3em; border-left: 0.2em solid white; }
+
+#source p .t { display: inline-block; width: 100%; box-sizing: border-box; margin-left: -.5em; padding-left: 0.3em; border-left: 0.2em solid #fff; }
+
+@media (prefers-color-scheme: dark) { #source p .t { border-color: #1e1e1e; } }
+
#source p .t:hover { background: #f2f2f2; }
+
+@media (prefers-color-scheme: dark) { #source p .t:hover { background: #282828; } }
+
#source p .t:hover ~ .r .annotate.long { display: block; }
-#source p .t .com { color: green; font-style: italic; line-height: 1px; }
+
+#source p .t .com { color: #008000; font-style: italic; line-height: 1px; }
+
+@media (prefers-color-scheme: dark) { #source p .t .com { color: #6A9955; } }
+
#source p .t .key { font-weight: bold; line-height: 1px; }
-#source p .t .str { color: #000080; }
+
+#source p .t .str { color: #0451A5; }
+
+@media (prefers-color-scheme: dark) { #source p .t .str { color: #9CDCFE; } }
+
#source p.mis .t { border-left: 0.2em solid #ff0000; }
-#source p.mis.show_mis .t { background: #ffdddd; }
+
+#source p.mis.show_mis .t { background: #fdd; }
+
+@media (prefers-color-scheme: dark) { #source p.mis.show_mis .t { background: #4b1818; } }
+
#source p.mis.show_mis .t:hover { background: #f2d2d2; }
-#source p.run .t { border-left: 0.2em solid #00ff00; }
-#source p.run.show_run .t { background: #ddffdd; }
+
+@media (prefers-color-scheme: dark) { #source p.mis.show_mis .t:hover { background: #532323; } }
+
+#source p.run .t { border-left: 0.2em solid #00dd00; }
+
+#source p.run.show_run .t { background: #dfd; }
+
+@media (prefers-color-scheme: dark) { #source p.run.show_run .t { background: #373d29; } }
+
#source p.run.show_run .t:hover { background: #d2f2d2; }
+
+@media (prefers-color-scheme: dark) { #source p.run.show_run .t:hover { background: #404633; } }
+
#source p.exc .t { border-left: 0.2em solid #808080; }
-#source p.exc.show_exc .t { background: #eeeeee; }
+
+#source p.exc.show_exc .t { background: #eee; }
+
+@media (prefers-color-scheme: dark) { #source p.exc.show_exc .t { background: #333; } }
+
#source p.exc.show_exc .t:hover { background: #e2e2e2; }
-#source p.par .t { border-left: 0.2em solid #eeee99; }
-#source p.par.show_par .t { background: #ffffaa; }
+
+@media (prefers-color-scheme: dark) { #source p.exc.show_exc .t:hover { background: #3c3c3c; } }
+
+#source p.par .t { border-left: 0.2em solid #dddd00; }
+
+#source p.par.show_par .t { background: #ffa; }
+
+@media (prefers-color-scheme: dark) { #source p.par.show_par .t { background: #650; } }
+
#source p.par.show_par .t:hover { background: #f2f2a2; }
-#source p .r { position: absolute; top: 0; right: 2.5em; font-family: verdana, sans-serif; }
-#source p .annotate { font-family: georgia; color: #666; padding-right: .5em; }
+
+@media (prefers-color-scheme: dark) { #source p.par.show_par .t:hover { background: #6d5d0c; } }
+
+#source p .r { position: absolute; top: 0; right: 2.5em; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; }
+
+#source p .annotate { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; color: #666; padding-right: .5em; }
+
+@media (prefers-color-scheme: dark) { #source p .annotate { color: #ddd; } }
+
#source p .annotate.short:hover ~ .long { display: block; }
+
#source p .annotate.long { width: 30em; right: 2.5em; }
+
#source p input { display: none; }
+
#source p input ~ .r label.ctx { cursor: pointer; border-radius: .25em; }
+
#source p input ~ .r label.ctx::before { content: "▶ "; }
+
#source p input ~ .r label.ctx:hover { background: #d5f7ff; color: #666; }
+
#source p input:checked ~ .r label.ctx { background: #aaeeff; color: #666; border-radius: .75em .75em 0 0; padding: 0 .5em; margin: -.25em 0; }
+
#source p input:checked ~ .r label.ctx::before { content: "▼ "; }
+
#source p input:checked ~ .ctxs { padding: .25em .5em; overflow-y: scroll; max-height: 10.5em; }
+
#source p label.ctx { color: #999; display: inline-block; padding: 0 .5em; font-size: .8333em; }
-#source p .ctxs { display: block; max-height: 0; overflow-y: hidden; transition: all .2s; padding: 0 .5em; font-family: verdana, sans-serif; white-space: nowrap; background: #aaeeff; border-radius: .25em; margin-right: 1.75em; }
+
+@media (prefers-color-scheme: dark) { #source p label.ctx { color: #777; } }
+
+#source p .ctxs { display: block; max-height: 0; overflow-y: hidden; transition: all .2s; padding: 0 .5em; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; white-space: nowrap; background: #aaeeff; border-radius: .25em; margin-right: 1.75em; }
+
#source p .ctxs span { display: block; text-align: right; }
+#index { font-family: SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 0.875em; }
+
#index td, #index th { text-align: right; width: 5em; padding: .25em .5em; border-bottom: 1px solid #eee; }
+
+@media (prefers-color-scheme: dark) { #index td, #index th { border-color: #333; } }
+
#index td.left, #index th.left { padding-left: 0; }
+
#index td.right, #index th.right { padding-right: 0; }
+
#index td.name, #index th.name { text-align: left; width: auto; }
-#index th { font-style: italic; color: #333; border-bottom: 1px solid #ccc; cursor: pointer; }
-#index th:hover { background: #eee; border-bottom: 1px solid #999; }
-#index th.headerSortDown, #index th.headerSortUp { border-bottom: 1px solid #000; white-space: nowrap; background: #eee; }
+
+#index th { font-style: italic; color: #333; cursor: pointer; }
+
+@media (prefers-color-scheme: dark) { #index th { color: #ddd; } }
+
+#index th:hover { background: #eee; }
+
+@media (prefers-color-scheme: dark) { #index th:hover { background: #333; } }
+
+#index th.headerSortDown, #index th.headerSortUp { white-space: nowrap; background: #eee; }
+
+@media (prefers-color-scheme: dark) { #index th.headerSortDown, #index th.headerSortUp { background: #333; } }
+
#index th.headerSortDown:after { content: " ↓"; }
+
#index th.headerSortUp:after { content: " ↑"; }
-#index td.name a { text-decoration: none; color: #000; }
+
+#index td.name a { text-decoration: none; color: inherit; }
+
#index tr.total td, #index tr.total_dynamic td { font-weight: bold; border-top: 1px solid #ccc; border-bottom: none; }
-#index tr.file:hover { background: #eeeeee; }
-#index tr.file:hover td.name { text-decoration: underline; color: #000; }
-#scroll_marker { position: fixed; right: 0; top: 0; width: 16px; height: 100%; background: white; border-left: 1px solid #eee; will-change: transform; }
-#scroll_marker .marker { background: #ddd; position: absolute; min-height: 3px; width: 100%; }
+#index tr.file:hover { background: #eee; }
+
+@media (prefers-color-scheme: dark) { #index tr.file:hover { background: #333; } }
+
+#index tr.file:hover td.name { text-decoration: underline; color: inherit; }
+
+#scroll_marker { position: fixed; right: 0; top: 0; width: 16px; height: 100%; background: #fff; border-left: 1px solid #eee; will-change: transform; }
+
+@media (prefers-color-scheme: dark) { #scroll_marker { background: #1e1e1e; } }
+
+@media (prefers-color-scheme: dark) { #scroll_marker { border-color: #333; } }
+
+#scroll_marker .marker { background: #ccc; position: absolute; min-height: 3px; width: 100%; }
+
+@media (prefers-color-scheme: dark) { #scroll_marker .marker { background: #444; } }
diff --git a/coverage/htmlfiles/style.scss b/coverage/htmlfiles/style.scss
index 901cccc4..b6efec1b 100644
--- a/coverage/htmlfiles/style.scss
+++ b/coverage/htmlfiles/style.scss
@@ -8,6 +8,9 @@
// When working on the file, this command is useful:
// sass --watch --style=compact --sourcemap=none --no-cache coverage/htmlfiles/style.scss:htmlcov/style.css
+//
+// OR you can process sass purely in python with `pip install pysass`, then:
+// pysassc --style=compact coverage/htmlfiles/style.scss coverage/htmlfiles/style.css
// Ignore this comment, it's for the CSS output file:
/* Don't edit this .css file. Edit the .scss file instead! */
@@ -15,6 +18,82 @@
// Dimensions
$left-gutter: 3rem;
+
+//
+// Declare colors and variables
+//
+
+$font-normal: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
+$font-code: SFMono-Regular, Menlo, Monaco, Consolas, monospace;
+
+$off-button-lighten: 50%;
+$hover-dark-amt: 95%;
+
+$focus-color: #007acc;
+
+$mis-color: #ff0000;
+$run-color: #00dd00;
+$exc-color: #808080;
+$par-color: #dddd00;
+
+$light-bg: #fff;
+$light-fg: #000;
+$light-gray1: #f8f8f8;
+$light-gray2: #eee;
+$light-gray3: #ccc;
+$light-gray4: #999;
+$light-gray5: #666;
+$light-gray6: #333;
+$light-pln-bg: $light-bg;
+$light-mis-bg: #fdd;
+$light-run-bg: #dfd;
+$light-exc-bg: $light-gray2;
+$light-par-bg: #ffa;
+$light-token-com: #008000;
+$light-token-str: #0451A5;
+
+$dark-bg: #1e1e1e;
+$dark-fg: #eee;
+$dark-gray1: #222;
+$dark-gray2: #333;
+$dark-gray3: #444;
+$dark-gray4: #777;
+$dark-gray5: #aaa;
+$dark-gray6: #ddd;
+$dark-pln-bg: $dark-bg;
+$dark-mis-bg: #4b1818;
+$dark-run-bg: #373d29;
+$dark-exc-bg: $dark-gray2;
+$dark-par-bg: #650;
+$dark-token-com: #6A9955;
+$dark-token-str: #9CDCFE;
+
+//
+// Mixins and utilities
+//
+@mixin background-dark($color) {
+ @media (prefers-color-scheme: dark) {
+ background: $color;
+ }
+}
+@mixin color-dark($color) {
+ @media (prefers-color-scheme: dark) {
+ color: $color;
+ }
+}
+@mixin border-color-dark($color) {
+ @media (prefers-color-scheme: dark) {
+ border-color: $color;
+ }
+}
+
+// Add visual outline to navigable elements on focus improve accessibility.
+@mixin focus-border {
+ &:active, &:focus {
+ outline: 2px dashed $focus-color;
+ }
+}
+
// Page-wide styles
html, body, h1, h2, h3, p, table, td, th {
margin: 0;
@@ -29,18 +108,25 @@ html, body, h1, h2, h3, p, table, td, th {
// Set baseline grid to 16 pt.
body {
- font-family: georgia, serif;
+ font-family: $font-normal;
font-size: 1em;
+ background: $light-bg;
+ color: $light-fg;
+ @include background-dark($dark-bg);
+ @include color-dark($dark-fg);
}
html>body {
font-size: 16px;
}
-// Set base font size to 12/16
+a {
+ @include focus-border;
+}
+
p {
- font-size: .75em; // 12/16
- line-height: 1.33333333em; // 16/12
+ font-size: .875em;
+ line-height: 1.4em;
}
table {
@@ -70,9 +156,11 @@ a.nav {
// Page structure
#header {
- background: #f8f8f8;
+ background: $light-gray1;
+ @include background-dark(black);
width: 100%;
- border-bottom: 1px solid #eee;
+ border-bottom: 1px solid $light-gray2;
+ @include border-color-dark($dark-gray2);
}
.indexfile #footer {
@@ -85,9 +173,8 @@ a.nav {
#footer .content {
padding: 0;
- font-size: 85%;
- font-family: verdana, sans-serif;
- color: #666666;
+ color: $light-gray5;
+ @include color-dark($dark-gray5);
font-style: italic;
}
@@ -106,61 +193,77 @@ h1 {
}
#filter_container {
- display: inline-block;
float: right;
margin: 0 2em 0 0;
input {
width: 10em;
+ padding: 0.2em 0.5em;
+ border: 2px solid $light-gray3;
+ background: $light-bg;
+ color: $light-fg;
+ @include border-color-dark($dark-gray3);
+ @include background-dark($dark-bg);
+ @include color-dark($dark-fg);
+ &:focus {
+ border-color: $focus-color;
+ }
}
}
-$pln-color: #ffffff;
-$mis-color: #ffdddd;
-$run-color: #ddffdd;
-$exc-color: #eeeeee;
-$par-color: #ffffaa;
-
-$off-button-lighten: 50%;
-
h2.stats {
margin-top: .5em;
font-size: 1em;
}
-.stats span {
- border: 1px solid;
+.stats button {
+ font-family: inherit;
+ font-size: inherit;
+ border: 2px solid;
border-radius: .1em;
+ color: inherit;
padding: .1em .5em;
margin: 0 .1em;
cursor: pointer;
- border-color: #ccc #999 #999 #ccc;
+ border-color: $light-gray3;
+ @include border-color-dark($dark-gray3);
+ @include focus-border;
+
+ @include focus-border;
&.run {
- background: mix($run-color, #fff, $off-button-lighten);
+ background: mix($light-run-bg, $light-bg, $off-button-lighten);
+ @include background-dark($dark-run-bg);
&.show_run {
- border-color: #999 #ccc #ccc #999;
- background: $run-color;
+ background: $light-run-bg;
+ @include background-dark($dark-run-bg);
+ border-color: $run-color;
}
}
&.mis {
- background: mix($mis-color, #fff, $off-button-lighten);
+ background: mix($light-mis-bg, $light-bg, $off-button-lighten);
+ @include background-dark($dark-mis-bg);
&.show_mis {
- border-color: #999 #ccc #ccc #999;
- background: $mis-color;
+ background: $light-mis-bg;
+ @include background-dark($dark-mis-bg);
+ border-color: $mis-color;
}
}
&.exc {
- background: mix($exc-color, #fff, $off-button-lighten);
+ background: mix($light-exc-bg, $light-bg, $off-button-lighten);
+ @include background-dark($dark-exc-bg);
&.show_exc {
- border-color: #999 #ccc #ccc #999;
- background: $exc-color;
+ background: $light-exc-bg;
+ @include background-dark($dark-exc-bg);
+ border-color: $exc-color;
}
}
&.par {
- background: mix($par-color, #fff, $off-button-lighten);
+ background: mix($light-par-bg, $light-bg, $off-button-lighten);
+ @include background-dark($dark-par-bg);
&.show_par {
- border-color: #999 #ccc #ccc #999;
- background: $par-color;
+ background: $light-par-bg;
+ @include background-dark($dark-par-bg);
+ border-color: $par-color;
}
}
}
@@ -173,7 +276,6 @@ h2.stats {
background: #ffffcc;
border: 1px solid #888;
border-radius: .2em;
- box-shadow: #cccccc .2em .2em .2em;
color: #333;
padding: .25em .5em;
}
@@ -207,12 +309,12 @@ h2.stats {
.indexfile & {
width: 20em;
- height: 4em;
+ min-height: 4em;
}
.pyfile & {
width: 16em;
- height: 8em;
+ min-height: 8em;
}
}
@@ -228,7 +330,7 @@ h2.stats {
border: 1px solid black;
border-color: #888 #333 #333 #888;
padding: .1em .35em;
- font-family: monospace;
+ font-family: $font-code;
font-weight: bold;
background: #eee;
}
@@ -236,13 +338,6 @@ h2.stats {
// Source file styles
-$hover-dark-amt: 95%;
-$pln-hover-color: mix($pln-color, #000, $hover-dark-amt);
-$mis-hover-color: mix($mis-color, #000, $hover-dark-amt);
-$run-hover-color: mix($run-color, #000, $hover-dark-amt);
-$exc-hover-color: mix($exc-color, #000, $hover-dark-amt);
-$par-hover-color: mix($par-color, #000, $hover-dark-amt);
-
// The slim bar at the left edge of the source lines, colored by coverage.
$border-indicator-width: .2em;
@@ -250,7 +345,7 @@ $context-panel-color: #aaeeff;
#source {
padding: 1em 0 1em $left-gutter;
- font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
+ font-family: $font-code;
p {
// position relative makes position:absolute pop-ups appear in the right place.
@@ -268,17 +363,17 @@ $context-panel-color: #aaeeff;
box-sizing: border-box;
margin-left: -$left-gutter;
padding-right: 1em;
- color: #999999;
- font-family: verdana, sans-serif;
+ color: $light-gray4;
+ @include color-dark($dark-gray4);
a {
text-decoration: none;
- color: #999999;
- font-size: .8333em; // 10/12
- line-height: 1em;
+ color: $light-gray4;
+ @include color-dark($dark-gray4);
&:hover {
text-decoration: underline;
- color: #999999;
+ color: $light-gray4;
+ @include color-dark($dark-gray4);
}
}
}
@@ -293,10 +388,12 @@ $context-panel-color: #aaeeff;
box-sizing: border-box;
margin-left: -.5em;
padding-left: .5em - $border-indicator-width;
- border-left: $border-indicator-width solid white;
+ border-left: $border-indicator-width solid $light-bg;
+ @include border-color-dark($dark-bg);
&:hover {
- background: $pln-hover-color;
+ background: mix($light-pln-bg, $light-fg, $hover-dark-amt);
+ @include background-dark(mix($dark-pln-bg, $dark-fg, $hover-dark-amt));
& ~ .r .annotate.long {
display: block;
@@ -305,7 +402,8 @@ $context-panel-color: #aaeeff;
// Syntax coloring
.com {
- color: green;
+ color: $light-token-com;
+ @include color-dark($dark-token-com);
font-style: italic;
line-height: 1px;
}
@@ -314,62 +412,71 @@ $context-panel-color: #aaeeff;
line-height: 1px;
}
.str {
- color: #000080;
+ color: $light-token-str;
+ @include color-dark($dark-token-str);
}
}
&.mis {
.t {
- border-left: $border-indicator-width solid #ff0000;
+ border-left: $border-indicator-width solid $mis-color;
}
&.show_mis .t {
- background: $mis-color;
+ background: $light-mis-bg;
+ @include background-dark($dark-mis-bg);
&:hover {
- background: $mis-hover-color;
+ background: mix($light-mis-bg, $light-fg, $hover-dark-amt);
+ @include background-dark(mix($dark-mis-bg, $dark-fg, $hover-dark-amt));
}
}
}
&.run {
.t {
- border-left: $border-indicator-width solid #00ff00;
+ border-left: $border-indicator-width solid $run-color;
}
&.show_run .t {
- background: $run-color;
+ background: $light-run-bg;
+ @include background-dark($dark-run-bg);
&:hover {
- background: $run-hover-color;
+ background: mix($light-run-bg, $light-fg, $hover-dark-amt);
+ @include background-dark(mix($dark-run-bg, $dark-fg, $hover-dark-amt));
}
}
}
&.exc {
.t {
- border-left: $border-indicator-width solid #808080;
+ border-left: $border-indicator-width solid $exc-color;
}
&.show_exc .t {
- background: $exc-color;
+ background: $light-exc-bg;
+ @include background-dark($dark-exc-bg);
&:hover {
- background: $exc-hover-color;
+ background: mix($light-exc-bg, $light-fg, $hover-dark-amt);
+ @include background-dark(mix($dark-exc-bg, $dark-fg, $hover-dark-amt));
}
}
}
&.par {
.t {
- border-left: $border-indicator-width solid #eeee99;
+ border-left: $border-indicator-width solid $par-color;
}
&.show_par .t {
- background: $par-color;
+ background: $light-par-bg;
+ @include background-dark($dark-par-bg);
&:hover {
- background: $par-hover-color;
+ background: mix($light-par-bg, $light-fg, $hover-dark-amt);
+ @include background-dark(mix($dark-par-bg, $dark-fg, $hover-dark-amt));
}
}
@@ -379,12 +486,13 @@ $context-panel-color: #aaeeff;
position: absolute;
top: 0;
right: 2.5em;
- font-family: verdana, sans-serif;
+ font-family: $font-normal;
}
.annotate {
- font-family: georgia;
- color: #666;
+ font-family: $font-normal;
+ color: $light-gray5;
+ @include color-dark($dark-gray6);
padding-right: .5em;
&.short:hover ~ .long {
@@ -432,7 +540,8 @@ $context-panel-color: #aaeeff;
}
label.ctx {
- color: #999;
+ color: $light-gray4;
+ @include color-dark($dark-gray4);
display: inline-block;
padding: 0 .5em;
font-size: .8333em; // 10/12
@@ -444,7 +553,7 @@ $context-panel-color: #aaeeff;
overflow-y: hidden;
transition: all .2s;
padding: 0 .5em;
- font-family: verdana, sans-serif;
+ font-family: $font-normal;
white-space: nowrap;
background: $context-panel-color;
border-radius: .25em;
@@ -460,11 +569,15 @@ $context-panel-color: #aaeeff;
// index styles
#index {
+ font-family: $font-code;
+ font-size: 0.875em;
+
td, th {
text-align: right;
width: 5em;
padding: .25em .5em;
- border-bottom: 1px solid #eee;
+ border-bottom: 1px solid $light-gray2;
+ @include border-color-dark($dark-gray2);
&.left {
padding-left: 0;
}
@@ -478,17 +591,17 @@ $context-panel-color: #aaeeff;
}
th {
font-style: italic;
- color: #333;
- border-bottom: 1px solid #ccc;
+ color: $light-gray6;
+ @include color-dark($dark-gray6);
cursor: pointer;
&:hover {
- background: #eee;
- border-bottom: 1px solid #999;
+ background: $light-gray2;
+ @include background-dark($dark-gray2);
}
&.headerSortDown, &.headerSortUp {
- border-bottom: 1px solid #000;
white-space: nowrap;
- background: #eee;
+ background: $light-gray2;
+ @include background-dark($dark-gray2);
}
&.headerSortDown:after {
content: " ↓";
@@ -499,7 +612,7 @@ $context-panel-color: #aaeeff;
}
td.name a {
text-decoration: none;
- color: #000;
+ color: inherit;
}
tr.total td,
@@ -509,10 +622,11 @@ $context-panel-color: #aaeeff;
border-bottom: none;
}
tr.file:hover {
- background: #eeeeee;
+ background: $light-gray2;
+ @include background-dark($dark-gray2);
td.name {
text-decoration: underline;
- color: #000;
+ color: inherit;
}
}
}
@@ -524,12 +638,15 @@ $context-panel-color: #aaeeff;
top: 0;
width: 16px;
height: 100%;
- background: white;
- border-left: 1px solid #eee;
+ background: $light-bg;
+ border-left: 1px solid $light-gray2;
+ @include background-dark($dark-bg);
+ @include border-color-dark($dark-gray2);
will-change: transform; // for faster scrolling of fixed element in Chrome
.marker {
- background: #ddd;
+ background: $light-gray3;
+ @include background-dark($dark-gray3);
position: absolute;
min-height: 3px;
width: 100%;
diff --git a/tests/gold/html/a/a_py.html b/tests/gold/html/a/a_py.html
index 2ce52414..d534c6a3 100644
--- a/tests/gold/html/a/a_py.html
+++ b/tests/gold/html/a/a_py.html
@@ -22,9 +22,9 @@
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
<h2 class="stats">
3 statements &nbsp;
- <span class="run shortkey_r button_toggle_run">2 run</span>
- <span class="mis show_mis shortkey_m button_toggle_mis">1 missing</span>
- <span class="exc show_exc shortkey_x button_toggle_exc">0 excluded</span>
+ <button type="button" class="run shortkey_r button_toggle_run" title="Toggle lines run">2 run</button>
+ <button type="button" class="mis show_mis shortkey_m button_toggle_mis" title="Toggle lines missing">1 missing</button>
+ <button type="button" class="exc show_exc shortkey_x button_toggle_exc" title="Toggle lines excluded">0 excluded</button>
</h2>
</div>
</div>
diff --git a/tests/gold/html/b_branch/b_py.html b/tests/gold/html/b_branch/b_py.html
index ce8bb875..67a1b83b 100644
--- a/tests/gold/html/b_branch/b_py.html
+++ b/tests/gold/html/b_branch/b_py.html
@@ -22,10 +22,10 @@
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
<h2 class="stats">
17 statements &nbsp;
- <span class="run shortkey_r button_toggle_run">14 run</span>
- <span class="mis show_mis shortkey_m button_toggle_mis">3 missing</span>
- <span class="exc show_exc shortkey_x button_toggle_exc">0 excluded</span>
- <span class="par run show_par shortkey_p button_toggle_par">4 partial</span>
+ <button type="button" class="run shortkey_r button_toggle_run" title="Toggle lines run">14 run</button>
+ <button type="button" class="mis show_mis shortkey_m button_toggle_mis" title="Toggle lines missing">3 missing</button>
+ <button type="button" class="exc show_exc shortkey_x button_toggle_exc" title="Toggle lines excluded">0 excluded</button>
+ <button type="button" class="par run show_par shortkey_p button_toggle_par" title="Toggle lines partially run">4 partial</button>
</h2>
</div>
</div>
diff --git a/tests/gold/html/bom/2/bom_py.html b/tests/gold/html/bom/2/bom_py.html
index 3d1c98fb..74f4f2fe 100644
--- a/tests/gold/html/bom/2/bom_py.html
+++ b/tests/gold/html/bom/2/bom_py.html
@@ -22,9 +22,9 @@
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
<h2 class="stats">
7 statements &nbsp;
- <span class="run shortkey_r button_toggle_run">5 run</span>
- <span class="mis show_mis shortkey_m button_toggle_mis">2 missing</span>
- <span class="exc show_exc shortkey_x button_toggle_exc">0 excluded</span>
+ <button type="button" class="run shortkey_r button_toggle_run" title="Toggle lines run">5 run</button>
+ <button type="button" class="mis show_mis shortkey_m button_toggle_mis" title="Toggle lines missing">2 missing</button>
+ <button type="button" class="exc show_exc shortkey_x button_toggle_exc" title="Toggle lines excluded">0 excluded</button>
</h2>
</div>
</div>
diff --git a/tests/gold/html/bom/bom_py.html b/tests/gold/html/bom/bom_py.html
index 635f8b51..10b84ede 100644
--- a/tests/gold/html/bom/bom_py.html
+++ b/tests/gold/html/bom/bom_py.html
@@ -22,9 +22,9 @@
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
<h2 class="stats">
7 statements &nbsp;
- <span class="run shortkey_r button_toggle_run">5 run</span>
- <span class="mis show_mis shortkey_m button_toggle_mis">2 missing</span>
- <span class="exc show_exc shortkey_x button_toggle_exc">0 excluded</span>
+ <button type="button" class="run shortkey_r button_toggle_run" title="Toggle lines run">5 run</button>
+ <button type="button" class="mis show_mis shortkey_m button_toggle_mis" title="Toggle lines missing">2 missing</button>
+ <button type="button" class="exc show_exc shortkey_x button_toggle_exc" title="Toggle lines excluded">0 excluded</button>
</h2>
</div>
</div>
diff --git a/tests/gold/html/isolatin1/isolatin1_py.html b/tests/gold/html/isolatin1/isolatin1_py.html
index 9c12c445..b344bad6 100644
--- a/tests/gold/html/isolatin1/isolatin1_py.html
+++ b/tests/gold/html/isolatin1/isolatin1_py.html
@@ -22,9 +22,9 @@
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
<h2 class="stats">
2 statements &nbsp;
- <span class="run shortkey_r button_toggle_run">2 run</span>
- <span class="mis show_mis shortkey_m button_toggle_mis">0 missing</span>
- <span class="exc show_exc shortkey_x button_toggle_exc">0 excluded</span>
+ <button type="button" class="run shortkey_r button_toggle_run" title="Toggle lines run">2 run</button>
+ <button type="button" class="mis show_mis shortkey_m button_toggle_mis" title="Toggle lines missing">0 missing</button>
+ <button type="button" class="exc show_exc shortkey_x button_toggle_exc" title="Toggle lines excluded">0 excluded</button>
</h2>
</div>
</div>
diff --git a/tests/gold/html/omit_1/m1_py.html b/tests/gold/html/omit_1/m1_py.html
index 60923930..57584495 100644
--- a/tests/gold/html/omit_1/m1_py.html
+++ b/tests/gold/html/omit_1/m1_py.html
@@ -22,9 +22,9 @@
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
<h2 class="stats">
2 statements &nbsp;
- <span class="run shortkey_r button_toggle_run">2 run</span>
- <span class="mis show_mis shortkey_m button_toggle_mis">0 missing</span>
- <span class="exc show_exc shortkey_x button_toggle_exc">0 excluded</span>
+ <button type="button" class="run shortkey_r button_toggle_run" title="Toggle lines run">2 run</button>
+ <button type="button" class="mis show_mis shortkey_m button_toggle_mis" title="Toggle lines missing">0 missing</button>
+ <button type="button" class="exc show_exc shortkey_x button_toggle_exc" title="Toggle lines excluded">0 excluded</button>
</h2>
</div>
</div>
diff --git a/tests/gold/html/omit_1/m2_py.html b/tests/gold/html/omit_1/m2_py.html
index de060f32..e8c1791d 100644
--- a/tests/gold/html/omit_1/m2_py.html
+++ b/tests/gold/html/omit_1/m2_py.html
@@ -22,9 +22,9 @@
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
<h2 class="stats">
2 statements &nbsp;
- <span class="run shortkey_r button_toggle_run">2 run</span>
- <span class="mis show_mis shortkey_m button_toggle_mis">0 missing</span>
- <span class="exc show_exc shortkey_x button_toggle_exc">0 excluded</span>
+ <button type="button" class="run shortkey_r button_toggle_run" title="Toggle lines run">2 run</button>
+ <button type="button" class="mis show_mis shortkey_m button_toggle_mis" title="Toggle lines missing">0 missing</button>
+ <button type="button" class="exc show_exc shortkey_x button_toggle_exc" title="Toggle lines excluded">0 excluded</button>
</h2>
</div>
</div>
diff --git a/tests/gold/html/omit_1/m3_py.html b/tests/gold/html/omit_1/m3_py.html
index 76a91a4a..e714d47f 100644
--- a/tests/gold/html/omit_1/m3_py.html
+++ b/tests/gold/html/omit_1/m3_py.html
@@ -22,9 +22,9 @@
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
<h2 class="stats">
2 statements &nbsp;
- <span class="run shortkey_r button_toggle_run">2 run</span>
- <span class="mis show_mis shortkey_m button_toggle_mis">0 missing</span>
- <span class="exc show_exc shortkey_x button_toggle_exc">0 excluded</span>
+ <button type="button" class="run shortkey_r button_toggle_run" title="Toggle lines run">2 run</button>
+ <button type="button" class="mis show_mis shortkey_m button_toggle_mis" title="Toggle lines missing">0 missing</button>
+ <button type="button" class="exc show_exc shortkey_x button_toggle_exc" title="Toggle lines excluded">0 excluded</button>
</h2>
</div>
</div>
diff --git a/tests/gold/html/omit_1/main_py.html b/tests/gold/html/omit_1/main_py.html
index 9f242537..28173d12 100644
--- a/tests/gold/html/omit_1/main_py.html
+++ b/tests/gold/html/omit_1/main_py.html
@@ -22,9 +22,9 @@
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
<h2 class="stats">
8 statements &nbsp;
- <span class="run shortkey_r button_toggle_run">8 run</span>
- <span class="mis show_mis shortkey_m button_toggle_mis">0 missing</span>
- <span class="exc show_exc shortkey_x button_toggle_exc">0 excluded</span>
+ <button type="button" class="run shortkey_r button_toggle_run" title="Toggle lines run">8 run</button>
+ <button type="button" class="mis show_mis shortkey_m button_toggle_mis" title="Toggle lines missing">0 missing</button>
+ <button type="button" class="exc show_exc shortkey_x button_toggle_exc" title="Toggle lines excluded">0 excluded</button>
</h2>
</div>
</div>
diff --git a/tests/gold/html/omit_2/m2_py.html b/tests/gold/html/omit_2/m2_py.html
index de060f32..e8c1791d 100644
--- a/tests/gold/html/omit_2/m2_py.html
+++ b/tests/gold/html/omit_2/m2_py.html
@@ -22,9 +22,9 @@
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
<h2 class="stats">
2 statements &nbsp;
- <span class="run shortkey_r button_toggle_run">2 run</span>
- <span class="mis show_mis shortkey_m button_toggle_mis">0 missing</span>
- <span class="exc show_exc shortkey_x button_toggle_exc">0 excluded</span>
+ <button type="button" class="run shortkey_r button_toggle_run" title="Toggle lines run">2 run</button>
+ <button type="button" class="mis show_mis shortkey_m button_toggle_mis" title="Toggle lines missing">0 missing</button>
+ <button type="button" class="exc show_exc shortkey_x button_toggle_exc" title="Toggle lines excluded">0 excluded</button>
</h2>
</div>
</div>
diff --git a/tests/gold/html/omit_2/m3_py.html b/tests/gold/html/omit_2/m3_py.html
index 76a91a4a..e714d47f 100644
--- a/tests/gold/html/omit_2/m3_py.html
+++ b/tests/gold/html/omit_2/m3_py.html
@@ -22,9 +22,9 @@
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
<h2 class="stats">
2 statements &nbsp;
- <span class="run shortkey_r button_toggle_run">2 run</span>
- <span class="mis show_mis shortkey_m button_toggle_mis">0 missing</span>
- <span class="exc show_exc shortkey_x button_toggle_exc">0 excluded</span>
+ <button type="button" class="run shortkey_r button_toggle_run" title="Toggle lines run">2 run</button>
+ <button type="button" class="mis show_mis shortkey_m button_toggle_mis" title="Toggle lines missing">0 missing</button>
+ <button type="button" class="exc show_exc shortkey_x button_toggle_exc" title="Toggle lines excluded">0 excluded</button>
</h2>
</div>
</div>
diff --git a/tests/gold/html/omit_2/main_py.html b/tests/gold/html/omit_2/main_py.html
index 9f242537..28173d12 100644
--- a/tests/gold/html/omit_2/main_py.html
+++ b/tests/gold/html/omit_2/main_py.html
@@ -22,9 +22,9 @@
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
<h2 class="stats">
8 statements &nbsp;
- <span class="run shortkey_r button_toggle_run">8 run</span>
- <span class="mis show_mis shortkey_m button_toggle_mis">0 missing</span>
- <span class="exc show_exc shortkey_x button_toggle_exc">0 excluded</span>
+ <button type="button" class="run shortkey_r button_toggle_run" title="Toggle lines run">8 run</button>
+ <button type="button" class="mis show_mis shortkey_m button_toggle_mis" title="Toggle lines missing">0 missing</button>
+ <button type="button" class="exc show_exc shortkey_x button_toggle_exc" title="Toggle lines excluded">0 excluded</button>
</h2>
</div>
</div>
diff --git a/tests/gold/html/omit_3/m3_py.html b/tests/gold/html/omit_3/m3_py.html
index 76a91a4a..e714d47f 100644
--- a/tests/gold/html/omit_3/m3_py.html
+++ b/tests/gold/html/omit_3/m3_py.html
@@ -22,9 +22,9 @@
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
<h2 class="stats">
2 statements &nbsp;
- <span class="run shortkey_r button_toggle_run">2 run</span>
- <span class="mis show_mis shortkey_m button_toggle_mis">0 missing</span>
- <span class="exc show_exc shortkey_x button_toggle_exc">0 excluded</span>
+ <button type="button" class="run shortkey_r button_toggle_run" title="Toggle lines run">2 run</button>
+ <button type="button" class="mis show_mis shortkey_m button_toggle_mis" title="Toggle lines missing">0 missing</button>
+ <button type="button" class="exc show_exc shortkey_x button_toggle_exc" title="Toggle lines excluded">0 excluded</button>
</h2>
</div>
</div>
diff --git a/tests/gold/html/omit_3/main_py.html b/tests/gold/html/omit_3/main_py.html
index 9f242537..28173d12 100644
--- a/tests/gold/html/omit_3/main_py.html
+++ b/tests/gold/html/omit_3/main_py.html
@@ -22,9 +22,9 @@
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
<h2 class="stats">
8 statements &nbsp;
- <span class="run shortkey_r button_toggle_run">8 run</span>
- <span class="mis show_mis shortkey_m button_toggle_mis">0 missing</span>
- <span class="exc show_exc shortkey_x button_toggle_exc">0 excluded</span>
+ <button type="button" class="run shortkey_r button_toggle_run" title="Toggle lines run">8 run</button>
+ <button type="button" class="mis show_mis shortkey_m button_toggle_mis" title="Toggle lines missing">0 missing</button>
+ <button type="button" class="exc show_exc shortkey_x button_toggle_exc" title="Toggle lines excluded">0 excluded</button>
</h2>
</div>
</div>
diff --git a/tests/gold/html/omit_4/m1_py.html b/tests/gold/html/omit_4/m1_py.html
index 60923930..57584495 100644
--- a/tests/gold/html/omit_4/m1_py.html
+++ b/tests/gold/html/omit_4/m1_py.html
@@ -22,9 +22,9 @@
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
<h2 class="stats">
2 statements &nbsp;
- <span class="run shortkey_r button_toggle_run">2 run</span>
- <span class="mis show_mis shortkey_m button_toggle_mis">0 missing</span>
- <span class="exc show_exc shortkey_x button_toggle_exc">0 excluded</span>
+ <button type="button" class="run shortkey_r button_toggle_run" title="Toggle lines run">2 run</button>
+ <button type="button" class="mis show_mis shortkey_m button_toggle_mis" title="Toggle lines missing">0 missing</button>
+ <button type="button" class="exc show_exc shortkey_x button_toggle_exc" title="Toggle lines excluded">0 excluded</button>
</h2>
</div>
</div>
diff --git a/tests/gold/html/omit_4/m3_py.html b/tests/gold/html/omit_4/m3_py.html
index 76a91a4a..e714d47f 100644
--- a/tests/gold/html/omit_4/m3_py.html
+++ b/tests/gold/html/omit_4/m3_py.html
@@ -22,9 +22,9 @@
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
<h2 class="stats">
2 statements &nbsp;
- <span class="run shortkey_r button_toggle_run">2 run</span>
- <span class="mis show_mis shortkey_m button_toggle_mis">0 missing</span>
- <span class="exc show_exc shortkey_x button_toggle_exc">0 excluded</span>
+ <button type="button" class="run shortkey_r button_toggle_run" title="Toggle lines run">2 run</button>
+ <button type="button" class="mis show_mis shortkey_m button_toggle_mis" title="Toggle lines missing">0 missing</button>
+ <button type="button" class="exc show_exc shortkey_x button_toggle_exc" title="Toggle lines excluded">0 excluded</button>
</h2>
</div>
</div>
diff --git a/tests/gold/html/omit_4/main_py.html b/tests/gold/html/omit_4/main_py.html
index 9f242537..28173d12 100644
--- a/tests/gold/html/omit_4/main_py.html
+++ b/tests/gold/html/omit_4/main_py.html
@@ -22,9 +22,9 @@
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
<h2 class="stats">
8 statements &nbsp;
- <span class="run shortkey_r button_toggle_run">8 run</span>
- <span class="mis show_mis shortkey_m button_toggle_mis">0 missing</span>
- <span class="exc show_exc shortkey_x button_toggle_exc">0 excluded</span>
+ <button type="button" class="run shortkey_r button_toggle_run" title="Toggle lines run">8 run</button>
+ <button type="button" class="mis show_mis shortkey_m button_toggle_mis" title="Toggle lines missing">0 missing</button>
+ <button type="button" class="exc show_exc shortkey_x button_toggle_exc" title="Toggle lines excluded">0 excluded</button>
</h2>
</div>
</div>
diff --git a/tests/gold/html/omit_5/m1_py.html b/tests/gold/html/omit_5/m1_py.html
index 60923930..57584495 100644
--- a/tests/gold/html/omit_5/m1_py.html
+++ b/tests/gold/html/omit_5/m1_py.html
@@ -22,9 +22,9 @@
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
<h2 class="stats">
2 statements &nbsp;
- <span class="run shortkey_r button_toggle_run">2 run</span>
- <span class="mis show_mis shortkey_m button_toggle_mis">0 missing</span>
- <span class="exc show_exc shortkey_x button_toggle_exc">0 excluded</span>
+ <button type="button" class="run shortkey_r button_toggle_run" title="Toggle lines run">2 run</button>
+ <button type="button" class="mis show_mis shortkey_m button_toggle_mis" title="Toggle lines missing">0 missing</button>
+ <button type="button" class="exc show_exc shortkey_x button_toggle_exc" title="Toggle lines excluded">0 excluded</button>
</h2>
</div>
</div>
diff --git a/tests/gold/html/omit_5/main_py.html b/tests/gold/html/omit_5/main_py.html
index 9f242537..28173d12 100644
--- a/tests/gold/html/omit_5/main_py.html
+++ b/tests/gold/html/omit_5/main_py.html
@@ -22,9 +22,9 @@
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
<h2 class="stats">
8 statements &nbsp;
- <span class="run shortkey_r button_toggle_run">8 run</span>
- <span class="mis show_mis shortkey_m button_toggle_mis">0 missing</span>
- <span class="exc show_exc shortkey_x button_toggle_exc">0 excluded</span>
+ <button type="button" class="run shortkey_r button_toggle_run" title="Toggle lines run">8 run</button>
+ <button type="button" class="mis show_mis shortkey_m button_toggle_mis" title="Toggle lines missing">0 missing</button>
+ <button type="button" class="exc show_exc shortkey_x button_toggle_exc" title="Toggle lines excluded">0 excluded</button>
</h2>
</div>
</div>
diff --git a/tests/gold/html/other/blah_blah_other_py.html b/tests/gold/html/other/blah_blah_other_py.html
index d3a4ebfc..8f0309d4 100644
--- a/tests/gold/html/other/blah_blah_other_py.html
+++ b/tests/gold/html/other/blah_blah_other_py.html
@@ -22,9 +22,9 @@
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
<h2 class="stats">
1 statements &nbsp;
- <span class="run shortkey_r button_toggle_run">1 run</span>
- <span class="mis show_mis shortkey_m button_toggle_mis">0 missing</span>
- <span class="exc show_exc shortkey_x button_toggle_exc">0 excluded</span>
+ <button type="button" class="run shortkey_r button_toggle_run" title="Toggle lines run">1 run</button>
+ <button type="button" class="mis show_mis shortkey_m button_toggle_mis" title="Toggle lines missing">0 missing</button>
+ <button type="button" class="exc show_exc shortkey_x button_toggle_exc" title="Toggle lines excluded">0 excluded</button>
</h2>
</div>
</div>
diff --git a/tests/gold/html/other/here_py.html b/tests/gold/html/other/here_py.html
index df2715d6..c2f6b5f1 100644
--- a/tests/gold/html/other/here_py.html
+++ b/tests/gold/html/other/here_py.html
@@ -22,9 +22,9 @@
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
<h2 class="stats">
4 statements &nbsp;
- <span class="run shortkey_r button_toggle_run">3 run</span>
- <span class="mis show_mis shortkey_m button_toggle_mis">1 missing</span>
- <span class="exc show_exc shortkey_x button_toggle_exc">0 excluded</span>
+ <button type="button" class="run shortkey_r button_toggle_run" title="Toggle lines run">3 run</button>
+ <button type="button" class="mis show_mis shortkey_m button_toggle_mis" title="Toggle lines missing">1 missing</button>
+ <button type="button" class="exc show_exc shortkey_x button_toggle_exc" title="Toggle lines excluded">0 excluded</button>
</h2>
</div>
</div>
diff --git a/tests/gold/html/partial/partial_py.html b/tests/gold/html/partial/partial_py.html
index f004808a..abd755d0 100644
--- a/tests/gold/html/partial/partial_py.html
+++ b/tests/gold/html/partial/partial_py.html
@@ -22,10 +22,10 @@
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
<h2 class="stats">
7 statements &nbsp;
- <span class="run shortkey_r button_toggle_run">7 run</span>
- <span class="mis show_mis shortkey_m button_toggle_mis">0 missing</span>
- <span class="exc show_exc shortkey_x button_toggle_exc">1 excluded</span>
- <span class="par run show_par shortkey_p button_toggle_par">1 partial</span>
+ <button type="button" class="run shortkey_r button_toggle_run" title="Toggle lines run">7 run</button>
+ <button type="button" class="mis show_mis shortkey_m button_toggle_mis" title="Toggle lines missing">0 missing</button>
+ <button type="button" class="exc show_exc shortkey_x button_toggle_exc" title="Toggle lines excluded">1 excluded</button>
+ <button type="button" class="par run show_par shortkey_p button_toggle_par" title="Toggle lines partially run">1 partial</button>
</h2>
</div>
</div>
diff --git a/tests/gold/html/styled/a_py.html b/tests/gold/html/styled/a_py.html
index 4687e464..7b6f9dcd 100644
--- a/tests/gold/html/styled/a_py.html
+++ b/tests/gold/html/styled/a_py.html
@@ -23,9 +23,9 @@
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
<h2 class="stats">
3 statements &nbsp;
- <span class="run shortkey_r button_toggle_run">2 run</span>
- <span class="mis show_mis shortkey_m button_toggle_mis">1 missing</span>
- <span class="exc show_exc shortkey_x button_toggle_exc">0 excluded</span>
+ <button type="button" class="run shortkey_r button_toggle_run" title="Toggle lines run">2 run</button>
+ <button type="button" class="mis show_mis shortkey_m button_toggle_mis" title="Toggle lines missing">1 missing</button>
+ <button type="button" class="exc show_exc shortkey_x button_toggle_exc" title="Toggle lines excluded">0 excluded</button>
</h2>
</div>
</div>
diff --git a/tests/gold/html/styled/style.css b/tests/gold/html/styled/style.css
index e8ff5765..ab9dbcb9 100644
--- a/tests/gold/html/styled/style.css
+++ b/tests/gold/html/styled/style.css
@@ -4,11 +4,17 @@
/* Don't edit this .css file. Edit the .scss file instead! */
html, body, h1, h2, h3, p, table, td, th { margin: 0; padding: 0; border: 0; font-weight: inherit; font-style: inherit; font-size: 100%; font-family: inherit; vertical-align: baseline; }
-body { font-family: georgia, serif; font-size: 1em; }
+body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; font-size: 1em; background: #fff; color: #000; }
+
+@media (prefers-color-scheme: dark) { body { background: #1e1e1e; } }
+
+@media (prefers-color-scheme: dark) { body { color: #eee; } }
html > body { font-size: 16px; }
-p { font-size: .75em; line-height: 1.33333333em; }
+a:active, a:focus { outline: 2px dashed #007acc; }
+
+p { font-size: .875em; line-height: 1.4em; }
table { border-collapse: collapse; }
@@ -19,15 +25,22 @@ table tr.hidden { display: none !important; }
p#no_rows { display: none; font-size: 1.2em; }
a.nav { text-decoration: none; color: inherit; }
+
a.nav:hover { text-decoration: underline; color: inherit; }
#header { background: #f8f8f8; width: 100%; border-bottom: 1px solid #eee; }
+@media (prefers-color-scheme: dark) { #header { background: black; } }
+
+@media (prefers-color-scheme: dark) { #header { border-color: #333; } }
+
.indexfile #footer { margin: 1em 3em; }
.pyfile #footer { margin: 1em 1em; }
-#footer .content { padding: 0; font-size: 85%; font-family: verdana, sans-serif; color: #666666; font-style: italic; }
+#footer .content { padding: 0; color: #666; font-style: italic; }
+
+@media (prefers-color-scheme: dark) { #footer .content { color: #aaa; } }
#index { margin: 1em 0 0 3em; }
@@ -35,90 +48,236 @@ a.nav:hover { text-decoration: underline; color: inherit; }
h1 { font-size: 1.25em; display: inline-block; }
-#filter_container { display: inline-block; float: right; margin: 0 2em 0 0; }
-#filter_container input { width: 10em; }
+#filter_container { float: right; margin: 0 2em 0 0; }
+
+#filter_container input { width: 10em; padding: 0.2em 0.5em; border: 2px solid #ccc; background: #fff; color: #000; }
+
+@media (prefers-color-scheme: dark) { #filter_container input { border-color: #444; } }
+
+@media (prefers-color-scheme: dark) { #filter_container input { background: #1e1e1e; } }
+
+@media (prefers-color-scheme: dark) { #filter_container input { color: #eee; } }
+
+#filter_container input:focus { border-color: #007acc; }
h2.stats { margin-top: .5em; font-size: 1em; }
-.stats span { border: 1px solid; border-radius: .1em; padding: .1em .5em; margin: 0 .1em; cursor: pointer; border-color: #ccc #999 #999 #ccc; }
-.stats span.run { background: #eeffee; }
-.stats span.run.show_run { border-color: #999 #ccc #ccc #999; background: #ddffdd; }
-.stats span.mis { background: #ffeeee; }
-.stats span.mis.show_mis { border-color: #999 #ccc #ccc #999; background: #ffdddd; }
-.stats span.exc { background: #f7f7f7; }
-.stats span.exc.show_exc { border-color: #999 #ccc #ccc #999; background: #eeeeee; }
-.stats span.par { background: #ffffd5; }
-.stats span.par.show_par { border-color: #999 #ccc #ccc #999; background: #ffffaa; }
+.stats button { font-family: inherit; font-size: inherit; border: 2px solid; border-radius: .1em; color: inherit; padding: .1em .5em; margin: 0 .1em; cursor: pointer; border-color: #ccc; }
+
+@media (prefers-color-scheme: dark) { .stats button { border-color: #444; } }
+
+.stats button:active, .stats button:focus { outline: 2px dashed #007acc; }
+
+.stats button:active, .stats button:focus { outline: 2px dashed #007acc; }
+
+.stats button.run { background: #eeffee; }
+
+@media (prefers-color-scheme: dark) { .stats button.run { background: #373d29; } }
+
+.stats button.run.show_run { background: #dfd; border-color: #00dd00; }
+
+@media (prefers-color-scheme: dark) { .stats button.run.show_run { background: #373d29; } }
+
+.stats button.mis { background: #ffeeee; }
+
+@media (prefers-color-scheme: dark) { .stats button.mis { background: #4b1818; } }
+
+.stats button.mis.show_mis { background: #fdd; border-color: #ff0000; }
+
+@media (prefers-color-scheme: dark) { .stats button.mis.show_mis { background: #4b1818; } }
+
+.stats button.exc { background: #f7f7f7; }
+
+@media (prefers-color-scheme: dark) { .stats button.exc { background: #333; } }
+
+.stats button.exc.show_exc { background: #eee; border-color: #808080; }
+
+@media (prefers-color-scheme: dark) { .stats button.exc.show_exc { background: #333; } }
+
+.stats button.par { background: #ffffd5; }
-#source p .annotate.long, .help_panel { display: none; position: absolute; z-index: 999; background: #ffffcc; border: 1px solid #888; border-radius: .2em; box-shadow: #cccccc .2em .2em .2em; color: #333; padding: .25em .5em; }
+@media (prefers-color-scheme: dark) { .stats button.par { background: #650; } }
+
+.stats button.par.show_par { background: #ffa; border-color: #dddd00; }
+
+@media (prefers-color-scheme: dark) { .stats button.par.show_par { background: #650; } }
+
+.help_panel, #source p .annotate.long { display: none; position: absolute; z-index: 999; background: #ffffcc; border: 1px solid #888; border-radius: .2em; color: #333; padding: .25em .5em; }
#source p .annotate.long { white-space: normal; float: right; top: 1.75em; right: 1em; height: auto; }
#keyboard_icon { float: right; margin: 5px; cursor: pointer; }
.help_panel { padding: .5em; border: 1px solid #883; }
+
.help_panel .legend { font-style: italic; margin-bottom: 1em; }
-.indexfile .help_panel { width: 20em; height: 4em; }
-.pyfile .help_panel { width: 16em; height: 8em; }
+
+.indexfile .help_panel { width: 20em; min-height: 4em; }
+
+.pyfile .help_panel { width: 16em; min-height: 8em; }
#panel_icon { float: right; cursor: pointer; }
.keyhelp { margin: .75em; }
-.keyhelp .key { border: 1px solid black; border-color: #888 #333 #333 #888; padding: .1em .35em; font-family: monospace; font-weight: bold; background: #eee; }
-#source { padding: 1em 0 1em 3rem; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; }
+.keyhelp .key { border: 1px solid black; border-color: #888 #333 #333 #888; padding: .1em .35em; font-family: SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-weight: bold; background: #eee; }
+
+#source { padding: 1em 0 1em 3rem; font-family: SFMono-Regular, Menlo, Monaco, Consolas, monospace; }
+
#source p { position: relative; white-space: pre; }
+
#source p * { box-sizing: border-box; }
-#source p .n { float: left; text-align: right; width: 3rem; box-sizing: border-box; margin-left: -3rem; padding-right: 1em; color: #999999; font-family: verdana, sans-serif; }
-#source p .n a { text-decoration: none; color: #999999; font-size: .8333em; line-height: 1em; }
-#source p .n a:hover { text-decoration: underline; color: #999999; }
+
+#source p .n { float: left; text-align: right; width: 3rem; box-sizing: border-box; margin-left: -3rem; padding-right: 1em; color: #999; }
+
+@media (prefers-color-scheme: dark) { #source p .n { color: #777; } }
+
+#source p .n a { text-decoration: none; color: #999; }
+
+@media (prefers-color-scheme: dark) { #source p .n a { color: #777; } }
+
+#source p .n a:hover { text-decoration: underline; color: #999; }
+
+@media (prefers-color-scheme: dark) { #source p .n a:hover { color: #777; } }
+
#source p.highlight .n { background: #ffdd00; }
-#source p .t { display: inline-block; width: 100%; box-sizing: border-box; margin-left: -.5em; padding-left: 0.3em; border-left: 0.2em solid white; }
+
+#source p .t { display: inline-block; width: 100%; box-sizing: border-box; margin-left: -.5em; padding-left: 0.3em; border-left: 0.2em solid #fff; }
+
+@media (prefers-color-scheme: dark) { #source p .t { border-color: #1e1e1e; } }
+
#source p .t:hover { background: #f2f2f2; }
+
+@media (prefers-color-scheme: dark) { #source p .t:hover { background: #282828; } }
+
#source p .t:hover ~ .r .annotate.long { display: block; }
-#source p .t .com { color: green; font-style: italic; line-height: 1px; }
+
+#source p .t .com { color: #008000; font-style: italic; line-height: 1px; }
+
+@media (prefers-color-scheme: dark) { #source p .t .com { color: #6A9955; } }
+
#source p .t .key { font-weight: bold; line-height: 1px; }
-#source p .t .str { color: #000080; }
+
+#source p .t .str { color: #0451A5; }
+
+@media (prefers-color-scheme: dark) { #source p .t .str { color: #9CDCFE; } }
+
#source p.mis .t { border-left: 0.2em solid #ff0000; }
-#source p.mis.show_mis .t { background: #ffdddd; }
+
+#source p.mis.show_mis .t { background: #fdd; }
+
+@media (prefers-color-scheme: dark) { #source p.mis.show_mis .t { background: #4b1818; } }
+
#source p.mis.show_mis .t:hover { background: #f2d2d2; }
-#source p.run .t { border-left: 0.2em solid #00ff00; }
-#source p.run.show_run .t { background: #ddffdd; }
+
+@media (prefers-color-scheme: dark) { #source p.mis.show_mis .t:hover { background: #532323; } }
+
+#source p.run .t { border-left: 0.2em solid #00dd00; }
+
+#source p.run.show_run .t { background: #dfd; }
+
+@media (prefers-color-scheme: dark) { #source p.run.show_run .t { background: #373d29; } }
+
#source p.run.show_run .t:hover { background: #d2f2d2; }
+
+@media (prefers-color-scheme: dark) { #source p.run.show_run .t:hover { background: #404633; } }
+
#source p.exc .t { border-left: 0.2em solid #808080; }
-#source p.exc.show_exc .t { background: #eeeeee; }
+
+#source p.exc.show_exc .t { background: #eee; }
+
+@media (prefers-color-scheme: dark) { #source p.exc.show_exc .t { background: #333; } }
+
#source p.exc.show_exc .t:hover { background: #e2e2e2; }
-#source p.par .t { border-left: 0.2em solid #eeee99; }
-#source p.par.show_par .t { background: #ffffaa; }
+
+@media (prefers-color-scheme: dark) { #source p.exc.show_exc .t:hover { background: #3c3c3c; } }
+
+#source p.par .t { border-left: 0.2em solid #dddd00; }
+
+#source p.par.show_par .t { background: #ffa; }
+
+@media (prefers-color-scheme: dark) { #source p.par.show_par .t { background: #650; } }
+
#source p.par.show_par .t:hover { background: #f2f2a2; }
-#source p .r { position: absolute; top: 0; right: 2.5em; font-family: verdana, sans-serif; }
-#source p .annotate { font-family: georgia; color: #666; padding-right: .5em; }
+
+@media (prefers-color-scheme: dark) { #source p.par.show_par .t:hover { background: #6d5d0c; } }
+
+#source p .r { position: absolute; top: 0; right: 2.5em; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; }
+
+#source p .annotate { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; color: #666; padding-right: .5em; }
+
+@media (prefers-color-scheme: dark) { #source p .annotate { color: #ddd; } }
+
#source p .annotate.short:hover ~ .long { display: block; }
+
#source p .annotate.long { width: 30em; right: 2.5em; }
+
#source p input { display: none; }
+
#source p input ~ .r label.ctx { cursor: pointer; border-radius: .25em; }
+
#source p input ~ .r label.ctx::before { content: "▶ "; }
+
#source p input ~ .r label.ctx:hover { background: #d5f7ff; color: #666; }
+
#source p input:checked ~ .r label.ctx { background: #aaeeff; color: #666; border-radius: .75em .75em 0 0; padding: 0 .5em; margin: -.25em 0; }
+
#source p input:checked ~ .r label.ctx::before { content: "▼ "; }
+
#source p input:checked ~ .ctxs { padding: .25em .5em; overflow-y: scroll; max-height: 10.5em; }
+
#source p label.ctx { color: #999; display: inline-block; padding: 0 .5em; font-size: .8333em; }
-#source p .ctxs { display: block; max-height: 0; overflow-y: hidden; transition: all .2s; padding: 0 .5em; font-family: verdana, sans-serif; white-space: nowrap; background: #aaeeff; border-radius: .25em; margin-right: 1.75em; }
+
+@media (prefers-color-scheme: dark) { #source p label.ctx { color: #777; } }
+
+#source p .ctxs { display: block; max-height: 0; overflow-y: hidden; transition: all .2s; padding: 0 .5em; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; white-space: nowrap; background: #aaeeff; border-radius: .25em; margin-right: 1.75em; }
+
#source p .ctxs span { display: block; text-align: right; }
+#index { font-family: SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 0.875em; }
+
#index td, #index th { text-align: right; width: 5em; padding: .25em .5em; border-bottom: 1px solid #eee; }
+
+@media (prefers-color-scheme: dark) { #index td, #index th { border-color: #333; } }
+
#index td.left, #index th.left { padding-left: 0; }
+
#index td.right, #index th.right { padding-right: 0; }
+
#index td.name, #index th.name { text-align: left; width: auto; }
-#index th { font-style: italic; color: #333; border-bottom: 1px solid #ccc; cursor: pointer; }
-#index th:hover { background: #eee; border-bottom: 1px solid #999; }
-#index th.headerSortDown, #index th.headerSortUp { border-bottom: 1px solid #000; white-space: nowrap; background: #eee; }
+
+#index th { font-style: italic; color: #333; cursor: pointer; }
+
+@media (prefers-color-scheme: dark) { #index th { color: #ddd; } }
+
+#index th:hover { background: #eee; }
+
+@media (prefers-color-scheme: dark) { #index th:hover { background: #333; } }
+
+#index th.headerSortDown, #index th.headerSortUp { white-space: nowrap; background: #eee; }
+
+@media (prefers-color-scheme: dark) { #index th.headerSortDown, #index th.headerSortUp { background: #333; } }
+
#index th.headerSortDown:after { content: " ↓"; }
+
#index th.headerSortUp:after { content: " ↑"; }
-#index td.name a { text-decoration: none; color: #000; }
+
+#index td.name a { text-decoration: none; color: inherit; }
+
#index tr.total td, #index tr.total_dynamic td { font-weight: bold; border-top: 1px solid #ccc; border-bottom: none; }
-#index tr.file:hover { background: #eeeeee; }
-#index tr.file:hover td.name { text-decoration: underline; color: #000; }
-#scroll_marker { position: fixed; right: 0; top: 0; width: 16px; height: 100%; background: white; border-left: 1px solid #eee; will-change: transform; }
-#scroll_marker .marker { background: #ddd; position: absolute; min-height: 3px; width: 100%; }
+#index tr.file:hover { background: #eee; }
+
+@media (prefers-color-scheme: dark) { #index tr.file:hover { background: #333; } }
+
+#index tr.file:hover td.name { text-decoration: underline; color: inherit; }
+
+#scroll_marker { position: fixed; right: 0; top: 0; width: 16px; height: 100%; background: #fff; border-left: 1px solid #eee; will-change: transform; }
+
+@media (prefers-color-scheme: dark) { #scroll_marker { background: #1e1e1e; } }
+
+@media (prefers-color-scheme: dark) { #scroll_marker { border-color: #333; } }
+
+#scroll_marker .marker { background: #ccc; position: absolute; min-height: 3px; width: 100%; }
+
+@media (prefers-color-scheme: dark) { #scroll_marker .marker { background: #444; } }
diff --git a/tests/gold/html/unicode/unicode_py.html b/tests/gold/html/unicode/unicode_py.html
index 46722961..a4218bcc 100644
--- a/tests/gold/html/unicode/unicode_py.html
+++ b/tests/gold/html/unicode/unicode_py.html
@@ -22,9 +22,9 @@
<img id="keyboard_icon" src="keybd_closed.png" alt="Show keyboard shortcuts" />
<h2 class="stats">
2 statements &nbsp;
- <span class="run shortkey_r button_toggle_run">2 run</span>
- <span class="mis show_mis shortkey_m button_toggle_mis">0 missing</span>
- <span class="exc show_exc shortkey_x button_toggle_exc">0 excluded</span>
+ <button type="button" class="run shortkey_r button_toggle_run" title="Toggle lines run">2 run</button>
+ <button type="button" class="mis show_mis shortkey_m button_toggle_mis" title="Toggle lines missing">0 missing</button>
+ <button type="button" class="exc show_exc shortkey_x button_toggle_exc" title="Toggle lines excluded">0 excluded</button>
</h2>
</div>
</div>