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[][] = [