Compare commits

..

7 Commits

Author SHA1 Message Date
Fred Boniface 6c2b0e6271 Add notes
Signed-off-by: Fred Boniface <fred@fjla.uk>
2023-01-21 23:09:05 +00:00
Fred Boniface a3251a9061 Frontend: Move more images to SVG
Signed-off-by: Fred Boniface <fred@fjla.uk>
2023-01-21 22:53:56 +00:00
Fred Boniface 35e7a43237 Frontend:
- Minify SVG Files
 - Move all logos to default SVG with webp & png fallback
 - Update favicon & app icons

Signed-off-by: Fred Boniface <fred@fjla.uk>
2023-01-21 21:59:33 +00:00
Fred Boniface 7e5be79769 Add SVG Logos
Signed-off-by: Fred Boniface <fred@fjla.uk>
2023-01-21 20:57:00 +00:00
Fred Boniface 76bd9d93ec Fix loading again
Signed-off-by: Fred Boniface <fred@fjla.uk>
2023-01-21 20:35:11 +00:00
Fred Boniface db2300e4f4 Fix loading box
Signed-off-by: Fred Boniface <fred@fjla.uk>
2023-01-21 20:33:15 +00:00
Fred Boniface 88ae58368e Frontend:
- Make all theme colours CSS Vars.
 - Dynamic text in loading box.

Signed-off-by: Fred Boniface <fred@fjla.uk>
2023-01-21 20:24:59 +00:00
57 changed files with 285 additions and 127 deletions

View File

@ -1,7 +1,19 @@
# What to do next:
* Backend - Add Indexes:
## Frontend:
* Implement error pages.
* Still need SVG Fallback option for alert icon on board.html
* Alerts box should not be clickable, bar should be.
* Issue page: Submit using API.
* Support multiple service origins/destinations:
- Where there are multiples an array is returned for trainServices.service
* Enable text search for `locationName` on find-code page.
## Backend:
* DB Indexes:
- "stations": 3ALPHA, STANOX, TIPLOC
- "corpus": 3ALPHA, NLC, NLCDESC(TEXT)
* Backend - The list of services should always be an array [] as per the NRCC MEssages.
* Frontend - Implement error pages
* Add Gitea Issue API

View File

@ -1,3 +1,4 @@
.dockerignore
Dockerfile
*.xcf
*.inkscape.svg

View File

@ -10,7 +10,7 @@
<title>OwlBoard - Loading</title>
<link rel="stylesheet" type="text/css" href="./styles/main.css"/>
<link rel="stylesheet" type="text/css" href="./styles/boards.css"/>
<link rel="icon" type="image/png" href="./images/logo/logo-sq-256.png"/>
<link rel="icon" type="image/svg+xml" href="./images/icon.svg"/>
<link rel="manifest" type="application/json" href="./manifest.json"/>
<script src="./js/main.js" defer></script>
<script src="./js/boards.js" defer></script>
@ -20,7 +20,7 @@
<div id="loading">
<div class="spinner">
</div>
<p>Loading</p>
<p id="loading_desc">\nLoading</p>
</div>
<div id="content">
@ -34,18 +34,19 @@
</div>
</div>
<div id="alerts">
<div id="alerts" onclick="">
<div id="alerts_bar" onclick="inflateAlerts()">
<img id="alert_icon" src="./images/nav/alert_icon.svg" alt="">
<p id="alert_bar_note"></p>
<button id="alert_expand_arrow">&#8897;</button>
<div id="alerts_msg">
<div id="alerts_msg" onclick="NULL">
</div>
</div>
</div>
<div id="output">
<table>
<caption>Train Services</caption>
<tr>
<th class="name">Origin</th>
<th class="name">Dest.</th>
@ -61,9 +62,9 @@
</div>
</div>
<div id="ferry" class="hide-when-loading">
<p>Ferry Services</p>
<div id="ferry" class="hide-when-loading secondary-table">
<table>
<caption>Ferry Services</caption>
<tr>
<th class="name">Origin</th>
<th class="name">Dest.</th>
@ -76,9 +77,9 @@
</table>
</div>
<div id="bus" class="hide-when-loading">
<p>Bus Services</p>
<div id="bus" class="hide-when-loading secondary-table">
<table>
<caption>Bus Services</caption>
<tr>
<th class="name">Origin</th>
<th class="name">Dest.</th>
@ -100,10 +101,21 @@
</div>
<div id="footer">
<picture>
<source srcset="./images/nre/nre-powered_200w.webp" type="image/webp">
<img id="nre_logo" src="./images/nre/nre-powered_200w.webp" alt="Powered by National Rail Enquiries">
<picture id="nre_logo">
<source srcset="./images/nre/nre-powered_400w.jxl" type="image/jxl">
<source srcset="./images/nre/nre-powered_400w.webp" type="image/webp">
<img src="./images/nre/nre-powered_400w.png" alt="Powered by National Rail Enquiries">
</picture>
<a href="/">
<picture id="owlboard_logo">
<source srcset="./images/logo/mono-logo.svg" type="image/svg+xml">
<img src="./images/logo/mono-logo-33.png" alt="OwlBoard Logo">
</picture>
<picture id="home_icon">
<source srcset="./images/nav/home_icon.svg" type="image/svg+xml">
<img src="./images/nav/home_icon-40.png" type="image/png" alt="Home">
</picture>
</a>
</div>
</div>
</body>

View File

