diff --git a/README.md b/README.md index 7d319af..d5db2b3 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ cp TriggerFrontend/.env.example TriggerFrontend/.env cp TriggerBackend/.env.example TriggerBackend/.env ``` -⚠️ Update the following fields to match your environment's URLs and credentials. The Domains and Base URL here must be defined without a leading '/'! ⚠️ +⚠️ Update the following fields to match your environment's URLs and credentials. The Domains and Base URL here must be defined without leading or trailing '/'! ⚠️ Frontend .env.example ```shell diff --git a/src/components/Applications/AppItem.tsx b/src/components/Applications/AppItem.tsx index 68ab1cf..f2eee7c 100644 --- a/src/components/Applications/AppItem.tsx +++ b/src/components/Applications/AppItem.tsx @@ -6,7 +6,7 @@ import * as fa6 from 'react-icons/fa6'; import { FiAlertCircle } from 'react-icons/fi'; import * as si from 'react-icons/si'; import * as vsc from 'react-icons/vsc'; -import { actionIconClasses, boxClasses, textClasses } from 'styles'; +import { actionIconClasses, boxClasses, textClasses, toolTipClasses } from 'styles'; import type { Theme } from 'types'; export function AppItem({ @@ -67,8 +67,8 @@ export function AppItem({ > {enabled === 0 && ( | @@ -201,9 +199,7 @@ export default function CurrentWeather({ current }: { current: CW }) { classNames={textClasses} style={{ textAlign: 'center', - textShadow: theme.textShadowsEnabled - ? '1px 1px 1px color-mix(in srgb, var(--mantine-color-accent-0), transparent 50%)' - : undefined, + textShadow: theme.textShadowsEnabled ? textShadowStyle : undefined, }} w={'100%'} > @@ -248,9 +244,7 @@ export default function CurrentWeather({ current }: { current: CW }) { classNames={textClasses} style={{ textAlign: 'center', - textShadow: theme.textShadowsEnabled - ? '1px 1px 1px color-mix(in srgb, var(--mantine-color-accent-0), transparent 50%)' - : undefined, + textShadow: theme.textShadowsEnabled ? textShadowStyle : undefined, }} w={'100%'} > diff --git a/src/hooks/useCommonHooks.ts b/src/hooks/useCommonHooks.ts index a775d56..01396c4 100644 --- a/src/hooks/useCommonHooks.ts +++ b/src/hooks/useCommonHooks.ts @@ -107,6 +107,11 @@ export function useCommonHooks() { 'i', ); + const textShadowStyle = + '1px 1px 1px color-mix(in srgb, var(--mantine-color-accent-0), transparent 50%)'; + const largeTextShadowStyle = + '3px 3px 1px color-mix(in srgb, var(--mantine-color-primary-0), transparent 50%)'; + const reorder = (list: any, startIndex: number, endIndex: number) => { const result = Array.from(list); const [removed]: any = result.splice(startIndex, 1); @@ -235,5 +240,7 @@ export function useCommonHooks() { setCurrentUser, currentLocation, setCurrentLocation, + textShadowStyle, + largeTextShadowStyle, }; } diff --git a/src/pages/homepage/components/Applications/Applications.tsx b/src/pages/homepage/components/Applications/Applications.tsx index b1558b8..e840bd2 100644 --- a/src/pages/homepage/components/Applications/Applications.tsx +++ b/src/pages/homepage/components/Applications/Applications.tsx @@ -9,7 +9,7 @@ function Applications({ contentType }: { contentType: string[] }) { const { data: applicationData, isFetching: isApplicationDataFetching } = useQueryAPI({ endpoint: 'api/enabledApplications', }); - const { appSort, appDensity, appScale, theme } = useCommonHooks(); + const { appSort, appDensity, appScale, theme, textShadowStyle } = useCommonHooks(); const [applications, setApplications] = useState([]); useEffect(() => { @@ -54,9 +54,7 @@ function Applications({ contentType }: { contentType: string[] }) { className={textClasses.sectionTitle} classNames={textClasses} style={{ - boxShadow: theme.textShadowsEnabled - ? '1px 1px 1px color-mix(in srgb, var(--mantine-color-accent-0), transparent 50%)' - : undefined, + boxShadow: theme.textShadowsEnabled ? textShadowStyle : undefined, }} > Applications diff --git a/src/pages/homepage/components/Bookmarks/Bookmarks.tsx b/src/pages/homepage/components/Bookmarks/Bookmarks.tsx index c4b3114..73e6990 100644 --- a/src/pages/homepage/components/Bookmarks/Bookmarks.tsx +++ b/src/pages/homepage/components/Bookmarks/Bookmarks.tsx @@ -12,7 +12,8 @@ function Bookmarks({ contentType }: { contentType: string[] }) { const { data: groupData, isFetched: groupsIsFetched } = useQueryAPI({ endpoint: 'api/bookmarkCategories', }); - const { bookmarkSort, bookmarkDensity, bookmarkScale, theme } = useCommonHooks(); + const { bookmarkSort, bookmarkDensity, bookmarkScale, theme, textShadowStyle } = + useCommonHooks(); const [bookmarks, setBookmarks] = useState([]); const [groups, setGroups] = useState([]); @@ -72,9 +73,7 @@ function Bookmarks({ contentType }: { contentType: string[] }) { mb={'-.5rem'} mt={'1.25rem'} style={{ - boxShadow: theme.textShadowsEnabled - ? '1px 1px 1px color-mix(in srgb, var(--mantine-color-accent-0), transparent 50%)' - : undefined, + boxShadow: theme.textShadowsEnabled ? textShadowStyle : undefined, }} > Bookmarks diff --git a/src/pages/homepage/components/Header/Header.tsx b/src/pages/homepage/components/Header/Header.tsx index 25932e2..a4e062a 100644 --- a/src/pages/homepage/components/Header/Header.tsx +++ b/src/pages/homepage/components/Header/Header.tsx @@ -16,7 +16,14 @@ function Header({ openWeatherModal: () => void; }) { const [time, setTime] = useState(new Date()); - const { isMobile, currentUser, fixDigits, theme } = useCommonHooks(); + const { + isMobile, + currentUser, + fixDigits, + theme, + textShadowStyle, + largeTextShadowStyle, + } = useCommonHooks(); useEffect(() => { setInterval(() => { @@ -38,9 +45,7 @@ function Header({ classNames={textClasses} fz={isMobile ? 24 : undefined} style={{ - textShadow: theme.textShadowsEnabled - ? '3px 3px 1px color-mix(in srgb, var(--mantine-color-primary-0), transparent 50%)' - : undefined, + textShadow: theme.textShadowsEnabled ? largeTextShadowStyle : undefined, }} > {greet @@ -61,9 +66,7 @@ function Header({ classNames={textClasses} style={{ width: 'max-content', - textShadow: theme.textShadowsEnabled - ? '1px 1px 1px color-mix(in srgb, var(--mantine-color-accent-0), transparent 50%)' - : undefined, + textShadow: theme.textShadowsEnabled ? textShadowStyle : undefined, }} > {date} @@ -91,9 +94,7 @@ function Header({ classNames={textClasses} mr={'.25rem'} style={{ - textShadow: theme.textShadowsEnabled - ? '1px 1px 1px color-mix(in srgb, var(--mantine-color-accent-0), transparent 50%)' - : undefined, + textShadow: theme.textShadowsEnabled ? textShadowStyle : undefined, }} > {current.temperature}°F @@ -104,9 +105,7 @@ function Header({ fz={'.875rem'} mb={'.375rem'} style={{ - textShadow: theme.textShadowsEnabled - ? '1px 1px 1px color-mix(in srgb, var(--mantine-color-accent-0), transparent 50%)' - : undefined, + textShadow: theme.textShadowsEnabled ? textShadowStyle : undefined, }} > {current.highTemp}°F/{current.lowTemp}°F @@ -116,9 +115,7 @@ function Header({ className={textClasses.dateTime} classNames={textClasses} style={{ - textShadow: theme.textShadowsEnabled - ? '1px 1px 1px color-mix(in srgb, var(--mantine-color-accent-0), transparent 50%)' - : undefined, + textShadow: theme.textShadowsEnabled ? textShadowStyle : undefined, }} > {`${ diff --git a/src/pages/homepage/components/Header/LargeHeader.tsx b/src/pages/homepage/components/Header/LargeHeader.tsx index 7487fab..b09731c 100644 --- a/src/pages/homepage/components/Header/LargeHeader.tsx +++ b/src/pages/homepage/components/Header/LargeHeader.tsx @@ -5,7 +5,14 @@ import { textClasses } from 'styles'; function LargeHeader({ greet, date }: { greet: string | undefined; date: string }) { const [time, setTime] = useState(new Date()); - const { isMobile, currentUser, fixDigits, theme } = useCommonHooks(); + const { + isMobile, + currentUser, + fixDigits, + theme, + textShadowStyle, + largeTextShadowStyle, + } = useCommonHooks(); useEffect(() => { setInterval(() => { @@ -21,9 +28,7 @@ function LargeHeader({ greet, date }: { greet: string | undefined; date: string classNames={textClasses} fz={isMobile ? '2rem' : '6rem'} style={{ - textShadow: theme.textShadowsEnabled - ? '3px 3px 1px color-mix(in srgb, var(--mantine-color-primary-0), transparent 50%)' - : undefined, + textShadow: theme.textShadowsEnabled ? largeTextShadowStyle : undefined, }} > {greet @@ -39,9 +44,7 @@ function LargeHeader({ greet, date }: { greet: string | undefined; date: string m={0} style={{ width: 'max-content', - textShadow: theme.textShadowsEnabled - ? '1px 1px 1px color-mix(in srgb, var(--mantine-color-accent-0), transparent 50%)' - : undefined, + textShadow: theme.textShadowsEnabled ? textShadowStyle : undefined, }} > {date} @@ -52,9 +55,7 @@ function LargeHeader({ greet, date }: { greet: string | undefined; date: string className={textClasses.dateTime} classNames={textClasses} style={{ - textShadow: theme.textShadowsEnabled - ? '1px 1px 1px color-mix(in srgb, var(--mantine-color-accent-0), transparent 50%)' - : undefined, + textShadow: theme.textShadowsEnabled ? textShadowStyle : undefined, }} > {`${ diff --git a/src/pages/homepage/components/SettingsButton/ThemingCard.tsx b/src/pages/homepage/components/SettingsButton/ThemingCard.tsx index b0b8e72..aae01cb 100644 --- a/src/pages/homepage/components/SettingsButton/ThemingCard.tsx +++ b/src/pages/homepage/components/SettingsButton/ThemingCard.tsx @@ -13,7 +13,13 @@ import { useCommonHooks, useQueryAPI } from 'hooks'; import { useEffect, useState } from 'react'; import { FaDice } from 'react-icons/fa'; import { FiShuffle } from 'react-icons/fi'; -import { actionIconClasses, selectClasses, stackClasses, textClasses } from 'styles'; +import { + actionIconClasses, + selectClasses, + stackClasses, + textClasses, + toolTipClasses, +} from 'styles'; import type { Theme, ThemePlaylist } from 'types'; function ThemingCard() { @@ -80,9 +86,9 @@ function ThemingCard() { Are you sure you want to delete this application? {`"${app.name}"`} This action cannot be undone! diff --git a/src/pages/settings/components/Bookmarks/Bookmarks.tsx b/src/pages/settings/components/Bookmarks/Bookmarks.tsx index f4c8951..ea4f2a8 100644 --- a/src/pages/settings/components/Bookmarks/Bookmarks.tsx +++ b/src/pages/settings/components/Bookmarks/Bookmarks.tsx @@ -209,7 +209,7 @@ const BookmarkSettings = () => { }} searchValue={searchValue} setSearchValue={setSearchValue} - searchPlaceholder={'Search Bookmark Groups...'} + searchPlaceholder={'Search Bookmarks...'} isLoading={isLoading} setIsLoading={setIsLoading} /> diff --git a/src/pages/settings/components/Bookmarks/DebouncedBookmarkItem.tsx b/src/pages/settings/components/Bookmarks/DebouncedBookmarkItem.tsx index 3c7bc72..29b4e99 100644 --- a/src/pages/settings/components/Bookmarks/DebouncedBookmarkItem.tsx +++ b/src/pages/settings/components/Bookmarks/DebouncedBookmarkItem.tsx @@ -3,7 +3,7 @@ import { useDebouncedValue, useDisclosure } from '@mantine/hooks'; import { DeleteItemModal, ManagementPill } from 'components'; import { useCommonHooks, useMutationAPI, useQueryAPI } from 'hooks'; import { useEffect, useState } from 'react'; -import { cardClasses, selectClasses, textInputClasses } from 'styles'; +import { cardClasses, selectClasses, textClasses, textInputClasses } from 'styles'; import type { Bookmark, BookmarkGroup } from 'types'; function DebouncedBookmarkItem({ @@ -63,15 +63,8 @@ function DebouncedBookmarkItem({ Are you sure you want to delete this bookmark? {`"${bookmark.name}"`} This action cannot be undone! diff --git a/src/pages/settings/components/Bookmarks/DebouncedGroupSettingsItem.tsx b/src/pages/settings/components/Bookmarks/DebouncedGroupSettingsItem.tsx index 7727df5..fb4c819 100644 --- a/src/pages/settings/components/Bookmarks/DebouncedGroupSettingsItem.tsx +++ b/src/pages/settings/components/Bookmarks/DebouncedGroupSettingsItem.tsx @@ -23,7 +23,13 @@ import { useCommonHooks, useMutationAPI } from 'hooks'; import { useEffect, useState } from 'react'; import { FaChevronLeft } from 'react-icons/fa'; import { FiPlus } from 'react-icons/fi'; -import { buttonClasses, cardClasses, popoverClasses, textInputClasses } from 'styles'; +import { + buttonClasses, + cardClasses, + popoverClasses, + textClasses, + textInputClasses, +} from 'styles'; import type { Bookmark, BookmarkGroup } from 'types'; import BookmarkSettingsItem from './BookmarkSettingsItem'; import DebouncedBookmarkItem from './DebouncedBookmarkItem'; @@ -119,15 +125,8 @@ function DebouncedGroupSettingsItem({ Are you sure you want to delete this bookmark group? {`"${group.categoryName}"`} This will also delete all bookmarks in this group! diff --git a/src/pages/settings/components/Messages/DebouncedMessage.tsx b/src/pages/settings/components/Messages/DebouncedMessage.tsx index 0898a7a..54ab509 100644 --- a/src/pages/settings/components/Messages/DebouncedMessage.tsx +++ b/src/pages/settings/components/Messages/DebouncedMessage.tsx @@ -2,7 +2,7 @@ import { Card, Stack, Text, TextInput } from '@mantine/core'; import { useDisclosure } from '@mantine/hooks'; import { DeleteItemModal, ManagementPill } from 'components'; import { useCommonHooks } from 'hooks'; -import { cardClasses, textInputClasses } from 'styles'; +import { cardClasses, textClasses, textInputClasses } from 'styles'; import type { Message } from 'types'; function DebouncedMessage({ @@ -32,15 +32,8 @@ function DebouncedMessage({ Are you sure you want to delete this message? {`"${message.message}"`} This action cannot be undone! diff --git a/src/pages/settings/components/Messages/Messages.tsx b/src/pages/settings/components/Messages/Messages.tsx index a2e66d6..15e7bb9 100644 --- a/src/pages/settings/components/Messages/Messages.tsx +++ b/src/pages/settings/components/Messages/Messages.tsx @@ -69,7 +69,7 @@ const MessageSettings = () => { }} searchValue={searchValue} setSearchValue={setSearchValue} - searchPlaceholder={'Search Message content...'} + searchPlaceholder={'Search Messages...'} isLoading={isLoading} setIsLoading={setIsLoading} /> diff --git a/src/pages/settings/components/Search/DebouncedSearchProvider.tsx b/src/pages/settings/components/Search/DebouncedSearchProvider.tsx index d27e3a8..b14d374 100644 --- a/src/pages/settings/components/Search/DebouncedSearchProvider.tsx +++ b/src/pages/settings/components/Search/DebouncedSearchProvider.tsx @@ -3,7 +3,7 @@ import { useDebouncedValue, useDisclosure } from '@mantine/hooks'; import { DeleteItemModal, ManagementPill } from 'components'; import { useCommonHooks, useMutationAPI } from 'hooks'; import { useEffect, useState } from 'react'; -import { cardClasses, textInputClasses } from 'styles'; +import { cardClasses, textClasses, textInputClasses } from 'styles'; import type { Provider } from 'types'; function DebouncedSearchProvider({ @@ -53,15 +53,8 @@ function DebouncedSearchProvider({ Are you sure you want to delete this Search Provider? {`"${provider.name}"`} This action cannot be undone! diff --git a/src/pages/settings/components/Search/SearchProviders.tsx b/src/pages/settings/components/Search/SearchProviders.tsx index 414364f..b0c8f78 100644 --- a/src/pages/settings/components/Search/SearchProviders.tsx +++ b/src/pages/settings/components/Search/SearchProviders.tsx @@ -16,7 +16,7 @@ import { AddItemModal, NoItemsFound, SettingsHeader } from 'components'; import { useCommonHooks, useMutationAPI, useQueryAPI } from 'hooks'; import { useEffect, useState } from 'react'; import { FiPower } from 'react-icons/fi'; -import { popoverClasses, switchClasses, textInputClasses } from 'styles'; +import { popoverClasses, switchClasses, textInputClasses, toolTipClasses } from 'styles'; import type { Provider } from 'types'; import DebouncedSearchProvider from './DebouncedSearchProvider'; import SearchProviderSettingsItem from './SearchProviderSettingsItem'; @@ -158,15 +158,10 @@ const SearchProviderSettings = () => { }} > { }} searchValue={searchValue} setSearchValue={setSearchValue} - searchPlaceholder={'Search Search providerData...'} + searchPlaceholder={'Search Providers...'} isLoading={isLoading} setIsLoading={setIsLoading} /> diff --git a/src/pages/settings/components/Theming/ThemePlaylists/components/ThemePlaylistCard.tsx b/src/pages/settings/components/Theming/ThemePlaylists/components/ThemePlaylistCard.tsx index db0cf2c..ca7e807 100644 --- a/src/pages/settings/components/Theming/ThemePlaylists/components/ThemePlaylistCard.tsx +++ b/src/pages/settings/components/Theming/ThemePlaylists/components/ThemePlaylistCard.tsx @@ -12,7 +12,7 @@ import { DeleteItemModal } from 'components'; import { useCommonHooks } from 'hooks'; import { useState } from 'react'; import { FiEdit, FiTrash } from 'react-icons/fi'; -import { scrollAreaClasses } from 'styles'; +import { scrollAreaClasses, textClasses } from 'styles'; import type { Theme, ThemePlaylist } from 'types'; import { ThemeMiniCard } from '../../Themes'; @@ -51,15 +51,8 @@ export function ThemePlaylistCard({ Are you sure you want to delete this Theme Playlist? {`"${cardPlaylist.name}"`} This action cannot be undone! diff --git a/src/pages/settings/components/Theming/Themes/ThemeCard/ThemeCard.tsx b/src/pages/settings/components/Theming/Themes/ThemeCard/ThemeCard.tsx index 976cedb..e718a41 100644 --- a/src/pages/settings/components/Theming/Themes/ThemeCard/ThemeCard.tsx +++ b/src/pages/settings/components/Theming/Themes/ThemeCard/ThemeCard.tsx @@ -7,6 +7,7 @@ import { } from '@mantine/hooks'; import { DeleteItemModal } from 'components'; import { useCommonHooks } from 'hooks'; +import { textClasses } from 'styles'; import type { Theme, ThemePlaylist } from 'types'; import { MiniAppItem } from './components/MiniAppItem'; import { MiniGroupItem } from './components/MiniGroupItem'; @@ -57,15 +58,8 @@ export function ThemeCard({ Are you sure you want to delete this theme? {`"${cardTheme.name}"`} This action cannot be undone! diff --git a/src/pages/settings/components/Theming/Themes/ThemeModal/components/ThemeEditor.tsx b/src/pages/settings/components/Theming/Themes/ThemeModal/components/ThemeEditor.tsx index 34f502b..ca954e6 100644 --- a/src/pages/settings/components/Theming/Themes/ThemeModal/components/ThemeEditor.tsx +++ b/src/pages/settings/components/Theming/Themes/ThemeModal/components/ThemeEditor.tsx @@ -18,7 +18,13 @@ import { useCommonHooks } from 'hooks'; import { useRef, useState } from 'react'; import { FaShuffle } from 'react-icons/fa6'; import { FiImage, FiSave, FiShuffle, FiX } from 'react-icons/fi'; -import { scrollAreaClasses, textClasses, textInputClasses } from 'styles'; +import { + colorSwatchClasses, + scrollAreaClasses, + textClasses, + textInputClasses, + toolTipClasses, +} from 'styles'; import { BackgroundProperties, type Theme } from 'types'; import { ThemeModalContent } from './ThemeModalContent'; @@ -53,7 +59,7 @@ export function ThemeEditor({ }) { const [query, setQuery] = useState(''); const [hovered, setHovered] = useState(-1); - const { isMobile, theme, getObjectDiff } = useCommonHooks(); + const { isMobile, theme, getObjectDiff, textShadowStyle } = useCommonHooks(); const viewportRef = useRef(null); const [colorId, setColorId] = useState(''); const [colorValue, setColorValue] = useState('#000000'); @@ -124,7 +130,9 @@ export function ThemeEditor({ ); }); - const handleSwatchClick = () => { + const handleSwatchClick = (colorId: string, colorValue: string) => { + setColorId(colorId || ''); + setColorValue(colorValue || ''); closeBackgroundPicker(); openPicker(); setDesignerTheme(selectedTheme); @@ -140,108 +148,98 @@ export function ThemeEditor({ }; return ( <> - - + + { - setColorId('primaryColor'); - setColorValue(selectedTheme.primaryColor); - handleSwatchClick(); + handleSwatchClick('primaryColor', selectedTheme.primaryColor); }} color={selectedTheme.primaryColor} - bd={`1px solid ${selectedTheme.primaryColor}`} - pos={'absolute'} + style={{ borderColor: selectedTheme.primaryColor }} + className={colorSwatchClasses.themeDesignerSwatch} + classNames={colorSwatchClasses} top={'11.5rem'} left={'8.5rem'} - style={{ cursor: 'pointer' }} /> { - setColorId('accentColor'); - setColorValue(selectedTheme.accentColor); - handleSwatchClick(); + handleSwatchClick('accentColor', selectedTheme.accentColor); }} color={selectedTheme.accentColor} - bd={`1px solid ${selectedTheme.primaryColor}`} - pos={'absolute'} + style={{ borderColor: selectedTheme.primaryColor }} + className={colorSwatchClasses.themeDesignerSwatch} + classNames={colorSwatchClasses} bottom={'6rem'} left={'11rem'} - style={{ cursor: 'pointer' }} /> { - setColorId('backgroundColor'); - setColorValue(selectedTheme.backgroundColor); - handleSwatchClick(); + handleSwatchClick('backgroundColor', selectedTheme.backgroundColor); }} color={selectedTheme.backgroundColor} - bd={`1px solid ${selectedTheme.primaryColor}`} - pos={'absolute'} + style={{ borderColor: selectedTheme.primaryColor }} + className={colorSwatchClasses.themeDesignerSwatch} + classNames={colorSwatchClasses} bottom={'4rem'} right={'3.5rem'} - style={{ cursor: 'pointer' }} /> { - setColorId('borderColor'); - setColorValue(selectedTheme.borderColor); - handleSwatchClick(); + handleSwatchClick('borderColor', selectedTheme.borderColor); }} color={selectedTheme.borderColor} - bd={`1px solid ${selectedTheme.primaryColor}`} - pos={'absolute'} + style={{ borderColor: selectedTheme.primaryColor }} + className={colorSwatchClasses.themeDesignerSwatch} + classNames={colorSwatchClasses} top={'4.5rem'} right={'15%'} - style={{ cursor: 'pointer' }} /> { - setColorId('searchColor'); - setColorValue(selectedTheme.searchColor); - handleSwatchClick(); + handleSwatchClick('searchColor', selectedTheme.searchColor); }} color={selectedTheme.searchColor} - bd={`1px solid ${selectedTheme.primaryColor}`} - pos={'absolute'} + style={{ borderColor: selectedTheme.primaryColor }} + className={colorSwatchClasses.themeDesignerSwatch} + classNames={colorSwatchClasses} top={'3.25rem'} left={'6.5rem'} - style={{ cursor: 'pointer' }} /> { @@ -273,15 +271,13 @@ export function ThemeEditor({ }} > {pickerOpen && ( - + Change{' '} @@ -372,6 +368,17 @@ export function ThemeEditor({ @@ -78,9 +78,7 @@ export function ThemeModalContent({ selectedTheme }: { selectedTheme: Theme }) { className={textClasses.sectionTitle} classNames={textClasses} style={{ - boxShadow: selectedTheme.textShadowsEnabled - ? '1px 1px 1px color-mix(in srgb, var(--mantine-color-accent-0), transparent 50%)' - : undefined, + boxShadow: selectedTheme.textShadowsEnabled ? textShadowStyle : undefined, transition: 'all 0.2s ease', }} > @@ -148,9 +146,7 @@ export function ThemeModalContent({ selectedTheme }: { selectedTheme: Theme }) { mb={'-.5rem'} mt={0} style={{ - boxShadow: selectedTheme.textShadowsEnabled - ? '1px 1px 1px color-mix(in srgb, var(--mantine-color-accent-0), transparent 50%)' - : undefined, + boxShadow: selectedTheme.textShadowsEnabled ? textShadowStyle : undefined, transition: 'all 0.2s ease', }} > diff --git a/src/pages/settings/components/Theming/Themes/Themes.tsx b/src/pages/settings/components/Theming/Themes/Themes.tsx index c259523..d6cfa45 100644 --- a/src/pages/settings/components/Theming/Themes/Themes.tsx +++ b/src/pages/settings/components/Theming/Themes/Themes.tsx @@ -16,7 +16,7 @@ import { useEffect, useState } from 'react'; import { FaDice } from 'react-icons/fa'; import { FiChevronRight, FiEdit, FiMousePointer, FiStopCircle } from 'react-icons/fi'; import { useNavigate } from 'react-router-dom'; -import { switchClasses, textClasses } from 'styles'; +import { switchClasses, textClasses, toolTipClasses } from 'styles'; import type { Theme, ThemePlaylist } from 'types'; import { BackgroundModal } from '../Backgrounds'; import { ThemeCard } from './ThemeCard'; @@ -325,9 +325,9 @@ export function Themes() { )} diff --git a/src/pages/settings/components/WoL/DebouncedWolClient.tsx b/src/pages/settings/components/WoL/DebouncedWolClient.tsx index 6bd2261..90f8014 100644 --- a/src/pages/settings/components/WoL/DebouncedWolClient.tsx +++ b/src/pages/settings/components/WoL/DebouncedWolClient.tsx @@ -4,7 +4,7 @@ import { DeleteItemModal } from 'components'; import { useCommonHooks, useMutationAPI } from 'hooks'; import { useEffect, useState } from 'react'; import { FiTrash } from 'react-icons/fi'; -import { cardClasses, textInputClasses } from 'styles'; +import { cardClasses, textClasses, textInputClasses, toolTipClasses } from 'styles'; import type { WolClient } from 'types'; function DebouncedWolClient({ @@ -53,24 +53,16 @@ function DebouncedWolClient({ Are you sure you want to delete this WoL Client? {`"${client.hostname}"`} This action cannot be undone! } />