10 Commits

Author SHA1 Message Date
4f05dbafbb feat: remove border radius from CTA avatar
Some checks failed
Code Analysis / SonarQube (push) Failing after 16s
Node.js CI / Lint and Test (push) Successful in 43s
2025-06-12 15:23:04 -07:00
934de19c1e release: v1.8.0
Some checks failed
Node.js CI / Lint and Test (push) Successful in 1m8s
Code Analysis / SonarQube (push) Failing after 1m21s
2025-05-31 17:39:55 -07:00
4a76b22119 feat: replace audio button with donate badge
Some checks failed
Code Analysis / SonarQube (push) Has been cancelled
Node.js CI / Lint and Test (push) Has been cancelled
2025-05-31 17:39:34 -07:00
542aef157a release: v1.7.0
Some checks failed
Node.js CI / Lint and Test (push) Successful in 1m18s
Code Analysis / SonarQube (push) Failing after 1m26s
2025-05-30 21:05:18 -07:00
2e72c34c2d feat: include google ads snippet 2025-05-30 21:04:38 -07:00
c9ae8804eb feat: remove video overlay
Some checks failed
Node.js CI / Lint and Test (push) Successful in 1m13s
Code Analysis / SonarQube (push) Failing after 1m24s
2025-05-08 16:55:33 -07:00
a5f17bb2eb feat: use logo in modalx
Some checks failed
Node.js CI / Lint and Test (push) Successful in 1m18s
Code Analysis / SonarQube (push) Failing after 1m28s
2025-05-08 16:54:00 -07:00
06e58752b9 release: v1.6.0
Some checks failed
Node.js CI / Lint and Test (push) Successful in 1m13s
Code Analysis / SonarQube (push) Failing after 1m22s
2025-04-04 15:06:21 -07:00
db4dcc3090 feat: track urls and page titles 2025-04-04 15:06:04 -07:00
53aa95c9c2 fix: tweak the colours a bit
Some checks failed
Node.js CI / Lint and Test (push) Successful in 1m12s
Code Analysis / SonarQube (push) Failing after 1m22s
2025-03-31 15:42:25 -07:00
2 changed files with 25 additions and 67 deletions

View File

