Skip to content

Commit dc5fa21

Browse files
committed
refactor: all coings page styles
1 parent ea7aa23 commit dc5fa21

File tree

2 files changed

+59
-62
lines changed

2 files changed

+59
-62
lines changed

app/coins/page.tsx

Lines changed: 21 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -29,44 +29,40 @@ const Coins = async ({
2929
const columns = [
3030
{
3131
header: 'Rank',
32-
cellClassName: 'coins-rank',
32+
cellClassName: 'rank-cell',
3333
cell: (coin: CoinMarketData) => (
3434
<>
3535
#{coin.market_cap_rank}
36-
<Link
37-
href={`/coins/${coin.id}`}
38-
className='absolute inset-0 z-10'
39-
aria-label='View coin'
40-
/>
36+
<Link href={`/coins/${coin.id}`} aria-label='View coin' />
4137
</>
4238
),
4339
},
4440
{
4541
header: 'Token',
46-
cellClassName: 'coins-token',
42+
cellClassName: 'token-cell',
4743
cell: (coin: CoinMarketData) => (
48-
<div className='coins-token-info'>
44+
<div className='token-info'>
4945
<Image src={coin.image} alt={coin.name} width={36} height={36} />
50-
<p className='max-w-full truncate'>
46+
<p>
5147
{coin.name} ({coin.symbol.toUpperCase()})
5248
</p>
5349
</div>
5450
),
5551
},
5652
{
5753
header: 'Price',
58-
cellClassName: 'coins-price',
54+
cellClassName: 'price-cell',
5955
cell: (coin: CoinMarketData) => formatPrice(coin.current_price),
6056
},
6157
{
6258
header: '24h Change',
63-
cellClassName: 'font-medium',
59+
cellClassName: 'change-cell',
6460
cell: (coin: CoinMarketData) => {
6561
const isTrendingUp = coin.price_change_percentage_24h > 0;
6662

6763
return (
6864
<span
69-
className={cn('coins-change', {
65+
className={cn('change-value', {
7066
'text-green-600': isTrendingUp,
7167
'text-red-500': !isTrendingUp,
7268
})}
@@ -79,23 +75,24 @@ const Coins = async ({
7975
},
8076
{
8177
header: 'Market Cap',
82-
cellClassName: 'coins-market-cap',
78+
cellClassName: 'market-cap-cell',
8379
cell: (coin: CoinMarketData) => formatPrice(coin.market_cap),
8480
},
8581
];
8682

8783
return (
88-
<main className='coins-main'>
89-
<div className='flex flex-col w-full space-y-5'>
90-
<h4 className='text-2xl'>All Coins</h4>
91-
<div className='custom-scrollbar coins-container'>
92-
<DataTable
93-
columns={columns}
94-
data={coinsData}
95-
rowKey={(coin) => coin.id}
96-
headerClassName='coins-header'
97-
/>
98-
</div>
84+
<main id='coins-page'>
85+
<div className='content'>
86+
<h4>All Coins</h4>
87+
88+
<DataTable
89+
tableClassName='coins-table'
90+
columns={columns}
91+
data={coinsData}
92+
rowKey={(coin) => coin.id}
93+
headerCellClassName='py-4! bg-dark-400 text-purple-100'
94+
bodyCellClassName='py-4! '
95+
/>
9996

10097
<CoinsPagination
10198
currentPage={currentPage}

app/globals.css

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -469,62 +469,62 @@
469469
}
470470

471471
/* Coins Page Utilities */
472-
.coins-main {
472+
#coins-page {
473473
@apply py-12 px-4 sm:px-6 mx-auto max-w-[1440px] size-full items-center gap-10 justify-center;
474-
}
475474

476-
.coins-container {
477-
@apply bg-dark-500 rounded-xl max-h-fit overflow-hidden;
478-
}
475+
.content {
476+
@apply flex flex-col w-full space-y-5;
477+
}
479478

480-
.coins-header {
481-
@apply bg-dark-400 text-purple-100;
482-
}
479+
h4 {
480+
@apply text-2xl;
481+
}
483482

484-
.coins-header-row {
485-
@apply hover:bg-transparent;
486-
}
483+
.coins-table {
484+
@apply bg-dark-500 rounded-xl max-h-fit overflow-hidden;
487485

488-
.coins-header-left {
489-
@apply pl-5 py-4 text-purple-100;
490-
}
486+
.rank-cell {
487+
@apply pl-5 max-w-[80px]! py-5 font-medium text-purple-100;
491488

492-
.coins-header-right {
493-
@apply pr-8 text-purple-100;
494-
}
489+
a {
490+
@apply absolute inset-0 z-10;
491+
}
492+
}
495493

496-
.coins-row {
497-
@apply text-lg hover:!bg-dark-400/30 cursor-pointer;
498-
}
494+
.token-cell {
495+
@apply py-3 font-semibold;
499496

500-
.coins-rank {
501-
@apply pl-5 !max-w-[80px] py-5 font-medium text-purple-100;
502-
}
497+
.token-info {
498+
@apply flex items-center gap-3;
503499

504-
.coins-token {
505-
@apply py-3 font-semibold;
506-
}
500+
p {
501+
@apply max-w-full truncate;
502+
}
503+
}
504+
}
507505

508-
.coins-token-info {
509-
@apply flex items-center gap-3;
510-
}
506+
.price-cell {
507+
@apply py-4 font-medium;
508+
}
511509

512-
.coins-price {
513-
@apply py-4 font-medium;
514-
}
510+
.change-cell {
511+
@apply font-medium;
512+
}
515513

516-
.coins-change {
517-
@apply flex gap-1 items-center font-medium;
518-
}
514+
.change-value {
515+
@apply flex gap-1 items-center font-medium;
516+
}
519517

520-
.coins-market-cap {
521-
@apply pr-5 font-medium;
518+
.market-cap-cell {
519+
@apply pr-5 font-medium;
520+
}
521+
}
522522
}
523523

524524
/* SearchModal Component Utilities */
525525
#search-modal {
526526
.trigger {
527-
@apply px-6 hover:!bg-transparent font-medium transition-all h-full cursor-pointer text-base text-purple-100 flex items-center gap-2;
527+
@apply px-6 hover:bg-transparent! font-medium transition-all h-full cursor-pointer text-base text-purple-100 flex items-center gap-2;
528528
}
529529

530530
.kbd {

0 commit comments

Comments
 (0)