rate.scss 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. @use 'sass:map';
  2. @use 'mixins/mixins' as *;
  3. @use 'mixins/var' as *;
  4. @use 'common/var' as *;
  5. $rate-height: () !default;
  6. $rate-height: map.merge(
  7. (
  8. 'large': 40px,
  9. 'default': 32px,
  10. 'small': 24px,
  11. ),
  12. $rate-height
  13. );
  14. $rate-size: () !default;
  15. $rate-size: map.merge(
  16. (
  17. 'small': 14px,
  18. ),
  19. $rate-size
  20. );
  21. @include b(rate) {
  22. @include set-component-css-var('rate', $rate);
  23. }
  24. @include b(rate) {
  25. display: inline-flex;
  26. align-items: center;
  27. height: map.get($rate-height, 'default');
  28. &:focus,
  29. &:active {
  30. outline: none;
  31. }
  32. @include e(item) {
  33. cursor: pointer;
  34. display: inline-block;
  35. position: relative;
  36. font-size: 0;
  37. vertical-align: middle;
  38. color: getCssVar('rate-void-color');
  39. line-height: normal;
  40. }
  41. & .#{bem('rate', 'icon')} {
  42. position: relative;
  43. display: inline-block;
  44. font-size: getCssVar('rate-icon-size');
  45. margin-right: getCssVar('rate-icon-margin');
  46. transition: getCssVar('transition-duration');
  47. &.hover {
  48. transform: scale(1.15);
  49. }
  50. .path2 {
  51. position: absolute;
  52. left: 0;
  53. top: 0;
  54. }
  55. @include when(active) {
  56. color: getCssVar('rate', 'fill-color');
  57. }
  58. }
  59. @include e(decimal) {
  60. position: absolute;
  61. top: 0;
  62. left: 0;
  63. display: inline-block;
  64. overflow: hidden;
  65. color: getCssVar('rate', 'fill-color');
  66. }
  67. @include e(text) {
  68. font-size: getCssVar('rate-font-size');
  69. vertical-align: middle;
  70. color: getCssVar('rate', 'text-color');
  71. }
  72. @each $size in (large, small) {
  73. @include m($size) {
  74. height: map.get($rate-height, $size);
  75. & .#{bem('rate', 'icon')} {
  76. font-size: map.get($rate-size, $size);
  77. }
  78. }
  79. }
  80. @include when(disabled) {
  81. @include e(item) {
  82. cursor: auto;
  83. color: getCssVar('rate', 'disabled-void-color');
  84. }
  85. }
  86. }