diff --git a/examples/nextjs/pages/index.tsx b/examples/nextjs/pages/index.tsx index 4391e9676..9457a7909 100644 --- a/examples/nextjs/pages/index.tsx +++ b/examples/nextjs/pages/index.tsx @@ -34,10 +34,12 @@ const Home: NextPage = () => { primary: { backgroundColor: 'black', textColor: 'white', + borderColor: 'gray', }, secondary: { backgroundColor: 'grey', textColor: 'white', + borderColor: 'darkgray', }, }} defaultRoute={{ diff --git a/packages/widget/src/ui/AssetInput.tsx b/packages/widget/src/ui/AssetInput.tsx index 6f2aeecf9..65b82f2eb 100644 --- a/packages/widget/src/ui/AssetInput.tsx +++ b/packages/widget/src/ui/AssetInput.tsx @@ -85,7 +85,7 @@ function AssetInput({ }, [selectedAssetBalance]); return ( -
)} -
+ ); } @@ -264,3 +264,7 @@ const AmountInput = styled.input` background-color: ${(props) => props.theme.primary.backgroundColor}; color: ${(props) => props.theme.primary.textColor}; `; + +const AssetInputContainer = styled.div` + border-color: ${(props) => props.theme.primary.borderColor}; +`; diff --git a/packages/widget/src/ui/AssetSelect/AssetSelectContent.tsx b/packages/widget/src/ui/AssetSelect/AssetSelectContent.tsx index cc381d001..151afc542 100644 --- a/packages/widget/src/ui/AssetSelect/AssetSelectContent.tsx +++ b/packages/widget/src/ui/AssetSelect/AssetSelectContent.tsx @@ -7,6 +7,7 @@ import { formatUnits } from 'viem'; import { SpinnerIcon } from '../Icon/SpinnerIcon'; import { cn } from '../../utils/ui'; +import { styled } from 'styled-components'; interface Props { assets?: Asset[]; @@ -79,7 +80,7 @@ function AssetSelectContent({ )} - - - + ); } export default AssetSelectContent; + +export const ScrollAreaRoot = styled(ScrollArea.Root)` + &::before { + --tw-gradient-from: ${(props) => props.theme.primary.backgroundColor} + var(--tw-gradient-from-position); + } + &::after { + --tw-gradient-from: ${(props) => props.theme.primary.backgroundColor} + var(--tw-gradient-from-position); + } +`; + +export const SearchInput = styled.input` + background-color: ${(props) => props.theme.secondary.backgroundColor}; + border-color: ${(props) => props.theme.secondary.borderColor}; + &::placeholder { + color: ${(props) => props.theme.secondary.textColor}; + } +`; diff --git a/packages/widget/src/ui/Button/HistoryButton.tsx b/packages/widget/src/ui/Button/HistoryButton.tsx index b9e516c01..97690d8c2 100644 --- a/packages/widget/src/ui/Button/HistoryButton.tsx +++ b/packages/widget/src/ui/Button/HistoryButton.tsx @@ -3,6 +3,7 @@ import { SimpleTooltip } from '../SimpleTooltip'; import { cn } from '../../utils/ui'; import { disclosure } from '../../store/disclosures'; import { HistoryIcon } from '../Icon/HistoryIcon'; +import { ThemedButton } from './ShareButton'; export const HistoryButton = ({ className, @@ -10,7 +11,7 @@ export const HistoryButton = ({ }: ComponentProps<'button'>) => { return ( - + ); }; diff --git a/packages/widget/src/ui/Button/SettingsButton.tsx b/packages/widget/src/ui/Button/SettingsButton.tsx index 549e4e5dd..c0316840d 100644 --- a/packages/widget/src/ui/Button/SettingsButton.tsx +++ b/packages/widget/src/ui/Button/SettingsButton.tsx @@ -3,6 +3,7 @@ import { ComponentProps } from 'react'; import { SimpleTooltip } from '../SimpleTooltip'; import { cn } from '../../utils/ui'; import { disclosure } from '../../store/disclosures'; +import { ThemedButton } from './ShareButton'; export const SettingsButton = ({ className, @@ -10,7 +11,7 @@ export const SettingsButton = ({ }: ComponentProps<'button'>) => { return ( - + ); }; diff --git a/packages/widget/src/ui/Button/ShareButton.tsx b/packages/widget/src/ui/Button/ShareButton.tsx index 64dd6bd61..5b70c77fb 100644 --- a/packages/widget/src/ui/Button/ShareButton.tsx +++ b/packages/widget/src/ui/Button/ShareButton.tsx @@ -2,11 +2,12 @@ import { ShareIcon } from '@heroicons/react/20/solid'; import toast from 'react-hot-toast'; import { SimpleTooltip } from '../SimpleTooltip'; import { cn } from '../../utils/ui'; +import { styled } from 'styled-components'; export const ShareButton = ({ shareableLink }: { shareableLink: string }) => { return ( - + ); }; + +export const ThemedButton = styled.button` + color: ${(props) => props.theme.primary.textColor}; +`; diff --git a/packages/widget/src/ui/ChainSelect/ChainSelectContent.tsx b/packages/widget/src/ui/ChainSelect/ChainSelectContent.tsx index 101c4903b..2b00efd4d 100644 --- a/packages/widget/src/ui/ChainSelect/ChainSelectContent.tsx +++ b/packages/widget/src/ui/ChainSelect/ChainSelectContent.tsx @@ -4,6 +4,7 @@ import { matchSorter } from 'match-sorter'; import { useEffect, useMemo, useRef, useState } from 'react'; import { Chain } from '../../hooks/use-chains'; import { cn } from '../../utils/ui'; +import { SearchInput, ScrollAreaRoot } from '../AssetSelect/AssetSelectContent'; interface Props { chains: Chain[]; @@ -36,7 +37,7 @@ function ChainSelectContent({ chains, onChange, onClose }: Props) {

Select Network

- ) : ( - - + )} ); diff --git a/packages/widget/src/ui/Dialog/DialogContent.tsx b/packages/widget/src/ui/Dialog/DialogContent.tsx index 506ba84f4..e154b5815 100644 --- a/packages/widget/src/ui/Dialog/DialogContent.tsx +++ b/packages/widget/src/ui/Dialog/DialogContent.tsx @@ -4,6 +4,7 @@ import { PropsWithChildren, useContext } from 'react'; import { DialogContext } from './context'; import { cn } from '../../utils/ui'; +import { styled } from 'styled-components'; interface Props extends PropsWithChildren { onInteractOutside?: DialogContentProps['onInteractOutside']; @@ -17,7 +18,7 @@ export function DialogContent({ children, onInteractOutside }: Props) { return ( - {children} - + ); } + +const DialogWrapper = styled(Dialog.Content)` + background-color: ${(props) => props.theme.primary.backgroundColor}; + color: ${(props) => props.theme.primary.textColor}; +`; diff --git a/packages/widget/src/ui/theme.ts b/packages/widget/src/ui/theme.ts index 586c212ea..01781e13e 100644 --- a/packages/widget/src/ui/theme.ts +++ b/packages/widget/src/ui/theme.ts @@ -4,10 +4,12 @@ export const defaultTheme = { primary: { backgroundColor: 'white', textColor: 'black', + borderColor: 'rgb(229 229 229)', }, secondary: { backgroundColor: 'rgb(245, 245, 245)', textColor: 'black', + borderColor: 'rgb(229 229 229)', }, }; @@ -15,10 +17,12 @@ export type Theme = { primary: { backgroundColor: string; textColor: string; + borderColor: string; }; secondary: { backgroundColor: string; textColor: string; + borderColor: string; }; };