This project is a palette creator tool that allows users to generate and customize color palettes for their design projects.
1import { createApp } from 'vue';
2import { faGithub } from '@fortawesome/free-brands-svg-icons';
3import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';
4import { dom, library } from '@fortawesome/fontawesome-svg-core';
5import {
6 faChevronCircleRight,
7 faDice,
8 faExpandArrowsAlt,
9 faLightbulb,
10 faMoon,
11 faRandom,
12 faSave,
13 faSun,
14 faTimes,
15 faTrashAlt,
16 faVial,
17 faWindowMinimize,
18} from '@fortawesome/free-solid-svg-icons';
19import {
20 faCopy,
21 faLightbulb as faLightbulbRegular,
22 faWindowRestore,
23} from '@fortawesome/free-regular-svg-icons';
24
25import store from './store';
26
27import App from './App.vue';
28
29// Apply saved theme (or system preference) before first render to avoid flash
30const savedTheme = localStorage.getItem('theme');
31const prefersDark = globalThis.matchMedia(
32 '(prefers-color-scheme: dark)',
33).matches;
34const initialTheme = savedTheme ?? (prefersDark ? 'dark' : 'light');
35document.documentElement.dataset['theme'] = initialTheme;
36store.commit('SET_THEME', initialTheme);
37
38library.add(
39 // brands
40 faGithub,
41 // regular
42 faCopy,
43 faLightbulbRegular,
44 faWindowRestore,
45 // solid
46 faChevronCircleRight,
47 faDice,
48 faExpandArrowsAlt,
49 faLightbulb,
50 faMoon,
51 faRandom,
52 faSave,
53 faSun,
54 faTimes,
55 faTrashAlt,
56 faVial,
57 faWindowMinimize,
58);
59
60dom.watch();
61
62const app = createApp(App);
63app.use(store);
64app.component('font-awesome-icon', FontAwesomeIcon);
65
66app.mount('#app');