@ -9,7 +9,7 @@
<meta name="theme-color" content="#155bb7">
<link rel="stylesheet" type="text/css" href="./styles/main.css"/>
<link rel="stylesheet" type="text/css" href="./styles/find-code.css"/>
<link rel="icon" type="image/png" href="./images/logo/logo-sq-256.png"/>
<link rel="icon" type="image/svg+xml" href="./images/icon.svg"/>
<link rel="manifest" type="application/json" href="./manifest.json"/>
<title>OwlBoard - Code Lookup</title>
<script src="./js/main.js" defer></script>
@ -22,13 +22,11 @@
<button aria-label="Back" class="sidebar_control" onclick="history.back()">&#8678;</button>
</div>
<picture>
<source media="(max-width:450px)" srcset="/images/logo/logo-full-256.webp" type="image/webp">
<source media="(max-width:450px)" srcset="/images/logo/logo-full-256.png" type="image/png">
<source srcset="/images/logo/logo-full-512.webp" type="image/webp">
<source srcset="/images/logo/logo-full-512.png" type="image/png">
<img class="titleimg" src="./images/logo/logo-full-512.png" alt="OwlBoard Logo">
</picture>
<picture>
<source srcset="/images/logo/wide_logo.svg" type="image/svg+xml">
<source srcset="/images/logo/logo-full-256.webp" type="image/webp">
<img class="titleimg" src="/images/logo/logo-full-256.png" alt="OwlBoard Logo">
</picture>
<h2>Code Lookup</h2>
<p>Enter one known code in the relevant box below and hit submit.
Where they exist, the other code types will be filled in.</p>
@ -38,7 +36,7 @@
<div id="loading">
<div class="spinner">
</div>
<p>Searching</p>
<p id="loading_desc">Searching</p>
</div>
<label for="name">Location name:</label><br>

View File

@ -8,7 +8,7 @@
<meta name="author" content="Frederick Boniface">
<meta name="theme-color" content="#155bb7">
<link rel="stylesheet" type="text/css" href="./styles/main.css"/>
<link rel="icon" type="image/png" href="./images/logo/logo-sq-256.png"/>
<link rel="icon" type="image/svg+xml" href="./images/icon.svg"/>
<link rel="manifest" type="application/json" href="./manifest.json"/>
<title>OwlBoard</title>
</head>
@ -20,14 +20,10 @@
</div>
<picture>
<source media="(min-width:800px)" secset="./images/logo/logo-full-715.webp" type="image/webp">
<source media="(min-width:800px)" srcset="./images/logo/logo-full-715.png" type="image/png">
<source media="(min-width:700px)" srcset="./images/logo/logo-full-512.webp" type="image/webp">
<source media="(min-width:700px)" srcset="./images/logo/logo-full-512.png" type="image/png">
<source media="(min-width:450px)" srcset="./images/logo/logo-full-256.webp" type="image/png">
<source media="(min-width:450px)" srcset="./images/logo/logo-full-256.png" type="image/png">
<img class="titleimg" src="./images/logo/logo-full-512.png" alt="OwlBoard Logo">
</picture>
<source srcset="/images/logo/wide_logo.svg" type="image/svg+xml">
<source srcset="/images/logo/logo-full-256.webp" type="image/webp">
<img class="titleimg" src="/images/logo/logo-full-256.png" alt="OwlBoard Logo">
</picture>
<h2>Help</h2>
<p>OwlBoard gives you quick and easy access to departure boards for
all National Rail stations in the UK.</p>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -8,6 +8,13 @@
width="880"
height="880"
viewBox="0 0 880 880"
sodipodi:docname=".wide-logo-inkscape.svg"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
inkscape:export-filename="mono-logo.svg"
inkscape:export-xdpi="100"
inkscape:export-ydpi="100"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
@ -17,32 +24,112 @@
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
id="defs1085"><rect
x="556.24974"
y="416.63327"
width="844.34721"
height="241.55865"
id="rect7257" /><rect
x="31.025882"
y="1254.3321"
width="239.34252"
height="39.890419"
id="rect7179" /><rect
x="425.4978"
y="106.37445"
width="394.47192"
height="272.58453"
id="rect947" /></defs><g
width="413.53425"
height="183.62704"
id="rect947" /><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath1097"><path
d="M 0,660 H 660 V 0 H 0 Z"
id="path1095"
inkscape:connector-curvature="0" /></clipPath></defs><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1007"
id="namedview1083"
showgrid="false"
inkscape:zoom="0.45123617"
inkscape:cx="944.07326"
inkscape:cy="469.82049"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="g1089"
inkscape:showpageshadow="2"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
showguides="true"><sodipodi:guide
position="768.99864,381.36976"
orientation="1,0"
id="guide1739"
inkscape:locked="false" /><sodipodi:guide
position="-409.98486,802.4353"
orientation="0,-1"
id="guide1741"
inkscape:locked="false" /></sodipodi:namedview><g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="bbf"><rect
style="fill:#fcfc09;stroke-width:0.75;fill-opacity:1"
id="rect1066"
width="61.49773"
height="36.566219"
x="152.91328"
y="-472.18262"
transform="matrix(1.3333333,0,0,1.3333333,0,880)"
inkscape:export-filename="wide_logo.svg"
inkscape:export-xdpi="100"
inkscape:export-ydpi="100" /><rect
style="fill:#f0ffff;fill-opacity:1"
id="rect5117"
width="181.72302"
height="68.700165"
x="157.34554"
y="177.29076" /></g><g
id="g1089"
inkscape:groupmode="layer"
inkscape:label="owl-silhouette-freesvg.org"
transform="matrix(1.3333333,0,0,-1.3333333,0,880)"><g
id="g1337"
style="fill:#00b7b7;fill-opacity:1"><path
inkscape:connector-curvature="0"
id="path1191"
style="fill:#00b7b7;fill-opacity:1;fill-rule:evenodd;stroke:none"
d="m 112.253,369.323 c 12.988,-10.101 30.989,0.076 39.875,15.722 9.969,-34.512 37.501,-53.367 57.648,-37.596 -6.503,-20.085 -34.373,-34.554 -61.522,13.215 -15.947,-14.598 -28.559,-14.416 -36.001,8.659 m 14.302,-81.369 c 15.405,-6.791 28.15,7.974 30.66,25.885 21.351,-31.973 53.097,-43.81 65.802,-22.905 1.237,-21.743 -18.954,-43.315 -60.644,-2.464 -9.305,-18.663 -20.837,-21.694 -35.818,-0.516 m 33.549,175.931 24.381,-9.342 24.382,9.342 -24.382,-24.381 z m -14.899,47.955 c 1.574,0 3.075,-0.31 4.448,-0.869 -1.973,-1.1 -3.309,-3.206 -3.309,-5.626 0,-3.554 2.883,-6.436 6.437,-6.436 1.608,0 3.079,0.59 4.208,1.566 0.005,-0.143 0.008,-0.284 0.008,-0.428 0,-6.512 -5.28,-11.791 -11.792,-11.791 -6.512,0 -11.791,5.279 -11.791,11.791 0,6.513 5.279,11.793 11.791,11.793 m 77.642,0 c 1.573,0 3.075,-0.31 4.447,-0.869 -1.973,-1.1 -3.308,-3.206 -3.308,-5.626 0,-3.554 2.882,-6.436 6.437,-6.436 1.608,0 3.079,0.59 4.207,1.566 0.006,-0.143 0.009,-0.284 0.009,-0.428 0,-6.512 -5.28,-11.791 -11.792,-11.791 -6.513,0 -11.792,5.279 -11.792,11.791 0,6.513 5.279,11.793 11.792,11.793 m 0,8.887 c 11.421,0 20.677,-9.259 20.677,-20.68 0,-11.42 -9.256,-20.677 -20.677,-20.677 -11.42,0 -20.678,9.257 -20.678,20.677 0,11.421 9.258,20.68 20.678,20.68 m -77.642,0 c 11.42,0 20.679,-9.259 20.679,-20.68 0,-11.42 -9.259,-20.677 -20.679,-20.677 -11.42,0 -20.678,9.257 -20.678,20.677 0,11.421 9.258,20.68 20.678,20.68 M 367.82,249.402 c -5.257,-16.303 -14.169,-16.431 -25.436,-6.118 -19.182,-33.751 -38.872,-23.527 -43.468,-9.336 14.236,-11.143 33.688,2.178 40.73,26.562 6.28,-11.055 18.998,-18.245 28.174,-11.108 m -7.657,101.75 c -5.26,-16.304 -14.169,-16.433 -25.436,-6.118 -19.182,-33.751 -38.873,-23.529 -43.469,-9.338 14.236,-11.142 33.688,2.179 40.731,26.564 6.279,-11.055 18.997,-18.247 28.174,-11.108 m 3.828,-50.877 c -5.259,-16.302 -14.168,-16.429 -25.435,-6.117 -19.182,-33.752 -38.873,-23.528 -43.469,-9.338 14.236,-11.14 33.687,2.181 40.731,26.564 6.279,-11.055 18.996,-18.243 28.173,-11.109 m -184.999,-126.56 8.456,14.687 -2.481,14.064 c 8.24,-6.441 16.897,-12.257 25.895,-17.419 l -13.787,-20.682 c -5.163,5.163 -11.523,8.215 -18.083,9.35 m 214.435,47.276 -16.013,24.214 v 93.753 c 0,40.019 -32.441,72.459 -72.458,72.459 -37.742,0 -68.739,-28.855 -72.144,-65.707 -0.563,6.626 -0.974,13.336 -1.228,20.135 0,36.412 26.858,66.546 61.843,71.684 15.118,42.436 3.44,91.058 -31.815,121.878 -0.332,0.288 -0.668,0.569 -1.002,0.854 -14.934,-8.987 -28.921,-18.756 -41.766,-29.467 14.159,17.506 30.102,32.253 47.212,45.198 -47.368,32.008 -116.692,32.008 -164.058,0 17.11,-12.946 33.054,-27.694 47.212,-45.201 -11.522,9.609 -23.965,18.462 -37.188,26.67 -40.329,-37.119 -47.937,-98.2 -17.545,-144.158 4.83,-7.304 7.155,-15.981 6.624,-24.722 -3.808,-62.683 19.436,-123.991 63.84,-168.396 3.505,-3.505 7.116,-6.877 10.824,-10.115 l -15.66,-23.489 c -18.988,18.987 -54.154,9.494 -56.053,-19.369 4.94,7.294 12.965,10.334 21.93,10.306 4.624,3.683 10.595,5.668 18.277,5.498 -14.197,-2.669 -23.71,-11.684 -25.256,-26.007 9.826,11.065 21.246,13.643 34.785,11.262 -7.045,-4.94 -12.081,-12.841 -12.767,-23.274 4.941,7.293 12.965,10.335 21.932,10.303 1.457,1.162 3.047,2.155 4.783,2.963 0.557,-0.597 1.095,-1.202 1.614,-1.819 -7.504,-4.493 -12.316,-11.823 -13.378,-21.652 5.924,6.673 12.428,10.259 19.627,11.533 1.471,-3.662 2.152,-7.45 1.823,-11.24 4.057,2.964 6.698,7.077 8.006,11.651 2.475,-0.187 5.026,-0.574 7.654,-1.132 12.8,-8.149 22.377,-20.41 21.31,-32.736 11.849,8.659 11.621,27.116 1.367,38.28 l 8.659,15.04 -2.26,12.808 c 15.693,-7.825 32.28,-13.746 49.402,-17.626 -7.313,17.831 -12.59,36.793 -15.633,56.995 19.737,-52.989 51.201,-99.462 92.224,-140.627 3.548,-6.147 10.784,-9.143 17.64,-7.305 6.856,1.837 11.623,8.048 11.623,15.147 v 65.793 c 33.793,-9.913 62.771,-33.463 79.074,-66.13 l 119.851,29.509 c -14.567,69.186 -99.576,110.135 -175.589,96.362 z" /></g><text
xml:space="preserve"
transform="matrix(0.75000002,0,0,-0.75000002,-16.621008,676.62103)"
transform="scale(1,-1)"
id="text945"
style="font-size:106.667px;line-height:0.8;white-space:pre;shape-inside:url(#rect947);display:inline;fill:#00b7b7;fill-opacity:1"><tspan
x="425.49805"
y="179.42858"
id="tspan1391"><tspan
style="font-weight:600;font-family:'URW Gothic';-inkscape-font-specification:'URW Gothic Semi-Bold'"
id="tspan1389">OWL
style="font-size:139.509px;line-height:0.8;white-space:pre;display:inline;fill:#00b7b7;fill-opacity:1;stroke-width:1.30789"
inkscape:export-filename="wide_logo.svg"
inkscape:export-xdpi="100"
inkscape:export-ydpi="100"
x="314.13724"
y="-427.4906"><tspan
id="tspan1419"
style="stroke-width:1.30789"><tspan
style="font-weight:600;font-family:'URW Gothic';-inkscape-font-specification:'URW Gothic Semi-Bold';stroke-width:1.30789"
id="tspan1417">OWL
</tspan></tspan><tspan
x="425.49805"
y="269.65554"
id="tspan1397"><tspan
style="font-weight:600;font-family:'URW Gothic';-inkscape-font-specification:'URW Gothic Semi-Bold'"
id="tspan1393"> </tspan><tspan
style="font-size:96px;font-family:'URW Gothic';-inkscape-font-specification:'URW Gothic'"
id="tspan1395">BOARD</tspan></tspan></text></g></svg>
id="tspan1425"
style="stroke-width:1.30789" /></text><text
xml:space="preserve"
transform="matrix(0.75000002,0,0,-0.75000002,0,660.00002)"
id="text7177"
style="fill:#f0ffff;fill-opacity:1;white-space:pre;shape-inside:url(#rect7179)" /><text
xml:space="preserve"
transform="matrix(0.75000002,0,0,-0.75000002,-19.94521,727.82195)"
id="text7255"
style="font-size:186.012px;white-space:pre;shape-inside:url(#rect7257);fill:#00b7b7;fill-opacity:1"><tspan
x="556.25"
y="585.88051"
id="tspan9474"><tspan
style="font-family:'URW Gothic';-inkscape-font-specification:'URW Gothic'"
id="tspan9472">BOARD</tspan></tspan></text></g></svg>

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 176 KiB

