Repositorio del curso CCOM4030 el semestre B91 del proyecto Artesanías con el Instituto de Cultura

range.css 7.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. :root {
  2. --range-thumb-size: 28px;
  3. --range-track-height: 2px;
  4. --material-range-track-height: 2px;
  5. --material-range-thumb-size: 14px;
  6. --material-range-thumb-radius: calc(var(--material-range-thumb-size) / 2);
  7. --material-range-thumb-vertical-margin: 24px;
  8. --material-range-thumb-horizontal-margin: 2px;
  9. --range__thumb: {
  10. cursor: pointer;
  11. position: relative;
  12. height: var(--range-thumb-size);
  13. width: var(--range-thumb-size);
  14. background-color: var(--range-thumb-background-color);
  15. border: none;
  16. box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.25), 0 3px 2px rgba(0, 0, 0, 0.25);
  17. border-radius: 50%;
  18. margin: 0;
  19. padding: 0;
  20. }
  21. }
  22. /*~
  23. name: Range
  24. category: Range
  25. elements: ons-range
  26. markup: |
  27. <div class="range">
  28. <input type="range" class="range__input">
  29. <input type="range" class="range__focus-ring">
  30. </div>
  31. <div class="range range--disabled">
  32. <input type="range" class="range__input" disabled>
  33. <input type="range" class="range__focus-ring" disabled>
  34. </div>
  35. */
  36. .range {
  37. display: inline-block;
  38. position: relative;
  39. width: 100px;
  40. height: calc(var(--range-thumb-size) + 2px);
  41. margin: 0;
  42. padding: 0;
  43. background-image: linear-gradient(var(--range-track-background-color), var(--range-track-background-color));
  44. background-position: left center;
  45. background-size: 100% var(--range-track-height);
  46. background-repeat: no-repeat;
  47. background-color: transparent;
  48. }
  49. .range__input {
  50. @apply(--reset-input);
  51. appearance: none;
  52. background-image: linear-gradient(var(--range-track-background-color-active), var(--range-track-background-color-active));
  53. background-position: left center;
  54. background-size: 0% var(--range-track-height);
  55. background-repeat: no-repeat;
  56. height: calc(var(--range-thumb-size) + 2px);
  57. position: relative;
  58. z-index: 1;
  59. width: 100%;
  60. }
  61. .range__input::-moz-range-track {
  62. position: relative;
  63. border: none;
  64. background: none;
  65. box-shadow: none;
  66. top: 0;
  67. margin: 0;
  68. padding: 0;
  69. }
  70. .range__input::-ms-track {
  71. position: relative;
  72. border: none;
  73. background-color: var(--range-track-background-color);
  74. height: 0;
  75. border-radius: 50%;
  76. }
  77. .range__input::-webkit-slider-thumb {
  78. @apply(--range__thumb);
  79. box-sizing: border-box;
  80. appearance: none;
  81. top: 0;
  82. z-index: 1;
  83. }
  84. .range__input::-moz-range-thumb {
  85. @apply(--range__thumb);
  86. }
  87. .range__input::-ms-thumb {
  88. @apply(--range__thumb);
  89. top: 0;
  90. }
  91. .range__input::-ms-fill-lower {
  92. height: 2px;
  93. background-color: var(--range-track-background-color-active);
  94. }
  95. .range__input::-ms-tooltip {
  96. display: none;
  97. }
  98. .range__input:disabled {
  99. opacity: 1;
  100. pointer-events: none;
  101. }
  102. .range__focus-ring {
  103. pointer-events: none;
  104. top: 0;
  105. left: 0;
  106. display: none;
  107. @apply(--reset-input);
  108. appearance: none;
  109. background: none;
  110. height: calc(var(--range-thumb-size) + 2px);
  111. position: absolute;
  112. z-index: 0;
  113. width: 100%;
  114. }
  115. .range--disabled {
  116. @apply(--disabled);
  117. pointer-events: none;
  118. }
  119. /*~
  120. name: Material Range
  121. category: Range
  122. elements: ons-range
  123. markup: |
  124. <div class="range range--material">
  125. <input type="range" class="range__input range--material__input" min="0" max="100">
  126. <!-- <input type="range" class="range__focus-ring range--material__focus-ring"> -->
  127. </div>
  128. <div class="range range--material range--disabled">
  129. <input type="range" class="range__input range--material__input" disabled>
  130. <!-- <input type="range" class="range__focus-ring range--material__focus-ring" disabled> -->
  131. </div>
  132. */
  133. .range--material {
  134. position: relative;
  135. background-image: linear-gradient(var(--material-range-track-color), var(--material-range-track-color));
  136. }
  137. .range--material__input {
  138. background-image: linear-gradient(var(--material-range-thumb-color), var(--material-range-thumb-color));
  139. background-position: center left;
  140. background-size: 0% 2px;
  141. }
  142. .range--material__focus-ring {
  143. display: block;
  144. }
  145. .range--material__focus-ring::-webkit-slider-thumb {
  146. appearance: none;
  147. width: var(--material-range-thumb-size);
  148. height: var(--material-range-thumb-size);
  149. border: none;
  150. box-shadow: 0 0 0 calc((32px - var(--material-range-thumb-size)) / 2) var(--material-range-thumb-color);
  151. background-color: var(--material-range-thumb-color);
  152. border-radius: 50%;
  153. opacity: 0;
  154. transition: opacity 0.25s ease-out, transform 0.25s ease-out;
  155. }
  156. .range--material__input.range__input--active + .range--material__focus-ring::-webkit-slider-thumb {
  157. opacity: 0.2;
  158. transform: scale(1.5, 1.5, 1.5);
  159. }
  160. .range--material__input::-webkit-slider-thumb {
  161. position: relative;
  162. box-sizing: border-box;
  163. border: none;
  164. background-color: transparent;
  165. width: var(--material-range-thumb-size);
  166. height: 32px;
  167. border-radius: 0;
  168. box-shadow: none;
  169. background-image: radial-gradient(circle farthest-corner, var(--material-range-thumb-color) 0%, var(--material-range-thumb-color) calc(var(--material-range-thumb-radius) - 0.4px), transparent var(--material-range-thumb-radius));
  170. transition: transform 0.1s linear;
  171. overflow: visible;
  172. }
  173. .range--material__input[_zero]::-webkit-slider-thumb {
  174. background-image: radial-gradient(circle farthest-corner, var(--material-range-zero-thumb-color) 0%, var(--material-range-zero-thumb-color) 4px, var(--material-range-track-color) 4px, var(--material-range-track-color) calc(var(--material-range-thumb-radius) - 0.6px), transparent calc(var(--material-range-thumb-radius)));
  175. }
  176. .range--material__input[_zero] + .range--material__focus-ring::-webkit-slider-thumb {
  177. box-shadow: 0 0 0 calc((32px - var(--material-range-thumb-size)) / 2) var(--material-range-track-color);
  178. }
  179. .range--material__input::-moz-range-track {
  180. background: none;
  181. }
  182. .range--material__input::-moz-range-thumb,
  183. .range--material__input:focus::-moz-range-thumb {
  184. box-sizing: border-box;
  185. border: none;
  186. width: var(--material-range-thumb-size);
  187. height: 32px;
  188. border-radius: 0;
  189. background-color: transparent;
  190. background-image: -moz-radial-gradient(circle farthest-corner, var(--material-range-thumb-color) 0%, var(--material-range-thumb-color) calc(var(--material-range-thumb-radius) - 0.4px), transparent var(--material-range-thumb-radius)); /* stylelint-disable-line */
  191. box-shadow: none;
  192. }
  193. .range--material__input:active::-webkit-slider-thumb,
  194. .range--material__input.range__input--active::-webkit-slider-thumb { /* NOTICE: ":active" does not work on Android Chrome. */
  195. transform: scale(1.5);
  196. transition: transform 0.1s linear;
  197. }
  198. /* stylelint-disable */ .range--disabled.range--material { /* stylelint-enable */
  199. opacity: 1;
  200. }
  201. /* stylelint-disable */ .range--disabled > .range--material__input { /* stylelint-enable */
  202. background-image: none;
  203. }
  204. .range--material__input:disabled::-webkit-slider-thumb {
  205. background-image: radial-gradient(circle farthest-corner, var(--material-range-disabled-thumb-color) 0%, var(--material-range-disabled-thumb-color) 4px, var(--material-range-disabled-thumb-border-color) 4.4px, var(--material-range-disabled-thumb-border-color) calc(var(--material-range-thumb-radius) + 0.6px), transparent calc(var(--material-range-thumb-radius) + 0.6px));
  206. transition: none;
  207. }
  208. .range--material__input:disabled::-moz-range-thumb {
  209. background-image: -moz-radial-gradient(circle farthest-corner, var(--material-range-disabled-thumb-color) 0%, var(--material-range-disabled-thumb-color) 4px, var(--material-range-disabled-thumb-border-color) 4.4px, var(--material-range-disabled-thumb-border-color) calc(var(--material-range-thumb-radius) + 0.6px), transparent calc(var(--material-range-thumb-radius) + 0.6px)); /* stylelint-disable-line */
  210. transition: none;
  211. }