diff --git a/web/settings/relationship/add-users-list-item.react.js b/web/settings/relationship/add-users-list-item.react.js index cb6164322..00ee2a5bd 100644 --- a/web/settings/relationship/add-users-list-item.react.js +++ b/web/settings/relationship/add-users-list-item.react.js @@ -1,29 +1,52 @@ // @flow +import classnames from 'classnames'; import * as React from 'react'; import type { AccountUserInfo } from 'lib/types/user-types.js'; import css from './add-users-list.css'; -import Button from '../../components/button.react.js'; +import UserAvatar from '../../avatars/user-avatar.react.js'; +import Checkbox from '../../components/checkbox.react.js'; type Props = { +userInfo: AccountUserInfo, - +selectUser: (userID: string) => mixed, + +userSelected: boolean, + +onToggleUser: (userID: string) => mixed, }; function AddUsersListItem(props: Props): React.Node { - const { userInfo, selectUser } = props; - const addUser = React.useCallback( - () => selectUser(userInfo.id), - [selectUser, userInfo.id], + const { userInfo, userSelected, onToggleUser } = props; + + const toggleUser = React.useCallback( + () => onToggleUser(userInfo.id), + [onToggleUser, userInfo.id], ); - return ( - + + const usernameClassname = classnames(css.username, { + [css.selectedUsername]: userSelected, + }); + + const addUsersListItem = React.useMemo( + () => ( +
+ +
+ +
+
{userInfo.username}
+
+ ), + [ + toggleUser, + userSelected, + userInfo.id, + userInfo.username, + usernameClassname, + ], ); + + return addUsersListItem; } export default AddUsersListItem; diff --git a/web/settings/relationship/add-users-list.css b/web/settings/relationship/add-users-list.css index e7de0e5b8..c29f1f6ee 100644 --- a/web/settings/relationship/add-users-list.css +++ b/web/settings/relationship/add-users-list.css @@ -1,54 +1,68 @@ .container { height: 625px; display: flex; flex-direction: column; } .userTagsContainer { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px; } .userRowsContainer { overflow: auto; display: flex; flex-direction: column; flex: 1; - margin-bottom: 8px; } -.addUserButton { - justify-content: space-between; - padding: 16px; +.userListItemContainer { + display: flex; color: var(--relationship-modal-color); font-size: var(--l-font-18); line-height: var(--line-height-display); + padding: 8px; +} + +.userListItemContainer:hover { + cursor: pointer; + background-color: var(--listItem-background-primary-hover); + border-radius: 8px; } -.addUserButtonUsername { +.avatarContainer { + margin: 0 8px 0 16px; +} + +.username { + color: var(--text-background-secondary-default); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } +.selectedUsername { + color: var(--text-background-primary-default); +} + .confirmButtonContainer { display: flex; flex-direction: column; align-items: center; } .hidden { visibility: hidden; height: 0; } .error { padding-bottom: 8px; font-size: var(--s-font-14); line-height: var(--line-height-display); color: var(--error); padding-left: 6px; font-style: italic; } diff --git a/web/settings/relationship/add-users-list.react.js b/web/settings/relationship/add-users-list.react.js index 015e933fb..ede500229 100644 --- a/web/settings/relationship/add-users-list.react.js +++ b/web/settings/relationship/add-users-list.react.js @@ -1,176 +1,177 @@ // @flow import * as React from 'react'; import { useENSNames } from 'lib/hooks/ens-cache.js'; import { useUserSearchIndex } from 'lib/selectors/nav-selectors.js'; import { useSearchUsers } from 'lib/shared/search-utils.js'; import type { UserRelationshipStatus } from 'lib/types/relationship-types.js'; import type { GlobalAccountUserInfo, AccountUserInfo, } from 'lib/types/user-types.js'; import { values } from 'lib/utils/objects.js'; import AddUsersListItem from './add-users-list-item.react.js'; import css from './add-users-list.css'; import Label from '../../components/label.react.js'; import { useSelector } from '../../redux/redux-utils.js'; type Props = { +searchText: string, +excludedStatuses?: $ReadOnlySet, +errorMessage: string, }; function AddUsersList(props: Props): React.Node { const { searchText, excludedStatuses = new Set(), errorMessage } = props; const viewerID = useSelector(state => state.currentUserInfo?.id); const userInfos = useSelector(state => state.userStore.userInfos); const userInfosArray = React.useMemo(() => values(userInfos), [userInfos]); const userStoreSearchIndex = useUserSearchIndex(userInfosArray); const [userStoreSearchResults, setUserStoreSearchResults] = React.useState< $ReadOnlySet, >(new Set(userStoreSearchIndex.getSearchResults(searchText))); React.useEffect(() => { setUserStoreSearchResults( new Set(userStoreSearchIndex.getSearchResults(searchText)), ); }, [searchText, userStoreSearchIndex]); const serverSearchResults = useSearchUsers(searchText); const searchTextPresent = searchText.length > 0; const mergedUserInfos = React.useMemo(() => { const mergedInfos: { [string]: GlobalAccountUserInfo | AccountUserInfo } = {}; for (const userInfo of serverSearchResults) { mergedInfos[userInfo.id] = userInfo; } const userStoreUserIDs = searchTextPresent ? userStoreSearchResults : Object.keys(userInfos); for (const id of userStoreUserIDs) { const { username, relationshipStatus } = userInfos[id]; if (username) { mergedInfos[id] = { id, username, relationshipStatus }; } } return mergedInfos; }, [ searchTextPresent, serverSearchResults, userInfos, userStoreSearchResults, ]); const sortedUsers = React.useMemo( () => Object.keys(mergedUserInfos) .map(userID => mergedUserInfos[userID]) .filter( user => user.id !== viewerID && (!user.relationshipStatus || !excludedStatuses.has(user.relationshipStatus)), ) .sort((user1, user2) => user1.username.localeCompare(user2.username)), [excludedStatuses, mergedUserInfos, viewerID], ); const [pendingUsersToAdd, setPendingUsersToAdd] = React.useState< $ReadOnlyArray, >([]); const selectUser = React.useCallback( (userID: string) => { setPendingUsersToAdd(pendingUsers => { const username = mergedUserInfos[userID]?.username; if (!username || pendingUsers.some(user => user.id === userID)) { return pendingUsers; } const newPendingUser = { id: userID, username, }; let targetIndex = 0; while ( targetIndex < pendingUsers.length && newPendingUser.username.localeCompare( pendingUsers[targetIndex].username, ) > 0 ) { targetIndex++; } return [ ...pendingUsers.slice(0, targetIndex), newPendingUser, ...pendingUsers.slice(targetIndex), ]; }); }, [mergedUserInfos], ); const deselectUser = React.useCallback( (userID: string) => setPendingUsersToAdd(pendingUsers => pendingUsers.filter(userInfo => userInfo.id !== userID), ), [], ); const pendingUserIDs = React.useMemo( () => new Set(pendingUsersToAdd.map(userInfo => userInfo.id)), [pendingUsersToAdd], ); const pendingUsersWithENSNames = useENSNames(pendingUsersToAdd); const userTags = React.useMemo(() => { if (pendingUsersWithENSNames.length === 0) { return null; } const tags = pendingUsersWithENSNames.map(userInfo => ( )); return
{tags}
; }, [deselectUser, pendingUsersWithENSNames]); const filteredUsers = React.useMemo( () => sortedUsers.filter(userInfo => !pendingUserIDs.has(userInfo.id)), [pendingUserIDs, sortedUsers], ); const filteredUsersWithENSNames = useENSNames(filteredUsers); const userRows = React.useMemo( () => filteredUsersWithENSNames.map(userInfo => ( )), [filteredUsersWithENSNames, selectUser], ); let errors; if (errorMessage) { errors =
{errorMessage}
; } return (
{userTags}
{userRows}
{errors}
); } export default AddUsersList; diff --git a/web/theme.css b/web/theme.css index 8baf6d472..ba9e9cb52 100644 --- a/web/theme.css +++ b/web/theme.css @@ -1,459 +1,466 @@ :root { /* Never use color values defined here directly in CSS. Add color variables to "Color Theme" below The reason we never use color values defined here directly in CSS is 1. It makes changing themes from light / dark / user generated impossible. 2. Gives the programmer context into the color being used. 3. If our color system changes it's much easier to change color values in one place. Add a color value to the theme below, and then use it in your CSS. naming convention: - bg: background. - fg: foreground. - color: text-color */ --shades-white-100: #ffffff; --shades-white-90: #f5f5f5; --shades-white-80: #ebebeb; --shades-white-70: #e0e0e0; --shades-white-60: #cccccc; --shades-black-95: #0a0a0a; --shades-black-90: #191919; --shades-black-85: #1f1f1f; --shades-black-75: #404040; --shades-black-60: #666666; --shades-black-50: #808080; --violet-dark-100: #7e57c2; --violet-dark-80: #6d49ab; --violet-dark-60: #563894; --violet-dark-40: #44297a; --violet-dark-20: #331f5c; --violet-light-100: #ae94db; --violet-light-80: #b9a4df; --violet-light-60: #d3c6ec; --violet-light-40: #e8e0f5; --violet-light-20: #f3f0fa; --success-light-10: #d5f6e3; --success-light-50: #6cdf9c; --success-primary: #00c853; --success-dark-50: #029841; --success-dark-90: #034920; --error-light-10: #feebe6; --error-light-50: #f9947b; --error-primary: #f53100; --error-dark-50: #b62602; --error-dark-90: #4f1203; --shadow-dark-35: #00000059; --shadow-dark-25: #00000040; --shadow-light-35: #ffffff59; --shadow-light-25: #ffffff40; --logo-bg: #111827; --spoiler-color: #33332c; --loading-foreground: #1b0e38; --bg: var(--shades-black-95); --fg: var(--shades-white-100); --color-disabled: var(--shades-black-50); --text-input-bg: var(--shades-black-75); --text-input-color: var(--shades-white-60); --text-input-placeholder: var(--shades-white-60); --border: var(--shades-black-75); --error: var(--error-primary); --success: var(--success-dark-50); /* Color Theme */ --btn-bg-filled: var(--violet-dark-100); --btn-bg-outline: var(--shades-black-85); --btn-bg-success: var(--success-dark-50); --btn-bg-danger: var(--error-primary); --btn-bg-disabled: var(--shades-black-75); --btn-disabled-color: var(--shades-black-50); --chat-bg: var(--violet-dark-80); --chat-confirmation-icon: var(--violet-dark-100); --keyserver-selection: var(--violet-dark-60); --thread-selection: var(--violet-light-80); --thread-hover-bg: var(--shades-black-75); --thread-active-bg: var(--shades-black-75); --chat-timestamp-color: var(--shades-black-50); --tool-tip-bg: var(--shades-black-75); --tool-tip-color: var(--shades-white-60); --border-color: var(--shades-black-75); --calendar-chevron: var(--shades-black-50); --calendar-day-bg: var(--shades-black-50); --calendar-day-selected-color: var(--violet-dark-80); --community-bg: var(--shades-black-85); --community-settings-selected: var(--violet-dark-60); --unread-bg: var(--error-primary); --settings-btn-bg: var(--violet-dark-100); --community-creation-btn-bg: var(--shades-black-75); --community-creation-ancestry-bg: var(--shades-black-75); --community-creation-ancestry-text: var(--shades-black-50); --community-creation-keyserver-container: var(--shades-black-95); --modal-bg: var(--shades-black-85); --modal-fg: var(--shades-white-60); --join-bg: var(--shades-black-85); --help-color: var(--shades-black-50); --breadcrumb-color: var(--shades-white-60); --breadcrumb-color-unread: var(--shades-white-60); --btn-outline-border: var(--shades-black-50); --thread-color-read: var(--shades-black-50); --thread-preview-secondary: var(--shades-black-60); --relationship-button-green: var(--success-dark-50); --relationship-button-red: var(--error-primary); --relationship-button-text: var(--fg); --disconnected-bar-alert-bg: var(--error-dark-50); --disconnected-bar-alert-color: var(--shades-white-100); --disconnected-bar-connecting-bg: var(--shades-white-70); --disconnected-bar-connecting-color: var(--shades-black-95); --permission-color: var(--shades-white-60); --thread-top-bar-color: var(--shades-white-100); --thread-top-bar-search-button-color: var(--shades-black-50); --thread-ancestor-keyserver-border: var(--shades-black-60); --thread-ancestor-color: var(--shades-white-100); --thread-ancestor-separator-color: var(--shades-white-60); --text-message-default-background: var(--shades-black-75); --message-action-tooltip-bg: var(--shades-black-85); --message-action-tooltip-bg-light: var(--shades-black-75); --menu-bg: var(--shades-black-85); --menu-bg-light: var(--shades-black-75); --menu-separator-color: var(--shades-black-75); --menu-color: var(--shades-black-50); --menu-color-light: var(--shades-white-60); --menu-color-hover: var(--shades-white-100); --menu-color-dangerous: var(--error-primary); --menu-color-dangerous-hover: var(--error-light-50); --app-list-icon-disabled-color: var(--shades-white-80); --chat-thread-list-color-active: var(--shades-white-60); --chat-thread-list-menu-color: var(--shades-white-60); --chat-thread-list-menu-bg: var(--shades-black-75); --chat-thread-list-menu-active-color: var(--shades-white-60); --chat-thread-list-menu-active-bg: var(--shades-black-85); --tabs-header-active-color: var(--shades-white-100); --tabs-header-active-border: var(--violet-light-100); --tabs-header-active-background: var(--violet-dark-100); --tabs-header-background-color: var(--shades-black-50); --tabs-header-background-color-pill: var(--shades-white-60); --tabs-header-background-border: var(--shades-black-75); --tabs-header-background-color-hover: var(--shades-white-80); --tabs-header-background-border-hover: var(--shades-black-60); --members-modal-member-text: var(--shades-black-50); --members-modal-member-text-hover: var(--shades-white-100); --label-default-bg: var(--violet-dark-80); --label-default-color: var(--shades-white-80); --label-grey-bg: var(--shades-black-75); --label-grey-color: var(--shades-white-80); --subchannels-modal-color: var(--shades-black-50); --subchannels-modal-color-hover: var(--shades-white-100); --color-selector-active-bg: var(--shades-black-75); --relationship-modal-color: var(--shades-black-50); --arrow-extension-color: var(--shades-black-50); --modal-close-color: var(--shades-black-50); --modal-close-color-hover: var(--shades-white-100); --add-members-group-header-color: var(--shades-black-50); --add-members-item-color: var(--shades-black-50); --add-members-item-color-hover: var(--shades-white-100); --add-members-item-disabled-color: var(--shades-black-75); --add-members-item-disabled-color-hover: var(--shades-black-50); --add-members-remove-pending-color: var(--error-primary); --add-members-remove-pending-color-hover: var(--error-light-50); --radio-border: var(--shades-black-60); --radio-color: var(--shades-white-60); --notification-settings-option-selected-bg: var(--shades-black-75); --notification-settings-option-title-color: var(--shades-white-90); --notification-settings-option-color: var(--shades-white-60); --notification-settings-option-invalid-color: var(--shades-black-75); --notification-settings-option-invalid-selected-color: var(--shades-black-50); --thread-creation-search-container-bg: var(--shades-black-85); --thread-creation-close-search-color: var(--shades-black-50); --thread-creation-search-item-bg-hover: var(--shades-black-75); --thread-creation-search-item-info-color: var(--shades-black-50); --chat-message-list-active-border: #5989d6; --sidebars-modal-color: var(--shades-black-50); --sidebars-modal-color-hover: var(--shades-white-100); --inline-engagement-bg: var(--shades-black-60); --inline-engagement-bg-hover: var(--shades-black-75); --inline-engagement-color: var(--fg); --compose-subchannel-header-fg: var(--shades-black-50); --compose-subchannel-header-bg: var(--shades-black-75); --compose-subchannel-label-color: var(--shades-black-50); --compose-subchannel-mark-color: var(--violet-light-100); --enum-option-icon-color: var(--violet-dark-100); --show-password-bg-hover: var(--shades-black-60); --typeahead-overlay-light: var(--shades-black-75); --typeahead-overlay-dark: var(--shades-black-85); --typeahead-overlay-text: var(--shades-white-100); --typeahead-overlay-shadow-primary: rgba(0, 0, 0, 0.25); --typeahead-overlay-shadow-secondary: rgba(0, 0, 0, 0.4); --spoiler-text-color: var(--spoiler-color); --spoiler-background-color: var(--spoiler-color); --purple-link: var(--violet-light-100); --drawer-expand-button: var(--shades-black-50); --drawer-expand-button-disabled: var(--shades-black-75); --drawer-item-color: var(--shades-white-60); --drawer-active-item-color: var(--shades-white-100); --drawer-open-community-bg: var(--shades-black-90); --active-drawer-item-bg: rgba(0, 0, 0, 0.5); --community-drawer-lines: rgba(255, 255, 255, 0.08); --topbar-button-bg: var(--shades-black-85); --filters-button-bg: var(--shades-black-95); --filters-button-border: var(--shades-black-75); --filters-button-hover-bg: var(--shades-black-85); --filter-panel-fg: var(--shades-black-50); --filter-panel-bg: #0d0d0d; --topbar-button-bg-hover: var(--shades-black-75); --topbar-button-fg: var(--shades-white-60); --message-label-color: var(--shades-black-50); --topbar-lines: rgba(255, 255, 255, 0.08); --pin-message-information-text-color: var(--shades-white-60); --pin-message-modal-border-color: var(--shades-black-75); --pinned-count-banner-color: var(--shades-black-85); --pinned-count-text-color: var(--shades-white-90); --modal-overlay-background-90: rgba(0, 0, 0, 0.9); --modal-overlay-background-80: rgba(0, 0, 0, 0.8); --dropdown-text: var(--shades-white-100); --dropdown-select-bg: var(--shades-black-85); --dropdown-select-border: var(--shades-white-60); --dropdown-option-bg: var(--shades-black-75); --dropdown-option-hover-bg: var(--shades-black-60); --dropdown-selected-option-check-color: var(--violet-dark-100); --dropdown-chevron-color: var(--shades-white-100); --dropdown-disabled-color: var(--shades-black-50); --change-member-role-modal-description-text: var(--shades-white-60); --change-member-role-modal-generic-text: var(--shades-white-100); --change-member-role-modal-disabled-background: var(--shades-black-75); --unsaved-changes-modal-text-color: var(--shades-white-60); --modal-secondary-label: var(--shades-black-50); --modal-separator: var(--shades-black-75); } /* Hey Comm Devs! Below is the in progress work for introducing a new color design system/light mode for our web app! We will be slowly migrating over to this new system over the next few months. At this moment, if you are working on a new feature, please use the new color system. If there is not a good color for your use case, please message Ginsu and/or Ted and we can help you figure out what the best to do is. Also until this project is fully done, please add Ginsu as a reviewer to any diff where we use the colors. If you have any questions please message Ginsu or Ted. Thanks :) */ /* Dark theme (default CSS theme) */ :root { /* Frame */ --frame-background-primary-default: var(--shades-black-95); --frame-background-secondary-default: var(--shades-black-85); --frame-background-tertiary-default: var(--shades-black-75); /* Text */ --text-background-primary-default: var(--shades-white-100); --text-background-secondary-default: var(--shades-white-60); --text-background-tertiary-default: var(--shades-black-50); --text-background-danger-default: var(--error-primary); /* Panel */ --panel-background-primary-default: var(--shades-black-85); --panel-background-secondary-default: var(--shades-black-90); --panel-headerShadow-primary-default: var(--shadow-dark-35); --panel-headerShadow-secondary-default: var(--shadow-dark-25); /* Button */ --button-background-primary-default: var(--violet-dark-100); --button-background-secondary-default: var(--shades-black-75); --button-background-tertiary-default: var(--shades-black-85); --button-background-success-default: var(--success-primary); --button-background-primary-hover: var(--violet-dark-80); --button-background-secondary-hover: var(--shades-black-60); --button-background-tertiary-hover: var(--shades-black-75); --button-background-primary-disabled: var(--shades-black-75); --button-border-outline-default: var(--shades-black-50); --button-label-primary-default: var(--shades-white-100); --button-label-secondary-default: var(--shades-white-60); --button-label-tertiary-default: var(--shades-black-50); --button-label-primary-hover: var(--shades-white-90); --button-label-primary-disabled: var(--shades-black-50); --button-label-tertiary-hover: var(--shades-white-80); /* Link */ --link-background-primary-default: var(--violet-dark-100); --link-background-primary-disabled: var(--shades-black-50); /* Separator */ --separator-background-primary-default: var(--shades-black-75); /* Modal */ --modal-background-primary-default: var(--shades-black-85); --modal-background-secondary-default: var(--shades-black-90); --modal-header-primary-default: var(--shades-white-100); --modal-close-primary-default: var(--shades-black-50); --modal-close-primary-hover: var(--shades-white-100); --modal-listItem-primary-hover: var(--shades-black-90); /* Input Field */ --inputField-background-primary-default: var(--shades-black-85); --inputField-background-secondary-default: var(--shades-black-75); --inputField-label-primary-default: var(--shades-white-100); --inputField-label-secondary-default: var(--shades-black-50); --inputField-border-primary-default: var(--shades-black-75); --inputField-clearBackground-primary-default: var(--shades-black-60); --inputField-clearIcon-primary-default: var(--shades-white-100); /* Status Indicator */ --statusIndicator-background-outer-active: var(--success-dark-90); --statusIndicator-background-outer-inactive: var(--error-dark-90); --statusIndicator-background-inner-active: var(--success-primary); --statusIndicator-background-inner-inactive: var(--error-primary); /* Enum Option */ --enumOption-background-primary-selected: var(--shades-black-75); --enumOption-icon-primary-default: var(--violet-dark-100); --enumOption-title-primary-default: var(--shades-white-90); --enumOption-description-primary-default: var(--shades-white-60); --enumOption-input-primary-default: var(--shades-black-60); --enumOption-input-primary-selected: var(--shades-white-60); --enumOption-input-secondary-default: var(--shades-white-80); --enumOption-input-secondary-selected: var(--success-primary); --enumOption-input-secondary-disabled: var(--shades-black-50); /* Tooltip */ --tooltip-background-primary-default: var(--shades-black-75); --tooltip-label-primary-default: var(--shades-white-100); /* Unread Indicator */ --unreadIndicator-background-primary-default: var(--error-primary); --unreadIndicator-label-primary-default: var(--shades-white-100); --unreadIndicator-border-primary-default: var(--shades-black-85); /* Tab */ --tab-indicator-primary-default: var(--shades-black-85); --tab-indicator-primary-active: var(--violet-dark-100); --tab-label-primary-default: var(--shades-white-60); --tab-label-primary-active: var(--shades-white-100); --tab-label-primary-hover: var(--shades-white-80); --tab-indicator-secondary-default: var(--shades-black-75); --tab-indicator-secondary-active: var(--violet-light-100); --tab-indicator-secondary-hover: var(--shades-black-60); --tab-label-secondary-default: var(--shades-black-50); --tab-label-secondary-active: var(--shades-white-100); --tab-label-secondary-hover: var(--shades-white-80); + + /* List Item */ + --listItem-background-primary-hover: var(--shades-black-90); } /* Light theme */ [data-theme='light'] { /* Frame */ --frame-background-primary-default: var(--shades-white-100); --frame-background-secondary-default: var(--shades-white-80); --frame-background-tertiary-default: var(--shades-white-60); /* Text */ --text-background-primary-default: var(--shades-black-95); --text-background-secondary-default: var(--shades-black-60); --text-background-tertiary-default: var(--shades-black-50); --text-background-danger-default: var(--error-primary); /* Panel */ /* @GINSU: TODO double check these values after redesign is finished */ --panel-background-primary-default: var(--shades-white-80); --panel-background-secondary-default: var(--shades-white-90); --panel-headerShadow-primary-default: var(--shadow-light-35); --panel-headerShadow-secondary-default: var(--shadow-light-25); /* Button */ --button-background-primary-default: var(--violet-dark-100); --button-background-secondary-default: var(--shades-black-50); /* @GINSU: TODO double check the tertiary values after redesign is finished */ --button-background-tertiary-default: var(--shades-black-60); --button-background-success-default: var(--success-primary); --button-background-primary-hover: var(--violet-dark-80); --button-background-secondary-hover: var(--shades-black-60); --button-background-tertiary-hover: var(--shades-black-50); --button-background-primary-disabled: var(--shades-white-60); --button-border-outline-default: var(--shades-black-50); --button-label-primary-default: var(--shades-white-100); --button-label-secondary-default: var(--shades-white-90); --button-label-tertiary-default: var(--shades-black-60); --button-label-primary-hover: var(--shades-white-90); --button-label-primary-disabled: var(--shades-black-50); --button-label-tertiary-hover: var(--shades-white-80); /* Link */ --link-background-primary-default: var(--violet-dark-100); --link-background-primary-disabled: var(--shades-black-50); /* Separator */ --separator-background-primary-default: var(--shades-white-60); /* Modal */ --modal-background-primary-default: var(--shades-white-100); --modal-background-secondary-default: var(--shades-white-80); --modal-header-primary-default: var(--shades-black-95); --modal-close-primary-default: var(--shades-black-50); --modal-close-primary-hover: var(--shades-black-95); --modal-listItem-primary-hover: var(--shades-white-70); /* Input Field */ --inputField-background-primary-default: var(--shades-white-100); --inputField-background-secondary-default: var(--shades-white-60); --inputField-label-primary-default: var(--shades-black-95); --inputField-label-secondary-default: var(--shades-black-60); --inputField-border-primary-default: var(--shades-white-60); --inputField-clearBackground-primary-default: var(--shades-black-50); --inputField-clearIcon-primary-default: var(--shades-white-100); /* Status Indicator */ --statusIndicator-background-outer-active: var(--success-dark-50); --statusIndicator-background-outer-inactive: var(--error-dark-50); --statusIndicator-background-inner-active: var(--success-primary); --statusIndicator-background-inner-inactive: var(--error-primary); /* Enum Option */ --enumOption-background-primary-selected: var(--shades-white-70); --enumOption-icon-primary-default: var(--violet-dark-100); --enumOption-title-primary-default: var(--shades-black-85); --enumOption-description-primary-default: var(--shades-black-60); --enumOption-input-primary-default: var(--shades-black-50); --enumOption-input-primary-selected: var(--shades-black-60); --enumOption-input-secondary-default: var(--shades-black-75); --enumOption-input-secondary-selected: var(--success-primary); --enumOption-input-secondary-disabled: var(--shades-black-50); /* Tooltip */ /* @GINSU: TODO double check these values after redesign is finished */ --tooltip-background-primary-default: var(--shades-white-80); --tooltip-label-primary-default: var(--shades-black-85); /* Unread Indicator */ --unreadIndicator-background-primary-default: var(--error-primary); --unreadIndicator-label-primary-default: var(--shades-white-100); --unreadIndicator-border-primary-default: var(--shades-white-80); /* Tab */ /* @GINSU: TODO double check these values after redesign is finished */ --tab-indicator-primary-default: var(--shades-white-60); --tab-indicator-primary-active: var(--violet-dark-100); --tab-label-primary-default: var(--shades-black-75); --tab-label-primary-active: var(--shades-white-100); --tab-label-primary-hover: var(--shades-black-95); --tab-indicator-secondary-default: var(--shades-black-50); --tab-indicator-secondary-active: var(--violet-dark-100); --tab-indicator-secondary-hover: var(--shades-black-60); --tab-label-secondary-default: var(--shades-black-60); --tab-label-secondary-active: var(--shades-black-95); --tab-label-secondary-hover: var(--shades-black-85); + + /* List Item */ + /* @GINSU: TODO double check these values after redesign is finished */ + --listItem-background-primary-hover: var(--shades-white-70); }