2
static/images/icon.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" viewBox="0 0 667.26 706.8" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><metadata><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/></cc:Work></rdf:RDF></metadata><g transform="matrix(1.3333 0 0 -1.3333 -101.19 800)"><g fill="#fff"><path d="m112.25 369.32c12.988-10.101 30.989 0.076 39.875 15.722 9.969-34.512 37.501-53.367 57.648-37.596-6.503-20.085-34.373-34.554-61.522 13.215-15.947-14.598-28.559-14.416-36.001 8.659m14.302-81.369c15.405-6.791 28.15 7.974 30.66 25.885 21.351-31.973 53.097-43.81 65.802-22.905 1.237-21.743-18.954-43.315-60.644-2.464-9.305-18.663-20.837-21.694-35.818-0.516m33.549 175.93 24.381-9.342 24.382 9.342-24.382-24.381zm-14.899 47.955c1.574 0 3.075-0.31 4.448-0.869-1.973-1.1-3.309-3.206-3.309-5.626 0-3.554 2.883-6.436 6.437-6.436 1.608 0 3.079 0.59 4.208 1.566 5e-3 -0.143 8e-3 -0.284 8e-3 -0.428 0-6.512-5.28-11.791-11.792-11.791s-11.791 5.279-11.791 11.791c0 6.513 5.279 11.793 11.791 11.793m77.642 0c1.573 0 3.075-0.31 4.447-0.869-1.973-1.1-3.308-3.206-3.308-5.626 0-3.554 2.882-6.436 6.437-6.436 1.608 0 3.079 0.59 4.207 1.566 6e-3 -0.143 9e-3 -0.284 9e-3 -0.428 0-6.512-5.28-11.791-11.792-11.791-6.513 0-11.792 5.279-11.792 11.791 0 6.513 5.279 11.793 11.792 11.793m0 8.887c11.421 0 20.677-9.259 20.677-20.68 0-11.42-9.256-20.677-20.677-20.677-11.42 0-20.678 9.257-20.678 20.677 0 11.421 9.258 20.68 20.678 20.68m-77.642 0c11.42 0 20.679-9.259 20.679-20.68 0-11.42-9.259-20.677-20.679-20.677s-20.678 9.257-20.678 20.677c0 11.421 9.258 20.68 20.678 20.68m222.62-271.32c-5.257-16.303-14.169-16.431-25.436-6.118-19.182-33.751-38.872-23.527-43.468-9.336 14.236-11.143 33.688 2.178 40.73 26.562 6.28-11.055 18.998-18.245 28.174-11.108m-7.657 101.75c-5.26-16.304-14.169-16.433-25.436-6.118-19.182-33.751-38.873-23.529-43.469-9.338 14.236-11.142 33.688 2.179 40.731 26.564 6.279-11.055 18.997-18.247 28.174-11.108m3.828-50.877c-5.259-16.302-14.168-16.429-25.435-6.117-19.182-33.752-38.873-23.528-43.469-9.338 14.236-11.14 33.687 2.181 40.731 26.564 6.279-11.055 18.996-18.243 28.173-11.109m-185-126.56 8.456 14.687-2.481 14.064c8.24-6.441 16.897-12.257 25.895-17.419l-13.787-20.682c-5.163 5.163-11.523 8.215-18.083 9.35m214.44 47.276-16.013 24.214v93.753c0 40.019-32.441 72.459-72.458 72.459-37.742 0-68.739-28.855-72.144-65.707-0.563 6.626-0.974 13.336-1.228 20.135 0 36.412 26.858 66.546 61.843 71.684 15.118 42.436 3.44 91.058-31.815 121.88-0.332 0.288-0.668 0.569-1.002 0.854-14.934-8.987-28.921-18.756-41.766-29.467 14.159 17.506 30.102 32.253 47.212 45.198-47.368 32.008-116.69 32.008-164.06 0 17.11-12.946 33.054-27.694 47.212-45.201-11.522 9.609-23.965 18.462-37.188 26.67-40.329-37.119-47.937-98.2-17.545-144.16 4.83-7.304 7.155-15.981 6.624-24.722-3.808-62.683 19.436-123.99 63.84-168.4 3.505-3.505 7.116-6.877 10.824-10.115l-15.66-23.489c-18.988 18.987-54.154 9.494-56.053-19.369 4.94 7.294 12.965 10.334 21.93 10.306 4.624 3.683 10.595 5.668 18.277 5.498-14.197-2.669-23.71-11.684-25.256-26.007 9.826 11.065 21.246 13.643 34.785 11.262-7.045-4.94-12.081-12.841-12.767-23.274 4.941 7.293 12.965 10.335 21.932 10.303 1.457 1.162 3.047 2.155 4.783 2.963 0.557-0.597 1.095-1.202 1.614-1.819-7.504-4.493-12.316-11.823-13.378-21.652 5.924 6.673 12.428 10.259 19.627 11.533 1.471-3.662 2.152-7.45 1.823-11.24 4.057 2.964 6.698 7.077 8.006 11.651 2.475-0.187 5.026-0.574 7.654-1.132 12.8-8.149 22.377-20.41 21.31-32.736 11.849 8.659 11.621 27.116 1.367 38.28l8.659 15.04-2.26 12.808c15.693-7.825 32.28-13.746 49.402-17.626-7.313 17.831-12.59 36.793-15.633 56.995 19.737-52.989 51.201-99.462 92.224-140.63 3.548-6.147 10.784-9.143 17.64-7.305 6.856 1.837 11.623 8.048 11.623 15.147v65.793c33.793-9.913 62.771-33.463 79.074-66.13l119.85 29.509c-14.567 69.186-99.576 110.14-175.59 96.362z" fill="#fff" fill-rule="evenodd"/></g></g></svg>

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.8 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

