From 143736e357534c2e9b22802278c8a52eb8c79958 Mon Sep 17 00:00:00 2001 From: Usman Khwaja Date: Thu, 30 May 2024 20:05:37 -0400 Subject: [PATCH 01/46] homepage overhaul --- server/static/header.html | 34 +- server/static/include/css/index.css | 621 ++++++++++++++-------- server/static/include/css/index.css.map | 1 + server/static/include/css/index.scss | 657 ++++++++++++++++++++++++ server/static/include/css/reset.css | 130 +++++ server/static/include/img/ledger.png | Bin 0 -> 5730 bytes server/static/include/img/v2v.webp | Bin 0 -> 95544 bytes server/static/index.html | 172 +++++-- server/static/ledger.html | 2 +- 9 files changed, 1332 insertions(+), 285 deletions(-) create mode 100644 server/static/include/css/index.css.map create mode 100644 server/static/include/css/index.scss create mode 100644 server/static/include/css/reset.css create mode 100644 server/static/include/img/ledger.png create mode 100644 server/static/include/img/v2v.webp diff --git a/server/static/header.html b/server/static/header.html index c9feb48..17080ec 100644 --- a/server/static/header.html +++ b/server/static/header.html @@ -1,23 +1,21 @@ - -
-
- -
-

- {{ LEDGER_INSTANCE_NAME }} Blockchain Ledger -

