+
console.log('Clicked:', row.symbol)}
className="w-full h-full"
/>
diff --git a/apps/web/src/index.css b/apps/web/src/index.css
index 01634ce..f0d68ac 100644
--- a/apps/web/src/index.css
+++ b/apps/web/src/index.css
@@ -50,27 +50,73 @@
}
@layer components {
- /* Custom scrollbar for dark theme */
- .scrollbar-thin {
+ /* Global sleek dark-themed scrollbars for all elements */
+ * {
scrollbar-width: thin;
- scrollbar-color: rgb(42 42 45) transparent;
+ scrollbar-color: rgb(74 74 74) rgb(26 26 26);
}
- .scrollbar-thin::-webkit-scrollbar {
- width: 6px;
+ *::-webkit-scrollbar {
+ width: 8px;
+ height: 8px;
}
- .scrollbar-thin::-webkit-scrollbar-track {
- background: transparent;
+ *::-webkit-scrollbar-track {
+ background: rgb(26 26 26);
+ border-radius: 4px;
}
- .scrollbar-thin::-webkit-scrollbar-thumb {
- background-color: rgb(42 42 45);
- border-radius: 3px;
+ *::-webkit-scrollbar-thumb {
+ background-color: rgb(74 74 74);
+ border-radius: 4px;
+ border: 1px solid rgb(42 42 42);
+ transition: background-color 0.2s ease;
}
- .scrollbar-thin::-webkit-scrollbar-thumb:hover {
- background-color: rgb(51 51 54);
+ *::-webkit-scrollbar-thumb:hover {
+ background-color: rgb(90 90 90);
+ }
+
+ *::-webkit-scrollbar-thumb:active {
+ background-color: rgb(106 106 106);
+ }
+
+ *::-webkit-scrollbar-corner {
+ background: rgb(26 26 26);
+ }
+ /* Global scrollbar for the entire app */
+ * {
+ scrollbar-width: thin;
+ scrollbar-color: rgb(26 26 26) transparent;
+ }
+
+ *::-webkit-scrollbar {
+ width: 8px;
+ height: 8px;
+ }
+
+ *::-webkit-scrollbar-track {
+ background: rgb(0 0 0);
+ border-radius: 4px;
+ }
+
+ *::-webkit-scrollbar-thumb {
+ background-color: rgb(26 26 26);
+ border-radius: 4px;
+ border: 1px solid rgb(0 0 0);
+ transition: background-color 0.2s ease;
+ }
+
+ *::-webkit-scrollbar-thumb:hover {
+ background-color: rgb(42 42 42);
+ }
+
+ *::-webkit-scrollbar-thumb:active {
+ background-color: rgb(60 60 60);
+ }
+
+ *::-webkit-scrollbar-corner {
+ background: rgb(0 0 0);
}
/* Trading specific styles */
diff --git a/bun.lock b/bun.lock
index 55771bd..a623467 100644
--- a/bun.lock
+++ b/bun.lock
@@ -150,6 +150,7 @@
"react-dom": "^18.2.0",
"react-router-dom": "^7.6.2",
"react-virtualized-auto-sizer": "^1.0.26",
+ "react-virtuoso": "^4.12.8",
"react-window": "^1.8.11",
"react-window-infinite-loader": "^1.0.10",
"tailwind-merge": "^3.3.1",
@@ -1635,6 +1636,8 @@
"react-virtualized-auto-sizer": ["react-virtualized-auto-sizer@1.0.26", "", { "peerDependencies": { "react": "^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-CblNyiNVw2o+hsa5/49NH2ogGxZ+t+3aweRvNSq7TVjDIlwk7ir4lencEg5HxHeSzwNarSkNkiu0qJSOXtxm5A=="],
+ "react-virtuoso": ["react-virtuoso@4.12.8", "", { "peerDependencies": { "react": ">=16 || >=17 || >= 18 || >= 19", "react-dom": ">=16 || >=17 || >= 18 || >=19" } }, "sha512-NMMKfDBr/+xZZqCQF3tN1SZsh6FwOJkYgThlfnsPLkaEhdyQo0EuWUzu3ix6qjnI7rYwJhMwRGoJBi+aiDfGsA=="],
+
"react-window": ["react-window@1.8.11", "", { "dependencies": { "@babel/runtime": "^7.0.0", "memoize-one": ">=3.1.1 <6" }, "peerDependencies": { "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-+SRbUVT2scadgFSWx+R1P754xHPEqvcfSfVX10QYg6POOz+WNgkN48pS+BtZNIMGiL1HYrSEiCkwsMS15QogEQ=="],
"react-window-infinite-loader": ["react-window-infinite-loader@1.0.10", "", { "peerDependencies": { "react": "^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom": "^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "sha512-NO/csdHlxjWqA2RJZfzQgagAjGHspbO2ik9GtWZb0BY1Nnapq0auG8ErI+OhGCzpjYJsCYerqUlK6hkq9dfAAA=="],