├── img ├── d ├── favicon │ ├── d │ ├── favicon.ico │ ├── favicon-16x16.png │ ├── favicon-32x32.png │ ├── mstile-150x150.png │ ├── apple-touch-icon.png │ ├── android-chrome-192x192.png │ ├── android-chrome-512x512.png │ ├── browserconfig.xml │ └── site.webmanifest └── meta.png ├── CNAME ├── README.md ├── script.js ├── donate └── index.html ├── contracts └── index.html ├── index.html ├── swerve └── index.html └── styles.css /img/d: -------------------------------------------------------------------------------- 1 | d 2 | -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | swerve.fi -------------------------------------------------------------------------------- /img/favicon/d: -------------------------------------------------------------------------------- 1 | d 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # swerve-web 2 | 3 | The Swerve Finance Contracts 4 | -------------------------------------------------------------------------------- /img/meta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwerveFinance/swerve-web/HEAD/img/meta.png -------------------------------------------------------------------------------- /img/favicon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwerveFinance/swerve-web/HEAD/img/favicon/favicon.ico -------------------------------------------------------------------------------- /img/favicon/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwerveFinance/swerve-web/HEAD/img/favicon/favicon-16x16.png -------------------------------------------------------------------------------- /img/favicon/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwerveFinance/swerve-web/HEAD/img/favicon/favicon-32x32.png -------------------------------------------------------------------------------- /img/favicon/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwerveFinance/swerve-web/HEAD/img/favicon/mstile-150x150.png -------------------------------------------------------------------------------- /img/favicon/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwerveFinance/swerve-web/HEAD/img/favicon/apple-touch-icon.png -------------------------------------------------------------------------------- /img/favicon/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwerveFinance/swerve-web/HEAD/img/favicon/android-chrome-192x192.png -------------------------------------------------------------------------------- /img/favicon/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwerveFinance/swerve-web/HEAD/img/favicon/android-chrome-512x512.png -------------------------------------------------------------------------------- /img/favicon/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | #da532c 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /img/favicon/site.webmanifest: -------------------------------------------------------------------------------- 1 | { 2 | "name": "", 3 | "short_name": "", 4 | "icons": [ 5 | { 6 | "src": "android-chrome-192x192.png", 7 | "sizes": "192x192", 8 | "type": "image/png" 9 | }, 10 | { 11 | "src": "android-chrome-512x512.png", 12 | "sizes": "512x512", 13 | "type": "image/png" 14 | } 15 | ], 16 | "theme_color": "#ffffff", 17 | "background_color": "#ffffff", 18 | "display": "standalone" 19 | } 20 | -------------------------------------------------------------------------------- /script.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | $.get('https://api.ethplorer.io/getAddressInfo/0x329239599afb305da0a2ec69c58f8a6697f9f88d?apiKey=EK-5nEyT-zZUio5N-JJ5hf', 3 | function(data) { 4 | var tusd = ((data.tokens[0].balance / 1000000000000000000) * (data.tokens[0].tokenInfo.price.rate)); 5 | var dai = ((data.tokens[1].balance / 1000000000000000000) * (data.tokens[1].tokenInfo.price.rate));; 6 | var usdc = ((data.tokens[2].balance / 1000000) * (data.tokens[2].tokenInfo.price.rate));; 7 | var usdt = ((data.tokens[3].balance / 1000000) * (data.tokens[3].tokenInfo.price.rate));; 8 | var total = (tusd + dai + usdc + usdt); 9 | $('#TVL').html(total.toLocaleString('en-US', { 10 | style: 'currency', 11 | currency: 'USD' 12 | })); 13 | }) 14 | }) 15 | -------------------------------------------------------------------------------- /donate/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Swerve Finance | Donate 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
31 |

32 |
33 |
34 |

SWERVE FINANCE 35 |

36 |
37 |

We launched a fork, 100% community owned and governed, after seeing misaligned incentives played out in similar projects.

38 |

Swerve is built for the people, and with that, no token allocation was taken from distribution for the developers or costs, intentionally. This is an experiment in protocol price discovery, and by design, everything goes to the LPs and community.

39 |

The people get everything. All the tokens, all the decisions.

40 |

We went into this expecting not to make any money. We wanted LPs to get everything and decide what they want to do with it. With that being said, many of you have kindly reached out over the past days trying to donate to the developer. While the costs of launching Swerve weren't astronomical, deployment did cost some Ether.

41 |

If you wish to directly donate, an Ethereum address is below. This is entirely for people who wish to just directly donate a small sum. It is extremely kind that many of you have asked.

42 |
43 |

Address:

44 |

0x55C5C59ed409b3792D8196580F27f7a1C3Ce127c

45 |
46 |

Thank you once again, I am very humbled by the response to Swerve and look forward to continuing working on this project with you all.

47 |
48 |

Your lowly farmer,

49 |

John Fuckin' Deere

50 |
51 |
52 |
53 | Twitter 54 | | Discord | Telegram

55 | -------------------------------------------------------------------------------- /contracts/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Swerve Finance | Contract Addresses 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
32 |
33 |

34 |
35 |
36 |

CONTRACT ADDRESSES 37 |

DAI: 0x6B175474E89094C44Da98b954EedeAC495271d0F 38 |
39 |
USDC: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 40 |
41 |
USDT: 0xdAC17F958D2ee523a2206206994597C13D831ec7 42 |
43 |
TUSD: 0x0000000000085d4780B73119b644AE5ecd22b376 44 |
45 |
TIMELOCK: 0xb902A1ddab091b63721987ccc6a8A99d7c22BBDF 46 |
47 |
POOL: 0x329239599afB305DA0A2eC69c58F8a6697F9F88d 48 |
49 |
swUSD: 0x77C6E4a580c0dCE4E5c7a17d0bc077188a83A059 50 |
51 |
ZAP: 0xa746c67eB7915Fa832a4C2076D403D4B68085431 52 |
53 |
APY ORACLE: 0xaA8d5F6A7747C2c6C4149e1A06eb1BFb847D6dE2 54 |
55 |
SWRV: 0xB8BAa0e4287890a5F79863aB62b7F175ceCbD433 56 |
57 |
VOTING ESCROW: 0xe5e7DdADD563018b0E692C1524b60b754FBD7f02 58 |
59 |
GAUGE CONTROLLER: 0x0C4d90ca69104B4cb937fB21c8533c29554AE32c 60 |
61 |
POOL PROXY: 0x2638d2680ab4914126Ee05b9C5EE95bac311A95e 62 |
63 |
MINTER: 0x2c988c3974AD7E604E276AE0294a7228DEf67974 64 |
65 |
LIQUIDITY GAUGE: 0xb4d0C929cD3A1FbDc6d57E7D3315cF0C4d6B4bFa 66 |
67 |
DAO_ADDRESS: 0x125Ed42cCdf7fB13eA1439B9D4c6745501b680c0 68 |
69 |
OWNERSHIP_AGENT_ADDRESS: 0xCcE356A37930e075921b486C746Ba8ed6EBCF172 70 |
71 |
PARAMETER_AGENT_ADDRESS: 0x5daDBf4ed01cbA1aFd990518443033863C6e3FD8 72 |
73 |
VAULT_AGENT_ADDRESS: 0x9ED6314706EC707DaE9BDAeeE9A14Cb6E3151CBE 74 |
75 |
OWNERSHIP_VOTING_APP_ADDRESS: 0xDFF7beb0cBf54D6553E4702Ae0FfA60718822478 76 |
77 |
PARAMETER_VOTING_APP_ADDRESS: 0x45A22c7c3192bEC1bB92A4bE9db7128db9c5a097 78 |
79 |
80 |
Twitter 81 | | Telegram | Discord 82 |


83 |
84 | 105 | 106 | 107 | 108 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Swerve Finance 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
31 |

32 |
33 |
34 |

Swerve Finance 35 |

36 |

A fork that's 100% community owned and governed.

37 |
38 |

SWERVE APP

39 | Backup IPFS Gateway 40 |
41 | via ENS Link 42 |
43 | via swerve.fi 44 |
45 | via MetaMask 46 |

47 |

Swerve is proudly hosted on IPFS, the peer to peer distributed web.

48 |
49 |
50 |

51 | 52 |

Why We Built Swerve

53 |
54 | SnapShot Voting 55 | | Uniswap | Community Forum

56 |
57 | GitHub 58 | | Contracts | Risks

59 |
60 | Twitter 61 | | Discord | Telegram 62 |

63 | Donate 64 |


65 |
66 | 94 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /swerve/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Swerve Finance | Why We Built Swerve 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
31 |

32 |
33 |
34 |

SWERVE FINANCE 35 |

36 |

We’re launching a fork of Curve, owned 100% by the community, called Swerve[1] 37 |

38 |

There's no fake-out deployment, no questionable pre-mining, no founder controlling majority of the governance vote, no suspect team proposals, no 30% allocation to 'shareholders', no team allocation, no decades long distribution, none of it.