View File

@ -1,10 +1,10 @@
<?xml version="1.0"?>
<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://web.resource.org/cc/" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:svg="http://www.w3.org/2000/svg" xml:space="preserve" version="1.1" enable-background="new 0 0 448 433" viewBox="0 0 448 433">
<radialGradient id="XMLID_1_" gradientUnits="userSpaceOnUse" cy="393.79" cx="216.7" r="296.7">
<?xml version="1.0" encoding="UTF-8"?>
<svg enable-background="new 0 0 448 433" version="1.1" viewBox="0 0 448 433" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<radialGradient id="a" cx="216.7" cy="393.79" r="296.7" gradientUnits="userSpaceOnUse">
<stop stop-color="#F4D708" offset="0"/>
<stop stop-color="#FCB400" offset="1"/>
</radialGradient>
<path d="m8.551 390.5l184.85-368.8s26.409-31.504 52.815 0c26.41 31.501 180.19 370.65 180.19 370.65s3.105 18.534-27.961 18.534-361.94 0-361.94 0-23.299 0-27.959-20.38z" fill="url(#XMLID_1_)"/>
<path stroke="#E2A713" stroke-width="5" d="m8.551 390.5l184.85-368.8s26.409-31.504 52.815 0c26.41 31.501 180.19 370.65 180.19 370.65s3.105 18.534-27.961 18.534-361.94 0-361.94 0-23.299 0-27.959-20.38z" fill="none"/>
<path d="m8.551 390.5 184.85-368.8s26.409-31.504 52.815 0c26.41 31.501 180.19 370.65 180.19 370.65s3.105 18.534-27.961 18.534-361.94 0-361.94 0-23.299 0-27.959-20.38z" fill="url(#a)"/>
<path d="m8.551 390.5 184.85-368.8s26.409-31.504 52.815 0c26.41 31.501 180.19 370.65 180.19 370.65s3.105 18.534-27.961 18.534-361.94 0-361.94 0-23.299 0-27.959-20.38z" fill="none" stroke="#E2A713" stroke-width="5"/>
<path d="m212.5 292.63c-13.168-79.969-19.75-123.12-19.75-129.45 0-7.703 2.551-13.926 7.66-18.676 5.105-4.746 10.871-7.121 17.293-7.121 6.949 0 12.82 2.535 17.609 7.598s7.188 11.023 7.188 17.883c0 6.543-6.668 49.801-20 129.77h-10zm27 38.17c0 6.098-2.156 11.301-6.469 15.613-4.313 4.309-9.461 6.465-15.453 6.465-6.098 0-11.301-2.156-15.613-6.465-4.313-4.313-6.465-9.516-6.465-15.613 0-5.992 2.152-11.141 6.465-15.453s9.516-6.469 15.613-6.469c5.992 0 11.141 2.156 15.453 6.469s6.48 9.45 6.48 15.44z"/>
<metadata><rdf:RDF><cc:Work><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><cc:license rdf:resource="http://creativecommons.org/licenses/publicdomain/"/><dc:publisher><cc:Agent rdf:about="http://openclipart.org/"><dc:title>Openclipart</dc:title></cc:Agent></dc:publisher><dc:title>Warning Notification</dc:title><dc:date>2007-02-08T17:08:47</dc:date><dc:description>Beveled yellow caution sign</dc:description><dc:source>http://openclipart.org/detail/3130/warning-notification-by-eastshores</dc:source><dc:creator><cc:Agent><dc:title>eastshores</dc:title></cc:Agent></dc:creator><dc:subject><rdf:Bag><rdf:li>alert</rdf:li><rdf:li>caution</rdf:li><rdf:li>clip art</rdf:li><rdf:li>clipart</rdf:li><rdf:li>icon</rdf:li><rdf:li>image</rdf:li><rdf:li>media</rdf:li><rdf:li>public domain</rdf:li><rdf:li>svg</rdf:li><rdf:li>warning</rdf:li></rdf:Bag></dc:subject></cc:Work><cc:License rdf:about="http://creativecommons.org/licenses/publicdomain/"><cc:permits rdf:resource="http://creativecommons.org/ns#Reproduction"/><cc:permits rdf:resource="http://creativecommons.org/ns#Distribution"/><cc:permits rdf:resource="http://creativecommons.org/ns#DerivativeWorks"/></cc:License></rdf:RDF></metadata></svg>

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 859 B

