ConnectionIndicator.module.css 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. .indicator {
  2. flex: none;
  3. display: inline-grid;
  4. grid-template-columns: 14px max-content;
  5. align-items: center;
  6. column-gap: 4px;
  7. height: 32px;
  8. padding: 0 10px;
  9. box-sizing: border-box;
  10. border: none;
  11. border-radius: 8px;
  12. font-family: inherit;
  13. font-size: 12px;
  14. font-weight: 500;
  15. line-height: 18px;
  16. white-space: nowrap;
  17. transition: background-color 160ms ease-out, color 160ms ease-out;
  18. }
  19. .warning {
  20. background: var(--dsw-alias-state-warn-tertiary);
  21. color: var(--dsw-alias-state-warn-label);
  22. cursor: pointer;
  23. }
  24. .warning:active {
  25. background: color-mix(
  26. in srgb,
  27. var(--dsw-alias-state-warn-tertiary),
  28. var(--dsw-alias-state-warn-primary) 10%
  29. );
  30. }
  31. .warning:focus-visible {
  32. outline: 2px solid var(--dsw-alias-state-warn-label);
  33. outline-offset: 2px;
  34. }
  35. .success {
  36. background: var(--dsw-alias-state-success-tertiary);
  37. color: var(--dsw-alias-state-success-primary);
  38. }
  39. .icon {
  40. display: grid;
  41. place-items: center;
  42. width: 14px;
  43. height: 14px;
  44. }
  45. .label {
  46. display: grid;
  47. text-align: left;
  48. }
  49. .stateLabel,
  50. .hoverLabel,
  51. .sizeLabel {
  52. grid-area: 1 / 1;
  53. }
  54. .sizeLabel {
  55. visibility: hidden;
  56. }
  57. .warning:is(:hover, :focus-visible) .stateLabel {
  58. visibility: hidden;
  59. }
  60. .hoverLabel {
  61. visibility: hidden;
  62. }
  63. .warning:is(:hover, :focus-visible) .hoverLabel {
  64. visibility: visible;
  65. }
  66. .dots {
  67. display: inline-block;
  68. width: 1.5em;
  69. text-align: left;
  70. }
  71. .secondDot {
  72. animation: reveal-second-dot 1.5s step-end infinite;
  73. }
  74. .thirdDot {
  75. animation: reveal-third-dot 1.5s step-end infinite;
  76. }
  77. @keyframes reveal-second-dot {
  78. 0%, 33.32% { visibility: hidden; }
  79. 33.33%, 100% { visibility: visible; }
  80. }
  81. @keyframes reveal-third-dot {
  82. 0%, 66.65% { visibility: hidden; }
  83. 66.66%, 100% { visibility: visible; }
  84. }
  85. @media (prefers-reduced-motion: reduce) {
  86. .secondDot,
  87. .thirdDot {
  88. animation: none;
  89. }
  90. }