5 Commits

Author SHA1 Message Date
ilenia 00242450a7 docs: add missing project boilerplates and nav entries (#40)
Node.js CI / CI (push) Successful in 59s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 1m15s
### Explanation

there were missing files, and some were already released, so those get a full docs page, not just the boilerplate

took a look around also at other docs and updated some

### 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

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

### Style

- [x] I have run the linter and resolved any errors.
- [x] My pull request uses an appropriate title, matching the conventional commit standards.
- [x] 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.
- [x] All new and existing tests pass locally with my changes.
- [ ] Code coverage remains at or above the configured threshold.

### Documentation

this one =)

### Versioning

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

Reviewed-on: #40
Co-authored-by: Ilenia <ilenia@nhcarrigan.com>
Co-committed-by: Ilenia <ilenia@nhcarrigan.com>
2026-07-01 12:13:27 -07:00
ilenia ba03dfda6c chore: upgrade astro stack and lock dependency policy (#37)
Node.js CI / CI (push) Failing after 57s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 1m7s
### Explanation

Updating astro so to surpass vite versions that file trust policy check

### 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

- [x] I have run the linter and resolved any errors.
- [x] My pull request uses an appropriate title, matching the conventional commit standards.
- [x] 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.
- [x] All new and existing tests pass locally with my changes. *
- [ ] Code coverage remains at or above the configured threshold.

* a test fail for missing docs for a new app, unrelated to the changes

### Documentation

_No response_

### Versioning

Patch - My pull request introduces bug fixes ONLY.

Reviewed-on: #37
Reviewed-by: Naomi Carrigan <accounts@nhcarrigan.com>
Co-authored-by: Ilenia <ilenia@nhcarrigan.com>
Co-committed-by: Ilenia <ilenia@nhcarrigan.com>
2026-06-30 13:11:54 -07:00
ilenia a05b67e78c fix: update oudated discord channel name (#33)
Node.js CI / CI (push) Failing after 59s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 1m23s
### Explanation

going through training, found that the channel name is outdated from the current setup of the discord server

### 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

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

### Style

- [ ] I have run the linter and resolved any errors.
- [x] My pull request uses an appropriate title, matching the conventional commit standards.
- [x] 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

Patch - My pull request introduces bug fixes ONLY.

Reviewed-on: #33
Reviewed-by: Naomi Carrigan <accounts@nhcarrigan.com>
Co-authored-by: Ilenia <ilenia@nhcarrigan.com>
Co-committed-by: Ilenia <ilenia@nhcarrigan.com>
2026-06-30 11:31:26 -07:00
hikari c8f7f701b4 docs(mentorship): add programme sunset callout to all pages (#32)
Node.js CI / CI (push) Successful in 59s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 1m29s
## Summary

The open Mentorship Programme is being closed. This PR adds a `:::caution[Programme Sunset]` aside to the top of every page under `src/content/docs/mentorship/` (and the nested `resources/` subdirectory) so anyone landing on these pages immediately understands the current state of the programme.

The callout:

- States that the open programme has been sunset and is no longer accepting new participants
- Notes that the pages remain available as reference material
- Describes the new private, invite-only personalised development programme
- Clarifies that there is no application process
- Directs interested readers to the Discord community as the route to being noticed for an invite

## Files changed

- 11 main mentorship pages (`00-faq` through `10-graduation`)
- 10 resource pages under `mentorship/resources/`
- 21 files total, 168 insertions, 0 deletions

## Test plan

- [x] `pnpm lint` passes (0 cspell issues across 176 files)
- [x] `pnpm build` succeeds (177 pages built, no Starlight aside errors)
- [x] Spot-checked rendered placement on `00-faq.md` and `resources/career-prep.md`
- [ ] Visual confirmation in deployed preview

## Notes

While working on this, I noticed one pre-existing em-dash in `mentorship/07-writing-code.md` (line 184, in the body content, not the callout). Out of scope for this PR but worth a future cleanup pass to bring those legacy docs in line with your tone guide.

Reviewed-on: #32
Co-authored-by: Hikari <hikari@nhcarrigan.com>
Co-committed-by: Hikari <hikari@nhcarrigan.com>
2026-05-26 11:20:55 -07:00
hikari 3789116d1f style: apply style guide fonts, colours, and readability fixes (#31)
Node.js CI / CI (push) Successful in 1m52s
Security Scan and Upload / Security & DefectDojo Upload (push) Successful in 3m13s
## Summary

- Replaces custom "Vampyr" font with style guide fonts (Griffy, Kalam, Creepster, Henny Penny)
- Fixes illegible tagline, search placeholder, search results, shortcut badge, theme dropdown, and active sidebar item across light and dark modes
- Applies witchy code themes for light and dark mode
- Fixes invalid `env` language in code blocks (replaced with `sh`)
- Fixes invalid `message` aside icon in contact page (replaced with `star`)

 This PR was created with help from Hikari~ 🌸

Co-authored-by: Naomi Carrigan <commits@nhcarrigan.com>
Reviewed-on: #31
Co-authored-by: Hikari <hikari@nhcarrigan.com>
Co-committed-by: Hikari <hikari@nhcarrigan.com>
2026-03-03 17:54:53 -08:00
60 changed files with 3610 additions and 2828 deletions
+10
View File
@@ -54,6 +54,7 @@
"Callista",
"CCPA",
"Celestine",
"Chronara",
"Čeština",
"CFAA",
"Chibika",
@@ -63,8 +64,10 @@
"Eclaire",
"Eirene",
"Elaria",
"Ephemere",
"Elowyn",
"Elunara",
"Enneagram",
"equivalencies",
"escalatory",
"excludable",
@@ -94,7 +97,9 @@
"Meridia",
"MERN",
"MEVN",
"MBTI",
"minimis",
"Minori",
"Mommy",
"NAMI",
"NCMEC",
@@ -115,6 +120,7 @@
"recuse",
"Reddiquette",
"Română",
"Rondelle",
"Rosalia",
"Saisoku",
"Sakura",
@@ -124,6 +130,8 @@
"Svenska",
"Sylvara",
"Taryne",
"Tauri",
"Tatsumi",
"Tessara",
"Thalassa",
"Thessalia",
@@ -131,11 +139,13 @@
"Umbrelle",
"Veluna",
"Verena",
"Valerium",
"Vitalia",
"Vivicrea",
"Vivienne",
"vtubing",
"WCAG",
"Yubi",
"Zephra",
"zirs",
"Ελληνικά",
+5 -5
View File
@@ -12,16 +12,16 @@
"test": "vitest --run"
},
"dependencies": {
"@astrojs/check": "0.9.6",
"@astrojs/starlight": "0.37.1",
"astro": "5.16.5",
"astro-mermaid": "1.2.0",
"@astrojs/check": "0.9.9",
"@astrojs/starlight": "0.40.0",
"astro": "6.4.8",
"astro-mermaid": "2.0.4",
"mermaid": "11.12.2",
"typescript": "5.9.3"
},
"devDependencies": {
"cspell": "9.4.0",
"gray-matter": "4.0.3",
"vitest": "4.0.15"
"vitest": "4.1.9"
}
}
+1986 -2507
View File
File diff suppressed because it is too large Load Diff
+10
View File
@@ -14,8 +14,18 @@ trustPolicyIgnoreAfter: 525960
strictPeerDependencies: true
# Prevent transitive dependencies from using exotic sources (git repos, direct tarball URLs)
blockExoticSubdeps: true
overrides:
nanoid: 3.3.11
packageExtensions:
langium@*:
dependencies:
vscode-jsonrpc: 8.2.1
# Lockfile
# Allow the lockfile to be updated during install (set to true in CI for stricter reproducibility)
preferFrozenLockfile: false
allowBuilds:
esbuild: false
sharp: false
+68 -8
View File
@@ -293,7 +293,7 @@ export const navigation = [
{
label: "ESLint Config",
link: "/projects/eslint-config",
badge: { text: "v5.1.0", variant: "tip" },
badge: { text: "v5.2.0", variant: "tip" },
},
{
label: "Aria Iuvo",
@@ -358,7 +358,7 @@ export const navigation = [
{
label: "Logger",
link: "/projects/logger",
badge: { text: "v1.0.0", variant: "tip" },
badge: { text: "v1.1.1", variant: "tip" },
},
{
label: "Resume",
@@ -378,7 +378,7 @@ export const navigation = [
{
label: "Website Headers",
link: "/projects/website-headers",
badge: { text: "v2.1.0", variant: "tip" },
badge: { text: "v4.1.0", variant: "tip" },
},
{
label: "Altaria",
@@ -448,7 +448,7 @@ export const navigation = [
{
label: "Vitalia",
link: "/projects/vitalia",
badge: { text: "unreleased", variant: "danger" },
badge: { text: "v0.0.0", variant: "caution" },
},
{
label: "Octavia",
@@ -458,7 +458,7 @@ export const navigation = [
{
label: "Maribelle",
link: "/projects/maribelle",
badge: { text: "unreleased", variant: "danger" },
badge: { text: "v0.0.0", variant: "caution" },
},
{
label: "Verena",
@@ -573,7 +573,7 @@ export const navigation = [
{
label: "Elysium",
link: "/projects/elysium",
badge: { text: "unreleased", variant: "danger" },
badge: { text: "v0.5.0", variant: "caution" },
},
{
label: "Elaria",
@@ -608,7 +608,7 @@ export const navigation = [
{
label: "Lucinda",
link: "/projects/lucinda",
badge: { text: "unreleased", variant: "danger" },
badge: { text: "v0.0.0", variant: "caution" },
},
{
label: "Liora",
@@ -673,7 +673,7 @@ export const navigation = [
{
label: "Eclaire",
link: "/projects/eclaire",
badge: { text: "v1.0.0", variant: "tip" },
badge: { text: "v1.1.0", variant: "tip" },
},
{
label: "freeCodeCamp Review Generator",
@@ -720,6 +720,66 @@ export const navigation = [
link: "/projects/vivicrea",
badge: { text: "v1.0.0", variant: "tip" },
},
{
label: "Ephemere",
link: "/projects/ephemere",
badge: { text: "unversioned", variant: "success" },
},
{
label: "Valerium",
link: "/projects/valerium",
badge: { text: "v1.0.1", variant: "tip" },
},
{
label: "Lore",
link: "/projects/lore",
badge: { text: "v0.0.0", variant: "caution" },
},
{
label: "Hikari Desktop",
link: "/projects/hikari-desktop",
badge: { text: "v1.15.0", variant: "tip" },
},
{
label: "Rondelle",
link: "/projects/rondelle",
badge: { text: "unversioned", variant: "success" },
},
{
label: "Chronara",
link: "/projects/chronara",
badge: { text: "unversioned", variant: "success" },
},
{
label: "Silly Sites",
link: "/projects/silly-sites",
badge: { text: "unversioned", variant: "success" },
},
{
label: "Library",
link: "/projects/library",
badge: { text: "v1.1.1", variant: "tip" },
},
{
label: "Minori",
link: "/projects/minori",
badge: { text: "unreleased", variant: "danger" },
},
{
label: "Tatsumi",
link: "/projects/tatsumi",
badge: { text: "v1.2.0", variant: "tip" },
},
{
label: "Personality",
link: "/projects/personality",
badge: { text: "v1.0.0", variant: "tip" },
},
{
label: "QR Generator",
link: "/projects/qr-generator",
badge: { text: "v1.0.0", variant: "tip" },
},
].sort((a, b) => a.label.localeCompare(b.label)),
},
// #endregion
+10
View File
@@ -0,0 +1,10 @@
import { defineCollection } from "astro:content";
import { glob } from "astro/loaders";
import { docsSchema } from "@astrojs/starlight/schema";
export const collections = {
docs: defineCollection({
loader: glob({ pattern: "**/*.{md,mdx}", base: "./src/content/docs" }),
schema: docsSchema(),
}),
};
-6
View File
@@ -1,6 +0,0 @@
import { defineCollection } from 'astro:content';
import { docsSchema } from '@astrojs/starlight/schema';
export const collections = {
docs: defineCollection({ schema: docsSchema() }),
};
+9 -9
View File
@@ -236,7 +236,7 @@ We offer several email addresses for specific types of inquiries. Please use the
### 5.2. Billing and Financial Matters
:::tip[Preferred Method]{icon=message}
:::tip[Preferred Method]{icon=star}
We encourage you to use the [**Billing Questions**](https://support.nhcarrigan.com/c/billing-questions/13) category on our support forum for billing inquiries. This allows for public discussion and faster responses. If you need to share sensitive financial information, you can ask staff to make your thread private, or contact us via email for complete confidentiality.
:::
@@ -250,7 +250,7 @@ We encourage you to use the [**Billing Questions**](https://support.nhcarrigan.c
### 5.3. Technical Support
:::tip[Preferred Method]{icon=message}
:::tip[Preferred Method]{icon=star}
We encourage you to use the [**Technical Support**](https://support.nhcarrigan.com/c/technical-support/5) category on our support forum for support inquiries. This allows for public discussion and faster responses. If you need to share sensitive information, you can ask staff to make your thread private, or contact us via email for complete confidentiality.
:::
@@ -263,7 +263,7 @@ We encourage you to use the [**Technical Support**](https://support.nhcarrigan.c
### 5.4. Privacy Concerns
:::tip[Preferred Method]{icon=message}
:::tip[Preferred Method]{icon=star}
We encourage you to use our **Privacy Request Form** for privacy-related requests: https://forms.nhcarrigan.com/o/docs/forms/qEJgBWGDfyHv6x51VU9aVX/4
This form helps ensure we collect all necessary information to process your request efficiently and in compliance with applicable data protection laws.
@@ -279,7 +279,7 @@ This form helps ensure we collect all necessary information to process your requ
### 5.5. Security Matters
:::tip[Preferred Method]{icon=message}
:::tip[Preferred Method]{icon=star}
We encourage you to use our **Security Vulnerability Report Form** for reporting security vulnerabilities: https://forms.nhcarrigan.com/o/docs/forms/wgdbBkS4tjCGoVZTqtmMNx/4
This form helps ensure we collect all necessary information to investigate and address security issues efficiently and securely.
@@ -295,7 +295,7 @@ This form helps ensure we collect all necessary information to investigate and a
### 5.6. Legal Inquiries
:::tip[Preferred Method]{icon=message}
:::tip[Preferred Method]{icon=star}
We encourage you to use the [**Legal Notices**](https://support.nhcarrigan.com/c/legal-notices/12) category on our support forum for legal inquiries. This allows for public discussion and transparency. If you need to share sensitive legal information, you can ask staff to make your thread private, or contact us via email for urgent matters requiring immediate confidentiality.
:::
@@ -309,7 +309,7 @@ We encourage you to use the [**Legal Notices**](https://support.nhcarrigan.com/c
### 5.7. Feedback and Suggestions
:::tip[Preferred Method]{icon=message}
:::tip[Preferred Method]{icon=star}
We encourage you to use our support forum for different types of feedback:
- [**Community Feedback**](https://support.nhcarrigan.com/c/community-feedback/8) for general feedback about our community, services, events, and initiatives
- [**Policy Ideation**](https://support.nhcarrigan.com/c/policy-ideation/9) for suggestions about community policies and governance
@@ -329,7 +329,7 @@ We encourage you to use our support forum for different types of feedback:
### 5.8. Press/Media Inquiries
:::tip[Preferred Method]{icon=message}
:::tip[Preferred Method]{icon=star}
We encourage you to use the [**Press Inquiries**](https://support.nhcarrigan.com/c/press-inquiries/14) category on our support forum for media inquiries. This allows for public discussion and community visibility. If you need to share sensitive information, you can ask staff to make your thread private, or contact us via email for highly sensitive media matters requiring complete confidentiality.
:::
@@ -351,7 +351,7 @@ We encourage you to use the [**Press Inquiries**](https://support.nhcarrigan.com
### 5.10. Marketing Inquiries
:::tip[Preferred Method]{icon=message}
:::tip[Preferred Method]{icon=star}
We encourage you to use the [**Marketing Proposals**](https://support.nhcarrigan.com/c/marketing-proposals/15) category on our support forum for marketing inquiries. This allows for public discussion and community input. If you need to share highly confidential business information, you can ask staff to make your thread private, or contact us via email for proposals requiring complete privacy.
:::
@@ -374,7 +374,7 @@ We encourage you to use the [**Marketing Proposals**](https://support.nhcarrigan
### 5.12. Partnerships
:::tip[Preferred Method]{icon=message}
:::tip[Preferred Method]{icon=star}
We encourage you to use the [**Partnership Requests**](https://support.nhcarrigan.com/c/partnership-requests/11) category on our support forum for partnership inquiries. This allows for public discussion and community input on potential partnerships. If you need to share sensitive business information, you can ask staff to make your thread private, or contact us via email if you need complete confidentiality from the start.
:::
+8
View File
@@ -2,6 +2,14 @@
title: 00. Frequently Asked Questions
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**PROVIDING ANSWERS TO FREQUENTLY ASKED QUESTIONS REGARDING THE MENTORSHIP PROGRAMME**
## 1. INTRODUCTION AND LEGAL FRAMEWORK
@@ -2,6 +2,14 @@
title: 01. Onboarding
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**ESTABLISHING ONBOARDING PROCEDURES AND REQUIREMENTS FOR MENTORSHIP PROGRAMME PARTICIPANTS**
## 1. INTRODUCTION AND LEGAL FRAMEWORK
@@ -2,6 +2,14 @@
title: 02. Goal Setting
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**ESTABLISHING GOAL-SETTING PROCEDURES AND REQUIREMENTS FOR MENTORSHIP PROGRAMME PARTICIPANTS**
## 1. INTRODUCTION AND LEGAL FRAMEWORK
@@ -2,6 +2,14 @@
title: 03. Project Planning
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**ESTABLISHING PROJECT PLANNING PROCEDURES AND REQUIREMENTS FOR MENTORSHIP PROGRAMME PARTICIPANTS**
## 1. INTRODUCTION AND LEGAL FRAMEWORK
@@ -2,6 +2,14 @@
title: 04. User Stories
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**ESTABLISHING USER STORY DEVELOPMENT PROCEDURES AND REQUIREMENTS FOR MENTORSHIP PROGRAMME PARTICIPANTS**
## 1. INTRODUCTION AND LEGAL FRAMEWORK
@@ -2,6 +2,14 @@
title: 05. Technical Breakdown
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**ESTABLISHING TECHNICAL BREAKDOWN PROCEDURES AND REQUIREMENTS FOR MENTORSHIP PROGRAMME PARTICIPANTS**
## 1. INTRODUCTION AND LEGAL FRAMEWORK
@@ -2,6 +2,14 @@
title: 06. Priority and Effort
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**ESTABLISHING PRIORITY AND EFFORT ASSIGNMENT PROCEDURES FOR MENTORSHIP PROGRAMME PARTICIPANTS**
## 1. INTRODUCTION AND LEGAL FRAMEWORK
@@ -2,6 +2,14 @@
title: 07. Writing Code
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**ESTABLISHING CODE DEVELOPMENT PROCEDURES AND REQUIREMENTS FOR MENTORSHIP PROGRAMME PARTICIPANTS**
## 1. INTRODUCTION AND LEGAL FRAMEWORK
@@ -2,6 +2,14 @@
title: 08. Final Polish
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**ESTABLISHING FINAL POLISH AND DEPLOYMENT PROCEDURES FOR MENTORSHIP PROGRAMME PARTICIPANTS**
## 1. INTRODUCTION AND LEGAL FRAMEWORK
@@ -2,6 +2,14 @@
title: 09. Career Prep
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**ESTABLISHING CAREER PREPARATION PROCEDURES AND REQUIREMENTS FOR MENTORSHIP PROGRAMME PARTICIPANTS**
## 1. INTRODUCTION AND LEGAL FRAMEWORK
@@ -2,6 +2,14 @@
title: 10. Graduation
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**ESTABLISHING GRADUATION CRITERIA AND ALUMNI PROGRAMME PROCEDURES FOR MENTORSHIP PROGRAMME PARTICIPANTS**
## 1. INTRODUCTION AND LEGAL FRAMEWORK
@@ -2,6 +2,14 @@
title: Career Preparation Resources
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**RESUME TEMPLATES, LINKEDIN GUIDES, APPLICATION GUIDES, INTERVIEW RESOURCES, AND JOB SEARCH STRATEGIES**
## Resume Templates
@@ -2,6 +2,14 @@
title: Code Development Resources
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**CODE REVIEW CHECKLIST, SELF-REVIEW GUIDELINES, AND BEST PRACTICES**
## Code Review Checklist
@@ -2,6 +2,14 @@
title: Code Review Checklist
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**SELF-REVIEW CHECKLIST FOR CODE QUALITY**
Use this checklist to review your own code before merging pull requests or when preparing for optional code reviews.
@@ -2,6 +2,14 @@
title: Final Polish Checklist
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**COMPREHENSIVE CHECKLIST FOR PROJECT FINAL POLISH**
Use this checklist to ensure your flagship project is ready for professional presentation.
@@ -2,6 +2,14 @@
title: Final Polish Resources
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**FINAL POLISH CHECKLIST, CODE CLEANUP GUIDELINES, DOCUMENTATION TEMPLATES, AND DEPLOYMENT GUIDES**
## Final Polish Checklist
@@ -2,6 +2,14 @@
title: Goal Setting Resources
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**ROADMAP TEMPLATES AND GOAL-SETTING RESOURCES**
## Roadmap Templates
@@ -2,6 +2,14 @@
title: Priority and Effort Resources
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**PRIORITY ASSIGNMENT AND EFFORT ESTIMATION GUIDES**
## Priority Assignment Guide
@@ -2,6 +2,14 @@
title: Project Planning Resources
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**PROJECT PLAN EXAMPLES AND BRAINSTORMING GUIDES**
## Project Plan Example
@@ -2,6 +2,14 @@
title: Technical Breakdown Resources
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**TECHNICAL BREAKDOWN TEMPLATE AND EXAMPLES**
## Technical Breakdown Template
@@ -2,6 +2,14 @@
title: User Story Resources
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**USER STORY TEMPLATES, EXAMPLES, AND WRITING GUIDES**
## User Story Format
+1 -1
View File
@@ -165,7 +165,7 @@ Your Discord bot requires the following Gateway Intents:
Create a `.env` file in the project root with the following variables:
```env
```sh
# Discord Bot Configuration
TOKEN=your_discord_bot_token
+1 -1
View File
@@ -64,7 +64,7 @@ This section is for those interested in running their own instance of the Applic
```
4. Edit `.env` with your configuration:
```env
```sh
DISCORD_TOKEN="your-discord-bot-token"
SENTRY_DSN="your-sentry-dsn"
DEBUG_HOOK="your-discord-webhook-url"
+40
View File
@@ -0,0 +1,40 @@
---
title: Chronara
---
Chronara (hereinafter the "Application") is an initialized project repository that is currently in scaffold state.
## 1. User Documentation
There is no published live application endpoint documented in the repository at this time.
The current repository content indicates project setup and governance files without user-facing runtime features.
## 2. Technical Documentation
Chronara currently reflects a baseline template repository state.
At present:
1. No runtime source code directories are defined.
2. No build or package manifest files are published.
3. No deployment or execution workflow is documented.
Technical documentation should be expanded once implementation code is introduced.
## 3. Legal Documentation
Project policy files reference global documentation:
1. License: https://docs.nhcarrigan.com/#/license
2. Terms: https://docs.nhcarrigan.com/#/terms
3. Privacy: https://docs.nhcarrigan.com/#/privacy
4. Security: https://docs.nhcarrigan.com/#/security
Copyright is held by Naomi Carrigan.
## 4. Contributing Documentation
Contributions are accepted through pull requests under the repository contributing guidelines and Code of Conduct.
Feedback and bug reports are handled via https://support.nhcarrigan.com.
+16 -18
View File
@@ -10,13 +10,13 @@ This section is for those interacting with a live instance of the Application.
### Getting Started
1. **Initial Setup**: Navigate to the Configuration page to set up your API credentials and language preferences.
1. **Initial Setup**: Open the configuration screen and provide your API credentials and language preferences.
2. **Configuration Options**:
- **Deepgram API Key**: Required for speech-to-text transcription. You must provide your own API key from [Deepgram](https://deepgram.com).
- **Translation Service API Key**: Required for text translation. A demo key is available with a 10 requests/minute rate limit, or you can provide your own key.
- **Source Language**: Select from 12 supported languages (English, German, Dutch, Swedish, Danish, Spanish, French, Portuguese, Italian, Turkish, Norwegian, Indonesian).
- **Target Language**: Select from 60+ supported languages for translation.
- **Deepgram API Key**: Required for speech-to-text transcription.
- **Translation Service API Key**: Required for text translation. The application includes a built-in demonstration key in source comments with a 10 requests/minute limit.
- **Source Language**: Selected from the source-language allow-list defined in the configuration component.
- **Target Language**: Selected from the language-code mapping list used by the configuration component.
3. **Using the Translation Interface**:
- Navigate to the Agent page to begin translation.
@@ -43,10 +43,9 @@ The application automatically enables:
### Limitations
- Source language is limited to 12 languages supported by Deepgram
- Translation service demo key has a rate limit of 10 requests/minute
- Requires modern browser with microphone access
- WebSocket connection required for real-time functionality
- Requires a modern browser with microphone access.
- Requires a WebSocket connection for real-time transcription.
- Translation demo key usage is rate limited.
## 2. Technical Documentation
@@ -70,17 +69,17 @@ This section is for those interested in running their own instance of the Applic
2. Install dependencies:
```bash
npm install
pnpm install
```
3. Start the development server:
```bash
npm run dev
pnpm run dev
```
4. Build for production:
```bash
npm run build
pnpm run build
```
### Technology Stack
@@ -88,7 +87,7 @@ This section is for those interested in running their own instance of the Applic
**Frontend Framework:**
- Angular 19.1.4 with standalone components
- TypeScript 5.7.3
- RxJS 7.8.1 for reactive programming
- RxJS 7.8.2 for reactive programming
- Angular Reactive Forms for configuration management
**External APIs:**
@@ -144,8 +143,7 @@ This section is for those interested in running their own instance of the Applic
#### Routing
- `/` - Redirects to home
- `/home` - Landing page
- `/` - Home page
- `/config` - Configuration page
- `/agent` - Translation interface
@@ -192,9 +190,9 @@ POST request body:
#### Available Scripts
- `npm run dev` - Start development server
- `npm run lint` - Run ESLint with zero warnings policy
- `npm run build` - Build for production
- `pnpm run dev` - Start development server
- `pnpm run lint` - Run ESLint with zero warnings policy
- `pnpm run build` - Build for production
#### Code Quality
+49 -16
View File
@@ -6,33 +6,66 @@ Elysium (hereinafter the "Application") is an idle RPG in the browser.
## 1. User Documentation
:::note
This section is coming soon!
:::
The Application provides an incremental/idler gameplay loop with progression systems including:
This section is for those interacting with a live instance of the Application.
1. Adventurer hiring and resource scaling.
2. Zone exploration and boss encounters.
3. Questing and crafting systems.
4. Prestige, transcendence, and apotheosis reset layers.
5. Character profile, titles, and leaderboard visibility.
The API source includes routes for game state, combat, exploration, crafting, progression resets, leaderboards, and profiles (`apps/api/src/index.ts`).
This project is currently marked as work in progress in the public project feed.
## 2. Technical Documentation
:::note
This section is coming soon!
:::
Elysium is a pnpm monorepo with two primary applications and a shared package.
This section is for those interested in running their own instance of the Application.
Workspace layout:
1. `apps/web`: React + Vite frontend (`@elysium/web`).
2. `apps/api`: Hono-based API service (`@elysium/api`).
3. `packages/types`: shared type definitions (`@elysium/types`).
Current versions in repository manifests:
1. Root package: `0.5.0`.
2. API package: `0.5.0`.
3. Web package: `0.5.0`.
Root commands:
1. `pnpm install`
2. `pnpm dev`
3. `pnpm build`
4. `pnpm test`
API runtime notes:
1. Uses `op run --env-file=./prod.env` for secret injection.
2. Exposes a health endpoint at `GET /health`.
3. Uses Prisma client/database tooling and Hono route modules.
## 3. Legal Documentation
:::note
This section is coming soon!
:::
The Application inherits nhcarrigan's global legal documents:
This section is for expansions to our legal policies specific to the Application.
1. Privacy Policy: https://docs.nhcarrigan.com/#/privacy
2. Terms of Service: https://docs.nhcarrigan.com/#/terms
3. License: https://docs.nhcarrigan.com/#/license
Repository references:
1. `PRIVACY.md`
2. `TERMS.md`
3. `LICENSE.md`
## 4. Contributing Documentation
:::note
This section is coming soon!
:::
Contribution guidance points to the shared docs portal:
This section is for documentation related to contributing to the Application's codebase.
1. https://docs.nhcarrigan.com/#/contributing
The repository also includes a manual verification checklist in `verify.md` for gameplay flows that are not fully covered by automated tests.
+67
View File
@@ -0,0 +1,67 @@
---
title: Ephemere
---
Ephemere (hereinafter the "Application") is a multi-language utility repository containing operational scripts for TypeScript, Python, and Bash workflows.
## 1. User Documentation
Ephemere is a script collection rather than a hosted end-user application.
It is used to run task-focused automation across multiple domains, including:
1. Crowdin translation workflows.
2. Discord and Discourse operations.
3. Gitea and GitHub maintenance tasks.
4. Music metadata and security reporting utilities.
5. Cohort programme operations in Python and Bash.
Scripts are typically executed through the interactive runner to choose language, category, and script at runtime.
## 2. Technical Documentation
Ephemere is organized by language and purpose:
1. `typescript/src/*` for API and platform scripting utilities.
2. `python/cohort/*` for cohort and Discord operations.
3. `bash/*` for cohort team automation and YubiKey administration.
Environment and dependency setup:
1. Node.js `v24+`, `pnpm`, and Python `3.10+` are required.
2. `uv` is used for Python dependency management.
3. `op` (1Password CLI) is used for secret injection from `prod.env`.
Common commands:
1. `make install` installs TypeScript and Python dependencies.
2. `make run` launches the interactive script runner.
3. `make lint` runs TypeScript and Python linting.
4. `make build` performs TypeScript type checking.
5. `make test` runs available test suites.
When running scripts manually, both TypeScript and Python command examples in the repository rely on `op run --env-file=prod.env` for secure secret resolution.
## 3. Legal Documentation
Project policy files reference global documentation:
1. License: `https://docs.nhcarrigan.com/#/license`
2. Terms: `https://docs.nhcarrigan.com/#/terms`
3. Privacy: `https://docs.nhcarrigan.com/#/privacy`
4. Security: `https://docs.nhcarrigan.com/#/security`
Copyright is held by Naomi Carrigan.
## 4. Contributing Documentation
Contributions are accepted through pull requests in accordance with the repository contribution policy and Code of Conduct.
Before opening a pull request:
1. Run `make install`.
2. Run `make lint`.
3. Run `make build`.
4. Run `make test`.
Feedback and bug reports are handled through `https://support.nhcarrigan.com`.
@@ -0,0 +1,65 @@
---
title: Hikari Desktop
---
Hikari Desktop (hereinafter the "Application") is a desktop companion application featuring Hikari, distributed as installable desktop releases.
## 1. User Documentation
Release builds are published at `https://git.nhcarrigan.com/nhcarrigan/hikari-desktop/releases`.
The application provides an interactive desktop experience with conversation, tooling, and workspace support features through a local app interface.
Common user-facing areas include:
1. Conversation and message workflows.
2. Workspace and project context panels.
3. Notification, quick action, and session management panels.
4. Desktop integrations enabled through the bundled runtime.
## 2. Technical Documentation
Hikari Desktop is implemented with a Svelte frontend and a Rust-backed `Tauri` desktop runtime.
Local development commands:
1. Install dependencies with `pnpm install`.
2. Start frontend dev server with `pnpm dev`.
3. Build frontend assets with `pnpm build`.
4. Launch Tauri workflow with `pnpm tauri`.
Quality and release tooling:
1. `pnpm test`, `pnpm test:backend`, and `pnpm test:all` for frontend/backend validation.
2. `pnpm lint` and `pnpm format:check` for static quality checks.
3. `pnpm build:linux`, `pnpm build:windows`, and `pnpm build:all` for desktop packaging.
Implementation notes:
1. Frontend code is under `src/` with Svelte components, stores, and utility modules.
2. Backend/native integration is under `src-tauri/src/`.
3. Desktop capabilities are defined by `src-tauri` configuration and plugins.
## 3. Legal Documentation
Project policy files reference global documentation:
1. License: `https://docs.nhcarrigan.com/#/license`
2. Terms: `https://docs.nhcarrigan.com/#/terms`
3. Privacy: `https://docs.nhcarrigan.com/#/privacy`
4. Security: `https://docs.nhcarrigan.com/#/security`
Copyright is held by Naomi Carrigan.
## 4. Contributing Documentation
Contributions are accepted through pull requests according to the repository contributing guidelines and Code of Conduct.
Before opening a pull request:
1. Run `pnpm install`.
2. Run `pnpm lint`.
3. Run `pnpm test:all`.
4. Run `pnpm build`.
Feedback and bug reports are handled through `https://support.nhcarrigan.com`.
+1 -1
View File
@@ -114,7 +114,7 @@ npm install
Create a `prod.env` file in the root directory with the following variables:
```env
```sh
DISCORD_TOKEN=your_discord_bot_token
AI_TOKEN=your_anthropic_api_key
LOG_TOKEN=your_logging_token (optional)
+58
View File
@@ -0,0 +1,58 @@
---
title: Library
---
Library (hereinafter the "Application") is Naomi's personal library tracking application for cataloguing and engaging with media collections.
## 1. User Documentation
The live instance is available at `https://library.nhcarrigan.com`.
The application is presented as Naomi's curated collection of media and includes books, games, music, shows, manga, and art.
Core user-facing capabilities include:
1. Browsing library entries by media type.
2. Engaging with content through comments and likes.
3. Submitting suggestions for new additions.
4. Viewing activity and leaderboard-style participation features.
## 2. Technical Documentation
The project is an `Nx` monorepo with a frontend app and a Fastify API.
Runtime and build scripts are managed from the repository root:
1. `pnpm dev` builds and runs the production-style API process with development environment values.
2. `pnpm build` generates Prisma client artifacts and builds all projects.
3. `pnpm test` runs configured test targets across the workspace.
4. `pnpm lint` runs lint targets across the workspace.
Architecture notes:
1. API routes are mounted under `/api` via autoloaded Fastify route modules.
2. The API includes dedicated modules for `books`, `games`, `music`, `shows`, `manga`, `art`, `suggestions`, `comments`, `likes`, `leaderboard`, `activity`, and `users`.
3. Security middleware and plugins include CSRF protection, rate limiting, CORS, helmet, and auth-related plugins.
4. Database access is managed with Prisma.
## 3. Legal Documentation
Project policy files reference global documentation:
1. License: `https://docs.nhcarrigan.com/#/license`
2. Terms: `https://docs.nhcarrigan.com/#/terms`
3. Privacy: `https://docs.nhcarrigan.com/#/privacy`
4. Security: `https://docs.nhcarrigan.com/#/security`
Copyright is held by Naomi Carrigan.
## 4. Contributing Documentation
Contributions are accepted through pull requests according to the repository's contributing guidelines and code of conduct.
Before opening a pull request:
1. Install dependencies with `pnpm install`.
2. Run `pnpm lint`.
3. Run `pnpm test`.
4. Run `pnpm build`.
+1 -1
View File
@@ -199,7 +199,7 @@ pnpm install
Create a `prod.env` file with the following variables:
```env
```sh
DISCORD_TOKEN=your_discord_bot_token
MONGO_URI=your_mongodb_connection_string
LOG_TOKEN=your_logging_service_token
+1 -1
View File
@@ -230,6 +230,6 @@ If you encounter bugs or have feature requests:
### Package Information
- **Package Name**: @nhcarrigan/logger
- **Version**: 1.0.0
- **Version**: 1.1.1
- **NPM**: [https://www.npmjs.com/package/@nhcarrigan/logger](https://www.npmjs.com/package/@nhcarrigan/logger)
- **Repository**: Git-based repository hosted at git.nhcarrigan.com
+63
View File
@@ -0,0 +1,63 @@
---
title: Lore
---
Lore (hereinafter the "Application") is a web application that publishes lore and reference material for Naomi's fictional persona and characters.
## 1. User Documentation
The live site is available at `https://lore.nhcarrigan.com`.
Visitors can browse structured lore content through dedicated pages including:
1. Home
2. Handbook
3. About
4. FAQ
5. Reviews
6. Staff
Site copy and supporting data are maintained in the application source and loaded through Angular components and config files.
## 2. Technical Documentation
Lore is built with Angular and uses a standard Angular CLI workflow.
Local development:
1. Install dependencies with `pnpm install`.
2. Run local dev server with `pnpm start`.
3. Build production bundle with `pnpm build`.
4. Run tests with `pnpm test`.
5. Run lint checks with `pnpm lint`.
Implementation notes:
1. Route definitions are in `src/app/app.routes.ts`.
2. Main feature areas are component-based under `src/app/*`.
3. Shared content/config values are maintained in `src/app/config/*`.
4. Styling includes project CSS and Tailwind/PostCSS tooling.
## 3. Legal Documentation
Project policy files reference global documentation:
1. License: `https://docs.nhcarrigan.com/#/license`
2. Terms: `https://docs.nhcarrigan.com/#/terms`
3. Privacy: `https://docs.nhcarrigan.com/#/privacy`
4. Security: `https://docs.nhcarrigan.com/#/security`
Copyright is held by Naomi Carrigan.
## 4. Contributing Documentation
Contributions are accepted through pull requests under the repository's contribution policy and Code of Conduct.
Before opening a pull request:
1. Run `pnpm install`.
2. Run `pnpm lint`.
3. Run `pnpm test`.
4. Run `pnpm build`.
Feedback and bug reports are handled via `https://support.nhcarrigan.com`.
+39 -16
View File
@@ -6,33 +6,56 @@ Lucinda (hereinafter the "Application") is a kanban-style task management site.
## 1. User Documentation
:::note
This section is coming soon!
:::
The Application is intended as a full-featured cloud-backed task management platform with a Kanban-style workflow.
This section is for those interacting with a live instance of the Application.
Current public deployment listed by the project repository:
1. https://lucinda.nhcarrigan.com
The frontend currently routes users to a landing experience (`/landing`) and serves as the basis for expanded board/task flows.
## 2. Technical Documentation
:::note
This section is coming soon!
:::
Lucinda is a pnpm workspace monorepo with separate client and server applications.
This section is for those interested in running their own instance of the Application.
Project structure:
1. `client`: Angular 19 frontend.
2. `server`: Fastify API service.
Workspace tooling:
1. Root scripts use Turbo (`turbo run dev|build|lint|test`).
2. Server development command: `tsx src/index.ts --watch`.
3. Server start command: `op run --env-file=./prod.env -- node prod/index.js`.
Current repository version values:
1. Root: `0.0.0`
2. Client: `0.0.0`
3. Server: `0.0.0`
Current server implementation exposes a root health endpoint on port `12346` returning `{"message":"Hello, world!"}`.
## 3. Legal Documentation
:::note
This section is coming soon!
:::
The Application uses the shared nhcarrigan legal documents:
This section is for expansions to our legal policies specific to the Application.
1. Privacy Policy: https://docs.nhcarrigan.com/#/privacy
2. Terms of Service: https://docs.nhcarrigan.com/#/terms
3. License: https://docs.nhcarrigan.com/#/license
Repository references:
1. `PRIVACY.md`
2. `TERMS.md`
3. `LICENSE.md`
## 4. Contributing Documentation
:::note
This section is coming soon!
:::
Contributing guidance points to the shared docs portal:
This section is for documentation related to contributing to the Application's codebase.
1. https://docs.nhcarrigan.com/#/contributing
Feature delivery is in progress, and the public project feed currently marks Lucinda as work in progress.
+44 -16
View File
@@ -6,33 +6,61 @@ Maribelle (hereinafter the "Application") is a Discord bot that allows you to co
## 1. User Documentation
:::note
This section is coming soon!
:::
The Application posts weekday stand-up prompts in configured Discord text channels and tracks which members posted progress updates in the previous cycle.
This section is for those interacting with a live instance of the Application.
Current reminder schedule in the source is `0 9 * * 1-5` (09:00, Monday through Friday).
During operation, the Application:
1. Sends a stand-up reminder message in each configured channel.
2. Starts a thread named `Daily Progress Update - <date>`.
3. Monitors messages in those threads and records participant IDs.
4. Sends a summary of recorded IDs to the maintainer account before the next cycle.
Channel and role mappings are configured in `src/config/channels.ts`.
## 2. Technical Documentation
:::note
This section is coming soon!
:::
The Application is a Node.js + TypeScript Discord bot using `discord.js` and `node-schedule`.
This section is for those interested in running their own instance of the Application.
Runtime and build commands from `package.json`:
1. `pnpm install`
2. `pnpm build`
3. `pnpm start`
The startup command runs with `op run --env-file=prod.env`, so local operation expects a `prod.env` file and 1Password CLI access.
Minimum environment variables for runtime include:
1. `DISCORD_TOKEN` for bot authentication.
2. `LOG_WEBHOOK_URL` for logger transport.
Key implementation files:
1. `src/index.ts` bootstraps the Discord client, schedules reminders, and listens for thread messages.
2. `src/modules/standup.ts` sends reminders, opens threads, and reports participant IDs.
3. `src/config/channels.ts` defines target channel/role pairs.
## 3. Legal Documentation
:::note
This section is coming soon!
:::
The Application inherits the nhcarrigan global legal documents:
This section is for expansions to our legal policies specific to the Application.
1. Privacy Policy: https://docs.nhcarrigan.com/#/privacy
2. Terms of Service: https://docs.nhcarrigan.com/#/terms
3. License: https://docs.nhcarrigan.com/#/license
Repository references:
1. `PRIVACY.md`
2. `TERMS.md`
3. `LICENSE.md`
## 4. Contributing Documentation
:::note
This section is coming soon!
:::
Contribution guidance for the Application points to the shared documentation:
This section is for documentation related to contributing to the Application's codebase.
1. https://docs.nhcarrigan.com/#/contributing
Project metadata currently reports version `0.0.0` in `package.json`, which aligns with an unreleased/early state.
+37
View File
@@ -0,0 +1,37 @@
---
title: Minori
---
Minori (hereinafter the "Application") is
## 1. User Documentation
:::note
This section is coming soon!
:::
This section is for those interacting with a live instance of the Application.
## 2. Technical Documentation
:::note
This section is coming soon!
:::
This section is for those interested in running their own instance of the Application.
## 3. Legal Documentation
:::note
This section is coming soon!
:::
This section is for expansions to our legal policies specific to the Application.
## 4. Contributing Documentation
:::note
This section is coming soon!
:::
This section is for documentation related to contributing to the Application's codebase.
+1 -1
View File
@@ -136,7 +136,7 @@ The Application is built with the following technologies:
Create a `prod.env` file in the project root with the following variables:
```env
```sh
# Required: Anthropic API key for Claude AI
ANTHROPIC_API_KEY=your_anthropic_api_key_here
+74
View File
@@ -0,0 +1,74 @@
---
title: Personality
---
Personality (hereinafter the "Application") is a personal values and self-reflection hub built as an Astro site.
## 1. User Documentation
The Application currently presents multiple self-exploration sections from a shared home dashboard:
1. Values (`/values`)
2. Personality test results (`/personality`)
3. Natal chart (`/astrology`)
4. DBT exercise progress (`/dbt`)
5. Playroom/social templates (`/playroom`)
The home page also links to an external user manual at `https://manual.nhcarrigan.com`.
Current content behavior in the app:
1. Personality tests are rendered from structured test data (for example MBTI, Big Five, Enneagram, attachment style, and VIA strengths).
2. Astrology content is grouped into personal, social, generational, and points/angles categories.
3. DBT modules display progress counters based on completed exercises.
## 2. Technical Documentation
The active implementation currently lives on the `origin/feat/init` branch of the Personality repository.
Project stack and structure:
1. Astro `6.1.8`
2. TypeScript `6.0.3`
3. Flat content pages in `src/pages`
4. Static data modules in `src/data`
Key routes in source:
1. `src/pages/index.astro`
2. `src/pages/values.astro`
3. `src/pages/personality.astro`
4. `src/pages/astrology.astro`
5. `src/pages/dbt.astro`
6. `src/pages/playroom.astro`
Primary commands from `package.json`:
1. `pnpm install`
2. `pnpm run dev`
3. `pnpm run build`
4. `pnpm run lint`
Current repository version is `1.0.0`.
## 3. Legal Documentation
The Application uses the shared nhcarrigan legal policies:
1. Privacy Policy: https://docs.nhcarrigan.com/#/privacy
2. Terms of Service: https://docs.nhcarrigan.com/#/terms
3. License: https://docs.nhcarrigan.com/#/license
Repository references:
1. `PRIVACY.md`
2. `TERMS.md`
3. `LICENSE.md`
## 4. Contributing Documentation
Contribution guidance points to the shared docs portal:
1. https://docs.nhcarrigan.com/#/contributing
The repository also includes the standard community files (`CODE_OF_CONDUCT.md`, `SECURITY.md`) for project participation and disclosure expectations.
+82
View File
@@ -0,0 +1,82 @@
---
title: QR Generator
---
QR Generator (hereinafter the "Application") is a web tool for generating Naomi-branded QR code images from a URL.
## 1. User Documentation
The live instance is available at `https://qr.nhcarrigan.com`.
To generate a QR image:
1. Open the page.
2. Enter a URL in the form input.
3. Select Generate.
4. Download the generated PNG using the Download PNG button.
Generated images include:
1. Naomi colour branding.
2. Naomi avatar centred in the QR matrix.
3. A branding strip with `chat.naomi.lgbt`.
If URL input is missing, generation fails with a validation error.
## 2. Technical Documentation
This project is a TypeScript Fastify service with both web UI and CLI generation paths.
Local setup:
1. Install dependencies with `pnpm install`.
2. Start the web server with `pnpm start`.
3. Build TypeScript with `pnpm build`.
4. Lint source files with `pnpm lint`.
Default server binding:
1. Host: `0.0.0.0`
2. Port: `15555`
HTTP endpoints:
1. `GET /` returns the web UI.
2. `GET /generate?url=<value>` returns a PNG attachment.
3. Missing `url` query returns `HTTP 400`.
4. Generation failures return `HTTP 500`.
CLI batch generation:
1. Use `pnpm generate -- <url> [<url> ...]`.
2. Output files are written to the `output` directory.
3. File names are URL-derived, lowercased, hyphenated, and limited to 60 characters.
Core generation pipeline:
1. Generate QR data using `qr-code-styling`.
2. Overlay Naomi avatar within a circular mask.
3. Composite final image with bottom branding strip.
## 3. Legal Documentation
Project-specific legal references:
1. License: `https://docs.nhcarrigan.com/#/license`
2. Terms: `https://docs.nhcarrigan.com/#/terms`
3. Privacy: `https://docs.nhcarrigan.com/#/privacy`
4. Security: `https://docs.nhcarrigan.com/#/security`
Copyright is held by Naomi Carrigan.
## 4. Contributing Documentation
Contributions are accepted via pull requests.
Before contributing:
1. Review the repository contributing guidelines.
2. Follow the Code of Conduct.
3. Run lint and build locally before opening a pull request.
Issue reports and feedback are handled via `https://support.nhcarrigan.com`.
+40
View File
@@ -0,0 +1,40 @@
---
title: Rondelle
---
Rondelle (hereinafter the "Application") is an initialized repository currently in scaffold state, created from the standard project template.
## 1. User Documentation
There is no published live application instance documented in the repository at this time.
Current repository status indicates foundational setup only, with end-user functionality still to be implemented.
## 2. Technical Documentation
The repository currently contains baseline governance and policy files from the project template.
At present:
1. No implementation source directories are defined.
2. No runtime package manifest or build pipeline is configured.
3. No environment variables or deployment instructions are published.
Technical documentation should be expanded once project runtime architecture is added.
## 3. Legal Documentation
Project policy files reference global documentation:
1. License: https://docs.nhcarrigan.com/#/license
2. Terms: https://docs.nhcarrigan.com/#/terms
3. Privacy: https://docs.nhcarrigan.com/#/privacy
4. Security: https://docs.nhcarrigan.com/#/security
Copyright is held by Naomi Carrigan.
## 4. Contributing Documentation
Contributions are accepted through pull requests under the repository contributing guidelines and Code of Conduct.
Feedback and bug reports are handled via https://support.nhcarrigan.com.
@@ -50,7 +50,7 @@ Rosalia Nightsong is built using:
The application requires the following environment variables:
```env
```sh
MATRIX_ACCESS_TOKEN="matrix_access_token"
MATRIX_ROOM_ID="matrix_room_id"
API_AUTH="api_authentication_token"
+1 -1
View File
@@ -218,7 +218,7 @@ This section is for those interested in running their own instance of the Applic
4. **Set up environment variables:**
Create a `.env` file with required credentials:
```env
```sh
# Crowdin (for translation scripts)
CROWDIN_PROJECT_ID=your_project_id
CROWDIN_API_URL=https://api.crowdin.com/api/v2
+40
View File
@@ -0,0 +1,40 @@
---
title: Silly Sites
---
Silly Sites (hereinafter the "Application") is a collection of small, fun static pages, including pages built for community programming events.
## 1. User Documentation
The live site is available at https://silly.nhcarrigan.com.
Users can browse and interact with standalone static experiences hosted under this project.
## 2. Technical Documentation
Silly Sites is a static-site repository containing multiple page projects.
Current structure includes:
1. `index.html` for the root entry point.
2. `hairy-button/` static page content.
3. `travel-agency/` static page content.
The repository currently focuses on static web assets rather than an application runtime with package-based build tooling.
## 3. Legal Documentation
Project policy files reference global documentation:
1. License: https://docs.nhcarrigan.com/#/license
2. Terms: https://docs.nhcarrigan.com/#/terms
3. Privacy: https://docs.nhcarrigan.com/#/privacy
4. Security: https://docs.nhcarrigan.com/#/security
Copyright is held by Naomi Carrigan.
## 4. Contributing Documentation
Contributions are accepted through pull requests under the repository contributing guidelines and Code of Conduct.
Feedback and bug reports are handled via https://support.nhcarrigan.com.
+64
View File
@@ -0,0 +1,64 @@
---
title: Tatsumi
---
Tatsumi (hereinafter the "Application") is a desktop application for generating AI character art using Google's Gemini image model.
## 1. User Documentation
Tatsumi is distributed as a desktop app and requires a Google Gemini API key.
Supported generation modes:
1. `Avatar`: portrait/avatar generation with `1:1` aspect ratio.
2. `Art`: widescreen generation with `16:9` aspect ratio.
3. `Replace`: upload an image and regenerate based on an edit prompt.
Threading and output features:
1. Conversations are stored as local threads between sessions.
2. You can send follow-up prompts, retry results, and edit previous prompts.
3. Each response exposes model reasoning and token cost details.
4. Generated images can be downloaded from the conversation view.
## 2. Technical Documentation
Tatsumi uses a `Tauri` desktop runtime with a `React` + `Vite` frontend and Rust backend commands.
Local development:
1. Install dependencies with `pnpm install`.
2. Start development with `pnpm tauri dev`.
3. Build frontend/web assets with `pnpm build`.
4. Build desktop bundles with `pnpm tauri build`.
5. Windows-targeted build uses `pnpm build:windows`.
Implementation notes:
1. Frontend UI lives under `src/` with modular components for thread views, input, settings, and message rendering.
2. Tauri backend code lives under `src-tauri/src/`, including Gemini integration and local storage handling.
3. App configuration is defined in `src-tauri/tauri.conf.json`.
## 3. Legal Documentation
Project policy files reference global documentation:
1. License: `https://docs.nhcarrigan.com/#/license`
2. Terms: `https://docs.nhcarrigan.com/#/terms`
3. Privacy: `https://docs.nhcarrigan.com/#/privacy`
4. Security: `https://docs.nhcarrigan.com/#/security`
Copyright is held by Naomi Carrigan.
## 4. Contributing Documentation
Contributions are accepted through pull requests per the repository contributing guidelines and code of conduct.
Before opening a pull request:
1. Run `pnpm install`.
2. Run `pnpm lint`.
3. Run `pnpm build`.
4. Verify desktop app behavior with `pnpm tauri dev`.
Feedback and bug reports are handled via `https://support.nhcarrigan.com`.
+60
View File
@@ -0,0 +1,60 @@
---
title: Valerium
---
Valerium (hereinafter the "Application") is the Discord Boost Monitor bot that removes configured booster-only roles when members stop boosting a server.
## 1. User Documentation
Valerium is a Discord bot service and does not currently publish a public hosted web app for end users.
Operational behavior:
1. On startup, the bot connects to Discord with `Guilds` and `GuildMembers` intents.
2. On `guildMemberUpdate`, it checks member eligibility roles.
3. If a member is no longer qualified, configured colour/perk roles are removed.
4. A small Fastify health/info page is served on port `3443`.
## 2. Technical Documentation
Valerium is a TypeScript `discord.js` service with a lightweight `fastify` process for health visibility.
Local setup:
1. Install dependencies with `pnpm install`.
2. Build with `pnpm build`.
3. Start with `pnpm start`.
4. Lint source with `pnpm lint`.
Key source modules:
1. `src/modules/manageRoles.ts`: booster-role enforcement logic.
2. `src/config/roles.ts`: qualified roles and removable colour roles.
3. `src/server/serve.ts`: health/info endpoint on `/`.
4. `src/index.ts`: bot startup, event wiring, and server initialization.
Environment configuration is loaded via `dotenv` at runtime, including Discord token and webhook settings.
## 3. Legal Documentation
Project policy files reference the following documentation:
1. License: `https://docs.nhcarrigan.com/#/license`
2. Terms: `https://docs.nhcarrigan.com/#/terms`
3. Privacy: `https://docs.nhcarrigan.com/#/discord-boost-monitor/privacy`
4. Security: `https://docs.nhcarrigan.com/#/security`
Copyright is held by Naomi Carrigan.
## 4. Contributing Documentation
Contributions are accepted through pull requests under the repository contributing guidelines and code of conduct.
Before opening a pull request:
1. Run `pnpm install`.
2. Run `pnpm lint`.
3. Run `pnpm build`.
4. Verify bot behavior in a test Discord server.
Feedback and bug reports are handled via `https://support.nhcarrigan.com`.
+44 -16
View File
@@ -6,33 +6,61 @@ Vitalia (hereinafter the "Application") is a full-featured nutrition tracker wit
## 1. User Documentation
:::note
This section is coming soon!
:::
The live site is available at `https://vitalia.nhcarrigan.com`.
This section is for those interacting with a live instance of the Application.
Vitalia is currently in early-stage development with a landing-route frontend and foundational backend API service.
Current user-facing flow:
1. The frontend redirects root navigation to `/landing`.
2. The initial Angular landing component is the primary exposed route.
## 2. Technical Documentation
:::note
This section is coming soon!
:::
Vitalia is a `pnpm` workspace with two applications:
This section is for those interested in running their own instance of the Application.
1. `client/`: Angular frontend (`v0.0.0`).
2. `server/`: Fastify/TypeScript backend (`v0.0.0`).
Workspace-level commands:
1. `pnpm dev` runs package `dev` tasks through Turbo.
2. `pnpm build` runs package build tasks through Turbo.
3. `pnpm lint` runs package lint tasks through Turbo.
4. `pnpm test` runs package test tasks through Turbo.
Backend details:
1. Fastify server listens on port `12345`.
2. CORS is enabled with `origin: "*"`.
3. A root `GET /` route returns a simple JSON message.
Frontend details:
1. Angular router redirects `/` to `/landing`.
2. Landing page is served by `LandingComponent`.
## 3. Legal Documentation
:::note
This section is coming soon!
:::
Project policy files reference global documentation:
This section is for expansions to our legal policies specific to the Application.
1. License: `https://docs.nhcarrigan.com/#/license`
2. Terms: `https://docs.nhcarrigan.com/#/terms`
3. Privacy: `https://docs.nhcarrigan.com/#/privacy`
4. Security: `https://docs.nhcarrigan.com/#/security`
Copyright is held by Naomi Carrigan.
## 4. Contributing Documentation
:::note
This section is coming soon!
:::
Contributions are accepted through pull requests under the repository contributing guidelines and Code of Conduct.
This section is for documentation related to contributing to the Application's codebase.
Before opening a pull request:
1. Run `pnpm install`.
2. Run `pnpm lint`.
3. Run `pnpm build`.
4. Run `pnpm test`.
Feedback and bug reports are handled via `https://support.nhcarrigan.com`.
+9 -12
View File
@@ -2,7 +2,7 @@
title: Website Headers
---
Website Headers (hereinafter the "Application") is a JavaScript/TypeScript library that injects standardised metadata, styles, and UI components (such as footers and modals) into web pages. It is designed to provide consistent branding, accessibility, and legal compliance for Naomi Carrigan's web properties. The Application dynamically adds Open Graph and Twitter meta tags, favicons, global styles, a themed footer, analytics scripts, and a community call-to-action modal. It also supports theme toggling and audio playback for enhanced user experience.
Website Headers (hereinafter the "Application") is a JavaScript/TypeScript library that injects standardised metadata, styles, and UI components (such as footers and modals) into web pages. It is designed to provide consistent branding and legal/compliance links for Naomi Carrigan's web properties. The Application dynamically adds Open Graph and Twitter meta tags, favicons, global styles, a themed footer, analytics scripts, and a community call-to-action modal. It also supports theme toggling with persisted preference.
## 1. User Documentation
@@ -12,17 +12,16 @@ The Website Headers library automatically enhances any webpage by injecting:
- **SEO metadata**: Open Graph and Twitter Card meta tags for better social media sharing
- **Favicons**: Complete set of favicon files for various devices and platforms
- **Global styling**: Consistent branding with OpenDyslexic font, custom cursor, and themed UI
- **Global styling**: Consistent branding with custom fonts, cursor, and themed UI
- **Footer component**: Standardized footer with copyright, social links, theme toggle, and donation button
- **Analytics**: Plausible Analytics integration with event tracking
- **Community features**: Periodic modal popup encouraging users to join the community
- **Theme support**: Light/dark theme toggle with localStorage persistence
- **Audio controls**: Optional theme music playback
- **TreeNation integration**: Carbon offset widget display
### Features
- **Accessibility-focused**: Uses OpenDyslexic font for improved readability
- **Accessibility-focused**: High-contrast theming and semantic metadata support
- **Responsive design**: Mobile-friendly layout with adaptive footer
- **Theme persistence**: Remembers user's theme preference across sessions
- **Privacy-respecting**: Uses privacy-focused Plausible Analytics
@@ -104,10 +103,6 @@ src/
├── index.ts # Main library code
└── develop.ts # Development server
prod/
├── index.js # Production build output
└── develop.js # Development server build
build.ts # Build script with minification
index.html # Test page for development
package.json # Project configuration
@@ -115,6 +110,8 @@ tsconfig.json # TypeScript configuration
eslint.config.js # ESLint configuration
```
The `prod/` directory is generated during build output and is not a permanent source directory.
### Architecture
The library is structured as a single TypeScript file that:
@@ -122,7 +119,7 @@ The library is structured as a single TypeScript file that:
1. **Metadata Injection**: Dynamically creates and injects meta tags for SEO and social sharing
2. **Asset Loading**: Loads external resources (fonts, scripts, stylesheets)
3. **Component Creation**: Builds UI components (footer, modal) and injects them into the DOM
4. **Event Handling**: Sets up interactive features (theme toggle, audio player, modal)
4. **Event Handling**: Sets up interactive features (theme toggle, social panel, modal)
5. **State Management**: Manages theme preferences and modal display timing using localStorage
### Key Components
@@ -138,7 +135,7 @@ The library is structured as a single TypeScript file that:
### External Dependencies
The library loads several external resources:
- OpenDyslexic font for accessibility
- Google-hosted font assets used by the injected stylesheet
- Font Awesome icons for UI elements
- Plausible Analytics for privacy-respecting tracking
- TreeNation widget for carbon offset display
@@ -152,7 +149,7 @@ The library loads several external resources:
### Licensing
This software is licensed under [Naomi's Public Licence](https://docs.nhcarrigan.com/legal/license).
This software is licensed under [Naomi's Public Licence](https://docs.nhcarrigan.com/#/license).
**Copyright Notice**: Copyright held by Naomi Carrigan.
@@ -181,7 +178,7 @@ The Application integrates with several third-party services that have their own
#### Content Delivery
- **NHCarrigan CDN**: Custom content delivery network
- Domain: `cdn.nhcarrigan.com`
- Hosts: fonts, images, audio files, cursors
- Hosts: fonts, images, scripts, and cursors
- Subject to NHCarrigan privacy policies
### Data Collection and Privacy
+5 -5
View File
@@ -36,7 +36,7 @@ We recognise and deeply appreciate that our Team members are volunteers dedicati
While we maintain a flexible approach to activity, we kindly request that you inform us of any anticipated absences:
- For absences exceeding one week, please notify the team via the `#staff-chat` channel on Discord.
- For absences exceeding one week, please notify the team via the `#sentinel-watch` channel on Discord.
- This communication helps us manage workload distribution and ensures continued smooth operation of our community.
### 1.3. Extended Inactivity
@@ -187,7 +187,7 @@ Maintain transparency and accountability to the community:
Maintain open lines of communication with your fellow Team members:
- Use designated channels (e.g., `#staff-chat`) to discuss community issues and seek guidance
- Use designated channels (e.g., `#sentinel-watch`) to discuss community issues and seek guidance
- Share experiences and seek advice when facing challenging situations
- Communicate openly about workload, availability, and support needs
@@ -223,7 +223,7 @@ All Team members must know when and how to escalate issues appropriately. Escala
**How to Escalate:**
**(a)** **Use Appropriate Channels**: Escalate through designated staff channels (e.g., `#staff-chat` on Discord) or direct contact with relevant coordinators or senior staff.
**(a)** **Use Appropriate Channels**: Escalate through designated staff channels (e.g., `#sentinel-watch` on Discord) or direct contact with relevant coordinators or senior staff.
**(b)** **Provide Complete Context**: When escalating, include:
- Clear description of the situation
@@ -281,8 +281,8 @@ For detailed escalation procedures specific to different situations, refer to th
#### 3.1.1. Primary Communication Platforms
- Our Discord community serves as a primary communication hub for the staff team
- A private `staff` category is available for internal discussions
- Discord `#staff-chat` channel for real-time communication and coordination
- A private `The Inner Circle` category is available for internal discussions
- Discord `#sentinel-watch` channel for real-time communication and coordination
#### 3.1.2. Use of Staff Communication Channels
- Utilise staff channels for:
+20 -6
View File
@@ -1,8 +1,22 @@
@font-face {
font-family: "Vampyr";
src: url("https://cdn.nhcarrigan.com/fonts/vampyr.ttf") format("truetype");
@import url('https://fonts.googleapis.com/css2?family=Kalam:wght@300;400;700&family=Creepster&family=Griffy&family=Henny+Penny&display=swap');
body {
font-family: "Kalam", cursive !important;
}
* {
font-family: "Vampyr", monospace !important;
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: "Griffy", cursive !important;
}
.witchy-accent {
font-family: "Creepster", cursive;
}
.mystical-text {
font-family: "Henny Penny", cursive;
}
+65 -5
View File
@@ -1,7 +1,7 @@
:root {
/* Witch color palette */
--witch-purple: #2b1b3d;
--witch-purple-translucent: hsla(267, 40%, 17%, 0.597);
--witch-purple-translucent: hsla(267, 40%, 17%, 0.85);
--witch-plum: #44275a;
--witch-rose: #a8577e;
--witch-mauve: #d4a5c7;
@@ -25,7 +25,7 @@
--sl-color-gray-6: var(--witch-purple);
/* Translucent background */
--content-bg: rgba(181, 185, 187, 0.543);
--content-bg: rgba(181, 185, 187, 0.85);
--content-blur: 8px;
}
@@ -33,7 +33,7 @@ html[data-theme="dark"] {
/* Dark theme uses darker colors for background, lighter for text */
.page {
--background-color: var(--witch-purple-translucent);
--background-color: transparent;
}
--primary-color: var(--witch-lavender);
--sl-color-text-accent: var(--witch-lavender);
@@ -70,11 +70,15 @@ html[data-theme="dark"] {
}
.sidebar-pane,
.right-sidebar-panel {
.right-sidebar {
background-color: var(--background-color);
color: var(--primary-color);
}
.right-sidebar-panel {
color: var(--primary-color);
}
h1,
h2,
h3,
@@ -90,14 +94,26 @@ a {
backdrop-filter: var(--content-blur);
}
html[data-theme="dark"] .page {
background: var(--witch-purple-translucent);
}
a[aria-current="page"] {
color: var(--background-color) !important;
background-color: var(--witch-rose) !important;
}
html[data-theme="dark"] a[aria-current="page"] {
color: var(--witch-moon) !important;
}
header {
color: var(--primary-color) !important;
background-color: var(--background-color) !important;
background-color: var(--witch-lavender) !important;
}
html[data-theme="dark"] header {
background-color: var(--witch-purple) !important;
}
.large {
@@ -124,6 +140,21 @@ starlight-theme-select > label {
color: var(--primary-color) !important;
}
starlight-theme-select select {
color: var(--primary-color) !important;
background-color: var(--background-color) !important;
}
starlight-theme-select select option {
color: var(--primary-color);
background-color: var(--background-color);
}
html[data-theme="dark"] starlight-theme-select select option {
color: var(--witch-purple) !important;
background-color: var(--witch-lavender) !important;
}
.social-icons::after {
display: none;
}
@@ -146,6 +177,35 @@ starlight-theme-select > label {
background-color: var(--witch-plum) !important;
}
.hero .tagline {
color: var(--primary-color) !important;
}
site-search button[data-open-modal] {
color: var(--primary-color) !important;
}
site-search button[data-open-modal] kbd {
color: var(--primary-color) !important;
background-color: var(--background-color) !important;
border-color: var(--primary-color) !important;
}
#starlight__search {
--pagefind-ui-text: var(--primary-color);
--pagefind-ui-primary: var(--witch-rose);
}
#starlight__search input::placeholder {
color: var(--primary-color) !important;
opacity: 0.8;
}
.pagefind-ui__result-excerpt {
color: var(--primary-color) !important;
opacity: 0.9;
}
#extra-footer-content {
display: flex;
flex-direction: row;
+174 -87
View File
@@ -2,62 +2,61 @@
"$schema": "vscode://schemas/color-theme",
"type": "dark",
"colors": {
"activityBar.background": "#3a0d22",
"activityBar.foreground": "#ffb6c1",
"activityBarBadge.background": "#ff69b4",
"activityBarBadge.foreground": "#000000",
"button.background": "#ff69b4",
"button.foreground": "#000000",
"dropdown.background": "#4a112a",
"dropdown.foreground": "#ffb6c1",
"editor.background": "#2a0a18",
"editor.foreground": "#ffb6c1",
"editor.lineHighlightBackground": "#1073cf2d",
"editor.lineHighlightBorder": "#9fced11f",
"editor.selectionBackground": "#e35a8f",
"editor.selectionHighlightBackground": "#e35a8f80",
"editor.wordHighlightBackground": "#e35a8f80",
"editorCursor.foreground": "#ff69b4",
"editorGroupHeader.tabsBackground": "#3a0d22",
"editorWhitespace.foreground": "#4a112a",
"focusBorder": "#ff69b4",
"input.background": "#3a0d22",
"input.foreground": "#ffb6c1",
"input.placeholderForeground": "#e35a8f",
"list.activeSelectionBackground": "#4a112a",
"list.activeSelectionForeground": "#ffb6c1",
"list.hoverBackground": "#3a0d22",
"list.hoverForeground": "#ffb6c1",
"sideBar.background": "#3a0d22",
"sideBar.foreground": "#ffb6c1",
"sideBarTitle.foreground": "#ff69b4",
"statusBar.background": "#4a112a",
"statusBar.foreground": "#ffb6c1",
"statusBar.noFolderBackground": "#2a0a18",
"tab.activeBackground": "#3a0d22",
"tab.activeForeground": "#ffb6c1",
"tab.inactiveBackground": "#4a112a",
"tab.inactiveForeground": "#e35a8f",
"terminal.ansiBlack": "#4a112a",
"terminal.ansiBlue": "#c96385",
"terminal.ansiBrightBlack": "#3a0d22",
"terminal.ansiBrightBlue": "#d87093",
"terminal.ansiBrightCyan": "#ffafc5",
"terminal.ansiBrightGreen": "#ff77a8",
"terminal.ansiBrightMagenta": "#ff85a2",
"terminal.ansiBrightRed": "#ff1493",
"terminal.ansiBrightWhite": "#fff5f7",
"terminal.ansiBrightYellow": "#ffb6c1",
"terminal.ansiCyan": "#ff9aac",
"terminal.ansiGreen": "#e35a8f",
"terminal.ansiMagenta": "#e35a8f",
"terminal.ansiRed": "#ff69b4",
"terminal.ansiWhite": "#ffd1dc",
"terminal.ansiYellow": "#d45a88",
"terminal.background": "#2a0a18",
"terminal.foreground": "#ffb6c1",
"titleBar.activeBackground": "#4a112a",
"titleBar.activeForeground": "#ffb6c1"
"activityBar.background": "#150a1e",
"activityBar.foreground": "#e8d5e8",
"activityBarBadge.background": "#a8577e",
"activityBarBadge.foreground": "#f5f5f5",
"button.background": "#44275a",
"button.foreground": "#e8d5e8",
"dropdown.background": "#2b1b3d",
"dropdown.foreground": "#e8d5e8",
"editor.background": "#0a0009",
"editor.foreground": "#e8d5e8",
"editor.lineHighlightBackground": "#2b1b3d",
"editor.selectionBackground": "#a8577e",
"editor.selectionHighlightBackground": "#a8577e50",
"editor.wordHighlightBackground": "#a8577e40",
"editorCursor.foreground": "#a8577e",
"editorGroupHeader.tabsBackground": "#150a1e",
"editorWhitespace.foreground": "#44275a",
"focusBorder": "#a8577e",
"input.background": "#150a1e",
"input.foreground": "#e8d5e8",
"input.placeholderForeground": "#d4a5c7",
"list.activeSelectionBackground": "#44275a",
"list.activeSelectionForeground": "#e8d5e8",
"list.hoverBackground": "#2b1b3d",
"list.hoverForeground": "#e8d5e8",
"sideBar.background": "#150a1e",
"sideBar.foreground": "#e8d5e8",
"sideBarTitle.foreground": "#d4a5c7",
"statusBar.background": "#44275a",
"statusBar.foreground": "#e8d5e8",
"statusBar.noFolderBackground": "#0a0009",
"tab.activeBackground": "#2b1b3d",
"tab.activeForeground": "#e8d5e8",
"tab.inactiveBackground": "#150a1e",
"tab.inactiveForeground": "#d4a5c7",
"terminal.ansiBlack": "#2b1b3d",
"terminal.ansiBlue": "#7b5ea8",
"terminal.ansiBrightBlack": "#44275a",
"terminal.ansiBrightBlue": "#9b7ec8",
"terminal.ansiBrightCyan": "#d0b8e8",
"terminal.ansiBrightGreen": "#a898c0",
"terminal.ansiBrightMagenta": "#d4a5c7",
"terminal.ansiBrightRed": "#c96b8e",
"terminal.ansiBrightWhite": "#f5f5f5",
"terminal.ansiBrightYellow": "#e8d5e8",
"terminal.ansiCyan": "#b8a0d0",
"terminal.ansiGreen": "#8a7a9e",
"terminal.ansiMagenta": "#a8577e",
"terminal.ansiRed": "#a8577e",
"terminal.ansiWhite": "#d4a5c7",
"terminal.ansiYellow": "#d4a5c7",
"terminal.background": "#0a0009",
"terminal.foreground": "#e8d5e8",
"titleBar.activeBackground": "#2b1b3d",
"titleBar.activeForeground": "#e8d5e8"
},
"tokenColors": [
{
@@ -66,7 +65,7 @@
"punctuation.definition.comment"
],
"settings": {
"foreground": "#E5A3B5",
"foreground": "#7A5A8A",
"fontStyle": "italic"
}
},
@@ -81,7 +80,7 @@
"constant.other.symbol"
],
"settings": {
"foreground": "#FF69B4"
"foreground": "#D4A5C7"
}
},
{
@@ -93,7 +92,7 @@
"support.constant"
],
"settings": {
"foreground": "#C96385"
"foreground": "#C88FA8"
}
},
{
@@ -105,7 +104,7 @@
"variable.object.property"
],
"settings": {
"foreground": "#D87093"
"foreground": "#E8D5E8"
}
},
{
@@ -119,7 +118,7 @@
"punctuation.decorator"
],
"settings": {
"foreground": "#E35A8F"
"foreground": "#A8577E"
}
},
{
@@ -132,7 +131,7 @@
"meta.function.dart"
],
"settings": {
"foreground": "#D45A88"
"foreground": "#C070A0"
}
},
{
@@ -149,7 +148,7 @@
"meta.return-type"
],
"settings": {
"foreground": "#FF77A8",
"foreground": "#D4A5C7",
"fontStyle": "bold"
}
},
@@ -160,7 +159,7 @@
"punctuation.definition.annotation"
],
"settings": {
"foreground": "#C96385"
"foreground": "#9B5878"
}
},
{
@@ -169,7 +168,7 @@
"punctuation.definition.tag"
],
"settings": {
"foreground": "#E35A8F"
"foreground": "#A8577E"
}
},
{
@@ -181,7 +180,7 @@
"entity.other.attribute-name.class"
],
"settings": {
"foreground": "#FF77A8"
"foreground": "#D4A5C7"
}
},
{
@@ -194,7 +193,7 @@
"support.type.primitive.dart"
],
"settings": {
"foreground": "#FF77A8"
"foreground": "#D4A5C7"
}
},
{
@@ -203,7 +202,7 @@
"constant.character.escape.regex"
],
"settings": {
"foreground": "#FF69B4"
"foreground": "#D4A5C7"
}
},
{
@@ -212,7 +211,7 @@
"entity.name.section"
],
"settings": {
"foreground": "#D45A88",
"foreground": "#A8577E",
"fontStyle": "bold"
}
},
@@ -239,7 +238,7 @@
"markup.raw"
],
"settings": {
"foreground": "#FF69B4"
"foreground": "#D4A5C7"
}
},
{
@@ -248,7 +247,7 @@
"support.type.property-name.jsonc"
],
"settings": {
"foreground": "#FF77A8"
"foreground": "#D4A5C7"
}
},
{
@@ -262,7 +261,7 @@
"keyword.operator.logical"
],
"settings": {
"foreground": "#E35A8F"
"foreground": "#CF8FAE"
}
},
{
@@ -272,7 +271,7 @@
"meta.template.expression"
],
"settings": {
"foreground": "#D87093"
"foreground": "#E8D5E8"
}
},
{
@@ -283,7 +282,7 @@
"variable.other.object.property"
],
"settings": {
"foreground": "#FF77A8"
"foreground": "#D4A5C7"
}
},
{
@@ -293,7 +292,7 @@
"support.variable.object.node"
],
"settings": {
"foreground": "#FF77A8"
"foreground": "#D4A5C7"
}
},
{
@@ -303,7 +302,7 @@
"source.rust entity.name.type.struct.rust"
],
"settings": {
"foreground": "#FF77A8"
"foreground": "#D4A5C7"
}
},
{
@@ -313,7 +312,7 @@
"source.rust keyword.operator.logical"
],
"settings": {
"foreground": "#E35A8F"
"foreground": "#CF8FAE"
}
},
{
@@ -322,7 +321,7 @@
"source.python support.function.builtin.python"
],
"settings": {
"foreground": "#D45A88"
"foreground": "#C070A0"
}
},
{
@@ -331,7 +330,7 @@
"source.cs storage.type.cs"
],
"settings": {
"foreground": "#FF77A8"
"foreground": "#D4A5C7"
}
},
{
@@ -340,7 +339,7 @@
"source.dart support.type.dart"
],
"settings": {
"foreground": "#FF77A8"
"foreground": "#D4A5C7"
}
},
{
@@ -350,7 +349,7 @@
"source.prisma keyword.type"
],
"settings": {
"foreground": "#E35A8F"
"foreground": "#A8577E"
}
},
{
@@ -359,7 +358,7 @@
"source.graphql constant.character"
],
"settings": {
"foreground": "#FF77A8"
"foreground": "#D4A5C7"
}
},
{
@@ -368,7 +367,7 @@
"source.sql storage.type"
],
"settings": {
"foreground": "#E35A8F"
"foreground": "#A8577E"
}
},
{
@@ -378,7 +377,7 @@
"meta.embedded.block.jsx"
],
"settings": {
"foreground": "#D87093"
"foreground": "#E8D5E8"
}
},
{
@@ -388,13 +387,101 @@
"meta.decorator.angular"
],
"settings": {
"foreground": "#C96385"
"foreground": "#9B5878"
}
},
{
"scope": "ref.matchtext",
"scope": [
"entity.name.tag.yaml",
"string.unquoted.plain.out.yaml"
],
"settings": {
"foreground": "#FFFFFF"
"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"
}
},
{
+181 -88
View File
@@ -2,62 +2,61 @@
"$schema": "vscode://schemas/color-theme",
"type": "light",
"colors": {
"activityBar.background": "#ffd6e0",
"activityBar.foreground": "#d87093",
"activityBarBadge.background": "#ff69b4",
"activityBarBadge.foreground": "#ffffff",
"button.background": "#ff69b4",
"button.foreground": "#ffffff",
"dropdown.background": "#fff0f5",
"dropdown.foreground": "#d87093",
"editor.background": "#ffefef",
"editor.foreground": "#d87093",
"editor.lineHighlightBackground": "#1073cf2d",
"editor.lineHighlightBorder": "#9fced11f",
"editor.selectionBackground": "#ffb6c1",
"editor.selectionHighlightBackground": "#ffb6c180",
"editor.wordHighlightBackground": "#ffb6c180",
"editorCursor.foreground": "#ff69b4",
"editorGroupHeader.tabsBackground": "#ffe4e8",
"editorWhitespace.foreground": "#ffe4e8",
"focusBorder": "#ff69b4",
"input.background": "#fff0f5",
"input.foreground": "#d87093",
"input.placeholderForeground": "#ff77a8",
"list.activeSelectionBackground": "#ffefef",
"list.activeSelectionForeground": "#d87093",
"list.hoverBackground": "#fff0f5",
"list.hoverForeground": "#d87093",
"sideBar.background": "#fff0f5",
"sideBar.foreground": "#d87093",
"sideBarTitle.foreground": "#ff69b4",
"statusBar.background": "#ffd6e0",
"statusBar.foreground": "#d87093",
"statusBar.noFolderBackground": "#ffefef",
"tab.activeBackground": "#ffefef",
"tab.activeForeground": "#d87093",
"tab.inactiveBackground": "#ffd6e0",
"tab.inactiveForeground": "#ff77a8",
"terminal.ansiBlack": "#ffe4e8",
"terminal.ansiBlue": "#db7093",
"terminal.ansiBrightBlack": "#ffefef",
"terminal.ansiBrightBlue": "#f08080",
"terminal.ansiBrightCyan": "#ffc0cb",
"terminal.ansiBrightGreen": "#ff77a8",
"terminal.ansiBrightMagenta": "#ff9aac",
"terminal.ansiBrightRed": "#ff0066",
"terminal.ansiBrightWhite": "#fff5f7",
"terminal.ansiBrightYellow": "#ffa6c9",
"terminal.ansiCyan": "#ffafc5",
"terminal.ansiGreen": "#ff69b4",
"terminal.ansiMagenta": "#ff85a2",
"terminal.ansiRed": "#ff1493",
"terminal.ansiWhite": "#ffd1dc",
"terminal.ansiYellow": "#ffb6c1",
"terminal.background": "#ffefef",
"terminal.foreground": "#d87093",
"titleBar.activeBackground": "#ffd6e0",
"titleBar.activeForeground": "#d87093"
"activityBar.background": "#e8d5e8",
"activityBar.foreground": "#2b1b3d",
"activityBarBadge.background": "#a8577e",
"activityBarBadge.foreground": "#f5f5f5",
"button.background": "#a8577e",
"button.foreground": "#f5f5f5",
"dropdown.background": "#e8d5e8",
"dropdown.foreground": "#2b1b3d",
"editor.background": "#f5f5f5",
"editor.foreground": "#2b1b3d",
"editor.lineHighlightBackground": "#d4a5c740",
"editor.selectionBackground": "#d4a5c7",
"editor.selectionHighlightBackground": "#d4a5c750",
"editor.wordHighlightBackground": "#d4a5c740",
"editorCursor.foreground": "#a8577e",
"editorGroupHeader.tabsBackground": "#e8d5e8",
"editorWhitespace.foreground": "#d4a5c7",
"focusBorder": "#a8577e",
"input.background": "#f5f5f5",
"input.foreground": "#2b1b3d",
"input.placeholderForeground": "#a8577e",
"list.activeSelectionBackground": "#d4a5c7",
"list.activeSelectionForeground": "#2b1b3d",
"list.hoverBackground": "#e8d5e8",
"list.hoverForeground": "#2b1b3d",
"sideBar.background": "#e8d5e8",
"sideBar.foreground": "#2b1b3d",
"sideBarTitle.foreground": "#a8577e",
"statusBar.background": "#a8577e",
"statusBar.foreground": "#f5f5f5",
"statusBar.noFolderBackground": "#f5f5f5",
"tab.activeBackground": "#f5f5f5",
"tab.activeForeground": "#2b1b3d",
"tab.inactiveBackground": "#e8d5e8",
"tab.inactiveForeground": "#44275a",
"terminal.ansiBlack": "#2b1b3d",
"terminal.ansiBlue": "#7b5ea8",
"terminal.ansiBrightBlack": "#44275a",
"terminal.ansiBrightBlue": "#9b7ec8",
"terminal.ansiBrightCyan": "#d0b8e8",
"terminal.ansiBrightGreen": "#a898c0",
"terminal.ansiBrightMagenta": "#d4a5c7",
"terminal.ansiBrightRed": "#c96b8e",
"terminal.ansiBrightWhite": "#f5f5f5",
"terminal.ansiBrightYellow": "#e8d5e8",
"terminal.ansiCyan": "#b8a0d0",
"terminal.ansiGreen": "#8a7a9e",
"terminal.ansiMagenta": "#a8577e",
"terminal.ansiRed": "#a8577e",
"terminal.ansiWhite": "#d4a5c7",
"terminal.ansiYellow": "#d4a5c7",
"terminal.background": "#f5f5f5",
"terminal.foreground": "#2b1b3d",
"titleBar.activeBackground": "#e8d5e8",
"titleBar.activeForeground": "#2b1b3d"
},
"tokenColors": [
{
@@ -66,7 +65,7 @@
"punctuation.definition.comment"
],
"settings": {
"foreground": "#E5A3B5",
"foreground": "#7A5A8A",
"fontStyle": "italic"
}
},
@@ -81,7 +80,7 @@
"constant.other.symbol"
],
"settings": {
"foreground": "#FF69B4"
"foreground": "#9B5878"
}
},
{
@@ -93,7 +92,7 @@
"support.constant"
],
"settings": {
"foreground": "#C96385"
"foreground": "#9B5878"
}
},
{
@@ -105,7 +104,7 @@
"variable.object.property"
],
"settings": {
"foreground": "#D87093"
"foreground": "#44275a"
}
},
{
@@ -119,7 +118,7 @@
"punctuation.decorator"
],
"settings": {
"foreground": "#E35A8F"
"foreground": "#A8577E"
}
},
{
@@ -132,7 +131,7 @@
"meta.function.dart"
],
"settings": {
"foreground": "#D45A88"
"foreground": "#C070A0"
}
},
{
@@ -149,7 +148,7 @@
"meta.return-type"
],
"settings": {
"foreground": "#FF77A8",
"foreground": "#9B5878",
"fontStyle": "bold"
}
},
@@ -160,7 +159,7 @@
"punctuation.definition.annotation"
],
"settings": {
"foreground": "#C96385"
"foreground": "#9B5878"
}
},
{
@@ -169,7 +168,7 @@
"punctuation.definition.tag"
],
"settings": {
"foreground": "#E35A8F"
"foreground": "#A8577E"
}
},
{
@@ -181,7 +180,7 @@
"entity.other.attribute-name.class"
],
"settings": {
"foreground": "#FF77A8"
"foreground": "#9B5878"
}
},
{
@@ -194,7 +193,7 @@
"support.type.primitive.dart"
],
"settings": {
"foreground": "#FF77A8"
"foreground": "#9B5878"
}
},
{
@@ -203,7 +202,7 @@
"constant.character.escape.regex"
],
"settings": {
"foreground": "#FF69B4"
"foreground": "#9B5878"
}
},
{
@@ -212,7 +211,7 @@
"entity.name.section"
],
"settings": {
"foreground": "#D45A88",
"foreground": "#A8577E",
"fontStyle": "bold"
}
},
@@ -239,7 +238,7 @@
"markup.raw"
],
"settings": {
"foreground": "#FF69B4"
"foreground": "#9B5878"
}
},
{
@@ -248,7 +247,7 @@
"support.type.property-name.jsonc"
],
"settings": {
"foreground": "#FF77A8"
"foreground": "#9B5878"
}
},
{
@@ -262,7 +261,7 @@
"keyword.operator.logical"
],
"settings": {
"foreground": "#E35A8F"
"foreground": "#A8577E"
}
},
{
@@ -272,7 +271,7 @@
"meta.template.expression"
],
"settings": {
"foreground": "#D87093"
"foreground": "#44275a"
}
},
{
@@ -283,7 +282,7 @@
"variable.other.object.property"
],
"settings": {
"foreground": "#FF77A8"
"foreground": "#9B5878"
}
},
{
@@ -293,7 +292,7 @@
"support.variable.object.node"
],
"settings": {
"foreground": "#FF77A8"
"foreground": "#9B5878"
}
},
{
@@ -303,7 +302,7 @@
"source.rust entity.name.type.struct.rust"
],
"settings": {
"foreground": "#FF77A8"
"foreground": "#9B5878"
}
},
{
@@ -313,7 +312,7 @@
"source.rust keyword.operator.logical"
],
"settings": {
"foreground": "#E35A8F"
"foreground": "#A8577E"
}
},
{
@@ -322,7 +321,7 @@
"source.python support.function.builtin.python"
],
"settings": {
"foreground": "#D45A88"
"foreground": "#C070A0"
}
},
{
@@ -331,7 +330,7 @@
"source.cs storage.type.cs"
],
"settings": {
"foreground": "#FF77A8"
"foreground": "#9B5878"
}
},
{
@@ -340,7 +339,7 @@
"source.dart support.type.dart"
],
"settings": {
"foreground": "#FF77A8"
"foreground": "#9B5878"
}
},
{
@@ -350,7 +349,7 @@
"source.prisma keyword.type"
],
"settings": {
"foreground": "#E35A8F"
"foreground": "#A8577E"
}
},
{
@@ -359,7 +358,7 @@
"source.graphql constant.character"
],
"settings": {
"foreground": "#FF77A8"
"foreground": "#9B5878"
}
},
{
@@ -368,7 +367,7 @@
"source.sql storage.type"
],
"settings": {
"foreground": "#E35A8F"
"foreground": "#A8577E"
}
},
{
@@ -378,7 +377,7 @@
"meta.embedded.block.jsx"
],
"settings": {
"foreground": "#D87093"
"foreground": "#44275a"
}
},
{
@@ -388,13 +387,107 @@
"meta.decorator.angular"
],
"settings": {
"foreground": "#C96385"
"foreground": "#9B5878"
}
},
{
"scope": [
"entity.name.tag.yaml",
"string.unquoted.plain.out.yaml"
],
"settings": {
"foreground": "#9B5878"
}
},
{
"scope": [
"support.type.property-name.toml",
"entity.name.tag.toml"
],
"settings": {
"foreground": "#9B5878"
}
},
{
"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": "#A8577E"
}
},
{
"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": "#9B5878"
}
},
{
"scope": [
"entity.name.package.java",
"support.other.package.java",
"entity.name.package.kotlin"
],
"settings": {
"foreground": "#9B5878"
}
},
{
"scope": "token.info-token",
"settings": {
"foreground": "#316BCD"
"foreground": "#6796E6"
}
},
{
@@ -406,13 +499,13 @@
{
"scope": "token.error-token",
"settings": {
"foreground": "#CD3131"
"foreground": "#F44747"
}
},
{
"scope": "token.debug-token",
"settings": {
"foreground": "#800080"
"foreground": "#B267E6"
}
}
]