View File

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" viewBox="0 0 97.74 85.154" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<metadata>
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title/>
</cc:Work>
</rdf:RDF>
</metadata>
<g transform="translate(-51.081 -910.49)">
<path d="m100.72 910.49-24.82 23.287-24.82 23.285 16.678 0.084v38.498h23.467v-32.783h17.453v32.783h23.467v-38.174l16.676 0.084-48.1-47.064z" color="#000000" color-rendering="auto" fill="#fff" fill-rule="evenodd" image-rendering="auto" shape-rendering="auto" solid-color="#000000" style="isolation:auto;mix-blend-mode:normal"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 836 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

View File

@ -8,7 +8,7 @@
<meta name="author" content="Frederick Boniface">
<meta name="theme-color" content="#155bb7">
<link rel="stylesheet" type="text/css" href="./styles/main.css"/>
<link rel="icon" type="image/png" href="./images/logo/logo-sq-256.png"/>
<link rel="icon" type="image/svg+xml" href="./images/icon.svg"/>
<link rel="manifest" type="application/json" href="./manifest.json"/>
<script src="./js/main.js" defer></script>
<script src="./js/index.js" defer></script>
@ -20,7 +20,7 @@
<div id="loading">
<div class="spinner">
</div>
<p>Loading</p>
<p id="loading_desc">Loading</p>
</div>
<!-- Popup Menu -->
@ -38,13 +38,9 @@
<!-- Main Content Begins -->
<picture>
<source media="(max-width:450px)" srcset="/images/logo/logo-full-256.webp" type="image/webp">
<source media="(max-width:450px)" srcset="/images/logo/logo-full-256.png" type="image/png">
<source media="(max-width:700px)" srcset="/images/logo/logo-full-512.webp" type="image/webp">
<source media="(max-width:700px)" srcset="/images/logo/logo-full-512.png" type="image/png">
<source srcset="/images/logo/logo-full-715.webp" type="image/webp">
<source srcset="/images/logo/logo-full-715.png" type="image/png">
<img class="titleimg" src="/images/logo/logo-full-512.png" alt="OwlBoard Logo">
<source srcset="/images/logo/wide_logo.svg" type="image/svg+xml">
<source srcset="/images/logo/logo-full-256.webp" type="image/webp">
<img class="titleimg" src="/images/logo/logo-full-256.png" alt="OwlBoard Logo">
</picture>
<br>
<form action="board.html">

View File

@ -7,24 +7,20 @@
<meta name="author" content="Frederick Boniface">
<meta name="theme-color" content="#155bb7">
<link rel="stylesheet" type="text/css" href="./styles/main.css"/>
<link rel="icon" type="image/png" href="./images/logo/logo-sq-256.png"/>
<link rel="icon" type="image/svg+xml" href="./images/icon.svg"/>
<link rel="manifest" type="application/json" href="./manifest.json"/>
<title>OwlBoard - Report</title>
</head>
<body>
<div id="top_button" class="hide_micro">
<button aria-label="Back" class="sidebar_control" onclick="history.back()">&#8678;</button>
</div>
<picture>
<source media="(min-width:800px)" secset="/images/logo/logo-full-715.webp" type="image/webp">
<source media="(min-width:800px)" srcset="/images/logo/logo-full-715.png" type="image/png">
<source media="(min-width:700px)" srcset="/images/logo/logo-full-512.webp" type="image/webp">
<source media="(min-width:700px)" srcset="/images/logo/logo-full-512.png" type="image/png">
<source media="(min-width:450px)" srcset="/images/logo/logo-full-256.webp" type="image/png">
<source media="(min-width:450px)" srcset="/images/logo/logo-full-256.png" type="image/png">
<img class="titleimg" src="/images/logo/logo-full-512.png" alt="OwlBoard Logo">
</picture>
<h2>Report an Issue</h2>
<div id="top_button" class="hide_micro">
<button aria-label="Back" class="sidebar_control" onclick="history.back()">&#8678;</button>
</div>
<picture>
<source srcset="/images/logo/wide_logo.svg" type="image/svg+xml">
<source srcset="/images/logo/logo-full-256.webp" type="image/webp">
<img class="titleimg" src="/images/logo/logo-full-256.png" alt="OwlBoard Logo">
</picture>
<h2>Report an Issue</h2>
<p>This page's functionality is not yet implemented.</p>
<form>
<label for="subject">Subject:</label><br>

