Compare commits

...

18 Commits

Author SHA1 Message Date
c461453342 feat: logo and open graph
Some checks failed
Code Analysis / SonarQube (push) Failing after 16s
Node.js CI / Lint and Test (push) Successful in 52s
2025-06-12 15:55:00 -07:00
49dd426ed9 feat: add donate badge
Some checks failed
Code Analysis / SonarQube (push) Failing after 1m23s
Node.js CI / Lint and Test (push) Successful in 1m26s
2025-05-31 18:15:26 -07:00
b179cc469b feat: add advertisements
Some checks failed
Code Analysis / SonarQube (push) Failing after 1m28s
Node.js CI / Lint and Test (push) Successful in 1m31s
2025-05-30 21:34:04 -07:00
7252be5d02 chore: missed one
Some checks failed
Node.js CI / Lint and Test (push) Successful in 1m18s
Code Analysis / SonarQube (push) Failing after 1m19s
2025-05-27 15:54:09 -07:00
9583ac3076 chore: update form links
Some checks failed
Node.js CI / Lint and Test (push) Successful in 1m27s
Code Analysis / SonarQube (push) Failing after 1m28s
2025-05-27 15:47:18 -07:00
64c4bd4b9a feat: remove video
Some checks failed
Node.js CI / Lint and Test (push) Successful in 1m33s
Code Analysis / SonarQube (push) Failing after 1m34s
2025-05-22 09:23:33 -07:00
f74b4cf43a chore: system update
Some checks failed
Code Analysis / SonarQube (push) Failing after 1m26s
Node.js CI / Lint and Test (push) Successful in 1m31s
2025-04-18 08:57:32 -07:00
90de31a17d chore: system updoot
Some checks failed
Node.js CI / Lint and Test (push) Successful in 1m17s
Code Analysis / SonarQube (push) Failing after 1m16s
2025-04-05 13:11:36 -07:00
ea060a775c feat: track domain, path, title
Some checks failed
Node.js CI / Lint and Test (push) Successful in 1m21s
Code Analysis / SonarQube (push) Failing after 1m22s
2025-04-04 15:10:47 -07:00
1022316d35 feat: new colours
Some checks failed
Code Analysis / SonarQube (push) Failing after 1m39s
Node.js CI / Lint and Test (push) Successful in 1m40s
2025-04-03 00:46:47 -07:00
db7a34e975 feat: enable dark theme and theme switcher
Some checks failed
Node.js CI / Lint and Test (push) Successful in 1m26s
Code Analysis / SonarQube (push) Failing after 1m29s
2025-03-27 14:53:47 -07:00
bd47ff2bb3 chore: update sig
Some checks failed
Code Analysis / SonarQube (push) Failing after 1m30s
Node.js CI / Lint and Test (push) Successful in 1m34s
2025-03-24 19:20:10 -07:00
0ec64ba2b0 feat: add instructions for verifying social accounts
Some checks failed
Code Analysis / SonarQube (push) Failing after 1m21s
Node.js CI / Lint and Test (push) Successful in 1m25s
2025-03-24 17:44:00 -07:00
a7daa5093f chore: system update
Some checks failed
Node.js CI / Lint and Test (push) Successful in 1m31s
Code Analysis / SonarQube (push) Failing after 1m36s
2025-03-24 14:26:51 -07:00
6a95effaaf feat: remove deprecated platforms
Some checks failed
Node.js CI / Lint and Test (push) Successful in 1m23s
Code Analysis / SonarQube (push) Failing after 1m24s
2025-03-11 15:27:43 -07:00
26136259d3 feat: add blinkies
Some checks failed
Code Analysis / SonarQube (push) Failing after 1m24s
Node.js CI / Lint and Test (push) Successful in 1m28s
2025-03-11 12:40:52 -07:00
dd5fa6f7a2 feat: custom theming for code blocks
Some checks failed
Code Analysis / SonarQube (push) Failing after 1m26s
Node.js CI / Lint and Test (push) Successful in 1m30s
2025-03-05 16:41:11 -08:00
38149e092e feat: use codeblock titles for environment 2025-03-05 16:31:37 -08:00
15 changed files with 2289 additions and 995 deletions

View File

@ -1,68 +1,103 @@
import { defineConfig } from 'astro/config'; import { defineConfig } from "astro/config";
import starlight from "@astrojs/starlight"; import starlight from "@astrojs/starlight";
import { ExpressiveCodeTheme } from "@astrojs/starlight/expressive-code";
import themeJson from "./src/styles/theme.json";
import darkThemeJson from "./src/styles/theme-dark.json";
import { navigation } from "./src/components/navigation.ts"; import { navigation } from "./src/components/navigation.ts";
const sakuraDreams = ExpressiveCodeTheme.fromJSONString(
JSON.stringify(themeJson)
);
const sakuraDreamsDark = ExpressiveCodeTheme.fromJSONString(
JSON.stringify(darkThemeJson)
);
export default defineConfig({ export default defineConfig({
site: "https://docs.nhcarrigan.com", site: "https://docs.nhcarrigan.com",
integrations: [starlight({ integrations: [
components: { starlight({
Footer: "./src/components/Footer.astro", components: {
ThemeSelect: "./src/components/ThemeSelect.astro", Footer: "./src/components/Footer.astro",
ThemeProvider: "./src/components/ThemeProvider.astro", ThemeProvider: "./src/components/ThemeProvider.astro",
},
title: "NHCarrigan Docs",
sidebar: navigation,
tableOfContents: { minHeadingLevel: 2, maxHeadingLevel: 4},
description: "This site contains all of the documentation related to NHCarrigan, its Policies, and its Projects.",
editLink: {
baseUrl: "https://git.nhcarrigan.com/nhcarrigan/docs/_edit/main/",
label: "Edit this page on Naomi's Self-hosted Git instance"
},
lastUpdated: true,
social: {
github: "https://git.nhcarrigan.com",
discourse: "https://forum.nhcarrigan.com",
mastodon: "https://fedi.nhcarrigan.com/@naomi",
matrix: "https://matrix.nhcarrigan.com",
rss: "https://irc.nhcarrigan.com",
email: "mailto:contact@nhcarrigan.com"
},
head: [
{
tag: "script",
attrs: {
type: "text/javascript",
id: "analytics",
src: "https://analytics.nhcarrigan.com/js/script.file-downloads.outbound-links.js",
defer: true,
"data-domain": "nhcarrigan.com"
}
}, },
{ title: "NHCarrigan Docs",
tag: "script", sidebar: navigation,
content: "window.plausible = window.plausible || function() { (window.plausible.q = window.plausible.q || []).push(arguments) }" tableOfContents: { minHeadingLevel: 2, maxHeadingLevel: 4 },
description:
"This site contains all of the documentation related to NHCarrigan, its Policies, and its Projects.",
editLink: {
baseUrl: "https://git.nhcarrigan.com/nhcarrigan/docs/_edit/main/",
label: "Edit this page on Naomi's Self-hosted Git instance",
}, },
{ lastUpdated: true,
tag: "script", social: {
attrs: { github: "https://git.nhcarrigan.com",
type: "text/javascript", discourse: "https://forum.nhcarrigan.com",
id: "trees", mastodon: "https://fedi.nhcarrigan.com/@naomi",
src: "https://widgets.tree-nation.com/js/widgets/v1/widgets.min.js?v=1.0", matrix: "https://matrix.nhcarrigan.com",
defer: true rss: "https://irc.nhcarrigan.com",
} email: "mailto:contact@nhcarrigan.com",
}, },
{ logo: {
tag: "link", src: "./public/logo.png",
attrs: { alt: "NHCarrigan Logo",
rel: "icon", replacesTitle: true
href: "/logo.png" },
head: [
{
tag: "script",
attrs: {
type: "text/javascript",
id: "analytics",
src: "https://analytics.nhcarrigan.com/js/script.file-downloads.outbound-links.js",
defer: true,
"data-domain": "nhcarrigan.com",
"event-domain": "docs.nhcarrigan.com",
},
},
{
tag: "script",
content:
"window.plausible = window.plausible || function() { (window.plausible.q = window.plausible.q || []).push(arguments) }",
},
{
tag: "script",
attrs: {
type: "text/javascript",
id: "trees",
src: "https://widgets.tree-nation.com/js/widgets/v1/widgets.min.js?v=1.0",
defer: true,
},
},
{
tag: "link",
attrs: {
rel: "icon",
href: "./public/logo.png",
},
},
{
tag: "script",
attrs: {
type: "text/javascript",
src: "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3569924701890974",
async: true,
crossorigin: "anonymous",
},
},
{
tag: "meta",
attrs: {
property: "og:image",
content: "https://cdn.nhcarrigan.com/og-image.png"
}
} }
} ],
], customCss: ["./src/styles/style.css", "./src/fonts/font-face.css"],
customCss: [ expressiveCode: {
"./src/styles/style.css", themes: [sakuraDreams, sakuraDreamsDark],
"./src/fonts/font-face.css" },
], }),
})] ],
}); });

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 1.0 MiB

BIN
public/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

View File

@ -10,7 +10,12 @@ import Pagination from "@astrojs/starlight/components/Pagination.astro";
<LastUpdated {...Astro.props} /> <LastUpdated {...Astro.props} />
</div> </div>
<Pagination {...Astro.props} /> <Pagination {...Astro.props} />
<div id="extra-footer-content">
<div id="tree-nation-offset-website"></div> <div id="tree-nation-offset-website"></div>
<a href="https://buy.stripe.com/cN24iTfqu1j6b3afZ2" target="_blank" rel="noreferrer">
<img src="https://cdn.nhcarrigan.com/donate.png" alt="Donate" style="width: 70px; height: 70px;">
</a>
</div>
<script> <script>
TreeNationOffsetWebsite({ TreeNationOffsetWebsite({
code: "a17464e0cd351220", code: "a17464e0cd351220",

View File

@ -1,20 +1,43 @@
---
import { Icon } from "@astrojs/starlight/components";
---
{/* This is intentionally inlined to avoid FOUC. */}
<script is:inline> <script is:inline>
document.documentElement.dataset.theme = "light"; const analytics = document.getElementById('analytics');
const title = document.querySelector('title');
analytics.setAttribute('event-page', title.innerText ?? "NHCarrigan Docs");
analytics.setAttribute('event-path', window.location.pathname);
window.StarlightThemeProvider = (() => {
const storedTheme =
typeof localStorage !== 'undefined' && localStorage.getItem('starlight-theme');
const theme =
storedTheme ||
(window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark');
document.documentElement.dataset.theme = theme === 'light' ? 'light' : 'dark';
console.log(document.documentElement)
return {
updatePickers(theme = storedTheme || 'auto') {
document.querySelectorAll('starlight-theme-select').forEach((picker) => {
const select = picker.querySelector('select');
if (select) select.value = theme;
/** @type {HTMLTemplateElement | null} */
const tmpl = document.querySelector(`#theme-icons`);
const newIcon = tmpl && tmpl.content.querySelector('.' + theme);
if (newIcon) {
const oldIcon = picker.querySelector('svg.label-icon');
if (oldIcon) {
oldIcon.replaceChildren(...newIcon.cloneNode(true).childNodes);
}
}
});
},
};
})();
</script> </script>
<video
autoplay={true} <template id="theme-icons">
loop={true} <Icon name="sun" class="light" />
muted={true} <Icon name="moon" class="dark" />
playsinline={true} <Icon name="laptop" class="auto" />
src="https://cdn.nhcarrigan.com/overlay.webm" </template>
style={{
pointerEvents: "none",
position: "fixed",
top: 0,
left: 0,
opacity: 0.25,
zIndex: 100,
width: "100vw",
height: "100vh",
objectFit: "cover",
}}></video>

View File

@ -2,6 +2,54 @@
title: Contact Policy title: Contact Policy
--- ---
:::tip
We maintain a full list of all officially-owned social media accounts. You can view those accounts at https://cdn.nhcarrigan.com/socials.txt.
<details>
<summary>Verification Instructions</summary>
To verify the authenticity of that document, grab our SSH key from https://git.nhcarrigan.com/naomi.keys and save it locally. ADD `naomi@nhcarrigan.com ` TO THE BEGINNING OF THIS SIGNATURE FILE. It should look like `naomi@nhcarrigan.com ssh-rsa <key string>`.
Save the list of socials locally locally.
Copy and save this signature locally:
```
-----BEGIN SSH SIGNATURE-----
U1NIU0lHAAAAAQAAAhcAAAAHc3NoLXJzYQAAAAMBAAEAAAIBAMU5uZawMgDZj3m5jw9WZ6
ltOSMbYQWnfo9NyccKL8xiVoGVU9PxzSLEuPpczAZpNaKLD5JqhJ2zXN/9YVF+R3wq6NZY
tCDTET02HShOEXTsfChEi+LVi4Brr1OY5Jo1pPViNfm4IintA1yTkCQtyQwrq/lWFvlc/B
mS0Sn3ogEJCp0FxXYXrBfo6ujveKoYKiIBxRlHN4D13Mu00KDvufeEUqtJ42m5fNf/dKJU
7H3Hb7e9l3IuUJeiBC8fb0tTx7E9pg6ivaH6KM8tVGK+U77LK3qzXWICutWGAg1GlMQNsd
17sa03NB4tE12cXIVLCSPUo9Wlt+8BYNNvO14JrCJzQ4/mzBDSsUu2NKdAj4rYaoUW742/
KnPdhfmjOpMFIW53IjldmAs5sixH8u6DrMR1Ge+goOcdwGpHGdl4c4Pkyr6gesdLIDwpE4
sf5ea0XB23JqTDU2e7AusUzTwc4coUGPrrOBTVJI2NSJSS/eUEiGUMhUBYOTtcbnJEnHQb
Nw0sDi+8gqFLdJU6pl7NFWt8HrRKCU4g86DGO9Ym5j2MJNw3looFPjr4eNqbd0Xvnh3Hes
bXTcDO+fT9vceJx/fT4ulE23GLiT5B0Pir8uVGaytKXTRLjBx9op7NrsvxYABQ2Z8Kp4Ck
nTpTU75OikmKTNPltPk5sfIN5SAd0HWPAAAAB3NvY2lhbHMAAAAAAAAABnNoYTUxMgAAAh
QAAAAMcnNhLXNoYTItNTEyAAACAHLoLzpT0ArzK3eLg3bA921wrf3Pcoxye3735O7zbOOK
jRoGgdprpXg5S5IkxEW/FARGlFX4G9nr+OTduNhBLRWwxcvRCYgGk2iRMydHzaslK0tAtN
tz+uT5kxn+7Iky0oGvYhgXXYtbjV4QSyu6Og5VpDCluEj8c9mZx/y3/FEBfIdFSok9IqY1
FyD7o20/pe/ZUnC90gR610F6uN67pp5NIuyFb1efnKVip99Ti3+zJ8QV/2YIyvcn+olRMj
CoLARgxf+VMg0B+KVnT2rbSnxarG46ttl2YUPAPMgS8/P1RlrTk9bVvx6XD08R5xEcnv7o
wS9iKxaBCHan8Wm7C5DpDmHYupQ/fj10b4ZIddf28JCPuCciHD4fvITa/ImMKTN+UqPWgO
rBNk92TAE/ByaWcfhJDmvH4wi7HWaaumrFktN7CH1XKcYcKPlzALExAj6BtHCMWyQpgiiu
VmS5IF/Q5nIDJ1ZOcUNlM3/joYcxXbMa5ZutRvJMnj08wLDweI6I6Q3S8gqY/nTRSwFfjV
93VEI5Yso5mCZp16+vCegn90NlQ6jCPxc1HdytQFpcjPuQbMLdzxQpZ1WE62SoVhzVuLTn
YpQLFsegssSDM/A1z54dgN9HI8lRNW8cxXXLKSIjDTYnk3W5dUaqW/JCttPmDcUd16YT8r
JPPjuDt7Fb
-----END SSH SIGNATURE-----
```
Then run:
```
ssh-keygen -Y verify -f /path/to/saved/key -I naomi@nhcarrigan.com -n socials -s /path/to/saved/signature < /path/to/saved/list
```
</details>
:::
## 1. Support and Communication Channels ## 1. Support and Communication Channels
### 1.1 Public Support Channels ### 1.1 Public Support Channels
@ -46,27 +94,13 @@ Below, you'll find a comprehensive list of our official communication platforms.
### 1.5 Contact Form ### 1.5 Contact Form
We offer a [contact form](https://forms.nhcarrigan.com/contact) for direct, low-priority communication requests. We offer a [contact form](https://forms.nhcarrigan.com/form/HyqoJ9Th5QDiOn_GPLNIRhe1a5ON7mDQf-O_ukM6R4g) for direct, low-priority communication requests.
It is often faster to reach out through one of the above platforms, and best to consider this contact form as a backup in the event of a severe outage. It is often faster to reach out through one of the above platforms, and best to consider this contact form as a backup in the event of a severe outage.
## 2. Communication Platforms ## 2. Communication Platforms
### 2.1 IRC ### 2.1. Forum
Our custom IRC network allows for real-time communication with your fellow community members.
:::note
We do not have an IRC bouncer. The only people who will see your messages are the ones who are online when it is sent.
:::
- Join Link: https://irc.nhcarrigan.com
- Features:
- Fastest response times
- Multiple topic-specific channels
- Best for: Quick support, community discussions, and live collaboration
### 2.2. Forum
Our self-hosted forum allows for more long-form communication, which is ideal for support queries and in-depth conversations. Our self-hosted forum allows for more long-form communication, which is ideal for support queries and in-depth conversations.
@ -77,21 +111,7 @@ Our self-hosted forum allows for more long-form communication, which is ideal fo
- Persistent and indexed posts - Persistent and indexed posts
- Best for: Support queries - Best for: Support queries
### 2.3. Fediverse ### 2.2. Code Repositories
We self-host a fediverse instance for our random thoughts.
:::caution
The instance is invite-only and invites are reserved for our core team and polycule. But you can follow and engage with any Mastodon-compliant instance!
:::
- Link: https://fedi.nhcarrigan.com
- Features:
- Microblogging platform
- Likes + reposts
- Best for: General chatter
### 2.4. Code Repositories
Our code repositories are all self-hosted. Sign-ups are open for anyone who wants to file an issue or comment on a discussion, but making code contributions is restricted to our core team. Our code repositories are all self-hosted. Sign-ups are open for anyone who wants to file an issue or comment on a discussion, but making code contributions is restricted to our core team.
@ -101,17 +121,7 @@ Our code repositories are all self-hosted. Sign-ups are open for anyone who want
- Source code for all of our products - Source code for all of our products
- Best for: Filing tickets on our software. - Best for: Filing tickets on our software.
### 2.5 Matrix Server ### 2.3. Etiquette and Best Practices
We have a matrix server available for asynchronous chat.
- Link: https://matrix.nhcarrigan.com
- Features:
- Encrypted rooms and chats
- Discord-like experience.
- Best for: Sensitive discussions that need extra security.
### 2.6 Etiquette and Best Practices
- Please be respectful and follow the community guidelines on all platforms. - Please be respectful and follow the community guidelines on all platforms.
- Use appropriate channels or rooms for your queries to ensure the fastest response. - Use appropriate channels or rooms for your queries to ensure the fastest response.
@ -122,10 +132,10 @@ We have a matrix server available for asynchronous chat.
### 3.1 Announcements Page ### 3.1 Announcements Page
We have a dedicated page where we post all of our organisational updates. We have a dedicated forum category where we post all of our organisational updates.
- URL: https://announcements.nhcarrigan.com - URL: https://announcements.nhcarrigan.com
- Nature: This board is read-only. - Nature: You can reply to announcement threads to discuss the announcement.
- Content: - Content:
- Project updates and new releases - Project updates and new releases
- Important community announcements - Important community announcements
@ -201,11 +211,11 @@ When reaching out for professional reasons, please consider the following:
### 4.4 Services ### 4.4 Services
If you're interested in hiring us to perform some work for you, fill out the form at https://forms.nhcarrigan.com/commission. If you're interested in hiring us to perform some work for you, fill out the form at https://forms.nhcarrigan.com/form/XRlQjeu8CbMrTA-v0IPOxlUPEPitLKXTWg70UUCIORA.
### 4.5 Speaking Engagements and Events ### 4.5 Speaking Engagements and Events
If you're interested in having us speak at your event or contribute to your publication, fill out the form at https://forms.nhcarrigan.com/events. If you're interested in having us speak at your event or contribute to your publication, fill out the form at https://forms.nhcarrigan.com/form/Xqap3Q8hazzJd4Rrp9OOs9ip8Pa7C9zOVThlyFoPCbU.
### 4.6 Keeping Professional Connections Updated ### 4.6 Keeping Professional Connections Updated
@ -259,7 +269,7 @@ An in-depth, personalized session focused on long-term professional growth and s
### 5.4 How to Book a Session: ### 5.4 How to Book a Session:
- Complete the [meeting request form](https://forms.nhcarrigan.com/session) - Complete the [meeting request form](https://forms.nhcarrigan.com/form/uUKZiJSDm6847iDOlpZkD5QF7cAjoTbTm0F4T0EdW0I)
- Wait for an email to schedule a time - Wait for an email to schedule a time
- Once a time is agreed upon, you will receive an invoice via email. - Once a time is agreed upon, you will receive an invoice via email.
- The invoice MUST be paid at least 24 hours prior to your session. - The invoice MUST be paid at least 24 hours prior to your session.

View File

@ -54,6 +54,6 @@ For those seeking personalized guidance and skill development, we offer a full m
## 4. Ready to Get Started? ## 4. Ready to Get Started?
Submit a [meeting request](https://forms.nhcarrigan.com/session)! Submit a [commission request](https://forms.nhcarrigan.com/form/XRlQjeu8CbMrTA-v0IPOxlUPEPitLKXTWg70UUCIORA)!
Not sure which option is right for you? Feel free to contact us with any questions. We're excited to explore how we can help bring your ideas to life and contribute to your success! Not sure which option is right for you? Feel free to contact us with any questions. We're excited to explore how we can help bring your ideas to life and contribute to your success!

View File

@ -10,7 +10,7 @@ These Terms and Conditions (“Terms”) outline the Programme provided by NHCar
### 1.1. Enrolment ### 1.1. Enrolment
To enrol in the Programme, [fill out the application](https://forms.nhcarrigan.com/mentorship). To enrol in the Programme, [fill out the application](https://forms.nhcarrigan.com/form/gNv4NYZmdiMWpkUcnknII2yYCvnYNGAmabG5O5He9Mo).
## 2. Programme Services ## 2. Programme Services

View File

@ -26,7 +26,7 @@ Please note that incomplete or inadequately prepared appeals may be summarily di
To submit your appeal, please complete the form available at the following link: To submit your appeal, please complete the form available at the following link:
[Submit a Sanction Appeal](https://forms.nhcarrigan.com/appeal) [Submit a Sanction Appeal](https://forms.nhcarrigan.com/form/l3PC15yalSWjdZASTQvGo22q_uj_7OtXAhZdcW35ev8)
## 3. Important Disclaimers ## 3. Important Disclaimers

File diff suppressed because it is too large Load Diff

View File

@ -8,7 +8,7 @@ Unless explicitly stated otherwise in a separate written agreement, all position
## 2. Application Process ## 2. Application Process
If you feel ready to apply to join our team, please complete the [application form](https://nhcarrigan.com/apply). If you feel ready to apply to join our team, please complete the [application form](https://forms.nhcarrigan.com/form/PEpB3gA79gxP8wmfEf4zou96opkpUTjssTcaeYjhoi8).
## 3. Legal Disclaimer ## 3. Legal Disclaimer

View File

@ -1,7 +1,13 @@
:root { :root {
--primary-color: #db7093; --primary-color: #2a0a18;
--background-color: #ffefefee; --background-color: #ffb6c1ee;
--sl-color-text-accent: #db7093; --sl-color-text-accent: #2a0a18;
}
html[data-theme="dark"] {
--primary-color: #ffb6c1;
--background-color: #2a0a18ee;
--sl-color-text-accent: #ffb6c1;
} }
.main-frame::before { .main-frame::before {
@ -71,6 +77,10 @@ footer > div > p {
color: var(--primary-color) !important; color: var(--primary-color) !important;
} }
starlight-theme-select, starlight-theme-select > label {
color: var(--primary-color) !important;
}
.social-icons::after { .social-icons::after {
display: none; display: none;
} }
@ -92,3 +102,15 @@ footer > div > p {
color: var(--background-color) !important; color: var(--background-color) !important;
background-color: var(--primary-color) !important; background-color: var(--primary-color) !important;
} }
#extra-footer-content {
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-evenly;
}
#tree-nation-offset-website {
display: inline;
margin: 0 !important;
}

425
src/styles/theme-dark.json Normal file
View File

@ -0,0 +1,425 @@
{
"$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"
},
"tokenColors": [
{
"scope": [
"comment",
"punctuation.definition.comment"
],
"settings": {
"foreground": "#E5A3B5",
"fontStyle": "italic"
}
},
{
"scope": [
"string",
"string.quoted.single",
"string.quoted.double",
"string.quoted.triple",
"string.template",
"constant.character",
"constant.other.symbol"
],
"settings": {
"foreground": "#FF69B4"
}
},
{
"scope": [
"constant.numeric",
"constant.language",
"constant.character.escape",
"constant.other",
"support.constant"
],
"settings": {
"foreground": "#C96385"
}
},
{
"scope": [
"variable",
"variable.other",
"variable.parameter",
"variable.language",
"variable.object.property"
],
"settings": {
"foreground": "#D87093"
}
},
{
"scope": [
"keyword",
"keyword.control",
"keyword.operator",
"keyword.other",
"storage.type",
"storage.modifier",
"punctuation.decorator"
],
"settings": {
"foreground": "#E35A8F"
}
},
{
"scope": [
"entity.name.function",
"entity.name.method",
"support.function",
"meta.function-call",
"meta.method-call",
"meta.function.dart"
],
"settings": {
"foreground": "#D45A88"
}
},
{
"scope": [
"entity.name.type",
"entity.name.class",
"entity.name.struct",
"entity.name.enum",
"entity.name.union",
"entity.name.trait",
"entity.name.interface",
"support.class",
"support.type",
"meta.return-type"
],
"settings": {
"foreground": "#FF77A8",
"fontStyle": "bold"
}
},
{
"scope": [
"meta.decorator",
"meta.annotation",
"punctuation.definition.annotation"
],
"settings": {
"foreground": "#C96385"
}
},
{
"scope": [
"entity.name.tag",
"punctuation.definition.tag"
],
"settings": {
"foreground": "#E35A8F"
}
},
{
"scope": [
"entity.other.attribute-name",
"entity.other.attribute-name.html",
"entity.other.attribute-name.css",
"support.type.property-name.css",
"entity.other.attribute-name.class"
],
"settings": {
"foreground": "#FF77A8"
}
},
{
"scope": [
"support.type.primitive",
"support.type.builtin",
"keyword.type",
"storage.type.primitive",
"storage.type.built-in",
"support.type.primitive.dart"
],
"settings": {
"foreground": "#FF77A8"
}
},
{
"scope": [
"string.regexp",
"constant.character.escape.regex"
],
"settings": {
"foreground": "#FF69B4"
}
},
{
"scope": [
"markup.heading",
"entity.name.section"
],
"settings": {
"foreground": "#D45A88",
"fontStyle": "bold"
}
},
{
"scope": [
"markup.bold"
],
"settings": {
"fontStyle": "bold"
}
},
{
"scope": [
"markup.italic"
],
"settings": {
"fontStyle": "italic"
}
},
{
"scope": [
"markup.inline.raw",
"markup.fenced_code",
"markup.raw"
],
"settings": {
"foreground": "#FF69B4"
}
},
{
"scope": [
"support.type.property-name.json",
"support.type.property-name.jsonc"
],
"settings": {
"foreground": "#FF77A8"
}
},
{
"scope": [
"keyword.operator.expression",
"keyword.operator.new",
"keyword.operator.optional",
"keyword.operator.comparison",
"keyword.operator.arithmetic",
"keyword.operator.assignment",
"keyword.operator.logical"
],
"settings": {
"foreground": "#E35A8F"
}
},
{
"scope": [
"meta.embedded",
"source.groovy.embedded",
"meta.template.expression"
],
"settings": {
"foreground": "#D87093"
}
},
{
"scope": [
"meta.object-literal.key",
"variable.object.property",
"variable.other.property",
"variable.other.object.property"
],
"settings": {
"foreground": "#FF77A8"
}
},
{
"scope": [
"support.variable.property",
"support.variable.object.process",
"support.variable.object.node"
],
"settings": {
"foreground": "#FF77A8"
}
},
{
"scope": [
"source.rust storage.type.rust",
"source.rust entity.name.type.rust",
"source.rust entity.name.type.struct.rust"
],
"settings": {
"foreground": "#FF77A8"
}
},
{
"scope": [
"source.rust keyword.operator",
"source.rust keyword.operator.arithmetic",
"source.rust keyword.operator.logical"
],
"settings": {
"foreground": "#E35A8F"
}
},
{
"scope": [
"source.python support.type.python",
"source.python support.function.builtin.python"
],
"settings": {
"foreground": "#D45A88"
}
},
{
"scope": [
"source.cs entity.name.type.class.cs",
"source.cs storage.type.cs"
],
"settings": {
"foreground": "#FF77A8"
}
},
{
"scope": [
"source.dart support.class.dart",
"source.dart support.type.dart"
],
"settings": {
"foreground": "#FF77A8"
}
},
{
"scope": [
"source.prisma keyword.operator",
"source.prisma constant.language",
"source.prisma keyword.type"
],
"settings": {
"foreground": "#E35A8F"
}
},
{
"scope": [
"source.graphql support.type",
"source.graphql constant.character"
],
"settings": {
"foreground": "#FF77A8"
}
},
{
"scope": [
"source.sql keyword.other",
"source.sql storage.type"
],
"settings": {
"foreground": "#E35A8F"
}
},
{
"scope": [
"meta.jsx.children",
"meta.embedded.block.tsx",
"meta.embedded.block.jsx"
],
"settings": {
"foreground": "#D87093"
}
},
{
"scope": [
"meta.decorator.ts",
"meta.decorator.tsx",
"meta.decorator.angular"
],
"settings": {
"foreground": "#C96385"
}
},
{
"scope": "ref.matchtext",
"settings": {
"foreground": "#FFFFFF"
}
},
{
"scope": "token.info-token",
"settings": {
"foreground": "#6796E6"
}
},
{
"scope": "token.warn-token",
"settings": {
"foreground": "#CD9731"
}
},
{
"scope": "token.error-token",
"settings": {
"foreground": "#F44747"
}
},
{
"scope": "token.debug-token",
"settings": {
"foreground": "#B267E6"
}
}
]
}

419
src/styles/theme.json Normal file
View File

@ -0,0 +1,419 @@
{
"$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"
},
"tokenColors": [
{
"scope": [
"comment",
"punctuation.definition.comment"
],
"settings": {
"foreground": "#E5A3B5",
"fontStyle": "italic"
}
},
{
"scope": [
"string",
"string.quoted.single",
"string.quoted.double",
"string.quoted.triple",
"string.template",
"constant.character",
"constant.other.symbol"
],
"settings": {
"foreground": "#FF69B4"
}
},
{
"scope": [
"constant.numeric",
"constant.language",
"constant.character.escape",
"constant.other",
"support.constant"
],
"settings": {
"foreground": "#C96385"
}
},
{
"scope": [
"variable",
"variable.other",
"variable.parameter",
"variable.language",
"variable.object.property"
],
"settings": {
"foreground": "#D87093"
}
},
{
"scope": [
"keyword",
"keyword.control",
"keyword.operator",
"keyword.other",
"storage.type",
"storage.modifier",
"punctuation.decorator"
],
"settings": {
"foreground": "#E35A8F"
}
},
{
"scope": [
"entity.name.function",
"entity.name.method",
"support.function",
"meta.function-call",
"meta.method-call",
"meta.function.dart"
],
"settings": {
"foreground": "#D45A88"
}
},
{
"scope": [
"entity.name.type",
"entity.name.class",
"entity.name.struct",
"entity.name.enum",
"entity.name.union",
"entity.name.trait",
"entity.name.interface",
"support.class",
"support.type",
"meta.return-type"
],
"settings": {
"foreground": "#FF77A8",
"fontStyle": "bold"
}
},
{
"scope": [
"meta.decorator",
"meta.annotation",
"punctuation.definition.annotation"
],
"settings": {
"foreground": "#C96385"
}
},
{
"scope": [
"entity.name.tag",
"punctuation.definition.tag"
],
"settings": {
"foreground": "#E35A8F"
}
},
{
"scope": [
"entity.other.attribute-name",
"entity.other.attribute-name.html",
"entity.other.attribute-name.css",
"support.type.property-name.css",
"entity.other.attribute-name.class"
],
"settings": {
"foreground": "#FF77A8"
}
},
{
"scope": [
"support.type.primitive",
"support.type.builtin",
"keyword.type",
"storage.type.primitive",
"storage.type.built-in",
"support.type.primitive.dart"
],
"settings": {
"foreground": "#FF77A8"
}
},
{
"scope": [
"string.regexp",
"constant.character.escape.regex"
],
"settings": {
"foreground": "#FF69B4"
}
},
{
"scope": [
"markup.heading",
"entity.name.section"
],
"settings": {
"foreground": "#D45A88",
"fontStyle": "bold"
}
},
{
"scope": [
"markup.bold"
],
"settings": {
"fontStyle": "bold"
}
},
{
"scope": [
"markup.italic"
],
"settings": {
"fontStyle": "italic"
}
},
{
"scope": [
"markup.inline.raw",
"markup.fenced_code",
"markup.raw"
],
"settings": {
"foreground": "#FF69B4"
}
},
{
"scope": [
"support.type.property-name.json",
"support.type.property-name.jsonc"
],
"settings": {
"foreground": "#FF77A8"
}
},
{
"scope": [
"keyword.operator.expression",
"keyword.operator.new",
"keyword.operator.optional",
"keyword.operator.comparison",
"keyword.operator.arithmetic",
"keyword.operator.assignment",
"keyword.operator.logical"
],
"settings": {
"foreground": "#E35A8F"
}
},
{
"scope": [
"meta.embedded",
"source.groovy.embedded",
"meta.template.expression"
],
"settings": {
"foreground": "#D87093"
}
},
{
"scope": [
"meta.object-literal.key",
"variable.object.property",
"variable.other.property",
"variable.other.object.property"
],
"settings": {
"foreground": "#FF77A8"
}
},
{
"scope": [
"support.variable.property",
"support.variable.object.process",
"support.variable.object.node"
],
"settings": {
"foreground": "#FF77A8"
}
},
{
"scope": [
"source.rust storage.type.rust",
"source.rust entity.name.type.rust",
"source.rust entity.name.type.struct.rust"
],
"settings": {
"foreground": "#FF77A8"
}
},
{
"scope": [
"source.rust keyword.operator",
"source.rust keyword.operator.arithmetic",
"source.rust keyword.operator.logical"
],
"settings": {
"foreground": "#E35A8F"
}
},
{
"scope": [
"source.python support.type.python",
"source.python support.function.builtin.python"
],
"settings": {
"foreground": "#D45A88"
}
},
{
"scope": [
"source.cs entity.name.type.class.cs",
"source.cs storage.type.cs"
],
"settings": {
"foreground": "#FF77A8"
}
},
{
"scope": [
"source.dart support.class.dart",
"source.dart support.type.dart"
],
"settings": {
"foreground": "#FF77A8"
}
},
{
"scope": [
"source.prisma keyword.operator",
"source.prisma constant.language",
"source.prisma keyword.type"
],
"settings": {
"foreground": "#E35A8F"
}
},
{
"scope": [
"source.graphql support.type",
"source.graphql constant.character"
],
"settings": {
"foreground": "#FF77A8"
}
},
{
"scope": [
"source.sql keyword.other",
"source.sql storage.type"
],
"settings": {
"foreground": "#E35A8F"
}
},
{
"scope": [
"meta.jsx.children",
"meta.embedded.block.tsx",
"meta.embedded.block.jsx"
],
"settings": {
"foreground": "#D87093"
}
},
{
"scope": [
"meta.decorator.ts",
"meta.decorator.tsx",
"meta.decorator.angular"
],
"settings": {
"foreground": "#C96385"
}
},
{
"scope": "token.info-token",
"settings": {
"foreground": "#316BCD"
}
},
{
"scope": "token.warn-token",
"settings": {
"foreground": "#CD9731"
}
},
{
"scope": "token.error-token",
"settings": {
"foreground": "#CD3131"
}
},
{
"scope": "token.debug-token",
"settings": {
"foreground": "#800080"
}
}
]
}