Compare commits
7 Commits
39511dd428
...
0.0.10
| Author | SHA1 | Date | |
|---|---|---|---|
| 84312abc75 | |||
| c6fa8794e0 | |||
| 8e65fd396e | |||
| 8a05d8358f | |||
| a8c3117259 | |||
| 2b2095604c | |||
| 08f3d30e44 |
@@ -6,6 +6,7 @@
|
|||||||
name="viewport"
|
name="viewport"
|
||||||
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"
|
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"
|
||||||
/>
|
/>
|
||||||
|
<link rel="manifest" href="/manifest.webmanifest" />
|
||||||
%sveltekit.head%
|
%sveltekit.head%
|
||||||
</head>
|
</head>
|
||||||
<body data-sveltekit-preload-data="hover">
|
<body data-sveltekit-preload-data="hover">
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 1.4 KiB |
17
src/lib/assets/global.css
Normal file
17
src/lib/assets/global.css
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
/* FONTS */
|
||||||
|
@font-face {
|
||||||
|
font-family: "urwgothic";
|
||||||
|
src: url("/fonts/urwgothic/urwgothic.woff2") format("woff2"), url("/font/urwgothic/urwgothic.woff") format("woff");
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: "urwgothic";
|
||||||
|
src: url("/fonts/urwgothic/urwgothicDemi.woff2") format("woff2"), url("/font/urwgothic/urwgothicDemi.woff") format("woff");
|
||||||
|
font-weight: 900;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
[id] {
|
||||||
|
scroll-margin-top: 100px;
|
||||||
|
}
|
||||||
@@ -6,9 +6,12 @@
|
|||||||
export let reversed: boolean = false;
|
export let reversed: boolean = false;
|
||||||
|
|
||||||
$: Icon = components[feature.type] || components.default;
|
$: Icon = components[feature.type] || components.default;
|
||||||
|
|
||||||
|
const slugify = (str?: string) =>
|
||||||
|
str?.toLocaleLowerCase().trim().replace(/\s+/g, '-') ?? 'unknown';
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="row-container">
|
<div class="row-container" id="{slugify(feature.name)}">
|
||||||
<div class="mileage-col">
|
<div class="mileage-col">
|
||||||
<span class="miles">{feature.miles + 'm' || ''}</span>
|
<span class="miles">{feature.miles + 'm' || ''}</span>
|
||||||
<span class="chains">{feature.chains + 'ch' || ''}</span>
|
<span class="chains">{feature.chains + 'ch' || ''}</span>
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import favicon from '$lib/assets/favicon.svg';
|
import favicon from '$lib/assets/favicon.svg';
|
||||||
|
import '$lib/assets/global.css';
|
||||||
|
|
||||||
let { children } = $props();
|
let { children } = $props();
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
import type { PageData } from './$types';
|
import type { PageData } from './$types';
|
||||||
import { base } from '$app/paths';
|
import { base } from '$app/paths';
|
||||||
export let data: PageData;
|
export let data: PageData;
|
||||||
|
import favicon from '$lib/assets/favicon.svg';
|
||||||
|
|
||||||
let searchTerm = '';
|
let searchTerm = '';
|
||||||
|
|
||||||
@@ -47,7 +48,7 @@
|
|||||||
<header class="main-header">
|
<header class="main-header">
|
||||||
<div class="brand-container">
|
<div class="brand-container">
|
||||||
<img
|
<img
|
||||||
src="https://owlboard.info/images/logo/wide_logo.svg"
|
src={favicon}
|
||||||
alt="OwlBoard Logo"
|
alt="OwlBoard Logo"
|
||||||
class="main-logo"
|
class="main-logo"
|
||||||
/>
|
/>
|
||||||
@@ -147,10 +148,10 @@
|
|||||||
.brand-text h1 {
|
.brand-text h1 {
|
||||||
font-size: 1.5rem;
|
font-size: 1.5rem;
|
||||||
font-weight: 900;
|
font-weight: 900;
|
||||||
|
font-family: "urwgothic";
|
||||||
margin: 0;
|
margin: 0;
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
letter-spacing: -0.05em;
|
font-style: none;
|
||||||
font-style: italic;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.search-container {
|
.search-container {
|
||||||
@@ -214,7 +215,7 @@
|
|||||||
|
|
||||||
.card-footer {
|
.card-footer {
|
||||||
font-size: 0.6rem;
|
font-size: 0.6rem;
|
||||||
line-height: 0.5;
|
line-height: 0.8rem;
|
||||||
padding-bottom: 2px;
|
padding-bottom: 2px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -263,13 +264,14 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.location {
|
.location {
|
||||||
font-size: 1.125rem;
|
font-family: "urwgothic";
|
||||||
|
font-size: 1.23rem;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
letter-spacing: -0.02em;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.path-arrow {
|
.path-arrow {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
|
font-family: "urwgothic";
|
||||||
font-size: 0.9rem;
|
font-size: 0.9rem;
|
||||||
margin: 0.2rem 0;
|
margin: 0.2rem 0;
|
||||||
}
|
}
|
||||||
|
|||||||
30
src/routes/manifest.webmanifest/+server.ts
Normal file
30
src/routes/manifest.webmanifest/+server.ts
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
import { json } from "@sveltejs/kit";
|
||||||
|
import type { RequestHandler } from './$types';
|
||||||
|
import favicon from '$lib/assets/favicon.svg?url';
|
||||||
|
|
||||||
|
export const prerender = true;
|
||||||
|
|
||||||
|
export const GET: RequestHandler = ({ url }) => {
|
||||||
|
const manifest = {
|
||||||
|
name: "OwlBoard Maps",
|
||||||
|
short_name: "OwlBoard Maps",
|
||||||
|
start_url: "/",
|
||||||
|
display: "standalone",
|
||||||
|
theme_color: "#ff6600",
|
||||||
|
background_color: "#ffffff",
|
||||||
|
icons: [
|
||||||
|
{
|
||||||
|
src: favicon,
|
||||||
|
sizes: "any",
|
||||||
|
type: "image/svg+xml"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
|
return json(manifest, {
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/manifest+json',
|
||||||
|
'Cache-Control': 'public, max-age=3600',
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
BIN
static/fonts/urwgothic/urwgothic.woff
Normal file
BIN
static/fonts/urwgothic/urwgothic.woff
Normal file
Binary file not shown.
BIN
static/fonts/urwgothic/urwgothic.woff2
Normal file
BIN
static/fonts/urwgothic/urwgothic.woff2
Normal file
Binary file not shown.
BIN
static/fonts/urwgothic/urwgothicDemi.woff
Normal file
BIN
static/fonts/urwgothic/urwgothicDemi.woff
Normal file
Binary file not shown.
BIN
static/fonts/urwgothic/urwgothicDemi.woff2
Normal file
BIN
static/fonts/urwgothic/urwgothicDemi.woff2
Normal file
Binary file not shown.
@@ -2,7 +2,7 @@ routeStart: Paddington
|
|||||||
routeEnd: Reading West Jn
|
routeEnd: Reading West Jn
|
||||||
routeId: 0001
|
routeId: 0001
|
||||||
created: 2026-02-04
|
created: 2026-02-04
|
||||||
checked: 2026-02-06
|
checked: 2026-02-09
|
||||||
signallerStart: TVSC Paddington WS
|
signallerStart: TVSC Paddington WS
|
||||||
signallerEnd: TVSC Reading WS
|
signallerEnd: TVSC Reading WS
|
||||||
elecStart:
|
elecStart:
|
||||||
@@ -154,11 +154,11 @@ routeDetail:
|
|||||||
miles: 3
|
miles: 3
|
||||||
chains: 0
|
chains: 0
|
||||||
|
|
||||||
- type: junction
|
- type: siteof
|
||||||
name: Old Oak Common West
|
name: Old Oak Common West
|
||||||
diverges: left
|
diverges: left
|
||||||
direction: up
|
direction: up
|
||||||
description: Out of Use for HS2 Works
|
description: Junction has been removed
|
||||||
miles: 3
|
miles: 3
|
||||||
chains: 20
|
chains: 20
|
||||||
|
|
||||||
@@ -180,7 +180,8 @@ routeDetail:
|
|||||||
name: Friars Junction
|
name: Friars Junction
|
||||||
diverges: left
|
diverges: left
|
||||||
direction: up
|
direction: up
|
||||||
description: Out of Use for HS2 Works
|
elecBranch: none
|
||||||
|
description: Out of Use for HS2 Works. Track temporarily disconnected.
|
||||||
miles: 3
|
miles: 3
|
||||||
chains: 53
|
chains: 53
|
||||||
|
|
||||||
@@ -314,6 +315,7 @@ routeDetail:
|
|||||||
name: West Ealing Junction
|
name: West Ealing Junction
|
||||||
diverges: left
|
diverges: left
|
||||||
direction: down
|
direction: down
|
||||||
|
elecBranch: none
|
||||||
description: Dn/Up Greenford to Greenford & West Ealing Sidings
|
description: Dn/Up Greenford to Greenford & West Ealing Sidings
|
||||||
miles: 6
|
miles: 6
|
||||||
chains: 54
|
chains: 54
|
||||||
@@ -329,6 +331,7 @@ routeDetail:
|
|||||||
name: Hanwell Junction
|
name: Hanwell Junction
|
||||||
diverges: left
|
diverges: left
|
||||||
direction: up
|
direction: up
|
||||||
|
elecBranch: none
|
||||||
description: Dn/Up Loop to Greenford & West Ealing Sidings
|
description: Dn/Up Loop to Greenford & West Ealing Sidings
|
||||||
miles: 7
|
miles: 7
|
||||||
chains: 19
|
chains: 19
|
||||||
@@ -371,6 +374,8 @@ routeDetail:
|
|||||||
- type: loop
|
- type: loop
|
||||||
position: left
|
position: left
|
||||||
name: Hanwell Up & Dn Goods Loops
|
name: Hanwell Up & Dn Goods Loops
|
||||||
|
description: Both on Up side
|
||||||
|
elecLoop: none
|
||||||
miles: 8
|
miles: 8
|
||||||
chains: 20
|
chains: 20
|
||||||
|
|
||||||
@@ -392,6 +397,7 @@ routeDetail:
|
|||||||
name: Southall East Junction
|
name: Southall East Junction
|
||||||
diverges: right
|
diverges: right
|
||||||
direction: up
|
direction: up
|
||||||
|
elecBranch: none
|
||||||
description: Brentford Waste Terminal & Southall Depot
|
description: Brentford Waste Terminal & Southall Depot
|
||||||
miles: 8
|
miles: 8
|
||||||
chains: 62
|
chains: 62
|
||||||
@@ -638,6 +644,7 @@ routeDetail:
|
|||||||
name: Langley GF
|
name: Langley GF
|
||||||
diverges: left
|
diverges: left
|
||||||
description: Langley Sidings
|
description: Langley Sidings
|
||||||
|
elecBranch: none
|
||||||
direction: up
|
direction: up
|
||||||
miles: 15
|
miles: 15
|
||||||
chains: 76
|
chains: 76
|
||||||
|
|||||||
@@ -2,5 +2,16 @@ import { sveltekit } from '@sveltejs/kit/vite';
|
|||||||
import { defineConfig } from 'vite';
|
import { defineConfig } from 'vite';
|
||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [sveltekit()]
|
plugins: [
|
||||||
|
sveltekit(),
|
||||||
|
],
|
||||||
|
build: {
|
||||||
|
assetsInlineLimit: 0,
|
||||||
|
cssCodeSplit: true,
|
||||||
|
sourcemap: false,
|
||||||
|
target: 'esnext',
|
||||||
|
modulePreload: {
|
||||||
|
polyfill: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user