feat: Implement Gogh Theme Engine with options page, theme parsing, and semantic theme derivation

We're cooked. <skull emoji>

- Added options page for YAML palette editing, live color preview, and diagnostics.
- Implemented theme engine to parse Gogh YAML palettes and derive semantic themes.
- Configured TypeScript and Vite for building the extension.
- Created new tab and popup HTML pages with corresponding scripts and styles.
- Established storage management for user configurations in Chrome storage.
- Added icons for the extension and updated manifest for MV3 compatibility.
This commit is contained in:
2026-03-03 23:11:08 +05:30
commit 6cdc79e345
45 changed files with 5817 additions and 0 deletions

11
newtab/newtab.html Normal file
View File

@@ -0,0 +1,11 @@
<html>
<head>
<meta charset="utf-8">
<title>Chrome Extension Template New Tab</title>
<meta name="viewport" content="initial-scale=1, maximum-scale=1" />
<meta name="description" content="Chrome Extension Template" />
<script src="newtab.js" type="text/javascript"></script>
<link href="newtab.css" rel="stylesheet" />
</head>
<body>This is the customized new tab page inserted by Chrome Extension Template</body>
</html>

13
newtab/scripts/index.js Normal file
View File

@@ -0,0 +1,13 @@
import { getStorage } from "../../common/storage";
import { PRESET_CONFIGURATION, CHROME_SYNC_STORAGE_KEY } from "../../common/settings";
function loadConfiguration(result) {
const savedConfiguration = result || PRESET_CONFIGURATION;
const storageValue = savedConfiguration["storageValue"];
console.info("Storage value", storageValue);
}
window.onload = function() {
console.info("New Tab script loaded");
getStorage(CHROME_SYNC_STORAGE_KEY, loadConfiguration);
};

10
newtab/styles/_page.scss Normal file
View File

@@ -0,0 +1,10 @@
@import "./variables";
body {
background-color: $light-gray;
color: $dark-gray;
font: {
family: $font-family;
size: 16px;
}
}

View File

@@ -0,0 +1,3 @@
$dark-gray: #5600eb;
$light-gray: #b7d6ff;
$font-family: -apple-system, BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,'Fira Sans','Droid Sans','Helvetica Neue',sans-serif;

View File

@@ -0,0 +1,2 @@
@import "./variables";
@import "./page";