rate.scss 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  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. @include b(rate) {
  15. @include set-component-css-var('rate', $rate);
  16. }
  17. @include b(rate) {
  18. display: inline-flex;
  19. align-items: center;
  20. height: map.get($rate-height, 'default');
  21. &:focus,
  22. &:active {
  23. outline: none;
  24. }
  25. @include e(item) {
  26. cursor: pointer;
  27. display: inline-block;
  28. position: relative;
  29. font-size: 0;
  30. vertical-align: middle;
  31. color: getCssVar('rate-void-color');
  32. line-height: normal;
  33. }
  34. & .#{bem('rate', 'icon')} {
  35. position: relative;
  36. display: inline-block;
  37. font-size: getCssVar('rate-icon-size');
  38. margin-right: getCssVar('rate-icon-margin');
  39. transition: getCssVar('transition-duration');
  40. &.hover {
  41. transform: scale(1.15);
  42. }
  43. .path2 {
  44. position: absolute;
  45. left: 0;
  46. top: 0;
  47. }
  48. @include when(active) {
  49. color: getCssVar('rate', 'fill-color');
  50. }
  51. }
  52. @include e(decimal) {
  53. position: absolute;
  54. top: 0;
  55. left: 0;
  56. display: inline-block;
  57. overflow: hidden;
  58. color: getCssVar('rate', 'fill-color');
  59. }
  60. @include e(text) {
  61. font-size: getCssVar('rate-font-size');
  62. vertical-align: middle;
  63. color: getCssVar('rate', 'text-color');
  64. }
  65. @each $size in (large, small) {
  66. @include m($size) {
  67. height: map.get($rate-height, $size);
  68. }
  69. }
  70. @include when(disabled) {
  71. @include e(item) {
  72. cursor: auto;
  73. color: getCssVar('rate', 'disabled-void-color');
  74. }
  75. }
  76. }