app.html 2.7 KB
Newer Older
Timothy J. Baek's avatar
Timothy J. Baek committed
1
2
3
4
5
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="utf-8" />
		<link rel="icon" href="%sveltekit.assets%/favicon.png" />
Timothy J. Baek's avatar
Timothy J. Baek committed
6
		<link rel="manifest" href="%sveltekit.assets%/manifest.json" crossorigin="use-credentials" />
Timothy J. Baek's avatar
Timothy J. Baek committed
7
		<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
tracer123's avatar
tracer123 committed
8
		<meta name="robots" content="noindex,nofollow" />
9
10
11
12
13
14
		<link
			rel="search"
			type="application/opensearchdescription+xml"
			title="Open WebUI"
			href="/opensearch.xml"
		/>
Timothy J. Baek's avatar
Timothy J. Baek committed
15

Timothy J. Baek's avatar
Timothy J. Baek committed
16
17
		<script>
			// On page load or when changing themes, best to add inline in `head` to avoid FOUC
18
			(() => {
Timothy J. Baek's avatar
Timothy J. Baek committed
19
				if (localStorage?.theme && localStorage?.theme.includes('oled')) {
20
					document.documentElement.style.setProperty('--color-gray-900', '#000000');
21
					document.documentElement.style.setProperty('--color-gray-950', '#000000');
22
					document.documentElement.classList.add('dark');
Timothy J. Baek's avatar
Timothy J. Baek committed
23
				} else if (
24
25
26
27
28
29
30
31
32
33
34
					localStorage.theme === 'light' ||
					(!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: light)').matches)
				) {
					document.documentElement.classList.add('light');
				} else if (localStorage.theme && localStorage.theme !== 'system') {
					localStorage.theme.split(' ').forEach((e) => {
						document.documentElement.classList.add(e);
					});
				} else if (localStorage.theme && localStorage.theme === 'system') {
					systemTheme = window.matchMedia('(prefers-color-scheme: dark)').matches;
					document.documentElement.classList.add(systemTheme ? 'dark' : 'light');
Danny Liu's avatar
Danny Liu committed
35
				} else {
36
37
					document.documentElement.classList.add('dark');
				}
38

39
40
41
42
43
44
45
46
47
				window.matchMedia('(prefers-color-scheme: dark)').addListener((e) => {
					if (localStorage.theme === 'system') {
						if (e.matches) {
							document.documentElement.classList.add('dark');
							document.documentElement.classList.remove('light');
						} else {
							document.documentElement.classList.add('light');
							document.documentElement.classList.remove('dark');
						}
48
					}
Danny Liu's avatar
Danny Liu committed
49
				});
50
			})();
Timothy J. Baek's avatar
Timothy J. Baek committed
51
52
		</script>

Timothy J. Baek's avatar
Timothy J. Baek committed
53
54
		<title>Open WebUI</title>

Timothy J. Baek's avatar
Timothy J. Baek committed
55
56
57
58
		%sveltekit.head%
	</head>
	<body data-sveltekit-preload-data="hover">
		<div style="display: contents">%sveltekit.body%</div>
Timothy J. Baek's avatar
Timothy J. Baek committed
59

Timothy J. Baek's avatar
Timothy J. Baek committed
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
		<div
			id="splash-screen"
			style="
				position: fixed;
				z-index: 100;
				background: #fff;
				top: 0;
				left: 0;
				width: 100%;
				height: 100%;
			"
		>
			<style type="text/css" nonce="">
				html {
					overflow-y: scroll !important;
				}
			</style>

			<img
				style="
					position: absolute;
					width: 6rem;
					height: 6rem;
Timothy J. Baek's avatar
Timothy J. Baek committed
83
					top: 46%;
Timothy J. Baek's avatar
Timothy J. Baek committed
84
85
86
87
88
89
90
91
92
					left: 50%;
					margin: -40px 0 0 -40px;
				"
				src="/logo.svg"
			/>

			<!-- <span style="position: absolute; bottom: 32px; left: 50%; margin: -36px 0 0 -36px">
				Footer content
			</span> -->
Timothy J. Baek's avatar
Timothy J. Baek committed
93
		</div>
Timothy J. Baek's avatar
Timothy J. Baek committed
94
95
	</body>
</html>