From f4c674275085ff30a878e1aa6a5d982e777cdab4 Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Wed, 4 Mar 2026 21:38:05 -0600 Subject: [PATCH 01/26] feat: add new logo --- specifyweb/frontend/static/img/favicon.svg | 13 ++- specifyweb/frontend/static/img/logo.svg | 23 +++++- specifyweb/frontend/static/img/short_logo.svg | 14 +++- .../frontend/static/img/splash_screen.svg | 79 ++++++++++++++++++- 4 files changed, 123 insertions(+), 6 deletions(-) diff --git a/specifyweb/frontend/static/img/favicon.svg b/specifyweb/frontend/static/img/favicon.svg index cb0e9e5c05c..51adb5d8da2 100644 --- a/specifyweb/frontend/static/img/favicon.svg +++ b/specifyweb/frontend/static/img/favicon.svg @@ -1 +1,12 @@ - \ No newline at end of file + + + + + + + + \ No newline at end of file diff --git a/specifyweb/frontend/static/img/logo.svg b/specifyweb/frontend/static/img/logo.svg index 539afd0c0c5..fce7df29723 100644 --- a/specifyweb/frontend/static/img/logo.svg +++ b/specifyweb/frontend/static/img/logo.svg @@ -1 +1,22 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/specifyweb/frontend/static/img/short_logo.svg b/specifyweb/frontend/static/img/short_logo.svg index a291adf8335..51adb5d8da2 100644 --- a/specifyweb/frontend/static/img/short_logo.svg +++ b/specifyweb/frontend/static/img/short_logo.svg @@ -1,2 +1,12 @@ - - \ No newline at end of file + + + + + + + + \ No newline at end of file diff --git a/specifyweb/frontend/static/img/splash_screen.svg b/specifyweb/frontend/static/img/splash_screen.svg index 6eb0597e0de..8c1708beba7 100644 --- a/specifyweb/frontend/static/img/splash_screen.svg +++ b/specifyweb/frontend/static/img/splash_screen.svg @@ -1,2 +1,77 @@ - \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From e432df7f5dd14e483f03239d7b97924781c98e64 Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Wed, 4 Mar 2026 21:51:17 -0600 Subject: [PATCH 02/26] feat: update colors --- .../Preferences/UserDefinitions.tsx | 22 +++++++++---------- specifyweb/frontend/templates/body.html | 4 ++-- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/specifyweb/frontend/js_src/lib/components/Preferences/UserDefinitions.tsx b/specifyweb/frontend/js_src/lib/components/Preferences/UserDefinitions.tsx index 9b3b997ed3b..d9544e66344 100644 --- a/specifyweb/frontend/js_src/lib/components/Preferences/UserDefinitions.tsx +++ b/specifyweb/frontend/js_src/lib/components/Preferences/UserDefinitions.tsx @@ -344,7 +344,7 @@ export const userPreferenceDefinitions = { title: preferencesText.accentColor1(), requiresReload: false, visible: true, - defaultValue: '#ffcda3', + defaultValue: '#77AA49', renderer: ColorPickerPreferenceItem, container: 'label', }), @@ -352,7 +352,7 @@ export const userPreferenceDefinitions = { title: preferencesText.accentColor2(), requiresReload: false, visible: true, - defaultValue: '#ff9742', + defaultValue: '#618e39', renderer: ColorPickerPreferenceItem, container: 'label', }), @@ -360,7 +360,7 @@ export const userPreferenceDefinitions = { title: preferencesText.accentColor3(), requiresReload: false, visible: true, - defaultValue: '#ff811a', + defaultValue: '#618e39', renderer: ColorPickerPreferenceItem, container: 'label', }), @@ -368,7 +368,7 @@ export const userPreferenceDefinitions = { title: preferencesText.accentColor4(), requiresReload: false, visible: true, - defaultValue: '#d15e00', + defaultValue: '#344f1e', renderer: ColorPickerPreferenceItem, container: 'label', }), @@ -376,7 +376,7 @@ export const userPreferenceDefinitions = { title: preferencesText.accentColor5(), requiresReload: false, visible: true, - defaultValue: '#703200', + defaultValue: '#053100', renderer: ColorPickerPreferenceItem, container: 'label', }), @@ -396,7 +396,7 @@ export const userPreferenceDefinitions = { title: preferencesText.saveButtonColor(), requiresReload: false, visible: isLightMode, - defaultValue: '#ff811a', + defaultValue: '#77AA49', renderer: ColorPickerPreferenceItem, container: 'label', }), @@ -412,7 +412,7 @@ export const userPreferenceDefinitions = { title: preferencesText.warningButtonColor(), requiresReload: false, visible: isLightMode, - defaultValue: '#f97316', + defaultValue: '#5c8f2f', renderer: ColorPickerPreferenceItem, container: 'label', }), @@ -420,7 +420,7 @@ export const userPreferenceDefinitions = { title: preferencesText.infoButtonColor(), requiresReload: false, visible: isLightMode, - defaultValue: '#1d4ed8', + defaultValue: '#0074B5', renderer: ColorPickerPreferenceItem, container: 'label', }), @@ -457,7 +457,7 @@ export const userPreferenceDefinitions = { title: preferencesText.saveButtonColor(), requiresReload: false, visible: isDarkMode, - defaultValue: '#ff811a', + defaultValue: '#77AA49', renderer: ColorPickerPreferenceItem, container: 'label', }), @@ -473,7 +473,7 @@ export const userPreferenceDefinitions = { title: preferencesText.warningButtonColor(), requiresReload: false, visible: isDarkMode, - defaultValue: '#f97316', + defaultValue: '#77AA49', renderer: ColorPickerPreferenceItem, container: 'label', }), @@ -481,7 +481,7 @@ export const userPreferenceDefinitions = { title: preferencesText.infoButtonColor(), requiresReload: false, visible: isDarkMode, - defaultValue: '#1d4ed8', + defaultValue: '#0074B5', renderer: ColorPickerPreferenceItem, container: 'label', }), diff --git a/specifyweb/frontend/templates/body.html b/specifyweb/frontend/templates/body.html index 76ac4a6e037..c881c0ef89f 100644 --- a/specifyweb/frontend/templates/body.html +++ b/specifyweb/frontend/templates/body.html @@ -8,9 +8,9 @@ {% endif %} - + - + From 8ff6750dead0b92830d5a7397ada7f857b64e24b Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Wed, 4 Mar 2026 23:09:53 -0600 Subject: [PATCH 03/26] feat: colors --- .../js_src/lib/components/Header/index.tsx | 4 +- .../js_src/lib/components/HomePage/index.tsx | 8 +- .../Preferences/UserDefinitions.tsx | 8 +- specifyweb/frontend/js_src/tailwind.config.ts | 17 +++ specifyweb/frontend/static/img/logo.svg | 2 +- .../frontend/static/img/splash_screen.svg | 123 ++++++++++++------ 6 files changed, 111 insertions(+), 51 deletions(-) diff --git a/specifyweb/frontend/js_src/lib/components/Header/index.tsx b/specifyweb/frontend/js_src/lib/components/Header/index.tsx index 98923ab758c..41fe6946c23 100644 --- a/specifyweb/frontend/js_src/lib/components/Header/index.tsx +++ b/specifyweb/frontend/js_src/lib/components/Header/index.tsx @@ -99,7 +99,7 @@ export function Header({ return ( diff --git a/specifyweb/frontend/js_src/lib/components/HomePage/index.tsx b/specifyweb/frontend/js_src/lib/components/HomePage/index.tsx index ce31c82e59c..9bea5182fde 100644 --- a/specifyweb/frontend/js_src/lib/components/HomePage/index.tsx +++ b/specifyweb/frontend/js_src/lib/components/HomePage/index.tsx @@ -81,9 +81,15 @@ function DefaultSplashScreen(): JSX.Element { src={defaultWelcomePageImage} style={{ filter: `hue-rotate(${hueDifference}deg)` }} /> - {/* The two following gradients in the divs are here to apply a fade out effect on the image */} + {/* The following gradients in the divs are here to apply a fade out effect on the image */} + {/* Left fade */} + {/* Right fade */} + {/* Top fade */} + + {/* Bottom fade */} + ); } diff --git a/specifyweb/frontend/js_src/lib/components/Preferences/UserDefinitions.tsx b/specifyweb/frontend/js_src/lib/components/Preferences/UserDefinitions.tsx index d9544e66344..f162fd292c8 100644 --- a/specifyweb/frontend/js_src/lib/components/Preferences/UserDefinitions.tsx +++ b/specifyweb/frontend/js_src/lib/components/Preferences/UserDefinitions.tsx @@ -344,7 +344,7 @@ export const userPreferenceDefinitions = { title: preferencesText.accentColor1(), requiresReload: false, visible: true, - defaultValue: '#77AA49', + defaultValue: '#6b813d', renderer: ColorPickerPreferenceItem, container: 'label', }), @@ -352,7 +352,7 @@ export const userPreferenceDefinitions = { title: preferencesText.accentColor2(), requiresReload: false, visible: true, - defaultValue: '#618e39', + defaultValue: '#5a6d32', renderer: ColorPickerPreferenceItem, container: 'label', }), @@ -360,7 +360,7 @@ export const userPreferenceDefinitions = { title: preferencesText.accentColor3(), requiresReload: false, visible: true, - defaultValue: '#618e39', + defaultValue: '#4a5a29', renderer: ColorPickerPreferenceItem, container: 'label', }), @@ -368,7 +368,7 @@ export const userPreferenceDefinitions = { title: preferencesText.accentColor4(), requiresReload: false, visible: true, - defaultValue: '#344f1e', + defaultValue: 'rgb(43, 66, 25)', renderer: ColorPickerPreferenceItem, container: 'label', }), diff --git a/specifyweb/frontend/js_src/tailwind.config.ts b/specifyweb/frontend/js_src/tailwind.config.ts index 211b04eebc3..09930dddcdf 100644 --- a/specifyweb/frontend/js_src/tailwind.config.ts +++ b/specifyweb/frontend/js_src/tailwind.config.ts @@ -46,11 +46,19 @@ const config: Config = { colors: { // Specify brand colors brand: { + /* + TODO: Revert to variables 100: 'var(--accent-color-100)', 200: 'var(--accent-color-200)', 300: 'var(--accent-color-300)', 400: 'var(--accent-color-400)', 500: 'var(--accent-color-500)', + */ + 100: '#d4d8bf', + 200: '#a4af83', + 300: '#86965e', + 400: '#6b813d', + 500: '#596c32', }, // Some in-between shades: gray: { @@ -68,6 +76,15 @@ const config: Config = { neutral: { 350: 'hsl(0deg 0% 73%)', }, + blue: { + 100: '#0074B5', + }, + cream: { + 100: '#e0e2b9', + }, + brown: { + 100: '#4e3e32', + } }, spacing: { 'table-icon': '1.25rem', diff --git a/specifyweb/frontend/static/img/logo.svg b/specifyweb/frontend/static/img/logo.svg index fce7df29723..d5d772db23b 100644 --- a/specifyweb/frontend/static/img/logo.svg +++ b/specifyweb/frontend/static/img/logo.svg @@ -4,7 +4,7 @@ diff --git a/specifyweb/frontend/static/img/splash_screen.svg b/specifyweb/frontend/static/img/splash_screen.svg index 8c1708beba7..3bb8e768154 100644 --- a/specifyweb/frontend/static/img/splash_screen.svg +++ b/specifyweb/frontend/static/img/splash_screen.svg @@ -1,77 +1,114 @@ - + - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + + - + - - - + + + - - - + + + - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + \ No newline at end of file From b05c5b37e46fa7737ba4f231aef0fe51da12faa1 Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Wed, 4 Mar 2026 23:17:21 -0600 Subject: [PATCH 04/26] feat: remove shadows --- .../frontend/js_src/lib/components/Atoms/className.ts | 2 +- .../frontend/js_src/lib/components/Attachments/Preview.tsx | 6 +++--- .../frontend/js_src/lib/components/Core/SplashScreen.tsx | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/specifyweb/frontend/js_src/lib/components/Atoms/className.ts b/specifyweb/frontend/js_src/lib/components/Atoms/className.ts index 6a3b2fa6f25..5c7666bc98a 100644 --- a/specifyweb/frontend/js_src/lib/components/Atoms/className.ts +++ b/specifyweb/frontend/js_src/lib/components/Atoms/className.ts @@ -20,7 +20,7 @@ dark:text-gray-100`; const containerBaseUnstyled = `flex flex-col gap-4 overflow-scroll overflow-x-auto [overflow-y:overlay] [scrollbar-gutter:auto]`; const containerBase = `${containerBaseUnstyled} bg-[color:var(--form-foreground)] - rounded p-4 shadow-gray-400 shadow-2xl`; + rounded p-4 shadow-gray-400 outline outline-1 outline-gray-300 dark:outline-neutral-800`; const containerFull = 'flex flex-col gap-4 sm:h-full p-1 sm:p-4'; const formStyles = 'text-[length:var(--form-font-size)] font-[family-name:var(--form-font-family)]'; diff --git a/specifyweb/frontend/js_src/lib/components/Attachments/Preview.tsx b/specifyweb/frontend/js_src/lib/components/Attachments/Preview.tsx index 3a144df934a..e951178b407 100644 --- a/specifyweb/frontend/js_src/lib/components/Attachments/Preview.tsx +++ b/specifyweb/frontend/js_src/lib/components/Attachments/Preview.tsx @@ -21,9 +21,9 @@ export function AttachmentPreview({ return ( diff --git a/specifyweb/frontend/js_src/lib/components/Core/SplashScreen.tsx b/specifyweb/frontend/js_src/lib/components/Core/SplashScreen.tsx index 56748d18d48..c4750cca79a 100644 --- a/specifyweb/frontend/js_src/lib/components/Core/SplashScreen.tsx +++ b/specifyweb/frontend/js_src/lib/components/Core/SplashScreen.tsx @@ -19,7 +19,7 @@ export function SplashScreen({ From a2e07c9167bc76c3f93b8239cd59ddef28aebd8f Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Wed, 4 Mar 2026 23:21:06 -0600 Subject: [PATCH 05/26] Update safari-pinned-tab.svg --- .../frontend/static/img/safari-pinned-tab.svg | 75 +++++++++---------- 1 file changed, 36 insertions(+), 39 deletions(-) diff --git a/specifyweb/frontend/static/img/safari-pinned-tab.svg b/specifyweb/frontend/static/img/safari-pinned-tab.svg index 798c1ce5e44..5c3f3250b9e 100644 --- a/specifyweb/frontend/static/img/safari-pinned-tab.svg +++ b/specifyweb/frontend/static/img/safari-pinned-tab.svg @@ -1,40 +1,37 @@ - - - - -Created by potrace 1.14, written by Peter Selinger 2001-2017 - - - - - - - + + + + From 78b943c9256e80a15774beb93d7543355f93a544 Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Wed, 4 Mar 2026 23:25:01 -0600 Subject: [PATCH 06/26] feat: update more colors --- specifyweb/frontend/js_src/lib/components/Atoms/className.ts | 4 ++-- .../frontend/js_src/lib/components/Molecules/Dialog.tsx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/specifyweb/frontend/js_src/lib/components/Atoms/className.ts b/specifyweb/frontend/js_src/lib/components/Atoms/className.ts index 5c7666bc98a..abd13e7aabc 100644 --- a/specifyweb/frontend/js_src/lib/components/Atoms/className.ts +++ b/specifyweb/frontend/js_src/lib/components/Atoms/className.ts @@ -92,7 +92,7 @@ export const className = { dataEntryView: '!text-cyan-400 print:hidden', dataEntryEdit: '!text-orange-400 print:hidden', dataEntryClone: '!text-amber-700 print:hidden', - dataEntrySearch: '!text-blue-500 print:hidden', + dataEntrySearch: '!text-brand-400 print:hidden', dataEntryRemove: '!text-red-700 print:hidden', - dataEntryVisit: '!text-blue-700 print:hidden', + dataEntryVisit: '!text-green-700 print:hidden', } as const; diff --git a/specifyweb/frontend/js_src/lib/components/Molecules/Dialog.tsx b/specifyweb/frontend/js_src/lib/components/Molecules/Dialog.tsx index 238058c94d4..062df72597c 100644 --- a/specifyweb/frontend/js_src/lib/components/Molecules/Dialog.tsx +++ b/specifyweb/frontend/js_src/lib/components/Molecules/Dialog.tsx @@ -514,7 +514,7 @@ export function Dialog({ > {resolvedIcon === undefined ? undefined : ( - {resolvedIcon} + {resolvedIcon} )} {header} From 01455131cd3d74bbd0d7767591b6d78a4981daf1 Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Wed, 4 Mar 2026 23:32:20 -0600 Subject: [PATCH 07/26] fix: failing tests --- .../__tests__/__snapshots__/AppResourcesTab.test.tsx.snap | 2 +- .../Atoms/__tests__/__snapshots__/DataEntry.test.ts.snap | 4 ++-- .../Atoms/__tests__/__snapshots__/index.test.tsx.snap | 4 ++-- .../__tests__/__snapshots__/AttachmentCell.test.tsx.snap | 6 +++--- .../js_src/lib/hooks/__tests__/useHueDifference.test.ts | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/specifyweb/frontend/js_src/lib/components/AppResources/__tests__/__snapshots__/AppResourcesTab.test.tsx.snap b/specifyweb/frontend/js_src/lib/components/AppResources/__tests__/__snapshots__/AppResourcesTab.test.tsx.snap index 78e4d99dbe9..dab84d42eca 100644 --- a/specifyweb/frontend/js_src/lib/components/AppResources/__tests__/__snapshots__/AppResourcesTab.test.tsx.snap +++ b/specifyweb/frontend/js_src/lib/components/AppResources/__tests__/__snapshots__/AppResourcesTab.test.tsx.snap @@ -32,7 +32,7 @@ exports[`AppResourcesTab dialog render 1`] = ` class="flex items-center gap-2" > @@ -265,7 +265,7 @@ exports[`DataEntry.visit no resource 2`] = ` View @@ -29,7 +29,7 @@ exports[`Container.Center renders without errors 1`] = ` View diff --git a/specifyweb/frontend/js_src/lib/components/Attachments/__tests__/__snapshots__/AttachmentCell.test.tsx.snap b/specifyweb/frontend/js_src/lib/components/Attachments/__tests__/__snapshots__/AttachmentCell.test.tsx.snap index b9eead6e1ce..67da9b6a237 100644 --- a/specifyweb/frontend/js_src/lib/components/Attachments/__tests__/__snapshots__/AttachmentCell.test.tsx.snap +++ b/specifyweb/frontend/js_src/lib/components/Attachments/__tests__/__snapshots__/AttachmentCell.test.tsx.snap @@ -61,9 +61,9 @@ exports[`AttachmentCell simple render 1`] = ` { general: { appearance: { accentColor3: '#1a9cff' } }, }); const { result } = renderHook(() => useHueDifference()); - expect(result.current).toBe(179); + expect(result.current).toBe(126); }); test('hue difference is adjusted when difference is negative', async () => { @@ -17,6 +17,6 @@ describe('useHueDifference', () => { general: { appearance: { accentColor3: '#ff1a1a' } }, }); const { result } = renderHook(() => useHueDifference()); - expect(result.current).toBe(333); + expect(result.current).toBe(280); }); }); From 7264fcdcca4b91eb6c1d8786a6fe35ca6078d16e Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Wed, 4 Mar 2026 23:33:31 -0600 Subject: [PATCH 08/26] Update favicon.svg --- specifyweb/frontend/static/img/favicon.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specifyweb/frontend/static/img/favicon.svg b/specifyweb/frontend/static/img/favicon.svg index 51adb5d8da2..7192d96459d 100644 --- a/specifyweb/frontend/static/img/favicon.svg +++ b/specifyweb/frontend/static/img/favicon.svg @@ -4,7 +4,7 @@ From 273aefd088a755866659e47e3b5b6f489c6a6e18 Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Wed, 4 Mar 2026 23:39:36 -0600 Subject: [PATCH 09/26] fix: adjust gradient --- .../frontend/static/img/splash_screen.svg | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/specifyweb/frontend/static/img/splash_screen.svg b/specifyweb/frontend/static/img/splash_screen.svg index 3bb8e768154..a15c12be58f 100644 --- a/specifyweb/frontend/static/img/splash_screen.svg +++ b/specifyweb/frontend/static/img/splash_screen.svg @@ -1,5 +1,5 @@ - + + + + + + + + + + - + - + - + @@ -71,7 +80,7 @@ - + From b54ed3dec69ce9eb8a047e3ec8259812be627ca1 Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Wed, 4 Mar 2026 23:47:47 -0600 Subject: [PATCH 10/26] fix: add dark mode splash --- .../js_src/lib/components/HomePage/index.tsx | 6 +- .../lib/components/Preferences/Renderers.tsx | 7 +- .../static/img/splash_screen_dark.svg | 137 ++++++++++++++++++ 3 files changed, 147 insertions(+), 3 deletions(-) create mode 100644 specifyweb/frontend/static/img/splash_screen_dark.svg diff --git a/specifyweb/frontend/js_src/lib/components/HomePage/index.tsx b/specifyweb/frontend/js_src/lib/components/HomePage/index.tsx index 9bea5182fde..77b3871a6ab 100644 --- a/specifyweb/frontend/js_src/lib/components/HomePage/index.tsx +++ b/specifyweb/frontend/js_src/lib/components/HomePage/index.tsx @@ -6,7 +6,8 @@ import { commonText } from '../../localization/common'; import { welcomeText } from '../../localization/welcome'; import { Submit } from '../Atoms/Submit'; import { SearchForm } from '../Header/ExpressSearchTask'; -import { defaultWelcomePageImage } from '../Preferences/Renderers'; +import { getDefaultWelcomePageImage } from '../Preferences/Renderers'; +import { useDarkMode } from '../Preferences/Hooks'; import { userPreferences } from '../Preferences/userPreferences'; import { ReactLazy } from '../Router/ReactLazy'; @@ -73,12 +74,13 @@ function WelcomeScreenContent(): JSX.Element { function DefaultSplashScreen(): JSX.Element { const hueDifference = useHueDifference(); + const isDarkMode = useDarkMode(); return ( {/* The following gradients in the divs are here to apply a fade out effect on the image */} diff --git a/specifyweb/frontend/js_src/lib/components/Preferences/Renderers.tsx b/specifyweb/frontend/js_src/lib/components/Preferences/Renderers.tsx index a1d25e5ff3e..3ca38acdb82 100644 --- a/specifyweb/frontend/js_src/lib/components/Preferences/Renderers.tsx +++ b/specifyweb/frontend/js_src/lib/components/Preferences/Renderers.tsx @@ -234,7 +234,12 @@ export type WelcomePageMode = | 'default' | 'embeddedWebpage' | 'taxonTiles'; -export const defaultWelcomePageImage = '/static/img/splash_screen.svg'; + +export function getDefaultWelcomePageImage(isDarkMode: boolean): string { + return isDarkMode + ? '/static/img/splash_screen_dark.svg' + : '/static/img/splash_screen.svg'; +} const welcomePageModes: PreferenceItem = { title: preferencesText.content(), requiresReload: false, diff --git a/specifyweb/frontend/static/img/splash_screen_dark.svg b/specifyweb/frontend/static/img/splash_screen_dark.svg new file mode 100644 index 00000000000..3e25ace3450 --- /dev/null +++ b/specifyweb/frontend/static/img/splash_screen_dark.svg @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 9015e053d6d163eb8f91936936d1d1d49946797c Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Wed, 4 Mar 2026 23:50:10 -0600 Subject: [PATCH 11/26] Update splash_screen.svg --- .../frontend/static/img/splash_screen.svg | 170 +++++++++--------- 1 file changed, 88 insertions(+), 82 deletions(-) diff --git a/specifyweb/frontend/static/img/splash_screen.svg b/specifyweb/frontend/static/img/splash_screen.svg index a15c12be58f..ed44c82f288 100644 --- a/specifyweb/frontend/static/img/splash_screen.svg +++ b/specifyweb/frontend/static/img/splash_screen.svg @@ -1,14 +1,10 @@ - + - + @@ -33,91 +37,93 @@ - + - + - - - - - - - - - - - - - + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - \ No newline at end of file From 4c09fa824157fc9473e0f300cb8a20fd8487950e Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Thu, 5 Mar 2026 00:10:22 -0600 Subject: [PATCH 12/26] Update splash_screen.svg --- .../frontend/static/img/splash_screen.svg | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/specifyweb/frontend/static/img/splash_screen.svg b/specifyweb/frontend/static/img/splash_screen.svg index ed44c82f288..6068e7d33e1 100644 --- a/specifyweb/frontend/static/img/splash_screen.svg +++ b/specifyweb/frontend/static/img/splash_screen.svg @@ -4,7 +4,7 @@ - - - - - - - + + + + + + + + + + - - - @@ -126,4 +126,7 @@ + + + \ No newline at end of file From 889482ce121c67b9f9fd8d811eddae8cedffb1ef Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Thu, 5 Mar 2026 00:14:42 -0600 Subject: [PATCH 13/26] fix: splash screens --- .../frontend/static/img/splash_screen.svg | 19 +++++++------------ .../static/img/splash_screen_dark.svg | 4 ++-- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/specifyweb/frontend/static/img/splash_screen.svg b/specifyweb/frontend/static/img/splash_screen.svg index 6068e7d33e1..ac4f0ad44bc 100644 --- a/specifyweb/frontend/static/img/splash_screen.svg +++ b/specifyweb/frontend/static/img/splash_screen.svg @@ -26,16 +26,13 @@ fill-rule: evenodd; } - + - - - - - - - - + + + + + @@ -126,7 +123,5 @@ - - - + \ No newline at end of file diff --git a/specifyweb/frontend/static/img/splash_screen_dark.svg b/specifyweb/frontend/static/img/splash_screen_dark.svg index 3e25ace3450..a9eba58af2c 100644 --- a/specifyweb/frontend/static/img/splash_screen_dark.svg +++ b/specifyweb/frontend/static/img/splash_screen_dark.svg @@ -29,7 +29,7 @@ opacity: .5; } - + @@ -50,7 +50,7 @@ - + From ef0cba802e3687be7151fe28731c92a840de5696 Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Thu, 5 Mar 2026 00:26:26 -0600 Subject: [PATCH 14/26] feat: update loading animation --- specifyweb/frontend/js_src/lib/components/Molecules/index.tsx | 2 +- .../frontend/js_src/lib/components/Statistics/Categories.tsx | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/specifyweb/frontend/js_src/lib/components/Molecules/index.tsx b/specifyweb/frontend/js_src/lib/components/Molecules/index.tsx index b891bd4e4b6..2e184c4e572 100644 --- a/specifyweb/frontend/js_src/lib/components/Molecules/index.tsx +++ b/specifyweb/frontend/js_src/lib/components/Molecules/index.tsx @@ -35,7 +35,7 @@ export const loadingBar = ( diff --git a/specifyweb/frontend/js_src/lib/components/Statistics/Categories.tsx b/specifyweb/frontend/js_src/lib/components/Statistics/Categories.tsx index f194e904121..f32cef54c60 100644 --- a/specifyweb/frontend/js_src/lib/components/Statistics/Categories.tsx +++ b/specifyweb/frontend/js_src/lib/components/Statistics/Categories.tsx @@ -154,7 +154,7 @@ export function Categories({ checkEmptyItems ? '' : `flex h-auto max-h-80 flex-col content-center rounded bg-[color:var(--form-foreground)] - shadow-lg shadow-gray-300 transition hover:shadow-md hover:shadow-gray-400 + transition outline outline-1 outline-gray-300 dark:outline-neutral-800 ${typeof handleAdd === 'function' ? 'gap-2 p-4' : ''}` } key={categoryIndex} @@ -292,7 +292,7 @@ export function Categories({ {handleAdd !== undefined && ( handleAdd(undefined)} > {statsText.addACategory()} From 3319d1c86d31fda6a47eb826b537da51db9061c5 Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Thu, 5 Mar 2026 08:37:34 -0600 Subject: [PATCH 15/26] fix: make search blue --- specifyweb/frontend/js_src/lib/components/Atoms/className.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specifyweb/frontend/js_src/lib/components/Atoms/className.ts b/specifyweb/frontend/js_src/lib/components/Atoms/className.ts index abd13e7aabc..d0bd17da63c 100644 --- a/specifyweb/frontend/js_src/lib/components/Atoms/className.ts +++ b/specifyweb/frontend/js_src/lib/components/Atoms/className.ts @@ -92,7 +92,7 @@ export const className = { dataEntryView: '!text-cyan-400 print:hidden', dataEntryEdit: '!text-orange-400 print:hidden', dataEntryClone: '!text-amber-700 print:hidden', - dataEntrySearch: '!text-brand-400 print:hidden', + dataEntrySearch: '!text-blue-100 print:hidden', dataEntryRemove: '!text-red-700 print:hidden', dataEntryVisit: '!text-green-700 print:hidden', } as const; From 273453eea6f01a55ba57fb4c22350e62c2fb9c29 Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Thu, 5 Mar 2026 09:07:51 -0600 Subject: [PATCH 16/26] crunchy --- .../lib/components/Core/SplashScreen.tsx | 4 ++- specifyweb/frontend/static/img/logo.svg | 22 +++++++++------- specifyweb/frontend/static/img/logo_dark.svg | 26 +++++++++++++++++++ 3 files changed, 42 insertions(+), 10 deletions(-) create mode 100644 specifyweb/frontend/static/img/logo_dark.svg diff --git a/specifyweb/frontend/js_src/lib/components/Core/SplashScreen.tsx b/specifyweb/frontend/js_src/lib/components/Core/SplashScreen.tsx index c4750cca79a..148061b9a5b 100644 --- a/specifyweb/frontend/js_src/lib/components/Core/SplashScreen.tsx +++ b/specifyweb/frontend/js_src/lib/components/Core/SplashScreen.tsx @@ -2,6 +2,7 @@ import React from 'react'; import { useHueDifference } from '../../hooks/useHueDifference'; import { commonText } from '../../localization/common'; +import { useDarkMode } from '../Preferences/Hooks'; export function SplashScreen({ children, @@ -9,6 +10,7 @@ export function SplashScreen({ readonly children: React.ReactNode; }): JSX.Element { const hueDifference = useHueDifference(); + const isDarkMode = useDarkMode(); return ( diff --git a/specifyweb/frontend/static/img/logo.svg b/specifyweb/frontend/static/img/logo.svg index d5d772db23b..4180aac0e2b 100644 --- a/specifyweb/frontend/static/img/logo.svg +++ b/specifyweb/frontend/static/img/logo.svg @@ -6,17 +6,21 @@ .st0 { fill: #74914a; } + + .st1 { + fill: #e1e1be; + } - + - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/specifyweb/frontend/static/img/logo_dark.svg b/specifyweb/frontend/static/img/logo_dark.svg new file mode 100644 index 00000000000..62e48c0856c --- /dev/null +++ b/specifyweb/frontend/static/img/logo_dark.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file From ddb664618051ed62528100fcaf74101a48fc892e Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Thu, 5 Mar 2026 11:31:00 -0600 Subject: [PATCH 17/26] Update DataEntry.test.ts.snap --- .../Atoms/__tests__/__snapshots__/DataEntry.test.ts.snap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specifyweb/frontend/js_src/lib/components/Atoms/__tests__/__snapshots__/DataEntry.test.ts.snap b/specifyweb/frontend/js_src/lib/components/Atoms/__tests__/__snapshots__/DataEntry.test.ts.snap index c3ad9fe904b..f7193fa8f71 100644 --- a/specifyweb/frontend/js_src/lib/components/Atoms/__tests__/__snapshots__/DataEntry.test.ts.snap +++ b/specifyweb/frontend/js_src/lib/components/Atoms/__tests__/__snapshots__/DataEntry.test.ts.snap @@ -106,7 +106,7 @@ exports[` renders without errors 5`] = ` From 6867dcb200803e98676b5343fa0f4692854c3baf Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Thu, 5 Mar 2026 12:12:06 -0600 Subject: [PATCH 18/26] move critters --- .../frontend/static/img/splash_screen.svg | 28 +-- .../static/img/splash_screen_dark.svg | 183 +++++++++--------- 2 files changed, 101 insertions(+), 110 deletions(-) diff --git a/specifyweb/frontend/static/img/splash_screen.svg b/specifyweb/frontend/static/img/splash_screen.svg index ac4f0ad44bc..1e34048de6c 100644 --- a/specifyweb/frontend/static/img/splash_screen.svg +++ b/specifyweb/frontend/static/img/splash_screen.svg @@ -42,14 +42,14 @@ - + - - - - - - + + + + + + @@ -59,7 +59,7 @@ - + @@ -68,16 +68,16 @@ - - + + - - + + - + @@ -101,7 +101,7 @@ - + diff --git a/specifyweb/frontend/static/img/splash_screen_dark.svg b/specifyweb/frontend/static/img/splash_screen_dark.svg index a9eba58af2c..46e4a2d8fff 100644 --- a/specifyweb/frontend/static/img/splash_screen_dark.svg +++ b/specifyweb/frontend/static/img/splash_screen_dark.svg @@ -3,30 +3,27 @@ @@ -37,101 +34,95 @@ - - - - - - - - - + - - - - - - - - - - - - - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file From e7f8e175e1cc64e633488182cd8f738d1770335e Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Thu, 5 Mar 2026 19:38:16 -0600 Subject: [PATCH 19/26] Update splash_screen_dark.svg --- .../static/img/splash_screen_dark.svg | 132 +++++++++--------- 1 file changed, 64 insertions(+), 68 deletions(-) diff --git a/specifyweb/frontend/static/img/splash_screen_dark.svg b/specifyweb/frontend/static/img/splash_screen_dark.svg index 46e4a2d8fff..ce406d025b7 100644 --- a/specifyweb/frontend/static/img/splash_screen_dark.svg +++ b/specifyweb/frontend/static/img/splash_screen_dark.svg @@ -3,8 +3,12 @@ @@ -36,90 +32,90 @@ - + - + - - - - - - + + + + + + - + - - - + + + - - - + + + - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + - + - - - - - - + + + + + + - + - - - + + + - - - + + + - - + + - - - - - - - - - - - - - + + + + + + + + + + + + + From fb9d4d0235e9f9b479515a85a62fa9a331e0a883 Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Fri, 6 Mar 2026 21:45:39 -0600 Subject: [PATCH 20/26] feat: use dark text in logo with light sidebar --- specifyweb/frontend/js_src/lib/components/Header/Logo.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/specifyweb/frontend/js_src/lib/components/Header/Logo.tsx b/specifyweb/frontend/js_src/lib/components/Header/Logo.tsx index 9458f6e4128..c6a30634020 100644 --- a/specifyweb/frontend/js_src/lib/components/Header/Logo.tsx +++ b/specifyweb/frontend/js_src/lib/components/Header/Logo.tsx @@ -17,6 +17,7 @@ export function Logo({ 'appearance', 'customLogoCollapsed' ); + const [isSideBarLight] = userPreferences.use('general', 'ui', 'sidebarTheme'); const hueDifference = useHueDifference(); return ( @@ -36,7 +37,11 @@ export function Logo({ hover:animate-hue-rotate ${isCollapsed ? 'hidden' : ''} `} - src="/static/img/logo.svg" + src={ + isSideBarLight === 'light' + ? '/static/img/logo_dark.svg' + : '/static/img/logo.svg' + } style={{ filter: `hue-rotate(${hueDifference}deg)` }} /> Date: Fri, 6 Mar 2026 21:46:16 -0600 Subject: [PATCH 21/26] feat: set color defaults, use brand green --- .../__snapshots__/AppResourcesAside.test.tsx.snap | 4 ++-- .../__tests__/__snapshots__/DataEntry.test.ts.snap | 4 ++-- .../frontend/js_src/lib/components/Atoms/className.ts | 4 ++-- .../js_src/lib/components/Core/OnlineStatus.tsx | 2 +- .../lib/components/Preferences/UserDefinitions.tsx | 10 +++++----- .../js_src/lib/components/WbPlanView/Mapper.tsx | 2 +- specifyweb/frontend/js_src/tailwind.config.ts | 8 ++++---- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/specifyweb/frontend/js_src/lib/components/AppResources/__tests__/__snapshots__/AppResourcesAside.test.tsx.snap b/specifyweb/frontend/js_src/lib/components/AppResources/__tests__/__snapshots__/AppResourcesAside.test.tsx.snap index cfabf33da69..db16a0366a4 100644 --- a/specifyweb/frontend/js_src/lib/components/AppResources/__tests__/__snapshots__/AppResourcesAside.test.tsx.snap +++ b/specifyweb/frontend/js_src/lib/components/AppResources/__tests__/__snapshots__/AppResourcesAside.test.tsx.snap @@ -197,7 +197,7 @@ exports[`AppResourcesAside (expanded case) expanded case 2`] = ` href="/specify/resources/create/discipline_3/" > @@ -265,7 +265,7 @@ exports[`DataEntry.visit no resource 2`] = ` - + {mainText.online()} ) : null diff --git a/specifyweb/frontend/js_src/lib/components/Preferences/UserDefinitions.tsx b/specifyweb/frontend/js_src/lib/components/Preferences/UserDefinitions.tsx index f162fd292c8..ecb776f6b34 100644 --- a/specifyweb/frontend/js_src/lib/components/Preferences/UserDefinitions.tsx +++ b/specifyweb/frontend/js_src/lib/components/Preferences/UserDefinitions.tsx @@ -344,7 +344,7 @@ export const userPreferenceDefinitions = { title: preferencesText.accentColor1(), requiresReload: false, visible: true, - defaultValue: '#6b813d', + defaultValue: '#d4d8bf', renderer: ColorPickerPreferenceItem, container: 'label', }), @@ -352,7 +352,7 @@ export const userPreferenceDefinitions = { title: preferencesText.accentColor2(), requiresReload: false, visible: true, - defaultValue: '#5a6d32', + defaultValue: '#a4af83', renderer: ColorPickerPreferenceItem, container: 'label', }), @@ -360,7 +360,7 @@ export const userPreferenceDefinitions = { title: preferencesText.accentColor3(), requiresReload: false, visible: true, - defaultValue: '#4a5a29', + defaultValue: '#86965e', renderer: ColorPickerPreferenceItem, container: 'label', }), @@ -368,7 +368,7 @@ export const userPreferenceDefinitions = { title: preferencesText.accentColor4(), requiresReload: false, visible: true, - defaultValue: 'rgb(43, 66, 25)', + defaultValue: '#6b813d', renderer: ColorPickerPreferenceItem, container: 'label', }), @@ -376,7 +376,7 @@ export const userPreferenceDefinitions = { title: preferencesText.accentColor5(), requiresReload: false, visible: true, - defaultValue: '#053100', + defaultValue: '#596c32', renderer: ColorPickerPreferenceItem, container: 'label', }), diff --git a/specifyweb/frontend/js_src/lib/components/WbPlanView/Mapper.tsx b/specifyweb/frontend/js_src/lib/components/WbPlanView/Mapper.tsx index ce6614c4a31..60cfbd41847 100644 --- a/specifyweb/frontend/js_src/lib/components/WbPlanView/Mapper.tsx +++ b/specifyweb/frontend/js_src/lib/components/WbPlanView/Mapper.tsx @@ -446,7 +446,7 @@ export function Mapper(props: { Date: Fri, 6 Mar 2026 21:49:21 -0600 Subject: [PATCH 22/26] fix: ensure text contrast --- specifyweb/frontend/js_src/css/main.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/specifyweb/frontend/js_src/css/main.css b/specifyweb/frontend/js_src/css/main.css index 1cd3266028e..8a0b966cc89 100644 --- a/specifyweb/frontend/js_src/css/main.css +++ b/specifyweb/frontend/js_src/css/main.css @@ -17,10 +17,12 @@ body.dark { color-scheme: dark; + @apply text-white; } body:not(.dark) { color-scheme: light; + @apply text-black; } body.no-rounded-corners *:not(.rounded-full) { From 01f6fe847b7da21ff7504cae176dbaaab856940e Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Fri, 6 Mar 2026 23:57:59 -0600 Subject: [PATCH 23/26] fix: redo colors, fix contrast --- specifyweb/frontend/js_src/css/main.css | 4 +- .../js_src/lib/components/Atoms/className.ts | 2 +- .../js_src/lib/components/Forms/SubView.tsx | 2 +- .../components/Header/ExpressSearchTask.tsx | 2 +- .../js_src/lib/components/Header/index.tsx | 7 +- .../lib/components/Molecules/AutoComplete.tsx | 2 +- .../Preferences/ApplyPreferences.tsx | 5 - .../Preferences/UserDefinitions.tsx | 18 +- .../lib/components/QueryBuilder/Results.tsx | 2 +- .../components/Security/PreviewComponents.tsx | 2 +- .../lib/components/Statistics/Buttons.tsx | 2 +- .../lib/components/Statistics/Categories.tsx | 2 +- .../WbPlanView/CustomSelectElement.tsx | 3 +- specifyweb/frontend/js_src/tailwind.config.ts | 4 +- specifyweb/frontend/static/img/logo.svg | 22 +- specifyweb/frontend/static/img/logo_dark.svg | 2 +- .../frontend/static/img/splash_screen.svg | 191 +++++++++--------- 17 files changed, 126 insertions(+), 146 deletions(-) diff --git a/specifyweb/frontend/js_src/css/main.css b/specifyweb/frontend/js_src/css/main.css index 8a0b966cc89..43207039726 100644 --- a/specifyweb/frontend/js_src/css/main.css +++ b/specifyweb/frontend/js_src/css/main.css @@ -103,7 +103,7 @@ [type='checkbox'], [type='radio'] { - @apply text-brand-200 dark:text-brand-400 cursor-pointer focus:border-none focus:!ring-2 + @apply text-brand-300 dark:text-brand-400 cursor-pointer focus:border-none focus:!ring-2 focus:!ring-offset-0; } @@ -194,7 +194,7 @@ } .icon { - @apply active:bg-brand-100 dark:active:bg-brand-500 + @apply active:bg-brand-100 dark:active:bg-brand-400 disabled:!cursor-not-allowed disabled:!text-gray-400 disabled:hover:!text-gray-400 disabled:dark:!text-neutral-600 disabled:hover:dark:!text-neutral-600; diff --git a/specifyweb/frontend/js_src/lib/components/Atoms/className.ts b/specifyweb/frontend/js_src/lib/components/Atoms/className.ts index b711b3c920e..04751887232 100644 --- a/specifyweb/frontend/js_src/lib/components/Atoms/className.ts +++ b/specifyweb/frontend/js_src/lib/components/Atoms/className.ts @@ -67,7 +67,7 @@ export const className = { dangerButton: `${dialogIconTriggers.error} hover:brightness-90 dark:hover:brightness-150 bg-[color:var(--danger-button-color)] text-white`, infoButton: `${dialogIconTriggers.info} hover:brightness-90 dark:hover:brightness-150 bg-[color:var(--info-button-color)] text-white`, warningButton: `${dialogIconTriggers.warning} hover:brightness-90 dark:hover:brightness-150 bg-[color:var(--warning-button-color)] text-white`, - successButton: `${dialogIconTriggers.success} hover:brightness-90 dark:hover:brightness-150 bg-[color:var(--success-button-color)] text-white`, + successButton: `${dialogIconTriggers.success} hover:brightness-90 dark:hover:brightness-150 bg-specify-500 text-white`, saveButton: `hover:brightness-90 dark:hover:brightness-150 text-white bg-[color:var(--save-button-color)]`, fancyButton: `bg-gray-300 hover:bg-brand-200 dark:bg-neutral-600 hover:dark:bg-brand:400 text-gray-800 dark:text-white text-center`, diff --git a/specifyweb/frontend/js_src/lib/components/Forms/SubView.tsx b/specifyweb/frontend/js_src/lib/components/Forms/SubView.tsx index 72685a9e5b9..a71caf19b66 100644 --- a/specifyweb/frontend/js_src/lib/components/Forms/SubView.tsx +++ b/specifyweb/frontend/js_src/lib/components/Forms/SubView.tsx @@ -156,7 +156,7 @@ export function SubView({ ? '!ring-brand-300 dark:!ring-brand-400 ring-2 dark:!ring-2' : '' } - ${isOpen ? '!bg-brand-300 dark:!bg-brand-500' : ''}`} + ${isOpen ? '!bg-brand-400 dark:!bg-brand-400' : ''}`} title={relationship.label} onClick={handleToggle} > diff --git a/specifyweb/frontend/js_src/lib/components/Header/ExpressSearchTask.tsx b/specifyweb/frontend/js_src/lib/components/Header/ExpressSearchTask.tsx index e6dd2880290..d6ded3dd0a0 100644 --- a/specifyweb/frontend/js_src/lib/components/Header/ExpressSearchTask.tsx +++ b/specifyweb/frontend/js_src/lib/components/Header/ExpressSearchTask.tsx @@ -229,7 +229,7 @@ function TableResult({ diff --git a/specifyweb/frontend/js_src/lib/components/Header/index.tsx b/specifyweb/frontend/js_src/lib/components/Header/index.tsx index 41fe6946c23..c4bfafb27a3 100644 --- a/specifyweb/frontend/js_src/lib/components/Header/index.tsx +++ b/specifyweb/frontend/js_src/lib/components/Header/index.tsx @@ -99,7 +99,8 @@ export function Header({ return ( @@ -213,7 +214,7 @@ export function MenuButton({ p-[1.4vh] ${ isActive - ? 'bg-brand-300 !text-white' + ? 'bg-brand-400 !text-white' : isSideBarDark ? 'text-white' : 'text-gray-700' diff --git a/specifyweb/frontend/js_src/lib/components/Molecules/AutoComplete.tsx b/specifyweb/frontend/js_src/lib/components/Molecules/AutoComplete.tsx index 3bbd1a6bea0..cf3efbe00d3 100644 --- a/specifyweb/frontend/js_src/lib/components/Molecules/AutoComplete.tsx +++ b/specifyweb/frontend/js_src/lib/components/Molecules/AutoComplete.tsx @@ -43,7 +43,7 @@ const getScrollParent = (node: Element | undefined): Element => : getScrollParent(node.parentElement ?? undefined); const optionClassName = (isActive: boolean, isSelected: boolean) => ` - p-0.5 active:bg-brand-100 dark:active:bg-brand-500 + p-0.5 active:bg-brand-100 dark:active:bg-brand-400 disabled:cursor-default rounded ${isSelected ? 'text-brand-300' : ''} ${isActive ? 'bg-gray-100 dark:bg-neutral-800' : ''} `; diff --git a/specifyweb/frontend/js_src/lib/components/Preferences/ApplyPreferences.tsx b/specifyweb/frontend/js_src/lib/components/Preferences/ApplyPreferences.tsx index 53fe05f9811..2d9222141b8 100644 --- a/specifyweb/frontend/js_src/lib/components/Preferences/ApplyPreferences.tsx +++ b/specifyweb/frontend/js_src/lib/components/Preferences/ApplyPreferences.tsx @@ -105,11 +105,6 @@ export function SetCssVariables(): null { 'appearance', 'accentColor4' ), - accentColor5: userPreferences.get( - 'general', - 'appearance', - 'accentColor5' - ), saveButtonColor: userPreferences.get( 'general', darkMode ? 'buttonDark' : 'buttonLight', diff --git a/specifyweb/frontend/js_src/lib/components/Preferences/UserDefinitions.tsx b/specifyweb/frontend/js_src/lib/components/Preferences/UserDefinitions.tsx index ecb776f6b34..314b8243482 100644 --- a/specifyweb/frontend/js_src/lib/components/Preferences/UserDefinitions.tsx +++ b/specifyweb/frontend/js_src/lib/components/Preferences/UserDefinitions.tsx @@ -360,7 +360,7 @@ export const userPreferenceDefinitions = { title: preferencesText.accentColor3(), requiresReload: false, visible: true, - defaultValue: '#86965e', + defaultValue: '#74914A', renderer: ColorPickerPreferenceItem, container: 'label', }), @@ -368,15 +368,7 @@ export const userPreferenceDefinitions = { title: preferencesText.accentColor4(), requiresReload: false, visible: true, - defaultValue: '#6b813d', - renderer: ColorPickerPreferenceItem, - container: 'label', - }), - accentColor5: definePref({ - title: preferencesText.accentColor5(), - requiresReload: false, - visible: true, - defaultValue: '#596c32', + defaultValue: '#598137', renderer: ColorPickerPreferenceItem, container: 'label', }), @@ -396,7 +388,7 @@ export const userPreferenceDefinitions = { title: preferencesText.saveButtonColor(), requiresReload: false, visible: isLightMode, - defaultValue: '#77AA49', + defaultValue: '#598137', renderer: ColorPickerPreferenceItem, container: 'label', }), @@ -412,7 +404,7 @@ export const userPreferenceDefinitions = { title: preferencesText.warningButtonColor(), requiresReload: false, visible: isLightMode, - defaultValue: '#5c8f2f', + defaultValue: '#598137', renderer: ColorPickerPreferenceItem, container: 'label', }), @@ -428,7 +420,7 @@ export const userPreferenceDefinitions = { title: preferencesText.successButtonColor(), requiresReload: false, visible: isLightMode, - defaultValue: '#166534', + defaultValue: '#596c32', renderer: ColorPickerPreferenceItem, container: 'label', }), diff --git a/specifyweb/frontend/js_src/lib/components/QueryBuilder/Results.tsx b/specifyweb/frontend/js_src/lib/components/QueryBuilder/Results.tsx index d46aa5b10ce..1e5cfb24ac7 100644 --- a/specifyweb/frontend/js_src/lib/components/QueryBuilder/Results.tsx +++ b/specifyweb/frontend/js_src/lib/components/QueryBuilder/Results.tsx @@ -428,7 +428,7 @@ function TableHeaderCell({ return ( diff --git a/specifyweb/frontend/js_src/lib/components/Security/PreviewComponents.tsx b/specifyweb/frontend/js_src/lib/components/Security/PreviewComponents.tsx index 2909e50dcb0..d7b08cf7de5 100644 --- a/specifyweb/frontend/js_src/lib/components/Security/PreviewComponents.tsx +++ b/specifyweb/frontend/js_src/lib/components/Security/PreviewComponents.tsx @@ -33,7 +33,7 @@ export function PreviewRow({ diff --git a/specifyweb/frontend/js_src/lib/components/Statistics/Categories.tsx b/specifyweb/frontend/js_src/lib/components/Statistics/Categories.tsx index f32cef54c60..93afea79fac 100644 --- a/specifyweb/frontend/js_src/lib/components/Statistics/Categories.tsx +++ b/specifyweb/frontend/js_src/lib/components/Statistics/Categories.tsx @@ -163,7 +163,7 @@ export function Categories({ checkEmptyItems ? ( {label} ) : ( - + {label} ) diff --git a/specifyweb/frontend/js_src/lib/components/WbPlanView/CustomSelectElement.tsx b/specifyweb/frontend/js_src/lib/components/WbPlanView/CustomSelectElement.tsx index 3d2d6120900..465106fdb2d 100644 --- a/specifyweb/frontend/js_src/lib/components/WbPlanView/CustomSelectElement.tsx +++ b/specifyweb/frontend/js_src/lib/components/WbPlanView/CustomSelectElement.tsx @@ -545,7 +545,8 @@ export function CustomSelectElement({ header = ( {has('icon') && ( diff --git a/specifyweb/frontend/js_src/tailwind.config.ts b/specifyweb/frontend/js_src/tailwind.config.ts index 88af0abaf3c..d7006c6ef84 100644 --- a/specifyweb/frontend/js_src/tailwind.config.ts +++ b/specifyweb/frontend/js_src/tailwind.config.ts @@ -50,15 +50,13 @@ const config: Config = { 200: 'var(--accent-color-200)', 300: 'var(--accent-color-300)', 400: 'var(--accent-color-400)', - 500: 'var(--accent-color-500)', }, // Specify brand colors: specify: { 100: '#d4d8bf', 200: '#a4af83', 300: '#86965e', - 400: '#6b813d', - 500: '#596c32', + 400: '#598137', }, // Some in-between shades: gray: { diff --git a/specifyweb/frontend/static/img/logo.svg b/specifyweb/frontend/static/img/logo.svg index 4180aac0e2b..674db2b3a7b 100644 --- a/specifyweb/frontend/static/img/logo.svg +++ b/specifyweb/frontend/static/img/logo.svg @@ -4,23 +4,23 @@ - + - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/specifyweb/frontend/static/img/logo_dark.svg b/specifyweb/frontend/static/img/logo_dark.svg index 62e48c0856c..0a9a87c3d6f 100644 --- a/specifyweb/frontend/static/img/logo_dark.svg +++ b/specifyweb/frontend/static/img/logo_dark.svg @@ -8,7 +8,7 @@ } .st1 { - fill: #74914a; + fill: #598137; } diff --git a/specifyweb/frontend/static/img/splash_screen.svg b/specifyweb/frontend/static/img/splash_screen.svg index 1e34048de6c..6725567818d 100644 --- a/specifyweb/frontend/static/img/splash_screen.svg +++ b/specifyweb/frontend/static/img/splash_screen.svg @@ -1,127 +1,120 @@ - + - - - - - - - + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + \ No newline at end of file From 7edcec77527eaec3a8c019ccffb98de77c1c1c3d Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Sat, 7 Mar 2026 00:12:07 -0600 Subject: [PATCH 24/26] fix(accessibility): fix WCAG errors in queries --- .../lib/components/QueryBuilder/Edit.tsx | 2 ++ .../QueryBuilder/FieldFilterSpec.tsx | 7 +++-- .../lib/components/QueryBuilder/Formatter.tsx | 2 +- .../components/QueryBuilder/RelativeDate.tsx | 30 +++++++++++++++++++ .../components/QueryBuilder/ResultsTable.tsx | 1 + .../QueryBuilder/SpecifyUserAutoComplete.tsx | 6 +++- .../lib/components/QueryComboBox/index.tsx | 5 ++-- .../WbPlanView/CustomSelectElement.tsx | 10 ++++--- 8 files changed, 53 insertions(+), 10 deletions(-) diff --git a/specifyweb/frontend/js_src/lib/components/QueryBuilder/Edit.tsx b/specifyweb/frontend/js_src/lib/components/QueryBuilder/Edit.tsx index 11c2a5b9e95..8f96b00da26 100644 --- a/specifyweb/frontend/js_src/lib/components/QueryBuilder/Edit.tsx +++ b/specifyweb/frontend/js_src/lib/components/QueryBuilder/Edit.tsx @@ -205,11 +205,13 @@ function QueryExport({ } > setName(value)} /> diff --git a/specifyweb/frontend/js_src/lib/components/QueryBuilder/FieldFilterSpec.tsx b/specifyweb/frontend/js_src/lib/components/QueryBuilder/FieldFilterSpec.tsx index 271bb2c1bcc..dbeee8416a3 100644 --- a/specifyweb/frontend/js_src/lib/components/QueryBuilder/FieldFilterSpec.tsx +++ b/specifyweb/frontend/js_src/lib/components/QueryBuilder/FieldFilterSpec.tsx @@ -208,8 +208,10 @@ export function QueryInputField({ // The :after pseudo element sets the width data-value={value} > - {/* This invisible input is used to set the height */} - + {/* This invisible element is used only to set height */} + + + diff --git a/specifyweb/frontend/js_src/lib/components/QueryBuilder/Formatter.tsx b/specifyweb/frontend/js_src/lib/components/QueryBuilder/Formatter.tsx index 7925fc32b19..131ceeffe90 100644 --- a/specifyweb/frontend/js_src/lib/components/QueryBuilder/Formatter.tsx +++ b/specifyweb/frontend/js_src/lib/components/QueryBuilder/Formatter.tsx @@ -180,7 +180,7 @@ function FormatSelect({ ) : showSingular || availableFormatters.length > 1 ? ( <> ( { @@ -158,7 +168,17 @@ function DateSplit({ ), length: (type) => ( { @@ -174,7 +194,17 @@ function DateSplit({ ), direction: (direction) => ( { diff --git a/specifyweb/frontend/js_src/lib/components/QueryBuilder/ResultsTable.tsx b/specifyweb/frontend/js_src/lib/components/QueryBuilder/ResultsTable.tsx index 2dbeba981ff..cde2d931cc1 100644 --- a/specifyweb/frontend/js_src/lib/components/QueryBuilder/ResultsTable.tsx +++ b/specifyweb/frontend/js_src/lib/components/QueryBuilder/ResultsTable.tsx @@ -165,6 +165,7 @@ function Row({ role="cell" > void) | undefined; }): JSX.Element { const valueRef = React.useRef(startValue); @@ -25,11 +28,12 @@ export function SpecifyUserAutoComplete({ return ( - aria-label={undefined} delay={0} disabled={handleChange === undefined} filterItems inputProps={{ + 'aria-label': label, + title: label, onBlur: (): void => handleChange?.( items.find( diff --git a/specifyweb/frontend/js_src/lib/components/QueryComboBox/index.tsx b/specifyweb/frontend/js_src/lib/components/QueryComboBox/index.tsx index 4d568704c11..80e5af29805 100644 --- a/specifyweb/frontend/js_src/lib/components/QueryComboBox/index.tsx +++ b/specifyweb/frontend/js_src/lib/components/QueryComboBox/index.tsx @@ -401,7 +401,6 @@ export function QueryComboBox({ - aria-label={undefined} disabled={ !isLoaded || isReadOnly || @@ -417,10 +416,12 @@ export function QueryComboBox({ filterItems={false} forwardRef={validationRef} inputProps={{ + 'aria-label': field.label, id, required: isRequired, title: - typeof typeSearch === 'object' ? typeSearch.title : undefined, + (typeof typeSearch === 'object' ? typeSearch.title : undefined) ?? + field.label, ...getValidationAttributes(parser), type: 'text', [titlePosition]: 'top', diff --git a/specifyweb/frontend/js_src/lib/components/WbPlanView/CustomSelectElement.tsx b/specifyweb/frontend/js_src/lib/components/WbPlanView/CustomSelectElement.tsx index 465106fdb2d..0621a7a4b93 100644 --- a/specifyweb/frontend/js_src/lib/components/WbPlanView/CustomSelectElement.tsx +++ b/specifyweb/frontend/js_src/lib/components/WbPlanView/CustomSelectElement.tsx @@ -536,6 +536,7 @@ export function CustomSelectElement({ const id = useId('listbox'); const { validationRef } = useValidation(validation); + const hasValidationMessage = (validation ?? '').length > 0; let header: JSX.Element | undefined; let preview: JSX.Element | undefined; @@ -569,8 +570,7 @@ export function CustomSelectElement({ preview = ( // Not tabbable because keyboard events are handled separately (null); - const customSelectOptions = (Boolean(unmapOption) || groups) && ( + const hasOptions = Boolean(unmapOption) || Boolean(groups); + const customSelectOptions = hasOptions && ( is wildly supported. */ - (validation ?? '').length > 0 && ( + hasValidationMessage && ( Date: Sat, 7 Mar 2026 00:28:20 -0600 Subject: [PATCH 25/26] feat(accessibility): fix WCAG in WorkBench --- specifyweb/frontend/js_src/css/workbench.css | 2 +- .../lib/components/WbUtils/Navigation.tsx | 5 +++++ .../components/WorkBench/WbSpreadsheet.tsx | 2 +- .../js_src/lib/components/WorkBench/hooks.ts | 20 +++++++++++++++++++ 4 files changed, 27 insertions(+), 2 deletions(-) diff --git a/specifyweb/frontend/js_src/css/workbench.css b/specifyweb/frontend/js_src/css/workbench.css index 52f14c4859d..fc645696a2d 100644 --- a/specifyweb/frontend/js_src/css/workbench.css +++ b/specifyweb/frontend/js_src/css/workbench.css @@ -161,7 +161,7 @@ } .htCommentTextArea { - @apply cursor-auto dark:border-none dark:bg-neutral-800 dark:text-white; + @apply cursor-auto dark:border-none dark:bg-neutral-800 dark:text-white bg-black; } .htCommentCell:after { diff --git a/specifyweb/frontend/js_src/lib/components/WbUtils/Navigation.tsx b/specifyweb/frontend/js_src/lib/components/WbUtils/Navigation.tsx index 028bc257c3e..b59c231276a 100644 --- a/specifyweb/frontend/js_src/lib/components/WbUtils/Navigation.tsx +++ b/specifyweb/frontend/js_src/lib/components/WbUtils/Navigation.tsx @@ -2,6 +2,7 @@ import React from 'react'; import type { LocalizedString } from 'typesafe-i18n'; import { useBooleanState } from '../../hooks/useBooleanState'; +import { commonText } from '../../localization/common'; import { StringToJsx } from '../../localization/utils'; import { wbText } from '../../localization/workbench'; import { localized } from '../../utils/types'; @@ -78,9 +79,11 @@ export function Navigation({ data-navigation-type={name} > @@ -109,9 +112,11 @@ export function Navigation({ /> String(index + 1)} stretchH="all" tabMoves={tabMoves} contextMenu={contextMenuConfig} diff --git a/specifyweb/frontend/js_src/lib/components/WorkBench/hooks.ts b/specifyweb/frontend/js_src/lib/components/WorkBench/hooks.ts index 12a7714b0f3..03d769f7f9e 100644 --- a/specifyweb/frontend/js_src/lib/components/WorkBench/hooks.ts +++ b/specifyweb/frontend/js_src/lib/components/WorkBench/hooks.ts @@ -38,6 +38,26 @@ export function useHotHooks({ const loading = React.useContext(LoadingContext); return { + /* + * Add accessibility labels to empty table header cells + * This ensures screen readers can properly announce the structure + */ + afterInit: function () { + // Add aria-label to corner header cell (intersection of row/column headers) + const cornerHeader = this.rootElement.querySelector('.ht_clone_top_inline_start_corner th'); + if (cornerHeader && !cornerHeader.textContent?.trim()) { + cornerHeader.setAttribute('aria-label', 'Row and column headers'); + } + + // Add aria-labels to any other empty th elements in headers + const emptyHeaders = this.rootElement.querySelectorAll('thead th:not([aria-label])'); + emptyHeaders.forEach((th: Element) => { + if (!th.textContent?.trim() && th instanceof HTMLElement) { + th.setAttribute('aria-label', 'Header cell'); + } + }); + }, + /* * After cell is rendered, we need to reApply metaData classes * NOTE: From 92a851445d4856f9c8e43f309152dfe2e0301bcb Mon Sep 17 00:00:00 2001 From: Grant Fitzsimmons <37256050+grantfitzsimmons@users.noreply.github.com> Date: Sat, 7 Mar 2026 00:42:39 -0600 Subject: [PATCH 26/26] fix: failing tests --- .../__snapshots__/AppResourceDownload.test.tsx.snap | 2 +- .../__tests__/__snapshots__/AppResourceLoad.test.tsx.snap | 2 +- .../Atoms/__tests__/__snapshots__/Button.test.tsx.snap | 2 +- .../Atoms/__tests__/__snapshots__/Link.test.ts.snap | 2 +- .../Atoms/__tests__/__snapshots__/Submit.test.ts.snap | 2 +- .../js_src/lib/components/Preferences/ApplyPreferences.tsx | 6 ------ .../js_src/lib/components/QueryBuilder/RelativeDate.tsx | 6 +++--- .../lib/components/QueryBuilder/SpecifyUserAutoComplete.tsx | 1 - .../frontend/js_src/lib/components/WorkBench/hooks.ts | 6 ++++-- .../js_src/lib/hooks/__tests__/useHueDifference.test.ts | 4 ++-- 10 files changed, 14 insertions(+), 19 deletions(-) diff --git a/specifyweb/frontend/js_src/lib/components/AppResources/__tests__/__snapshots__/AppResourceDownload.test.tsx.snap b/specifyweb/frontend/js_src/lib/components/AppResources/__tests__/__snapshots__/AppResourceDownload.test.tsx.snap index f45483f7faa..c490e0bdae3 100644 --- a/specifyweb/frontend/js_src/lib/components/AppResources/__tests__/__snapshots__/AppResourceDownload.test.tsx.snap +++ b/specifyweb/frontend/js_src/lib/components/AppResources/__tests__/__snapshots__/AppResourceDownload.test.tsx.snap @@ -5,7 +5,7 @@ exports[`AppResourceDownload simple render 1`] = ` Download diff --git a/specifyweb/frontend/js_src/lib/components/AppResources/__tests__/__snapshots__/AppResourceLoad.test.tsx.snap b/specifyweb/frontend/js_src/lib/components/AppResources/__tests__/__snapshots__/AppResourceLoad.test.tsx.snap index 2ce5b490a67..5da6d1bf195 100644 --- a/specifyweb/frontend/js_src/lib/components/AppResources/__tests__/__snapshots__/AppResourceLoad.test.tsx.snap +++ b/specifyweb/frontend/js_src/lib/components/AppResources/__tests__/__snapshots__/AppResourceLoad.test.tsx.snap @@ -5,7 +5,7 @@ exports[`AppResourceLoad simple render 1`] = ` Load File diff --git a/specifyweb/frontend/js_src/lib/components/Atoms/__tests__/__snapshots__/Button.test.tsx.snap b/specifyweb/frontend/js_src/lib/components/Atoms/__tests__/__snapshots__/Button.test.tsx.snap index b82b1dc2882..7ce6b278776 100644 --- a/specifyweb/frontend/js_src/lib/components/Atoms/__tests__/__snapshots__/Button.test.tsx.snap +++ b/specifyweb/frontend/js_src/lib/components/Atoms/__tests__/__snapshots__/Button.test.tsx.snap @@ -122,7 +122,7 @@ exports[`Button.Success renders without errors 1`] = ` diff --git a/specifyweb/frontend/js_src/lib/components/Atoms/__tests__/__snapshots__/Link.test.ts.snap b/specifyweb/frontend/js_src/lib/components/Atoms/__tests__/__snapshots__/Link.test.ts.snap index 9e6f55951ef..6b66275d284 100644 --- a/specifyweb/frontend/js_src/lib/components/Atoms/__tests__/__snapshots__/Link.test.ts.snap +++ b/specifyweb/frontend/js_src/lib/components/Atoms/__tests__/__snapshots__/Link.test.ts.snap @@ -170,7 +170,7 @@ exports[`Link.Success renders without errors 1`] = ` Close diff --git a/specifyweb/frontend/js_src/lib/components/Atoms/__tests__/__snapshots__/Submit.test.ts.snap b/specifyweb/frontend/js_src/lib/components/Atoms/__tests__/__snapshots__/Submit.test.ts.snap index 2fbfb322fbc..3ae5de022d6 100644 --- a/specifyweb/frontend/js_src/lib/components/Atoms/__tests__/__snapshots__/Submit.test.ts.snap +++ b/specifyweb/frontend/js_src/lib/components/Atoms/__tests__/__snapshots__/Submit.test.ts.snap @@ -69,7 +69,7 @@ exports[`Submit.Success renders without errors 1`] = ` diff --git a/specifyweb/frontend/js_src/lib/components/Preferences/ApplyPreferences.tsx b/specifyweb/frontend/js_src/lib/components/Preferences/ApplyPreferences.tsx index 2d9222141b8..3bc6cdf3e06 100644 --- a/specifyweb/frontend/js_src/lib/components/Preferences/ApplyPreferences.tsx +++ b/specifyweb/frontend/js_src/lib/components/Preferences/ApplyPreferences.tsx @@ -259,12 +259,6 @@ export function SetCssVariables(): null { [prefs.accentColor4] ); - React.useEffect( - () => - document.body.style.setProperty('--accent-color-500', prefs.accentColor5), - [prefs.accentColor5] - ); - React.useEffect( () => document.body.style.setProperty( diff --git a/specifyweb/frontend/js_src/lib/components/QueryBuilder/RelativeDate.tsx b/specifyweb/frontend/js_src/lib/components/QueryBuilder/RelativeDate.tsx index f87a7201ddf..a435694b378 100644 --- a/specifyweb/frontend/js_src/lib/components/QueryBuilder/RelativeDate.tsx +++ b/specifyweb/frontend/js_src/lib/components/QueryBuilder/RelativeDate.tsx @@ -141,7 +141,7 @@ function DateSplit({ ( + count: (_displaySize) => ( ), - length: (type) => ( + length: (_displayType) => ( {queryText.years()} ), - direction: (direction) => ( + direction: (_displayDirection) => ( { if (!th.textContent?.trim() && th instanceof HTMLElement) { th.setAttribute('aria-label', 'Header cell'); diff --git a/specifyweb/frontend/js_src/lib/hooks/__tests__/useHueDifference.test.ts b/specifyweb/frontend/js_src/lib/hooks/__tests__/useHueDifference.test.ts index 64d590e5ffe..9d2dc72af12 100644 --- a/specifyweb/frontend/js_src/lib/hooks/__tests__/useHueDifference.test.ts +++ b/specifyweb/frontend/js_src/lib/hooks/__tests__/useHueDifference.test.ts @@ -9,7 +9,7 @@ describe('useHueDifference', () => { general: { appearance: { accentColor3: '#1a9cff' } }, }); const { result } = renderHook(() => useHueDifference()); - expect(result.current).toBe(126); + expect(result.current).toBe(121); }); test('hue difference is adjusted when difference is negative', async () => { @@ -17,6 +17,6 @@ describe('useHueDifference', () => { general: { appearance: { accentColor3: '#ff1a1a' } }, }); const { result } = renderHook(() => useHueDifference()); - expect(result.current).toBe(280); + expect(result.current).toBe(275); }); });
{mainText.online()}