diff --git a/.gitignore b/.gitignore
index 8bf0af1d..f0764af7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,4 +18,7 @@ betterseqtaplus-safari/
.million/
.vscode/
-**/.DS_Store
\ No newline at end of file
+**/.DS_Store
+
+# Electron
+electron-dist/
\ No newline at end of file
diff --git a/electron/index.html b/electron/index.html
new file mode 100644
index 00000000..9c89ecbc
--- /dev/null
+++ b/electron/index.html
@@ -0,0 +1,88 @@
+
+
+
+ BetterSEQTA Settings
+
+
+
+
+
BetterSEQTA Settings
+
+ SEQTA Website URL
+
+ Save Settings
+
+
+
+
+
+
\ No newline at end of file
diff --git a/electron/main.js b/electron/main.js
new file mode 100644
index 00000000..74ce1f79
--- /dev/null
+++ b/electron/main.js
@@ -0,0 +1,207 @@
+import { app, BrowserWindow, ipcMain, session } from 'electron';
+import path from 'path';
+import { fileURLToPath } from 'url';
+import Store from 'electron-store';
+
+// Fix for __dirname in ES modules
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = path.dirname(__filename);
+
+const store = new Store();
+let mainWindow = null;
+let settingsWindow = null;
+
+// CSS to inject
+const customCSS = `
+#alertBar {
+ display: none !important;
+}
+`;
+
+// Get the correct path for the extension based on whether we're in development or production
+function getExtensionPath() {
+ if (app.isPackaged) {
+ // In production, the extension is in the resources directory
+ return path.join(process.resourcesPath, 'chrome-extension');
+ } else {
+ // In development, the extension is in the dist directory
+ return path.join(__dirname, '..', 'dist', 'chrome');
+ }
+}
+
+// Load the Chrome extension
+async function loadExtension() {
+ try {
+ const extensionPath = getExtensionPath();
+ console.log('Loading extension from:', extensionPath);
+
+ await session.defaultSession.loadExtension(extensionPath, {
+ allowFileAccess: true
+ });
+ console.log('Extension loaded successfully!');
+ } catch (err) {
+ console.error('Failed to load extension:', err);
+ }
+}
+
+function createMainWindow() {
+ mainWindow = new BrowserWindow({
+ width: 1200,
+ height: 800,
+ webPreferences: {
+ nodeIntegration: true,
+ contextIsolation: false,
+ // Performance optimizations
+ backgroundThrottling: false,
+ enableWebSQL: false,
+ webgl: false,
+ offscreen: false
+ },
+ // Performance optimizations
+ show: false, // Don't show until ready
+ backgroundColor: '#ffffff'
+ });
+
+ const seqtaUrl = store.get('seqtaUrl');
+
+ // Optimize page loading
+ mainWindow.webContents.setWindowOpenHandler(({ url }) => {
+ // Open external links in browser instead of new electron window
+ if (url.startsWith('http')) {
+ require('electron').shell.openExternal(url);
+ return { action: 'deny' };
+ }
+ return { action: 'allow' };
+ });
+
+ // Inject CSS when the page loads
+ mainWindow.webContents.on('did-finish-load', () => {
+ mainWindow.webContents.insertCSS(customCSS).catch(err => {
+ console.error('Failed to inject CSS:', err);
+ });
+ });
+
+ // Only show window when it's ready
+ mainWindow.once('ready-to-show', () => {
+ mainWindow.show();
+ mainWindow.focus();
+ });
+
+ if (seqtaUrl) {
+ mainWindow.loadURL(seqtaUrl, {
+ // Performance optimizations for page loading
+ httpReferrer: seqtaUrl,
+ userAgent: 'Chrome',
+ cache: 'force-cache'
+ }).then(() => {
+ // Re-inject CSS after URL change
+ mainWindow.webContents.insertCSS(customCSS).catch(err => {
+ console.error('Failed to inject CSS after URL change:', err);
+ });
+ });
+ } else {
+ createSettingsWindow();
+ }
+
+ // Optimize memory usage
+ mainWindow.on('minimize', () => {
+ if (process.platform === 'darwin') return; // Skip for macOS
+ mainWindow.webContents.setBackgroundThrottling(true);
+ });
+
+ mainWindow.on('restore', () => {
+ mainWindow.webContents.setBackgroundThrottling(false);
+ });
+
+ // Only enable DevTools in development
+ if (process.env.NODE_ENV === 'development') {
+ mainWindow.webContents.openDevTools();
+ }
+}
+
+function createSettingsWindow() {
+ if (settingsWindow) {
+ settingsWindow.focus();
+ return;
+ }
+
+ settingsWindow = new BrowserWindow({
+ width: 600,
+ height: 400,
+ webPreferences: {
+ nodeIntegration: true,
+ contextIsolation: false,
+ // Performance optimizations
+ backgroundThrottling: false,
+ enableWebSQL: false,
+ webgl: false
+ },
+ show: false,
+ backgroundColor: '#ffffff'
+ });
+
+ const settingsPath = path.join(__dirname, 'index.html');
+ settingsWindow.loadFile(settingsPath);
+
+ settingsWindow.once('ready-to-show', () => {
+ settingsWindow.show();
+ settingsWindow.focus();
+ });
+
+ // Only enable DevTools in development
+ if (process.env.NODE_ENV === 'development') {
+ settingsWindow.webContents.openDevTools();
+ }
+
+ settingsWindow.on('closed', () => {
+ settingsWindow = null;
+ });
+}
+
+// Performance optimization: Disable hardware acceleration if running on low-end device
+if (process.platform !== 'darwin') { // Skip for macOS
+ app.disableHardwareAcceleration();
+}
+
+// Performance optimization: Disable smooth scrolling
+app.commandLine.appendSwitch('disable-smooth-scrolling');
+
+// Wait for app to be ready before creating windows
+app.whenReady().then(async () => {
+ await loadExtension();
+ createMainWindow();
+});
+
+// Performance optimization: Quit immediately instead of gracefully
+app.on('window-all-closed', () => {
+ app.quit();
+});
+
+app.on('activate', () => {
+ if (BrowserWindow.getAllWindows().length === 0) {
+ createMainWindow();
+ }
+});
+
+// Handle setting the SEQTA URL
+ipcMain.on('set-seqta-url', (event, url) => {
+ console.log('Setting SEQTA URL:', url);
+ store.set('seqtaUrl', url);
+ if (mainWindow) {
+ mainWindow.loadURL(url, {
+ httpReferrer: url,
+ userAgent: 'Chrome',
+ cache: 'force-cache'
+ }).then(() => {
+ // Re-inject CSS after URL change
+ mainWindow.webContents.insertCSS(customCSS).catch(err => {
+ console.error('Failed to inject CSS after URL change:', err);
+ });
+ });
+ } else {
+ createMainWindow();
+ }
+ if (settingsWindow) {
+ settingsWindow.close();
+ }
+});
\ No newline at end of file
diff --git a/package.json b/package.json
index bb28e191..1f6f2631 100644
--- a/package.json
+++ b/package.json
@@ -3,6 +3,7 @@
"version": "3.4.2",
"type": "module",
"description": "Enhance SEQTA Learn's usability and aesthetics! A fork of BetterSEQTA to continue development, while incorporating a plethora of new and improved features!",
+ "main": "electron/main.js",
"browserslist": "> 0.5%, last 2 versions, not dead",
"scripts": {
"dev": "cross-env MODE=chrome vite dev",
@@ -14,7 +15,11 @@
"convert:safari": "xcrun safari-web-extension-converter dist/safari --project-location . --app-name $npm_package_name-safari",
"release": "gh release create $npm_package_name@$npm_package_version ./dist/*.zip --generate-notes",
"publish": "bun lib/publish.js --b",
- "zip": "bedframe zip"
+ "zip": "bedframe zip",
+ "electron-dev": "npm run build:chrome && electron .",
+ "electron-build": "electron-builder",
+ "electron-pack": "npm run build:chrome && electron-builder --dir",
+ "electron-dist": "npm run build:chrome && electron-builder"
},
"targets": {
"prod": {
@@ -37,6 +42,8 @@
"@types/mime-types": "^2.1.4",
"@vitejs/plugin-react-swc": "^3.7.0",
"cross-env": "^7.0.3",
+ "electron": "^33.2.1",
+ "electron-builder": "^25.1.8",
"eslint": "^8.57.0",
"glob": "^11.0.0",
"mime-types": "^2.1.35",
@@ -74,6 +81,7 @@
"codemirror": "^6.0.1",
"color": "^4.2.3",
"dompurify": "^3.1.6",
+ "electron-store": "^10.0.0",
"embla-carousel-autoplay": "^8.3.1",
"embla-carousel-svelte": "^8.3.1",
"fuse.js": "^7.0.0",
@@ -95,5 +103,48 @@
"uuid": "^9.0.1",
"vite": "^5.4.4",
"webextension-polyfill": "^0.10.0"
+ },
+ "build": {
+ "appId": "com.betterseqta.app",
+ "productName": "BetterSEQTA",
+ "directories": {
+ "output": "electron-dist",
+ "buildResources": "build"
+ },
+ "files": [
+ "dist/**/*",
+ "electron/**/*",
+ "!**/node_modules/*/{CHANGELOG.md,README.md,README,readme.md,readme}",
+ "!**/node_modules/*/{test,__tests__,tests,powered-test,example,examples}",
+ "!**/node_modules/*.d.ts",
+ "!**/node_modules/.bin",
+ "!**/*.{iml,o,hprof,orig,pyc,pyo,rbc,swp,csproj,sln,xproj}",
+ "!.editorconfig",
+ "!**/._*",
+ "!**/{.DS_Store,.git,.hg,.svn,CVS,RCS,SCCS,.gitignore,.gitattributes}",
+ "!**/{__pycache__,thumbs.db,.flowconfig,.idea,.vs,.nyc_output}",
+ "!**/{appveyor.yml,.travis.yml,circle.yml}",
+ "!**/{npm-debug.log,yarn.lock,.yarn-integrity,.yarn-metadata.json}"
+ ],
+ "extraResources": [
+ {
+ "from": "dist/chrome",
+ "to": "chrome-extension",
+ "filter": ["**/*"]
+ }
+ ],
+ "mac": {
+ "category": "public.app-category.education",
+ "target": ["dmg", "zip"],
+ "icon": "build/icon.icns"
+ },
+ "win": {
+ "target": "nsis",
+ "icon": "build/icon.ico"
+ },
+ "linux": {
+ "target": "AppImage",
+ "icon": "build/icon.png"
+ }
}
}
diff --git a/src/SEQTA.ts b/src/SEQTA.ts
index aa853af3..9a7117d5 100644
--- a/src/SEQTA.ts
+++ b/src/SEQTA.ts
@@ -1019,9 +1019,11 @@ export async function ObserveMenuItemPosition() {
});
}
-function main() {
+async function main() {
if (typeof settingsState.onoff === 'undefined') {
browser.runtime.sendMessage({ type: 'setDefaultStorage' })
+
+ await delay(10)
}
const handleDisabled = () => {
diff --git a/text b/text
deleted file mode 100644
index 93c1b7e9..00000000
--- a/text
+++ /dev/null
@@ -1,402 +0,0 @@
-https://sethburkart123.github.io/sf-pro-https://sethburkart123.github.io/sf-pro-fonts/fonts/
-
-/* -------------------------------------------------------------------------
- * SF Pro Display
- * ------------------------------------------------------------------------- */
-
-@font-face {
- font-family: 'SF Pro Display';
- font-style: normal;
- font-weight: 100;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-ultralight.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-ultralight.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-ultralight.ttf') format('truetype');
-}
-
-@font-face {
- font-family: 'SF Pro Display';
- font-style: normal;
- font-weight: 200;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-thin.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-thin.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-thin.ttf') format('truetype');
-}
-
-@font-face {
- font-family: 'SF Pro Display';
- font-style: normal;
- font-weight: 300;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-light.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-light.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-light.ttf') format('truetype');
-}
-
-@font-face {
- font-family: 'SF Pro Display';
- font-style: normal;
- font-weight: 400;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-regular.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-regular.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-regular.ttf') format('truetype');
-}
-
-@font-face {
- font-family: 'SF Pro Display';
- font-style: normal;
- font-weight: 500;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-medium.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-medium.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-medium.ttf') format('truetype');
-}
-
-@font-face {
- font-family: 'SF Pro Display';
- font-style: normal;
- font-weight: 600;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-semibold.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-semibold.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-semibold.ttf') format('truetype');
-}
-
-@font-face {
- font-family: 'SF Pro Display';
- font-style: normal;
- font-weight: 700;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-bold.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-bold.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-bold.ttf') format('truetype');
-}
-
-@font-face {
- font-family: 'SF Pro Display';
- font-style: normal;
- font-weight: 800;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-heavy.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-heavy.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-heavy.ttf') format('truetype');
-}
-
-@font-face {
- font-family: 'SF Pro Display';
- font-style: normal;
- font-weight: 900;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-black.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-black.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-black.ttf') format('truetype');
-}
-
-
-
-/* -------------------------------------------------------------------------
- * SF Pro Display Italic
- * ------------------------------------------------------------------------- */
-
-@font-face {
- font-family: 'SF Pro Display';
- font-style: italic;
- font-weight: 100;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-ultralightitalic.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-ultralightitalic.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-ultralightitalic.ttf') format('truetype');
-}
-
-@font-face {
- font-family: 'SF Pro Display';
- font-style: italic;
- font-weight: 200;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-thinitalic.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-thinitalic.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-thinitalic.ttf') format('truetype');
-}
-
-@font-face {
- font-family: 'SF Pro Display';
- font-style: italic;
- font-weight: 300;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-lightitalic.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-lightitalic.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-lightitalic.ttf') format('truetype');
-}
-
-@font-face {
- font-family: 'SF Pro Display';
- font-style: italic;
- font-weight: 400;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-regularitalic.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-regularitalic.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-regularitalic.ttf') format('truetype');
-}
-
-@font-face {
- font-family: 'SF Pro Display';
- font-style: italic;
- font-weight: 500;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-mediumitalic.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-mediumitalic.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-mediumitalic.ttf') format('truetype');
-}
-
-@font-face {
- font-family: 'SF Pro Display';
- font-style: italic;
- font-weight: 600;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-semibolditalic.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-semibolditalic.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-semibolditalic.ttf') format('truetype');
-}
-
-@font-face {
- font-family: 'SF Pro Display';
- font-style: italic;
- font-weight: 700;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-bolditalic.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-bolditalic.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-bolditalic.ttf') format('truetype');
-}
-
-@font-face {
- font-family: 'SF Pro Display';
- font-style: italic;
- font-weight: 800;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-heavyitalic.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-heavyitalic.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-heavyitalic.ttf') format('truetype');
-}
-
-@font-face {
- font-family: 'SF Pro Display';
- font-style: italic;
- font-weight: 900;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-blackitalic.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-blackitalic.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-display-blackitalic.ttf') format('truetype');
-}
-
-
-
-/* -------------------------------------------------------------------------
- * SF Pro Text
- * ------------------------------------------------------------------------- */
-
-@font-face {
- font-family: 'SF Pro Text';
- font-style: regular;
- font-weight: 300;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-light.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-light.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-light.ttf') format('truetype');
-}
-
-@font-face {
- font-family: 'SF Pro Text';
- font-style: regular;
- font-weight: 400;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-regular.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-regular.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-regular.ttf') format('truetype');
-}
-
-@font-face {
- font-family: 'SF Pro Text';
- font-style: regular;
- font-weight: 500;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-medium.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-medium.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-medium.ttf') format('truetype');
-}
-
-@font-face {
- font-family: 'SF Pro Text';
- font-style: regular;
- font-weight: 600;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-semibold.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-semibold.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-semibold.ttf') format('truetype');
-}
-
-@font-face {
- font-family: 'SF Pro Text';
- font-style: regular;
- font-weight: 700;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-bold.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-bold.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-bold.ttf') format('truetype');
-}
-
-@font-face {
- font-family: 'SF Pro Text';
- font-style: regular;
- font-weight: 800;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-heavy.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-heavy.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-heavy.ttf') format('truetype');
-}
-
-
-
-/* -------------------------------------------------------------------------
- * SF Pro Text Italic
- * ------------------------------------------------------------------------- */
-
-@font-face {
- font-family: 'SF Pro Text';
- font-style: italic;
- font-weight: 300;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-lightitalic.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-lightitalic.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-lightitalic.ttf') format('truetype');
-}
-
-@font-face {
- font-family: 'SF Pro Text';
- font-style: italic;
- font-weight: 400;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-regularitalic.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-regularitalic.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-regularitalic.ttf') format('truetype');
-}
-
-@font-face {
- font-family: 'SF Pro Text';
- font-style: italic;
- font-weight: 500;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-mediumitalic.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-mediumitalic.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-mediumitalic.ttf') format('truetype');
-}
-
-@font-face {
- font-family: 'SF Pro Text';
- font-style: italic;
- font-weight: 600;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-semibolditalic.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-semibolditalic.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-semibolditalic.ttf') format('truetype');
-}
-
-@font-face {
- font-family: 'SF Pro Text';
- font-style: italic;
- font-weight: 700;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-bolditalic.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-bolditalic.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-bolditalic.ttf') format('truetype');
-}
-
-@font-face {
- font-family: 'SF Pro Text';
- font-style: italic;
- font-weight: 800;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-heavyitalic.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-heavyitalic.woff') format('woff'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sf-pro-text-heavyitalic.ttf') format('truetype');
-}
-
-
-
-
-/* -------------------------------------------------------------------------
- * SF Mono
- * ------------------------------------------------------------------------- */
-
-@font-face {
- font-family: 'SF Mono';
- font-style: regular;
- font-weight: 300;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sfmono-light.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sfmono-light.woff') format('woff');
-}
-
-@font-face {
- font-family: 'SF Mono';
- font-style: regular;
- font-weight: 400;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sfmono-regular.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sfmono-regular.woff') format('woff');
-}
-
-@font-face {
- font-family: 'SF Mono';
- font-style: regular;
- font-weight: 500;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sfmono-medium.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sfmono-medium.woff') format('woff');
-}
-
-@font-face {
- font-family: 'SF Mono';
- font-style: regular;
- font-weight: 600;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sfmono-semibold.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sfmono-semibold.woff') format('woff');
-}
-
-@font-face {
- font-family: 'SF Mono';
- font-style: regular;
- font-weight: 700;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sfmono-bold.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sfmono-bold.woff') format('woff');
-}
-
-@font-face {
- font-family: 'SF Mono';
- font-style: regular;
- font-weight: 800;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sfmono-heavy.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sfmono-heavy.woff') format('woff');
-}
-
-
-
-/* -------------------------------------------------------------------------
- * SF Pro Text Italic
- * ------------------------------------------------------------------------- */
-
-@font-face {
- font-family: 'SF Mono';
- font-style: italic;
- font-weight: 300;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sfmono-lightitalic.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sfmono-lightitalic.woff') format('woff');
-}
-
-@font-face {
- font-family: 'SF Mono';
- font-style: italic;
- font-weight: 400;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sfmono-regularitalic.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sfmono-regularitalic.woff') format('woff');
-}
-
-@font-face {
- font-family: 'SF Mono';
- font-style: italic;
- font-weight: 500;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sfmono-mediumitalic.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sfmono-mediumitalic.woff') format('woff');
-}
-
-@font-face {
- font-family: 'SF Mono';
- font-style: italic;
- font-weight: 600;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sfmono-semibolditalic.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sfmono-semibolditalic.woff') format('woff');
-}
-
-@font-face {
- font-family: 'SF Mono';
- font-style: italic;
- font-weight: 700;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sfmono-bolditalic.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sfmono-bolditalic.woff') format('woff');
-}
-
-@font-face {
- font-family: 'SF Mono';
- font-style: italic;
- font-weight: 800;
- src: url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sfmono-heavyitalic.woff2') format('woff2'),
- url('https://sethburkart123.github.io/sf-pro-fonts/fonts/sfmono-heavyitalic.woff') format('woff');
-}