diff --git a/src/lib/components/Swap/Toolbar/Caption.tsx b/src/lib/components/Swap/Toolbar/Caption.tsx
index 9f2c5d5946..6219609a0e 100644
--- a/src/lib/components/Swap/Toolbar/Caption.tsx
+++ b/src/lib/components/Swap/Toolbar/Caption.tsx
@@ -3,7 +3,8 @@ import { Currency, TradeType } from '@uniswap/sdk-core'
import useUSDCPrice from 'hooks/useUSDCPrice'
import Tooltip from 'lib/components/Tooltip'
import { WrapType } from 'lib/hooks/swap/useWrapCallback'
-import { AlertTriangle, Icon, Info, Spinner } from 'lib/icons'
+import { AlertTriangle, Icon, Info } from 'lib/icons'
+import InlineSpinner from 'lib/icons/InlineSpinner'
import { ThemedText } from 'lib/theme'
import { ReactNode, useCallback, useMemo, useState } from 'react'
import { InterfaceTrade } from 'state/routing/types'
@@ -47,7 +48,7 @@ export function Empty() {
}
export function LoadingTrade() {
- return
Fetching best price…} />
+ return Fetching best price…} />
}
export function WrapCurrency({ loading, wrapType }: { loading: boolean; wrapType: WrapType.UNWRAP | WrapType.WRAP }) {
diff --git a/src/lib/icons/InlineSpinner.tsx b/src/lib/icons/InlineSpinner.tsx
new file mode 100644
index 0000000000..98b3dd22c9
--- /dev/null
+++ b/src/lib/icons/InlineSpinner.tsx
@@ -0,0 +1,57 @@
+import styled, { keyframes } from 'lib/theme'
+
+const rotate = keyframes`
+from {
+ transform: rotate(0deg);
+}
+to {
+ transform: rotate(360deg);
+}
+`
+
+const Wrapper = styled.div`
+ align-items: center;
+ display: flex;
+ height: 16px;
+ transition: 250ms ease color;
+ width: 16px;
+`
+
+const InnerDot = styled.div`
+ background-color: ${({ theme }) => theme.outline};
+ border-radius: 50%;
+ height: 8px;
+ margin-left: 3px;
+ min-height: 8px;
+ min-width: 8px;
+ position: relative;
+ transition: 250ms ease background-color;
+ width: 8px;
+`
+
+const OuterRing = styled.div`
+ animation: ${rotate} 1s cubic-bezier(0.83, 0, 0.17, 1) infinite;
+ background: transparent;
+ border-bottom: 1px solid transparent;
+ border-left: 2px solid ${({ theme }) => theme.primary};
+ border-radius: 50%;
+ border-right: 1px solid transparent;
+ border-top: 1px solid transparent;
+ height: 14px;
+ left: -3px;
+ position: relative;
+ top: -3px;
+ transform: translateZ(0);
+ transition: 250ms ease border-color;
+ width: 14px;
+`
+
+export default function InlineSpinner() {
+ return (
+
+
+
+
+
+ )
+}