From 266749bf1f8fd48e2884625e3c78cdf47ea0cc3e Mon Sep 17 00:00:00 2001 From: Artur Wojnar Date: Fri, 14 Aug 2026 14:46:12 +0200 Subject: [PATCH 1/3] feat: add privacy policy link to the footer --- .../docs-gesture-handler/docusaurus.config.js | 2 +- .../src/theme/Footer/index.js | 25 +++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 packages/docs-gesture-handler/src/theme/Footer/index.js diff --git a/packages/docs-gesture-handler/docusaurus.config.js b/packages/docs-gesture-handler/docusaurus.config.js index 13747c85e8..e8ee38668f 100644 --- a/packages/docs-gesture-handler/docusaurus.config.js +++ b/packages/docs-gesture-handler/docusaurus.config.js @@ -139,7 +139,7 @@ const config = { style: 'light', links: [], copyright: - 'All trademarks and copyrights belong to their respective owners.', + 'All trademarks and copyrights belong to their respective owners. Read about our ', }, prism: { additionalLanguages: ['bash', 'groovy'], diff --git a/packages/docs-gesture-handler/src/theme/Footer/index.js b/packages/docs-gesture-handler/src/theme/Footer/index.js new file mode 100644 index 0000000000..17398b7f45 --- /dev/null +++ b/packages/docs-gesture-handler/src/theme/Footer/index.js @@ -0,0 +1,25 @@ +import React, { useEffect } from 'react'; +import { Footer as TRexFooter } from '@swmansion/t-rex-ui'; + +const PRIVACY_POLICY_URL = 'https://swmansion.com/privacy/policy/'; + +export default function Footer(props) { + useEffect(() => { + const paragraph = document.querySelector('footer .footer__copyright p'); + if (!paragraph || paragraph.querySelector('[data-privacy-policy]')) { + return; + } + + paragraph.appendChild(document.createTextNode(' ')); + const link = document.createElement('a'); + link.href = PRIVACY_POLICY_URL; + link.target = '_blank'; + link.rel = 'noopener noreferrer'; + link.dataset.privacyPolicy = ''; + link.textContent = 'Privacy Policy'; + paragraph.appendChild(link); + paragraph.appendChild(document.createTextNode('.')); + }, []); + + return ; +} From 3b6ff30b427af7ec1af75f689cabb9b42a02cfee Mon Sep 17 00:00:00 2001 From: Artur Wojnar Date: Fri, 14 Aug 2026 14:46:30 +0200 Subject: [PATCH 2/3] fix: improve footer layout --- .../FooterBackground/styles.module.css | 16 +++---- .../src/css/overrides.css | 46 +++++++++++++++++++ 2 files changed, 54 insertions(+), 8 deletions(-) diff --git a/packages/docs-gesture-handler/src/components/FooterBackground/styles.module.css b/packages/docs-gesture-handler/src/components/FooterBackground/styles.module.css index 76e6a901f1..f27f4ba259 100644 --- a/packages/docs-gesture-handler/src/components/FooterBackground/styles.module.css +++ b/packages/docs-gesture-handler/src/components/FooterBackground/styles.module.css @@ -1,35 +1,35 @@ .moonContainer { position: relative; - margin-top: 106px; + margin-top: 122px; } [class*='footerLanding'] { - margin-top: -106px; + margin-top: -122px; } @media (max-width: 996px) { .moonContainer { - margin-top: 121px; + margin-top: 138px; } [class*='footerLanding'] { - margin-top: -121px; + margin-top: -138px; } } @media (max-width: 700px) { .moonContainer { - margin-top: 147px; + margin-top: 164px; } [class*='footerLanding'] { - margin-top: -147px; + margin-top: -164px; } } @media (max-width: 376px) { .moonContainer { - margin-top: 173px; + margin-top: 189px; } [class*='footerLanding'] { - margin-top: -173px; + margin-top: -189px; } } diff --git a/packages/docs-gesture-handler/src/css/overrides.css b/packages/docs-gesture-handler/src/css/overrides.css index 2f366e35f7..d7b896b441 100644 --- a/packages/docs-gesture-handler/src/css/overrides.css +++ b/packages/docs-gesture-handler/src/css/overrides.css @@ -208,3 +208,49 @@ button[class*='DocSearch-Button'] { [data-theme='light'] [class*='_badge_'][class*='_deprecated_'] { border-color: rgba(90, 100, 134, 0.26); } + +footer.footer { + --ifm-footer-padding-vertical: 35px; +} + +@media (max-width: 996px) { + footer.footer { + --ifm-footer-padding-vertical: 20px; + } +} + +@media (max-width: 768px) { + footer.footer { + --ifm-footer-padding-vertical: 15px; + } +} + +footer .footer__bottom [class*='footer__copyright'] { + justify-content: center; + padding-bottom: var(--swm-footer-copyright-padding-bottom); +} + +footer .footer__bottom [class*='footer__copyright'] p { + text-align: center; +} + +footer .footer__bottom [class*='footer__copyright'] p a[data-privacy-policy] { + color: inherit; + cursor: pointer; + text-decoration: none; +} + +footer + .footer__bottom + [class*='footer__copyright'] + p + a[data-privacy-policy]:hover { + color: inherit; + text-decoration: none; +} + +@media (max-width: 996px) { + footer .footer__bottom [class*='footer__copyright'] { + align-items: center; + } +} From 1a2214b970a34e782fb832cc8ea80ddffaf74eb1 Mon Sep 17 00:00:00 2001 From: Artur Wojnar Date: Tue, 18 Aug 2026 12:31:31 +0200 Subject: [PATCH 3/3] refactor: move privacy policy lead-in into Footer, remove noreferrer from pp link --- packages/docs-gesture-handler/docusaurus.config.js | 2 +- packages/docs-gesture-handler/src/theme/Footer/index.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/docs-gesture-handler/docusaurus.config.js b/packages/docs-gesture-handler/docusaurus.config.js index e8ee38668f..13747c85e8 100644 --- a/packages/docs-gesture-handler/docusaurus.config.js +++ b/packages/docs-gesture-handler/docusaurus.config.js @@ -139,7 +139,7 @@ const config = { style: 'light', links: [], copyright: - 'All trademarks and copyrights belong to their respective owners. Read about our ', + 'All trademarks and copyrights belong to their respective owners.', }, prism: { additionalLanguages: ['bash', 'groovy'], diff --git a/packages/docs-gesture-handler/src/theme/Footer/index.js b/packages/docs-gesture-handler/src/theme/Footer/index.js index 17398b7f45..408adcdb0d 100644 --- a/packages/docs-gesture-handler/src/theme/Footer/index.js +++ b/packages/docs-gesture-handler/src/theme/Footer/index.js @@ -10,11 +10,11 @@ export default function Footer(props) { return; } - paragraph.appendChild(document.createTextNode(' ')); + paragraph.appendChild(document.createTextNode(' Read about our ')); const link = document.createElement('a'); link.href = PRIVACY_POLICY_URL; link.target = '_blank'; - link.rel = 'noopener noreferrer'; + link.rel = 'noopener'; link.dataset.privacyPolicy = ''; link.textContent = 'Privacy Policy'; paragraph.appendChild(link);