21 Commits

Author SHA1 Message Date
naomi f2c2e19fd9 release: v2.3.0
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 1m56s
2026-02-26 21:37:30 -08:00
hikari 8f07b4bf5d asset: update extension icon
Security Scan and Upload / Security & DefectDojo Upload (push) Has been cancelled
2026-02-26 21:36:50 -08:00
hikari 904a164dbf feat: add witchy dark theme
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 49s
2026-02-26 21:34:55 -08:00
hikari 6fb0280339 docs: update feedback section to use support forum
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 1m18s
2026-01-26 12:32:09 -08:00
naomi 28e2c37fc2 feat: automated upload of .npmrc
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 52s
2025-12-22 19:16:08 +01:00
naomi 5f6db9d215 feat: automated upload of .gitea/workflows/security.yml
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 1m0s
2025-12-18 03:08:03 +01:00
naomi d57901cea8 feat: automated upload of .gitea/workflows/security.yml
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 50s
2025-12-17 23:26:03 +01:00
naomi 17edd07355 feat: automated upload of .gitea/workflows/security.yml
Security Scan / Security Audit (push) Failing after 6m50s
2025-12-12 03:37:49 +01:00
naomi 9a50754b5a feat: automated delete of .gitea/workflows/sonar.yml
Security Scan / Trivy Security Scan (push) Failing after 4m46s
2025-12-12 00:15:04 +01:00
naomi 9a4ceb9826 feat: automated upload of .gitea/workflows/security.yml
Security Scan / Trivy Security Scan (push) Failing after 4m46s
Code Analysis / SonarQube (push) Failing after 4m49s
2025-12-11 20:11:59 +01:00
naomi 9a3bb2c862 release: 2.2.0
Code Analysis / SonarQube (push) Failing after 13s
2025-09-16 18:24:32 -07:00
naomi 345ec5a2ae feat: add trans pride theme (#2)
Code Analysis / SonarQube (push) Failing after 14s
### Explanation

_No response_

### Issue

_No response_

### Attestations

- [ ] I have read and agree to the [Code of Conduct](https://docs.nhcarrigan.com/community/coc/)
- [ ] I have read and agree to the [Community Guidelines](https://docs.nhcarrigan.com/community/guide/).
- [ ] My contribution complies with the [Contributor Covenant](https://docs.nhcarrigan.com/dev/covenant/).

### Dependencies

- [ ] I have pinned the dependencies to a specific patch version.

### Style

- [ ] I have run the linter and resolved any errors.
- [ ] My pull request uses an appropriate title, matching the conventional commit standards.
- [ ] My scope of feat/fix/chore/etc. correctly matches the nature of changes in my pull request.

### Tests

- [ ] My contribution adds new code, and I have added tests to cover it.
- [ ] My contribution modifies existing code, and I have updated the tests to reflect these changes.
- [ ] All new and existing tests pass locally with my changes.
- [ ] Code coverage remains at or above the configured threshold.

### Documentation

_No response_

### Versioning

_No response_

Reviewed-on: #2
Co-authored-by: Naomi Carrigan <commits@nhcarrigan.com>
Co-committed-by: Naomi Carrigan <commits@nhcarrigan.com>
2025-09-16 18:24:19 -07:00
naomi ff3880e528 release: v2.1.0
Code Analysis / SonarQube (push) Successful in 33s
2025-03-27 14:18:47 -07:00
naomi bec1413137 feat: add dark mode, update source links (#1)
Code Analysis / SonarQube (push) Successful in 32s
### Explanation

_No response_

### Issue

_No response_

### Attestations

- [x] I have read and agree to the [Code of Conduct](https://docs.nhcarrigan.com/community/coc/)
- [x] I have read and agree to the [Community Guidelines](https://docs.nhcarrigan.com/community/guide/).
- [x] My contribution complies with the [Contributor Covenant](https://docs.nhcarrigan.com/dev/covenant/).

### Dependencies

- [x] I have pinned the dependencies to a specific patch version.

### Style

- [ ] I have run the linter and resolved any errors.
- [ ] My pull request uses an appropriate title, matching the conventional commit standards.
- [ ] My scope of feat/fix/chore/etc. correctly matches the nature of changes in my pull request.

### Tests

- [ ] My contribution adds new code, and I have added tests to cover it.
- [ ] My contribution modifies existing code, and I have updated the tests to reflect these changes.
- [ ] All new and existing tests pass locally with my changes.
- [ ] Code coverage remains at or above the configured threshold.

### Documentation

_No response_

### Versioning

Minor - My pull request introduces a new non-breaking feature.

Reviewed-on: #1
Co-authored-by: Naomi Carrigan <commits@nhcarrigan.com>
Co-committed-by: Naomi Carrigan <commits@nhcarrigan.com>
2025-03-27 14:18:19 -07:00
naomi 2f055e6f35 release: v2.0.0
Code Analysis / SonarQube (push) Successful in 27s
2025-02-28 23:58:28 -08:00
naomi 7436a092c0 feat: rename and add sakura theme
Code Analysis / SonarQube (push) Has been cancelled
2025-02-28 23:58:04 -08:00
naomi 51388dd929 chore: add sonar workflow
Code Analysis / SonarQube (push) Successful in 46s
2025-02-26 13:22:15 -08:00
naomi b0595f4856 release: v1.1.1 2025-02-23 14:17:19 -08:00
naomi a70b4efdb0 fix: lighten colour for comments 2025-02-23 14:16:03 -08:00
naomi 4114575c31 1.1.0 2025-02-06 14:10:53 -08:00
naomi 38440c384d feat: make it all blue 2025-02-06 14:10:38 -08:00
18 changed files with 1719 additions and 324 deletions
-69
View File
@@ -1,69 +0,0 @@
name: 🐛 Bug Report
description: Something isn't working as expected? Let us know!
title: '[BUG] - '
labels:
- "🚦 status: awaiting triage"
body:
- type: checkboxes
id: attestations
attributes:
label: Attestations
description: "By checking the boxes below, I certify that:"
options:
- label: "I have read and agree to the [Code of Conduct](https://docs.nhcarrigan.com/community/coc/)"
validations:
required: true
- label: I have read and agree to the [Community Guidelines](https://docs.nhcarrigan.com/community/guide/).
validations:
required: true
- label: I have confirmed that the issue I am opening is unique, and has not already been reported (whether closed or not).
validations:
required: true
- label: I have reviewed the [Security Policy](https://docs.nhcarrigan.com/legal/security/) and have determined that this is not a security vulnerability.
validations:
required: true
- type: textarea
id: description
attributes:
label: "Describe your Issue:"
description: A clear and concise description of what the bug is.
validations:
required: true
- type: dropdown
id: reproduce
attributes:
label: Can you reproduce this issue?
options:
- Yes
- No
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: "Steps to Reproduce:"
description: Steps to reproduce the behavior.
- type: input
id: os
attributes:
label: "Operating System:"
description: The operating system you are using, including the version/build number.
validations:
required: true
# Remove this section for non-web apps.
- type: input
id: browser
attributes:
label: "Browser:"
description: The browser you are using, including the version number.
validations:
required: true
- type: dropdown
attributes:
label: Are you willing and able to contribute a fix?
options:
- Yes
- No
validations:
required: true
-5
View File
@@ -1,5 +0,0 @@
blank_issues_enabled: false
contact_links:
- name: "Discord"
url: "https://chat.nhcarrigan.com"
about: "Chat with us directly."
@@ -1,46 +0,0 @@
name: 💭 Feature Proposal
description: Have an idea for how we can improve? Share it here!
title: '[FEAT] - '
labels:
- "🚦 status: awaiting triage"
body:
- type: checkboxes
id: attestations
attributes:
label: Attestations
description: "By checking the boxes below, I certify that:"
options:
- label: "I have read and agree to the [Code of Conduct](https://docs.nhcarrigan.com/community/coc/)"
validations:
required: true
- label: I have read and agree to the [Community Guidelines](https://docs.nhcarrigan.com/community/guide/).
validations:
required: true
- label: I have confirmed that the issue I am opening is unique, and has not already been reported (whether closed or not).
validations:
required: true
- label: I have reviewed the [Security Policy](https://docs.nhcarrigan.com/legal/security/) and have determined that this is not a security vulnerability.
validations:
required: true
- type: textarea
id: description
attributes:
label: "Describe your Idea:"
description: A clear and concise description of the feature you would like added.
validations:
required: true
- type: textarea
id: solution
attributes:
label: "What problem does this feature solve?"
description: Why are you requesting this feature? How would it improve your experience with the product?
validations:
required: true
- type: dropdown
attributes:
label: Are you willing and able to contribute this feature?
options:
- Yes
- No
validations:
required: true
-34
View File
@@ -1,34 +0,0 @@
name: ❓ Other Issue
description: I have something that is neither a bug nor a feature request.
title: '[OTHER] - '
labels:
- "🚦 status: awaiting triage"
body:
- type: checkboxes
id: attestations
attributes:
label: Attestations
description: "By checking the boxes below, I certify that:"
options:
- label: "I have read and agree to the [Code of Conduct](https://docs.nhcarrigan.com/community/coc/)"
validations:
required: true
- label: I have read and agree to the [Community Guidelines](https://docs.nhcarrigan.com/community/guide/).
validations:
required: true
- label: I have confirmed that the issue I am opening is unique, and has not already been reported (whether closed or not).
validations:
required: true
- label: I have reviewed the [Security Policy](https://docs.nhcarrigan.com/legal/security/) and have determined that this is not a security vulnerability.
validations:
required: true
- label: This is not a feature request or bug report that I am mis-filing to avoid the issue template.
validations:
required: true
- type: textarea
id: description
attributes:
label: "Share your thoughts:"
description: Why are you opening this issue?
validations:
required: true
-93
View File
@@ -1,93 +0,0 @@
name: "Pull Request Template"
about: "Template for pulls"
labels:
- "🔍 pull: ready for review"
body:
- type: textarea
id: explain
attributes:
label: "Explanation"
description: "Briefly explain WHY this pull request is necessary. Do not explain what it does, as that's evidenced in the changes."
validations:
required: true
- type: input
id: issue
attributes:
label: "Issue"
description: "My pull request relates to or resolves the following issue number:"
validations:
required: true
is_number: true
- type: checkboxes
id: attestations
attributes:
label: Attestations
description: "By checking the boxes below, I certify that:"
options:
- label: "I have read and agree to the [Code of Conduct](https://docs.nhcarrigan.com/community/coc/)"
validations:
required: true
- label: I have read and agree to the [Community Guidelines](https://docs.nhcarrigan.com/community/guide/).
validations:
required: true
- label: My contribution complies with the [Contributor Covenant](https://docs.nhcarrigan.com/dev/covenant/).
validations:
required: true
- type: checkboxes
id: dependencies
attributes:
label: Dependencies
description: "My pull request adds or updates dependencies, so:"
options:
- label: I have pinned the dependencies to a specific patch version.
validations:
required: false
- type: checkboxes
id: style
attributes:
label: Style
description: "My contribution adheres to the following style guidelines:"
options:
- label: I have run the linter and resolved any errors.
validations:
required: true
- label: My pull request uses an appropriate title, matching the conventional commit standards.
validations:
required: true
- label: My scope of feat/fix/chore/etc. correctly matches the nature of changes in my pull request.
validations:
required: true
- type: checkboxes
id: tests
attributes:
label: Tests
description: "My contribution includes the following tests:"
options:
- label: My contribution adds new code, and I have added tests to cover it.
validations:
required: false
- label: My contribution modifies existing code, and I have updated the tests to reflect these changes.
validations:
required: false
- label: All new and existing tests pass locally with my changes.
validations:
required: true
- label: Code coverage remains at or above the configured threshold.
validations:
required: true
- type: input
id: docs
attributes:
label: Documentation
description: "I have made the following PR to update the documentation site with my changes:"
validations:
required: true
- type: dropdown
id: version
attributes:
label: Versioning
description: "I believe my changes should be included in the following release:"
options:
- "Major - My pull request introduces a breaking change."
- "Minor - My pull request introduces a new non-breaking feature."
- "Patch - My pull request introduces bug fixes ONLY."
+177
View File
@@ -0,0 +1,177 @@
name: Security Scan and Upload
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
schedule:
- cron: '0 0 * * 1'
workflow_dispatch:
jobs:
security-audit:
name: Security & DefectDojo Upload
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: Checkout code
uses: actions/checkout@v4
# --- AUTO-SETUP PROJECT ---
- name: Ensure DefectDojo Product Exists
env:
DD_URL: ${{ secrets.DD_URL }}
DD_TOKEN: ${{ secrets.DD_TOKEN }}
PRODUCT_NAME: ${{ github.repository }}
PRODUCT_TYPE_ID: 1
run: |
sudo apt-get install jq -y > /dev/null
echo "Checking connection to $DD_URL..."
# Check if product exists - capture HTTP code to debug connection issues
RESPONSE=$(curl --write-out "%{http_code}" --silent --output /tmp/response.json \
-H "Authorization: Token $DD_TOKEN" \
"$DD_URL/api/v2/products/?name=$PRODUCT_NAME")
# If response is not 200, print error
if [ "$RESPONSE" != "200" ]; then
echo "::error::Failed to query DefectDojo. HTTP Code: $RESPONSE"
cat /tmp/response.json
exit 1
fi
COUNT=$(cat /tmp/response.json | jq -r '.count')
if [ "$COUNT" = "0" ]; then
echo "Creating product '$PRODUCT_NAME'..."
curl -s -X POST "$DD_URL/api/v2/products/" \
-H "Authorization: Token $DD_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "name": "'"$PRODUCT_NAME"'", "description": "Auto-created by Gitea Actions", "prod_type": '$PRODUCT_TYPE_ID' }'
else
echo "Product '$PRODUCT_NAME' already exists."
fi
# --- 1. TRIVY (Dependencies & Misconfig) ---
- name: Install Trivy
run: |
sudo apt-get install wget apt-transport-https gnupg lsb-release -y
wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | sudo apt-key add -
echo "deb https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main" | sudo tee -a /etc/apt/sources.list.d/trivy.list
sudo apt-get update && sudo apt-get install trivy -y
- name: Run Trivy (FS Scan)
run: |
trivy fs . --scanners vuln,misconfig --format json --output trivy-results.json --exit-code 0
- name: Upload Trivy to DefectDojo
env:
DD_URL: ${{ secrets.DD_URL }}
DD_TOKEN: ${{ secrets.DD_TOKEN }}
run: |
echo "Uploading Trivy results..."
# Generate today's date in YYYY-MM-DD format
TODAY=$(date +%Y-%m-%d)
HTTP_CODE=$(curl --write-out "%{http_code}" --output response.txt --silent -X POST "$DD_URL/api/v2/import-scan/" \
-H "Authorization: Token $DD_TOKEN" \
-F "active=true" \
-F "verified=true" \
-F "scan_type=Trivy Scan" \
-F "engagement_name=CI/CD Pipeline" \
-F "product_name=${{ github.repository }}" \
-F "scan_date=$TODAY" \
-F "auto_create_context=true" \
-F "file=@trivy-results.json")
if [[ "$HTTP_CODE" != "200" && "$HTTP_CODE" != "201" ]]; then
echo "::error::Upload Failed with HTTP $HTTP_CODE"
echo "--- SERVER RESPONSE ---"
cat response.txt
echo "-----------------------"
exit 1
else
echo "Upload Success!"
fi
# --- 2. GITLEAKS (Secrets) ---
- name: Install Gitleaks
run: |
wget -qO gitleaks.tar.gz https://github.com/gitleaks/gitleaks/releases/download/v8.18.0/gitleaks_8.18.0_linux_x64.tar.gz
tar -xzf gitleaks.tar.gz
sudo mv gitleaks /usr/local/bin/ && chmod +x /usr/local/bin/gitleaks
- name: Run Gitleaks
run: gitleaks detect --source . -v --report-path gitleaks-results.json --report-format json --no-git || true
- name: Upload Gitleaks to DefectDojo
env:
DD_URL: ${{ secrets.DD_URL }}
DD_TOKEN: ${{ secrets.DD_TOKEN }}
run: |
echo "Uploading Gitleaks results..."
TODAY=$(date +%Y-%m-%d)
HTTP_CODE=$(curl --write-out "%{http_code}" --output response.txt --silent -X POST "$DD_URL/api/v2/import-scan/" \
-H "Authorization: Token $DD_TOKEN" \
-F "active=true" \
-F "verified=true" \
-F "scan_type=Gitleaks Scan" \
-F "engagement_name=CI/CD Pipeline" \
-F "product_name=${{ github.repository }}" \
-F "scan_date=$TODAY" \
-F "auto_create_context=true" \
-F "file=@gitleaks-results.json")
if [[ "$HTTP_CODE" != "200" && "$HTTP_CODE" != "201" ]]; then
echo "::error::Upload Failed with HTTP $HTTP_CODE"
echo "--- SERVER RESPONSE ---"
cat response.txt
echo "-----------------------"
exit 1
else
echo "Upload Success!"
fi
# --- 3. SEMGREP (SAST) ---
- name: Install Semgrep (via pipx)
run: |
sudo apt-get install pipx -y
pipx install semgrep
# Add pipx binary path to GITHUB_PATH so next steps can see 'semgrep'
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Run Semgrep
run: semgrep scan --config=p/security-audit --config=p/owasp-top-ten --json --output semgrep-results.json . || true
- name: Upload Semgrep to DefectDojo
env:
DD_URL: ${{ secrets.DD_URL }}
DD_TOKEN: ${{ secrets.DD_TOKEN }}
run: |
echo "Uploading Semgrep results..."
TODAY=$(date +%Y-%m-%d)
HTTP_CODE=$(curl --write-out "%{http_code}" --output response.txt --silent -X POST "$DD_URL/api/v2/import-scan/" \
-H "Authorization: Token $DD_TOKEN" \
-F "active=true" \
-F "verified=true" \
-F "scan_type=Semgrep JSON Report" \
-F "engagement_name=CI/CD Pipeline" \
-F "product_name=${{ github.repository }}" \
-F "scan_date=$TODAY" \
-F "auto_create_context=true" \
-F "file=@semgrep-results.json")
if [[ "$HTTP_CODE" != "200" && "$HTTP_CODE" != "201" ]]; then
echo "::error::Upload Failed with HTTP $HTTP_CODE"
echo "--- SERVER RESPONSE ---"
cat response.txt
echo "-----------------------"
exit 1
else
echo "Upload Success!"
fi
+25
View File
@@ -0,0 +1,25 @@
# Package Manager Configuration
# Force pnpm usage - breaks npm/yarn intentionally
node-linker=pnpm
# Security: Disable all lifecycle scripts
ignore-scripts=true
enable-pre-post-scripts=false
# Security: Require packages to be 10+ days old before installation
minimum-release-age=14400
# Security: Verify package integrity hashes
verify-store-integrity=true
# Security: Enforce strict trust policies
trust-policy=strict
# Security: Strict peer dependency resolution
strict-peer-dependencies=true
# Performance: Use symlinks for node_modules
symlink=true
# Lockfile: Ensure lockfile is not modified during install
frozen-lockfile=false
+11
View File
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>vscode-themes</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
</buildSpec>
<natures>
</natures>
</projectDescription>
+13
View File
@@ -0,0 +1,13 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Extension Development Host",
"type": "extensionHost",
"request": "launch",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}"
]
}
]
}
+7 -7
View File
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
<Metadata>
<Identity Language="en-US" Id="ocean-breeze" Version="1.0.0" Publisher="nhcarrigan" />
<DisplayName>Ocean Breeze</DisplayName>
<Description xml:space="preserve">A soothing VSCode theme inspired by the aqua hues of the ocean.</Description>
<Identity Language="en-US" Id="naomis-themes" Version="2.0.0" Publisher="nhcarrigan" />
<DisplayName>Naomi's Themes</DisplayName>
<Description xml:space="preserve">Various themes Naomi has designed.</Description>
<Tags>theme,color-theme,__web_extension</Tags>
<Categories>Themes</Categories>
<GalleryFlags>Public</GalleryFlags>
@@ -18,10 +18,10 @@
<Property Id="Microsoft.VisualStudio.Services.Links.Source" Value="https://codeberg.org/nhcarrigan/ocean-breeze" />
<Property Id="Microsoft.VisualStudio.Services.Links.Getstarted" Value="https://codeberg.org/nhcarrigan/ocean-breeze" />
<Property Id="Microsoft.VisualStudio.Services.Links.Repository" Value="https://codeberg.org/nhcarrigan/ocean-breeze" />
<Property Id="Microsoft.VisualStudio.Services.Links.Support" Value="https://codeberg.org/nhcarrigan/ocean-breeze/issues" />
<Property Id="Microsoft.VisualStudio.Services.Links.Source" Value="https://git.nhcarrigan.com/nhcarrigan/vscode-themes" />
<Property Id="Microsoft.VisualStudio.Services.Links.Getstarted" Value="https://git.nhcarrigan.com/nhcarrigan/vscode-themes" />
<Property Id="Microsoft.VisualStudio.Services.Links.Repository" Value="https://git.nhcarrigan.com/nhcarrigan/vscode-themes" />
<Property Id="Microsoft.VisualStudio.Services.Links.Support" Value="https://git.nhcarrigan.com/nhcarrigan/vscode-themes/issues" />
<Property Id="Microsoft.VisualStudio.Services.Links.Learn" Value="https://nhcarrigan.com" />
+5 -5
View File
@@ -1,18 +1,18 @@
# Ocean Breeze
# Naomi's VSCode Themes
This is a custom VSCode theme inspired by the aqua hues of the ocean, and built upon Naomi's custom design style.
This is a collection of various VSCode themes Naomi has written to suit her ever-changing whims.
## Feedback and Bugs
If you have feedback or a bug report, please feel free to open an issue!
If you have feedback or a bug report, please [log a ticket on our forum](https://support.nhcarrigan.com).
## Contributing
If you would like to contribute to the project, you may create a Pull Request containing your proposed changes and we will review it as soon as we are able! Please review our [contributing guidelines](https://codeberg.org/nhcarrigan/ocean-breeze/src/branch/main/CONTRIBUTING.md) first.
If you would like to contribute to the project, you may create a Pull Request containing your proposed changes and we will review it as soon as we are able! Please review our [contributing guidelines](https://git.nhcarrigan.com/nhcarrigan/vscode-themes/src/branch/main/CONTRIBUTING.md) first.
## Code of Conduct
Before interacting with our community, please read our [Code of Conduct](https://codeberg.org/nhcarrigan/ocean-breeze/src/branch/main/CODE_OF_CONDUCT.md).
Before interacting with our community, please read our [Code of Conduct](https://git.nhcarrigan.com/nhcarrigan/vscode-themes/src/branch/main/CODE_OF_CONDUCT.md).
## License
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 1.3 MiB

+70 -50
View File
@@ -1,52 +1,72 @@
{
"name": "ocean-breeze",
"displayName": "Ocean Breeze",
"icon": "icon.png",
"version": "1.0.0",
"description": "A soothing VSCode theme inspired by the aqua hues of the ocean.",
"engines": {
"vscode": "^1.95.2"
},
"publisher": "nhcarrigan",
"categories": [
"Themes"
],
"contributes": {
"themes": [
{
"label": "Ocean Breeze",
"uiTheme": "vs-dark",
"path": "./themes/ocean-breeze.json"
}
]
},
"scripts": {
"package": "vsce package --baseContentUrl https://codeberg.org/nhcarrigan/ocean-breeze/src/branch/main --baseImagesUrl https://codeberg.org/nhcarrigan/ocean-breeze/raw/branch/main"
},
"keywords": [],
"author": "",
"license": "See license in LICENSE.md",
"repository": {
"type": "git",
"url": "https://codeberg.org/nhcarrigan/ocean-breeze"
},
"url": "https://codeberg.org/nhcarrigan/ocean-breeze",
"bugs": {
"url": "https://codeberg.org/nhcarrigan/ocean-breeze/issues"
},
"homepage": "https://nhcarrigan.com",
"__metadata": {
"id": "4ef14004-37a0-4a6d-8b74-a05120262565",
"publisherId": "ef44e68f-3bb5-42cc-966c-4c83cab35159",
"publisherDisplayName": "nhcarrigan",
"targetPlatform": "undefined",
"isApplicationScoped": false,
"isPreReleaseVersion": false,
"hasPreReleaseVersion": false,
"installedTimestamp": 1732404250372,
"pinned": false,
"preRelease": false,
"source": "gallery",
"size": 898506
}
"name": "naomis-themes",
"displayName": "Naomi's Themes",
"icon": "icon.png",
"version": "2.3.0",
"description": "Various themes Naomi has created.",
"engines": {
"vscode": "^1.96.4"
},
"publisher": "nhcarrigan",
"categories": [
"Themes"
],
"contributes": {
"themes": [
{
"label": "Ocean Breeze",
"uiTheme": "vs-dark",
"path": "./themes/ocean-breeze.json"
},
{
"label": "Sakura Dreams",
"uiTheme": "vs",
"path": "./themes/sakura-dreams.json"
},
{
"label": "Sakura Dreams (Dark)",
"uiTheme": "vs-dark",
"path": "./themes/sakura-dreams-dark.json"
},
{
"label": "Trans Pride",
"uiTheme": "vs",
"path": "./themes/trans-pride.json"
},
{
"label": "Witchy Dark",
"uiTheme": "vs-dark",
"path": "./themes/witchy-dark.json"
}
]
},
"scripts": {
"package": "vsce package --baseContentUrl https://git.nhcarrigan.com/nhcarrigan/vscode-themes --baseImagesUrl https://git.nhcarrigan.com/nhcarrigan/vscode-themes/raw/branch/main"
},
"keywords": [],
"author": "Naomi Carrigan",
"license": "See license in LICENSE.md",
"repository": {
"type": "git",
"url": "https://git.nhcarrigan.com/nhcarrigan/vscode-themes"
},
"url": "https://git.nhcarrigan.com/nhcarrigan/vscode-themes",
"bugs": {
"url": "https://git.nhcarrigan.com/nhcarrigan/vscode-themes/issues"
},
"homepage": "https://nhcarrigan.com",
"__metadata": {
"id": "4ef14004-37a0-4a6d-8b74-a05120262565",
"publisherId": "ef44e68f-3bb5-42cc-966c-4c83cab35159",
"publisherDisplayName": "nhcarrigan",
"targetPlatform": "undefined",
"isApplicationScoped": false,
"isPreReleaseVersion": false,
"hasPreReleaseVersion": false,
"installedTimestamp": 1732404250372,
"pinned": false,
"preRelease": false,
"source": "gallery",
"size": 898506
}
}
+14 -14
View File
@@ -64,7 +64,7 @@
{
"scope": ["comment", "punctuation.definition.comment"],
"settings": {
"foreground": "#7fedd6",
"foreground": "#35675c",
"fontStyle": "italic"
}
},
@@ -91,7 +91,7 @@
"support.constant"
],
"settings": {
"foreground": "#ffd93d"
"foreground": "#477f72"
}
},
{
@@ -117,7 +117,7 @@
"punctuation.decorator"
],
"settings": {
"foreground": "#ff92df"
"foreground": "#6eafa1"
}
},
{
@@ -130,7 +130,7 @@
"meta.function.dart"
],
"settings": {
"foreground": "#6bc5ff"
"foreground": "#82c8b9"
}
},
{
@@ -158,13 +158,13 @@
"punctuation.definition.annotation"
],
"settings": {
"foreground": "#ffe074"
"foreground": "#477f72"
}
},
{
"scope": ["entity.name.tag", "punctuation.definition.tag"],
"settings": {
"foreground": "#ff92df"
"foreground": "#6eafa1"
}
},
{
@@ -195,13 +195,13 @@
{
"scope": ["string.regexp", "constant.character.escape.regex"],
"settings": {
"foreground": "#ff8585"
"foreground": "#7fedd6"
}
},
{
"scope": ["markup.heading", "entity.name.section"],
"settings": {
"foreground": "#6bc5ff",
"foreground": "#82c8b9",
"fontStyle": "bold"
}
},
@@ -243,7 +243,7 @@
"keyword.operator.logical"
],
"settings": {
"foreground": "#ff92df"
"foreground": "#6eafa1"
}
},
{
@@ -294,7 +294,7 @@
"source.rust keyword.operator.logical"
],
"settings": {
"foreground": "#ff92df"
"foreground": "#6eafa1"
}
},
{
@@ -303,7 +303,7 @@
"source.python support.function.builtin.python"
],
"settings": {
"foreground": "#6bc5ff"
"foreground": "#82c8b9"
}
},
{
@@ -331,7 +331,7 @@
"source.prisma keyword.type"
],
"settings": {
"foreground": "#ff92df"
"foreground": "#6eafa1"
}
},
{
@@ -346,7 +346,7 @@
{
"scope": ["source.sql keyword.other", "source.sql storage.type"],
"settings": {
"foreground": "#ff92df"
"foreground": "#6eafa1"
}
},
{
@@ -366,7 +366,7 @@
"meta.decorator.angular"
],
"settings": {
"foreground": "#ffe074"
"foreground": "#477f72"
}
}
]
+373
View File
@@ -0,0 +1,373 @@
{
"name": "Sakura Dreams Dark",
"type": "dark",
"colors": {
"editor.background": "#2a0a18",
"editor.foreground": "#ffb6c1",
"activityBar.background": "#3a0d22",
"activityBar.foreground": "#ffb6c1",
"activityBarBadge.background": "#ff69b4",
"activityBarBadge.foreground": "#000000",
"sideBar.background": "#3a0d22",
"sideBar.foreground": "#ffb6c1",
"sideBarTitle.foreground": "#ff69b4",
"titleBar.activeBackground": "#4a112a",
"titleBar.activeForeground": "#ffb6c1",
"statusBar.background": "#4a112a",
"statusBar.foreground": "#ffb6c1",
"statusBar.noFolderBackground": "#2a0a18",
"tab.activeBackground": "#3a0d22",
"tab.activeForeground": "#ffb6c1",
"tab.inactiveBackground": "#4a112a",
"tab.inactiveForeground": "#e35a8f",
"editorGroupHeader.tabsBackground": "#3a0d22",
"button.background": "#ff69b4",
"button.foreground": "#000000",
"dropdown.background": "#4a112a",
"dropdown.foreground": "#ffb6c1",
"input.background": "#3a0d22",
"input.foreground": "#ffb6c1",
"input.placeholderForeground": "#e35a8f",
"focusBorder": "#ff69b4",
"list.activeSelectionBackground": "#4a112a",
"list.activeSelectionForeground": "#ffb6c1",
"list.hoverBackground": "#3a0d22",
"list.hoverForeground": "#ffb6c1",
"editor.selectionBackground": "#e35a8f",
"editor.selectionHighlightBackground": "#e35a8f80",
"editor.wordHighlightBackground": "#e35a8f80",
"editor.lineHighlightBackground": "#3a0d22",
"editorCursor.foreground": "#ff69b4",
"editorWhitespace.foreground": "#4a112a",
"editorIndentGuide.background": "#4a112a",
"editorIndentGuide.activeBackground": "#ffb6c1",
"terminal.background": "#2a0a18",
"terminal.foreground": "#ffb6c1",
"terminal.ansiBlack": "#4a112a",
"terminal.ansiBrightBlack": "#3a0d22",
"terminal.ansiRed": "#ff69b4",
"terminal.ansiBrightRed": "#ff1493",
"terminal.ansiGreen": "#e35a8f",
"terminal.ansiBrightGreen": "#ff77a8",
"terminal.ansiYellow": "#d45a88",
"terminal.ansiBrightYellow": "#ffb6c1",
"terminal.ansiBlue": "#c96385",
"terminal.ansiBrightBlue": "#d87093",
"terminal.ansiMagenta": "#e35a8f",
"terminal.ansiBrightMagenta": "#ff85a2",
"terminal.ansiCyan": "#ff9aac",
"terminal.ansiBrightCyan": "#ffafc5",
"terminal.ansiWhite": "#ffd1dc",
"terminal.ansiBrightWhite": "#fff5f7"
},
"tokenColors": [
{
"scope": ["comment", "punctuation.definition.comment"],
"settings": {
"foreground": "#e5a3b5",
"fontStyle": "italic"
}
},
{
"scope": [
"string",
"string.quoted.single",
"string.quoted.double",
"string.quoted.triple",
"string.template",
"constant.character",
"constant.other.symbol"
],
"settings": {
"foreground": "#ff69b4"
}
},
{
"scope": [
"constant.numeric",
"constant.language",
"constant.character.escape",
"constant.other",
"support.constant"
],
"settings": {
"foreground": "#c96385"
}
},
{
"scope": [
"variable",
"variable.other",
"variable.parameter",
"variable.language",
"variable.object.property"
],
"settings": {
"foreground": "#d87093"
}
},
{
"scope": [
"keyword",
"keyword.control",
"keyword.operator",
"keyword.other",
"storage.type",
"storage.modifier",
"punctuation.decorator"
],
"settings": {
"foreground": "#e35a8f"
}
},
{
"scope": [
"entity.name.function",
"entity.name.method",
"support.function",
"meta.function-call",
"meta.method-call",
"meta.function.dart"
],
"settings": {
"foreground": "#d45a88"
}
},
{
"scope": [
"entity.name.type",
"entity.name.class",
"entity.name.struct",
"entity.name.enum",
"entity.name.union",
"entity.name.trait",
"entity.name.interface",
"support.class",
"support.type",
"meta.return-type"
],
"settings": {
"foreground": "#ff77a8",
"fontStyle": "bold"
}
},
{
"scope": [
"meta.decorator",
"meta.annotation",
"punctuation.definition.annotation"
],
"settings": {
"foreground": "#c96385"
}
},
{
"scope": ["entity.name.tag", "punctuation.definition.tag"],
"settings": {
"foreground": "#e35a8f"
}
},
{
"scope": [
"entity.other.attribute-name",
"entity.other.attribute-name.html",
"entity.other.attribute-name.css",
"support.type.property-name.css",
"entity.other.attribute-name.class"
],
"settings": {
"foreground": "#ff77a8"
}
},
{
"scope": [
"support.type.primitive",
"support.type.builtin",
"keyword.type",
"storage.type.primitive",
"storage.type.built-in",
"support.type.primitive.dart"
],
"settings": {
"foreground": "#ff77a8"
}
},
{
"scope": ["string.regexp", "constant.character.escape.regex"],
"settings": {
"foreground": "#ff69b4"
}
},
{
"scope": ["markup.heading", "entity.name.section"],
"settings": {
"foreground": "#d45a88",
"fontStyle": "bold"
}
},
{
"scope": ["markup.bold"],
"settings": {
"fontStyle": "bold"
}
},
{
"scope": ["markup.italic"],
"settings": {
"fontStyle": "italic"
}
},
{
"scope": ["markup.inline.raw", "markup.fenced_code", "markup.raw"],
"settings": {
"foreground": "#ff69b4"
}
},
{
"scope": [
"support.type.property-name.json",
"support.type.property-name.jsonc"
],
"settings": {
"foreground": "#ff77a8"
}
},
{
"scope": [
"keyword.operator.expression",
"keyword.operator.new",
"keyword.operator.optional",
"keyword.operator.comparison",
"keyword.operator.arithmetic",
"keyword.operator.assignment",
"keyword.operator.logical"
],
"settings": {
"foreground": "#e35a8f"
}
},
{
"scope": [
"meta.embedded",
"source.groovy.embedded",
"meta.template.expression"
],
"settings": {
"foreground": "#d87093"
}
},
{
"scope": [
"meta.object-literal.key",
"variable.object.property",
"variable.other.property",
"variable.other.object.property"
],
"settings": {
"foreground": "#ff77a8"
}
},
{
"scope": [
"support.variable.property",
"support.variable.object.process",
"support.variable.object.node"
],
"settings": {
"foreground": "#ff77a8"
}
},
{
"scope": [
"source.rust storage.type.rust",
"source.rust entity.name.type.rust",
"source.rust entity.name.type.struct.rust"
],
"settings": {
"foreground": "#ff77a8"
}
},
{
"scope": [
"source.rust keyword.operator",
"source.rust keyword.operator.arithmetic",
"source.rust keyword.operator.logical"
],
"settings": {
"foreground": "#e35a8f"
}
},
{
"scope": [
"source.python support.type.python",
"source.python support.function.builtin.python"
],
"settings": {
"foreground": "#d45a88"
}
},
{
"scope": [
"source.cs entity.name.type.class.cs",
"source.cs storage.type.cs"
],
"settings": {
"foreground": "#ff77a8"
}
},
{
"scope": [
"source.dart support.class.dart",
"source.dart support.type.dart"
],
"settings": {
"foreground": "#ff77a8"
}
},
{
"scope": [
"source.prisma keyword.operator",
"source.prisma constant.language",
"source.prisma keyword.type"
],
"settings": {
"foreground": "#e35a8f"
}
},
{
"scope": [
"source.graphql support.type",
"source.graphql constant.character"
],
"settings": {
"foreground": "#ff77a8"
}
},
{
"scope": ["source.sql keyword.other", "source.sql storage.type"],
"settings": {
"foreground": "#e35a8f"
}
},
{
"scope": [
"meta.jsx.children",
"meta.embedded.block.tsx",
"meta.embedded.block.jsx"
],
"settings": {
"foreground": "#d87093"
}
},
{
"scope": [
"meta.decorator.ts",
"meta.decorator.tsx",
"meta.decorator.angular"
],
"settings": {
"foreground": "#c96385"
}
}
]
}
+373
View File
@@ -0,0 +1,373 @@
{
"name": "Sakura Dreams",
"type": "light",
"colors": {
"editor.background": "#ffefef",
"editor.foreground": "#d87093",
"activityBar.background": "#ffd6e0",
"activityBar.foreground": "#d87093",
"activityBarBadge.background": "#ff69b4",
"activityBarBadge.foreground": "#ffffff",
"sideBar.background": "#fff0f5",
"sideBar.foreground": "#d87093",
"sideBarTitle.foreground": "#ff69b4",
"titleBar.activeBackground": "#ffd6e0",
"titleBar.activeForeground": "#d87093",
"statusBar.background": "#ffd6e0",
"statusBar.foreground": "#d87093",
"statusBar.noFolderBackground": "#ffefef",
"tab.activeBackground": "#ffefef",
"tab.activeForeground": "#d87093",
"tab.inactiveBackground": "#ffd6e0",
"tab.inactiveForeground": "#ff77a8",
"editorGroupHeader.tabsBackground": "#ffe4e8",
"button.background": "#ff69b4",
"button.foreground": "#ffffff",
"dropdown.background": "#fff0f5",
"dropdown.foreground": "#d87093",
"input.background": "#fff0f5",
"input.foreground": "#d87093",
"input.placeholderForeground": "#ff77a8",
"focusBorder": "#ff69b4",
"list.activeSelectionBackground": "#ffefef",
"list.activeSelectionForeground": "#d87093",
"list.hoverBackground": "#fff0f5",
"list.hoverForeground": "#d87093",
"editor.selectionBackground": "#ffb6c1",
"editor.selectionHighlightBackground": "#ffb6c180",
"editor.wordHighlightBackground": "#ffb6c180",
"editor.lineHighlightBackground": "#fff0f5",
"editorCursor.foreground": "#ff69b4",
"editorWhitespace.foreground": "#ffe4e8",
"editorIndentGuide.background": "#ffe4e8",
"editorIndentGuide.activeBackground": "#ffb6c1",
"terminal.background": "#ffefef",
"terminal.foreground": "#d87093",
"terminal.ansiBlack": "#ffe4e8",
"terminal.ansiBrightBlack": "#ffefef",
"terminal.ansiRed": "#ff1493",
"terminal.ansiBrightRed": "#ff0066",
"terminal.ansiGreen": "#ff69b4",
"terminal.ansiBrightGreen": "#ff77a8",
"terminal.ansiYellow": "#ffb6c1",
"terminal.ansiBrightYellow": "#ffa6c9",
"terminal.ansiBlue": "#db7093",
"terminal.ansiBrightBlue": "#f08080",
"terminal.ansiMagenta": "#ff85a2",
"terminal.ansiBrightMagenta": "#ff9aac",
"terminal.ansiCyan": "#ffafc5",
"terminal.ansiBrightCyan": "#ffc0cb",
"terminal.ansiWhite": "#ffd1dc",
"terminal.ansiBrightWhite": "#fff5f7"
},
"tokenColors": [
{
"scope": ["comment", "punctuation.definition.comment"],
"settings": {
"foreground": "#e5a3b5",
"fontStyle": "italic"
}
},
{
"scope": [
"string",
"string.quoted.single",
"string.quoted.double",
"string.quoted.triple",
"string.template",
"constant.character",
"constant.other.symbol"
],
"settings": {
"foreground": "#ff69b4"
}
},
{
"scope": [
"constant.numeric",
"constant.language",
"constant.character.escape",
"constant.other",
"support.constant"
],
"settings": {
"foreground": "#c96385"
}
},
{
"scope": [
"variable",
"variable.other",
"variable.parameter",
"variable.language",
"variable.object.property"
],
"settings": {
"foreground": "#d87093"
}
},
{
"scope": [
"keyword",
"keyword.control",
"keyword.operator",
"keyword.other",
"storage.type",
"storage.modifier",
"punctuation.decorator"
],
"settings": {
"foreground": "#e35a8f"
}
},
{
"scope": [
"entity.name.function",
"entity.name.method",
"support.function",
"meta.function-call",
"meta.method-call",
"meta.function.dart"
],
"settings": {
"foreground": "#d45a88"
}
},
{
"scope": [
"entity.name.type",
"entity.name.class",
"entity.name.struct",
"entity.name.enum",
"entity.name.union",
"entity.name.trait",
"entity.name.interface",
"support.class",
"support.type",
"meta.return-type"
],
"settings": {
"foreground": "#ff77a8",
"fontStyle": "bold"
}
},
{
"scope": [
"meta.decorator",
"meta.annotation",
"punctuation.definition.annotation"
],
"settings": {
"foreground": "#c96385"
}
},
{
"scope": ["entity.name.tag", "punctuation.definition.tag"],
"settings": {
"foreground": "#e35a8f"
}
},
{
"scope": [
"entity.other.attribute-name",
"entity.other.attribute-name.html",
"entity.other.attribute-name.css",
"support.type.property-name.css",
"entity.other.attribute-name.class"
],
"settings": {
"foreground": "#ff77a8"
}
},
{
"scope": [
"support.type.primitive",
"support.type.builtin",
"keyword.type",
"storage.type.primitive",
"storage.type.built-in",
"support.type.primitive.dart"
],
"settings": {
"foreground": "#ff77a8"
}
},
{
"scope": ["string.regexp", "constant.character.escape.regex"],
"settings": {
"foreground": "#ff69b4"
}
},
{
"scope": ["markup.heading", "entity.name.section"],
"settings": {
"foreground": "#d45a88",
"fontStyle": "bold"
}
},
{
"scope": ["markup.bold"],
"settings": {
"fontStyle": "bold"
}
},
{
"scope": ["markup.italic"],
"settings": {
"fontStyle": "italic"
}
},
{
"scope": ["markup.inline.raw", "markup.fenced_code", "markup.raw"],
"settings": {
"foreground": "#ff69b4"
}
},
{
"scope": [
"support.type.property-name.json",
"support.type.property-name.jsonc"
],
"settings": {
"foreground": "#ff77a8"
}
},
{
"scope": [
"keyword.operator.expression",
"keyword.operator.new",
"keyword.operator.optional",
"keyword.operator.comparison",
"keyword.operator.arithmetic",
"keyword.operator.assignment",
"keyword.operator.logical"
],
"settings": {
"foreground": "#e35a8f"
}
},
{
"scope": [
"meta.embedded",
"source.groovy.embedded",
"meta.template.expression"
],
"settings": {
"foreground": "#d87093"
}
},
{
"scope": [
"meta.object-literal.key",
"variable.object.property",
"variable.other.property",
"variable.other.object.property"
],
"settings": {
"foreground": "#ff77a8"
}
},
{
"scope": [
"support.variable.property",
"support.variable.object.process",
"support.variable.object.node"
],
"settings": {
"foreground": "#ff77a8"
}
},
{
"scope": [
"source.rust storage.type.rust",
"source.rust entity.name.type.rust",
"source.rust entity.name.type.struct.rust"
],
"settings": {
"foreground": "#ff77a8"
}
},
{
"scope": [
"source.rust keyword.operator",
"source.rust keyword.operator.arithmetic",
"source.rust keyword.operator.logical"
],
"settings": {
"foreground": "#e35a8f"
}
},
{
"scope": [
"source.python support.type.python",
"source.python support.function.builtin.python"
],
"settings": {
"foreground": "#d45a88"
}
},
{
"scope": [
"source.cs entity.name.type.class.cs",
"source.cs storage.type.cs"
],
"settings": {
"foreground": "#ff77a8"
}
},
{
"scope": [
"source.dart support.class.dart",
"source.dart support.type.dart"
],
"settings": {
"foreground": "#ff77a8"
}
},
{
"scope": [
"source.prisma keyword.operator",
"source.prisma constant.language",
"source.prisma keyword.type"
],
"settings": {
"foreground": "#e35a8f"
}
},
{
"scope": [
"source.graphql support.type",
"source.graphql constant.character"
],
"settings": {
"foreground": "#ff77a8"
}
},
{
"scope": ["source.sql keyword.other", "source.sql storage.type"],
"settings": {
"foreground": "#e35a8f"
}
},
{
"scope": [
"meta.jsx.children",
"meta.embedded.block.tsx",
"meta.embedded.block.jsx"
],
"settings": {
"foreground": "#d87093"
}
},
{
"scope": [
"meta.decorator.ts",
"meta.decorator.tsx",
"meta.decorator.angular"
],
"settings": {
"foreground": "#c96385"
}
}
]
}
+187
View File
@@ -0,0 +1,187 @@
{
"name": "Trans Pride Light (Naomi)",
"type": "light",
"colors": {
"editor.background": "#E6F6FF",
"editor.foreground": "#DB7093",
"activityBar.background": "#E6F6FF",
"activityBar.foreground": "#DB7093",
"activityBarBadge.background": "#FF6B94",
"activityBarBadge.foreground": "#FFFFFF",
"sideBar.background": "#E6F6FF",
"sideBar.foreground": "#2A0A18",
"sideBarTitle.foreground": "#FF6B94",
"titleBar.activeBackground": "#E6F6FF",
"titleBar.activeForeground": "#2A0A18",
"statusBar.background": "#E6F6FF",
"statusBar.foreground": "#2A0A18",
"statusBar.noFolderBackground": "#E6F6FF",
"tab.activeBackground": "#FFFFFF",
"tab.activeForeground": "#DB7093",
"tab.inactiveBackground": "#E6F6FF",
"tab.inactiveForeground": "#7A5B6A",
"editorGroupHeader.tabsBackground": "#E6F6FF",
"button.background": "#FF6B94",
"button.foreground": "#FFFFFF",
"dropdown.background": "#FFFFFF",
"dropdown.foreground": "#2A0A18",
"input.background": "#FFFFFF",
"input.foreground": "#2A0A18",
"input.placeholderForeground": "#7A5B6A",
"focusBorder": "#FF6B94",
"list.activeSelectionBackground": "#FFF0F6",
"list.activeSelectionForeground": "#2A0A18",
"list.hoverBackground": "#E6F6FF",
"list.hoverForeground": "#2A0A18",
"editor.selectionBackground": "#FFB6C1",
"editor.selectionHighlightBackground": "#FFB6C180",
"editor.wordHighlightBackground": "#FFB6C180",
"editor.lineHighlightBackground": "#E6F6FF",
"editorCursor.foreground": "#FF3B6F",
"editorWhitespace.foreground": "#CFEAFB",
"editorIndentGuide.background": "#CFEAFB",
"editorIndentGuide.activeBackground": "#ADD8E6",
"terminal.background": "#E6F6FF",
"terminal.foreground": "#2A0A18",
"terminal.ansiBlack": "#E6F6FF",
"terminal.ansiBrightBlack": "#E6F6FF",
"terminal.ansiRed": "#FF4F7A",
"terminal.ansiBrightRed": "#FF2F66",
"terminal.ansiGreen": "#C75B7C",
"terminal.ansiBrightGreen": "#D87093",
"terminal.ansiYellow": "#FF96B5",
"terminal.ansiBrightYellow": "#FFB6C1",
"terminal.ansiBlue": "#DB7093",
"terminal.ansiBrightBlue": "#E35A8F",
"terminal.ansiMagenta": "#C96385",
"terminal.ansiBrightMagenta": "#D45A88",
"terminal.ansiCyan": "#FF85A2",
"terminal.ansiBrightCyan": "#FF9AAC",
"terminal.ansiWhite": "#2A0A18",
"terminal.ansiBrightWhite": "#000000"
},
"tokenColors": [
{
"scope": ["comment", "punctuation.definition.comment"],
"settings": { "foreground": "#C79BB1", "fontStyle": "italic" }
},
{
"scope": [
"string",
"string.quoted",
"string.template",
"constant.character"
],
"settings": { "foreground": "#FF6B94" }
},
{
"scope": [
"constant.numeric",
"constant.language",
"constant.other"
],
"settings": { "foreground": "#C75B7C" }
},
{
"scope": [
"variable",
"variable.other",
"variable.parameter"
],
"settings": { "foreground": "#DB7093" }
},
{
"scope": [
"keyword",
"keyword.control",
"keyword.operator",
"storage.type",
"storage.modifier"
],
"settings": { "foreground": "#E35A8F", "fontStyle": "bold" }
},
{
"scope": [
"entity.name.function",
"entity.name.method",
"support.function",
"meta.function-call"
],
"settings": { "foreground": "#D45A88" }
},
{
"scope": [
"entity.name.type",
"entity.name.class",
"entity.name.struct",
"entity.name.enum",
"support.class"
],
"settings": { "foreground": "#FF77A8", "fontStyle": "bold" }
},
{
"scope": [
"entity.name.tag",
"punctuation.definition.tag"
],
"settings": { "foreground": "#DB7093" }
},
{
"scope": [
"entity.other.attribute-name",
"support.type.property-name"
],
"settings": { "foreground": "#C96385" }
},
{
"scope": [
"support.type.primitive",
"support.type.builtin",
"keyword.type"
],
"settings": { "foreground": "#E35A8F" }
},
{
"scope": ["markup.heading"],
"settings": { "foreground": "#FF3B6F", "fontStyle": "bold" }
},
{
"scope": ["markup.bold"],
"settings": { "fontStyle": "bold" }
},
{
"scope": ["markup.italic"],
"settings": { "fontStyle": "italic" }
},
{
"scope": [
"support.variable.property",
"variable.other.property"
],
"settings": { "foreground": "#D87093" }
},
{
"scope": [
"keyword.operator",
"meta.decorator",
"meta.annotation"
],
"settings": { "foreground": "#D45A88" }
}
]
}
+463
View File
@@ -0,0 +1,463 @@
{
"name": "Witchy Dark",
"type": "dark",
"colors": {
"editor.background": "#0A0009",
"editor.foreground": "#E8D5E8",
"activityBar.background": "#150A1E",
"activityBar.foreground": "#E8D5E8",
"activityBarBadge.background": "#A8577E",
"activityBarBadge.foreground": "#F5F5F5",
"sideBar.background": "#150A1E",
"sideBar.foreground": "#E8D5E8",
"sideBarTitle.foreground": "#D4A5C7",
"titleBar.activeBackground": "#2B1B3D",
"titleBar.activeForeground": "#E8D5E8",
"statusBar.background": "#44275A",
"statusBar.foreground": "#E8D5E8",
"statusBar.noFolderBackground": "#0A0009",
"tab.activeBackground": "#2B1B3D",
"tab.activeForeground": "#E8D5E8",
"tab.inactiveBackground": "#150A1E",
"tab.inactiveForeground": "#D4A5C7",
"editorGroupHeader.tabsBackground": "#150A1E",
"button.background": "#44275A",
"button.foreground": "#E8D5E8",
"dropdown.background": "#2B1B3D",
"dropdown.foreground": "#E8D5E8",
"input.background": "#150A1E",
"input.foreground": "#E8D5E8",
"input.placeholderForeground": "#D4A5C7",
"focusBorder": "#A8577E",
"list.activeSelectionBackground": "#44275A",
"list.activeSelectionForeground": "#E8D5E8",
"list.hoverBackground": "#2B1B3D",
"list.hoverForeground": "#E8D5E8",
"editor.selectionBackground": "#A8577E",
"editor.selectionHighlightBackground": "#A8577E50",
"editor.wordHighlightBackground": "#A8577E40",
"editor.lineHighlightBackground": "#2B1B3D",
"editorCursor.foreground": "#A8577E",
"editorWhitespace.foreground": "#44275A",
"editorIndentGuide.background": "#44275A",
"editorIndentGuide.activeBackground": "#A8577E",
"terminal.background": "#0A0009",
"terminal.foreground": "#E8D5E8",
"terminal.ansiBlack": "#2B1B3D",
"terminal.ansiBrightBlack": "#44275A",
"terminal.ansiRed": "#A8577E",
"terminal.ansiBrightRed": "#C96B8E",
"terminal.ansiGreen": "#8A7A9E",
"terminal.ansiBrightGreen": "#A898C0",
"terminal.ansiYellow": "#D4A5C7",
"terminal.ansiBrightYellow": "#E8D5E8",
"terminal.ansiBlue": "#7B5EA8",
"terminal.ansiBrightBlue": "#9B7EC8",
"terminal.ansiMagenta": "#A8577E",
"terminal.ansiBrightMagenta": "#D4A5C7",
"terminal.ansiCyan": "#B8A0D0",
"terminal.ansiBrightCyan": "#D0B8E8",
"terminal.ansiWhite": "#D4A5C7",
"terminal.ansiBrightWhite": "#F5F5F5"
},
"tokenColors": [
{
"scope": ["comment", "punctuation.definition.comment"],
"settings": {
"foreground": "#7A5A8A",
"fontStyle": "italic"
}
},
{
"scope": [
"string",
"string.quoted.single",
"string.quoted.double",
"string.quoted.triple",
"string.template",
"constant.character",
"constant.other.symbol"
],
"settings": {
"foreground": "#D4A5C7"
}
},
{
"scope": [
"constant.numeric",
"constant.language",
"constant.character.escape",
"constant.other",
"support.constant"
],
"settings": {
"foreground": "#C88FA8"
}
},
{
"scope": [
"variable",
"variable.other",
"variable.parameter",
"variable.language",
"variable.object.property"
],
"settings": {
"foreground": "#E8D5E8"
}
},
{
"scope": [
"keyword",
"keyword.control",
"keyword.operator",
"keyword.other",
"storage.type",
"storage.modifier",
"punctuation.decorator"
],
"settings": {
"foreground": "#A8577E"
}
},
{
"scope": [
"entity.name.function",
"entity.name.method",
"support.function",
"meta.function-call",
"meta.method-call",
"meta.function.dart"
],
"settings": {
"foreground": "#C070A0"
}
},
{
"scope": [
"entity.name.type",
"entity.name.class",
"entity.name.struct",
"entity.name.enum",
"entity.name.union",
"entity.name.trait",
"entity.name.interface",
"support.class",
"support.type",
"meta.return-type"
],
"settings": {
"foreground": "#D4A5C7",
"fontStyle": "bold"
}
},
{
"scope": [
"meta.decorator",
"meta.annotation",
"punctuation.definition.annotation"
],
"settings": {
"foreground": "#9B5878"
}
},
{
"scope": ["entity.name.tag", "punctuation.definition.tag"],
"settings": {
"foreground": "#A8577E"
}
},
{
"scope": [
"entity.other.attribute-name",
"entity.other.attribute-name.html",
"entity.other.attribute-name.css",
"support.type.property-name.css",
"entity.other.attribute-name.class"
],
"settings": {
"foreground": "#D4A5C7"
}
},
{
"scope": [
"support.type.primitive",
"support.type.builtin",
"keyword.type",
"storage.type.primitive",
"storage.type.built-in",
"support.type.primitive.dart"
],
"settings": {
"foreground": "#D4A5C7"
}
},
{
"scope": ["string.regexp", "constant.character.escape.regex"],
"settings": {
"foreground": "#D4A5C7"
}
},
{
"scope": ["markup.heading", "entity.name.section"],
"settings": {
"foreground": "#A8577E",
"fontStyle": "bold"
}
},
{
"scope": ["markup.bold"],
"settings": {
"fontStyle": "bold"
}
},
{
"scope": ["markup.italic"],
"settings": {
"fontStyle": "italic"
}
},
{
"scope": ["markup.inline.raw", "markup.fenced_code", "markup.raw"],
"settings": {
"foreground": "#D4A5C7"
}
},
{
"scope": [
"support.type.property-name.json",
"support.type.property-name.jsonc"
],
"settings": {
"foreground": "#D4A5C7"
}
},
{
"scope": [
"keyword.operator.expression",
"keyword.operator.new",
"keyword.operator.optional",
"keyword.operator.comparison",
"keyword.operator.arithmetic",
"keyword.operator.assignment",
"keyword.operator.logical"
],
"settings": {
"foreground": "#CF8FAE"
}
},
{
"scope": [
"meta.embedded",
"source.groovy.embedded",
"meta.template.expression"
],
"settings": {
"foreground": "#E8D5E8"
}
},
{
"scope": [
"meta.object-literal.key",
"variable.object.property",
"variable.other.property",
"variable.other.object.property"
],
"settings": {
"foreground": "#D4A5C7"
}
},
{
"scope": [
"support.variable.property",
"support.variable.object.process",
"support.variable.object.node"
],
"settings": {
"foreground": "#D4A5C7"
}
},
{
"scope": [
"source.rust storage.type.rust",
"source.rust entity.name.type.rust",
"source.rust entity.name.type.struct.rust"
],
"settings": {
"foreground": "#D4A5C7"
}
},
{
"scope": [
"source.rust keyword.operator",
"source.rust keyword.operator.arithmetic",
"source.rust keyword.operator.logical"
],
"settings": {
"foreground": "#CF8FAE"
}
},
{
"scope": [
"source.python support.type.python",
"source.python support.function.builtin.python"
],
"settings": {
"foreground": "#C070A0"
}
},
{
"scope": [
"source.cs entity.name.type.class.cs",
"source.cs storage.type.cs"
],
"settings": {
"foreground": "#D4A5C7"
}
},
{
"scope": [
"source.dart support.class.dart",
"source.dart support.type.dart"
],
"settings": {
"foreground": "#D4A5C7"
}
},
{
"scope": [
"source.prisma keyword.operator",
"source.prisma constant.language",
"source.prisma keyword.type"
],
"settings": {
"foreground": "#A8577E"
}
},
{
"scope": [
"source.graphql support.type",
"source.graphql constant.character"
],
"settings": {
"foreground": "#D4A5C7"
}
},
{
"scope": ["source.sql keyword.other", "source.sql storage.type"],
"settings": {
"foreground": "#A8577E"
}
},
{
"scope": [
"meta.jsx.children",
"meta.embedded.block.tsx",
"meta.embedded.block.jsx"
],
"settings": {
"foreground": "#E8D5E8"
}
},
{
"scope": [
"meta.decorator.ts",
"meta.decorator.tsx",
"meta.decorator.angular"
],
"settings": {
"foreground": "#9B5878"
}
},
{
"scope": [
"entity.name.tag.yaml",
"string.unquoted.plain.out.yaml"
],
"settings": {
"foreground": "#D4A5C7"
}
},
{
"scope": [
"support.type.property-name.toml",
"entity.name.tag.toml"
],
"settings": {
"foreground": "#D4A5C7"
}
},
{
"scope": [
"markup.underline.link",
"string.other.link.title.markdown",
"meta.link.inline.markdown"
],
"settings": {
"foreground": "#A8577E"
}
},
{
"scope": ["markup.quote"],
"settings": {
"foreground": "#7A5A8A",
"fontStyle": "italic"
}
},
{
"scope": [
"punctuation.definition.list.begin.markdown",
"beginning.punctuation.definition.list.markdown"
],
"settings": {
"foreground": "#A8577E"
}
},
{
"scope": [
"variable.css",
"variable.other.custom-property.css",
"support.type.custom-property.css"
],
"settings": {
"foreground": "#CF8FAE"
}
},
{
"scope": [
"support.macro.rust",
"entity.name.function.macro.rust",
"meta.macro.rust entity.name.function.rust"
],
"settings": {
"foreground": "#C070A0"
}
},
{
"scope": [
"storage.modifier.lifetime.rust",
"entity.name.lifetime.rust",
"punctuation.definition.lifetime.rust"
],
"settings": {
"foreground": "#9B5878"
}
},
{
"scope": ["entity.name.package.go"],
"settings": {
"foreground": "#C88FA8"
}
},
{
"scope": [
"entity.name.package.java",
"support.other.package.java",
"entity.name.package.kotlin"
],
"settings": {
"foreground": "#C88FA8"
}
}
]
}