39 |

It's a simple 33,000,000 supply owned entirely by you, the community of liquidity providers and users.

40 |

If you provide liquidity to Swerve, you get ySWRV tokens which can be staked in the Swerve DAO to earn $SWRV. To kickstart the protocol and encourage users to try out Swerve, the first two weeks will have a larger distribution of $SWRV awarded.

41 |
42 |

Token Distribution 43 |
[awarded entirely to LPs]: 44 |

45 |

9,000,000 $SWRV [2 weeks]

46 |

9,000,000 $SWRV [year 1]

47 |

3,000,000 $SWRV [year 2]

48 |

3,000,000 $SWRV [year 3]

49 |

3,000,000 $SWRV [year 4]

50 |

3,000,000 $SWRV [year 5]

51 |

3,000,000 $SWRV [year 6]

52 |

Total: 33,000,000 $SWRV

53 |
54 |

We’ve also removed some bullshit.

55 |

On top of a fair and 100% token distribution and no pre-vesting or allocations, Swerve is launching with just one pool to start, using DAI, USDC, USDT and TUSD. This cuts gas costs down dramatically for interactions vs using Y tokens. The DAO can decide to vote in additional pools they want. We don't want LPs initially forced to provide liquidity for additional pools they may not want to actually participate in just to chase rewards. Voting will be enabled within the DAO in about 24 hours. 56 |

57 |

The whitelist for smart wallets on the voting contract is removed, smart contracts like the YFI ecosystem should be able to participate. Lastly, the voting boost for $SWRV takes effect after one hour instead of 2 weeks, so you can start right out of the gate.

58 |
59 |

We believe the strongest and healthiest ecosystems are built from fair fundamentals. The goal with Swerve is to build a community that survives after the incentives dry up. Swerve is owned by its users and farmers, not the founding team and its investors. We hope to represent all fair and honest farmers and invite you join us on this journey and experimentation in protocol price discovery.

60 |

Your lowly farmer,

61 |

John Fuckin' Deere

62 |
63 |
64 | Twitter 65 | | Discord | Telegram

