diff --git a/apps/hyperdrive-trading/src/ui/app/Navbar/Navbar.tsx b/apps/hyperdrive-trading/src/ui/app/Navbar/Navbar.tsx index f02725dd9..6e7b72ef0 100644 --- a/apps/hyperdrive-trading/src/ui/app/Navbar/Navbar.tsx +++ b/apps/hyperdrive-trading/src/ui/app/Navbar/Navbar.tsx @@ -5,7 +5,12 @@ export function Navbar(): ReactElement { return (
- + +
+
+
+
+
Hyperdrive
diff --git a/apps/hyperdrive-trading/src/ui/base/components/Disclosure/Disclosure.tsx b/apps/hyperdrive-trading/src/ui/base/components/Disclosure/Disclosure.tsx index 59544c7b0..13913603b 100644 --- a/apps/hyperdrive-trading/src/ui/base/components/Disclosure/Disclosure.tsx +++ b/apps/hyperdrive-trading/src/ui/base/components/Disclosure/Disclosure.tsx @@ -10,7 +10,7 @@ export function Disclosure({ description, }: DisclosureProps): ReactElement { return ( -
+
{title} diff --git a/apps/hyperdrive-trading/src/ui/base/components/Modal/Modal.tsx b/apps/hyperdrive-trading/src/ui/base/components/Modal/Modal.tsx index b2b32d29c..fcd31eb94 100644 --- a/apps/hyperdrive-trading/src/ui/base/components/Modal/Modal.tsx +++ b/apps/hyperdrive-trading/src/ui/base/components/Modal/Modal.tsx @@ -25,10 +25,7 @@ export function Modal({ {children({ showModal })} -
+ {modalContent}
diff --git a/apps/hyperdrive-trading/src/ui/base/components/Stat.tsx b/apps/hyperdrive-trading/src/ui/base/components/Stat.tsx index 0cc28d5fb..ac4755578 100644 --- a/apps/hyperdrive-trading/src/ui/base/components/Stat.tsx +++ b/apps/hyperdrive-trading/src/ui/base/components/Stat.tsx @@ -1,3 +1,4 @@ +import classNames from "classnames"; import { ReactElement, ReactNode } from "react"; interface StatProps { @@ -17,12 +18,17 @@ export function Stat({

{label}

-
{value}
+
{value}
); } diff --git a/apps/hyperdrive-trading/src/ui/base/components/Well/Well.tsx b/apps/hyperdrive-trading/src/ui/base/components/Well/Well.tsx index e290664b2..b4eb87e99 100644 --- a/apps/hyperdrive-trading/src/ui/base/components/Well/Well.tsx +++ b/apps/hyperdrive-trading/src/ui/base/components/Well/Well.tsx @@ -18,15 +18,14 @@ export function Well({ onClick, }: PropsWithChildren): ReactElement { const isInteractive = !disabled && (interactive || onClick); - const className = classNames("rounded-lg p-4", { - "w-full": block, - "hover:cursor-pointer hover:glass hover:-translate-y-1 hover:shadow-lg transition duration-300 ease-in-out": - isInteractive, - "bg-base-300/50 ring-neutral-content/20 ring-1": !variant, - "bg-primary/5 ring-primary/20 ring-1": variant === "primary", - "bg-secondary/5 ring-secondary/20 ring-1": variant === "secondary", - "bg-accent/5 ring-accent/20 ring-1": variant === "accent", - }); + const className = classNames( + "daisy-card p-4 daisy-card-bordered shadow-[rgba(50,_50,_105,_0.15)_0px_2px_5px_0px,_rgba(0,_0,_0,_0.05)_0px_1px_1px_0px] bg-base-200", + { + "w-full": block, + "hover:cursor-pointer hover:-translate-y-1 transition duration-300 hover:shadow-xl ease-in-out": + isInteractive, + }, + ); if (onClick || interactive) { return ( diff --git a/apps/hyperdrive-trading/src/ui/base/components/tables/SortableGridTable.tsx b/apps/hyperdrive-trading/src/ui/base/components/tables/SortableGridTable.tsx index 5f49fb748..4349de057 100644 --- a/apps/hyperdrive-trading/src/ui/base/components/tables/SortableGridTable.tsx +++ b/apps/hyperdrive-trading/src/ui/base/components/tables/SortableGridTable.tsx @@ -206,8 +206,8 @@ function nextSortDirection( function DefaultEmptyTableElement() { return ( -
-

Nothing to show.

+
+

Nothing to show.

); } diff --git a/apps/hyperdrive-trading/src/ui/hyperdrive/TransactionTable/TransactionsTable.tsx b/apps/hyperdrive-trading/src/ui/hyperdrive/TransactionTable/TransactionsTable.tsx index ba3283dad..f54e45b99 100644 --- a/apps/hyperdrive-trading/src/ui/hyperdrive/TransactionTable/TransactionsTable.tsx +++ b/apps/hyperdrive-trading/src/ui/hyperdrive/TransactionTable/TransactionsTable.tsx @@ -55,10 +55,7 @@ export function TransactionTable({ {tableInstance.getHeaderGroups().map((headerGroup) => ( {headerGroup.headers.map((header) => ( - + {header.isPlaceholder ? null : flexRender( @@ -73,7 +70,7 @@ export function TransactionTable({ {tableInstance.getRowModel().rows.map((row) => ( {row.getVisibleCells().map((cell) => { diff --git a/apps/hyperdrive-trading/src/ui/hyperdrive/longs/CloseLongForm/CloseLongForm.tsx b/apps/hyperdrive-trading/src/ui/hyperdrive/longs/CloseLongForm/CloseLongForm.tsx index 8c59c0230..0e0f4b4d1 100644 --- a/apps/hyperdrive-trading/src/ui/hyperdrive/longs/CloseLongForm/CloseLongForm.tsx +++ b/apps/hyperdrive-trading/src/ui/hyperdrive/longs/CloseLongForm/CloseLongForm.tsx @@ -77,7 +77,7 @@ export function CloseLongForm({ {/* You receive Section */} {long && (
-

You receive

+

You receive

{baseAmountOut ? `${formatBalance({ diff --git a/apps/hyperdrive-trading/src/ui/hyperdrive/longs/OpenLongModalButton/OpenLongModalButton.tsx b/apps/hyperdrive-trading/src/ui/hyperdrive/longs/OpenLongModalButton/OpenLongModalButton.tsx index 05550231d..eea1befc5 100644 --- a/apps/hyperdrive-trading/src/ui/hyperdrive/longs/OpenLongModalButton/OpenLongModalButton.tsx +++ b/apps/hyperdrive-trading/src/ui/hyperdrive/longs/OpenLongModalButton/OpenLongModalButton.tsx @@ -23,30 +23,27 @@ export function OpenLongModalButton({ {({ showModal }) => ( showModal()}>

- +

Open a long

- Earn{" "} - - {fixedAPR?.formatted || "-"}% APR - {" "} - on {hyperdrive.baseToken.symbol} + Earn {fixedAPR?.formatted || "-"}% APR on{" "} + {hyperdrive.baseToken.symbol}

- + Guaranteed fixed rate yield - + Minimal risk and maintenance - + Redeemable before term ends
{/* Using a div styled as a button here just as a visual cue. Don't use a real button here since the Well is interactive already, and doing so would create invalid dom nesting of buttons. */} -
+
Open long
diff --git a/apps/hyperdrive-trading/src/ui/hyperdrive/longs/OpenLongPreview/OpenLongPreview.tsx b/apps/hyperdrive-trading/src/ui/hyperdrive/longs/OpenLongPreview/OpenLongPreview.tsx index 2fd97c29e..99bd77be0 100644 --- a/apps/hyperdrive-trading/src/ui/hyperdrive/longs/OpenLongPreview/OpenLongPreview.tsx +++ b/apps/hyperdrive-trading/src/ui/hyperdrive/longs/OpenLongPreview/OpenLongPreview.tsx @@ -24,16 +24,14 @@ export function OpenLongPreview({
-

Matures on

+

Matures on

{new Date(Number(long.maturity * 1000n)).toLocaleDateString()}

-

- Claimable at maturity -

+

Claimable at maturity

{formatBalance({ balance: long.bondAmount, diff --git a/apps/hyperdrive-trading/src/ui/hyperdrive/lp/AddLiquidityModalButton/AddLiquidityModalButton.tsx b/apps/hyperdrive-trading/src/ui/hyperdrive/lp/AddLiquidityModalButton/AddLiquidityModalButton.tsx index 1ef75bd82..74bc914d8 100644 --- a/apps/hyperdrive-trading/src/ui/hyperdrive/lp/AddLiquidityModalButton/AddLiquidityModalButton.tsx +++ b/apps/hyperdrive-trading/src/ui/hyperdrive/lp/AddLiquidityModalButton/AddLiquidityModalButton.tsx @@ -21,27 +21,26 @@ export function AddLiquidityModalButton({ {({ showModal }) => ( showModal()}>

- +

Add Liquidity

- Earn trading fees and{" "} - interest + Earn trading fees and interest

- + Deposit {hyperdrive.baseToken.symbol} to back trades - + Idle capital accrues vault APY - + No rollovers, easy-to-use
{/* Using a div styled as a button here just as a visual cue. Don't use a real button here since the Well is interactive already, and doing so would create invalid dom nesting of buttons. */} -
+
Add liquidity
diff --git a/apps/hyperdrive-trading/src/ui/hyperdrive/lp/RemoveLiquidityForm/RemoveLiquidityForm.tsx b/apps/hyperdrive-trading/src/ui/hyperdrive/lp/RemoveLiquidityForm/RemoveLiquidityForm.tsx index 90c97c91b..a2885ddbb 100644 --- a/apps/hyperdrive-trading/src/ui/hyperdrive/lp/RemoveLiquidityForm/RemoveLiquidityForm.tsx +++ b/apps/hyperdrive-trading/src/ui/hyperdrive/lp/RemoveLiquidityForm/RemoveLiquidityForm.tsx @@ -90,11 +90,11 @@ export function RemoveLiquidityForm({ {/* You receive Section */}
-

You receive

+

You receive

{formattedBaseAmountOut}

-

Withdrawal shares

+

Withdrawal shares

{formattedWithdrawalSharesOut}

diff --git a/apps/hyperdrive-trading/src/ui/hyperdrive/shorts/CloseShortForm/CloseShortForm.tsx b/apps/hyperdrive-trading/src/ui/hyperdrive/shorts/CloseShortForm/CloseShortForm.tsx index 20f45b5cf..103f12ae8 100644 --- a/apps/hyperdrive-trading/src/ui/hyperdrive/shorts/CloseShortForm/CloseShortForm.tsx +++ b/apps/hyperdrive-trading/src/ui/hyperdrive/shorts/CloseShortForm/CloseShortForm.tsx @@ -77,7 +77,7 @@ export function CloseShortForm({
{short && (
-

You receive

+

You receive

{baseAmountOut ? `${formatBalance({ diff --git a/apps/hyperdrive-trading/src/ui/hyperdrive/shorts/OpenShortModalButton/OpenShortModalButton.tsx b/apps/hyperdrive-trading/src/ui/hyperdrive/shorts/OpenShortModalButton/OpenShortModalButton.tsx index b50b58e18..bd2ebcd79 100644 --- a/apps/hyperdrive-trading/src/ui/hyperdrive/shorts/OpenShortModalButton/OpenShortModalButton.tsx +++ b/apps/hyperdrive-trading/src/ui/hyperdrive/shorts/OpenShortModalButton/OpenShortModalButton.tsx @@ -25,28 +25,27 @@ export function OpenShortModalButton({ {({ showModal }) => ( showModal()}>

- +

Open a short

- Earn{" "} - {vaultRate?.formatted}% APY{" "} - on {hyperdrive.baseToken.symbol} + Earn {vaultRate?.formatted}% APY on{" "} + {hyperdrive.baseToken.symbol}

- + Variable rate yield - + Profit from rising fixed rates - + Redeemable before term ends
{/* Using a div styled as a button here just as a visual cue. Don't use a real button here since the Well is interactive already, and doing so would create invalid dom nesting of buttons. */} -
+
Open short
diff --git a/apps/hyperdrive-trading/src/ui/main.tsx b/apps/hyperdrive-trading/src/ui/main.tsx index 0448c5cfc..5a30b3d6f 100644 --- a/apps/hyperdrive-trading/src/ui/main.tsx +++ b/apps/hyperdrive-trading/src/ui/main.tsx @@ -1,4 +1,4 @@ -import { darkTheme, RainbowKitProvider } from "@rainbow-me/rainbowkit"; +import { RainbowKitProvider } from "@rainbow-me/rainbowkit"; import "@rainbow-me/rainbowkit/styles.css"; import { QueryClientProvider } from "@tanstack/react-query"; @@ -19,11 +19,7 @@ root.render( - + +

Markets

diff --git a/apps/hyperdrive-trading/src/ui/markets/MarketStats/MarketStats.tsx b/apps/hyperdrive-trading/src/ui/markets/MarketStats/MarketStats.tsx index 3f8f6e7f9..152bb464c 100644 --- a/apps/hyperdrive-trading/src/ui/markets/MarketStats/MarketStats.tsx +++ b/apps/hyperdrive-trading/src/ui/markets/MarketStats/MarketStats.tsx @@ -77,7 +77,6 @@ export function MarketStats({ value={tradingVolume.formatted || "0"} /> } - description={"The total trading volume in the last 24 hours"} /> } - description={ - "The total liquidity in the pool available for market making" - } />
); diff --git a/apps/hyperdrive-trading/src/ui/markets/MarketsTable/MarketsTable.tsx b/apps/hyperdrive-trading/src/ui/markets/MarketsTable/MarketsTable.tsx index d485ddd75..d9a90676e 100644 --- a/apps/hyperdrive-trading/src/ui/markets/MarketsTable/MarketsTable.tsx +++ b/apps/hyperdrive-trading/src/ui/markets/MarketsTable/MarketsTable.tsx @@ -61,7 +61,7 @@ export function MarketsTable(): ReactElement { {/* Markets sortable table */}
- - {yieldSource?.protocol} - + {yieldSource?.protocol} ); } diff --git a/apps/hyperdrive-trading/src/ui/onboarding/FAQ/FAQ.tsx b/apps/hyperdrive-trading/src/ui/onboarding/FAQ/FAQ.tsx index 6e586b364..30752ef90 100644 --- a/apps/hyperdrive-trading/src/ui/onboarding/FAQ/FAQ.tsx +++ b/apps/hyperdrive-trading/src/ui/onboarding/FAQ/FAQ.tsx @@ -5,12 +5,12 @@ export function FAQ(): ReactElement { return (
- FAQ + FAQ
What is a long?} description={ -

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut @@ -24,7 +24,7 @@ export function FAQ(): ReactElement { What is a short?} description={ -

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut @@ -38,7 +38,7 @@ export function FAQ(): ReactElement { How does LPing work?} description={ -

+

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut diff --git a/apps/hyperdrive-trading/src/ui/portfolio/ClosedLongsTable/ClosedLongsTable.tsx b/apps/hyperdrive-trading/src/ui/portfolio/ClosedLongsTable/ClosedLongsTable.tsx index 75a525b03..0b9fd09b8 100644 --- a/apps/hyperdrive-trading/src/ui/portfolio/ClosedLongsTable/ClosedLongsTable.tsx +++ b/apps/hyperdrive-trading/src/ui/portfolio/ClosedLongsTable/ClosedLongsTable.tsx @@ -23,8 +23,8 @@ export function ClosedLongsTable({ return ( @@ -28,7 +28,7 @@ export function PositionTabs({ className={classNames( "daisy-tab-lifted daisy-tab daisy-tab-sm border-b-base-100 md:daisy-tab-lg", { - "daisy-tab-active glass": activePositionTab === "Shorts", + "daisy-tab-active": activePositionTab === "Shorts", }, )} > @@ -39,7 +39,7 @@ export function PositionTabs({ className={classNames( "daisy-tab-lifted daisy-tab daisy-tab-sm border-b-base-100 md:daisy-tab-lg", { - "daisy-tab-active glass": activePositionTab === "LP", + "daisy-tab-active": activePositionTab === "LP", }, )} > diff --git a/apps/hyperdrive-trading/src/ui/portfolio/PositionsSection/PositionsSection.tsx b/apps/hyperdrive-trading/src/ui/portfolio/PositionsSection/PositionsSection.tsx index 3fd5bb6b6..b3d6f0cd5 100644 --- a/apps/hyperdrive-trading/src/ui/portfolio/PositionsSection/PositionsSection.tsx +++ b/apps/hyperdrive-trading/src/ui/portfolio/PositionsSection/PositionsSection.tsx @@ -54,7 +54,7 @@ export function PositionsSection({ return (

-
+
- {formatBalance({ balance: balance?.value || 0n, decimals: token.decimals, @@ -37,10 +36,10 @@ export function YourBalanceWell({ token }: { token: Token }): ReactElement { {chainId === 31337 ? ( ) : undefined}
diff --git a/apps/hyperdrive-trading/src/ui/trade/TradeBody/TradeBody.tsx b/apps/hyperdrive-trading/src/ui/trade/TradeBody/TradeBody.tsx index a1f3284a2..628d5bbf8 100644 --- a/apps/hyperdrive-trading/src/ui/trade/TradeBody/TradeBody.tsx +++ b/apps/hyperdrive-trading/src/ui/trade/TradeBody/TradeBody.tsx @@ -28,10 +28,7 @@ export function TradeBody({ hyperdrive }: PositionsTableProps): ReactElement {
- - {longPrice ? ( - - ) : null} +
@@ -50,9 +47,7 @@ export function TradeBody({ hyperdrive }: PositionsTableProps): ReactElement {
- - Transactions - + Transactions {transactionData && ( )} @@ -79,27 +74,40 @@ function MarketBreadcrumbs({ hyperdrive }: { hyperdrive: Hyperdrive }) { ); } -function MarketHeader({ hyperdrive }: { hyperdrive: Hyperdrive }) { +function MarketHeader({ + hyperdrive, + longPrice, +}: { + hyperdrive: Hyperdrive; + longPrice: { price: bigint; formatted: string } | undefined; +}) { return ( -

-
+
+
-
- - +
+ + {hyperdrive.baseToken.symbol}
-
- +
+ hy{hyperdrive.baseToken.symbol}
- {hyperdrive.baseToken.symbol} / hy{hyperdrive.baseToken.symbol} -

+
+

+ {hyperdrive.baseToken.symbol} / hy{hyperdrive.baseToken.symbol} +

+ {longPrice ? ( + + ) : null} +
+
); } @@ -111,10 +119,9 @@ function PriceBadges({ longPrice: { price: bigint; formatted: string }; }) { return ( -
-
- 1{" "} - {hyperdrive.baseToken.symbol} ≈{" "} +
+
+ 1 {hyperdrive.baseToken.symbol} ≈{" "} {formatBalance({ balance: divideBigInt( parseUnits("1", 18), @@ -123,17 +130,16 @@ function PriceBadges({ ), decimals: hyperdrive.baseToken.decimals, - places: 3, + places: 6, })}{" "} hy{hyperdrive.baseToken.symbol}
-
- hyBASE 1 hy - {hyperdrive.baseToken.symbol} ≈{" "} +
+ 1 hy{hyperdrive.baseToken.symbol} ≈{" "} {formatBalance({ balance: longPrice.price, decimals: hyperdrive.baseToken.decimals, - places: 3, + places: 6, })}{" "} {hyperdrive.baseToken.symbol}
diff --git a/apps/hyperdrive-trading/tailwind.config.js b/apps/hyperdrive-trading/tailwind.config.js index 292bddad3..5a474f2a0 100644 --- a/apps/hyperdrive-trading/tailwind.config.js +++ b/apps/hyperdrive-trading/tailwind.config.js @@ -60,21 +60,14 @@ module.exports = { { night: { // eslint-disable-next-line @typescript-eslint/no-var-requires - ...require("daisyui/src/theming/themes")["[data-theme=night]"], - primary: "#F4B1FF", - secondary: "#8ABBFF", - accent: "#D4F17E", - - success: "#61E4A3", - warning: "#FF9031", - error: "#E66E65", - - "base-100": "#151427", - "base-content": "#D6D5F6", - - neutral: "#202d40", - "neutral-content": "#9aa1cb", - + ...require("daisyui/src/theming/themes")["[data-theme=lofi]"], + primary: "#007eed", + secondary: "#522dae", + accent: "#f40000", + "--tab-radius": "0.4rem", + "--rounded-box": "0.4rem", // border radius rounded-box utility class, used in card and other large boxes + "--rounded-btn": "0.4rem", + "--rounded-badge": "0.4rem", "--btn-text-case": "none", // set default text transform for buttons }, },