-
-
+
+
+ + +
diff --git a/server/static/include/css/index.css b/server/static/include/css/index.css index 3927608..f2e64c2 100644 --- a/server/static/include/css/index.css +++ b/server/static/include/css/index.css @@ -1,86 +1,165 @@ -body, input, select { - color: #222; - font-family: 'Open Sans', sans-serif; - font-size: 16px; - line-height: 1.45; - margin: 0; +@import "/include/css/reset.css"; +@keyframes blink-animation { + to { + visibility: hidden; + } +} +@-webkit-keyframes blink-animation { + to { + visibility: hidden; + } +} +@keyframes blink-animation-2 { + to { + opacity: 50%; + } +} +@-webkit-keyframes blink-animation-2 { + to { + opacity: 50%; + } +} +@keyframes lds-ring { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } } +.blink { + animation: blink-animation 0.5s steps(5, start) infinite; + -webkit-animation: blink-animation 0.5s steps(5, start) infinite; + filter: drop-shadow(0px 1px 1px #6eff3a); +} + +.Node2 .blink { + animation-delay: 900ms; + animation: blink-animation 1s steps(5, start) infinite; + -webkit-animation: blink-animation 1s steps(5, start) infinite; +} + +.Node4 .blink { + animation-delay: 300ms; + animation: blink-animation-2 0.3s steps(5, start) infinite; + -webkit-animation: blink-animation-2 0.3s steps(5, start) infinite; +} + +.orange { + filter: drop-shadow(0px 1px 1px rgba(255, 236, 85, 0.6117647059)); +} + +body { + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-size: 16px; + line-height: 1.45; + margin: 0; +} header { - background-color: #1c6da6; - border-bottom: 2px solid #fcba19; - color: #fcba19; - padding: 10px 2rem 10px 2.2rem; -} -header h1 { - color: #e9f5ff; - display: inline-block; - margin: 0; - padding: 0; - vertical-align: -0.15em; + background-color: #1c6da6; } -header a { - color: #e9f5ff; +header .container { + max-width: 1140px; + display: flex; + justify-content: flex-end; + align-items: center; + margin: 0 auto; + flex-wrap: wrap; } -header a.info-site { - color: #fcba19; +header .logo { + margin-right: auto; + color: #fff; + padding: 20px 50px; + margin-left: 20px; } -header h1 a:hover { - color: #9bf; +header .logo span { + display: inline-block; +} +header .logo .logo-img img { + width: 50px; +} +header .logo .logo-text { + color: #fff; + bottom: 0.2rem; + left: 0.4rem; + position: relative; + font-size: 1.8rem; + font-weight: 600; + line-height: 1; +} +header nav { + align-self: end; + margin-right: 20px; } -header p.lead { - display: inline-block; - margin-left: 3rem; +header ul { + display: flex; + flex-wrap: nowrap; + text-align: center; +} +header li { + flex: 1 1 0; + list-style-type: none; + display: inline-block; + box-sizing: border-box; + vertical-align: bottom; +} +header a { + display: flex; + flex: 1 1 0; + flex-wrap: nowrap; + text-decoration: none; + font-weight: 600; + color: #fff; + transition: all 0.3s ease 0s; + padding: 1em 1.75em; +} +header a:hover { + background-color: #0b1f61; } main { - padding: 1rem 1rem; + padding: 1rem 1rem; } .row-outer { - display: flex; - flex-flow: row nowrap; - width: 100%; + width: 100%; } + .row-outer.anonymous { display: block; } .col-main { - flex: 1 1 auto; - padding: 1rem; + flex: 1 1 auto; + padding: 1rem; } + .anonymous .col-main { padding-bottom: 0; } -.col-tools { - flex: 1 0 25rem; - padding: 1rem; - width: 25rem; -} .anonymous .col-tools { width: auto; } -a, input[type=submit], button { - color: #1a5a96; - text-decoration: none +.col-tools { + flex: 1 0 25rem; + padding: 1rem; + width: 25rem; } -button { - font-size: inherit; + +a { + text-decoration: none; } -a:hover, -a:focus, -button:hover, button:focus, -input[type=submit]:hover, -input[type=submit]:focus { - color: #0f3355; - text-decoration: underline; +input[type=submit] { + text-decoration: none; } -a.tool, input[type=submit].tool { - font-size: 110%; + +button { + text-decoration: none; + font-size: inherit; } .back-link { @@ -92,235 +171,256 @@ a.tool, input[type=submit].tool { margin-bottom: 0.5rem; } -.tool-button, .tool-input { - background-color: #f0f3ff; - border: 1px solid #58a; - border-radius: 3px; - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.15); - box-sizing: border-box; - display: inline-block; - line-height: 1.4; - margin: 0.2rem 0; -} .tool-button { - padding: 0.3rem 0.6rem; + background-color: #fff; + border: 1px solid #58a; + border-radius: 3px; + box-shadow: 0 2px 3px rgba(0, 0, 0, 0.15); + box-sizing: border-box; + display: inline-block; + line-height: 1.4; + margin: 0.2rem 0; + padding: 0.3rem 0.6rem; +} +.tool-button:hover { + background-color: #1c6da6; + color: #e9f5ff; + text-decoration: none; } +.tool-button:focus { + background-color: #1c6da6; + color: #e9f5ff; + text-decoration: none; +} +.tool-button .left { + font-size: 90%; + margin-right: 0.4rem; +} + .tool-input { - padding: 0.1rem 0 0.2rem 0.4rem; + background-color: #fff; + border: 1px solid #58a; + border-radius: 3px; + box-shadow: 0 2px 3px rgba(0, 0, 0, 0.15); + box-sizing: border-box; + display: inline-block; + line-height: 1.4; + margin: 0.2rem 0; + padding: 0.1rem 0 0.2rem 0.4rem; } + select.tool-input { padding-right: 0.4rem; } + .wallet-seed { max-width: 25em; width: 100%; } + .tool-label { - color: #666; + color: #888; display: block; font-size: 90%; } + .tool-label.inline { display: inline; } -.tool-button:hover, .tool-button:focus { - background-color: #036; - color: #e9f5ff; - text-decoration: none; +a.tool .left { + font-size: 90%; + margin-right: 0.4rem; } -a.tool .left, .tool-button .left { - font-size: 90%; - margin-right: 0.4rem; +form input[type=text] { + min-width: 250px; } -form input[type=text] { - min-width: 250px; - background-color: white; +small { + font-size: 85%; } -small, .small { - font-size: 85%; +.small { + font-size: 85%; } .tag { - background-color: #fefdf8; - border: 1px solid #f9b714; - border-radius: 0.3em; - display: inline-block; - padding: 0.25em; + background-color: #e9f5ff; + border: 1px solid #f9b714; + border-radius: 0.3em; + display: inline-block; + padding: 0.25em; } h2 { - font-weight: 500; + font-weight: 500; } h2 .fa { - font-size: 85%; - opacity: 0.9; - vertical-align: 2px; + font-size: 85%; + opacity: 0.9; + vertical-align: 2px; } .panel { - margin-bottom: 1.5rem; - overflow: hidden; -} -.panel-heading, .panel-body { - overflow: hidden; - padding: 0.25rem 0.7rem; + overflow: hidden; } -.panel-body p { - margin: 0.5rem 0; + +.panel-heading { + overflow: hidden; + padding: 0.25rem 0.7rem; } -.panel-default { - background: #f0f3ff; - box-shadow: 0 4px 3px 3px rgba(0, 0, 0, 0.02); +.panel-heading h2 { + padding: 0; + margin: 0; } + .panel-default .panel-heading { - background: #1c6da6; - border-bottom: 1px solid #eee; - color: #fafaec; -} -.panel-default > .panel-body { - border: 1px solid #e0e6ee; - border-radius: 0.5rem; - padding-top: 10px; + background: #1c6da6; + border-bottom: 1px solid #eee; + color: #fff; } .panel-default > .panel-heading { border-radius: 0.5rem 0.5rem 0 0; } -.panel-default > .panel-heading + .panel-body { - border-top: none; - border-top-left-radius: 0; - border-top-right-radius: 0; -} .panel-info { - background: #f0f3ff; - border: 1px solid #89a; - border-radius: 0.5rem; - box-shadow: 0 4px 3px 3px rgba(0, 0, 0, 0.02); + background: #f0f3ff; + border: 1px solid #89a; + border-radius: 0.5rem; + box-shadow: 0 4px 3px 3px rgba(0, 0, 0, 0.02); } .panel-side { - background-color: #f7f6f6; - border: 2px solid #f0ecec; - border-radius: 0.5rem; - box-shadow: 0 4px 3px 3px rgba(0, 0, 0, 0.02); -} -.panel-side .panel-heading { - color: #585555; + border: 2px solid #f0ecec; + border-radius: 0.5rem; + box-shadow: 0 4px 3px 3px rgba(0, 0, 0, 0.02); } .panel-side .panel-heading::after { - background: #fdfdfd; - border-bottom: 1px solid #ebe6e6; - border-radius: 3px; - content: ' '; - display: block; - height: 3px; -} - -.panel-heading h2 { - padding: 0; - margin: 0; + background: #fdfdfd; + border-bottom: 1px solid #ebe6e6; + border-radius: 3px; + content: " "; + display: block; + height: 3px; } .top-label { - color: #555; - font-size: 95%; - font-weight: 600; - line-height: 1.6; + font-size: 95%; + font-weight: 600; + line-height: 1.6; } + .tool-tag { - -background: rgba(254, 253, 237, 1.0); - border-radius: 2px; - -border: 1px solid rgba(215, 220, 255, 0.9); - color: #555; - display: inline-block; - font-size: 0.75rem; - font-weight: 600; - margin-left: 1rem; - padding: 1.5px 4px; - vertical-align: 0.1rem; + border-radius: 2px; + display: inline-block; + font-size: 0.75rem; + font-weight: 600; + margin-left: 1rem; + padding: 1.5px 4px; + vertical-align: 0.1rem; } .error { - color: #b55; + color: #b55; } + .warning { - color: #a83; + color: #a83; } .panel-node { - background: #fff; - border: 1px solid #ddd; - -box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.08); + display: flex; + justify-content: center; + width: 100%; + flex-flow: row wrap; } + .node-status { - display: flex; - padding: 0.8rem; - position: relative; -} -.node-status:not(.template) + .node-status { - border-top: 1px solid #ddd; + display: inline-block; + flex-direction: row; + display: flex; + flex: 0 1 500px; + margin: 0.8rem; + padding: 0.8rem; + height: 300px; + align-items: stretch; + box-shadow: 0 0 3px rgba(0, 0, 0, 0.2); } + .node-status-left { - flex: 0 1 25%; - margin: 0 10px 0 0; - overflow: hidden; - position: relative; - min-width: 90px; + flex: 0 1 50%; + display: flex; + overflow: hidden; + position: relative; + padding: 0 0.8rem; } + .node-name { font-size: 15px; - position: absolute; - text-align: center; - top: 34px; - width: 100%; - z-index: 2; + position: absolute; + text-align: center; + top: 34px; + width: 100%; + z-index: 2; } + .nodeval-name { - color: #6A7593; + color: #888; display: block; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; } + .node-indicator { - height: 90px; - margin: 0 auto; - width: 90px; + margin: auto; + max-width: 100px; } + .node-status-right { - flex: 1 1 auto; - overflow: hidden; - word-wrap: break-word; + flex: 1 1 auto; + overflow: hidden; + word-wrap: break-word; + align-self: center; + padding: 0 0.8rem; } .props { - font-size: 80%; - margin: 0; + font-size: 80%; + margin: 0; } .props dt { - display: none; + display: none; } .props dd { - margin: 0; + margin: 0.4rem 0; + padding: 0.4rem 0.2rem; +} +.props dd:not(:last-child) { + border-bottom: 1px dashed rgba(0, 0, 0, 0.2); } -.props label { - color: #888; +.props .label { + color: #888; +} + +.nodeval-did { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; } .ledger-txns { word-break: break-word; } + .ledger-loading { float: right; } + .ledger-nav { display: flex; flex-flow: row wrap; } + .nav-label { display: inline-block; opacity: 0.7; @@ -328,20 +428,25 @@ h2 .fa { font-size: 90%; min-width: 6em; } + .count { padding-left: 2em; } + .nav-left { flex: 1 0 auto; } + .nav-right { flex: 0 0 40%; white-space: nowrap; } + .clear-filter { cursor: pointer; margin-left: 6em; } + .pagination { border-radius: 4px; display: inline-flex; @@ -352,18 +457,21 @@ h2 .fa { padding: 0; text-align: center; } +.pagination .page-item { + border: 1px solid #9bf; + display: block; + z-index: 1; +} .pagination .page-item:first-child { border-bottom-left-radius: 4px; border-top-left-radius: 4px; } .pagination .page-item:last-child { - border-bottom-right-radius: 4px; - border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + border-top-right-radius: 4px; } -.pagination .page-item { - border: 1px solid #9bf; - display: block; - z-index: 1; +.pagination .page-item + .page-item { + margin-left: -1px; } .pagination .page-link { display: block; @@ -375,11 +483,8 @@ h2 .fa { display: block; padding: 0.25em 0.4em; } -.pagination .page-item+.page-item { - margin-left: -1px; -} .pagination .page-item.active { - background-color: #d1e1ff; + background-color: #e9f5ff; font-weight: bold; } .pagination .page-item.active .page-link { @@ -398,6 +503,7 @@ h2 .fa { margin-top: 1em; width: 100%; } + .ledger-row:not(:last-child) td { border-bottom: 1px solid #9bd; } @@ -408,6 +514,7 @@ h2 .fa { .ledger-row:nth-child(even) { background: #e9f0fe; } + .ledger-index { width: 10%; } @@ -421,12 +528,14 @@ h2 .fa { text-align: right; width: 100%; } + .raw-data { - font-family: monospace; + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 70%; white-space: pre-wrap; word-break: break-word; } + .ledger-entry label { opacity: 0.7; font-weight: 600; @@ -456,41 +565,131 @@ h2 .fa { padding-top: 0; text-indent: 0; } + .ledger-entry-title { background: #9bd; border-radius: 4px; - color: #f0f3ff; + color: #fff; font-size: 75%; font-weight: bold; margin-bottom: 0.25em; padding: 1px 4px 2px; } -.ledger-entry-title.active { - cursor: pointer; -} .ledger-entry-title:not(:first-child) { margin-top: 0.5em; } + +.ledger-entry-title.active { + cursor: pointer; +} + .ident { - font-family: monospace; + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 80%; font-variant-numeric: lining-nums tabular-nums; } -@media screen and (max-width: 900px) { - .row-outer { - display: block; - } - .col-tools { - padding-top: 0; - width: auto; - } -} - -.register-result, .register-error { - padding-top: 20px; - word-wrap: break-word; +.register-result { + padding-top: 20px; + word-wrap: break-word; } .register-result code { font-size: 85%; } + +.register-error { + padding-top: 20px; + word-wrap: break-word; +} + +.lds-ring { + box-sizing: border-box; + display: block; + position: relative; + width: 80px; + height: 80px; + margin: 0 auto; +} +.lds-ring div { + box-sizing: border-box; + box-sizing: border-box; + display: block; + position: absolute; + width: 64px; + height: 64px; + margin: 8px; + border: 8px solid currentColor; + border-radius: 50%; + animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite; + border-color: currentColor transparent transparent transparent; +} +.lds-ring div:nth-child(1) { + animation-delay: -0.45s; +} +.lds-ring div:nth-child(2) { + animation-delay: -0.3s; +} +.lds-ring div:nth-child(3) { + animation-delay: -0.15s; +} + +.button { + margin-top: 2rem; + margin-bottom: 2rem; + overflow: visible; + display: block; +} + +.button-link { + padding: 1rem 2rem; + color: #fff; + background-color: #1c6da6; + text-transform: uppercase; + display: inline-block; + text-wrap: nowrap; +} +.button-link:hover { + background-color: #0b1f61; +} + +.detail-hero { + margin-top: 2rem; + display: flex; + justify-content: center; + flex-wrap: wrap; +} +.detail-hero > div { + margin: 0rem 2rem; + flex: 0 0 25%; +} + +.detail-hero-left { + display: flex; + justify-content: center; + align-items: start; + flex-direction: column; + padding: 0 2rem; +} + +.detail-hero-right { + display: flex; + justify-content: center; + align-items: center; + padding: 0 2rem; +} +.detail-hero-right img { + flex: 1; + max-width: 500px; +} + +@media screen and (max-width: 900px) { + .row-outer { + display: block; + } + .col-tools { + padding-top: 0; + width: auto; + } +} + +/*# sourceMappingURL=index.css.map */ diff --git a/server/static/include/css/index.css.map b/server/static/include/css/index.css.map new file mode 100644 index 0000000..fa131a0 --- /dev/null +++ b/server/static/include/css/index.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["index.scss"],"names":[],"mappings":"AAAQ;AAaR;EACC;IACC;;;AAGF;EACC;IACC;;;AAGF;EACC;IACC;;;AAGF;EACC;IACC;;;AAGF;EACC;IACC;;EAED;IACC;;;;AAIF;EACC;EACA;EACA;;;AAGA;EACC;EACA;EACA;;;AAID;EACC;EACA;EACA;;;AAGF;EACC;;;AAED;EACC,aAzDkB;EA0DlB;EACA;EACA;;;AAED;EACC,kBA7De;;AA8Df;EACC;EACA;EACA;EACA;EACA;EACA;;AAED;EACC;EACA,OAhFY;EAiFZ;EACA;;AACA;EACC;;AAGA;EACC;;AAGF;EACC,OA5FW;EA6FX;EACA;EACA;EACA;EACA;EACA;;AAGF;EACC;EACA;;AAED;EACC;EACA;EACA;;AAED;EACC;EACA;EACA;EACA;EACA;;AAED;EACC;EACA;EACA;EACA;EACA;EACA,OA3HY;EA4HZ;EACA;;AACA;EACC,kBAtHgB;;;AA0HnB;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;EACA;;;AAGA;EACC;;AAED;EACC;;;AAGF;EACC;EACA;EACA;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;;;AAED;EACC,kBA/Ka;EAgLb;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC,kBAjLc;EAkLd,OAzLW;EA0LX;;AAED;EACC,kBAtLc;EAuLd,OA9LW;EA+LX;;AAED;EACC;EACA;;;AAGF;EACC,kBAxMa;EAyMb;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAED;EACC;;;AAED;EACC;EACA;;;AAED;EACC,OAtNY;EAuNZ;EACA;;;AAED;EACC;;;AAGA;EACC;EACA;;;AAID;EACC;;;AAGF;EACC;;;AAED;EACC;;;AAED;EACC,kBAlPY;EAmPZ;EACA;EACA;EACA;;;AAED;EACC;;AACA;EACC;EACA;EACA;;;AAGF;EACC;;;AAED;EACC;EACA;;AACA;EACC;EACA;;;AAID;EACC;EACA;EACA,OAhRY;;AAkRb;EACC;;;AAGF;EACC;EACA;EACA;EACA;;;AAED;EACC;EACA;EACA;;AAEC;EACC;EACA;EACA;EACA;EACA;EACA;;;AAIH;EACC;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAED;EACC,OAxTa;;;AA0Td;EACC,OA1Te;;;AA4ThB;EACC;EACA;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;;;AAED;EACC,OA5VY;EA6VZ;EACA;EACA;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;;;AAED;EACC;EACA;;AACA;EACC;;AAED;EACC;EACA;;AACA;EACC;;AAGF;EACC,OA3XW;;;AA8Xb;EACC,aA5XkB;;;AA8XnB;EACC;;;AAED;EACC;;;AAED;EACC;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EASC;EACA;EACA;;AAVA;EACC;EACA;;AAED;EACC;EACA;;AAMA;EACC;;AAIH;EACC;EACA;EACA;;AAED;EACC;EACA;EACA;;AAED;EACC,kBAzcW;EA0cX;;AACA;EACC,OAxcW;;AA2cb;EACC;EACA,OA9cW;EA+cX;;;AAGF;EACC,kBAvda;EAwdb;EACA;EACA;EACA;;;AAIC;EACC;;AAGF;EACC;EACA;;AAED;EACC;;;AAGF;EACC;;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACC,aAlfkB;EAmflB;EACA;EACA;;;AAGA;EACC;EACA;EACA;;AAED;EACC;EACA;;AAED;EACC;;AACA;EACC;EACA;;AAGF;EACC;;AAED;EACC;EACA;EACA;;AAED;EACC;EACA;EACA;;;AAGF;EACC;EACA;EACA,OAhiBa;EAiiBb;EACA;EACA;EACA;;AACA;EACC;;;AAGF;EACC;;;AAED;EACC,aAtiBkB;EAuiBlB;EACA;;;AAED;EACC;EACA;;AACA;EACC;;;AAGF;EACC;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;;AAED;EACC;;AAED;EACC;;;AAIH;EACC;EACA;EACA;EACA;;;AAED;EACC;EACA,OAlmBa;EAmmBb,kBA3lBe;EA4lBf;EACA;EACA;;AACA;EACC,kBA/lBiB;;;AAkmBnB;EACC;EACA;EACA;EACA;;AACA;EACC;EACA;;;AAGF;EACC;EACA;EACA;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;;AACA;EACC;EACA;;;AAGF;EACC;IACC;;EAED;IACC;IACA","file":"index.css"} \ No newline at end of file diff --git a/server/static/include/css/index.scss b/server/static/include/css/index.scss new file mode 100644 index 0000000..7fed3df --- /dev/null +++ b/server/static/include/css/index.scss @@ -0,0 +1,657 @@ +@import "/include/css/reset.css"; + +$color_white: #fff; +$color_pale: #e9f5ff; +$color_error: #b55; +$color_warning: #a83; +$color_gray: #888; +$color_black: #000; +$font-family_sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; +$font-family_mono: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +$color_primary: #1c6da6; +$color_background: #0b1f61; + +@keyframes blink-animation { + to { + visibility: hidden; + } +} +@-webkit-keyframes blink-animation { + to { + visibility: hidden; + } +} +@keyframes blink-animation-2 { + to { + opacity: 50%; + } +} +@-webkit-keyframes blink-animation-2 { + to { + opacity: 50%; + } +} +@keyframes lds-ring { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +/*# sourceMappingURL=index.css.map */ +.blink { + animation: blink-animation 0.5s steps(5, start) infinite; + -webkit-animation: blink-animation 0.5s steps(5, start) infinite; + filter: drop-shadow(0px 1px 1px #6eff3a); +} +.Node2 { + .blink { + animation-delay: 900ms; + animation: blink-animation 1s steps(5, start) infinite; + -webkit-animation: blink-animation 1s steps(5, start) infinite; + } +} +.Node4 { + .blink { + animation-delay: 300ms; + animation: blink-animation-2 0.3s steps(5, start) infinite; + -webkit-animation: blink-animation-2 0.3s steps(5, start) infinite; + } +} +.orange { + filter: drop-shadow(0px 1px 1px #ffec559c); +} +body { + font-family: $font-family_sans; + font-size: 16px; + line-height: 1.45; + margin: 0; +} +header { + background-color: $color_primary; + .container { + max-width: 1140px; + display: flex; + justify-content: flex-end; + align-items: center; + margin: 0 auto; + flex-wrap: wrap; + } + .logo { + margin-right: auto; + color: $color_white; + padding: 20px 50px; + margin-left: 20px; + span { + display: inline-block; + } + .logo-img { + img { + width: 50px; + } + } + .logo-text { + color: $color_white; + bottom: 0.2rem; + left: 0.4rem; + position: relative; + font-size: 1.8rem; + font-weight: 600; + line-height: 1; + } + } + nav { + align-self: end; + margin-right: 20px; + } + ul { + display: flex; + flex-wrap: nowrap; + text-align: center; + } + li { + flex: 1 1 0; + list-style-type: none; + display: inline-block; + box-sizing: border-box; + vertical-align: bottom; + } + a { + display: flex; + flex: 1 1 0; + flex-wrap: nowrap; + text-decoration: none; + font-weight: 600; + color: $color_white; + transition: all 0.3s ease 0s; + padding: 1em 1.75em; + &:hover { + background-color: $color_background; + } + } +} +main { + padding: 1rem 1rem; +} +.row-outer { + width: 100%; +} +.row-outer.anonymous { + display: block; +} +.col-main { + flex: 1 1 auto; + padding: 1rem; +} +.anonymous { + .col-main { + padding-bottom: 0; + } + .col-tools { + width: auto; + } +} +.col-tools { + flex: 1 0 25rem; + padding: 1rem; + width: 25rem; +} +a { + text-decoration: none; +} +input[type=submit] { + text-decoration: none; +} +button { + text-decoration: none; + font-size: inherit; +} +.back-link { + display: inline-block; + margin-bottom: 0.5em; +} +.form-group { + margin-bottom: 0.5rem; +} +.tool-button { + background-color: $color_white; + border: 1px solid #58a; + border-radius: 3px; + box-shadow: 0 2px 3px rgba(0, 0, 0, 0.15); + box-sizing: border-box; + display: inline-block; + line-height: 1.4; + margin: 0.2rem 0; + padding: 0.3rem 0.6rem; + &:hover { + background-color: $color_primary; + color: $color_pale; + text-decoration: none; + } + &:focus { + background-color: $color_primary; + color: $color_pale; + text-decoration: none; + } + .left { + font-size: 90%; + margin-right: 0.4rem; + } +} +.tool-input { + background-color: $color_white; + border: 1px solid #58a; + border-radius: 3px; + box-shadow: 0 2px 3px rgba(0, 0, 0, 0.15); + box-sizing: border-box; + display: inline-block; + line-height: 1.4; + margin: 0.2rem 0; + padding: 0.1rem 0 0.2rem 0.4rem; +} +select.tool-input { + padding-right: 0.4rem; +} +.wallet-seed { + max-width: 25em; + width: 100%; +} +.tool-label { + color: $color_gray; + display: block; + font-size: 90%; +} +.tool-label.inline { + display: inline; +} +a.tool { + .left { + font-size: 90%; + margin-right: 0.4rem; + } +} +form { + input[type=text] { + min-width: 250px; + } +} +small { + font-size: 85%; +} +.small { + font-size: 85%; +} +.tag { + background-color: $color_pale; + border: 1px solid #f9b714; + border-radius: 0.3em; + display: inline-block; + padding: 0.25em; +} +h2 { + font-weight: 500; + .fa { + font-size: 85%; + opacity: 0.9; + vertical-align: 2px; + } +} +.panel { + overflow: hidden; +} +.panel-heading { + overflow: hidden; + padding: 0.25rem 0.7rem; + h2 { + padding: 0; + margin: 0; + } +} +.panel-default { + .panel-heading { + background: #1c6da6; + border-bottom: 1px solid #eee; + color: $color_white; + } + >.panel-heading { + border-radius: 0.5rem 0.5rem 0 0; + } +} +.panel-info { + background: #f0f3ff; + border: 1px solid #89a; + border-radius: 0.5rem; + box-shadow: 0 4px 3px 3px rgba(0, 0, 0, 0.02); +} +.panel-side { + border: 2px solid #f0ecec; + border-radius: 0.5rem; + box-shadow: 0 4px 3px 3px rgba(0, 0, 0, 0.02); + .panel-heading { + &::after { + background: #fdfdfd; + border-bottom: 1px solid #ebe6e6; + border-radius: 3px; + content: " "; + display: block; + height: 3px; + } + } +} +.top-label { + font-size: 95%; + font-weight: 600; + line-height: 1.6; +} +.tool-tag { + border-radius: 2px; + display: inline-block; + font-size: 0.75rem; + font-weight: 600; + margin-left: 1rem; + padding: 1.5px 4px; + vertical-align: 0.1rem; +} +.error { + color: $color_error; +} +.warning { + color: $color_warning; +} +.panel-node { + display: flex; + justify-content: center; + width: 100%; + flex-flow: row wrap; +} +.node-status { + display: inline-block; + flex-direction: row; + display: flex; + flex: 0 1 500px; + margin: 0.8rem; + padding: 0.8rem; + height: 300px; + align-items: stretch; + box-shadow: 0 0 3px rgba(0, 0, 0, 0.2); +} +.node-status-left { + flex: 0 1 50%; + display: flex; + overflow: hidden; + position: relative; + padding: 0 0.8rem; +} +.node-name { + font-size: 15px; + position: absolute; + text-align: center; + top: 34px; + width: 100%; + z-index: 2; +} +.nodeval-name { + color: $color_gray; + display: block; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.node-indicator { + margin: auto; + max-width: 100px; +} +.node-status-right { + flex: 1 1 auto; + overflow: hidden; + word-wrap: break-word; + align-self: center; + padding: 0 0.8rem; +} +.props { + font-size: 80%; + margin: 0; + dt { + display: none; + } + dd { + margin: 0.4rem 0; + padding: 0.4rem 0.2rem; + &:not(:last-child) { + border-bottom: 1px dashed rgba(0, 0, 0, 0.2); + } + } + .label { + color: $color_gray; + } +} +.nodeval-did { + font-family: $font-family_mono; +} +.ledger-txns { + word-break: break-word; +} +.ledger-loading { + float: right; +} +.ledger-nav { + display: flex; + flex-flow: row wrap; +} +.nav-label { + display: inline-block; + opacity: 0.7; + font-weight: 600; + font-size: 90%; + min-width: 6em; +} +.count { + padding-left: 2em; +} +.nav-left { + flex: 1 0 auto; +} +.nav-right { + flex: 0 0 40%; + white-space: nowrap; +} +.clear-filter { + cursor: pointer; + margin-left: 6em; +} +.pagination { + border-radius: 4px; + display: inline-flex; + justify-content: flex-end; + list-style-type: none; + margin: 0.5em 0; + overflow: hidden; + padding: 0; + text-align: center; + .page-item { + &:first-child { + border-bottom-left-radius: 4px; + border-top-left-radius: 4px; + } + &:last-child { + border-bottom-right-radius: 4px; + border-top-right-radius: 4px; + } + border: 1px solid #9bf; + display: block; + z-index: 1; + + { + .page-item { + margin-left: -1px; + } + } + } + .page-link { + display: block; + min-width: 1.5em; + padding: 0.25em 0.8em; + } + .page-text { + cursor: default; + display: block; + padding: 0.25em 0.4em; + } + .page-item.active { + background-color: $color_pale; + font-weight: bold; + .page-link { + color: $color_black; + } + } + .page-item.disabled { + border-color: #aaa; + color: $color_gray; + z-index: 0; + } +} +.ledger-data { + background-color: $color_white; + border: 1px solid #9bd; + border-spacing: 0; + margin-top: 1em; + width: 100%; +} +.ledger-row { + &:not(:last-child) { + td { + border-bottom: 1px solid #9bd; + } + } + td { + padding: 0.8em 0.5em; + vertical-align: top; + } + &:nth-child(even) { + background: #e9f0fe; + } +} +.ledger-index { + width: 10%; + .number { + border: 1px transparent; + border-radius: 4px; + box-sizing: border-box; + display: block; + font-size: 90%; + padding: 0 0.5em; + text-align: right; + width: 100%; + } +} +.raw-data { + font-family: $font-family_mono; + font-size: 70%; + white-space: pre-wrap; + word-break: break-word; +} +.ledger-entry { + label { + opacity: 0.7; + font-weight: 600; + font-size: 90%; + } + .line { + padding-left: 2em; + text-indent: -1em; + } + .block { + padding-left: 2em; + label { + display: block; + text-indent: -1em; + } + } + .misc { + font-size: 90%; + } + dl { + margin-bottom: 0; + margin-top: 0; + padding-top: 0; + } + ul { + margin-top: 0; + padding-top: 0; + text-indent: 0; + } +} +.ledger-entry-title { + background: #9bd; + border-radius: 4px; + color: $color_white; + font-size: 75%; + font-weight: bold; + margin-bottom: 0.25em; + padding: 1px 4px 2px; + &:not(:first-child) { + margin-top: 0.5em; + } +} +.ledger-entry-title.active { + cursor: pointer; +} +.ident { + font-family: $font-family_mono; + font-size: 80%; + font-variant-numeric: lining-nums tabular-nums; +} +.register-result { + padding-top: 20px; + word-wrap: break-word; + code { + font-size: 85%; + } +} +.register-error { + padding-top: 20px; + word-wrap: break-word; +} +.lds-ring { + box-sizing: border-box; + display: block; + position: relative; + width: 80px; + height: 80px; + margin: 0 auto; + div { + box-sizing: border-box; + box-sizing: border-box; + display: block; + position: absolute; + width: 64px; + height: 64px; + margin: 8px; + border: 8px solid currentColor; + border-radius: 50%; + animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite; + border-color: currentColor transparent transparent transparent; + &:nth-child(1) { + animation-delay: -0.45s; + } + &:nth-child(2) { + animation-delay: -0.3s; + } + &:nth-child(3) { + animation-delay: -0.15s; + } + } +} +.button { + margin-top: 2rem; + margin-bottom: 2rem; + overflow: visible; + display: block; +} +.button-link { + padding: 1rem 2rem; + color: $color_white; + background-color: $color_primary; + text-transform: uppercase; + display: inline-block; + text-wrap: nowrap; + &:hover { + background-color: $color_background; + } +} +.detail-hero { + margin-top: 2rem; + display: flex; + justify-content: center; + flex-wrap: wrap; + >div { + margin: 0rem 2rem; + flex: 0 0 25%; + } +} +.detail-hero-left { + display: flex; + justify-content: center; + align-items: start; + flex-direction: column; + padding: 0 2rem; +} +.detail-hero-right { + display: flex; + justify-content: center; + align-items: center; + padding: 0 2rem; + img { + flex: 1; + max-width: 500px; + } +} +@media screen and (max-width: 900px) { + .row-outer { + display: block; + } + .col-tools { + padding-top: 0; + width: auto; + } +} diff --git a/server/static/include/css/reset.css b/server/static/include/css/reset.css new file mode 100644 index 0000000..322b919 --- /dev/null +++ b/server/static/include/css/reset.css @@ -0,0 +1,130 @@ +html, +body, +div, +span, +applet, +object, +iframe, +h1, +h2, +h3, +h4, +h5, +h6, +p, +blockquote, +pre, +a, +abbr, +acronym, +address, +big, +cite, +code, +del, +dfn, +em, +img, +ins, +kbd, +q, +s, +samp, +small, +strike, +strong, +sub, +sup, +tt, +var, +b, +u, +i, +center, +dl, +dt, +dd, +ol, +ul, +li, +fieldset, +form, +label, +legend, +table, +caption, +tbody, +tfoot, +thead, +tr, +th, +td, +article, +aside, +canvas, +details, +embed, +figure, +figcaption, +footer, +header, +hgroup, +menu, +nav, +output, +ruby, +section, +summary, +time, +mark, +audio, +video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} + +/* HTML5 display-role reset for older browsers */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +menu, +nav, +section { + display: block; +} + +body { + line-height: 1; +} + +ol, +ul { + list-style: none; +} + +blockquote, +q { + quotes: none; +} + +blockquote:before, +blockquote:after, +q:before, +q:after { + content: ''; + content: none; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/server/static/include/img/ledger.png b/server/static/include/img/ledger.png new file mode 100644 index 0000000000000000000000000000000000000000..1acf79c213c843adfa1da34f55ac0ad42cf50408 GIT binary patch literal 5730 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 UR#p|(XaE2J07*qoM6N<$f`bF~<^TWy literal 0 HcmV?d00001 diff --git a/server/static/include/img/v2v.webp b/server/static/include/img/v2v.webp new file mode 100644 index 0000000000000000000000000000000000000000..2c71b20cc3d4ecac6935db652ae56689dc418190 GIT binary patch literal 95544 zcmV)(K#RXpNk&F6bpZfZMM6+kP&gnYbpZg-?*yFzDgXok1U`{OoJysmrYWYi+Bq;1 z31e=S=3}pKa(x}1A2kXiC*SP;vwTnLgZ;kKOy}q!O+TVP|MY}eeDMvwvzM7_N1|0L zJNXNCm;XT>tB~zK>i?$n@8o|6eqs3U+TY`TX}`JR=fQvB^Ktd>>Ad8B;PsvQx7cU( zv-T7Hm$z5458e-0AG=IOr+v77@A&`pzXAWV{i^Y&<*)pI z>A%$bgnn!NL;aWd56RD)|G@pB|8wET!GEs*(f+5{FWn!z|Ka~7{+HdW?mzbbsP%98 z5A`4Uf5?0Re|P=g^3naZ^27ZH{4d&{fM4hT-~aOeo&3o9i~l44-}|4=zjXhv|ET@1 z_!0h#{rmqf`A_wJ`~Uv`>ij+Z(Es=U7vf|01OMOqlDtyN=V`2k&(Rr0f6rHxSC9j; zHc?FrX*#H{^~{nX-!I6!xaxXS_ea@BTrBZx4a;3_fnFcyqPP*MIUE@@4FDDd%?# zQzl@bmglK~Cx$}QvtbRBT-9kj8|{e+#SZQ16Q?SD1g=#2_YKG}9euKn$01ku2xzEH zB(m2hOPbKK4BO1tfAS1FlFxL5HuE*#{DVv>+)#7Dy`0NwZ4>PNFpzC+kVgM5FFt{X z$@&il+Z`bc-jUL)PRi5{l(t+69mwz=qdr6VMSv|6JkXg*isxldyfqxhJN_P!C!eKY zGxZt10zfWykYQWHov-@5&3FGmC8F3(o(iDyX&Ge8^NH>3k~!RiB-ON`(jXfC$(lAH z+PWW<7CABWG(-SXwGbYH1L?po8Z4>@RNpw6I#+(^FDkFRg{#l3xEopx6I(i2b(`0_ zws?|IWW%4dGgBq6AQycw@41YJwanLg)!iXiZf>i1bGBre14SOCF8UcY-vFb#!A1pl zNhXy^4}%CI@fth=C{E@zw^8H#;!BH9A*^3xeF{?q>^-4C_UhUIFpogMikWk2>M0Vw zzK^Zno|{hdW{>NE3l*u$ZoWVAzCb{avKpr)s`_wvH4!JPJz($w#(1tVBltjNb;TSr z`j}|u7sa4C=6wiFTVD)4kYQWHo!?|t0A1$n-5)R-4t#Y-D>CJN7op(SVN31%bE2RV z(-)NrcN%2jj6PRLevU;TQW3qIQ%Ho?W=fTS%lVAWjV5+3M_+d7gu$! zAI_%tynQs@+YBu)aba(c(&FBGZOp{G?smDF@BpBEg9>IpTzTpySW=c&${;|h$j+PU zTtgT9HlFs9mx?|Uw%AgKJ_NsK|H7a~)Psj)Z+9(EgOPzEDG*mLAx3qjf&3}tcYAV- z;H?Cl%DZgCo%h&a4HoL94+rAysRl+lNl=P+OSb49RmAx&%7c0zi z%ycN7qu>6MQfZooA5giP^FiQNl9z$q>2#O*Kx}Vqde?J)WRLA<--%*IX>-U!w8L;1 z25IEr7X)d7EAmy#w}s+mDgoYI{@*aWu*_cP1)wpT5@tZ(%O?YUUND>8Wbgjn2$5J! zW|27%#&qT19qKRK#C>O=Mlr2q3rn<>x-_l4>m z4-l2%fUc1KMHZyiyh*EE8S1!k@lMsGspOB9dOmy0T4EBgz*fUGZ9-5W5&dsCQ#q&n zZ7I?9{xTlvs;_ZGRz=;|Mbs~L0W=Yy9!C7z{9M}sXI10f;PUpi-7qirCL;teh1D( z14f6Q{=DU9u2A>0i$EtPS)0swgK?*yEw$dq9<+{pa9R{Z>~8@WKmVfV{i4y5J<fv$ zE~8-N_yEa!1cgB*p}on8lxz*0Tr^bCx_M$z&b>`sfI#ZJ@*JrGlo6KOB+ z)*SDL@-D+mTK>fn3dW7Qi^h8vwN;-rCQ}7keH}wY%mG<4T}i9584^Sz@l# z;u2(w^Z;BsGK4)WM7hL`_kz(H>LRXqb$(!D≥0oA%+g(Ab`=3>IiEAd1WU&K8+l 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 z_9eu8KmY=QKmY&$0000000000000000002@zzW + + {{ LEDGER_INSTANCE_NAME }} Blockchain Ledger - - + - + {% include 'analytics.html' %} + {% include 'header.html' %} @@ -26,6 +26,7 @@ {% raw %}

+ + + @@ -240,5 +302,5 @@

Identity successfully registered:

- + \ No newline at end of file diff --git a/server/static/ledger.html b/server/static/ledger.html index b39ad25..4f217e0 100644 --- a/server/static/ledger.html +++ b/server/static/ledger.html @@ -11,7 +11,7 @@ - + {% include 'analytics.html' %} From 13f7058ab961774711dcf562ee8ee9b09cec4072 Mon Sep 17 00:00:00 2001 From: Usman Khwaja Date: Sat, 1 Jun 2024 12:22:10 -0400 Subject: [PATCH 02/46] imrpoved blink animation --- server/static/include/css/index.css | 40 ++++-- server/static/include/css/index.css.map | 2 +- server/static/include/css/index.scss | 155 ++++++++++++++++++++++-- server/static/index.html | 10 +- server/static/ledger.html | 13 +- 5 files changed, 188 insertions(+), 32 deletions(-) diff --git a/server/static/include/css/index.css b/server/static/include/css/index.css index f2e64c2..90a42b2 100644 --- a/server/static/include/css/index.css +++ b/server/static/include/css/index.css @@ -29,21 +29,45 @@ } .blink { - animation: blink-animation 0.5s steps(5, start) infinite; -webkit-animation: blink-animation 0.5s steps(5, start) infinite; + animation: blink-animation 0.5s steps(5, start) infinite; filter: drop-shadow(0px 1px 1px #6eff3a); } -.Node2 .blink { - animation-delay: 900ms; - animation: blink-animation 1s steps(5, start) infinite; - -webkit-animation: blink-animation 1s steps(5, start) infinite; +.node-status:nth-child(odd) .blink { + -webkit-animation: blink-animation-2 0.3s steps(5, start) infinite; + animation: blink-animation-2 0.3s steps(5, start) infinite; } -.Node4 .blink { +.panel-node .node-status:nth-child(1) .blink { animation-delay: 300ms; - animation: blink-animation-2 0.3s steps(5, start) infinite; - -webkit-animation: blink-animation-2 0.3s steps(5, start) infinite; +} +.panel-node .node-status:nth-child(2) .blink { + animation-delay: 600ms; +} +.panel-node .node-status:nth-child(3) .blink { + animation-delay: 900ms; +} +.panel-node .node-status:nth-child(4) .blink { + animation-delay: 1200ms; +} +.panel-node .node-status:nth-child(5) .blink { + animation-delay: 1500ms; +} +.panel-node .node-status:nth-child(6) .blink { + animation-delay: 1800ms; +} +.panel-node .node-status:nth-child(7) .blink { + animation-delay: 2100ms; +} +.panel-node .node-status:nth-child(8) .blink { + animation-delay: 2400ms; +} +.panel-node .node-status:nth-child(9) .blink { + animation-delay: 2700ms; +} +.panel-node .node-status:nth-child(10) .blink { + animation-delay: 3000ms; } .orange { diff --git a/server/static/include/css/index.css.map b/server/static/include/css/index.css.map index fa131a0..86b62ed 100644 --- a/server/static/include/css/index.css.map +++ b/server/static/include/css/index.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["index.scss"],"names":[],"mappings":"AAAQ;AAaR;EACC;IACC;;;AAGF;EACC;IACC;;;AAGF;EACC;IACC;;;AAGF;EACC;IACC;;;AAGF;EACC;IACC;;EAED;IACC;;;;AAIF;EACC;EACA;EACA;;;AAGA;EACC;EACA;EACA;;;AAID;EACC;EACA;EACA;;;AAGF;EACC;;;AAED;EACC,aAzDkB;EA0DlB;EACA;EACA;;;AAED;EACC,kBA7De;;AA8Df;EACC;EACA;EACA;EACA;EACA;EACA;;AAED;EACC;EACA,OAhFY;EAiFZ;EACA;;AACA;EACC;;AAGA;EACC;;AAGF;EACC,OA5FW;EA6FX;EACA;EACA;EACA;EACA;EACA;;AAGF;EACC;EACA;;AAED;EACC;EACA;EACA;;AAED;EACC;EACA;EACA;EACA;EACA;;AAED;EACC;EACA;EACA;EACA;EACA;EACA,OA3HY;EA4HZ;EACA;;AACA;EACC,kBAtHgB;;;AA0HnB;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;EACA;;;AAGA;EACC;;AAED;EACC;;;AAGF;EACC;EACA;EACA;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;;;AAED;EACC,kBA/Ka;EAgLb;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC,kBAjLc;EAkLd,OAzLW;EA0LX;;AAED;EACC,kBAtLc;EAuLd,OA9LW;EA+LX;;AAED;EACC;EACA;;;AAGF;EACC,kBAxMa;EAyMb;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAED;EACC;;;AAED;EACC;EACA;;;AAED;EACC,OAtNY;EAuNZ;EACA;;;AAED;EACC;;;AAGA;EACC;EACA;;;AAID;EACC;;;AAGF;EACC;;;AAED;EACC;;;AAED;EACC,kBAlPY;EAmPZ;EACA;EACA;EACA;;;AAED;EACC;;AACA;EACC;EACA;EACA;;;AAGF;EACC;;;AAED;EACC;EACA;;AACA;EACC;EACA;;;AAID;EACC;EACA;EACA,OAhRY;;AAkRb;EACC;;;AAGF;EACC;EACA;EACA;EACA;;;AAED;EACC;EACA;EACA;;AAEC;EACC;EACA;EACA;EACA;EACA;EACA;;;AAIH;EACC;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAED;EACC,OAxTa;;;AA0Td;EACC,OA1Te;;;AA4ThB;EACC;EACA;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;;;AAED;EACC,OA5VY;EA6VZ;EACA;EACA;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;;;AAED;EACC;EACA;;AACA;EACC;;AAED;EACC;EACA;;AACA;EACC;;AAGF;EACC,OA3XW;;;AA8Xb;EACC,aA5XkB;;;AA8XnB;EACC;;;AAED;EACC;;;AAED;EACC;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;EACA;;;AAED;EACC;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EASC;EACA;EACA;;AAVA;EACC;EACA;;AAED;EACC;EACA;;AAMA;EACC;;AAIH;EACC;EACA;EACA;;AAED;EACC;EACA;EACA;;AAED;EACC,kBAzcW;EA0cX;;AACA;EACC,OAxcW;;AA2cb;EACC;EACA,OA9cW;EA+cX;;;AAGF;EACC,kBAvda;EAwdb;EACA;EACA;EACA;;;AAIC;EACC;;AAGF;EACC;EACA;;AAED;EACC;;;AAGF;EACC;;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACC,aAlfkB;EAmflB;EACA;EACA;;;AAGA;EACC;EACA;EACA;;AAED;EACC;EACA;;AAED;EACC;;AACA;EACC;EACA;;AAGF;EACC;;AAED;EACC;EACA;EACA;;AAED;EACC;EACA;EACA;;;AAGF;EACC;EACA;EACA,OAhiBa;EAiiBb;EACA;EACA;EACA;;AACA;EACC;;;AAGF;EACC;;;AAED;EACC,aAtiBkB;EAuiBlB;EACA;;;AAED;EACC;EACA;;AACA;EACC;;;AAGF;EACC;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AACA;EACC;;AAED;EACC;;AAED;EACC;;;AAIH;EACC;EACA;EACA;EACA;;;AAED;EACC;EACA,OAlmBa;EAmmBb,kBA3lBe;EA4lBf;EACA;EACA;;AACA;EACC,kBA/lBiB;;;AAkmBnB;EACC;EACA;EACA;EACA;;AACA;EACC;EACA;;;AAGF;EACC;EACA;EACA;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;;AACA;EACC;EACA;;;AAGF;EACC;IACC;;EAED;IACC;IACA","file":"index.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["index.scss"],"names":[],"mappings":"AAEQ;AAaR;EACC;IACC;;;AAIF;EACC;IACC;;;AAIF;EACC;IACC;;;AAIF;EACC;IACC;;;AAIF;EACC;IACC;;EAGD;IACC;;;;AAKF;EACC;EACA;EACA;;;AAIA;EACC;EACA;;;AAOC;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;AADD;EACC;;;AAMJ;EACC;;;AAGD;EACC,aApEkB;EAqElB;EACA;EACA;;;AAGD;EACC,kBAzEe;;AA2Ef;EACC;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA,OA9FY;EA+FZ;EACA;;AAEA;EACC;;AAIA;EACC;;AAIF;EACC,OA7GW;EA8GX;EACA;EACA;EACA;EACA;EACA;;AAIF;EACC;EACA;;AAGD;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA,OAhJY;EAiJZ;EACA;;AAEA;EACC,kBA5IgB;;;AAiJnB;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAIA;EACC;;AAGD;EACC;;;AAIF;EACC;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC,kBAlNa;EAmNb;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC,kBArNc;EAsNd,OA7NW;EA8NX;;AAGD;EACC,kBA3Nc;EA4Nd,OAnOW;EAoOX;;AAGD;EACC;EACA;;;AAIF;EACC,kBA/Oa;EAgPb;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC,OAhQY;EAiQZ;EACA;;;AAGD;EACC;;;AAIA;EACC;EACA;;;AAKD;EACC;;;AAIF;EACC;;;AAGD;EACC;;;AAGD;EACC,kBAlSY;EAmSZ;EACA;EACA;EACA;;;AAGD;EACC;;AAEA;EACC;EACA;EACA;;;AAIF;EACC;;;AAGD;EACC;EACA;;AAEA;EACC;EACA;;;AAKD;EACC;EACA;EACA,OAtUY;;AAyUb;EACC;;;AAIF;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;AAGC;EACC;EACA;EACA;EACA;EACA;EACA;;;AAKH;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC,OArXa;;;AAwXd;EACC,OAxXe;;;AA2XhB;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC,OA/ZY;EAgaZ;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;AAEA;EACC;;AAGD;EACC;EACA;;AAEA;EACC;;AAIF;EACC,OArcW;;;AAycb;EACC,aAvckB;;;AA0cnB;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAWC;EACA;EACA;;AAZA;EACC;EACA;;AAGD;EACC;EACA;;AAQA;EACC;;AAKH;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAGD;EACC,kBApiBW;EAqiBX;;AAEA;EACC,OApiBW;;AAwiBb;EACC;EACA,OA3iBW;EA4iBX;;;AAIF;EACC,kBArjBa;EAsjBb;EACA;EACA;EACA;;;AAKC;EACC;;AAIF;EACC;EACA;;AAGD;EACC;;;AAIF;EACC;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIF;EACC,aAtlBkB;EAulBlB;EACA;EACA;;;AAIA;EACC;EACA;EACA;;AAGD;EACC;EACA;;AAGD;EACC;;AAEA;EACC;EACA;;AAIF;EACC;;AAGD;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;;AAIF;EACC;EACA;EACA,OA5oBa;EA6oBb;EACA;EACA;EACA;;AAEA;EACC;;;AAIF;EACC;;;AAGD;EACC,aArpBkB;EAspBlB;EACA;;;AAGD;EACC;EACA;;AAEA;EACC;;;AAIF;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAKH;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA,OA3tBa;EA4tBb,kBAptBe;EAqtBf;EACA;EACA;;AAEA;EACC,kBAztBiB;;;AA6tBnB;EACC;EACA;EACA;EACA;;AAEA;EACC;EACA;;;AAIF;EACC;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;AAEA;EACC;EACA;;;AAIF;EACC;IACC;;EAGD;IACC;IACA","file":"index.css"} \ No newline at end of file diff --git a/server/static/include/css/index.scss b/server/static/include/css/index.scss index 7fed3df..54c51cd 100644 --- a/server/static/include/css/index.scss +++ b/server/static/include/css/index.scss @@ -1,3 +1,5 @@ +// sass --watch server/static/include/css/index.scss server/static/include/css/index.css + @import "/include/css/reset.css"; $color_white: #fff; @@ -13,63 +15,76 @@ $color_background: #0b1f61; @keyframes blink-animation { to { - visibility: hidden; + visibility: hidden; } } + @-webkit-keyframes blink-animation { to { visibility: hidden; } } + @keyframes blink-animation-2 { to { opacity: 50%; } } + @-webkit-keyframes blink-animation-2 { to { opacity: 50%; } } + @keyframes lds-ring { 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } } + /*# sourceMappingURL=index.css.map */ .blink { - animation: blink-animation 0.5s steps(5, start) infinite; -webkit-animation: blink-animation 0.5s steps(5, start) infinite; + animation: blink-animation 0.5s steps(5, start) infinite; filter: drop-shadow(0px 1px 1px #6eff3a); } -.Node2 { + +.node-status:nth-child(odd) { .blink { - animation-delay: 900ms; - animation: blink-animation 1s steps(5, start) infinite; - -webkit-animation: blink-animation 1s steps(5, start) infinite; + -webkit-animation: blink-animation-2 0.3s steps(5, start) infinite; + animation: blink-animation-2 0.3s steps(5, start) infinite; } } -.Node4 { - .blink { - animation-delay: 300ms; - animation: blink-animation-2 0.3s steps(5, start) infinite; - -webkit-animation: blink-animation-2 0.3s steps(5, start) infinite; + +.panel-node { + @for $i from 1 through 10 { + .node-status:nth-child(#{$i}) { + .blink { + animation-delay: #{$i * 300}ms; + } + } } } + .orange { filter: drop-shadow(0px 1px 1px #ffec559c); } + body { font-family: $font-family_sans; font-size: 16px; line-height: 1.45; margin: 0; } + header { background-color: $color_primary; + .container { max-width: 1140px; display: flex; @@ -78,19 +93,23 @@ header { margin: 0 auto; flex-wrap: wrap; } + .logo { margin-right: auto; color: $color_white; padding: 20px 50px; margin-left: 20px; + span { display: inline-block; } + .logo-img { img { width: 50px; } } + .logo-text { color: $color_white; bottom: 0.2rem; @@ -101,15 +120,18 @@ header { line-height: 1; } } + nav { align-self: end; margin-right: 20px; } + ul { display: flex; flex-wrap: nowrap; text-align: center; } + li { flex: 1 1 0; list-style-type: none; @@ -117,6 +139,7 @@ header { box-sizing: border-box; vertical-align: bottom; } + a { display: flex; flex: 1 1 0; @@ -126,54 +149,68 @@ header { color: $color_white; transition: all 0.3s ease 0s; padding: 1em 1.75em; + &:hover { background-color: $color_background; } } } + main { padding: 1rem 1rem; } + .row-outer { width: 100%; } + .row-outer.anonymous { display: block; } + .col-main { flex: 1 1 auto; padding: 1rem; } + .anonymous { .col-main { padding-bottom: 0; } + .col-tools { width: auto; } } + .col-tools { flex: 1 0 25rem; padding: 1rem; width: 25rem; } + a { text-decoration: none; } + input[type=submit] { text-decoration: none; } + button { text-decoration: none; font-size: inherit; } + .back-link { display: inline-block; margin-bottom: 0.5em; } + .form-group { margin-bottom: 0.5rem; } + .tool-button { background-color: $color_white; border: 1px solid #58a; @@ -184,21 +221,25 @@ button { line-height: 1.4; margin: 0.2rem 0; padding: 0.3rem 0.6rem; + &:hover { background-color: $color_primary; color: $color_pale; text-decoration: none; } + &:focus { background-color: $color_primary; color: $color_pale; text-decoration: none; } + .left { font-size: 90%; margin-right: 0.4rem; } } + .tool-input { background-color: $color_white; border: 1px solid #58a; @@ -210,38 +251,47 @@ button { margin: 0.2rem 0; padding: 0.1rem 0 0.2rem 0.4rem; } + select.tool-input { padding-right: 0.4rem; } + .wallet-seed { max-width: 25em; width: 100%; } + .tool-label { color: $color_gray; display: block; font-size: 90%; } + .tool-label.inline { display: inline; } + a.tool { .left { font-size: 90%; margin-right: 0.4rem; } } + form { input[type=text] { min-width: 250px; } } + small { font-size: 85%; } + .small { font-size: 85%; } + .tag { background-color: $color_pale; border: 1px solid #f9b714; @@ -249,45 +299,55 @@ small { display: inline-block; padding: 0.25em; } + h2 { font-weight: 500; + .fa { font-size: 85%; opacity: 0.9; vertical-align: 2px; } } + .panel { overflow: hidden; } + .panel-heading { overflow: hidden; padding: 0.25rem 0.7rem; + h2 { padding: 0; margin: 0; } } + .panel-default { .panel-heading { background: #1c6da6; border-bottom: 1px solid #eee; color: $color_white; } + >.panel-heading { border-radius: 0.5rem 0.5rem 0 0; } } + .panel-info { background: #f0f3ff; border: 1px solid #89a; border-radius: 0.5rem; box-shadow: 0 4px 3px 3px rgba(0, 0, 0, 0.02); } + .panel-side { border: 2px solid #f0ecec; border-radius: 0.5rem; box-shadow: 0 4px 3px 3px rgba(0, 0, 0, 0.02); + .panel-heading { &::after { background: #fdfdfd; @@ -299,11 +359,13 @@ h2 { } } } + .top-label { font-size: 95%; font-weight: 600; line-height: 1.6; } + .tool-tag { border-radius: 2px; display: inline-block; @@ -313,18 +375,22 @@ h2 { padding: 1.5px 4px; vertical-align: 0.1rem; } + .error { color: $color_error; } + .warning { color: $color_warning; } + .panel-node { display: flex; justify-content: center; width: 100%; flex-flow: row wrap; } + .node-status { display: inline-block; flex-direction: row; @@ -336,6 +402,7 @@ h2 { align-items: stretch; box-shadow: 0 0 3px rgba(0, 0, 0, 0.2); } + .node-status-left { flex: 0 1 50%; display: flex; @@ -343,6 +410,7 @@ h2 { position: relative; padding: 0 0.8rem; } + .node-name { font-size: 15px; position: absolute; @@ -351,6 +419,7 @@ h2 { width: 100%; z-index: 2; } + .nodeval-name { color: $color_gray; display: block; @@ -358,10 +427,12 @@ h2 { text-overflow: ellipsis; white-space: nowrap; } + .node-indicator { margin: auto; max-width: 100px; } + .node-status-right { flex: 1 1 auto; overflow: hidden; @@ -369,36 +440,46 @@ h2 { align-self: center; padding: 0 0.8rem; } + .props { font-size: 80%; margin: 0; + dt { display: none; } + dd { margin: 0.4rem 0; padding: 0.4rem 0.2rem; + &:not(:last-child) { border-bottom: 1px dashed rgba(0, 0, 0, 0.2); } } + .label { color: $color_gray; } } + .nodeval-did { font-family: $font-family_mono; } + .ledger-txns { word-break: break-word; } + .ledger-loading { float: right; } + .ledger-nav { display: flex; flex-flow: row wrap; } + .nav-label { display: inline-block; opacity: 0.7; @@ -406,20 +487,25 @@ h2 { font-size: 90%; min-width: 6em; } + .count { padding-left: 2em; } + .nav-left { flex: 1 0 auto; } + .nav-right { flex: 0 0 40%; white-space: nowrap; } + .clear-filter { cursor: pointer; margin-left: 6em; } + .pagination { border-radius: 4px; display: inline-flex; @@ -429,47 +515,57 @@ h2 { overflow: hidden; padding: 0; text-align: center; + .page-item { &:first-child { border-bottom-left-radius: 4px; border-top-left-radius: 4px; } + &:last-child { border-bottom-right-radius: 4px; border-top-right-radius: 4px; } + border: 1px solid #9bf; display: block; z-index: 1; + + { .page-item { margin-left: -1px; } } } + .page-link { display: block; min-width: 1.5em; padding: 0.25em 0.8em; } + .page-text { cursor: default; display: block; padding: 0.25em 0.4em; } + .page-item.active { background-color: $color_pale; font-weight: bold; + .page-link { color: $color_black; } } + .page-item.disabled { border-color: #aaa; color: $color_gray; z-index: 0; } } + .ledger-data { background-color: $color_white; border: 1px solid #9bd; @@ -477,22 +573,27 @@ h2 { margin-top: 1em; width: 100%; } + .ledger-row { &:not(:last-child) { td { border-bottom: 1px solid #9bd; } } + td { padding: 0.8em 0.5em; vertical-align: top; } + &:nth-child(even) { background: #e9f0fe; } } + .ledger-index { width: 10%; + .number { border: 1px transparent; border-radius: 4px; @@ -504,43 +605,52 @@ h2 { width: 100%; } } + .raw-data { font-family: $font-family_mono; font-size: 70%; white-space: pre-wrap; word-break: break-word; } + .ledger-entry { label { opacity: 0.7; font-weight: 600; font-size: 90%; } + .line { padding-left: 2em; text-indent: -1em; } + .block { padding-left: 2em; + label { display: block; text-indent: -1em; } } + .misc { font-size: 90%; } + dl { margin-bottom: 0; margin-top: 0; padding-top: 0; } + ul { margin-top: 0; padding-top: 0; text-indent: 0; } } + .ledger-entry-title { background: #9bd; border-radius: 4px; @@ -549,29 +659,36 @@ h2 { font-weight: bold; margin-bottom: 0.25em; padding: 1px 4px 2px; + &:not(:first-child) { margin-top: 0.5em; } } + .ledger-entry-title.active { cursor: pointer; } + .ident { font-family: $font-family_mono; font-size: 80%; font-variant-numeric: lining-nums tabular-nums; } + .register-result { padding-top: 20px; word-wrap: break-word; + code { font-size: 85%; } } + .register-error { padding-top: 20px; word-wrap: break-word; } + .lds-ring { box-sizing: border-box; display: block; @@ -579,6 +696,7 @@ h2 { width: 80px; height: 80px; margin: 0 auto; + div { box-sizing: border-box; box-sizing: border-box; @@ -591,23 +709,28 @@ h2 { border-radius: 50%; animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite; border-color: currentColor transparent transparent transparent; + &:nth-child(1) { animation-delay: -0.45s; } + &:nth-child(2) { animation-delay: -0.3s; } + &:nth-child(3) { animation-delay: -0.15s; } } } + .button { margin-top: 2rem; margin-bottom: 2rem; overflow: visible; display: block; } + .button-link { padding: 1rem 2rem; color: $color_white; @@ -615,20 +738,24 @@ h2 { text-transform: uppercase; display: inline-block; text-wrap: nowrap; + &:hover { background-color: $color_background; } } + .detail-hero { margin-top: 2rem; display: flex; justify-content: center; flex-wrap: wrap; + >div { margin: 0rem 2rem; flex: 0 0 25%; } } + .detail-hero-left { display: flex; justify-content: center; @@ -636,22 +763,26 @@ h2 { flex-direction: column; padding: 0 2rem; } + .detail-hero-right { display: flex; justify-content: center; align-items: center; padding: 0 2rem; + img { flex: 1; max-width: 500px; } } + @media screen and (max-width: 900px) { .row-outer { display: block; } + .col-tools { padding-top: 0; width: auto; } -} +} \ No newline at end of file diff --git a/server/static/index.html b/server/static/index.html index 134ca89..6ec68a1 100644 --- a/server/static/index.html +++ b/server/static/index.html @@ -1,5 +1,5 @@ - + @@ -8,7 +8,7 @@ {{ LEDGER_INSTANCE_NAME }} Blockchain Ledger - + @@ -117,7 +117,7 @@

Error loading validator node status.

-