alert.scss 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. @use 'sass:map';
  2. @use "sass:list";
  3. $btnThemeList: (
  4. (
  5. name: "primary",
  6. ftColor: var(--vxe-ui-font-primary-color),
  7. brColor: var(--vxe-ui-font-primary-lighten-color),
  8. bgColor: var(--vxe-ui-font-primary-tinge-color)
  9. ),
  10. (
  11. name: "success",
  12. ftColor: var(--vxe-ui-status-success-color),
  13. brColor: var(--vxe-ui-status-success-lighten-color),
  14. bgColor: var(--vxe-ui-status-success-tinge-color)
  15. ),
  16. (
  17. name: "info",
  18. ftColor: var(--vxe-ui-status-info-color),
  19. brColor: var(--vxe-ui-status-info-lighten-color),
  20. bgColor: var(--vxe-ui-status-info-tinge-color)
  21. ),
  22. (
  23. name: "warning",
  24. ftColor: var(--vxe-ui-status-warning-color),
  25. brColor: var(--vxe-ui-status-warning-lighten-color),
  26. bgColor: var(--vxe-ui-status-warning-tinge-color)
  27. ),
  28. (
  29. name: "danger",
  30. ftColor: var(--vxe-ui-status-danger-color),
  31. brColor: var(--vxe-ui-status-danger-lighten-color),
  32. bgColor: var(--vxe-ui-status-danger-tinge-color)
  33. ),
  34. (
  35. name: "error",
  36. ftColor: var(--vxe-ui-status-error-color),
  37. brColor: var(--vxe-ui-status-error-lighten-color),
  38. bgColor: var(--vxe-ui-status-error-tinge-color)
  39. )
  40. );
  41. .vxe-alert {
  42. position: relative;
  43. display: flex;
  44. flex-direction: row;
  45. color: var(--vxe-ui-font-color);
  46. padding: var(--vxe-ui-layout-padding-default);
  47. margin-bottom: var(--vxe-ui-layout-padding-default);
  48. font-size: var(--vxe-ui-font-size-default);
  49. border-radius: var(--vxe-ui-base-border-radius);
  50. @for $index from 0 to list.length($btnThemeList) {
  51. $item: list.nth($btnThemeList, $index + 1);
  52. &.theme--#{map.get($item, name)} {
  53. color: map.get($item, ftColor);
  54. border: 1px solid map.get($item, brColor);
  55. background-color: map.get($item, bgColor);
  56. &::after {
  57. background-color: map.get($item, ftColor);
  58. }
  59. .vxe-alert--icon {
  60. color: map.get($item, ftColor);
  61. }
  62. .vxe-alert--close-btn {
  63. &:hover {
  64. color: map.get($item, brColor);
  65. }
  66. }
  67. }
  68. }
  69. &.size--medium {
  70. font-size: var(--vxe-ui-font-size-medium);
  71. }
  72. &.size--small {
  73. font-size: var(--vxe-ui-font-size-small);
  74. }
  75. &.size--mini {
  76. font-size: var(--vxe-ui-font-size-mini);
  77. }
  78. }
  79. .vxe-alert--icon {
  80. display: flex;
  81. flex-direction: row;
  82. align-items: center;
  83. justify-content: center;
  84. flex-shrink: 0;
  85. font-size: 1.5em;
  86. padding: 0 var(--vxe-ui-layout-padding-default);
  87. }
  88. .vxe-alert--body {
  89. flex-grow: 1;
  90. }
  91. .vxe-alert--title {
  92. font-size: 1.1em;
  93. font-weight: 700;
  94. line-height: 2em;
  95. }
  96. .vxe-alert--close-btn {
  97. padding: 0 0.4em;
  98. line-height: 2.2em;
  99. cursor: pointer;
  100. }