@ -1,6 +1,6 @@
{ {
"name": "website-headers", "name": "website-headers",
"version": "1.5.0", "version": "1.8.0",
"description": "", "description": "",
"main": "index.js", "main": "index.js",
"type": "module", "type": "module",

View File

@ -24,7 +24,7 @@ const body = document.querySelector("body");
const title = document.querySelector("title"); const title = document.querySelector("title");
const description = document.querySelector(`meta[name="description"]`); const description = document.querySelector(`meta[name="description"]`);
const { href: url, hostname } = window.location; const { href: url, hostname, pathname } = window.location;
// #endregion // #endregion
@ -42,7 +42,7 @@ openGraphDescription.setAttribute("property", "og:description");
openGraphDescription.setAttribute( openGraphDescription.setAttribute(
"content", "content",
description?.getAttribute("content") description?.getAttribute("content")
// eslint-disable-next-line stylistic/max-len // eslint-disable-next-line stylistic/max-len -- big boi string
?? "We are a software engineering and community management consulting firm.", ?? "We are a software engineering and community management consulting firm.",
); );
const openGraphImage = document.createElement("meta"); const openGraphImage = document.createElement("meta");
@ -75,7 +75,7 @@ twitterDescription.setAttribute("name", "twitter:description");
twitterDescription.setAttribute( twitterDescription.setAttribute(
"content", "content",
description?.getAttribute("content") description?.getAttribute("content")
// eslint-disable-next-line stylistic/max-len // eslint-disable-next-line stylistic/max-len -- big boi string
?? "We are a software engineering and community management consulting firm.", ?? "We are a software engineering and community management consulting firm.",
); );
const twitterImage = document.createElement("meta"); const twitterImage = document.createElement("meta");
@ -112,8 +112,8 @@ styles.innerHTML = `
} }
:root { :root {
--foreground: #db7093; --foreground: #2a0a18;
--background: #ffefefbb; --background: #ffb6c1bb;
} }
* { * {
@ -152,7 +152,7 @@ main {
width: 95%; width: 95%;
max-width: 1080px; max-width: 1080px;
margin: auto; margin: auto;
margin-bottom: 105px; margin-bottom: 85px;
padding: 10px; padding: 10px;
} }
footer { footer {
@ -161,7 +161,7 @@ footer {
background-color: var(--background); background-color: var(--background);
position: fixed; position: fixed;
bottom: 0; bottom: 0;
height: 95px; height: 75px;
padding: 0 10px; padding: 0 10px;
} }
#footer-inner-container { #footer-inner-container {
@ -191,39 +191,13 @@ a {
align-items: center; align-items: center;
} }
.is-dark { .is-dark {
--foreground: #ffefef; --foreground: #ffb6c1;
--background: #db7093bb; --background: #2a0a18bb;
}
@media screen and (prefers-reduced-motion) {
#footer-badge-container {
display: none;
}
footer, #footer-inner-container {
height: 75px;
justify-content: space-around;
}
main {
margin-bottom: 85px;
}
}
@media screen and (max-width: 1225px) {
#footer-badge-container {
grid-template-columns: repeat(4, 1fr);
}
footer {
height: 120px;
}
main {
margin-bottom: 130px;
}
} }
@media screen and (max-width: 625px) { @media screen and (max-width: 625px) {
#tree-nation-offset-website { #tree-nation-offset-website {
display: none; display: none;
} }
#footer-badge-container {
display: none;
}
footer, #footer-inner-container { footer, #footer-inner-container {
height: 50px; height: 50px;
justify-content: space-around; justify-content: space-around;
@ -240,16 +214,6 @@ a {
const footer = document.createElement("footer"); const footer = document.createElement("footer");
footer.innerHTML = ` footer.innerHTML = `
<div id="footer-badge-container">
<img src="https://cdn.nhcarrigan.com/blinkies/bigots.gif" alt="no bigots allowed"/>
<img src="https://cdn.nhcarrigan.com/blinkies/blm.gif" alt="black lives matter"/>
<img src="https://cdn.nhcarrigan.com/blinkies/miku.gif" alt="miku fan!!!"/>
<img src="https://cdn.nhcarrigan.com/blinkies/neuro.gif" alt="neurodivergent pride"/>
<img src="https://cdn.nhcarrigan.com/blinkies/palestine.gif" alt="free palestine"/>
<img src="https://cdn.nhcarrigan.com/blinkies/technomancer.gif" alt="technomancer"/>
<img src="https://cdn.nhcarrigan.com/blinkies/trans.gif" alt="trans rights!!!"/>
<img src="https://cdn.nhcarrigan.com/blinkies/ukraine.gif" alt="glory to ukraine"/>
</div>
<div id="footer-inner-container"> <div id="footer-inner-container">
<p>&copy; Naomi Carrigan</p> <p>&copy; Naomi Carrigan</p>
<a href="https://chat.nhcarrigan.com" target="_blank" rel="noreferrer"> <a href="https://chat.nhcarrigan.com" target="_blank" rel="noreferrer">
@ -258,29 +222,13 @@ footer.innerHTML = `
<button id="theme-select-button" type="button"> <button id="theme-select-button" type="button">
<i id="theme-select-icon" class="fa-solid fa-moon"></i> <i id="theme-select-icon" class="fa-solid fa-moon"></i>
</button> </button>
<button id="audio-theme-button" type="button"> <a href="https://buy.stripe.com/cN24iTfqu1j6b3afZ2" target="_blank" rel="noreferrer">
<i class="fa-solid fa-play"></i> <img src="https://cdn.nhcarrigan.com/donate.png" alt="Donate" style="width: 70px; height: 70px;">
</button> </a>
<div id="tree-nation-offset-website"></div> <div id="tree-nation-offset-website"></div>
</div> </div>
`; `;
const videoOverlay = document.createElement("video");
videoOverlay.autoplay = true;
videoOverlay.loop = true;
videoOverlay.muted = true;
videoOverlay.playsInline = true;
videoOverlay.src = "https://cdn.nhcarrigan.com/overlay.webm";
videoOverlay.style.pointerEvents = "none";
videoOverlay.style.position = "fixed";
videoOverlay.style.top = "0";
videoOverlay.style.left = "0";
videoOverlay.style.opacity = "0.25";
videoOverlay.style.width = "100vw";
videoOverlay.style.height = "100vh";
videoOverlay.style.objectFit = "cover";
videoOverlay.style.zIndex = "10000";
// #endregion // #endregion
// #region Scripts // #region Scripts
@ -314,6 +262,10 @@ analytics.setAttribute("domain", "nhcarrigan.com");
analytics.src analytics.src
// eslint-disable-next-line stylistic/max-len // eslint-disable-next-line stylistic/max-len
= "https://analytics.nhcarrigan.com/js/script.file-downloads.hash.outbound-links.pageview-props.revenue.tagged-events.js"; = "https://analytics.nhcarrigan.com/js/script.file-downloads.hash.outbound-links.pageview-props.revenue.tagged-events.js";
analytics.setAttribute("event-domain", hostname);
analytics.setAttribute("data-domain", "nhcarrigan.com");
analytics.setAttribute("event-page", title?.innerText ?? "Unknown Page");
analytics.setAttribute("event-path", pathname);
const analytics2 = document.createElement("script"); const analytics2 = document.createElement("script");
analytics2.innerHTML = ` analytics2.innerHTML = `
window.plausible = window.plausible ?? window.plausible = window.plausible ??
@ -321,6 +273,12 @@ function() {
(window.plausible.q = window.plausible.q ?? []).push(arguments) (window.plausible.q = window.plausible.q ?? []).push(arguments)
} }
`; `;
const googleAdsense = document.createElement("script");
googleAdsense.async = true;
googleAdsense.src
// eslint-disable-next-line stylistic/max-len -- big boi string
= "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3569924701890974";
googleAdsense.setAttribute("crossorigin", "anonymous");
// #endregion // #endregion
@ -349,9 +307,9 @@ head?.appendChild(treeNation);
head?.appendChild(fontAwesome); head?.appendChild(fontAwesome);
head?.appendChild(analytics); head?.appendChild(analytics);
head?.appendChild(analytics2); head?.appendChild(analytics2);
head?.appendChild(googleAdsense);
body?.appendChild(footer); body?.appendChild(footer);
body?.appendChild(videoOverlay);
body?.appendChild(treeNationBottom); body?.appendChild(treeNationBottom);
// #endregion // #endregion
@ -426,7 +384,7 @@ cta.id = "community-cta";
cta.innerHTML = ` cta.innerHTML = `
<h1 autofocus>Hello~!</h1> <h1 autofocus>Hello~!</h1>
<div style="display: flex; justify-content: space-around; margin-bottom: 10px;"> <div style="display: flex; justify-content: space-around; margin-bottom: 10px;">
<img src="https://cdn.nhcarrigan.com/profile.png" alt="Naomi Carrigan" style="width: 100px; height: 100px; border-radius: 50%;"> <img src="https://cdn.nhcarrigan.com/logo.png" alt="NHCarrigan Logo" style="width: 100px; height: 100px;">
<p> <p>
Consider joining our community so you can keep up to date on all of our latest activities! Consider joining our community so you can keep up to date on all of our latest activities!
</p> </p>