diff --git a/.github/workflows/reusable-wiki-sync.yml b/.github/workflows/reusable-wiki-sync.yml deleted file mode 100644 index 5854f2c..0000000 --- a/.github/workflows/reusable-wiki-sync.yml +++ /dev/null @@ -1,251 +0,0 @@ -name: Central Wiki Sync Logic - -on: - workflow_call: - inputs: - source_repo: - required: false - type: string - default: "infinition/AcidWiki" - -permissions: - contents: write - pages: write - id-token: write - -jobs: - core-sync: - runs-on: ubuntu-latest - steps: - - name: Checkout Caller Repository - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Ensure Wiki Directory Exists - run: mkdir -p wiki/docs wiki/themes wiki/assets .well-known - - # 1. Onboarding Automatique - - name: Create Default Config if Missing - run: | - if [ ! -f "acidwiki.json" ]; then - echo "⚠️ acidwiki.json not found. Creating default configuration..." - cat < acidwiki.json - { - "debug": false, - "social": { - "discord": null, - "reddit": null - }, - "buymeacoffee": "https://buymeacoffee.com/infinition" - } - EOF - else - echo "✅ acidwiki.json found. Keeping existing configuration." - fi - - - name: Sync Core Files from Source - env: - SOURCE_REPO: ${{ inputs.source_repo }} - run: | - # A. CLONE DU MASTER - echo "⬇️ Cloning engine from $SOURCE_REPO..." - git clone --depth 1 --branch main https://github.com/$SOURCE_REPO.git temp_source - - # B. PROTECTION DES ASSETS LOCAUX - - # 1. Protection du Logo - if [ -f "wiki/assets/logo.png" ]; then - echo "🛡️ Custom logo detected. Protecting local version..." - rm -f temp_source/wiki/assets/logo.png - fi - - # 2. Protection des Thèmes - if [ -d "wiki/themes" ]; then - for local_theme in wiki/themes/*.css; do - if [ -f "$local_theme" ]; then - theme_name=$(basename "$local_theme") - if [ -f "temp_source/wiki/themes/$theme_name" ]; then - echo "🛡️ Custom theme detected ($theme_name). Keeping local version." - rm "temp_source/wiki/themes/$theme_name" - fi - fi - done - fi - - # 3. Protection Security (Racine & .well-known) - if [ -f "security.txt" ]; then - echo "🛡️ Custom security.txt detected (root). Keeping local version." - rm -f temp_source/security.txt - fi - if [ -f ".well-known/security.txt" ]; then - echo "🛡️ Custom .well-known/security.txt detected. Keeping local version." - rm -f temp_source/.well-known/security.txt - fi - - # C. COPIE DES FICHIERS (CHEMINS CORRIGÉS) - - # Moteur & Système (Tout est à la racine de la source) - cp -fv temp_source/index.html . - cp -fv temp_source/manifest.json . - cp -fv temp_source/sw.js . - cp -fv temp_source/robots.txt . || true - cp -fv temp_source/.nojekyll . || true - - # Fichiers Security (S'ils n'ont pas été supprimés par la protection) - if [ -f "temp_source/security.txt" ]; then cp -fv temp_source/security.txt .; fi - - # Copie récursive de .well-known s'il existe dans la source - if [ -d "temp_source/.well-known" ]; then - # On copie le contenu sans écraser ce qui est protégé - cp -rn temp_source/.well-known/* .well-known/ || true - fi - - # Config Template - cp -rv temp_source/wiki/config.js wiki/ - - # Thèmes (Safe Copy - vérifie s'il reste des fichiers) - if [ -d "temp_source/wiki/themes" ] && [ "$(ls -A temp_source/wiki/themes)" ]; then - echo "📦 Copying new themes..." - cp -r temp_source/wiki/themes/* wiki/themes/ - else - echo "✅ No new themes to copy." - fi - - # Assets (Safe Copy - vérifie s'il reste des fichiers) - if [ -d "temp_source/wiki/assets" ] && [ "$(ls -A temp_source/wiki/assets)" ]; then - echo "📦 Copying new assets..." - cp -r temp_source/wiki/assets/* wiki/assets/ - else - echo "✅ No new assets to copy." - fi - - # Nettoyage - rm -rf temp_source - - - name: Dynamic Config Injection - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - REPO_FULL: ${{ github.repository }} - run: | - CONFIG_FILE="wiki/config.js" - JSON_FILE="acidwiki.json" - MANIFEST_FILE="manifest.json" - - # --- 1. DÉTECTION --- - REPO_NAME=$(echo "$REPO_FULL" | awk -F '/' '{print $2}') - YEAR=$(date +'%Y') - - TAG_REL=$(gh api repos/$REPO_FULL/releases/latest --jq .tag_name 2>/dev/null || echo "") - TAG_LIST=$(gh api repos/$REPO_FULL/tags --jq '.[0].name' 2>/dev/null || echo "") - - LATEST_TAG="" - if [[ -n "$TAG_REL" && "$TAG_REL" != *\{* ]]; then - LATEST_TAG="$TAG_REL" - elif [[ -n "$TAG_LIST" && "$TAG_LIST" != *\{* ]]; then - LATEST_TAG="$TAG_LIST" - fi - - echo "Repo: $REPO_NAME | Version finale: '$LATEST_TAG'" - - # --- 2. LECTURE JSON --- - DISCORD="" - REDDIT="" - COFFEE="https://buymeacoffee.com/infinition" - DEBUG_MODE="false" - - if [ -f "$JSON_FILE" ]; then - echo "Loading acidwiki.json..." - DISCORD=$(jq -r '.social.discord // empty' $JSON_FILE) - REDDIT=$(jq -r '.social.reddit // empty' $JSON_FILE) - JSON_COFFEE=$(jq -r '.buymeacoffee // empty' $JSON_FILE) - if [ -n "$JSON_COFFEE" ]; then COFFEE=$JSON_COFFEE; fi - DEBUG_VAL=$(jq -r '.debug' $JSON_FILE) - if [ "$DEBUG_VAL" == "true" ]; then DEBUG_MODE="true"; fi - fi - - # --- 3. INJECTION CONFIG JS --- - - # Identité - sed -i "s|projectName: \".*\"|projectName: \"${REPO_NAME^^}\"|g" $CONFIG_FILE - sed -i "s|projectSubtitle: \".*\"|projectSubtitle: \"${REPO_NAME^^} WIKI\"|g" $CONFIG_FILE - sed -i "s|description: \".*\"|description: \"Official Documentation and Wiki for ${REPO_NAME}\"|g" $CONFIG_FILE - sed -i "s|repo: \".*\"|repo: \"$REPO_FULL\"|g" $CONFIG_FILE - - # Footer & Logo - sed -i "s|footerText: \".*\"|footerText: \"© $YEAR ${REPO_NAME^^} WIKI - All rights reserved\"|g" $CONFIG_FILE - sed -i "s|logoPath: \".*\"|logoPath: \"wiki/assets/logo.png\"|g" $CONFIG_FILE - sed -i "s|manifestPath: \".*\"|manifestPath: \"manifest.json\"|g" $CONFIG_FILE - sed -i "s|debug: false|debug: $DEBUG_MODE|g" $CONFIG_FILE - - # Github & Social - sed -i "s|github: \".*\"|github: \"https://github.com/$REPO_FULL\"|g" $CONFIG_FILE - sed -i "s|githubLabel: \".*\"|githubLabel: \"${REPO_NAME^^}\"|g" $CONFIG_FILE - sed -i "s|buyMeACoffee: \".*\"|buyMeACoffee: \"$COFFEE\"|g" $CONFIG_FILE - - if [ -n "$DISCORD" ]; then sed -i "s|discord: .*|discord: \"$DISCORD\",|g" $CONFIG_FILE - else sed -i "s|discord: .*|discord: null,|g" $CONFIG_FILE; fi - - if [ -n "$REDDIT" ]; then sed -i "s|reddit: .*|reddit: \"$REDDIT\",|g" $CONFIG_FILE - else sed -i "s|reddit: .*|reddit: null,|g" $CONFIG_FILE; fi - - # Menus & Versioning - sed -i "s|top: \[.*|top: [],|g" $CONFIG_FILE - sed -i "s|bottom: \[.*|bottom: []|g" $CONFIG_FILE - sed -i "s|type: \"github\"|type: \"local\"|g" $CONFIG_FILE - - if [ -n "$LATEST_TAG" ]; then - sed -i "s|manualVersion: \".*\"|manualVersion: \"$LATEST_TAG\"|g" $CONFIG_FILE - else - sed -i "s|manualVersion: \".*\"|manualVersion: \"\"|g" $CONFIG_FILE - fi - sed -i "s|manualDate: \".*\"|manualDate: \"$(date +'%Y-%m-%d')\"|g" $CONFIG_FILE - - # --- 4. INJECTION MANIFEST PWA --- - echo "Injecting Manifest Data..." - if [ -f "$MANIFEST_FILE" ]; then - jq --arg name "${REPO_NAME^^} WIKI" \ - --arg short "$REPO_NAME" \ - --arg desc "Official Documentation and Wiki for $REPO_NAME" \ - --arg icon "wiki/assets/logo.png" \ - '.name = $name | .short_name = $short | .description = $desc | .icons[].src = $icon | .shortcuts[].icons[].src = $icon' \ - $MANIFEST_FILE > manifest.tmp && mv manifest.tmp $MANIFEST_FILE - fi - - # --- 5. INJECTION SECURITY.TXT (DYNAMIQUE) --- - # Calcule la date d'expiration (+1 an) - EXP_DATE=$(date -d "+1 year" -u +"%Y-%m-%dT%H:%M:%S.000Z") - - update_security_file() { - local file=$1 - if [ -f "$file" ]; then - echo "Updating $file..." - # Remplace l'ancien repo (source) par le nouveau (ex: infinition/AcidWiki -> infinition/Bjorn) - sed -i "s|infinition/AcidWiki|$REPO_FULL|g" "$file" - # Met à jour la date d'expiration - sed -i "s|Expires: .*|Expires: $EXP_DATE|g" "$file" - fi - } - - update_security_file "security.txt" - update_security_file ".well-known/security.txt" - - - name: Commit and Push Changes - run: | - git config --local user.email "action@github.com" - git config --local user.name "GitHub Action" - - # Ajout de tous les fichiers (Système, Contenu, Sécurité) - git add index.html wiki/ acidwiki.json manifest.json sw.js robots.txt .nojekyll security.txt .well-known/ - - git diff --quiet && git diff --staged --quiet || (git commit -m "chore: update wiki config [skip ci]" && git push) - - - name: Auto-Configure GitHub Pages - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - REPO: ${{ github.repository }} - run: | - gh api "repos/$REPO/pages" -X POST -F "source[branch]=main" -F "source[path]=/" --silent || true - OWNER="${REPO%%/*}" - REPO_NAME="${REPO#*/}" - gh api "repos/$REPO" -X PATCH -F "homepage=https://$OWNER.github.io/$REPO_NAME/" --silent || true \ No newline at end of file diff --git a/.github/workflows/wiki-sync.yml b/.github/workflows/wiki-sync.yml deleted file mode 100644 index 9d5f60c..0000000 --- a/.github/workflows/wiki-sync.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Wiki Sync - -on: - # 1. Déclenchement manuel quand tu pushes sur ce repo - push: - branches: [ main ] - paths: - - 'wiki/**' - - 'acidwiki.json' - - '.github/workflows/wiki-sync.yml' - - # 2. Bouton manuel dans l'interface Actions - workflow_dispatch: - - # 3. AUTOMATIQUE : Tous les jours à 4h00 du matin (UTC) - schedule: - - cron: '0 4 * * *' - -permissions: - contents: write - pages: write - id-token: write - -jobs: - deploy-wiki: - # Appelle le script stocké sur AcidWiki - # "@main" signifie qu'il prendra TOUJOURS la dernière version du workflow maître - uses: infinition/AcidWiki/.github/workflows/reusable-wiki-sync.yml@main diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..428c632 --- /dev/null +++ b/.gitignore @@ -0,0 +1,33 @@ +# OS files +.DS_Store +Thumbs.db +desktop.ini + +# IDE files +.vscode/ +.idea/ +*.swp +*.swo + +# Node.js +node_modules/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.npm/ + +# Project specific +.gemini/ +.env +.env.local +.env.*.local +dist/ +build/ + +# Wiki Content (Keep empty for template) +wiki/docs/* +!wiki/docs/.gitkeep + +# Wiki Content (Keep empty for template) +wiki/docs/* +!wiki/docs/.gitkeep diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/.well-known/security.txt b/.well-known/security.txt new file mode 100644 index 0000000..bafc114 --- /dev/null +++ b/.well-known/security.txt @@ -0,0 +1,4 @@ +Contact: https://github.com/infinition/Bjorn/issues +Expires: 2027-01-24T15:36:48.000Z +Preferred-Languages: en, fr +Policy: https://github.com/infinition/Bjorn/blob/wiki/SECURITY.md diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..b556c3a --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Infinition + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/acidwiki.json b/acidwiki.json new file mode 100644 index 0000000..79b8eb8 --- /dev/null +++ b/acidwiki.json @@ -0,0 +1,8 @@ +{ + "social": { + "discord": "https://discord.gg/B3ZH9taVfT", + "reddit": "https://www.reddit.com/r/Bjorn_CyberViking/", + "github": "https://github.com/infinition/Bjorn", + "buyMeACoffee": "https://buymeacoffee.com/infinition" + } +} \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..e2c4757 --- /dev/null +++ b/index.html @@ -0,0 +1,2961 @@ + + + + + + + + + + WIKI NODE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+ + + +
+
+
+ +
+ + BJORN ... + +
+ +
+ + + +
+
+ + + + + + + +
+
+
+
+ + +
+ +
+
+ + +
+
+ + + + +
+ + + + + + + \ No newline at end of file diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..9dca854 --- /dev/null +++ b/manifest.json @@ -0,0 +1,35 @@ +{ + "name": "Bjorn WIKI", + "short_name": "Bjorn", + "description": "Official Documentation and Wiki for Bjorn", + "start_url": "./index.html", + "display": "standalone", + "background_color": "#0B0C0E", + "theme_color": "#22c55e", + "orientation": "any", + "icons": [ + { + "src": "wiki/assets/logo.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "any maskable" + }, + { + "src": "wiki/assets/logo.png", + "sizes": "512x512", + "type": "image/png" + } + ], + "shortcuts": [ + { + "name": "Search Wiki", + "url": "./index.html?search=true", + "icons": [ + { + "src": "wiki/assets/logo.png", + "sizes": "192x192" + } + ] + } + ] +} \ No newline at end of file diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..0baf17d --- /dev/null +++ b/robots.txt @@ -0,0 +1,5 @@ +User-agent: * +Allow: / + +# Sitemaps (Optionnel, à mettre à jour avec votre URL réelle) +Sitemap: https://infinition.github.io/Bjorn/sitemap.xml diff --git a/security.txt b/security.txt new file mode 100644 index 0000000..bafc114 --- /dev/null +++ b/security.txt @@ -0,0 +1,4 @@ +Contact: https://github.com/infinition/Bjorn/issues +Expires: 2027-01-24T15:36:48.000Z +Preferred-Languages: en, fr +Policy: https://github.com/infinition/Bjorn/blob/wiki/SECURITY.md diff --git a/sw.js b/sw.js new file mode 100644 index 0000000..714590d --- /dev/null +++ b/sw.js @@ -0,0 +1,69 @@ +const CACHE_NAME = 'bjorn-wiki-v2'; +const STATIC_ASSETS = [ + './', + './index.html', + './config.js', + './manifest.json', + './assets/bjorn.png', + 'https://cdn.tailwindcss.com', + 'https://unpkg.com/lucide@latest', + 'https://cdn.jsdelivr.net/npm/marked/marked.min.js', + 'https://cdnjs.cloudflare.com/ajax/libs/dompurify/3.0.6/purify.min.js', + 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/atom-one-dark.min.css', + 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js', + 'https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&family=Inter:wght@400;500;600&display=swap' +]; + +// Install Event - Cache Static Assets +self.addEventListener('install', (event) => { + event.waitUntil( + caches.open(CACHE_NAME).then((cache) => { + console.log('[SW] Caching static assets'); + return cache.addAll(STATIC_ASSETS); + }) + ); + self.skipWaiting(); +}); + +// Activate Event - Clean up old caches +self.addEventListener('activate', (event) => { + event.waitUntil( + caches.keys().then((cacheNames) => { + return Promise.all( + cacheNames.map((cacheName) => { + if (cacheName !== CACHE_NAME) { + console.log('[SW] Deleting old cache:', cacheName); + return caches.delete(cacheName); + } + }) + ); + }) + ); + self.clients.claim(); +}); + +// Fetch Event - Stale-While-Revalidate Strategy +self.addEventListener('fetch', (event) => { + // Skip non-GET requests + if (event.request.method !== 'GET') return; + + // Strategy: Stale-While-Revalidate for most assets + event.respondWith( + caches.open(CACHE_NAME).then((cache) => { + return cache.match(event.request).then((response) => { + const fetchPromise = fetch(event.request).then((networkResponse) => { + // Cache the new response + if (networkResponse.ok) { + cache.put(event.request, networkResponse.clone()); + } + return networkResponse; + }).catch(() => { + // If network fails, we already returned the cached response if it exists + }); + + return response || fetchPromise; + }); + }) + ); +}); + diff --git a/wiki/assets/logo.png b/wiki/assets/logo.png new file mode 100644 index 0000000..2f5bcfc Binary files /dev/null and b/wiki/assets/logo.png differ diff --git a/wiki/config.js b/wiki/config.js new file mode 100644 index 0000000..814c77c --- /dev/null +++ b/wiki/config.js @@ -0,0 +1,110 @@ +/** + * AcidWiki Configuration (Master Template) + * Ce fichier est écrasé dynamiquement par le workflow GitHub Actions. + * Ne modifiez pas les valeurs ici pour un projet spécifique, utilisez acidwiki.json. + */ +const CONFIG = { + // Project Information (Sera remplacé par le nom du Repo) + projectName: "ACIDWIKI", + projectSubtitle: "ACIDWIKI WIKI", + description: "Official Documentation and Wiki for AcidWiki", + + // Versioning Settings + versioning: { + type: "local", + manualVersion: "", + manualDate: "2026-01-24" + }, + + // GitHub Repository + repo: "infinition/AcidWiki", + branch: "main", + + // Theme Settings + themes: [ + { id: "dark", name: "Dark Mode", file: "wiki/themes/dark.css", isDark: true }, + { id: "dim", name: "Dim Mode", file: "wiki/themes/light.css", isDark: true }, + { id: "electric-blue", name: "Electric Blue", file: "wiki/themes/electric-blue.css", isDark: true }, + { id: "cyberpunk", name: "Cyberpunk", file: "wiki/themes/cyberpunk.css", isDark: true }, + { id: "forest", name: "Forest", file: "wiki/themes/forest.css", isDark: true }, + { id: "monochrome", name: "Monochrome", file: "wiki/themes/monochrome.css", isDark: true }, + { id: "retro-hackers", name: "Retro Hackers", file: "wiki/themes/retro-hackers.css", isDark: true }, + { id: "retro-hackers-w", name: "Retro Hackers White", file: "wiki/themes/retro-hackers-w.css", isDark: false }, + { id: "retro-acid-burn", name: "Retro Acid Burn", file: "wiki/themes/retro-acid-burn.css", isDark: true }, + { id: "paper", name: "Paper", file: "wiki/themes/paper.css", isDark: false }, + { id: "solarized-light", name: "Solarized Light", file: "wiki/themes/solarized-light.css", isDark: false }, + { id: "nord-light", name: "Nord Light", file: "wiki/themes/nord-light.css", isDark: false }, + { id: "paper-sepia", name: "Sepia Paper", file: "wiki/themes/paper-sepia.css", isDark: false }, + { id: "paper-cool", name: "Cool Paper", file: "wiki/themes/paper-cool.css", isDark: false }, + { id: "retro-irc", name: "Retro IRC", file: "wiki/themes/retro-irc.css", isDark: false }, + { id: "nature", name: "Nature", file: "wiki/themes/nature.css", isDark: false }, + { id: "glassmorphism", name: "Glassmorphism", file: "wiki/themes/glassmorphism.css", isDark: true } + ], + defaultTheme: "dark", + + // Feature Toggles + features: { + showChangelog: true, + showSearch: true, + showSocialBadges: true, + showThemeToggle: true, + pageTransitions: true, + autoCollapseSidebar: false, + stickyBreadcrumbs: true, + showRootReadme: true, + debug: true + }, + + // Custom Navigation Links (Vides par défaut) + links: { + top: [], + bottom: [] + }, + + // Footer + footerText: "© 2026 ACIDWIKI WIKI - All rights reserved", + + // UI Strings + ui: { + joinUsTitle: ":: JOIN US ::", + onThisPageTitle: "On this page", + changelogTitle: "Changelog", + rootReadmeTitle: "Project Home", + searchPlaceholder: "Search (Ctrl+K)...", + lastUpdatedText: "Updated", + readingTimePrefix: "~", + readingTimeSuffix: "min read", + noResultsText: "No results found.", + noSectionsText: "No sections", + fetchingReleasesText: "Fetching GitHub releases...", + checkingVersionText: "checking...", + initializingText: "Initializing...", + themeChangedText: "Theme changed to: ", + menuText: "Menu", + onThisPageMobile: "On this page" + }, + + // Logo Settings + logoPath: "wiki/assets/logo.png", + logoPlaceholder: "https://placehold.co/40x40/111214/22c55e?text=A", + + // PWA & SEO Settings + themeColor: "#0B0C0E", + accentColor: "#22c55e", + manifestPath: "manifest.json", + + // Social Links + social: { + discord: null, + reddit: null, + github: "https://github.com/infinition/AcidWiki", // Virgule respectée par le script + buyMeACoffee: "https://buymeacoffee.com/infinition" + }, + + // Badge Labels + badges: { + discordLabel: "COMMUNITY", + redditLabel: "REDDIT", + githubLabel: "ACIDWIKI" + } +}; \ No newline at end of file diff --git a/wiki/themes/cyberpunk.css b/wiki/themes/cyberpunk.css new file mode 100644 index 0000000..56faa2f --- /dev/null +++ b/wiki/themes/cyberpunk.css @@ -0,0 +1,35 @@ +:root { + --bg-body: #0D0221; + --bg-sidebar: #190033; + --border-color: #FF007F; + --text-main: #E0E0E0; + --text-heading: #00FFFF; + --accent-green: #FF007F; + --accent-dim: rgba(255, 0, 127, 0.1); + --code-bg: #1A0033; +} + +/* Override scrollbar and other elements to use neon pink */ +::-webkit-scrollbar-thumb { + background: linear-gradient(180deg, #FF007F, var(--border-color)) !important; +} + +.text-hack-green { + color: #FF007F !important; +} + +.bg-hack-greenDim { + background-color: rgba(255, 0, 127, 0.1) !important; +} + +.border-hack-green { + border-color: #FF007F !important; +} + +.markdown-body a { + color: #00FFFF !important; +} + +.markdown-body a:hover { + border-bottom-color: #00FFFF !important; +} \ No newline at end of file diff --git a/wiki/themes/dark.css b/wiki/themes/dark.css new file mode 100644 index 0000000..23280dc --- /dev/null +++ b/wiki/themes/dark.css @@ -0,0 +1,15 @@ +:root { + --bg-body: #0B0C0E; + --bg-sidebar: #111214; + --border-color: #2A2E35; + --text-main: #A0AAB8; + --text-heading: #E2E8F0; + --accent-green: #22c55e; + --accent-dim: rgba(34, 197, 94, 0.1); + --code-bg: #1e1e1e; +} + +/* Compatibility with tailwind colors if needed */ +.dark { + --accent-green: #22c55e; +} diff --git a/wiki/themes/electric-blue.css b/wiki/themes/electric-blue.css new file mode 100644 index 0000000..9ff7cce --- /dev/null +++ b/wiki/themes/electric-blue.css @@ -0,0 +1,28 @@ +:root { + --bg-body: #050A15; + --bg-sidebar: #0A1225; + --border-color: #1E2D4A; + --text-main: #94A3B8; + --text-heading: #F8FAFC; + --accent-green: #38BDF8; + /* Electric Blue */ + --accent-dim: rgba(56, 189, 248, 0.1); + --code-bg: #0F172A; +} + +/* Override scrollbar and other elements to use blue */ +::-webkit-scrollbar-thumb { + background: linear-gradient(180deg, #38BDF8, var(--border-color)) !important; +} + +.text-hack-green { + color: #38BDF8 !important; +} + +.bg-hack-greenDim { + background-color: rgba(56, 189, 248, 0.1) !important; +} + +.border-hack-green { + border-color: #38BDF8 !important; +} \ No newline at end of file diff --git a/wiki/themes/forest.css b/wiki/themes/forest.css new file mode 100644 index 0000000..636cfc6 --- /dev/null +++ b/wiki/themes/forest.css @@ -0,0 +1,27 @@ +:root { + --bg-body: #1B261B; + --bg-sidebar: #243024; + --border-color: #3E523E; + --text-main: #D1D5D1; + --text-heading: #A7C957; + --accent-green: #6A994E; + --accent-dim: rgba(106, 153, 78, 0.1); + --code-bg: #2D3A2D; +} + +/* Override scrollbar and other elements */ +::-webkit-scrollbar-thumb { + background: linear-gradient(180deg, #6A994E, var(--border-color)) !important; +} + +.text-hack-green { + color: #6A994E !important; +} + +.bg-hack-greenDim { + background-color: rgba(106, 153, 78, 0.1) !important; +} + +.border-hack-green { + border-color: #6A994E !important; +} \ No newline at end of file diff --git a/wiki/themes/glassmorphism.css b/wiki/themes/glassmorphism.css new file mode 100644 index 0000000..69ca88c --- /dev/null +++ b/wiki/themes/glassmorphism.css @@ -0,0 +1,55 @@ +:root { + --bg-body: #0f172a; + --bg-sidebar: rgba(30, 41, 59, 0.7); + --border-color: rgba(255, 255, 255, 0.1); + --text-main: #e2e8f0; + --text-heading: #f8fafc; + --accent-green: #38bdf8; + --accent-dim: rgba(56, 189, 248, 0.1); + --code-bg: rgba(15, 23, 42, 0.8); +} + +/* Glassmorphism theme specific overrides */ +body { + background: radial-gradient(circle at top left, #1e293b, #0f172a); + background-attachment: fixed; +} + +#sidebar, +#mobile-toc-sidebar { + background: rgba(30, 41, 59, 0.6) !important; + backdrop-filter: blur(12px); + -webkit-backdrop-filter: blur(12px); + border-right: 1px solid rgba(255, 255, 255, 0.1); +} + +#markdown-viewer { + background: rgba(30, 41, 59, 0.4); + backdrop-filter: blur(8px); + -webkit-backdrop-filter: blur(8px); + border: 1px solid rgba(255, 255, 255, 0.05); + border-radius: 16px; + padding: 2rem; + box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37); +} + +.nav-link.active { + background: rgba(56, 189, 248, 0.2) !important; + border-left: 4px solid #38bdf8 !important; + color: #38bdf8 !important; + box-shadow: 0 0 15px rgba(56, 189, 248, 0.3); +} + +.markdown-body a { + color: #38bdf8; + text-shadow: 0 0 8px rgba(56, 189, 248, 0.5); +} + +::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.1) !important; + border-radius: 10px; +} + +::-webkit-scrollbar-thumb:hover { + background: rgba(255, 255, 255, 0.2) !important; +} \ No newline at end of file diff --git a/wiki/themes/light.css b/wiki/themes/light.css new file mode 100644 index 0000000..a9d8be4 --- /dev/null +++ b/wiki/themes/light.css @@ -0,0 +1,32 @@ +:root { + --bg-body: #1E293B; + /* Slate 800 */ + --bg-sidebar: #0F172A; + /* Slate 900 */ + --border-color: #334155; + /* Slate 700 */ + --text-main: #94A3B8; + /* Slate 400 */ + --text-heading: #F1F5F9; + /* Slate 100 */ + --accent-green: #10B981; + /* Emerald 500 */ + --accent-dim: rgba(16, 185, 129, 0.1); + --code-bg: #020617; + /* Slate 950 */ +} + +/* Compatibility with tailwind colors if needed */ +.dark { + --accent-green: #10B981; +} + +/* Specific overrides for Dim mode to ensure readability */ +.markdown-body blockquote { + background: rgba(16, 185, 129, 0.05) !important; + border-left-color: #10B981 !important; +} + +.text-hack-green { + color: #10B981 !important; +} \ No newline at end of file diff --git a/wiki/themes/monochrome.css b/wiki/themes/monochrome.css new file mode 100644 index 0000000..207026b --- /dev/null +++ b/wiki/themes/monochrome.css @@ -0,0 +1,27 @@ +:root { + --bg-body: #121212; + --bg-sidebar: #1E1E1E; + --border-color: #333333; + --text-main: #BBBBBB; + --text-heading: #FFFFFF; + --accent-green: #FFFFFF; + --accent-dim: rgba(255, 255, 255, 0.1); + --code-bg: #000000; +} + +/* Override scrollbar and other elements */ +::-webkit-scrollbar-thumb { + background: linear-gradient(180deg, #FFFFFF, var(--border-color)) !important; +} + +.text-hack-green { + color: #FFFFFF !important; +} + +.bg-hack-greenDim { + background-color: rgba(255, 255, 255, 0.1) !important; +} + +.border-hack-green { + border-color: #FFFFFF !important; +} \ No newline at end of file diff --git a/wiki/themes/nature.css b/wiki/themes/nature.css new file mode 100644 index 0000000..14357c5 --- /dev/null +++ b/wiki/themes/nature.css @@ -0,0 +1,52 @@ +:root { + --bg-body: #f7f3e9; + --bg-sidebar: #e8e1d1; + --border-color: #d1c7b1; + --text-main: #3e442b; + --text-heading: #2d3319; + --accent-green: #606c38; + --accent-dim: rgba(96, 108, 56, 0.1); + --code-bg: #fefae0; +} + +/* Nature theme specific overrides */ +body { + background-color: var(--bg-body); + color: var(--text-main); +} + +.markdown-body h1, +.markdown-body h2, +.markdown-body h3 { + color: #283618; + font-weight: 700; +} + +.markdown-body a { + color: #bc6c25; +} + +.markdown-body a:hover { + border-bottom-color: #dda15e; +} + +#sidebar, +#mobile-toc-sidebar { + background-color: #e8e1d1 !important; + border-right: 1px solid #d1c7b1; +} + +.nav-link.active { + background-color: rgba(96, 108, 56, 0.15) !important; + border-left-color: #606c38 !important; + color: #283618 !important; +} + +::-webkit-scrollbar-thumb { + background: #dda15e !important; +} + +.markdown-body blockquote { + background: #fefae0; + border-left-color: #606c38; +} \ No newline at end of file diff --git a/wiki/themes/nord-light.css b/wiki/themes/nord-light.css new file mode 100644 index 0000000..195eea7 --- /dev/null +++ b/wiki/themes/nord-light.css @@ -0,0 +1,25 @@ +:root { + --bg-body: #eceff4; + --bg-sidebar: #e5e9f0; + --border-color: #d8dee9; + --text-main: #4c566a; + --text-heading: #2e3440; + --accent-green: #88c0d0; + --accent-dim: rgba(136, 192, 208, 0.1); + --code-bg: #d8dee9; +} + +/* Nord Light specific overrides */ +.markdown-body a { + color: #5e81ac; +} + +.nav-link.active { + background-color: rgba(136, 192, 208, 0.1) !important; + border-left-color: #88c0d0 !important; + color: #5e81ac !important; +} + +::-webkit-scrollbar-thumb { + background: #d8dee9 !important; +} \ No newline at end of file diff --git a/wiki/themes/paper-cool.css b/wiki/themes/paper-cool.css new file mode 100644 index 0000000..b09a642 --- /dev/null +++ b/wiki/themes/paper-cool.css @@ -0,0 +1,25 @@ +:root { + --bg-body: #e8f1f2; + --bg-sidebar: #d1e3e5; + --border-color: #b8d0d2; + --text-main: #2d4a4d; + --text-heading: #1a3033; + --accent-green: #0081a7; + --accent-dim: rgba(0, 129, 167, 0.1); + --code-bg: #d9e8ea; +} + +/* Cool Paper specific overrides */ +.markdown-body a { + color: #0081a7; +} + +.nav-link.active { + background-color: rgba(0, 129, 167, 0.1) !important; + border-left-color: #0081a7 !important; + color: #2d4a4d !important; +} + +::-webkit-scrollbar-thumb { + background: #b8d0d2 !important; +} \ No newline at end of file diff --git a/wiki/themes/paper-sepia.css b/wiki/themes/paper-sepia.css new file mode 100644 index 0000000..642afca --- /dev/null +++ b/wiki/themes/paper-sepia.css @@ -0,0 +1,25 @@ +:root { + --bg-body: #e3d5b8; + --bg-sidebar: #d4c3a1; + --border-color: #c4b28f; + --text-main: #4a3a2a; + --text-heading: #2d241a; + --accent-green: #8b5e34; + --accent-dim: rgba(139, 94, 52, 0.1); + --code-bg: #dcd0b0; +} + +/* Sepia Paper specific overrides */ +.markdown-body a { + color: #8b5e34; +} + +.nav-link.active { + background-color: rgba(139, 94, 52, 0.1) !important; + border-left-color: #8b5e34 !important; + color: #4a3a2a !important; +} + +::-webkit-scrollbar-thumb { + background: #c4b28f !important; +} \ No newline at end of file diff --git a/wiki/themes/paper.css b/wiki/themes/paper.css new file mode 100644 index 0000000..e20f3c6 --- /dev/null +++ b/wiki/themes/paper.css @@ -0,0 +1,54 @@ +:root { + --bg-body: #fdfcf0; + --bg-sidebar: #f4f1ea; + --border-color: #e6e2d3; + --text-main: #444444; + --text-heading: #222222; + --accent-green: #d4a373; + --accent-dim: rgba(212, 163, 115, 0.1); + --code-bg: #f8f5ed; +} + +/* Light theme specific overrides */ +body { + background-color: var(--bg-body); + color: var(--text-main); +} + +.markdown-body h1, +.markdown-body h2, +.markdown-body h3 { + color: var(--text-heading); +} + +.markdown-body a { + color: #bc6c25; +} + +.markdown-body a:hover { + border-bottom-color: #bc6c25; +} + +#sidebar, +#mobile-toc-sidebar { + background-color: var(--bg-sidebar) !important; + border-color: var(--border-color); +} + +.nav-link:hover { + background-color: rgba(0, 0, 0, 0.05); +} + +.nav-link.active { + background-color: var(--accent-dim) !important; + border-left-color: var(--accent-green) !important; + color: #bc6c25 !important; +} + +::-webkit-scrollbar-thumb { + background: var(--border-color) !important; +} + +::-webkit-scrollbar-thumb:hover { + background: var(--accent-green) !important; +} \ No newline at end of file diff --git a/wiki/themes/retro-acid-burn.css b/wiki/themes/retro-acid-burn.css new file mode 100644 index 0000000..b77dd6b --- /dev/null +++ b/wiki/themes/retro-acid-burn.css @@ -0,0 +1,106 @@ +@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;700&display=swap'); + +:root { + --bg-body: #000000; + --bg-sidebar: #050505; + --border-color: #00ff41; + --text-main: #00ff41; + --text-heading: #d4ff00; + --accent-green: #00ff41; + --accent-dim: rgba(0, 255, 65, 0.1); + --code-bg: #0a0a0a; + + /* Acid Burn Specific */ + --acid-yellow: #d4ff00; + --acid-green: #00ff41; +} + +/* --- PHOSPHOR GLOW --- */ +body { + font-family: 'JetBrains Mono', monospace !important; + background-color: #000 !important; + color: var(--text-main) !important; + text-shadow: 0 0 5px rgba(0, 255, 65, 0.5); +} + +/* --- SCANLINES (Static but intense) --- */ +body::after { + content: " "; + display: block; + position: fixed; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%); + z-index: 9999; + background-size: 100% 4px; + pointer-events: none; + opacity: 0.3; +} + +/* --- TYPOGRAPHY --- */ +h1, +h2, +h3, +h4, +h5, +h6 { + color: var(--acid-yellow) !important; + text-shadow: 0 0 10px var(--acid-yellow); + text-transform: uppercase; + letter-spacing: 2px; +} + +.markdown-body h1 { + border-bottom-color: var(--acid-yellow) !important; +} + +.markdown-body strong { + color: #fff !important; + text-shadow: 0 0 8px #fff; +} + +.markdown-body a { + color: var(--acid-yellow) !important; + text-decoration: underline; + text-underline-offset: 4px; +} + +.markdown-body a:hover { + color: #fff !important; + text-shadow: 0 0 10px var(--acid-yellow); +} + +/* --- UI OVERRIDES --- */ +#sidebar, +#mobile-toc-sidebar { + background-color: #050505 !important; + border-right: 2px solid var(--accent-green); +} + +.nav-link.active { + background-color: rgba(0, 255, 65, 0.2) !important; + border-left: 4px solid var(--accent-green) !important; + color: #fff !important; +} + +.nav-link:hover { + color: #fff !important; + background-color: rgba(0, 255, 65, 0.1); +} + +::-webkit-scrollbar-thumb { + background: var(--accent-green) !important; + box-shadow: 0 0 10px var(--accent-green); +} + +/* --- CODE BLOCKS --- */ +.markdown-body pre { + border: 1px solid var(--accent-green) !important; + box-shadow: 0 0 15px rgba(0, 255, 65, 0.2); +} + +.markdown-body code { + color: var(--acid-yellow) !important; +} \ No newline at end of file diff --git a/wiki/themes/retro-hackers-w.css b/wiki/themes/retro-hackers-w.css new file mode 100644 index 0000000..2d5cc94 --- /dev/null +++ b/wiki/themes/retro-hackers-w.css @@ -0,0 +1,130 @@ +@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap'); + +:root { + --bg-body: #050505; + --bg-sidebar: rgba(5, 5, 5, 0.8); + --border-color: #13aff0; + --text-main: #80ff80; + --text-heading: #13aff0; + --accent-green: #0f0; + --accent-dim: rgba(0, 255, 0, 0.1); + --code-bg: #000; + + /* Hacker Specific */ + --neon-blue: #13aff0; + --neon-orange: #FF6B00; + --neon-purple: #bd00ff; +} + +/* --- THE 3D GRID --- */ +body::before { + content: ""; + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%) perspective(600px) rotateX(60deg); + width: 300vw; + height: 300vh; + background-image: + linear-gradient(rgba(0, 243, 255, 0.3) 1px, transparent 1px), + linear-gradient(90deg, rgba(0, 243, 255, 0.3) 1px, transparent 1px); + background-size: 60px 60px; + animation: grid-scroll 11s linear infinite; + z-index: -1; + pointer-events: none; + -webkit-mask-image: linear-gradient(to top, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0) 80%); + mask-image: linear-gradient(to top, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0) 80%); +} + +@keyframes grid-scroll { + 0% { + background-position: 0 0; + } + + 100% { + background-position: 0 60px; + } +} + +/* --- SCANLINES --- */ +body::after { + content: " "; + display: block; + position: fixed; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: + linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.1) 50%), + linear-gradient(90deg, rgba(255, 0, 0, 0.02), rgba(0, 255, 0, 0.01), rgba(0, 0, 255, 0.02)); + z-index: 9999; + background-size: 100% 3px, 3px 100%; + pointer-events: none; + opacity: 0.4; +} + +/* --- TYPOGRAPHY --- */ +body { + font-family: 'JetBrains Mono', monospace !important; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: 'Cinzel', serif !important; + text-transform: uppercase; + text-shadow: 0 0 10px var(--neon-blue); +} + +.markdown-body h1 { + color: var(--neon-blue) !important; + border-bottom-color: var(--neon-blue) !important; +} + +.markdown-body h2 { + color: var(--neon-orange) !important; + text-shadow: 0 0 10px var(--neon-orange); +} + +.markdown-body h3 { + color: var(--neon-purple) !important; + text-shadow: 0 0 10px var(--neon-purple); +} + +.markdown-body strong { + color: #fff !important; + text-shadow: 0 0 8px rgba(255, 255, 255, 0.8); +} + +.markdown-body a { + color: var(--neon-purple) !important; + border-bottom: 1px dashed var(--neon-purple); +} + +.markdown-body a:hover { + color: #fff !important; + text-shadow: 0 0 5px var(--neon-purple); + border-bottom-style: solid; +} + +/* --- UI OVERRIDES --- */ +#sidebar, +#mobile-toc-sidebar { + background-color: var(--bg-sidebar) !important; + backdrop-filter: blur(10px); +} + +.nav-link.active { + background-color: rgba(19, 175, 240, 0.2) !important; + border-left-color: var(--neon-blue) !important; + color: var(--neon-blue) !important; +} + +::-webkit-scrollbar-thumb { + background: linear-gradient(180deg, var(--neon-blue), #000) !important; + border: 1px solid var(--neon-blue); +} \ No newline at end of file diff --git a/wiki/themes/retro-hackers.css b/wiki/themes/retro-hackers.css new file mode 100644 index 0000000..ba77618 --- /dev/null +++ b/wiki/themes/retro-hackers.css @@ -0,0 +1,149 @@ +@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap'); + +:root { + --bg-body: #050505; + --bg-sidebar: rgba(5, 5, 5, 0.8); + --border-color: #13aff0; + --text-main: #80ff80; + --text-heading: #13aff0; + --accent-green: #0f0; + --accent-dim: rgba(0, 255, 0, 0.1); + --code-bg: #000; + + /* Hacker Specific */ + --neon-blue: #13aff0; + --neon-orange: #FF6B00; + --neon-purple: #bd00ff; +} + +/* --- THE 3D GRID --- */ +body::before { + content: ""; + position: fixed; + top: 50%; + left: 50%; + transform: translate(-50%, -50%) perspective(600px) rotateX(60deg); + width: 300vw; + height: 300vh; + background-image: + linear-gradient(rgba(0, 243, 255, 0.5) 1px, transparent 1px), + linear-gradient(90deg, rgba(0, 243, 255, 0.5) 1px, transparent 1px); + background-size: 60px 60px; + animation: grid-scroll 11s linear infinite; + z-index: -1; + pointer-events: none; + -webkit-mask-image: linear-gradient(to top, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0) 80%); + mask-image: linear-gradient(to top, rgba(0, 0, 0, 1) 0%, rgba(0, 0, 0, 0) 80%); +} + +@keyframes grid-scroll { + 0% { + background-position: 0 0; + } + + 100% { + background-position: 0 60px; + } +} + +/* --- TRANSPARENCY OVERRIDES --- */ +#scroll-container, +main, +.bg-hack-bg, +.bg-hack-sidebar, +#markdown-viewer { + background-color: transparent !important; +} + +/* Sidebar needs some background for readability but should be semi-transparent */ +#sidebar, +#mobile-toc-sidebar { + background-color: rgba(5, 5, 5, 0.85) !important; + backdrop-filter: blur(8px); + border-right: 1px solid var(--neon-blue); +} + +/* Content area readability - using a very subtle overlay if needed, but keeping it transparent as requested */ +#markdown-viewer { + padding: 2rem; + border-radius: 12px; + border: 1px solid rgba(19, 175, 240, 0.1); +} + +/* --- SCANLINES --- */ +body::after { + content: " "; + display: block; + position: fixed; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: + linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.15) 50%), + linear-gradient(90deg, rgba(255, 0, 0, 0.03), rgba(0, 255, 0, 0.01), rgba(0, 0, 255, 0.03)); + z-index: 9999; + background-size: 100% 3px, 3px 100%; + pointer-events: none; + opacity: 0.6; +} + +/* --- TYPOGRAPHY --- */ +body { + font-family: 'JetBrains Mono', monospace !important; + background-color: #050505 !important; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: 'Cinzel', serif !important; + text-transform: uppercase; + text-shadow: 0 0 10px var(--neon-blue); +} + +.markdown-body h1 { + color: var(--neon-blue) !important; + border-bottom-color: var(--neon-blue) !important; +} + +.markdown-body h2 { + color: var(--neon-orange) !important; + text-shadow: 0 0 10px var(--neon-orange); +} + +.markdown-body h3 { + color: var(--neon-purple) !important; + text-shadow: 0 0 10px var(--neon-purple); +} + +.markdown-body strong { + color: #fff !important; + text-shadow: 0 0 8px rgba(255, 255, 255, 0.8); +} + +.markdown-body a { + color: var(--neon-purple) !important; + border-bottom: 1px dashed var(--neon-purple); +} + +.markdown-body a:hover { + color: #fff !important; + text-shadow: 0 0 5px var(--neon-purple); + border-bottom-style: solid; +} + +/* --- UI OVERRIDES --- */ +.nav-link.active { + background-color: rgba(19, 175, 240, 0.2) !important; + border-left-color: var(--neon-blue) !important; + color: var(--neon-blue) !important; +} + +::-webkit-scrollbar-thumb { + background: linear-gradient(180deg, var(--neon-blue), #000) !important; + border: 1px solid var(--neon-blue); +} \ No newline at end of file diff --git a/wiki/themes/retro-irc.css b/wiki/themes/retro-irc.css new file mode 100644 index 0000000..64fadda --- /dev/null +++ b/wiki/themes/retro-irc.css @@ -0,0 +1,70 @@ +:root { + --bg-body: #ffffff; + --bg-sidebar: #f0f0f0; + --border-color: #c0c0c0; + --text-main: #000000; + --text-heading: #000080; + --accent-green: #008000; + --accent-dim: rgba(0, 128, 0, 0.1); + --code-bg: #ffffff; +} + +/* Retro IRC specific overrides */ +body { + font-family: "Fixedsys", "Courier New", monospace !important; + background-color: var(--bg-body); + color: var(--text-main); +} + +.markdown-body h1, +.markdown-body h2, +.markdown-body h3 { + color: #000080; + font-weight: bold; + border-bottom: 2px solid #000080; +} + +.markdown-body a { + color: #0000ff; + text-decoration: underline; +} + +.markdown-body a:hover { + color: #ff0000; +} + +#sidebar, +#mobile-toc-sidebar { + background-color: #c0c0c0 !important; + border-right: 2px solid #808080; +} + +.nav-link { + color: #000 !important; + border: 1px solid transparent; +} + +.nav-link:hover { + background-color: #000080 !important; + color: #fff !important; +} + +.nav-link.active { + background-color: #000080 !important; + color: #fff !important; + border-left: 4px solid #ff0000 !important; +} + +::-webkit-scrollbar-thumb { + background: #808080 !important; + border: 1px solid #ffffff; +} + +.markdown-body pre { + border: 1px solid #808080 !important; + background-color: #f0f0f0 !important; +} + +.markdown-body code { + color: #800000 !important; +} \ No newline at end of file diff --git a/wiki/themes/solarized-light.css b/wiki/themes/solarized-light.css new file mode 100644 index 0000000..05ffd07 --- /dev/null +++ b/wiki/themes/solarized-light.css @@ -0,0 +1,30 @@ +:root { + --bg-body: #fdf6e3; + --bg-sidebar: #eee8d5; + --border-color: #d5c4a1; + --text-main: #657b83; + --text-heading: #073642; + --accent-green: #859900; + --accent-dim: rgba(133, 153, 0, 0.1); + --code-bg: #eee8d5; +} + +/* Solarized Light specific overrides */ +.markdown-body a { + color: #268bd2; +} + +.markdown-body blockquote { + background: #eee8d5; + border-left-color: #859900; +} + +.nav-link.active { + background-color: rgba(133, 153, 0, 0.1) !important; + border-left-color: #859900 !important; + color: #859900 !important; +} + +::-webkit-scrollbar-thumb { + background: #93a1a1 !important; +} \ No newline at end of file