diff --git a/frontend/rabbi_gerzi/cypress/e2e/home.cy.ts b/frontend/rabbi_gerzi/cypress/e2e/home.cy.ts
index ed77143..bdeb13f 100644
--- a/frontend/rabbi_gerzi/cypress/e2e/home.cy.ts
+++ b/frontend/rabbi_gerzi/cypress/e2e/home.cy.ts
@@ -57,7 +57,8 @@ describe('homepage hero', () => {
it('uses Pilzno brand colors and typography tokens', () => {
cy.get('[data-cy="hero"]').then((heroElements) => {
const heroStyle = getComputedStyle(heroElements[0])
- const documentStyle = getComputedStyle(document.documentElement)
+ const appDocument = heroElements[0].ownerDocument
+ const documentStyle = getComputedStyle(appDocument.documentElement)
expect(documentStyle.getPropertyValue('--color-brand-purple').trim())
.to.equal('#2a1f3d')
diff --git a/frontend/rabbi_gerzi/index.html b/frontend/rabbi_gerzi/index.html
index 93c0fb1..62fd8a6 100644
--- a/frontend/rabbi_gerzi/index.html
+++ b/frontend/rabbi_gerzi/index.html
@@ -12,7 +12,7 @@
diff --git a/frontend/rabbi_gerzi/src/assets/global.css b/frontend/rabbi_gerzi/src/assets/global.css
index 759e690..c9ff3b7 100644
--- a/frontend/rabbi_gerzi/src/assets/global.css
+++ b/frontend/rabbi_gerzi/src/assets/global.css
@@ -1,14 +1,27 @@
:root {
- --color-cream: #f4efe1;
- --color-slate: #2b3f4e;
- --color-slate-dark: #213240;
- --color-olive: #5e6b4c;
- --color-text: #1f1f1f;
- --color-text-muted: #5a5a5a;
- --color-white: #ffffff;
- --color-border: #e6e1d2;
- --font-serif: 'Merriweather', Georgia, serif;
- --font-sans: 'Inter', system-ui, -apple-system, sans-serif;
+ --color-brand-purple: #2a1f3d;
+ --color-brand-purple-dark: #20182f;
+ --color-gold: #c9a84c;
+ --color-cream: #faf9f5;
+ --color-light-bg: #f5f2ec;
+ --color-body-text: #3d3530;
+ --color-text: var(--color-body-text);
+ --color-text-muted: #756b62;
+ --color-border: #ded6c8;
+ --color-white: var(--color-cream);
+ --color-slate: var(--color-brand-purple);
+ --color-slate-dark: var(--color-brand-purple-dark);
+ --color-olive: var(--color-gold);
+ --color-pillar-physical: #dce6d4;
+ --color-pillar-relationships: #e8d8d4;
+ --color-pillar-wisdom: #dbd6e8;
+ --color-pillar-guidance: #d0dce8;
+ --font-display: 'Cormorant Garamond', Georgia, serif;
+ --font-ui: 'Jost', system-ui, -apple-system, sans-serif;
+ --font-hebrew: 'Frank Ruhl Libre', serif;
+ --font-quote: 'Lora', Georgia, serif;
+ --font-serif: var(--font-display);
+ --font-sans: var(--font-ui);
}
* {
@@ -21,7 +34,7 @@ body {
padding: 0;
font-family: var(--font-sans);
color: var(--color-text);
- background: var(--color-white);
+ background: var(--color-cream);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
diff --git a/frontend/rabbi_gerzi/src/components/ElementParentLink.vue b/frontend/rabbi_gerzi/src/components/ElementParentLink.vue
index f105b68..9baafea 100644
--- a/frontend/rabbi_gerzi/src/components/ElementParentLink.vue
+++ b/frontend/rabbi_gerzi/src/components/ElementParentLink.vue
@@ -34,7 +34,7 @@ defineProps()
gap: 0.35rem;
min-height: 2.2rem;
padding: 0.35rem 0;
- color: var(--color-slate);
+ color: var(--color-brand-purple);
font-family: var(--font-sans);
font-size: 0.9rem;
font-weight: 600;
diff --git a/frontend/rabbi_gerzi/src/components/ElementSiblingNavigation.vue b/frontend/rabbi_gerzi/src/components/ElementSiblingNavigation.vue
index 7eaa976..56ba23f 100644
--- a/frontend/rabbi_gerzi/src/components/ElementSiblingNavigation.vue
+++ b/frontend/rabbi_gerzi/src/components/ElementSiblingNavigation.vue
@@ -127,8 +127,8 @@ function siblingElementAtOffset(offset: number): ChildElement | null {
.element-sibling-navigation__link:hover,
.element-sibling-navigation__link:focus-visible {
- border-color: var(--color-slate);
- color: var(--color-slate);
+ border-color: var(--color-brand-purple);
+ color: var(--color-brand-purple);
}
.element-sibling-navigation__link:focus-visible {
diff --git a/frontend/rabbi_gerzi/src/components/RichTextEditor.vue b/frontend/rabbi_gerzi/src/components/RichTextEditor.vue
index 7fef966..5f8f7ab 100644
--- a/frontend/rabbi_gerzi/src/components/RichTextEditor.vue
+++ b/frontend/rabbi_gerzi/src/components/RichTextEditor.vue
@@ -775,11 +775,11 @@ function deleteTable(): void {
overflow: hidden;
border: 1px solid var(--color-border);
border-radius: 4px;
- background: var(--color-white);
+ background: var(--color-cream);
}
.rich-text-editor:focus-within {
- border-color: var(--color-slate);
+ border-color: var(--color-brand-purple);
}
.rich-text-editor__toolbar {
@@ -789,7 +789,7 @@ function deleteTable(): void {
gap: 0.45rem;
padding: 0.55rem;
border-bottom: 1px solid var(--color-border);
- background: #fbfaf6;
+ background: var(--color-light-bg);
}
.rich-text-editor__select {
@@ -798,7 +798,7 @@ function deleteTable(): void {
border: 1px solid var(--color-border);
border-radius: 4px;
color: var(--color-text);
- background: var(--color-white);
+ background: var(--color-cream);
font-family: var(--font-sans);
font-size: 0.86rem;
}
@@ -808,7 +808,7 @@ function deleteTable(): void {
overflow: hidden;
border: 1px solid var(--color-border);
border-radius: 4px;
- background: var(--color-white);
+ background: var(--color-cream);
}
.rich-text-editor__button {
@@ -833,7 +833,7 @@ function deleteTable(): void {
.rich-text-editor__button:focus-visible,
.rich-text-editor__button--active {
color: var(--color-white);
- background: var(--color-slate);
+ background: var(--color-brand-purple);
outline: none;
}
@@ -844,7 +844,7 @@ function deleteTable(): void {
}
.rich-text-editor__content {
- background: var(--color-white);
+ background: var(--color-cream);
}
.rich-text-editor__content :deep(.rich-text-editor__surface) {
@@ -869,8 +869,8 @@ function deleteTable(): void {
.rich-text-editor__content :deep(h3),
.rich-text-editor__content :deep(h4) {
margin: 1.1rem 0 0.45rem;
- color: #2c2c2c;
- font-family: var(--font-serif);
+ color: var(--color-brand-purple);
+ font-family: var(--font-display);
font-weight: 500;
line-height: 1.25;
}
@@ -900,17 +900,19 @@ function deleteTable(): void {
.rich-text-editor__content :deep(blockquote) {
margin: 1rem 0;
padding: 0.1rem 0 0.1rem 1rem;
- border-left: 3px solid var(--color-olive);
+ border-left: 3px solid var(--color-gold);
color: var(--color-text-muted);
+ font-family: var(--font-quote);
+ font-style: italic;
}
.rich-text-editor__content :deep(mark) {
padding: 0 0.16em;
- background: #fff3a7;
+ background: rgb(201 168 76 / 28%);
}
.rich-text-editor__content :deep(a) {
- color: var(--color-slate);
+ color: var(--color-brand-purple);
font-weight: 600;
text-decoration: underline;
text-underline-offset: 0.16em;
@@ -943,7 +945,7 @@ function deleteTable(): void {
}
.rich-text-editor__content :deep(th) {
- background: #f6f3eb;
+ background: var(--color-light-bg);
font-weight: 700;
}
diff --git a/frontend/rabbi_gerzi/src/components/SiteFooter.vue b/frontend/rabbi_gerzi/src/components/SiteFooter.vue
index f2ea224..e32bd9b 100644
--- a/frontend/rabbi_gerzi/src/components/SiteFooter.vue
+++ b/frontend/rabbi_gerzi/src/components/SiteFooter.vue
@@ -17,11 +17,6 @@ interface ExternalFooterLink {
type FooterLink = RouteFooterLink | ExternalFooterLink
-const signatureImage = {
- src: '/assets/signature.png',
- alt: "R' Yehoshua Gerzi",
-}
-
const socialGlyphs: Record = {
YouTube: '▶',
Spotify: '♫',
@@ -43,7 +38,7 @@ const footerLinkColumns: FooterLink[][] = [
[
{
kind: 'external',
- label: 'Donate',
+ label: 'Invest in Pilzno',
linkAttributes: donateLinkAttributes,
},
{ kind: 'route', label: 'Contact', to: '/contact' },
@@ -55,7 +50,13 @@ const footerLinkColumns: FooterLink[][] = [