Build step for the css themes continued
This commit is contained in:
parent
e49ce63db9
commit
0a6279823e
2 changed files with 119 additions and 0 deletions
89
src/themes/theme.css
Normal file
89
src/themes/theme.css
Normal file
|
@ -0,0 +1,89 @@
|
|||
@font-face {
|
||||
font-family: "ProggyClean";
|
||||
src: url(https://witchcraft.systems/ProggyCleanNerdFont-Regular.ttf);
|
||||
}
|
||||
|
||||
:root {
|
||||
--link-color: #646cff;
|
||||
--link-hover-color: #535bf2;
|
||||
--background-color: #12082b;
|
||||
--header-background-color: #1f1145;
|
||||
--content-background-color: #0d0620;
|
||||
--text-color: white;
|
||||
--border-color: #8054f0;
|
||||
--indicator-inactive-color: #4a4a4a;
|
||||
--indicator-active-color: #8054f0;
|
||||
}
|
||||
|
||||
|
||||
::-webkit-scrollbar {
|
||||
width: 0px;
|
||||
background: transparent;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: transparent;
|
||||
border-radius: 0;
|
||||
}
|
||||
::-webkit-scrollbar-track {
|
||||
background: transparent;
|
||||
border-radius: 0;
|
||||
}
|
||||
::-webkit-scrollbar-corner {
|
||||
background: transparent;
|
||||
border-radius: 0;
|
||||
}
|
||||
::-webkit-scrollbar-button {
|
||||
background: transparent;
|
||||
border-radius: 0;
|
||||
}
|
||||
* {
|
||||
scrollbar-width: none;
|
||||
scrollbar-color: transparent transparent;
|
||||
-ms-overflow-style: none; /* IE and Edge */
|
||||
-webkit-overflow-scrolling: touch;
|
||||
-webkit-scrollbar: none; /* Safari */
|
||||
}
|
||||
|
||||
a {
|
||||
font-weight: 500;
|
||||
color: var(--link-color);
|
||||
text-decoration: inherit;
|
||||
}
|
||||
a:hover {
|
||||
color: var(--link-hover-color);
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
display: flex;
|
||||
place-items: center;
|
||||
min-width: 320px;
|
||||
min-height: 100vh;
|
||||
background-color: var(--background-color);
|
||||
font-family: "ProggyClean", monospace;
|
||||
font-size: 24px;
|
||||
color: var(--text-color);
|
||||
border-color: var(--border-color);
|
||||
overflow-wrap: break-word;
|
||||
word-wrap: normal;
|
||||
word-break: break-word;
|
||||
hyphens: none;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 3.2em;
|
||||
line-height: 1.1;
|
||||
}
|
||||
|
||||
#app {
|
||||
max-width: 1400px;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
text-align: center;
|
||||
}
|
30
theming.ts
Normal file
30
theming.ts
Normal file
|
@ -0,0 +1,30 @@
|
|||
import { Plugin } from 'vite';
|
||||
import { Config } from './config';
|
||||
// Replaces app.css with the contents of the file specified in the
|
||||
// config file.
|
||||
|
||||
export const themePlugin = (): Plugin => {
|
||||
const themeFile = Config.THEME;
|
||||
console.log(`Using theme file: ${themeFile}`);
|
||||
return {
|
||||
name: 'theme-generator',
|
||||
transform(code, id) {
|
||||
if (id.endsWith('app.css')) {
|
||||
// Read the theme file and replace the contents of app.css with it
|
||||
// Needs full path to the file
|
||||
const themeCode = Deno.readTextFileSync(Deno.cwd() + '/src/themes/' + themeFile);
|
||||
// Replace the contents of app.css with the theme code
|
||||
|
||||
// and add a comment at the top
|
||||
const themeComment = `/* Generated from ${themeFile} */\n`;
|
||||
const themeCodeWithComment = themeComment + themeCode;
|
||||
// Return the theme code as the new contents of app.css
|
||||
return {
|
||||
code: themeCodeWithComment,
|
||||
map: null,
|
||||
};
|
||||
}
|
||||
return null;
|
||||
}
|
||||
};
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue