switch.css 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. uni-switch {
  2. -webkit-tap-highlight-color: transparent;
  3. display: inline-block;
  4. cursor: pointer;
  5. }
  6. uni-switch[hidden] {
  7. display: none;
  8. }
  9. uni-switch[disabled] {
  10. cursor: not-allowed;
  11. }
  12. uni-switch[disabled] .uni-switch-input {
  13. opacity: 0.7;
  14. }
  15. .uni-switch-wrapper {
  16. display: inline-flex;
  17. align-items: center;
  18. vertical-align: middle;
  19. }
  20. .uni-switch-input {
  21. appearance: none;
  22. position: relative;
  23. width: 52px;
  24. height: 32px;
  25. margin-right: 5px;
  26. border: 1px solid #dfdfdf;
  27. outline: 0;
  28. border-radius: 16px;
  29. box-sizing: border-box;
  30. background-color: #dfdfdf;
  31. transition: background-color 0.1s, border 0.1s;
  32. }
  33. .uni-switch-input:before {
  34. content: ' ';
  35. position: absolute;
  36. top: 0;
  37. left: 0;
  38. width: 50px;
  39. height: 30px;
  40. border-radius: 15px;
  41. background-color: #fdfdfd;
  42. transition: transform 0.3s;
  43. }
  44. .uni-switch-input:after {
  45. content: ' ';
  46. position: absolute;
  47. top: 0;
  48. left: 0;
  49. width: 30px;
  50. height: 30px;
  51. border-radius: 15px;
  52. background-color: #ffffff;
  53. box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
  54. transition: -webkit-transform 0.3s;
  55. transition: transform 0.3s;
  56. transition: transform 0.3s, -webkit-transform 0.3s;
  57. }
  58. .uni-switch-input.uni-switch-input-checked {
  59. border-color: #007aff;
  60. background-color: #007aff;
  61. }
  62. .uni-switch-input.uni-switch-input-checked:before {
  63. transform: scale(0);
  64. }
  65. .uni-switch-input.uni-switch-input-checked:after {
  66. transform: translateX(20px);
  67. }
  68. uni-switch .uni-checkbox-input {
  69. margin-right: 5px;
  70. appearance: none;
  71. outline: 0;
  72. border: 1px solid #d1d1d1;
  73. background-color: #ffffff;
  74. border-radius: 3px;
  75. width: 22px;
  76. height: 22px;
  77. position: relative;
  78. color: #007aff;
  79. }
  80. uni-switch:not([disabled]) .uni-checkbox-input:hover {
  81. border-color: #007aff;
  82. }
  83. uni-switch .uni-checkbox-input svg {
  84. fill: #007aff;
  85. font-size: 22px;
  86. position: absolute;
  87. top: 50%;
  88. left: 50%;
  89. transform: translate(-50%, -48%) scale(0.73);
  90. }
  91. .uni-checkbox-input.uni-checkbox-input-disabled {
  92. background-color: #e1e1e1;
  93. }
  94. .uni-checkbox-input.uni-checkbox-input-disabled:before {
  95. color: #adadad;
  96. }
  97. @media (prefers-color-scheme: dark) {
  98. uni-switch .uni-switch-input {
  99. border-color: #3b3b3f;
  100. }
  101. uni-switch .uni-switch-input,
  102. uni-switch .uni-switch-input:before {
  103. background-color: #3b3b3f;
  104. }
  105. uni-switch .uni-switch-input:after {
  106. background-color: #fff;
  107. box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
  108. }
  109. uni-switch .uni-checkbox-input {
  110. background-color: #2c2c2c;
  111. border: 1px solid #656565;
  112. }
  113. }