index-pure.less 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. @import '../../style/themes/index';
  2. @import '../../style/mixins/index';
  3. @popover-prefix-cls: ~'@{ant-prefix}-popover';
  4. @popover-arrow-rotate-width: sqrt(@popover-arrow-width * @popover-arrow-width * 2);
  5. @popover-arrow-offset-vertical: 12px;
  6. @popover-arrow-offset-horizontal: 16px;
  7. .@{popover-prefix-cls} {
  8. .reset-component();
  9. position: absolute;
  10. top: 0;
  11. left: 0;
  12. z-index: @zindex-popover;
  13. font-weight: normal;
  14. white-space: normal;
  15. text-align: left;
  16. cursor: auto;
  17. user-select: text;
  18. &::after {
  19. position: absolute;
  20. background: fade(@white, 1%);
  21. content: '';
  22. }
  23. &-hidden {
  24. display: none;
  25. }
  26. // Offset the popover to account for the popover arrow
  27. &-placement-top,
  28. &-placement-topLeft,
  29. &-placement-topRight {
  30. padding-bottom: @popover-distance;
  31. }
  32. &-placement-right,
  33. &-placement-rightTop,
  34. &-placement-rightBottom {
  35. padding-left: @popover-distance;
  36. }
  37. &-placement-bottom,
  38. &-placement-bottomLeft,
  39. &-placement-bottomRight {
  40. padding-top: @popover-distance;
  41. }
  42. &-placement-left,
  43. &-placement-leftTop,
  44. &-placement-leftBottom {
  45. padding-right: @popover-distance;
  46. }
  47. &-inner {
  48. background-color: @popover-bg;
  49. background-clip: padding-box;
  50. border-radius: @border-radius-base;
  51. box-shadow: @box-shadow-base;
  52. box-shadow: ~'0 0 8px @{shadow-color} \9';
  53. }
  54. @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  55. /* IE10+ */
  56. &-inner {
  57. box-shadow: @box-shadow-base;
  58. }
  59. }
  60. &-title {
  61. min-width: @popover-min-width;
  62. min-height: @popover-min-height;
  63. margin: 0; // reset heading margin
  64. padding: 5px @popover-padding-horizontal 4px;
  65. color: @heading-color;
  66. font-weight: 500;
  67. border-bottom: 1px solid @border-color-split;
  68. }
  69. &-inner-content {
  70. padding: @padding-sm @popover-padding-horizontal;
  71. color: @popover-color;
  72. }
  73. &-message {
  74. position: relative;
  75. padding: 4px 0 12px;
  76. color: @popover-color;
  77. font-size: @font-size-base;
  78. > .@{iconfont-css-prefix} {
  79. position: absolute;
  80. top: (
  81. 4px + ((@line-height-base * @font-size-base - @font-size-base) / 2)
  82. ); // 4px for padding-top, 4px for vertical middle
  83. color: @warning-color;
  84. font-size: @font-size-base;
  85. }
  86. &-title {
  87. padding-left: @font-size-base + 8px;
  88. }
  89. }
  90. &-buttons {
  91. margin-bottom: 4px;
  92. text-align: right;
  93. button {
  94. margin-left: 8px;
  95. }
  96. }
  97. // Arrows
  98. &-arrow {
  99. position: absolute;
  100. display: block;
  101. width: @popover-arrow-rotate-width;
  102. height: @popover-arrow-rotate-width;
  103. overflow: hidden;
  104. background: transparent;
  105. pointer-events: none;
  106. &-content {
  107. position: absolute;
  108. top: 0;
  109. right: 0;
  110. bottom: 0;
  111. left: 0;
  112. display: block;
  113. width: @popover-arrow-width;
  114. height: @popover-arrow-width;
  115. margin: auto;
  116. background-color: @popover-bg;
  117. content: '';
  118. pointer-events: auto;
  119. }
  120. }
  121. &-placement-top &-arrow,
  122. &-placement-topLeft &-arrow,
  123. &-placement-topRight &-arrow {
  124. bottom: @popover-distance - @popover-arrow-rotate-width;
  125. &-content {
  126. box-shadow: 3px 3px 7px fade(@black, 7%);
  127. transform: translateY((-@popover-arrow-rotate-width / 2)) rotate(45deg);
  128. }
  129. }
  130. &-placement-top &-arrow {
  131. left: 50%;
  132. transform: translateX(-50%);
  133. }
  134. &-placement-topLeft &-arrow {
  135. left: @popover-arrow-offset-horizontal;
  136. }
  137. &-placement-topRight &-arrow {
  138. right: @popover-arrow-offset-horizontal;
  139. }
  140. &-placement-right &-arrow,
  141. &-placement-rightTop &-arrow,
  142. &-placement-rightBottom &-arrow {
  143. left: @popover-distance - @popover-arrow-rotate-width;
  144. &-content {
  145. box-shadow: -3px 3px 7px fade(@black, 7%);
  146. transform: translateX((@popover-arrow-rotate-width / 2)) rotate(45deg);
  147. }
  148. }
  149. &-placement-right &-arrow {
  150. top: 50%;
  151. transform: translateY(-50%);
  152. }
  153. &-placement-rightTop &-arrow {
  154. top: @popover-arrow-offset-vertical;
  155. }
  156. &-placement-rightBottom &-arrow {
  157. bottom: @popover-arrow-offset-vertical;
  158. }
  159. &-placement-bottom &-arrow,
  160. &-placement-bottomLeft &-arrow,
  161. &-placement-bottomRight &-arrow {
  162. top: @popover-distance - @popover-arrow-rotate-width;
  163. &-content {
  164. box-shadow: -2px -2px 5px fade(@black, 6%);
  165. transform: translateY((@popover-arrow-rotate-width / 2)) rotate(45deg);
  166. }
  167. }
  168. &-placement-bottom &-arrow {
  169. left: 50%;
  170. transform: translateX(-50%);
  171. }
  172. &-placement-bottomLeft &-arrow {
  173. left: @popover-arrow-offset-horizontal;
  174. }
  175. &-placement-bottomRight &-arrow {
  176. right: @popover-arrow-offset-horizontal;
  177. }
  178. &-placement-left &-arrow,
  179. &-placement-leftTop &-arrow,
  180. &-placement-leftBottom &-arrow {
  181. right: @popover-distance - @popover-arrow-rotate-width;
  182. &-content {
  183. box-shadow: 3px -3px 7px fade(@black, 7%);
  184. transform: translateX((-@popover-arrow-rotate-width / 2)) rotate(45deg);
  185. }
  186. }
  187. &-placement-left &-arrow {
  188. top: 50%;
  189. transform: translateY(-50%);
  190. }
  191. &-placement-leftTop &-arrow {
  192. top: @popover-arrow-offset-vertical;
  193. }
  194. &-placement-leftBottom &-arrow {
  195. bottom: @popover-arrow-offset-vertical;
  196. }
  197. }
  198. .generator-popover-preset-color(@i: length(@preset-colors)) when (@i > 0) {
  199. .generator-popover-preset-color(@i - 1);
  200. @color: extract(@preset-colors, @i);
  201. @lightColor: '@{color}-6';
  202. .@{popover-prefix-cls}-@{color} {
  203. .@{popover-prefix-cls}-inner {
  204. background-color: @@lightColor;
  205. }
  206. .@{popover-prefix-cls}-arrow {
  207. &-content {
  208. background-color: @@lightColor;
  209. }
  210. }
  211. }
  212. }
  213. .generator-popover-preset-color();
  214. @import './rtl';