forked from open-webui/open-webui
		
	feat: rosepine custom theme
This commit is contained in:
		
							parent
							
								
									6f907784fb
								
							
						
					
					
						commit
						af6e4eb904
					
				
					 11 changed files with 168 additions and 39 deletions
				
			
		| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
<script lang="ts">
 | 
			
		||||
	import { v4 as uuidv4 } from 'uuid';
 | 
			
		||||
 | 
			
		||||
	import { chats, config, db, modelfiles, settings, user } from '$lib/stores';
 | 
			
		||||
	import { chats, config, modelfiles, settings, user } from '$lib/stores';
 | 
			
		||||
	import { tick } from 'svelte';
 | 
			
		||||
 | 
			
		||||
	import toast from 'svelte-french-toast';
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,6 +34,7 @@
 | 
			
		|||
 | 
			
		||||
	// General
 | 
			
		||||
	let API_BASE_URL = OLLAMA_API_BASE_URL;
 | 
			
		||||
	let themes = ['dark', 'light', 'rose'];
 | 
			
		||||
	let theme = 'dark';
 | 
			
		||||
	let notificationEnabled = false;
 | 
			
		||||
	let system = '';
 | 
			
		||||
| 
						 | 
				
			
			@ -945,41 +946,71 @@
 | 
			
		|||
							<div class=" py-0.5 flex w-full justify-between">
 | 
			
		||||
								<div class=" self-center text-xs font-medium">Theme</div>
 | 
			
		||||
 | 
			
		||||
								<button
 | 
			
		||||
								<!-- <button
 | 
			
		||||
									class="p-1 px-3 text-xs flex rounded transition"
 | 
			
		||||
									on:click={() => {
 | 
			
		||||
										toggleTheme();
 | 
			
		||||
									}}
 | 
			
		||||
								>
 | 
			
		||||
									{#if theme === 'dark'}
 | 
			
		||||
										<svg
 | 
			
		||||
											xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
											viewBox="0 0 20 20"
 | 
			
		||||
											fill="currentColor"
 | 
			
		||||
											class="w-4 h-4"
 | 
			
		||||
										>
 | 
			
		||||
											<path
 | 
			
		||||
												fill-rule="evenodd"
 | 
			
		||||
												d="M7.455 2.004a.75.75 0 01.26.77 7 7 0 009.958 7.967.75.75 0 011.067.853A8.5 8.5 0 116.647 1.921a.75.75 0 01.808.083z"
 | 
			
		||||
												clip-rule="evenodd"
 | 
			
		||||
											/>
 | 
			
		||||
										</svg>
 | 
			
		||||
									
 | 
			
		||||
								</button> -->
 | 
			
		||||
 | 
			
		||||
										<span class="ml-2 self-center"> Dark </span>
 | 
			
		||||
									{:else}
 | 
			
		||||
										<svg
 | 
			
		||||
											xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
											viewBox="0 0 20 20"
 | 
			
		||||
											fill="currentColor"
 | 
			
		||||
											class="w-4 h-4 self-center"
 | 
			
		||||
										>
 | 
			
		||||
											<path
 | 
			
		||||
												d="M10 2a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0v-1.5A.75.75 0 0110 2zM10 15a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0v-1.5A.75.75 0 0110 15zM10 7a3 3 0 100 6 3 3 0 000-6zM15.657 5.404a.75.75 0 10-1.06-1.06l-1.061 1.06a.75.75 0 001.06 1.06l1.06-1.06zM6.464 14.596a.75.75 0 10-1.06-1.06l-1.06 1.06a.75.75 0 001.06 1.06l1.06-1.06zM18 10a.75.75 0 01-.75.75h-1.5a.75.75 0 010-1.5h1.5A.75.75 0 0118 10zM5 10a.75.75 0 01-.75.75h-1.5a.75.75 0 010-1.5h1.5A.75.75 0 015 10zM14.596 15.657a.75.75 0 001.06-1.06l-1.06-1.061a.75.75 0 10-1.06 1.06l1.06 1.06zM5.404 6.464a.75.75 0 001.06-1.06l-1.06-1.06a.75.75 0 10-1.061 1.06l1.06 1.06z"
 | 
			
		||||
											/>
 | 
			
		||||
										</svg>
 | 
			
		||||
										<span class="ml-2 self-center"> Light </span>
 | 
			
		||||
									{/if}
 | 
			
		||||
								</button>
 | 
			
		||||
								<div class="flex items-center">
 | 
			
		||||
									<div>
 | 
			
		||||
										{#if theme === 'dark'}
 | 
			
		||||
											<svg
 | 
			
		||||
												xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
												viewBox="0 0 20 20"
 | 
			
		||||
												fill="currentColor"
 | 
			
		||||
												class="w-4 h-4"
 | 
			
		||||
											>
 | 
			
		||||
												<path
 | 
			
		||||
													fill-rule="evenodd"
 | 
			
		||||
													d="M7.455 2.004a.75.75 0 01.26.77 7 7 0 009.958 7.967.75.75 0 011.067.853A8.5 8.5 0 116.647 1.921a.75.75 0 01.808.083z"
 | 
			
		||||
													clip-rule="evenodd"
 | 
			
		||||
												/>
 | 
			
		||||
											</svg>
 | 
			
		||||
										{:else if theme === 'light'}
 | 
			
		||||
											<svg
 | 
			
		||||
												xmlns="http://www.w3.org/2000/svg"
 | 
			
		||||
												viewBox="0 0 20 20"
 | 
			
		||||
												fill="currentColor"
 | 
			
		||||
												class="w-4 h-4 self-center"
 | 
			
		||||
											>
 | 
			
		||||
												<path
 | 
			
		||||
													d="M10 2a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0v-1.5A.75.75 0 0110 2zM10 15a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0v-1.5A.75.75 0 0110 15zM10 7a3 3 0 100 6 3 3 0 000-6zM15.657 5.404a.75.75 0 10-1.06-1.06l-1.061 1.06a.75.75 0 001.06 1.06l1.06-1.06zM6.464 14.596a.75.75 0 10-1.06-1.06l-1.06 1.06a.75.75 0 001.06 1.06l1.06-1.06zM18 10a.75.75 0 01-.75.75h-1.5a.75.75 0 010-1.5h1.5A.75.75 0 0118 10zM5 10a.75.75 0 01-.75.75h-1.5a.75.75 0 010-1.5h1.5A.75.75 0 015 10zM14.596 15.657a.75.75 0 001.06-1.06l-1.06-1.061a.75.75 0 10-1.06 1.06l1.06 1.06zM5.404 6.464a.75.75 0 001.06-1.06l-1.06-1.06a.75.75 0 10-1.061 1.06l1.06 1.06z"
 | 
			
		||||
												/>
 | 
			
		||||
											</svg>
 | 
			
		||||
										{/if}
 | 
			
		||||
									</div>
 | 
			
		||||
 | 
			
		||||
									<select
 | 
			
		||||
										class="w-fit pr-8 rounded py-2 px-2 text-xs bg-transparent outline-none"
 | 
			
		||||
										bind:value={theme}
 | 
			
		||||
										placeholder="Select a theme"
 | 
			
		||||
										on:change={() => {
 | 
			
		||||
											localStorage.theme = theme;
 | 
			
		||||
 | 
			
		||||
											themes
 | 
			
		||||
												.filter((e) => e !== theme)
 | 
			
		||||
												.forEach((e) => {
 | 
			
		||||
													document.documentElement.classList.remove(e);
 | 
			
		||||
												});
 | 
			
		||||
 | 
			
		||||
											document.documentElement.classList.add(theme);
 | 
			
		||||
 | 
			
		||||
											if (theme === 'rose') {
 | 
			
		||||
												document.documentElement.classList.add('dark');
 | 
			
		||||
											}
 | 
			
		||||
 | 
			
		||||
											console.log(theme);
 | 
			
		||||
										}}
 | 
			
		||||
									>
 | 
			
		||||
										<option value="dark">Dark</option>
 | 
			
		||||
										<option value="light">Light</option>
 | 
			
		||||
										<option value="rose">Rose</option>
 | 
			
		||||
									</select>
 | 
			
		||||
								</div>
 | 
			
		||||
							</div>
 | 
			
		||||
 | 
			
		||||
							<div>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue