mirror of
https://github.com/kremalicious/asi-calculator.git
synced 2024-12-22 09:23:16 +01:00
ui reorg
This commit is contained in:
parent
70398b26c4
commit
2498e5e5cb
@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
.title {
|
.title {
|
||||||
font-size: clamp(1.3rem, 10vw, 2.5rem);
|
font-size: clamp(1.3rem, 10vw, 2.5rem);
|
||||||
|
margin-top: 5vh;
|
||||||
}
|
}
|
||||||
|
|
||||||
.description {
|
.description {
|
||||||
@ -19,8 +20,11 @@
|
|||||||
|
|
||||||
.grid {
|
.grid {
|
||||||
display: grid;
|
display: grid;
|
||||||
gap: 2rem;
|
gap: 1.5rem;
|
||||||
grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
|
grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
|
||||||
|
}
|
||||||
|
|
||||||
|
.breakout {
|
||||||
max-width: calc(var(--max-width) * 1.5);
|
max-width: calc(var(--max-width) * 1.5);
|
||||||
margin: 3rem auto;
|
margin: 3rem auto;
|
||||||
}
|
}
|
||||||
|
13
app/page.tsx
13
app/page.tsx
@ -2,6 +2,7 @@ import styles from './page.module.css'
|
|||||||
import { metadata } from './layout'
|
import { metadata } from './layout'
|
||||||
import { Swap, Buy } from '@/components/Strategies'
|
import { Swap, Buy } from '@/components/Strategies'
|
||||||
import { Content } from '@/components/Content'
|
import { Content } from '@/components/Content'
|
||||||
|
import { CalculationBase } from '@/components/CalculationBase'
|
||||||
|
|
||||||
export default function Home() {
|
export default function Home() {
|
||||||
return (
|
return (
|
||||||
@ -11,10 +12,14 @@ export default function Home() {
|
|||||||
<p className={styles.description}>{`${metadata.description}`}</p>
|
<p className={styles.description}>{`${metadata.description}`}</p>
|
||||||
</header>
|
</header>
|
||||||
<main className={styles.main}>
|
<main className={styles.main}>
|
||||||
<div className={styles.grid}>
|
<section className={styles.breakout}>
|
||||||
<Swap />
|
<div className={styles.grid}>
|
||||||
<Buy />
|
<Swap />
|
||||||
</div>
|
<Buy />
|
||||||
|
</div>
|
||||||
|
<CalculationBase />
|
||||||
|
</section>
|
||||||
|
|
||||||
<Content />
|
<Content />
|
||||||
</main>
|
</main>
|
||||||
<footer className={styles.footer}>
|
<footer className={styles.footer}>
|
||||||
|
27
components/CalculationBase/CalculationBase.module.css
Normal file
27
components/CalculationBase/CalculationBase.module.css
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
.label {
|
||||||
|
font-size: 0.7rem;
|
||||||
|
color: rgba(var(--foreground-rgb), 0.6);
|
||||||
|
border: 1px solid rgba(var(--foreground-rgb), 0.2);
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
padding: 0.1rem 0.3rem;
|
||||||
|
margin-left: 0.2rem;
|
||||||
|
margin-right: 0.2rem;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.calculationBase {
|
||||||
|
border-top: 1px solid rgba(var(--foreground-rgb), 0.2);
|
||||||
|
border-left: 1px solid rgba(var(--foreground-rgb), 0.2);
|
||||||
|
border-bottom: none;
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
margin-top: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.calculationBase li {
|
||||||
|
border-bottom: 1px solid rgba(var(--foreground-rgb), 0.2);
|
||||||
|
border-right: 1px solid rgba(var(--foreground-rgb), 0.2);
|
||||||
|
padding: 1rem;
|
||||||
|
font-size: 0.8rem;
|
||||||
|
}
|
33
components/CalculationBase/CalculationBase.tsx
Normal file
33
components/CalculationBase/CalculationBase.tsx
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
'use client'
|
||||||
|
|
||||||
|
import { ratioOceanToAsi, ratioAgixToAsi, ratioFetToAsi } from '@/constants'
|
||||||
|
import styles from './CalculationBase.module.css'
|
||||||
|
import { usePrices } from '@/hooks'
|
||||||
|
|
||||||
|
export function CalculationBase() {
|
||||||
|
const prices = usePrices()
|
||||||
|
|
||||||
|
return (
|
||||||
|
<ul className={styles.calculationBase}>
|
||||||
|
<li>
|
||||||
|
1 ASI
|
||||||
|
<br />= ${prices.asi}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
1 OCEAN = {ratioOceanToAsi} ASI
|
||||||
|
<span className={styles.label}>fixed</span>
|
||||||
|
<br />= ${prices.ocean}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
1 AGIX = {ratioAgixToAsi} ASI
|
||||||
|
<span className={styles.label}>fixed</span>
|
||||||
|
<br />= ${prices.agix}
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
1 Fet = {ratioFetToAsi} ASI
|
||||||
|
<span className={styles.label}>fixed</span>
|
||||||
|
<br />= ${prices.fet}
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
)
|
||||||
|
}
|
1
components/CalculationBase/index.tsx
Normal file
1
components/CalculationBase/index.tsx
Normal file
@ -0,0 +1 @@
|
|||||||
|
export * from './CalculationBase'
|
@ -10,33 +10,3 @@
|
|||||||
.content a {
|
.content a {
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
|
|
||||||
.label {
|
|
||||||
font-size: 0.7rem;
|
|
||||||
color: rgba(var(--foreground-rgb), 0.6);
|
|
||||||
border: 1px solid rgba(var(--foreground-rgb), 0.2);
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
padding: 0.1rem 0.3rem;
|
|
||||||
margin-left: 0.2rem;
|
|
||||||
margin-right: 0.2rem;
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
.calculationBase {
|
|
||||||
border: 1px solid rgba(var(--foreground-rgb), 0.2);
|
|
||||||
border-bottom: none;
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
margin-top: 2rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.calculationBase li {
|
|
||||||
border-bottom: 1px solid rgba(var(--foreground-rgb), 0.2);
|
|
||||||
padding: 1rem;
|
|
||||||
font-size: 0.8rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.calculationBase li:nth-child(odd) {
|
|
||||||
border-right: 1px solid rgba(var(--foreground-rgb), 0.2);
|
|
||||||
}
|
|
||||||
|
@ -1,12 +1,6 @@
|
|||||||
'use client'
|
|
||||||
|
|
||||||
import { ratioOceanToAsi, ratioAgixToAsi, ratioFetToAsi } from '@/constants'
|
|
||||||
import styles from './Content.module.css'
|
import styles from './Content.module.css'
|
||||||
import { usePrices } from '@/hooks'
|
|
||||||
|
|
||||||
export function Content() {
|
export function Content() {
|
||||||
const prices = usePrices()
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={styles.content}>
|
<div className={styles.content}>
|
||||||
<p>
|
<p>
|
||||||
@ -15,36 +9,15 @@ export function Content() {
|
|||||||
fixed ASI exchange rate
|
fixed ASI exchange rate
|
||||||
</a>
|
</a>
|
||||||
, the fiat values fetched from{' '}
|
, the fiat values fetched from{' '}
|
||||||
<a href="https://coingecko.com">Coingecko</a> and the token swap quotes
|
<a href="https://coingecko.com">Coingecko</a> and the quotes from{' '}
|
||||||
from <a href="https://uniswap.org">Uniswap</a> v3 routes are constantly
|
<a href="https://uniswap.org">Uniswap</a> v3 swap routes are constantly
|
||||||
changing.
|
changing.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
There is no guarantee they reflect the value of your investment once the
|
There is no guarantee displayed values reflect the value of your
|
||||||
actual ASI swap mechanism is released. Use at your own risk.
|
investment once the actual ASI swap mechanism is released. Use at your
|
||||||
|
own risk.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<ul className={styles.calculationBase}>
|
|
||||||
<li>
|
|
||||||
1 OCEAN = {ratioOceanToAsi} ASI
|
|
||||||
<span className={styles.label}>fixed</span>
|
|
||||||
<br />= ${prices.ocean}
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
1 AGIX = {ratioAgixToAsi} ASI
|
|
||||||
<span className={styles.label}>fixed</span>
|
|
||||||
<br />= ${prices.agix}
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
1 Fet = {ratioFetToAsi} ASI
|
|
||||||
<span className={styles.label}>fixed</span>
|
|
||||||
<br />= ${prices.fet}
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
1 ASI
|
|
||||||
<br />= ${prices.asi}
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user