diff --git a/.forgejo/issue_template/bug_report.yaml b/.forgejo/issue_template/bug_report.yaml new file mode 100644 index 0000000..6deb616 --- /dev/null +++ b/.forgejo/issue_template/bug_report.yaml @@ -0,0 +1,69 @@ +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 + diff --git a/.forgejo/issue_template/config.yml b/.forgejo/issue_template/config.yml new file mode 100644 index 0000000..f1cdc86 --- /dev/null +++ b/.forgejo/issue_template/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: "Discord" + url: "https://chat.nhcarrigan.com" + about: "Chat with us directly." \ No newline at end of file diff --git a/.forgejo/issue_template/feature_proposal.yml b/.forgejo/issue_template/feature_proposal.yml new file mode 100644 index 0000000..d833b94 --- /dev/null +++ b/.forgejo/issue_template/feature_proposal.yml @@ -0,0 +1,46 @@ +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 diff --git a/.forgejo/issue_template/other.yml b/.forgejo/issue_template/other.yml new file mode 100644 index 0000000..680e7a7 --- /dev/null +++ b/.forgejo/issue_template/other.yml @@ -0,0 +1,34 @@ +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 diff --git a/.forgejo/pull_request_template.yml b/.forgejo/pull_request_template.yml new file mode 100644 index 0000000..37d43f4 --- /dev/null +++ b/.forgejo/pull_request_template.yml @@ -0,0 +1,93 @@ +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." diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..27a1f10 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.vsix diff --git a/.vsixmanifest b/.vsixmanifest new file mode 100644 index 0000000..0aa78fa --- /dev/null +++ b/.vsixmanifest @@ -0,0 +1,47 @@ + + + + + Ocean Breeze + A soothing VSCode theme inspired by the aqua hues of the ocean. + theme,color-theme,__web_extension + Themes + Public + + + + + + + + + + + + + + + + + + + + + + + + + extension/LICENSE.md + extension/icon.png + + + + + + + + + + + + \ No newline at end of file diff --git a/README.md b/README.md index 47a840e..9dd487f 100644 --- a/README.md +++ b/README.md @@ -1,32 +1,18 @@ -# New Repository Template +# Ocean Breeze -This template contains all of our basic files for a new GitHub repository. There is also a handy workflow that will create an issue on a new repository made from this template, with a checklist for the steps we usually take in setting up a new repository. - -If you're starting a Node.JS project with TypeScript, we have a [specific template](https://github.com/naomi-lgbt/nodejs-typescript-template) for that purpose. - -## Readme - -Delete all of the above text (including this line), and uncomment the below text to use our standard readme template. - - +We may be contacted through our [Chat Server](http://chat.nhcarrigan.com) or via email at `contact@nhcarrigan.com`. diff --git a/icon.png b/icon.png new file mode 100644 index 0000000..c424006 Binary files /dev/null and b/icon.png differ diff --git a/package.json b/package.json new file mode 100644 index 0000000..d9ce6df --- /dev/null +++ b/package.json @@ -0,0 +1,52 @@ +{ + "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 + } +} \ No newline at end of file diff --git a/themes/ocean-breeze.json b/themes/ocean-breeze.json new file mode 100644 index 0000000..732c5f4 --- /dev/null +++ b/themes/ocean-breeze.json @@ -0,0 +1,373 @@ +{ + "name": "Ocean Breeze", + "type": "dark", + "colors": { + "editor.background": "#012a22", + "editor.foreground": "#abfcec", + "activityBar.background": "#001a15", + "activityBar.foreground": "#abfcec", + "activityBarBadge.background": "#7fedd6", + "activityBarBadge.foreground": "#001a15", + "sideBar.background": "#011f19", + "sideBar.foreground": "#abfcec", + "sideBarTitle.foreground": "#7fedd6", + "titleBar.activeBackground": "#001a15", + "titleBar.activeForeground": "#abfcec", + "statusBar.background": "#001a15", + "statusBar.foreground": "#abfcec", + "statusBar.noFolderBackground": "#012a22", + "tab.activeBackground": "#012a22", + "tab.activeForeground": "#abfcec", + "tab.inactiveBackground": "#001a15", + "tab.inactiveForeground": "#7fedd6", + "editorGroupHeader.tabsBackground": "#001610", + "button.background": "#7fedd6", + "button.foreground": "#001610", + "dropdown.background": "#011f19", + "dropdown.foreground": "#abfcec", + "input.background": "#011f19", + "input.foreground": "#abfcec", + "input.placeholderForeground": "#7fedd6", + "focusBorder": "#7fedd6", + "list.activeSelectionBackground": "#012a22", + "list.activeSelectionForeground": "#abfcec", + "list.hoverBackground": "#011f19", + "list.hoverForeground": "#abfcec", + "editor.selectionBackground": "#023d35", + "editor.selectionHighlightBackground": "#023d3580", + "editor.wordHighlightBackground": "#023d3580", + "editor.lineHighlightBackground": "#011f19", + "editorCursor.foreground": "#abfcec", + "editorWhitespace.foreground": "#011f19", + "editorIndentGuide.background": "#011f19", + "editorIndentGuide.activeBackground": "#023d35", + "terminal.background": "#012a22", + "terminal.foreground": "#abfcec", + "terminal.ansiBlack": "#001610", + "terminal.ansiBrightBlack": "#012a22", + "terminal.ansiRed": "#ff6b6b", + "terminal.ansiBrightRed": "#ff8585", + "terminal.ansiGreen": "#4ddbba", + "terminal.ansiBrightGreen": "#6bedcc", + "terminal.ansiYellow": "#ffd93d", + "terminal.ansiBrightYellow": "#ffe074", + "terminal.ansiBlue": "#6bc5ff", + "terminal.ansiBrightBlue": "#92d5ff", + "terminal.ansiMagenta": "#ff92df", + "terminal.ansiBrightMagenta": "#ffb2e7", + "terminal.ansiCyan": "#89ffea", + "terminal.ansiBrightCyan": "#a9fff0", + "terminal.ansiWhite": "#c4fcf2", + "terminal.ansiBrightWhite": "#e2fcf8" + }, + "tokenColors": [ + { + "scope": ["comment", "punctuation.definition.comment"], + "settings": { + "foreground": "#7fedd6", + "fontStyle": "italic" + } + }, + { + "scope": [ + "string", + "string.quoted.single", + "string.quoted.double", + "string.quoted.triple", + "string.template", + "constant.character", + "constant.other.symbol" + ], + "settings": { + "foreground": "#4ddbba" + } + }, + { + "scope": [ + "constant.numeric", + "constant.language", + "constant.character.escape", + "constant.other", + "support.constant" + ], + "settings": { + "foreground": "#ffd93d" + } + }, + { + "scope": [ + "variable", + "variable.other", + "variable.parameter", + "variable.language", + "variable.object.property" + ], + "settings": { + "foreground": "#abfcec" + } + }, + { + "scope": [ + "keyword", + "keyword.control", + "keyword.operator", + "keyword.other", + "storage.type", + "storage.modifier", + "punctuation.decorator" + ], + "settings": { + "foreground": "#ff92df" + } + }, + { + "scope": [ + "entity.name.function", + "entity.name.method", + "support.function", + "meta.function-call", + "meta.method-call", + "meta.function.dart" + ], + "settings": { + "foreground": "#6bc5ff" + } + }, + { + "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": "#89ffea", + "fontStyle": "bold" + } + }, + { + "scope": [ + "meta.decorator", + "meta.annotation", + "punctuation.definition.annotation" + ], + "settings": { + "foreground": "#ffe074" + } + }, + { + "scope": ["entity.name.tag", "punctuation.definition.tag"], + "settings": { + "foreground": "#ff92df" + } + }, + { + "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": "#6bedcc" + } + }, + { + "scope": [ + "support.type.primitive", + "support.type.builtin", + "keyword.type", + "storage.type.primitive", + "storage.type.built-in", + "support.type.primitive.dart" + ], + "settings": { + "foreground": "#89ffea" + } + }, + { + "scope": ["string.regexp", "constant.character.escape.regex"], + "settings": { + "foreground": "#ff8585" + } + }, + { + "scope": ["markup.heading", "entity.name.section"], + "settings": { + "foreground": "#6bc5ff", + "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": "#4ddbba" + } + }, + { + "scope": [ + "support.type.property-name.json", + "support.type.property-name.jsonc" + ], + "settings": { + "foreground": "#6bedcc" + } + }, + { + "scope": [ + "keyword.operator.expression", + "keyword.operator.new", + "keyword.operator.optional", + "keyword.operator.comparison", + "keyword.operator.arithmetic", + "keyword.operator.assignment", + "keyword.operator.logical" + ], + "settings": { + "foreground": "#ff92df" + } + }, + { + "scope": [ + "meta.embedded", + "source.groovy.embedded", + "meta.template.expression" + ], + "settings": { + "foreground": "#abfcec" + } + }, + { + "scope": [ + "meta.object-literal.key", + "variable.object.property", + "variable.other.property", + "variable.other.object.property" + ], + "settings": { + "foreground": "#6bedcc" + } + }, + { + "scope": [ + "support.variable.property", + "support.variable.object.process", + "support.variable.object.node" + ], + "settings": { + "foreground": "#6bedcc" + } + }, + { + "scope": [ + "source.rust storage.type.rust", + "source.rust entity.name.type.rust", + "source.rust entity.name.type.struct.rust" + ], + "settings": { + "foreground": "#89ffea" + } + }, + { + "scope": [ + "source.rust keyword.operator", + "source.rust keyword.operator.arithmetic", + "source.rust keyword.operator.logical" + ], + "settings": { + "foreground": "#ff92df" + } + }, + { + "scope": [ + "source.python support.type.python", + "source.python support.function.builtin.python" + ], + "settings": { + "foreground": "#6bc5ff" + } + }, + { + "scope": [ + "source.cs entity.name.type.class.cs", + "source.cs storage.type.cs" + ], + "settings": { + "foreground": "#89ffea" + } + }, + { + "scope": [ + "source.dart support.class.dart", + "source.dart support.type.dart" + ], + "settings": { + "foreground": "#89ffea" + } + }, + { + "scope": [ + "source.prisma keyword.operator", + "source.prisma constant.language", + "source.prisma keyword.type" + ], + "settings": { + "foreground": "#ff92df" + } + }, + { + "scope": [ + "source.graphql support.type", + "source.graphql constant.character" + ], + "settings": { + "foreground": "#89ffea" + } + }, + { + "scope": ["source.sql keyword.other", "source.sql storage.type"], + "settings": { + "foreground": "#ff92df" + } + }, + { + "scope": [ + "meta.jsx.children", + "meta.embedded.block.tsx", + "meta.embedded.block.jsx" + ], + "settings": { + "foreground": "#abfcec" + } + }, + { + "scope": [ + "meta.decorator.ts", + "meta.decorator.tsx", + "meta.decorator.angular" + ], + "settings": { + "foreground": "#ffe074" + } + } + ] +}