View File

@ -23,19 +23,24 @@ async function fetchEntry(){ // This can be condensed
async function parseData(values){
if (values.crs != ""){
setLoadingDesc(`Searching\n${values.crs.toUpperCase()}`)
var data = await getData("crs", values.crs)
} else if (values.nlc != ""){
setLoadingDesc(`Searching\n${values.nlc.toUpperCase()}`)
var data = await getData("nlc", values.nlc)
} else if (values.tiploc != ""){
setLoadingDesc(`Searching\n${values.tiploc.toUpperCase()}`)
var data = await getData("tiploc", values.tiploc)
} else if (values.stanox != ""){
setLoadingDesc(`Searching\n${values.stanox.toUpperCase()}`)
var data = await getData("stanox", values.stanox)
} else if (values.name != ""){
setLoadingDesc(`Searching\n${values.name.capitalize()}`)
var data = await getData("name", values.name)
} else {
errorNoData()
hideLoading()
return
return;
}
displayData(data);

View File

@ -1,4 +1,4 @@
// Toggle Loading Box
// Loading Box
async function clearLoading() {
document.getElementById("loading").style = "display: none;";
}
@ -7,6 +7,10 @@ async function showLoading() {
document.getElementById("loading").style = "display: block;";
}
async function setLoadingDesc(desc) {
document.getElementById("loading_desc").textContent = `${desc}`;
}
// Enable delays
const delay = ms => new Promise(res => setTimeout(res, ms));

View File

@ -3,7 +3,9 @@ init()
/* Supporting Functions */
async function init() {
setLoadingDesc(`Loading\nservices`)
var stn = await getQuery("stn");
setLoadingDesc(`Loading\n${stn.toUpperCase()}`)
log(`init: Looking up: ${stn}`);
var sv = await getQuery("sv");
log(`init: Staff Version: ${sv}`);
@ -13,10 +15,12 @@ async function init() {
} else {
try {
var data = await publicLdb(stn)
setLoadingDesc(`${stn.toUpperCase()}\nParsing Data`)
log("init: Fetched LDB Data")
parseLdb(data)
} catch (err) {
var data = null
setLoadingDesc(`Handling\nError`)
log("init: Unable to fetch LDB data")
}
}
@ -54,6 +58,7 @@ async function parseLdb(data) {
// Build and Display Functions
async function buildPage(data) {
setLoadingDesc('Loading\nTrains')
var stationName = data.GetStationBoardResult.locationName;
log(`buildPage: Data ready for ${stationName}`);
var generateTime = new Date(await data.GetStationBoardResult.generatedAt);
@ -61,6 +66,7 @@ async function buildPage(data) {
setHeaders(stationName, generateTime);
// Check for notices and if true pass to function
if (data.GetStationBoardResult.nrccMessages) {
setLoadingDesc('Loading\nAlerts')
displayAlerts(data.GetStationBoardResult.nrccMessages.message);
}
if (typeof data.GetStationBoardResult.trainServices == 'undefined') {
@ -69,9 +75,11 @@ async function buildPage(data) {
displayTrains(data)
}
if (data.GetStationBoardResult.ferryServices) {
setLoadingDesc('Loading\nFerries')
displayFerry(data.GetStationBoardResult.ferryServices)
}
if (data.GetStationBoardResult.busServices) {
setLoadingDesc('Loading\nBusses')
displayBus(data.GetStationBoardResult.busServices)
}
}

View File

@ -11,12 +11,6 @@
"orientation": "portrait",
"theme_color": "#155bb7",
"icons": [
{
"src": "/images/app-icons/maskable/app-1200.png",
"sizes": "1200x1200",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "/images/app-icons/maskable/app-768.png",
"sizes": "768x768",
@ -41,27 +35,17 @@
"type": "image/png",
"purpose": "maskable"
},
{
"src": "/images/app-icons/maskable/app-128.png",
"sizes": "128x128",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "/images/app-icons/maskable/app-76.png",
"sizes": "76x76",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "/images/app-icons/any/app-512.png",
"sizes": "512x512",
"type": "image/png"
"type": "image/png",
"purpose": "any"
},
{
"src": "/images/app-icons/any/app-256.png",
"sizes": "256x256",
"type": "image/png"
"type": "image/png",
"purpose": "any"
}
]
}

View File

@ -9,7 +9,7 @@
<meta name="theme-color" content="#155bb7">
<link rel="stylesheet" type="text/css" href="./styles/main.css"/>
<link rel="stylesheet" type="text/css" href="./styles/settings.css"/>
<link rel="icon" type="image/png" href="./images/logo/logo-sq-256.png"/>
<link rel="icon" type="image/svg+xml" href="./images/icon.svg"/>
<link rel="manifest" type="application/json" href="./manifest.json"/>
<title>OwlBoard - Settings</title>
<script src="./js/main.js" defer></script>
@ -28,17 +28,14 @@
</div>
<picture>
<source srcset="./images/logo/logo-full-256.webp" type="image/webp">
<source srcset="./images/logo/logo-full-256.png" type="image/png">
<img class="titleimg" src="./images/logo/logo-full-256.png" alt="OwlBoard Logo">
</picture>
<h2>Settings</h2>
<p>Change your OwlBoard settings.</p>
<p>Any settings you apply will only apply to the device you are using now.</p>
<source srcset="/images/logo/wide_logo.svg" type="image/svg+xml">
<source srcset="/images/logo/logo-full-256.webp" type="image/webp">
<img class="titleimg" src="/images/logo/logo-full-256.png" alt="OwlBoard Logo">
</picture>
<h2>Settings</h2>
<p>Any settings you apply will only apply to the device you are using now.</p>
<p>Settings are not yet fully implemented, some options won't apply properly yet.</p>
<label>Personal Quick Links:</label><br>
<label>Personal Quick Links:</label><br>
<p>Enter one CRS/3ALPHA code per box</p>
<input type="text" maxlength="3" id="ql0" name="ql0" autocomplete="off" class="small-lookup-box">
<input type="text" maxlength="3" id="ql1" name="ql1" autocomplete="off" class="small-lookup-box"><br>

View File

@ -28,7 +28,7 @@
width: 100%;
height: 50px;
background-color: var(--overlay-color);
color: lightgrey;
color: var(--second-text-color);
}
#station_name {
@ -84,8 +84,8 @@
left: 0;
width: 100%;
height: 40px;
background-color: darkorange;
color: white;
background-color: var(--main-alert-color);
color: var(--second-text-color);
}
#alert_icon{
@ -114,7 +114,7 @@
background: none;
border: none;
font-weight: 900;
color: white;
color: var(--second-text-color);
transition: transform 0.25s linear;
}
@ -124,7 +124,8 @@
left: 0;
top: 40px;
width: 100%;
background-color: orange;
background-color: var(--main-alert-color);
background-image: radial-gradient(var(--second-alert-color) 10%,var(--main-alert-color) 70%); /* Undecided whether this actually looks better than plain orange? */
}
#alerts_msg p {
@ -146,8 +147,16 @@ table {
margin-top: 3px;
font-size: 10.5px;
}
#ferry{
margin-top: 45px;
caption{
padding-top: 5px;
padding-bottom: 10px;
font-size: larger;
font-weight: 900;
}
.secondary-table{
margin-top: 25px;
}
.name{
width: 25%;
@ -155,7 +164,7 @@ table {
}
.name-item {
color: yellow;
color: var(--board-name-color);
}
.plat{
@ -174,7 +183,7 @@ table {
margin: 0;
margin-left: 3px;
text-align: left;
color: lightblue;
color: var(--note-text-color);
}
.changed{
@ -191,22 +200,41 @@ table {
left: 0;
width: 100%;
height: 40px;
background-color: var(--overlay-color);
background-image: linear-gradient(to left, var(--accent-color), azure 190px);
}
#footer img {
height: 35px;
}
#nre_logo {
position: absolute;
left: 3px;
top: 1px;
}
#owlboard_logo {
position: absolute;
right: 40px;
top: 3px;
}
#home_icon {
position: absolute;
width: 10px;
right: 30px;
top: 2px;
}
/* Animations */
@keyframes pulse-change {
50% {
color: orange;
color: var(--main-warning-color);
}
}
@keyframes pulse-cancel {
50% {
color: darkorange;
color: var(--main-alert-color);
}
}

