market-header.scss 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. .market-header {
  2. display: flex;
  3. align-items: center;
  4. gap: 20px;
  5. padding: 10px 16px;
  6. background: var(--bg-page);
  7. border-bottom: 1px solid var(--border-default);
  8. flex-wrap: wrap;
  9. min-height: 48px;
  10. .market-header-loading {
  11. color: var(--text-muted);
  12. font-size: 0.875rem;
  13. }
  14. .market-title {
  15. .symbol {
  16. font-size: 1.25rem;
  17. font-weight: 700;
  18. color: var(--text-primary);
  19. }
  20. .pair {
  21. font-size: 0.875rem;
  22. color: var(--text-muted);
  23. margin-left: 2px;
  24. }
  25. }
  26. .market-price {
  27. .current-price {
  28. font-size: 1.375rem;
  29. font-weight: 700;
  30. font-variant-numeric: tabular-nums;
  31. }
  32. }
  33. .market-change {
  34. display: flex;
  35. gap: 6px;
  36. font-size: 0.875rem;
  37. font-weight: 500;
  38. font-variant-numeric: tabular-nums;
  39. }
  40. .market-stats {
  41. display: flex;
  42. gap: 16px;
  43. margin-left: auto;
  44. .stat {
  45. display: flex;
  46. flex-direction: column;
  47. align-items: flex-end;
  48. gap: 1px;
  49. .label {
  50. font-size: 0.688rem;
  51. color: var(--text-muted);
  52. }
  53. .value {
  54. font-size: 0.813rem;
  55. font-weight: 500;
  56. font-variant-numeric: tabular-nums;
  57. color: var(--text-primary);
  58. }
  59. }
  60. .volume-stat {
  61. .volume-sparkline-wrapper {
  62. position: relative;
  63. .volume-sparkline {
  64. flex-shrink: 0;
  65. cursor: pointer;
  66. border-radius: 3px;
  67. transition: background 0.15s;
  68. &:hover {
  69. background: var(--bg-subtle);
  70. }
  71. }
  72. .volume-popover {
  73. position: absolute;
  74. top: calc(100% + 6px);
  75. right: 0;
  76. background: var(--bg-page);
  77. border: 1px solid var(--border-default);
  78. border-radius: 6px;
  79. box-shadow: 0 4px 12px var(--shadow-color);
  80. padding: 8px 12px;
  81. white-space: nowrap;
  82. z-index: 100;
  83. display: flex;
  84. flex-direction: column;
  85. gap: 2px;
  86. .volume-popover-label {
  87. font-size: 0.625rem;
  88. color: var(--text-muted);
  89. }
  90. .volume-popover-value {
  91. font-size: 0.813rem;
  92. font-weight: 600;
  93. font-variant-numeric: tabular-nums;
  94. color: var(--text-primary);
  95. }
  96. }
  97. }
  98. }
  99. }
  100. .up {
  101. color: hsl(var(--crypto-up));
  102. }
  103. .down {
  104. color: hsl(var(--crypto-down));
  105. }
  106. .neutral {
  107. color: hsl(var(--crypto-neutral));
  108. }
  109. }
  110. @media (max-width: 640px) {
  111. .market-header {
  112. gap: 8px;
  113. padding: 8px 12px;
  114. .market-stats {
  115. width: 100%;
  116. margin-left: 0;
  117. justify-content: space-between;
  118. }
  119. }
  120. }