From 49f2c897079bed6e5aa88b86e81e95df83ecfb76 Mon Sep 17 00:00:00 2001 From: Polina Date: Fri, 17 Apr 2026 02:40:32 +0100 Subject: [PATCH 1/4] Styling changes --- .claude/settings.local.json | 7 + docs/index.mdx | 6 +- nav.config.js | 3 +- src/components/Clients/styles.module.scss | 6 +- src/components/Glossary/TermPreview.js | 17 +- .../Integrations/styles.module.scss | 22 ++- src/components/PageHeader/styles.module.scss | 19 ++- src/styles/components/_cards.scss | 28 ++-- src/styles/components/_checkbox.scss | 16 +- src/styles/components/_code.scss | 50 ++++-- src/styles/components/_doc-sidebar.scss | 31 +++- src/styles/components/_labels.scss | 25 ++- src/styles/components/_lists.scss | 33 ++-- src/styles/components/_navbar.scss | 14 +- src/styles/components/_read-next.scss | 6 +- src/styles/components/_scrollbar.scss | 9 +- src/styles/components/_search.scss | 18 +-- src/styles/components/_table.scss | 16 +- src/styles/components/_tabs.scss | 24 ++- src/styles/custom.scss | 116 ++++++++------ .../DocItem/Layout/Vote/styles.module.scss | 7 +- src/theme/GlossaryTerm/index.js | 150 ++++++++++++++++++ src/theme/GlossaryTerm/styles.module.css | 150 ++++++++++++++++++ static/img/meta/favicon-16x16.png | 4 +- static/img/meta/favicon-32x32.png | 4 +- static/img/meta/favicon-96x96.png | 4 +- static/img/meta/favicon.ico | Bin 4286 -> 172057 bytes static/img/meta/favicon.png | 4 +- static/logos/codat-docs-dark.png | 4 +- static/logos/codat-docs-light.png | 4 +- 30 files changed, 628 insertions(+), 169 deletions(-) create mode 100644 .claude/settings.local.json create mode 100644 src/theme/GlossaryTerm/index.js create mode 100644 src/theme/GlossaryTerm/styles.module.css diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 000000000..9f905b15c --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,7 @@ +{ + "permissions": { + "allow": [ + "WebFetch(domain:www.codat.io)" + ] + } +} diff --git a/docs/index.mdx b/docs/index.mdx index 6a5c31011..750d42cb9 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -10,12 +10,10 @@ tags: - Overview - Codat - Home -banner_title: Build deeper connections with business customers +banner_title: Banking on better data banner_image: "/img/banners/accounting-json.png" banner_text: - "Solve your small and middle-market business customers' problems with our - specialized solutions based on data sharing, AI insights, and domain - expertise." + "Codat is an advisory intelligence solution purpose-built for modern commercial banking that brings together specialized client and market data, forward-looking insights, and integrated workflows" pagination_next: null pagination_prev: null --- diff --git a/nav.config.js b/nav.config.js index 9ed362c34..ae89ac1d7 100644 --- a/nav.config.js +++ b/nav.config.js @@ -6,8 +6,7 @@ module.exports = { srcDark: `/logos/codat-docs-light.png`, href: "/", target: "_self", - width: 170, - height: 28, + width: 120, }, items: [ { diff --git a/src/components/Clients/styles.module.scss b/src/components/Clients/styles.module.scss index d851a2275..587e12af3 100644 --- a/src/components/Clients/styles.module.scss +++ b/src/components/Clients/styles.module.scss @@ -14,7 +14,11 @@ } .header { - color: #777; + color: rgba(24, 16, 58, 0.5); +} + +html[data-theme="dark"] .header { + color: rgba(236, 237, 229, 0.5); } .clientsList { diff --git a/src/components/Glossary/TermPreview.js b/src/components/Glossary/TermPreview.js index 5d418977b..294b22820 100644 --- a/src/components/Glossary/TermPreview.js +++ b/src/components/Glossary/TermPreview.js @@ -50,10 +50,19 @@ const Content = React.forwardRef(({ setContent, content, url, theme }, ref) => { const Tooltip = (props) => { const { children, pathName } = props; const [content, setContent] = useState(); + const [isInsideLink, setIsInsideLink] = useState(false); + const ref = React.useRef(null); const cleanSourcePath = pathName.replace(/\/$/, ""); const cleanLinkPath = pathName.replace(/\/docs/, ""); + useEffect(() => { + if (ref.current) { + const parent = ref.current.closest("a"); + setIsInsideLink(!!parent); + } + }, []); + return ( The fallback content to display on prerendering} @@ -70,9 +79,11 @@ const Tooltip = (props) => { /> } > - - {children} - + {isInsideLink ? ( + {children} + ) : ( + {children} + )} )} diff --git a/src/components/Integrations/styles.module.scss b/src/components/Integrations/styles.module.scss index af8ab5852..ed89d3a92 100644 --- a/src/components/Integrations/styles.module.scss +++ b/src/components/Integrations/styles.module.scss @@ -14,21 +14,22 @@ } .integration { - border: 1px solid #eee; - border-radius: 4px; - padding: 0.5em; - display: flex; flex-direction: column; margin: 0 !important; - background-color: var(--token-primary-bg-c); - border: 2px solid var(--token-secondary-bg-c-alt); + background-color: rgba(224, 233, 209, 0.4); + border: 1px solid rgba(100, 130, 167, 0.3); box-shadow: none; padding: 1em; border-radius: 8px; font-size: 0.9em !important; + html[data-theme="dark"] & { + background-color: rgba(236, 237, 229, 0.05); + border-color: rgba(236, 237, 229, 0.15); + } + > div:first-child { display: flex; flex-direction: row; @@ -51,13 +52,18 @@ } .search { - background-color: var(--token-primary-bg-c); - border: 2px solid var(--token-secondary-bg-c-alt); + background-color: rgba(224, 233, 209, 0.4); + border: 1px solid rgba(100, 130, 167, 0.3); box-shadow: none; padding: 1.5em; border-radius: 8px; font-size: 0.9em !important; width: 100%; + + html[data-theme="dark"] & { + background-color: rgba(236, 237, 229, 0.05); + border-color: rgba(236, 237, 229, 0.15); + } } .header { diff --git a/src/components/PageHeader/styles.module.scss b/src/components/PageHeader/styles.module.scss index 544fbff72..d61406892 100644 --- a/src/components/PageHeader/styles.module.scss +++ b/src/components/PageHeader/styles.module.scss @@ -1,8 +1,8 @@ .wrapper { - --color-gradient-1: #442ee2; - --color-gradient-2: #110655; + --color-gradient-1: #21524F; + --color-gradient-2: #18103A; - background-color: var(--color-codat-primary); + background-color: var(--color-gradient-2); background-image: linear-gradient(270deg, var(--color-gradient-1) 0%, var(--color-gradient-2) 100%); overflow: hidden; display: flex; @@ -18,10 +18,21 @@ h1, p { - color: white; + color: #ECEDE5; + } + + h1, + h2, + h3, + h4, + h5, + h6 { + letter-spacing: normal; } p { + font-family: var(--heading-font); + font-size: 18px; line-height: 1.7em; } diff --git a/src/styles/components/_cards.scss b/src/styles/components/_cards.scss index 5ff64e97a..e97c8bd33 100644 --- a/src/styles/components/_cards.scss +++ b/src/styles/components/_cards.scss @@ -29,18 +29,26 @@ ul.card-container { &.col-3 { grid-template-columns: repeat(3, 1fr); - + p { font-size: 0.95em; } + + .card .header h3 { + font-size: 18px; + } } &.col-2 { grid-template-columns: repeat(2, 1fr); - + p { font-size: 0.98em; } + + .card .header h3 { + font-size: 18px; + } } &.mini { @@ -65,12 +73,12 @@ ul.card-container { html[data-theme="light"] { .card { - background-color: var(--token-primary-bg-c); - border: 2px solid var(--token-secondary-bg-c-alt); + background-color: rgba(224, 233, 209, 0.4); + border: 1px solid rgba(100, 130, 167, 0.3); &.dark { - background-color: #15095D; - color: white; + background-color: #18103A; + color: #ECEDE5; img { fill: white; @@ -78,7 +86,7 @@ html[data-theme="light"] { } a { - color: white; + color: #ECEDE5; } } } @@ -86,8 +94,8 @@ html[data-theme="light"] { html[data-theme="dark"] { .card { - background-color: var(--token-secondary-bg-c); - border: 2px solid var(--token-secondary-bg-c-alt); + background-color: rgba(236, 237, 229, 0.05); + border: 1px solid rgba(236, 237, 229, 0.15); } } @@ -134,6 +142,8 @@ html[data-theme="dark"] { h3 { font-size: 16px; + font-family: var(--heading-font); + font-weight: 200; } img + h3 { diff --git a/src/styles/components/_checkbox.scss b/src/styles/components/_checkbox.scss index a478efd87..94ffcfb4a 100644 --- a/src/styles/components/_checkbox.scss +++ b/src/styles/components/_checkbox.scss @@ -4,14 +4,14 @@ align-items: center; input[type=checkbox] { - --active: #275EFE; - --active-inner: #fff; - --focus: 2px rgba(39, 94, 254, .3); - --border: #BBC1E1; - --border-hover: #275EFE; - --background: #fff; - --disabled: #F6F8FF; - --disabled-inner: #E1E6F9; + --active: #18103A; + --active-inner: #ECEDE5; + --focus: 2px rgba(24, 16, 58, .3); + --border: rgba(24, 16, 58, 0.3); + --border-hover: #18103A; + --background: #ECEDE5; + --disabled: rgba(236, 237, 229, 0.5); + --disabled-inner: rgba(24, 16, 58, 0.2); -webkit-appearance: none; -moz-appearance: none; diff --git a/src/styles/components/_code.scss b/src/styles/components/_code.scss index 6b95c6880..f12a0deff 100644 --- a/src/styles/components/_code.scss +++ b/src/styles/components/_code.scss @@ -5,17 +5,23 @@ --code-block-line-height: 1.5; - --ifm-pre-color: var(--color-interface-core); - --ifm-code-background: var(--c-indigo-10); + --ifm-pre-color: #18103A; + --ifm-code-background: #18103A; } html[data-theme="light"] { - --code-block-bg-c: var(--color-interface-10); + --code-block-bg-c: rgba(224, 233, 209, 0.4); + --ifm-pre-background: rgba(224, 233, 209, 0.4); + --inline-code-bg-c: rgba(224, 233, 209, 0.5); + --inline-code-color: #18103A; --color-string: var(--color-warning-dark); } html[data-theme="dark"] { - --code-block-bg-c: var(--token-secondary-bg-c); + --inline-code-bg-c: rgba(224, 233, 209, 0.12); + --inline-code-color: #ECEDE5; + --code-block-bg-c: #18103A; + --ifm-pre-background: #18103A; --color-string: var(--color-warning-20); } @@ -23,6 +29,10 @@ html[data-theme="dark"] { color: var(--ifm-pre-color) !important; } +html[data-theme="dark"] .token-line { + color: #ECEDE5 !important; +} + .token.string { color: var(--color-string) !important; } @@ -30,10 +40,10 @@ html[data-theme="dark"] { :not(pre) > code { position: relative; margin-block-start: -0.125rem; - background-color: inherit; vertical-align: baseline; - background-color: var(--code-block-bg-c); + background-color: var(--inline-code-bg-c); + color: var(--inline-code-color); padding-block-start: 0.25rem; padding-block-end: 0.25rem; @@ -65,12 +75,24 @@ html[data-theme="dark"] { #__docusaurus { [class*="codeBlockContainer_"] { box-shadow: none; - border: 2px solid var(--token-secondary-bg-c-alt); + border: 1px solid rgba(236, 237, 229, 0.2); overflow: hidden; &:last-child { margin-bottom: 0; } + + pre { + background-color: #18103A !important; + } + + html[data-theme="light"] & { + border-color: #D1E100; + + pre { + background-color: rgba(224, 233, 209, 0.4) !important; + } + } } } @@ -119,12 +141,12 @@ pre[class*="language-"] { white-space: normal; } -/* Tomorrow Comment */ +/* Syntax tokens — tuned for Bedrock background */ .token.comment, .token.prolog, .token.doctype, .token.cdata { - color: #8c9296; + color: rgba(236, 237, 229, 0.45); } .token.punctuation { @@ -136,13 +158,13 @@ pre[class*="language-"] { } .token.tag { - color: #91c5ff; + color: #B2D4C7; } .token.tag.punctuation, .token.tag.class-name, .token.tag.punctuation + .token.tag:not(.attr-value):not([class*="language-"]) { - color: #2b90ff; + color: #7ebfae; } .token.property, @@ -151,7 +173,7 @@ pre[class*="language-"] { .token.number, .token.constant, .token.symbol { - color: #8454ff; + color: #8AAFD4; } .token.selector, @@ -159,7 +181,7 @@ pre[class*="language-"] { .token.function, .token.builtin, .token.inserted { - color: #ff6810; + color: #ffaa6e; } .token.operator, @@ -174,7 +196,7 @@ pre[class*="language-"] { } .token.atrule { - color: #ffbb01; + color: #D1E100; } .token.regex, diff --git a/src/styles/components/_doc-sidebar.scss b/src/styles/components/_doc-sidebar.scss index 99d055f6e..9a48bcfe3 100644 --- a/src/styles/components/_doc-sidebar.scss +++ b/src/styles/components/_doc-sidebar.scss @@ -5,7 +5,7 @@ --dropdown-icon-width: 0.625rem; --dropdown-icon-height: 0.375rem; - --dropdown-icon-gap: 0.688rem; + --dropdown-icon-gap: 1rem; --sidebar-vertical-gap: 0.6em; --sidebar-horizontal-gap: 0.5em; @@ -56,6 +56,15 @@ aside.theme-doc-sidebar-container { height: var(--ifm-navbar-height); padding-inline-start: var(--sidebar-spacing-horizontal); padding-inline-end: var(--sidebar-spacing-horizontal); + + .navbar__logo { + height: auto; + + img { + height: auto; + width: 120px; + } + } } } @@ -82,7 +91,8 @@ a[class^="sidebarLogo"] { .menu { hr { margin: 1em 0 !important; - opacity: 0.3; + opacity: 0.5; + border-top-width: 2px; } } @@ -116,11 +126,16 @@ a[class^="sidebarLogo"] { } .menu-item-section-header { - opacity: 0.5; margin-top: 1.5em; margin-bottom: 0.5em; - font-size: 0.85em; + font-size: 0.95em; + font-weight: 500; padding-left: 1rem; + color: rgba(24, 16, 58, 0.5); + + html[data-theme="dark"] & { + color: rgba(236, 237, 229, 0.5); + } } .menu__link--sublist-caret:after { @@ -184,10 +199,10 @@ a[class^="sidebarLogo"] { .menu__link { font-weight: 500; - line-height: 1em; /* identical to box height */ + line-height: 1em; display: flex; align-items: center; - letter-spacing: -0.01em; + letter-spacing: 0.02em; &, &:after { @@ -372,8 +387,8 @@ a[class^="sidebarLogo"] { &.top-level-item { > .menu__link, - > div > .menu__link { - font-weight: 600; + > div > .menu__link { + font-weight: 500; } } } diff --git a/src/styles/components/_labels.scss b/src/styles/components/_labels.scss index ac057da07..adc77b0e4 100644 --- a/src/styles/components/_labels.scss +++ b/src/styles/components/_labels.scss @@ -5,13 +5,13 @@ .label { font-size: 0.8em; + font-family: var(--sans-serif); padding: 0; outline: none; - border: none; appearance: none; - background: var(--token-secondary-bg-c-alt); - color: var(--ifm-heading-color); - border: 2px solid var(--token-secondary-bg-c-alt-dark); + background: #ECEDE5; + color: #18103A; + border: 1px solid rgba(24, 16, 58, 0.3); white-space: nowrap; border-radius: 4px; width: fit-content; @@ -22,12 +22,27 @@ &:not(:last-child) { margin-right: 0.5em; } + + html[data-theme="dark"] & { + background: rgba(236, 237, 229, 0.08); + color: #ECEDE5; + border-color: rgba(236, 237, 229, 0.2); + } } ul li .tag { + font-family: var(--sans-serif); margin-top: 0.5em; - background: var(--token-secondary-bg-c-alt); + background: #ECEDE5; + color: #18103A; + border: 1px solid rgba(24, 16, 58, 0.3); border-radius: 2px; width: fit-content; padding: 5px; + + html[data-theme="dark"] & { + background: rgba(236, 237, 229, 0.08); + color: #ECEDE5; + border-color: rgba(236, 237, 229, 0.2); + } } \ No newline at end of file diff --git a/src/styles/components/_lists.scss b/src/styles/components/_lists.scss index 1f00aefa9..2ae17aa3b 100644 --- a/src/styles/components/_lists.scss +++ b/src/styles/components/_lists.scss @@ -1,27 +1,27 @@ /* Lists */ -article .markdown > ol { +article .markdown ol { list-style: none; padding: 0em !important; margin: 2em 0 !important; } -article .markdown > ol:not([start]) { +article .markdown ol:not([start]) { counter-reset: li-counter; } -article .markdown > ol > li { +article .markdown ol > li { counter-increment: li-counter; margin-bottom: 1.5em !important; position: relative; margin-left: 3em; } -article .markdown > ol > li::before { +article .markdown ol > li::before { content: counter(li-counter); - color: var(--ifm-color-base); - background-color: var(--token-secondary-bg-c-alt); - font-weight: bold; + color: #18103A; + background-color: #E0E9D1; + font-weight: 500; border-radius: 50%; margin-right: 0.5em; font-family: monospace; @@ -36,10 +36,21 @@ article .markdown > ol > li::before { text-wrap: nowrap; } -article .markdown > ol ul, -article .markdown > ul ul, -article .markdown > ol ol, -article .markdown > ul ol { +html[data-theme="dark"] article .markdown ol > li::before { + color: #E0E9D1; + background-color: transparent; + border: 1.5px solid #E0E9D1; + box-sizing: border-box; + display: flex; + align-items: center; + justify-content: center; + padding: 0; +} + +article .markdown ol ul, +article .markdown ul ul, +article .markdown ol ol, +article .markdown ul ol { margin-top: 0.5em !important; } diff --git a/src/styles/components/_navbar.scss b/src/styles/components/_navbar.scss index 2b4986391..a24558fd9 100644 --- a/src/styles/components/_navbar.scss +++ b/src/styles/components/_navbar.scss @@ -1,6 +1,6 @@ html[data-theme="light"] { --navbar-link-c: var(--ifm-font-color-base); - --navbar-separator-bg-c: var(--c-indigo-40); + --navbar-separator-bg-c: rgba(24, 16, 58, 0.3); --ifm-dropdown-background-color: var(--token-primary-bg-c); --ifm-navbar-link-color: var(--color-codat-primary); @@ -13,7 +13,7 @@ html[data-theme="light"] { html[data-theme="dark"] { --navbar-link-c: var(--ifm-font-color-base); - --navbar-separator-bg-c: var(--c-carbon-80); + --navbar-separator-bg-c: rgba(236, 237, 229, 0.3); --button-border: var(--ifm-color-primary); --button-text: white; @@ -56,8 +56,8 @@ html[data-theme="dark"] { display: flex; align-items: center; padding: 0.375rem 0.625rem; - background: linear-gradient(90deg, #495fff 0%, #18c6ff 114.68%); - color: #fff; + background: #D1E100; + color: #18103A; border-radius: 200px; white-space: nowrap; font-weight: 600; @@ -302,6 +302,12 @@ html[data-theme="dark"] { color: white !important; } + &.secondary { + background: #D1E100 !important; + border-color: #D1E100 !important; + color: #18103A !important; + } + svg { display: none; } diff --git a/src/styles/components/_read-next.scss b/src/styles/components/_read-next.scss index 36beff950..80f136997 100644 --- a/src/styles/components/_read-next.scss +++ b/src/styles/components/_read-next.scss @@ -9,7 +9,11 @@ list-style-type: none; li { - border: 2px solid var(--token-secondary-bg-c-alt); + border: 2px solid rgba(100, 130, 167, 0.3); + + html[data-theme="dark"] & { + border-color: rgba(178, 212, 199, 0.4); + } background: var(--token-primary-bg-c); padding: 0.5em 1em; border-radius: 4px; diff --git a/src/styles/components/_scrollbar.scss b/src/styles/components/_scrollbar.scss index 2054d71d5..79051faa6 100644 --- a/src/styles/components/_scrollbar.scss +++ b/src/styles/components/_scrollbar.scss @@ -1,8 +1,13 @@ /* Scrollbar */ :root { - --scrollbar-track-color: #eef0f2; - --scrollbar-thumb-color: #bec2c9; + --scrollbar-track-color: #ECEDE5; + --scrollbar-thumb-color: rgba(24, 16, 58, 0.3); +} + +html[data-theme="dark"] { + --scrollbar-track-color: #18103A; + --scrollbar-thumb-color: rgba(236, 237, 229, 0.3); } ::-webkit-scrollbar { diff --git a/src/styles/components/_search.scss b/src/styles/components/_search.scss index bdaf14749..4049169d3 100644 --- a/src/styles/components/_search.scss +++ b/src/styles/components/_search.scss @@ -8,25 +8,25 @@ } html[data-theme="light"] { - --docsearch-searchbox-shadow: inset 0 0 0 1px var(--c-indigo-30); - - --search-keys-border-c: var(--c-indigo-20); + --docsearch-searchbox-shadow: none; + --search-keys-border-c: rgba(24, 16, 58, 0.2); .DocSearch-Button { &:hover { - --docsearch-searchbox-shadow: inset 0 0 0 1px var(--c-indigo-50); + border-color: rgba(24, 16, 58, 0.6) !important; } } } html[data-theme="dark"] { - --docsearch-searchbox-shadow: inset 0 0 0 1px var(--c-gray-90); - - --search-keys-border-c: var(--c-gray-80); + --docsearch-searchbox-shadow: none; + --search-keys-border-c: rgba(236, 237, 229, 0.2); .DocSearch-Button { + border-color: rgba(236, 237, 229, 0.3) !important; + &:hover { - --docsearch-searchbox-shadow: inset 0 0 0 1px var(--c-gray-70); + border-color: rgba(236, 237, 229, 0.6) !important; } } } @@ -59,7 +59,7 @@ html[data-theme="dark"] { .DocSearch-Button { width: 100%; box-shadow: var(--docsearch-searchbox-shadow); - border: 2px solid var(--token-secondary-bg-c-alt); + border: 2px solid rgba(24, 16, 58, 0.3); border-radius: 4px; height: 32px; font-family: var(--font-family); diff --git a/src/styles/components/_table.scss b/src/styles/components/_table.scss index 7b72a026d..cb8f43392 100644 --- a/src/styles/components/_table.scss +++ b/src/styles/components/_table.scss @@ -1,9 +1,8 @@ html[data-theme="light"] { - --ifm-table-border-color: var(--c-indigo-30); - --ifm-table-border-color: #ededed; - --ifm-table-header-color: var(--color-interface-10); - - --table-stripe: var(--color-interface-10); + --ifm-table-border-color: #E0E9D1; + --ifm-table-header-color: #E0E9D1; + --ifm-table-background: #ECEDE5; + --table-stripe: #F4F5F0; } html[data-theme="dark"] { @@ -44,6 +43,8 @@ table { th { text-align: start; + font-family: var(--heading-font); + font-weight: 200; } th, @@ -51,6 +52,11 @@ td { line-height: 1.6; } +td { + font-size: 16px; + font-weight: 300; +} + thead th:empty { display: none; } diff --git a/src/styles/components/_tabs.scss b/src/styles/components/_tabs.scss index 6312b927b..f20b6b28d 100644 --- a/src/styles/components/_tabs.scss +++ b/src/styles/components/_tabs.scss @@ -1,13 +1,15 @@ html[data-theme="light"] { --ifm-tabs-color: var(--c-indigo-90); --ifm-tabs-color-active: var(--c-carbon-100); - --tabs-border-c: var(--c-indigo-40); + --tabs-border-c: #E0E9D1; + --tabs-panel-border-c: #D1E100; } html[data-theme="dark"] { - --ifm-tabs-color: #fff; - --ifm-tabs-color-active: #fff; - --tabs-border-c: #fff; + --ifm-tabs-color: #ECEDE5; + --ifm-tabs-color-active: #ECEDE5; + --tabs-border-c: rgba(236, 237, 229, 0.2); + --tabs-panel-border-c: rgba(236, 237, 229, 0.2); } :root { @@ -27,7 +29,12 @@ html[data-theme="dark"] { > ul + div { border-radius: 4px; padding: 1em; - border: 1px solid #eee; + border: 1px solid var(--tabs-panel-border-c); + background-color: #F4F5F0; + + html[data-theme="dark"] & { + background-color: rgba(236, 237, 229, 0.06); + } } .tabs-container { @@ -46,7 +53,12 @@ html[data-theme="dark"] { } > div:nth-child(2) { - border: 2px solid var(--token-secondary-bg-c-alt); + border: 1px solid var(--tabs-panel-border-c); + background-color: #F4F5F0; + + html[data-theme="dark"] & { + background-color: rgba(236, 237, 229, 0.06); + } } } diff --git a/src/styles/custom.scss b/src/styles/custom.scss index bb8e4d9d3..f29aef941 100644 --- a/src/styles/custom.scss +++ b/src/styles/custom.scss @@ -49,19 +49,16 @@ @import '~@fortawesome/fontawesome-svg-core/styles.css'; -@import url("https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400;1,500;1,600;1,700;1,800&display=swap"); - -@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;600;700&family=Source+Serif+4:ital,opsz,wght@0,8..60,200..900;1,8..60,200..900&display=swap'); -/* 600 weight */ +@import url("https://fonts.googleapis.com/css2?family=Lexend:wght@200&family=Inter:wght@300;400;500&display=swap"); :root { // ------------- Colors - --color-black: #0d0d0d; + --color-black: #18103A; --color-interface-core: #556680; --color-interface-dark: #556680; - --color-interface-5: #f7fafd; + --color-interface-5: #ECEDE5; --color-interface-10: #f0f4fa; --color-interface-20: #e4ecf6; --color-interface-40: #BBCADD; @@ -86,9 +83,9 @@ --color-positive-20: #eaf6ed; --color-positive-dark: #004c00; - --color-codat-primary: #482deb; - --color-codat-primary-dark: #351dc6; - --color-link-primary: #482deb; + --color-codat-primary: #6482A7; + --color-codat-primary-dark: #4a6389; + --color-link-primary: #6482A7; --ifm-color-link: var(--color-codat-primary); --ifm-background-color: var(--token-primary-bg-c); @@ -96,23 +93,17 @@ // ------------ Fonts - --sans-serif: "Poppins", -apple-system, BlinkMacSystemFont, Inter, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI emoji"; - --serif: "Source Serif Pro", Iowan Old Style, Apple Garamond, Palatino Linotype, Times New Roman, "Droid Serif", Times, serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol; + --heading-font: "Lexend", Verdana, sans-serif; + --sans-serif: "Inter", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI emoji"; --mono: "SFMono-Regular", "Roboto Mono", Consolas, "Liberation Mono", Menlo, Courier, monospace; - - // Print best practice - //--ifm-font-family-base: var(--serif); - //--ifm-heading-font-family: var(--sans-serif); - //--ifm-font-family-monospace: var(--mono); - --ifm-font-family-base: var(--sans-serif); - // --ifm-heading-font-family: var(--serif); + --ifm-heading-font-family: var(--heading-font); --ifm-font-family-monospace: var(--mono); --ifm-font-color-base: var(--color-black); - --font-weight: 400; + --font-weight: 300; --font-weight-bold: 500; --ifm-menu-link-sublist-icon: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iNiIgdmlld0JveD0iMCAwIDEwIDYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik04Ljk5OTg4IDVMNC45OTk4OCAxTDAuOTk5ODc4IDUiIHN0cm9rZT0iIzAzMDYwQiIgc3Ryb2tlLXdpZHRoPSIxLjUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K"); @@ -140,7 +131,7 @@ } html[data-theme="light"] { - --token-primary-bg-c: #ffffff; + --token-primary-bg-c: #ECEDE5; --token-secondary-bg-c: var(--color-interface-5); --token-secondary-bg-c-alt: var(--color-interface-10); --token-secondary-bg-c-alt-dark: var(--color-interface-20); @@ -162,9 +153,9 @@ html[data-theme="light"] { --header-color: var(--color-black); --ifm-heading-color: var(--header-color); --sidebar-category-c: var(--header-color); - --ifm-heading-color: var(--c-carbon-100); + --ifm-heading-color: var(--color-black); --ifm-code-background: var(--c-indigo-10); - --ifm-font-color-base: var(--c-carbon-90); + --ifm-font-color-base: var(--color-black); //--ifm-font-color-base: var(--color-primary); --markdown-text-intro-c: var(--color-primary); } @@ -195,13 +186,13 @@ html[data-theme="dark"] { --color-surface-mixed-a40: #706c77; --color-surface-mixed-a50: #8b8890; - --token-primary-bg-c: #03060b; + --token-primary-bg-c: #18103A; --token-secondary-bg-c: #13171c; --token-secondary-bg-c-alt: #252c35; --token-secondary-bg-c-alt-dark: #303842; - --ifm-link-color: var(--color-primary-a50); - --ifm-link-hover-color: var(--color-primary-a40); + --ifm-link-color: #B2D4C7; + --ifm-link-hover-color: #c8e3d9; --color-primary: white; --ifm-color-primary: var(--color-codat-primary); @@ -212,8 +203,8 @@ html[data-theme="dark"] { --ifm-navbar-background-color: var(--token-primary-bg-c); --ifm-navbar-shadow: 0 1px 0 0 var(--c-gray-90); - --ifm-heading-color: #fff; - --ifm-font-color-base: var(--c-carbon-10); + --ifm-heading-color: #ECEDE5; + --ifm-font-color-base: #ECEDE5; --ifm-background-color: var(--token-primary-bg-c); --ifm-dropdown-background-color: var(--token-primary-bg-c); @@ -237,7 +228,9 @@ html { p { font-size: 16px; - letter-spacing: 0.2px; + font-weight: 300; + line-height: 150%; + letter-spacing: 0; } h1, @@ -246,10 +239,17 @@ h3, h4, h5, h6 { - font-weight: 500; + font-family: var(--heading-font); + font-weight: 200; + line-height: 122%; + letter-spacing: normal; text-wrap: balance; } +h1 { + letter-spacing: -1px; +} + a { text-decoration: none; @@ -360,6 +360,17 @@ hr { // right: 3em; // } +// Logo +.navbar__logo { + height: auto !important; + + img { + height: auto !important; + width: 120px !important; + object-fit: contain !important; + } +} + .theme-back-to-top-button { bottom: 13px !important; right: 12.5em !important; @@ -389,43 +400,44 @@ hr { padding: 5px 14px !important; font-size: 0.8125rem !important; font-weight: 500 !important; - color: #4b5563 !important; - background-color: #f3f4f6 !important; - border: 1px solid #e5e7eb !important; + color: rgba(24, 16, 58, 0.6) !important; + background-color: #E0E9D1 !important; + border: 1px solid #E0E9D1 !important; cursor: pointer !important; transition: all 0.15s ease !important; line-height: 1.4 !important; + letter-spacing: 0.04em !important; margin: 0 !important; } - + ul.tabs .tabs__item:hover:not(.tabs__item--active) { - background-color: #ede9fe !important; - color: #482deb !important; - border-color: #c4b5fd !important; + background-color: #eaf0df !important; + color: #18103A !important; + border-color: #D1E100 !important; } - + ul.tabs .tabs__item--active { - background-color: #482deb !important; - color: #ffffff !important; - border-color: #482deb !important; + background-color: #D1E100 !important; + color: #18103A !important; + border-color: #D1E100 !important; font-weight: 600 !important; } - + /* Dark mode */ [data-theme='dark'] ul.tabs .tabs__item { - color: #9ca3af !important; - background-color: #1f2937 !important; - border-color: #374151 !important; + color: rgba(236, 237, 229, 0.6) !important; + background-color: rgba(236, 237, 229, 0.08) !important; + border-color: rgba(236, 237, 229, 0.15) !important; } - + [data-theme='dark'] ul.tabs .tabs__item:hover:not(.tabs__item--active) { - background-color: #2e1f6b !important; - color: #a78bfa !important; - border-color: #5b3fd6 !important; + background-color: rgba(209, 225, 0, 0.15) !important; + color: #ECEDE5 !important; + border-color: #D1E100 !important; } - + [data-theme='dark'] ul.tabs .tabs__item--active { - background-color: #482deb !important; - color: #ffffff !important; - border-color: #482deb !important; + background-color: #D1E100 !important; + color: #18103A !important; + border-color: #D1E100 !important; } \ No newline at end of file diff --git a/src/theme/DocItem/Layout/Vote/styles.module.scss b/src/theme/DocItem/Layout/Vote/styles.module.scss index 40c619c80..47d093fba 100644 --- a/src/theme/DocItem/Layout/Vote/styles.module.scss +++ b/src/theme/DocItem/Layout/Vote/styles.module.scss @@ -4,11 +4,16 @@ } .voteHeader { - font-weight: bold; + font-weight: 400; + color: #18103A; margin-bottom: 1em; opacity: 0.75; } +html[data-theme="dark"] .voteHeader { + color: #ECEDE5; +} + .feedbackOptions { display: flex; text-align: center; diff --git a/src/theme/GlossaryTerm/index.js b/src/theme/GlossaryTerm/index.js new file mode 100644 index 000000000..e311f46a5 --- /dev/null +++ b/src/theme/GlossaryTerm/index.js @@ -0,0 +1,150 @@ +import React, { useMemo, useState, useRef, useEffect, useCallback } from 'react'; +import { usePluginData } from '@docusaurus/useGlobalData'; +import styles from './styles.module.css'; + +export default function GlossaryTerm({ term, definition, routePath = '/glossary', children }) { + const [showTooltip, setShowTooltip] = useState(false); + const [tooltipStyle, setTooltipStyle] = useState(null); + const [placement, setPlacement] = useState('top'); + const [isInsideLink, setIsInsideLink] = useState(false); + const wrapperRef = useRef(null); + const tooltipRef = useRef(null); + + // Check if this term is rendered inside an existing tag + useEffect(() => { + if (wrapperRef.current) { + const parentLink = wrapperRef.current.parentElement?.closest('a'); + setIsInsideLink(!!parentLink); + } + }, []); + + const updatePosition = useCallback(() => { + if (!wrapperRef.current || !tooltipRef.current) return; + const wrapperRect = wrapperRef.current.getBoundingClientRect(); + const tooltipRect = tooltipRef.current.getBoundingClientRect(); + + const viewportWidth = window.innerWidth; + const viewportHeight = window.innerHeight; + + const preferredGap = 8; + + const hasSpaceAbove = wrapperRect.top >= tooltipRect.height + preferredGap; + const hasSpaceBelow = viewportHeight - wrapperRect.bottom >= tooltipRect.height + preferredGap; + const nextPlacement = hasSpaceAbove || !hasSpaceBelow ? 'top' : 'bottom'; + + let top; + if (nextPlacement === 'top') { + top = wrapperRect.top - tooltipRect.height - preferredGap; + } else { + top = wrapperRect.bottom + preferredGap; + } + + const horizontalMargin = 8; + let left = wrapperRect.left + wrapperRect.width / 2 - tooltipRect.width / 2; + left = Math.max( + horizontalMargin, + Math.min(left, viewportWidth - tooltipRect.width - horizontalMargin) + ); + + setPlacement(nextPlacement); + setTooltipStyle({ top: Math.max(4, top), left }); + }, []); + + useEffect(() => { + if (!showTooltip) return; + + let rafId2; + const rafId1 = requestAnimationFrame(() => { + rafId2 = requestAnimationFrame(() => { + updatePosition(); + }); + }); + + const onScroll = () => updatePosition(); + const onResize = () => updatePosition(); + window.addEventListener('scroll', onScroll, true); + window.addEventListener('resize', onResize); + return () => { + cancelAnimationFrame(rafId1); + if (rafId2) cancelAnimationFrame(rafId2); + window.removeEventListener('scroll', onScroll, true); + window.removeEventListener('resize', onResize); + }; + }, [showTooltip, updatePosition]); + + const pluginData = usePluginData('docusaurus-plugin-glossary'); + const effectiveDefinition = useMemo(() => { + if (definition && typeof definition === 'string' && definition.length > 0) { + return definition; + } + const terms = (pluginData && pluginData.terms) || []; + const found = terms.find( + t => typeof t.term === 'string' && t.term.toLowerCase() === String(term).toLowerCase() + ); + return found && found.definition ? found.definition : undefined; + }, [definition, pluginData, term]); + + const effectiveRoutePath = useMemo(() => { + if (routePath && typeof routePath === 'string' && routePath.length > 0) return routePath; + return (pluginData && pluginData.routePath) || '/glossary'; + }, [pluginData, routePath]); + + const displayText = children || term; + const termId = term.toLowerCase().replace(/\s+/g, '-'); + + const tooltipContent = effectiveDefinition && ( + + {term} {effectiveDefinition} + + ); + + // If inside a link, render as span to avoid nested tags + if (isInsideLink) { + return ( + + setShowTooltip(true)} + onMouseLeave={() => setShowTooltip(false)} + onFocus={() => setShowTooltip(true)} + onBlur={() => setShowTooltip(false)} + aria-describedby={`tooltip-${termId}`} + > + {displayText} + + {tooltipContent} + + ); + } + + return ( + + setShowTooltip(true)} + onMouseLeave={() => setShowTooltip(false)} + onFocus={() => setShowTooltip(true)} + onBlur={() => setShowTooltip(false)} + aria-describedby={`tooltip-${termId}`} + > + {displayText} + + {tooltipContent} + + ); +} diff --git a/src/theme/GlossaryTerm/styles.module.css b/src/theme/GlossaryTerm/styles.module.css new file mode 100644 index 000000000..2e41bca60 --- /dev/null +++ b/src/theme/GlossaryTerm/styles.module.css @@ -0,0 +1,150 @@ +.glossaryTermWrapper { + position: relative; + display: inline; +} + +.glossaryTerm { + color: var(--ifm-font-color-base); + text-decoration: none; + border-bottom: 1px dotted; + border-bottom-color: color-mix(in srgb, var(--ifm-font-color-base) 20%, transparent); + cursor: help; + transition: all 0.2s; +} + +.glossaryTerm:hover { + color: var(--ifm-color-primary-dark); + border-bottom-style: solid; + border-bottom-color: var(--ifm-color-primary-dark); + border-bottom: none; +} + +/* When inside a hyperlink, inherit the link colour */ +a .glossaryTerm, +a .glossaryTermWrapper span.glossaryTerm { + color: inherit; + border-bottom-color: color-mix(in srgb, currentColor 30%, transparent); +} + +a .glossaryTerm:hover, +a .glossaryTermWrapper span.glossaryTerm:hover { + color: inherit; +} + +.tooltip { + position: absolute; + bottom: 100%; + left: 50%; + transform: translateX(-50%) translateY(-8px); + padding: 0.75rem 1rem; + background: var(--ifm-background-surface-color); + color: var(--ifm-font-color-base); + border: 1px solid var(--ifm-color-emphasis-300); + border-radius: 0.5rem; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); + font-size: 0.875rem; + font-weight: normal; + font-style: normal; + text-decoration: none; + line-height: 1.4; + white-space: normal; + max-width: 300px; + min-width: 200px; + z-index: 9999; + opacity: 0; + pointer-events: none; + transition: opacity 0.2s; + visibility: hidden; +} + +/* When we compute viewport-safe placement via JS */ +.tooltipFloating { + position: fixed; + bottom: auto; + transform: none; + left: 0; /* overridden inline */ + top: 0; /* overridden inline */ +} + +/* Base arrow removed; arrows are defined per-placement to avoid inversion */ + +/* Arrow for top placement (tooltip above anchor) */ +.tooltipTop::after { + content: ''; + position: absolute; + left: 50%; + transform: translateX(-50%); + bottom: -6px; + border: 6px solid transparent; + border-top-color: var(--ifm-background-surface-color); +} +.tooltipTop::before { + content: ''; + position: absolute; + left: 50%; + transform: translateX(-50%); + bottom: -7px; + border: 7px solid transparent; + border-top-color: var(--ifm-color-emphasis-300); +} + +/* Arrow for bottom placement (tooltip below anchor) */ +.tooltipBottom::after { + content: ''; + position: absolute; + left: 50%; + transform: translateX(-50%); + top: -6px; + border: 6px solid transparent; + border-bottom-color: var(--ifm-background-surface-color); +} +.tooltipBottom::before { + content: ''; + position: absolute; + left: 50%; + transform: translateX(-50%); + top: -7px; + border: 7px solid transparent; + border-bottom-color: var(--ifm-color-emphasis-300); +} + +.tooltipVisible { + opacity: 1; + pointer-events: auto; + visibility: visible; +} + +.tooltip strong { + display: block; + margin-bottom: 0.25rem; + color: var(--ifm-color-primary); +} + +/* Dark mode adjustments */ +[data-theme='dark'] .tooltip { + background: var(--ifm-background-surface-color); + border-color: var(--ifm-color-emphasis-400); +} + +/* Dark mode arrow overrides scoped to placement to avoid upside-down arrows */ +[data-theme='dark'] .tooltipTop::after { + border-top-color: var(--ifm-background-surface-color); +} +[data-theme='dark'] .tooltipTop::before { + border-top-color: var(--ifm-color-emphasis-400); +} +[data-theme='dark'] .tooltipBottom::after { + border-bottom-color: var(--ifm-background-surface-color); +} +[data-theme='dark'] .tooltipBottom::before { + border-bottom-color: var(--ifm-color-emphasis-400); +} + +/* Responsive adjustments */ +@media (max-width: 768px) { + .tooltip { + max-width: 250px; + min-width: 180px; + font-size: 0.8rem; + } +} diff --git a/static/img/meta/favicon-16x16.png b/static/img/meta/favicon-16x16.png index 8b5dea1c1..471d3390e 100644 --- a/static/img/meta/favicon-16x16.png +++ b/static/img/meta/favicon-16x16.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a5ea0b96d8764f949ffb68886aada5de6a91b959d015d637e5f60a51097fd56d -size 884 +oid sha256:5c3d9774a35d277b69f82fc87f4aedc075333a77f70dee6a236363b95f6f5b99 +size 8895 diff --git a/static/img/meta/favicon-32x32.png b/static/img/meta/favicon-32x32.png index 8b5dea1c1..471d3390e 100644 --- a/static/img/meta/favicon-32x32.png +++ b/static/img/meta/favicon-32x32.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a5ea0b96d8764f949ffb68886aada5de6a91b959d015d637e5f60a51097fd56d -size 884 +oid sha256:5c3d9774a35d277b69f82fc87f4aedc075333a77f70dee6a236363b95f6f5b99 +size 8895 diff --git a/static/img/meta/favicon-96x96.png b/static/img/meta/favicon-96x96.png index 8b5dea1c1..471d3390e 100644 --- a/static/img/meta/favicon-96x96.png +++ b/static/img/meta/favicon-96x96.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a5ea0b96d8764f949ffb68886aada5de6a91b959d015d637e5f60a51097fd56d -size 884 +oid sha256:5c3d9774a35d277b69f82fc87f4aedc075333a77f70dee6a236363b95f6f5b99 +size 8895 diff --git a/static/img/meta/favicon.ico b/static/img/meta/favicon.ico index 8d0c4b8016e804e0b21c3f4a6692abeb03dc2821..2896254149b62d45ae0bfab7c01a79befba1b377 100644 GIT binary patch literal 172057 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 Date: Mon, 20 Apr 2026 01:00:32 +0100 Subject: [PATCH 2/4] New pretty colours --- .claude/settings.local.json | 13 ++- docs/auth-flow/overview.md | 12 +-- docs/bank-feeds/overview.mdx | 9 +- docs/commerce/overview.md | 15 ++- docs/core-concepts/data-type.md | 8 +- docs/core-concepts/integrations.md | 10 +- docs/enterprise/overview.md | 6 +- docs/expenses/overview.md | 18 ++-- docs/get-started/accounting-for-beginners.md | 6 +- docs/get-started/overview.md | 13 ++- docs/index.mdx | 21 ++-- .../accounting-quickbooksdesktop.md | 8 +- docs/lending/get-started.md | 10 +- docs/lending/overview.md | 21 ++-- docs/payables/overview.mdx | 12 +-- docs/payroll/overview.mdx | 1 - docs/spend-insights/overview.md | 14 ++- docs/support/get-help.mdx | 10 +- docs/usecases/bill-pay/overview.md | 12 +-- sidebars.js | 6 -- sidebars/products.js | 7 +- src/components/Cards/index.js | 4 +- src/components/EyeIcon/index.js | 18 ++++ src/components/FeatureBullet/index.js | 20 ++++ .../FeatureBullet/styles.module.scss | 10 ++ src/components/FilesGearIcon/index.js | 19 ++++ src/components/FolderLockIcon/index.js | 21 ++++ src/components/GearFinanceDownIcon/index.js | 23 +++++ src/components/MagnifyingIcon/index.js | 20 ++++ src/components/Modal/styles.module.scss | 4 +- src/components/PageHeader/index.js | 10 +- src/components/PageHeader/styles.module.scss | 7 +- src/components/PeopleIcon/index.js | 21 ++++ src/components/PeopleTickIcon/index.js | 27 ++++++ src/components/Products/index.js | 21 ++-- src/components/RelationshipsIcon/index.js | 18 ++++ src/components/ShieldLockIcon/index.js | 20 ++++ src/components/UserBoxesIcon/index.js | 18 ++++ src/pages/support/index.tsx | 8 +- src/styles/components/_cards.scss | 3 +- src/styles/components/_doc-sidebar.scss | 96 ++++--------------- src/styles/components/_icons.scss | 22 +---- src/styles/components/_lists.scss | 6 ++ src/styles/components/_markdown.scss | 10 +- src/styles/components/_navbar.scss | 14 +++ src/styles/custom.scss | 7 +- src/theme/DocItem/Layout/index.js | 2 + src/theme/MDXComponents/index.js | 22 +++++ src/theme/NavbarItem/DropdownNavbarItem.js | 1 + static/img/clients/rho.png | 3 - static/img/logos/products/logo-bank-feeds.svg | 3 + .../logos/products/logo-bank-feeds_clear.svg | 3 + .../logos/products/logo-bank-feeds_dark.svg | 3 + static/img/logos/products/logo-bill-pay.svg | 11 +++ .../logos/products/logo-bill-pay_clear.svg | 11 +++ .../img/logos/products/logo-bill-pay_dark.svg | 11 +++ static/img/logos/products/logo-expenses.svg | 6 ++ .../logos/products/logo-expenses_clear.svg | 6 ++ .../img/logos/products/logo-expenses_dark.svg | 6 ++ static/img/logos/products/logo-lending.svg | 6 ++ .../img/logos/products/logo-lending_clear.svg | 6 ++ .../img/logos/products/logo-lending_dark.svg | 6 ++ static/img/logos/products/logo_accounting.svg | 54 ----------- .../img/logos/products/logo_assess_clear.svg | 54 ----------- static/img/logos/products/logo_bankfeeds.svg | 56 ----------- .../logos/products/logo_bankfeeds_clear.svg | 54 ----------- .../img/logos/products/logo_banking_clear.svg | 54 ----------- static/img/logos/products/logo_commerce.svg | 46 --------- .../logos/products/logo_commerce_clear.svg | 44 --------- static/img/logos/products/logo_expenses.svg | 56 ----------- .../logos/products/logo_expenses_clear.svg | 54 ----------- static/img/logos/products/logo_lending.svg | 56 ----------- .../img/logos/products/logo_lending_clear.svg | 54 ----------- static/img/logos/products/logo_payables.svg | 44 --------- .../logos/products/logo_payables_clear.svg | 42 -------- static/img/logos/products/logo_payroll.svg | 46 --------- .../img/logos/products/logo_payroll_clear.svg | 44 --------- static/img/logos/products/logo_sfc_clear.svg | 44 --------- static/img/logos/products/logo_sfe_clear.svg | 54 ----------- .../logos/products/logo_spend_insights.svg | 7 ++ .../products/logo_spend_insights_clear.svg | 7 ++ .../products/logo_spend_insights_dark.svg | 7 ++ .../products/logo_supplier_enablement.svg | 62 ------------ .../logo_supplier_enablement_clear.svg | 47 --------- static/img/sidebar-dark/api.svg | 5 +- static/img/sidebar-dark/auth-flow.svg | 6 +- static/img/sidebar-dark/configure.svg | 10 ++ static/img/sidebar-dark/core-concepts.svg | 15 ++- static/img/sidebar-dark/data-model.svg | 3 - static/img/sidebar-dark/expand-icon.svg | 5 + static/img/sidebar-dark/integrations.svg | 4 +- static/img/sidebar-dark/introduction.svg | 10 +- .../sidebar-dark/logo-bank-feeds_light.svg | 3 + .../img/sidebar-dark/logo-bill-pay_light.svg | 11 +++ .../img/sidebar-dark/logo-expenses_light.svg | 6 ++ .../img/sidebar-dark/logo-lending_light.svg | 6 ++ .../logo_spend_insights_light.svg | 7 ++ static/img/sidebar-dark/products.svg | 2 +- static/img/sidebar-dark/use-cases.svg | 6 ++ static/img/sidebar-dark/user.svg | 1 - static/img/sidebar-dark/x-circle.svg | 2 +- static/img/sidebar/api.svg | 5 +- static/img/sidebar/auth-flow.svg | 6 +- static/img/sidebar/bank-note.svg | 17 ---- static/img/sidebar/bank.svg | 17 ---- static/img/sidebar/cart.svg | 17 ---- static/img/sidebar/coins.svg | 17 ---- static/img/sidebar/configure.svg | 10 ++ static/img/sidebar/core-concepts.svg | 15 ++- static/img/sidebar/data-model.svg | 3 - static/img/sidebar/gear-fine.svg | 1 - static/img/sidebar/icon_bankfeeds.svg | 3 - static/img/sidebar/icon_commerce.svg | 5 - static/img/sidebar/icon_expenses.svg | 3 - static/img/sidebar/icon_lending.svg | 3 - static/img/sidebar/icon_payables.svg | 3 - static/img/sidebar/icon_payroll.svg | 12 --- .../img/sidebar/icon_supplier_enablement.svg | 22 ----- static/img/sidebar/integrations.svg | 4 +- static/img/sidebar/introduction.svg | 10 +- static/img/sidebar/logo-bank-feeds.svg | 3 + static/img/sidebar/logo-bill-pay.svg | 11 +++ static/img/sidebar/logo-expenses.svg | 6 ++ static/img/sidebar/logo-lending.svg | 6 ++ static/img/sidebar/logo_spend_insights.svg | 7 ++ static/img/sidebar/other-guides.svg | 3 - static/img/sidebar/products.svg | 2 +- static/img/sidebar/use-cases.svg | 6 ++ static/img/sidebar/usecase.svg | 1 - static/img/sidebar/user.svg | 1 - static/img/sidebar/x-circle.svg | 2 +- static/img/wp-icons/B2B-Payments.png | 3 - static/img/wp-icons/Bank.png | 3 - static/img/wp-icons/Binoculars.png | 3 - static/img/wp-icons/Calculator.png | 3 - static/img/wp-icons/Coins.png | 3 - static/img/wp-icons/CreditCard.png | 3 - static/img/wp-icons/Expense-Management.png | 3 - static/img/wp-icons/Files.png | 3 - static/img/wp-icons/Financial-Services.png | 3 - static/img/wp-icons/Frame-3805.png | 3 - static/img/wp-icons/GlobeHemisphereWest-1.png | 3 - static/img/wp-icons/Graph-1.png | 3 - static/img/wp-icons/Intersect-2.png | 3 - static/img/wp-icons/Lending.png | 3 - static/img/wp-icons/Lightbulb.png | 3 - static/img/wp-icons/Payments.png | 3 - static/img/wp-icons/RocketLaunch.png | 3 - static/img/wp-icons/SaaS-1.png | 3 - static/img/wp-icons/Stack.png | 3 - static/img/wp-icons/StopCircle.png | 3 - static/img/wp-icons/Storefront.png | 3 - static/img/wp-icons/TrendUp.png | 3 - static/img/wp-icons/accounting-2.png | 3 - static/img/wp-icons/analysis-icon.svg | 7 ++ static/img/wp-icons/bank-icon.svg | 3 + static/img/wp-icons/books.png | 3 - static/img/wp-icons/boxes-icon.svg | 6 ++ static/img/wp-icons/card-icon.svg | 6 ++ static/img/wp-icons/chat-icon.svg | 3 + static/img/wp-icons/check-circle.png | 3 - static/img/wp-icons/check-circle.svg | 1 - static/img/wp-icons/checklist-icon.svg | 14 +++ static/img/wp-icons/clock-clockwise.svg | 1 - static/img/wp-icons/clock-countdown.svg | 1 - static/img/wp-icons/clock-icon.svg | 4 + static/img/wp-icons/cloud-gear-icon.svg | 4 + static/img/wp-icons/copy-feature-bullet.svg | 20 ---- static/img/wp-icons/expand-icon.svg | 5 + static/img/wp-icons/eye-icon.svg | 10 ++ static/img/wp-icons/file-check-icon.svg | 11 +++ static/img/wp-icons/files-gear-icon.svg | 11 +++ static/img/wp-icons/files-popup-icon.svg | 13 +++ static/img/wp-icons/folder-lock-icon.svg | 6 ++ .../img/wp-icons/gear-finance-down-icon.svg | 8 ++ static/img/wp-icons/gear-growth-icon.svg | 4 + static/img/wp-icons/gear-tick-icon.svg | 10 ++ static/img/wp-icons/graph-down-icon.svg | 4 + static/img/wp-icons/graph-growth-icon.svg | 6 ++ static/img/wp-icons/graph-up-icon.svg | 3 + static/img/wp-icons/identification-card.png | 3 - static/img/wp-icons/key.png | 3 - static/img/wp-icons/list-magnifying-glass.png | 3 - static/img/wp-icons/magnifying-icon.svg | 5 + static/img/wp-icons/meter-fast-icon.svg | 9 ++ static/img/wp-icons/meter-icon.svg | 11 +++ static/img/wp-icons/people-icon.svg | 6 ++ static/img/wp-icons/people-tick-icon.svg | 12 +++ static/img/wp-icons/pie-chart-icon.svg | 3 + static/img/wp-icons/puzzle-piece.png | 3 - static/img/wp-icons/relationships-icon.svg | 3 + static/img/wp-icons/say-yes.png | 3 - static/img/wp-icons/shield-lock-icon.svg | 5 + static/img/wp-icons/structure-icon.svg | 3 + static/img/wp-icons/student.png | 3 - static/img/wp-icons/suitcase.png | 3 - static/img/wp-icons/tick-clock-icon.svg | 5 + static/img/wp-icons/tick-icon.svg | 5 + static/img/wp-icons/user-boxes-icon.svg | 3 + static/img/wp-icons/user-list.png | 3 - static/img/wp-icons/user-star-icon.svg | 4 + static/img/wp-icons/warning-icon.svg | 7 ++ static/img/wp-icons/webhooks-logo.png | 3 - static/img/wp-icons/x-circle.png | 3 - 204 files changed, 938 insertions(+), 1503 deletions(-) create mode 100644 src/components/EyeIcon/index.js create mode 100644 src/components/FeatureBullet/index.js create mode 100644 src/components/FeatureBullet/styles.module.scss create mode 100644 src/components/FilesGearIcon/index.js create mode 100644 src/components/FolderLockIcon/index.js create mode 100644 src/components/GearFinanceDownIcon/index.js create mode 100644 src/components/MagnifyingIcon/index.js create mode 100644 src/components/PeopleIcon/index.js create mode 100644 src/components/PeopleTickIcon/index.js create mode 100644 src/components/RelationshipsIcon/index.js create mode 100644 src/components/ShieldLockIcon/index.js create mode 100644 src/components/UserBoxesIcon/index.js delete mode 100644 static/img/clients/rho.png create mode 100644 static/img/logos/products/logo-bank-feeds.svg create mode 100644 static/img/logos/products/logo-bank-feeds_clear.svg create mode 100644 static/img/logos/products/logo-bank-feeds_dark.svg create mode 100644 static/img/logos/products/logo-bill-pay.svg create mode 100644 static/img/logos/products/logo-bill-pay_clear.svg create mode 100644 static/img/logos/products/logo-bill-pay_dark.svg create mode 100644 static/img/logos/products/logo-expenses.svg create mode 100644 static/img/logos/products/logo-expenses_clear.svg create mode 100644 static/img/logos/products/logo-expenses_dark.svg create mode 100644 static/img/logos/products/logo-lending.svg create mode 100644 static/img/logos/products/logo-lending_clear.svg create mode 100644 static/img/logos/products/logo-lending_dark.svg delete mode 100644 static/img/logos/products/logo_accounting.svg delete mode 100644 static/img/logos/products/logo_assess_clear.svg delete mode 100644 static/img/logos/products/logo_bankfeeds.svg delete mode 100644 static/img/logos/products/logo_bankfeeds_clear.svg delete mode 100644 static/img/logos/products/logo_banking_clear.svg delete mode 100644 static/img/logos/products/logo_commerce.svg delete mode 100644 static/img/logos/products/logo_commerce_clear.svg delete mode 100644 static/img/logos/products/logo_expenses.svg delete mode 100644 static/img/logos/products/logo_expenses_clear.svg delete mode 100644 static/img/logos/products/logo_lending.svg delete mode 100644 static/img/logos/products/logo_lending_clear.svg delete mode 100644 static/img/logos/products/logo_payables.svg delete mode 100644 static/img/logos/products/logo_payables_clear.svg delete mode 100644 static/img/logos/products/logo_payroll.svg delete mode 100644 static/img/logos/products/logo_payroll_clear.svg delete mode 100644 static/img/logos/products/logo_sfc_clear.svg delete mode 100644 static/img/logos/products/logo_sfe_clear.svg create mode 100644 static/img/logos/products/logo_spend_insights.svg create mode 100644 static/img/logos/products/logo_spend_insights_clear.svg create mode 100644 static/img/logos/products/logo_spend_insights_dark.svg delete mode 100644 static/img/logos/products/logo_supplier_enablement.svg delete mode 100644 static/img/logos/products/logo_supplier_enablement_clear.svg create mode 100644 static/img/sidebar-dark/configure.svg delete mode 100644 static/img/sidebar-dark/data-model.svg create mode 100644 static/img/sidebar-dark/expand-icon.svg create mode 100644 static/img/sidebar-dark/logo-bank-feeds_light.svg create mode 100644 static/img/sidebar-dark/logo-bill-pay_light.svg create mode 100644 static/img/sidebar-dark/logo-expenses_light.svg create mode 100644 static/img/sidebar-dark/logo-lending_light.svg create mode 100644 static/img/sidebar-dark/logo_spend_insights_light.svg create mode 100644 static/img/sidebar-dark/use-cases.svg delete mode 100644 static/img/sidebar-dark/user.svg delete mode 100644 static/img/sidebar/bank-note.svg delete mode 100644 static/img/sidebar/bank.svg delete mode 100644 static/img/sidebar/cart.svg delete mode 100644 static/img/sidebar/coins.svg create mode 100644 static/img/sidebar/configure.svg delete mode 100644 static/img/sidebar/data-model.svg delete mode 100644 static/img/sidebar/gear-fine.svg delete mode 100644 static/img/sidebar/icon_bankfeeds.svg delete mode 100644 static/img/sidebar/icon_commerce.svg delete mode 100644 static/img/sidebar/icon_expenses.svg delete mode 100644 static/img/sidebar/icon_lending.svg delete mode 100644 static/img/sidebar/icon_payables.svg delete mode 100644 static/img/sidebar/icon_payroll.svg delete mode 100644 static/img/sidebar/icon_supplier_enablement.svg create mode 100644 static/img/sidebar/logo-bank-feeds.svg create mode 100644 static/img/sidebar/logo-bill-pay.svg create mode 100644 static/img/sidebar/logo-expenses.svg create mode 100644 static/img/sidebar/logo-lending.svg create mode 100644 static/img/sidebar/logo_spend_insights.svg delete mode 100644 static/img/sidebar/other-guides.svg create mode 100644 static/img/sidebar/use-cases.svg delete mode 100644 static/img/sidebar/usecase.svg delete mode 100644 static/img/sidebar/user.svg delete mode 100644 static/img/wp-icons/B2B-Payments.png delete mode 100644 static/img/wp-icons/Bank.png delete mode 100644 static/img/wp-icons/Binoculars.png delete mode 100644 static/img/wp-icons/Calculator.png delete mode 100644 static/img/wp-icons/Coins.png delete mode 100644 static/img/wp-icons/CreditCard.png delete mode 100644 static/img/wp-icons/Expense-Management.png delete mode 100644 static/img/wp-icons/Files.png delete mode 100644 static/img/wp-icons/Financial-Services.png delete mode 100644 static/img/wp-icons/Frame-3805.png delete mode 100644 static/img/wp-icons/GlobeHemisphereWest-1.png delete mode 100644 static/img/wp-icons/Graph-1.png delete mode 100644 static/img/wp-icons/Intersect-2.png delete mode 100644 static/img/wp-icons/Lending.png delete mode 100644 static/img/wp-icons/Lightbulb.png delete mode 100644 static/img/wp-icons/Payments.png delete mode 100644 static/img/wp-icons/RocketLaunch.png delete mode 100644 static/img/wp-icons/SaaS-1.png delete mode 100644 static/img/wp-icons/Stack.png delete mode 100644 static/img/wp-icons/StopCircle.png delete mode 100644 static/img/wp-icons/Storefront.png delete mode 100644 static/img/wp-icons/TrendUp.png delete mode 100644 static/img/wp-icons/accounting-2.png create mode 100644 static/img/wp-icons/analysis-icon.svg create mode 100644 static/img/wp-icons/bank-icon.svg delete mode 100644 static/img/wp-icons/books.png create mode 100644 static/img/wp-icons/boxes-icon.svg create mode 100644 static/img/wp-icons/card-icon.svg create mode 100644 static/img/wp-icons/chat-icon.svg delete mode 100644 static/img/wp-icons/check-circle.png delete mode 100644 static/img/wp-icons/check-circle.svg create mode 100644 static/img/wp-icons/checklist-icon.svg delete mode 100644 static/img/wp-icons/clock-clockwise.svg delete mode 100644 static/img/wp-icons/clock-countdown.svg create mode 100644 static/img/wp-icons/clock-icon.svg create mode 100644 static/img/wp-icons/cloud-gear-icon.svg delete mode 100644 static/img/wp-icons/copy-feature-bullet.svg create mode 100644 static/img/wp-icons/expand-icon.svg create mode 100644 static/img/wp-icons/eye-icon.svg create mode 100644 static/img/wp-icons/file-check-icon.svg create mode 100644 static/img/wp-icons/files-gear-icon.svg create mode 100644 static/img/wp-icons/files-popup-icon.svg create mode 100644 static/img/wp-icons/folder-lock-icon.svg create mode 100644 static/img/wp-icons/gear-finance-down-icon.svg create mode 100644 static/img/wp-icons/gear-growth-icon.svg create mode 100644 static/img/wp-icons/gear-tick-icon.svg create mode 100644 static/img/wp-icons/graph-down-icon.svg create mode 100644 static/img/wp-icons/graph-growth-icon.svg create mode 100644 static/img/wp-icons/graph-up-icon.svg delete mode 100644 static/img/wp-icons/identification-card.png delete mode 100644 static/img/wp-icons/key.png delete mode 100644 static/img/wp-icons/list-magnifying-glass.png create mode 100644 static/img/wp-icons/magnifying-icon.svg create mode 100644 static/img/wp-icons/meter-fast-icon.svg create mode 100644 static/img/wp-icons/meter-icon.svg create mode 100644 static/img/wp-icons/people-icon.svg create mode 100644 static/img/wp-icons/people-tick-icon.svg create mode 100644 static/img/wp-icons/pie-chart-icon.svg delete mode 100644 static/img/wp-icons/puzzle-piece.png create mode 100644 static/img/wp-icons/relationships-icon.svg delete mode 100644 static/img/wp-icons/say-yes.png create mode 100644 static/img/wp-icons/shield-lock-icon.svg create mode 100644 static/img/wp-icons/structure-icon.svg delete mode 100644 static/img/wp-icons/student.png delete mode 100644 static/img/wp-icons/suitcase.png create mode 100644 static/img/wp-icons/tick-clock-icon.svg create mode 100644 static/img/wp-icons/tick-icon.svg create mode 100644 static/img/wp-icons/user-boxes-icon.svg delete mode 100644 static/img/wp-icons/user-list.png create mode 100644 static/img/wp-icons/user-star-icon.svg create mode 100644 static/img/wp-icons/warning-icon.svg delete mode 100644 static/img/wp-icons/webhooks-logo.png delete mode 100644 static/img/wp-icons/x-circle.png diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 9f905b15c..e3f9de517 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -1,7 +1,18 @@ { "permissions": { "allow": [ - "WebFetch(domain:www.codat.io)" + "WebFetch(domain:www.codat.io)", + "Bash(xargs grep:*)", + "Bash(sed -i 's/#B2D4C7/#18103A/g' expand-icon.svg)", + "Bash(sed 's/#18103A/#ECEDE5/g' expand-icon.svg)", + "Bash(sed -i 's/#B2D4C7/#18103A/g' core-concepts.svg)", + "Bash(sed 's/#18103A/#ECEDE5/g' core-concepts.svg)", + "Bash(perl -0777 -i -pe 's|]*copy-feature-bullet\\\\.svg[^>]*/?>||g' docs/commerce/overview.md docs/bank-feeds/overview.mdx docs/auth-flow/overview.md docs/payables/overview.mdx docs/lending/overview.md docs/expenses/overview.md docs/usecases/bill-pay/overview.md docs/lending/get-started.md docs/spend-insights/overview.md docs/integrations/accounting/quickbooksdesktop/accounting-quickbooksdesktop.md)", + "Bash(ls static/img/wp-icons/*.svg)", + "Bash(perl -0777 -i -pe 's|]*user-list\\\\.png[^>]*/?>||g' docs/enterprise/overview.md)", + "Bash(perl -0777 -i -pe 's|]*key\\\\.png[^>]*/?>||g' docs/index.mdx)", + "Bash(perl -0777 -i -pe 's|]*wp-icons/[^\"]+\\\\.png[^>]*/?>||g' docs/core-concepts/data-type.md docs/core-concepts/integrations.md docs/enterprise/overview.md docs/get-started/overview.md docs/support/get-help.mdx)", + "Bash(perl -0777 -i -pe 's|]*wp-icons/[^\"]+\\\\.png[^>]*/?>||g' src/pages/support/index.tsx)" ] } } diff --git a/docs/auth-flow/overview.md b/docs/auth-flow/overview.md index 8597b6177..e60a58dec 100644 --- a/docs/auth-flow/overview.md +++ b/docs/auth-flow/overview.md @@ -37,10 +37,7 @@ Enhance the auth flow functionality and give your customers the ability to manag