NodeList.css 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. .toolbar {
  2. margin-bottom: 12px;
  3. display: flex;
  4. justify-content: space-between;
  5. align-items: center;
  6. }
  7. .name-cell {
  8. display: flex;
  9. flex-direction: column;
  10. }
  11. .name-cell .name {
  12. font-weight: 500;
  13. }
  14. .name-cell .remark {
  15. font-size: 12px;
  16. opacity: 0.65;
  17. }
  18. .address-header {
  19. display: inline-flex;
  20. align-items: center;
  21. gap: 6px;
  22. }
  23. .ip-toggle-icon {
  24. cursor: pointer;
  25. font-size: 14px;
  26. opacity: 0.7;
  27. }
  28. .ip-toggle-icon:hover {
  29. opacity: 1;
  30. }
  31. .address-hidden {
  32. filter: blur(5px);
  33. transition: filter 0.2s ease;
  34. }
  35. .address-visible {
  36. filter: none;
  37. }
  38. .node-cards {
  39. display: flex;
  40. flex-direction: column;
  41. gap: 12px;
  42. margin-top: 4px;
  43. }
  44. .node-card {
  45. border: 1px solid var(--ant-color-border-secondary);
  46. border-radius: 10px;
  47. padding: 12px;
  48. background: var(--ant-color-fill-quaternary);
  49. display: flex;
  50. flex-direction: column;
  51. gap: 8px;
  52. }
  53. .card-head {
  54. display: flex;
  55. align-items: center;
  56. gap: 8px;
  57. cursor: pointer;
  58. user-select: none;
  59. }
  60. .card-expand {
  61. font-size: 12px;
  62. opacity: 0.6;
  63. transition: transform 150ms ease;
  64. flex-shrink: 0;
  65. }
  66. .card-expand.is-expanded {
  67. transform: rotate(90deg);
  68. }
  69. .node-name {
  70. font-weight: 600;
  71. flex: 1;
  72. min-width: 0;
  73. overflow: hidden;
  74. text-overflow: ellipsis;
  75. white-space: nowrap;
  76. }
  77. .card-actions {
  78. display: flex;
  79. align-items: center;
  80. gap: 8px;
  81. flex-shrink: 0;
  82. }
  83. .row-action-trigger {
  84. font-size: 20px;
  85. cursor: pointer;
  86. }
  87. .card-stats {
  88. display: flex;
  89. flex-direction: column;
  90. gap: 6px;
  91. }
  92. .stat-row {
  93. display: flex;
  94. align-items: center;
  95. flex-wrap: wrap;
  96. gap: 6px;
  97. }
  98. .stat-label {
  99. font-size: 10px;
  100. text-transform: uppercase;
  101. letter-spacing: 0.04em;
  102. opacity: 0.6;
  103. min-width: 96px;
  104. flex-shrink: 0;
  105. }
  106. .card-stats .ant-tag {
  107. margin: 0;
  108. }
  109. .card-history {
  110. margin-top: 4px;
  111. padding-top: 8px;
  112. border-top: 1px solid var(--ant-color-border-secondary);
  113. }
  114. .card-empty {
  115. text-align: center;
  116. color: var(--ant-color-text-secondary);
  117. padding: 24px 12px;
  118. display: flex;
  119. flex-direction: column;
  120. align-items: center;
  121. gap: 8px;
  122. }