View File

@ -34,11 +34,19 @@
/* COLOR VARS */
:root {
--main-bg-color: #404c55;
--second-bg-color: #2b343c; /* Use as first arg in radial gradient */
--accent-color: #007979;
--overlay-color: #3c6f79de;
--main-text-color: #00b7b7;
--second-text-color: azure;
--note-text-color: #9de7ff;
--link-color: azure;
--box-border-color: ;
--link-visited-color: azure;
--main-alert-color: #ed6d00;
--second-alert-color: #e77f00; /* Use as second arg in radial gradient */
--main-warning-color: orange;
--board-name-color: #fcfc09;
}
/* Loading Box: */
@keyframes spinner {
@ -53,7 +61,7 @@
animation: 1.5s linear infinite spinner;
animation-play-state: inherit;
border: solid 5px var(--overlay-color);
border-bottom-color: white;
border-bottom-color: var(--second-text-color);
border-radius: 50%;
content: "";
height: 40px;
@ -75,10 +83,12 @@
padding: 20px;
padding-bottom: 1px;
min-width: 90px;
max-width: 90px;
}
#loading p {
padding-top: 50px;
font-weight: bolder;
overflow-wrap: normal;
}
/* MAIN */
@ -88,6 +98,7 @@ html{
}
body {
background-color: var(--main-bg-color);
background-image: radial-gradient(var(--second-bg-color), var(--main-bg-color));
color: var(--main-text-color);
font-family: urwgothic, sans-serif;
text-align: center;
@ -286,7 +297,7 @@ footer {
background-color: var(--accent-color);
font-family: firamono, monospace;
font-size: smaller;
color: white;
color: var(--second-text-color);
width: 100%;
position: fixed;
bottom: 0;
@ -294,10 +305,10 @@ footer {
}
footer a {
text-decoration: underline;
color: white;
color: var(--link-color);
}
footer a:visited {
color: white;
color: var(--link-visited-color);
}
footer a:hover {
color: beige;