66 | -------------------------------------------------------------------------------- /styles.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap'); 2 | 3 | html { 4 | background: #2f3437; 5 | font-family: 'Roboto Mono', monospace; 6 | font-size: 10pt; 7 | text-align: center; 8 | } 9 | 10 | body { 11 | padding: 0; 12 | margin: 0; 13 | } 14 | 15 | #app { 16 | display: flex; 17 | min-height: 100vh; 18 | flex-direction: column; 19 | } 20 | 21 | .screencontainer { 22 | flex: 1 0 auto; 23 | } 24 | 25 | @font-face { 26 | font-family: 'JetBrains Mono'; 27 | font-style: normal; 28 | font-weight: 400; 29 | src: local('JetBrains Mono Regular'), local('JetBrainsMono-Regular'), url(https://swerve.fi/JetBrainsMono-Regular.woff2) format('woff2'); 30 | } 31 | 32 | fieldset { 33 | min-width: 0; 34 | border-style: none; 35 | } 36 | 37 | .window { 38 | position: relative; 39 | cursor: default; 40 | margin: 2em auto; width: 80%; 41 | background: #202426; 42 | color: white; 43 | border-radius: 3px; 44 | border: 6px double black; 45 | padding: 1em; 46 | max-width: 700px; 47 | } 48 | 49 | .window.error { 50 | background: red; 51 | box-shadow: 52 | 0 0 0 3px red, 53 | 1em 1em 3px 0 rgba(0,0,0,.5); 54 | } 55 | 56 | .window.white { 57 | background: #202426; 58 | color: white; 59 | border-color: black; 60 | border-radius: 3px; 61 | } 62 | 63 | .window.half-width { 64 | width: 80%; 65 | } 66 | 67 | .window :link { 68 | color: inherit; 69 | font-weight: bolder; 70 | text-decoration: none; 71 | } 72 | 73 | .window :link:hover { 74 | text-decoration: underline; 75 | } 76 | 77 | .window h1 { 78 | text-align: center; 79 | height:5rem; 80 | } 81 | 82 | 83 | .window.blue p { 84 | /*color: white; text-shadow: 0 0 2px white;*/ 85 | } 86 | 87 | button { 88 | margin:0;padding:0;border:none; 89 | cursor: pointer; 90 | } 91 | 92 | button, 93 | .button, 94 | .button:link, 95 | select.tvision { 96 | display: inline-block; 97 | font-weight: bolder; 98 | color: white; 99 | font-family: inherit; 100 | font-size: inherit; 101 | background: rgb(44, 47, 54); 102 | padding: 0 1em; 103 | position: relative; 104 | transition: .2s all ease-in; 105 | } 106 | 107 | button[class*='svelte'] { 108 | box-shadow: none; 109 | } 110 | 111 | select.tvision { 112 | background: url("data:image/svg+xml;utf8,") 113 | no-repeat right green; 114 | -moz-appearance:none; /* Firefox */ 115 | -webkit-appearance:none; /* Safari and Chrome */ 116 | appearance:none; 117 | padding-right: 24px; 118 | } 119 | 120 | button[disabled] { 121 | background: gray; 122 | box-shadow: none; 123 | border: none; 124 | } 125 | button[disabled]:hover { 126 | transform: none; 127 | box-shadow: none; 128 | background: gray; 129 | } 130 | 131 | button.full-width, 132 | .button.full-width { 133 | display: block; 134 | text-align: center; 135 | } 136 | 137 | button:before, 138 | .button:before { 139 | top: 0; 140 | left: 0; 141 | /*commenting this because of chrome accessibility feature*/ 142 | /*right: 0;*/ 143 | bottom: 0; 144 | content: ""; 145 | position: absolute; 146 | /*background: rgba(255,255,0,.5); /* DEBUG CLICK AREA */ 147 | } 148 | 149 | button:hover, 150 | .button:active, 151 | .button:focus, 152 | .button:hover 153 | { 154 | transform: translate3d(.25em,.25em,10em); 155 | background: white; 156 | color: black; 157 | } 158 | 159 | button[class*='svelte'] { 160 | transform: none; 161 | } 162 | 163 | button:hover:before, 164 | .button:hover:before, 165 | button:focus:before, 166 | .button:focus:before 167 | { 168 | top: -1em; 169 | left: -1em; 170 | } 171 | 172 | .button.pressed { 173 | box-shadow: none; 174 | left: 0.25em; 175 | top: 0.25em; 176 | margin-right: 0.25em; 177 | background: gray; 178 | border: 1px outset #707070; 179 | } 180 | 181 | button:first-letter, 182 | .button:first-letter { 183 | } 184 | 185 | button[class*='svelte']:first-letter { 186 | color: inherit; 187 | } 188 | 189 | input, textarea { 190 | background: #2f3437 !important; 191 | color: white !important; 192 | width: 100%; 193 | max-width: 100%; 194 | font-size: 12pt; 195 | border-style:none; 196 | } 197 | 198 | input { 199 | padding: 1px 0 1px 0; 200 | border-radius: 0; 201 | } 202 | 203 | input:disabled { 204 | background: #2f3437 !important; 205 | color: white !important; 206 | border-style:none; 207 | /*border: 2px solid #505070;*/ 208 | } 209 | 210 | input[type=radio], 211 | input[type=checkbox] { 212 | display: none; 213 | } 214 | 215 | input[type=radio] + label[for]:before, 216 | input[type=checkbox] + label[for]:before { 217 | text-align:center; 218 | display: inline-block; 219 | height: 1em; width: 2em; 220 | } 221 | 222 | input[type=checkbox] + label[for]:before { 223 | margin-right: 0.2em; 224 | } 225 | 226 | input[type=radio] + label[for]:before { 227 | content: "( ) "; 228 | cursor: pointer; 229 | } 230 | 231 | input[type=checkbox] + label[for]:before { 232 | content: "[ ] "; 233 | cursor: pointer; 234 | } 235 | 236 | input[type=radio]:checked + label[for]:before { 237 | content: "(•) "; 238 | cursor: pointer; 239 | } 240 | 241 | input[type=checkbox]:checked + label[for]:before { 242 | content: "[X] "; 243 | cursor: pointer; 244 | } 245 | 246 | .window > textarea { 247 | width: 100%; 248 | border: none; 249 | } 250 | 251 | 252 | ul { 253 | margin: 0; 254 | padding: 0; 255 | } 256 | 257 | li { 258 | margin: 0; 259 | padding: 0; 260 | list-style: none; 261 | } 262 | 263 | input[type=range] { 264 | background: inherit; 265 | -webkit-appearance: none; 266 | width: 100%; 267 | margin: 7.3px 0; 268 | } 269 | input[type=range]:focus { 270 | outline: none; 271 | } 272 | input[type=range]::-webkit-slider-runnable-track { 273 | width: 100%; 274 | height: 8.4px; 275 | cursor: pointer; 276 | background: #ffffff; 277 | border-radius: 0px; 278 | border: 0.2px solid #010101; 279 | } 280 | input[type=range]::-webkit-slider-thumb { 281 | border: 1px solid #000000; 282 | height: 23px; 283 | width: 16px; 284 | border-radius: 0px; 285 | background: #008000; 286 | cursor: pointer; 287 | -webkit-appearance: none; 288 | margin-top: -7.5px; 289 | } 290 | input[type=range]:focus::-webkit-slider-runnable-track { 291 | background: #ffffff; 292 | } 293 | input[type=range]::-moz-range-track { 294 | width: 100%; 295 | height: 8.4px; 296 | cursor: pointer; 297 | background: #ffffff; 298 | border-radius: 0px; 299 | border: 0.2px solid #010101; 300 | } 301 | input[type=range]::-moz-range-thumb { 302 | border: 1px solid #000000; 303 | height: 23px; 304 | width: 16px; 305 | border-radius: 0px; 306 | background: #008000; 307 | cursor: pointer; 308 | } 309 | input[type=range]::-ms-track { 310 | width: 100%; 311 | height: 8.4px; 312 | cursor: pointer; 313 | background: transparent; 314 | border-color: transparent; 315 | color: transparent; 316 | } 317 | input[type=range]::-ms-fill-lower { 318 | background: #ededed; 319 | border: 0.2px solid #010101; 320 | border-radius: 0px; 321 | } 322 | input[type=range]::-ms-fill-upper { 323 | background: #ffffff; 324 | border: 0.2px solid #010101; 325 | border-radius: 0px; 326 | } 327 | input[type=range]::-ms-thumb { 328 | border: 1px solid #000000; 329 | height: 23px; 330 | width: 16px; 331 | border-radius: 0px; 332 | background: #008000; 333 | cursor: pointer; 334 | height: 8.4px; 335 | } 336 | input[type=range]:focus::-ms-fill-lower { 337 | background: #ffffff; 338 | } 339 | input[type=range]:focus::-ms-fill-upper { 340 | background: #ffffff; 341 | } 342 | 343 | /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ 344 | 345 | @keyframes pulse { 346 | from { 347 | transform: scale3d(1, 1, 1); 348 | } 349 | 350 | 50% { 351 | transform: scale3d(1.01, 1.01, 1.01); 352 | } 353 | 354 | to { 355 | transform: scale3d(1, 1, 1); 356 | } 357 | } 358 | 359 | .pulse { 360 | animation-name: pulse; 361 | animation-timing-function: linear; 362 | backface-visibility: hidden; 363 | transform: translateZ(0); 364 | -webkit-font-smoothing: subpixel-antialiased; 365 | } 366 | 367 | .tui-table thead tr { 368 | border-bottom: 1px solid #a8a8a8; 369 | } 370 | .tui-table thead tr th { 371 | color: #202020; 372 | } 373 | .tui-table tbody tr td { 374 | padding: 0; 375 | color: black; 376 | } 377 | 378 | .tui-table { 379 | border: 2px solid #a8a8a8; 380 | padding: 5px; 381 | border-collapse: collapse; } 382 | .tui-table.hovered-blue tbody tr:hover { 383 | background-color: blue !important; 384 | color: black; } 385 | .tui-table.hovered-green tbody tr:hover { 386 | background-color: lime !important; 387 | color: black; } 388 | .tui-table.hovered-cyan tbody tr:hover { 389 | background-color: cyan !important; 390 | color: black; } 391 | .tui-table.hovered-red tbody tr:hover { 392 | background-color: red !important; 393 | color: white; } 394 | .tui-table.hovered-purple tbody tr:hover { 395 | background-color: magenta !important; 396 | color: white; } 397 | .tui-table.hovered-yellow tbody tr:hover { 398 | background-color: yellow !important; 399 | color: black; } 400 | .tui-table.hovered-white tbody tr:hover { 401 | background-color: white !important; 402 | color: black; } 403 | .tui-table.hovered-orange tbody tr:hover { 404 | background-color: #ffa800 !important; 405 | color: black; } 406 | .tui-table.hovered tbody tr:hover { 407 | background-color: cyan !important; 408 | color: black; } 409 | .tui-table.striped-blue tbody tr:nth-child(even) { 410 | background-color: #0000a8; } 411 | .tui-table.striped-green tbody tr:nth-child(even) { 412 | background-color: #00a800; } 413 | .tui-table.striped-cyan tbody tr:nth-child(even) { 414 | background-color: #00a8a8; } 415 | .tui-table.striped-red tbody tr:nth-child(even) { 416 | background-color: #a80000; } 417 | .tui-table.striped-purple tbody tr:nth-child(even) { 418 | background-color: #a800a8; } 419 | .tui-table.striped-yellow tbody tr:nth-child(even) { 420 | background-color: #a8a800; } 421 | .tui-table.striped-white tbody tr:nth-child(even) { 422 | background-color: #a8a8a8; 423 | color: black; } 424 | .tui-table.striped-orange tbody tr:nth-child(even) { 425 | background-color: #a85600; } 426 | 427 | .tui-table tbody { 428 | background-color: inherit; 429 | color: white; } 430 | 431 | .tui-table tbody tr td { 432 | border-right: 2px solid #a8a8a8; 433 | padding: 0px 2px; } 434 | 435 | .tui-table thead { 436 | background-color: inherit; 437 | color: yellow; 438 | text-align: center; } 439 | 440 | .tui-table tfoot { 441 | background-color: inherit; 442 | color: yellow; 443 | text-align: center; } 444 | 445 | .tui-table-grid { 446 | border-collapse: collapse; 447 | width: 100%; } 448 | 449 | .tui-table-grid thead tr td, 450 | .tui-table-grid tbody tr td, 451 | .tui-table-grid thead tr th, 452 | .tui-table-grid tbody tr th { 453 | border: 2px solid black; 454 | padding: 10px; 455 | vertical-align: top; } 456 | 457 | 458 | /* Tooltip container */ 459 | .tooltip { 460 | margin-left: 3px; 461 | position: relative; 462 | display: inline-block; 463 | border-bottom: 1px dotted black; /* If you want dots under the hoverable text */ 464 | cursor: pointer; 465 | } 466 | 467 | /* Tooltip text */ 468 | .tooltip .tooltiptext { 469 | font-size: 0.8em; 470 | visibility: hidden; 471 | width: 140px; 472 | background-color: #3465a4e6; 473 | color: white; 474 | text-align: center; 475 | padding: 5px 0; 476 | box-shadow: 2px 3px 0px -1px rgba(0,0,0,0.51); 477 | border-radius: 6px; 478 | margin-bottom: 6px; 479 | bottom: 100%; 480 | left: 50%; 481 | margin-left: -70px; 482 | /* Position the tooltip text - see examples below! */ 483 | position: absolute; 484 | z-index: 1; 485 | } 486 | 487 | .tooltiptext.long { 488 | width: 300px; 489 | margin-left: -150px; 490 | padding: 1em; 491 | } 492 | 493 | .tooltip .tooltiptext::after { 494 | content: " "; 495 | position: absolute; 496 | top: 100%; /* At the bottom of the tooltip */ 497 | left: 50%; 498 | transform: translateX(-50%); 499 | border-width: 5px; 500 | border-style: solid; 501 | border-color: #3465a4e6 transparent transparent transparent; 502 | } 503 | 504 | .tooltip .tooltiptext.long::after { 505 | margin-left: -1em; 506 | } 507 | 508 | /* Show the tooltip text when you mouse over the tooltip container */ 509 | .tooltip:hover .tooltiptext { 510 | text-align: center; 511 | visibility: visible; 512 | } 513 | 514 | .tooltiptext.inverse { 515 | background-color: #aaaaaa; 516 | } 517 | 518 | .tooltiptext.inverse::after { 519 | border-color: #aaaaaa transparent transparent transparent; 520 | } 521 | 522 | footer { 523 | flex-shrink: 0; 524 | display: flex; 525 | justify-content: center; 526 | flex-wrap: wrap; 527 | background: silver; 528 | font-weight: bolder; 529 | text-align: center; 530 | } 531 | 532 | @media only screen and (max-device-widtH: 730px) { 533 | footer { 534 | display: block; 535 | } 536 | footer a { 537 | display: block; 538 | } 539 | } 540 | 541 | 542 | h1 > img { 543 | 544 | height: 7rem !important; 545 | margin-top: -.9rem; 546 | 547 | } 548 | 549 | .info-message.gentle-message{ 550 | background: #202426; 551 | color: white; 552 | } 553 | 554 | .aligncontainer{ 555 | width: 50% !important; 556 | text-align: center; 557 | } --------------------------------------------------------------------------------