add some better styling with milligram
ci/woodpecker/push/woodpecker Pipeline failed
Details
ci/woodpecker/push/woodpecker Pipeline failed
Details
This commit is contained in:
parent
ccd6e6236a
commit
781851edb3
|
@ -5,6 +5,7 @@
|
|||
<title>
|
||||
TinyHatchet - {{ yield title() }}
|
||||
</title>
|
||||
<link rel="stylesheet" href="/css/milligram.css">
|
||||
<link rel="stylesheet" href="/css/tinyhatchet.css">
|
||||
|
||||
<!--remove this once you have a favicon -->
|
||||
|
@ -16,10 +17,12 @@
|
|||
</head>
|
||||
|
||||
<body>
|
||||
<main>
|
||||
<main class="container">
|
||||
{{ yield body() }}
|
||||
</main>
|
||||
<footer>
|
||||
{{ include "/partials/footer"}}
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -20,142 +20,141 @@
|
|||
<p>Having centralized logs is so much more convenient. We built TinyHatchet because the other logging services are complicated and/or very expensive for a small-time developer or a product just starting out. TinyHatchet fills that niche.</p>
|
||||
|
||||
<h3>How does TinyHatchet stack up?</h3>
|
||||
<div>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Features</th>
|
||||
<th><a href="https://betterstack.com/logtail">LogTail</a></th>
|
||||
<th><a href="https://WWW.loggly.com">Loggly</a></th>
|
||||
<th><a href="https://docs.datadoghq.com/logs/">Datadog</a></th>
|
||||
<th>TinyHatchet</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Live Tail</th>
|
||||
<td>Yes</td>
|
||||
<td>No</td>
|
||||
<td>Unknown</td>
|
||||
<td>No</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Alerting</th>
|
||||
<td>Yes</td>
|
||||
<td>Yes<sup title="Must specify custom criteria">?</sup></td>
|
||||
<td>Yes</td>
|
||||
<td>No</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>Search By</th>
|
||||
<td>SQL Query</td>
|
||||
<td>ElasticSearch</td>
|
||||
<td>ElasticSearch</td>
|
||||
<td>Tag and date</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>GDPR Compliant</th>
|
||||
<td>Yes</td>
|
||||
<td>Unknown<sup title="If you need GDPR compliance, make sure they are storing your data in European datacenters due to recent EU rulings. And talk to a lawyer before you do anything.">?</sup></td>
|
||||
<td>Unknown<sup title="If you need GDPR compliance, make sure they are storing your data in European datacenters due to recent EU rulings. And talk to a lawyer before you do anything.">?</sup></td>
|
||||
<td>No<sup title="If you live in Europe, sorry. That's way more work than we can handle right now.">?</sup></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Visualizations</th>
|
||||
<td>No</td>
|
||||
<td>Yes</td>
|
||||
<td>Yes</td>
|
||||
<td>No</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>SSO</th>
|
||||
<td>No</td>
|
||||
<td>Yes</td>
|
||||
<td>Yes</td>
|
||||
<td>No</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>External Integrations</th>
|
||||
<td>Yes</td>
|
||||
<td>Yes<sup title="Via webhook only">?</sup></td>
|
||||
<td>Yes</td>
|
||||
<td>No</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Archive to S3</th>
|
||||
<td>Yes<sup title="Requires more expensive business plan">?</sup></td>
|
||||
<td>Yes<sup title="Requires more expensive Pro plan">?</sup></td>
|
||||
<td>Yes</td>
|
||||
<td>No</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Free Plan</th>
|
||||
<td>Yes<sup title="1GB/month, 3 day retention, 5 sources">?</sup></td>
|
||||
<td>Yes<sup title="200MB/day, 7 day retention">?</sup></td>
|
||||
<td>No<sup title="30 day trial">?</sup></td>
|
||||
<td>No<sup title="30 day trial">?</sup></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Simple Ingest</th>
|
||||
<td>No</td>
|
||||
<td>No</td>
|
||||
<td>No</td>
|
||||
<td>Yes</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>API Access</th>
|
||||
<td>Yes</td>
|
||||
<td>Yes</td>
|
||||
<td>Yes</td>
|
||||
<td>Yes</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Tagging</th>
|
||||
<td>No</td>
|
||||
<td>No</td>
|
||||
<td>No</td>
|
||||
<td>Yes<sup title="Up to 10 per entry">?</sup></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Users</th>
|
||||
<td>1</td>
|
||||
<td>Unlimited</td>
|
||||
<td>Unlimited</td>
|
||||
<td>Unlimited</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Data Sources</th>
|
||||
<td>10</td>
|
||||
<td>Unlimited</td>
|
||||
<td>Unlimited</td>
|
||||
<td>Unlimited</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Storage</th>
|
||||
<td>30GB</td>
|
||||
<td>1 GB/Day<sup title="Measured during ingest">?</sup></td>
|
||||
<td>Unlimited</td>
|
||||
<td>Unlimited</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Retention</th>
|
||||
<td>15 days</td>
|
||||
<td>15 days</td>
|
||||
<td>Customizable</td>
|
||||
<td>30 days</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Price</th>
|
||||
<td>$30/month</td>
|
||||
<td>$99/month</td>
|
||||
<td>It's complicated<sup title="$15/host for required infrastructure plan, plus $2.55/million log events with 15-day retention, plus $0.10,GB ingested unless all data is retained. If we had the 30GB of logs Logtail allows coming from a single host it would cost somewhere around $20-30/month">?</sup></td>
|
||||
<td>$1/million<sup title="Minimum $3.14, paid monthly">?</sup></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>Comaprison between the first level paid plans, with a note on the limited free plans available. All information is to the best of our knowledge, please let us know if we got something wrong.</p>
|
||||
</div>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Features</th>
|
||||
<th><a href="https://betterstack.com/logtail">LogTail</a></th>
|
||||
<th><a href="https://WWW.loggly.com">Loggly</a></th>
|
||||
<th><a href="https://docs.datadoghq.com/logs/">Datadog</a></th>
|
||||
<th>TinyHatchet</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Live Tail</th>
|
||||
<td>Yes</td>
|
||||
<td>No</td>
|
||||
<td>Unknown</td>
|
||||
<td>No</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Alerting</th>
|
||||
<td>Yes</td>
|
||||
<td><span class="tooltip" aria-label="Must specify custom criteria">Yes</span></td>
|
||||
<td>Yes</td>
|
||||
<td>No</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Search By</th>
|
||||
<td>SQL Query</td>
|
||||
<td>ElasticSearch</td>
|
||||
<td>ElasticSearch</td>
|
||||
<td>Tag and date</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>GDPR Compliant</th>
|
||||
<td>Yes</td>
|
||||
<td><span class="tooltip" aria-label="If you need GDPR compliance, make sure they are storing your data in European datacenters due to recent EU rulings. And talk to a lawyer before you do anything.">Unknown</span></td>
|
||||
<td><span class="tooltip" aria-label="If you need GDPR compliance, make sure they are storing your data in European datacenters due to recent EU rulings. And talk to a lawyer before you do anything.">Unknown</sup></td>
|
||||
<td><span class="tooltip" aria-label="If you live in Europe, sorry. That's way more work than we can handle right now.">No</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Visualizations</th>
|
||||
<td>No</td>
|
||||
<td>Yes</td>
|
||||
<td>Yes</td>
|
||||
<td>No</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>SSO</th>
|
||||
<td>No</td>
|
||||
<td>Yes</td>
|
||||
<td>Yes</td>
|
||||
<td>No</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>External Integrations</th>
|
||||
<td>Yes</td>
|
||||
<td><span class="tooltip" aria-label="Via webhook only">Yes</span></td>
|
||||
<td>Yes</td>
|
||||
<td>No</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Archive to S3</th>
|
||||
<td><span class="tooltip" aria-label="Requires more expensive business plan">Yes</span></td>
|
||||
<td><span class="tooltip" aria-label="Requires more expensive Pro plan">Yes</span></td>
|
||||
<td>Yes</td>
|
||||
<td>No</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Free Plan</th>
|
||||
<td><span class="tooltip" aria-label="1GB/month, 3 day retention, 5 sources">Yes</span</td>
|
||||
<td><span class="tooltip" aria-label="200MB/day, 7 day retention">Yes</span</td>
|
||||
<td><span class="tooltip" aria-label="30 day trial">No</span</td>
|
||||
<td><span class="tooltip" aria-label="30 day trial">No</span</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Simple Ingest</th>
|
||||
<td>No</td>
|
||||
<td>No</td>
|
||||
<td>No</td>
|
||||
<td>Yes</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>API Access</th>
|
||||
<td>Yes</td>
|
||||
<td>Yes</td>
|
||||
<td>Yes</td>
|
||||
<td>Yes</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Tagging</th>
|
||||
<td>No</td>
|
||||
<td>No</td>
|
||||
<td>No</td>
|
||||
<td><span class="tooltip" aria-label="Up to 10 per entry">Yes</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Users</th>
|
||||
<td>1</td>
|
||||
<td>Unlimited</td>
|
||||
<td>Unlimited</td>
|
||||
<td>Unlimited</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Data Sources</th>
|
||||
<td>10</td>
|
||||
<td>Unlimited</td>
|
||||
<td>Unlimited</td>
|
||||
<td>Unlimited</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Storage</th>
|
||||
<td>30GB</td>
|
||||
<td><span class="tooltip" aria-label="Measured during ingest">1 GB/Day</span></td>
|
||||
<td>Unlimited</td>
|
||||
<td>Unlimited</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Retention</th>
|
||||
<td>15 days</td>
|
||||
<td>15 days</td>
|
||||
<td>Customizable</td>
|
||||
<td>30 days</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Price</th>
|
||||
<td>$30/month</td>
|
||||
<td>$99/month</td>
|
||||
<td><span class="tooltip" aria-label="$15/host for required infrastructure plan, plus $2.55/million log events with 15-day retention, plus $0.10,GB ingested unless all data is retained. If we had the 30GB of logs Logtail allows coming from a single host it would cost somewhere around $20-30/month">It's complicated</span></td>
|
||||
<td><span class="tooltip"aria-label="Minimum $3.14, paid monthly">$1/million?</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>Comaprison between the first level paid plans, with a note on the limited free plans availabel. All information is to the best of our knowledge, please let us know if we got something wrong.</p>
|
||||
|
||||
|
||||
<h3>Why's it so ugly?</h3>
|
||||
<p>It was much more important to get it done, and pretty takes me a lot of time. There is a CLI interface written in Go that you can build and use <a href="https://github.com/TinyHatchet/client">(link)</a>. It's much prettier.</p>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<footer>
|
||||
<div class="container">
|
||||
<div>Feeback? Please <a href="mailto:support@codemonkeysoftware.net&subject=TinyHatchet">Let us know.</a></div>
|
||||
<div>TinyHatchet is a product of Code Monkey Software</div>
|
||||
<div>© 2022 Code Monkey Software LLC</div>
|
||||
</footer>
|
||||
</div>
|
|
@ -0,0 +1,642 @@
|
|||
/*!
|
||||
* Milligram v1.4.1
|
||||
* https://milligram.io
|
||||
*
|
||||
* Copyright (c) 2020 CJ Patoilo
|
||||
* Licensed under the MIT license
|
||||
*/
|
||||
|
||||
:root {
|
||||
--secondary-color:#606c76;
|
||||
--border-color: #d1d1d1;
|
||||
--border-emphasized-color: #e1e1e1;
|
||||
--primary-color:#4da2ca;
|
||||
--input-color: #fff;
|
||||
--background-color: #f4f5f6;
|
||||
}
|
||||
|
||||
*,
|
||||
*:after,
|
||||
*:before {
|
||||
box-sizing: inherit;
|
||||
}
|
||||
|
||||
html {
|
||||
box-sizing: border-box;
|
||||
font-size: 62.5%;
|
||||
}
|
||||
|
||||
body {
|
||||
color: var(--secondary-color);
|
||||
font-family: 'Roboto', 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;
|
||||
font-size: 1.6em;
|
||||
font-weight: 300;
|
||||
letter-spacing: .01em;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
border-left: 0.3rem solid var(--border-color);
|
||||
margin-left: 0;
|
||||
margin-right: 0;
|
||||
padding: 1rem 1.5rem;
|
||||
}
|
||||
|
||||
blockquote *:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.button,
|
||||
button,
|
||||
input[type='button'],
|
||||
input[type='reset'],
|
||||
input[type='submit'] {
|
||||
background-color: var(--primary-color);
|
||||
border: 0.1rem solid var(--primary-color);
|
||||
border-radius: .4rem;
|
||||
color: var(--input-color);
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
font-size: 1.1rem;
|
||||
font-weight: 700;
|
||||
height: 3.8rem;
|
||||
letter-spacing: .1rem;
|
||||
line-height: 3.8rem;
|
||||
padding: 0 3.0rem;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
text-transform: uppercase;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.button:focus, .button:hover,
|
||||
button:focus,
|
||||
button:hover,
|
||||
input[type='button']:focus,
|
||||
input[type='button']:hover,
|
||||
input[type='reset']:focus,
|
||||
input[type='reset']:hover,
|
||||
input[type='submit']:focus,
|
||||
input[type='submit']:hover {
|
||||
background-color: var(--secondary-color);
|
||||
border-color: var(--secondary-color);
|
||||
color: var(--input-color);
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
.button[disabled],
|
||||
button[disabled],
|
||||
input[type='button'][disabled],
|
||||
input[type='reset'][disabled],
|
||||
input[type='submit'][disabled] {
|
||||
cursor: default;
|
||||
opacity: .5;
|
||||
}
|
||||
|
||||
.button[disabled]:focus, .button[disabled]:hover,
|
||||
button[disabled]:focus,
|
||||
button[disabled]:hover,
|
||||
input[type='button'][disabled]:focus,
|
||||
input[type='button'][disabled]:hover,
|
||||
input[type='reset'][disabled]:focus,
|
||||
input[type='reset'][disabled]:hover,
|
||||
input[type='submit'][disabled]:focus,
|
||||
input[type='submit'][disabled]:hover {
|
||||
background-color: var(--primary-color);
|
||||
border-color: var(--primary-color);
|
||||
}
|
||||
|
||||
.button.button-outline,
|
||||
button.button-outline,
|
||||
input[type='button'].button-outline,
|
||||
input[type='reset'].button-outline,
|
||||
input[type='submit'].button-outline {
|
||||
background-color: transparent;
|
||||
color: var(--primary-color);
|
||||
}
|
||||
|
||||
.button.button-outline:focus, .button.button-outline:hover,
|
||||
button.button-outline:focus,
|
||||
button.button-outline:hover,
|
||||
input[type='button'].button-outline:focus,
|
||||
input[type='button'].button-outline:hover,
|
||||
input[type='reset'].button-outline:focus,
|
||||
input[type='reset'].button-outline:hover,
|
||||
input[type='submit'].button-outline:focus,
|
||||
input[type='submit'].button-outline:hover {
|
||||
background-color: transparent;
|
||||
border-color: var(--secondary-color);
|
||||
color: var(--secondary-color);
|
||||
}
|
||||
|
||||
.button.button-outline[disabled]:focus, .button.button-outline[disabled]:hover,
|
||||
button.button-outline[disabled]:focus,
|
||||
button.button-outline[disabled]:hover,
|
||||
input[type='button'].button-outline[disabled]:focus,
|
||||
input[type='button'].button-outline[disabled]:hover,
|
||||
input[type='reset'].button-outline[disabled]:focus,
|
||||
input[type='reset'].button-outline[disabled]:hover,
|
||||
input[type='submit'].button-outline[disabled]:focus,
|
||||
input[type='submit'].button-outline[disabled]:hover {
|
||||
border-color: inherit;
|
||||
color: var(--primary-color);
|
||||
}
|
||||
|
||||
.button.button-clear,
|
||||
button.button-clear,
|
||||
input[type='button'].button-clear,
|
||||
input[type='reset'].button-clear,
|
||||
input[type='submit'].button-clear {
|
||||
background-color: transparent;
|
||||
border-color: transparent;
|
||||
color: var(--primary-color);
|
||||
}
|
||||
|
||||
.button.button-clear:focus, .button.button-clear:hover,
|
||||
button.button-clear:focus,
|
||||
button.button-clear:hover,
|
||||
input[type='button'].button-clear:focus,
|
||||
input[type='button'].button-clear:hover,
|
||||
input[type='reset'].button-clear:focus,
|
||||
input[type='reset'].button-clear:hover,
|
||||
input[type='submit'].button-clear:focus,
|
||||
input[type='submit'].button-clear:hover {
|
||||
background-color: transparent;
|
||||
border-color: transparent;
|
||||
color: var(--secondary-color);
|
||||
}
|
||||
|
||||
.button.button-clear[disabled]:focus, .button.button-clear[disabled]:hover,
|
||||
button.button-clear[disabled]:focus,
|
||||
button.button-clear[disabled]:hover,
|
||||
input[type='button'].button-clear[disabled]:focus,
|
||||
input[type='button'].button-clear[disabled]:hover,
|
||||
input[type='reset'].button-clear[disabled]:focus,
|
||||
input[type='reset'].button-clear[disabled]:hover,
|
||||
input[type='submit'].button-clear[disabled]:focus,
|
||||
input[type='submit'].button-clear[disabled]:hover {
|
||||
color: var(--primary-color);
|
||||
}
|
||||
|
||||
code {
|
||||
background: var(--background-color);
|
||||
border-radius: .4rem;
|
||||
font-size: 86%;
|
||||
margin: 0 .2rem;
|
||||
padding: .2rem .5rem;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
pre {
|
||||
background: var(--background-color);
|
||||
border-left: 0.3rem solid var(--primary-color);
|
||||
overflow-y: hidden;
|
||||
}
|
||||
|
||||
pre > code {
|
||||
border-radius: 0;
|
||||
display: block;
|
||||
padding: 1rem 1.5rem;
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
hr {
|
||||
border: 0;
|
||||
border-top: 0.1rem solid var(--background-color);
|
||||
margin: 3.0rem 0;
|
||||
}
|
||||
|
||||
input[type='color'],
|
||||
input[type='date'],
|
||||
input[type='datetime'],
|
||||
input[type='datetime-local'],
|
||||
input[type='email'],
|
||||
input[type='month'],
|
||||
input[type='number'],
|
||||
input[type='password'],
|
||||
input[type='search'],
|
||||
input[type='tel'],
|
||||
input[type='text'],
|
||||
input[type='url'],
|
||||
input[type='week'],
|
||||
input:not([type]),
|
||||
textarea,
|
||||
select {
|
||||
-webkit-appearance: none;
|
||||
background-color: transparent;
|
||||
border: 0.1rem solid var(--border-color);
|
||||
border-radius: .4rem;
|
||||
box-shadow: none;
|
||||
box-sizing: inherit;
|
||||
height: 3.8rem;
|
||||
padding: .6rem 1.0rem .7rem;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
input[type='color']:focus,
|
||||
input[type='date']:focus,
|
||||
input[type='datetime']:focus,
|
||||
input[type='datetime-local']:focus,
|
||||
input[type='email']:focus,
|
||||
input[type='month']:focus,
|
||||
input[type='number']:focus,
|
||||
input[type='password']:focus,
|
||||
input[type='search']:focus,
|
||||
input[type='tel']:focus,
|
||||
input[type='text']:focus,
|
||||
input[type='url']:focus,
|
||||
input[type='week']:focus,
|
||||
input:not([type]):focus,
|
||||
textarea:focus,
|
||||
select:focus {
|
||||
border-color: var(--primary-color);
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
select {
|
||||
background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 8" width="30"><path fill="%23d1d1d1" d="M0,0l6,8l6-8"/></svg>') center right no-repeat;
|
||||
padding-right: 3.0rem;
|
||||
}
|
||||
|
||||
select:focus {
|
||||
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 8" width="30"><path fill="%239b4dca" d="M0,0l6,8l6-8"/></svg>');
|
||||
}
|
||||
|
||||
select[multiple] {
|
||||
background: none;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
textarea {
|
||||
min-height: 6.5rem;
|
||||
}
|
||||
|
||||
label,
|
||||
legend {
|
||||
display: block;
|
||||
font-size: 1.6rem;
|
||||
font-weight: 700;
|
||||
margin-bottom: .5rem;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
border-width: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
input[type='checkbox'],
|
||||
input[type='radio'] {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.label-inline {
|
||||
display: inline-block;
|
||||
font-weight: normal;
|
||||
margin-left: .5rem;
|
||||
}
|
||||
|
||||
.container {
|
||||
margin: 0 auto;
|
||||
max-width: 112.0rem;
|
||||
padding: 0 2.0rem;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.row {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.row.row-no-padding {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.row.row-no-padding > .column {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.row.row-wrap {
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.row.row-top {
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
.row.row-bottom {
|
||||
align-items: flex-end;
|
||||
}
|
||||
|
||||
.row.row-center {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.row.row-stretch {
|
||||
align-items: stretch;
|
||||
}
|
||||
|
||||
.row.row-baseline {
|
||||
align-items: baseline;
|
||||
}
|
||||
|
||||
.row .column {
|
||||
display: block;
|
||||
flex: 1 1 auto;
|
||||
margin-left: 0;
|
||||
max-width: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.row .column.column-offset-10 {
|
||||
margin-left: 10%;
|
||||
}
|
||||
|
||||
.row .column.column-offset-20 {
|
||||
margin-left: 20%;
|
||||
}
|
||||
|
||||
.row .column.column-offset-25 {
|
||||
margin-left: 25%;
|
||||
}
|
||||
|
||||
.row .column.column-offset-33, .row .column.column-offset-34 {
|
||||
margin-left: 33.3333%;
|
||||
}
|
||||
|
||||
.row .column.column-offset-40 {
|
||||
margin-left: 40%;
|
||||
}
|
||||
|
||||
.row .column.column-offset-50 {
|
||||
margin-left: 50%;
|
||||
}
|
||||
|
||||
.row .column.column-offset-60 {
|
||||
margin-left: 60%;
|
||||
}
|
||||
|
||||
.row .column.column-offset-66, .row .column.column-offset-67 {
|
||||
margin-left: 66.6666%;
|
||||
}
|
||||
|
||||
.row .column.column-offset-75 {
|
||||
margin-left: 75%;
|
||||
}
|
||||
|
||||
.row .column.column-offset-80 {
|
||||
margin-left: 80%;
|
||||
}
|
||||
|
||||
.row .column.column-offset-90 {
|
||||
margin-left: 90%;
|
||||
}
|
||||
|
||||
.row .column.column-10 {
|
||||
flex: 0 0 10%;
|
||||
max-width: 10%;
|
||||
}
|
||||
|
||||
.row .column.column-20 {
|
||||
flex: 0 0 20%;
|
||||
max-width: 20%;
|
||||
}
|
||||
|
||||
.row .column.column-25 {
|
||||
flex: 0 0 25%;
|
||||
max-width: 25%;
|
||||
}
|
||||
|
||||
.row .column.column-33, .row .column.column-34 {
|
||||
flex: 0 0 33.3333%;
|
||||
max-width: 33.3333%;
|
||||
}
|
||||
|
||||
.row .column.column-40 {
|
||||
flex: 0 0 40%;
|
||||
max-width: 40%;
|
||||
}
|
||||
|
||||
.row .column.column-50 {
|
||||
flex: 0 0 50%;
|
||||
max-width: 50%;
|
||||
}
|
||||
|
||||
.row .column.column-60 {
|
||||
flex: 0 0 60%;
|
||||
max-width: 60%;
|
||||
}
|
||||
|
||||
.row .column.column-66, .row .column.column-67 {
|
||||
flex: 0 0 66.6666%;
|
||||
max-width: 66.6666%;
|
||||
}
|
||||
|
||||
.row .column.column-75 {
|
||||
flex: 0 0 75%;
|
||||
max-width: 75%;
|
||||
}
|
||||
|
||||
.row .column.column-80 {
|
||||
flex: 0 0 80%;
|
||||
max-width: 80%;
|
||||
}
|
||||
|
||||
.row .column.column-90 {
|
||||
flex: 0 0 90%;
|
||||
max-width: 90%;
|
||||
}
|
||||
|
||||
.row .column .column-top {
|
||||
align-self: flex-start;
|
||||
}
|
||||
|
||||
.row .column .column-bottom {
|
||||
align-self: flex-end;
|
||||
}
|
||||
|
||||
.row .column .column-center {
|
||||
align-self: center;
|
||||
}
|
||||
|
||||
@media (min-width: 40rem) {
|
||||
.row {
|
||||
flex-direction: row;
|
||||
margin-left: -1.0rem;
|
||||
width: calc(100% + 2.0rem);
|
||||
}
|
||||
.row .column {
|
||||
margin-bottom: inherit;
|
||||
padding: 0 1.0rem;
|
||||
}
|
||||
}
|
||||
|
||||
a {
|
||||
color: var(--primary-color);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:focus, a:hover {
|
||||
color: var(--secondary-color);
|
||||
}
|
||||
|
||||
dl,
|
||||
ol,
|
||||
ul {
|
||||
list-style: none;
|
||||
margin-top: 0;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
dl dl,
|
||||
dl ol,
|
||||
dl ul,
|
||||
ol dl,
|
||||
ol ol,
|
||||
ol ul,
|
||||
ul dl,
|
||||
ul ol,
|
||||
ul ul {
|
||||
font-size: 90%;
|
||||
margin: 1.5rem 0 1.5rem 3.0rem;
|
||||
}
|
||||
|
||||
ol {
|
||||
list-style: decimal inside;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style: circle inside;
|
||||
}
|
||||
|
||||
.button,
|
||||
button,
|
||||
dd,
|
||||
dt,
|
||||
li {
|
||||
margin-bottom: 1.0rem;
|
||||
}
|
||||
|
||||
fieldset,
|
||||
input,
|
||||
select,
|
||||
textarea {
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
blockquote,
|
||||
dl,
|
||||
figure,
|
||||
form,
|
||||
ol,
|
||||
p,
|
||||
pre,
|
||||
table,
|
||||
ul {
|
||||
margin-bottom: 2.5rem;
|
||||
}
|
||||
|
||||
table {
|
||||
border-spacing: 0;
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
text-align: left;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
td,
|
||||
th {
|
||||
border-bottom: 0.1rem solid var(--border-emphasized-color);
|
||||
padding: 1.2rem 1.5rem;
|
||||
}
|
||||
|
||||
td:first-child,
|
||||
th:first-child {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
td:last-child,
|
||||
th:last-child {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
@media (min-width: 40rem) {
|
||||
table {
|
||||
display: table;
|
||||
overflow-x: initial;
|
||||
}
|
||||
}
|
||||
|
||||
b,
|
||||
strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-weight: 300;
|
||||
letter-spacing: -.1rem;
|
||||
margin-bottom: 2.0rem;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 4.6rem;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 3.6rem;
|
||||
line-height: 1.25;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 2.8rem;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 2.2rem;
|
||||
letter-spacing: -.08rem;
|
||||
line-height: 1.35;
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-size: 1.8rem;
|
||||
letter-spacing: -.05rem;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-size: 1.6rem;
|
||||
letter-spacing: 0;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.clearfix:after {
|
||||
clear: both;
|
||||
content: ' ';
|
||||
display: table;
|
||||
}
|
||||
|
||||
.float-left {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.float-right {
|
||||
float: right;
|
||||
}
|
|
@ -1,58 +1,84 @@
|
|||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
border: 0px;
|
||||
body{
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
td, th {
|
||||
padding: .2em 1em;
|
||||
margin: 0px;
|
||||
border: 0px;
|
||||
:root {
|
||||
--tooltip-back-color: #212121;
|
||||
--tooltip-fore-color: #fafafa;
|
||||
--universal-margin: 0.5rem;
|
||||
--universal-padding: 0.5rem;
|
||||
--universal-border-radius: 0.125rem;
|
||||
}
|
||||
.tooltip {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
border-bottom: 1px dashed black;
|
||||
}
|
||||
|
||||
td:first-child, th:first-child {
|
||||
padding-left: .2em;
|
||||
.tooltip:before, .tooltip:after {
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
clip: rect(0 0 0 0);
|
||||
-webkit-clip-path: inset(100%);
|
||||
clip-path: inset(100%);
|
||||
transition: all 0.1s;
|
||||
z-index: 1010;
|
||||
left: 50%;
|
||||
|
||||
width: max-content;
|
||||
max-width: 75vw;
|
||||
}
|
||||
|
||||
td:last-child, th:last-child {
|
||||
padding-right: .2em;
|
||||
.tooltip:not(.bottom):before, .tooltip:not(.bottom):after {
|
||||
bottom: 75%;
|
||||
}
|
||||
|
||||
tr {
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
border: 0px;
|
||||
.tooltip.bottom:before, .tooltip.bottom:after {
|
||||
top: 75%;
|
||||
}
|
||||
|
||||
tr:nth-child(even) {
|
||||
background-color: lightgrey;
|
||||
.tooltip:hover:before, .tooltip:hover:after, .tooltip:focus:before, .tooltip:focus:after {
|
||||
opacity: 1;
|
||||
clip: auto;
|
||||
-webkit-clip-path: inset(0%);
|
||||
clip-path: inset(0%);
|
||||
}
|
||||
|
||||
.tag-cell {
|
||||
width: 100%;
|
||||
max-width: 20%;
|
||||
.tooltip:before {
|
||||
content: '';
|
||||
background: transparent;
|
||||
border: var(--universal-margin) solid transparent;
|
||||
left: calc(50% - var(--universal-margin));
|
||||
}
|
||||
|
||||
@media (pointer: coarse), (hover: none) {
|
||||
[title] {
|
||||
position: relative;
|
||||
display: inline-flex;
|
||||
justify-content: center;
|
||||
}
|
||||
[title]:focus::after {
|
||||
content: attr(title);
|
||||
position: absolute;
|
||||
top: 90%;
|
||||
color: #000;
|
||||
background-color: #fff;
|
||||
border: 1px solid;
|
||||
width: fit-content;
|
||||
padding: 3px;
|
||||
}
|
||||
}
|
||||
.tooltip:not(.bottom):before {
|
||||
border-top-color: #212121;
|
||||
}
|
||||
|
||||
.tooltip.bottom:before {
|
||||
border-bottom-color: #212121;
|
||||
}
|
||||
|
||||
.tooltip:after {
|
||||
content: attr(aria-label);
|
||||
color: var(--tooltip-fore-color);
|
||||
background: var(--tooltip-back-color);
|
||||
border-radius: var(--universal-border-radius);
|
||||
padding: var(--universal-padding);
|
||||
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
|
||||
.tooltip:not(.bottom):after {
|
||||
margin-bottom: calc(2 * var(--universal-margin));
|
||||
}
|
||||
|
||||
.tooltip.bottom:after {
|
||||
margin-top: calc(2 * var(--universal-margin));
|
||||
}
|
||||
|
||||
footer {
|
||||
width:100%;
|
||||
background-color: var(--background-color);
|
||||
border-top: 1px solid var(--border-color);
|
||||
}
|
Loading…
Reference in New Issue