toaster.scss 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293
  1. /*
  2. * Toastr
  3. * Version 2.0.1
  4. * Copyright 2012 John Papa and Hans Fjällemark.
  5. * All Rights Reserved.
  6. * Use, reproduction, distribution, and modification of this code is subject to the terms and
  7. * conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php
  8. *
  9. * Author: John Papa and Hans Fjällemark
  10. * Project: https://github.com/CodeSeven/toastr
  11. *
  12. *
  13. * SCSS File
  14. * Author: Damian Szymczuk
  15. * GitHub: https://github.com/dszymczuk
  16. *
  17. */
  18. /* Variables */
  19. $textColor: #ffffff !default;
  20. $textColorHover: #cccccc !default;
  21. $closeButton: #ffffff !default;
  22. $closeButtonHover: #000000 !default;
  23. $fontSize: 20px !default;
  24. $toast: #030303 !default;
  25. $toastSuccess: #51a351 !default;
  26. $toastError: #bd362f !default;
  27. $toastInfo: #2f96b4 !default;
  28. $toastWarning: #f89406 !default;
  29. $toastPositionFullWidthTop: 0 !default;
  30. $toastPositionFullWidthBottom: 0 !default;
  31. $toastPossitionTop: 12px !default;
  32. $toastPossitionLeft: 12px !default;
  33. $toastPossitionRight: 12px !default;
  34. $toastPossitionBottom: 12px !default;
  35. $toastContainerColor: #ffffff !default;
  36. $toastContainerShadowColor: #999999 !default;
  37. $toastContainerShadowColorHover: #000000 !default;
  38. .toast-title {
  39. font-weight: bold;
  40. }
  41. .toast-message {
  42. -ms-word-wrap: break-word;
  43. word-wrap: break-word;
  44. a, label {
  45. color: $textColor;
  46. }
  47. a:hover {
  48. color: $textColorHover;
  49. text-decoration: none;
  50. }
  51. }
  52. .toast-close-button {
  53. position: relative;
  54. right: -0.3em;
  55. top: -0.3em;
  56. float: right;
  57. font-size: $fontSize;
  58. font-weight: bold;
  59. color: $closeButton;
  60. -webkit-text-shadow: 0 1px 0 $closeButton;
  61. text-shadow: 0 1px 0 $closeButton;
  62. opacity: 0.8;
  63. -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
  64. filter: alpha(opacity = 80);
  65. &:hover, &:focus {
  66. color: $closeButtonHover;
  67. text-decoration: none;
  68. cursor: pointer;
  69. opacity: 0.4;
  70. -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
  71. filter: alpha(opacity = 40);
  72. }
  73. }
  74. /*Additional properties for button version
  75. iOS requires the button element instead of an anchor tag.
  76. If you want the anchor version, it requires `href="#"`.*/
  77. button.toast-close-button {
  78. padding: 0;
  79. cursor: pointer;
  80. background: transparent;
  81. border: 0;
  82. -webkit-appearance: none;
  83. }
  84. .toast-top-full-width {
  85. top: $toastPositionFullWidthTop;
  86. right: 0;
  87. width: 100%;
  88. }
  89. .toast-bottom-full-width {
  90. bottom: $toastPositionFullWidthBottom;
  91. right: 0;
  92. width: 100%;
  93. }
  94. .toast-top-left {
  95. top: $toastPossitionTop;
  96. left: $toastPossitionLeft;
  97. }
  98. .toast-top-center {
  99. top: $toastPossitionTop;
  100. }
  101. .toast-top-right {
  102. top: $toastPossitionTop;
  103. right: $toastPossitionRight;
  104. }
  105. .toast-bottom-right {
  106. right: $toastPossitionRight;
  107. bottom: $toastPossitionBottom;
  108. }
  109. .toast-bottom-center {
  110. bottom: $toastPossitionBottom;
  111. }
  112. .toast-bottom-left {
  113. bottom: $toastPossitionBottom;
  114. left: $toastPossitionLeft;
  115. }
  116. .toast-center {
  117. top: 45%;
  118. }
  119. #toast-container {
  120. position: fixed;
  121. z-index: 999999;
  122. /*overrides*/
  123. &.toast-center, &.toast-top-center, &.toast-bottom-center {
  124. width: 100%;
  125. pointer-events: none;
  126. }
  127. &.toast-center > div, &.toast-top-center > div, &.toast-bottom-center > div {
  128. margin: auto;
  129. pointer-events: auto;
  130. }
  131. &.toast-center > button, &.toast-top-cente > button, &.toast-bottom-center > button {
  132. pointer-events: auto;
  133. }
  134. * {
  135. -moz-box-sizing: border-box;
  136. -webkit-box-sizing: border-box;
  137. box-sizing: border-box;
  138. }
  139. > {
  140. div {
  141. margin: 0 0 6px;
  142. padding: 15px 15px 15px 50px;
  143. width: 300px;
  144. -moz-border-radius: 3px 3px 3px 3px;
  145. -webkit-border-radius: 3px 3px 3px 3px;
  146. border-radius: 3px 3px 3px 3px;
  147. background-position: 15px center;
  148. background-repeat: no-repeat;
  149. -moz-box-shadow: 0 0 12px $toastContainerShadowColor;
  150. -webkit-box-shadow: 0 0 12px $toastContainerShadowColor;
  151. box-shadow: 0 0 12px $toastContainerShadowColor;
  152. color: $toastContainerColor;
  153. opacity: 0.8;
  154. -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
  155. filter: alpha(opacity = 80);
  156. }
  157. :hover {
  158. -moz-box-shadow: 0 0 12px $toastContainerShadowColorHover;
  159. -webkit-box-shadow: 0 0 12px $toastContainerShadowColorHover;
  160. box-shadow: 0 0 12px $toastContainerShadowColorHover;
  161. opacity: 1;
  162. -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
  163. filter: alpha(opacity = 100);
  164. cursor: pointer;
  165. }
  166. .toast-info {
  167. background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important;
  168. }
  169. .toast-wait {
  170. background-image: url("data:image/gif;base64,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") !important;
  171. }
  172. .toast-error {
  173. background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important;
  174. }
  175. .toast-success {
  176. background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important;
  177. }
  178. .toast-warning {
  179. background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important;
  180. }
  181. }
  182. &.toast-top-full-width > div, &.toast-bottom-full-width > div {
  183. width: 96%;
  184. margin: auto;
  185. }
  186. }
  187. .toast {
  188. background-color: $toast;
  189. }
  190. .toast-success {
  191. background-color: $toastSuccess;
  192. }
  193. .toast-error {
  194. background-color: $toastError;
  195. }
  196. .toast-info, .toast-wait {
  197. background-color: $toastInfo;
  198. }
  199. .toast-warning {
  200. background-color: $toastWarning;
  201. }
  202. /*Responsive Design*/
  203. @media all and (max-width: 240px) {
  204. #toast-container {
  205. > div {
  206. padding: 8px 8px 8px 50px;
  207. width: 11em;
  208. }
  209. .toast-close-button {
  210. right: -0.2em;
  211. top: -0.2em;
  212. }
  213. }
  214. }
  215. @media all and (min-width: 241px) and (max-width: 480px) {
  216. #toast-container {
  217. > div {
  218. padding: 8px 8px 8px 50px;
  219. width: 18em;
  220. }
  221. .toast-close-button {
  222. right: -0.2em;
  223. top: -0.2em;
  224. }
  225. }
  226. }
  227. @media all and (min-width: 481px) and (max-width: 768px) {
  228. #toast-container > div {
  229. padding: 15px 15px 15px 50px;
  230. width: 25em;
  231. }
  232. }
  233. /*
  234. * AngularJS-Toaster
  235. * Version 0.3
  236. */
  237. :not(.no-enter)#toast-container > div.ng-enter, :not(.no-leave)#toast-container > div.ng-leave {
  238. -webkit-transition: 1000ms cubic-bezier(0.25, 0.25, 0.75, 0.75) all;
  239. -moz-transition: 1000ms cubic-bezier(0.25, 0.25, 0.75, 0.75) all;
  240. -ms-transition: 1000ms cubic-bezier(0.25, 0.25, 0.75, 0.75) all;
  241. -o-transition: 1000ms cubic-bezier(0.25, 0.25, 0.75, 0.75) all;
  242. transition: 1000ms cubic-bezier(0.25, 0.25, 0.75, 0.75) all;
  243. }
  244. :not(.no-enter)#toast-container > div.ng-enter.ng-enter-active {
  245. opacity: 0.8;
  246. }
  247. :not(.no-leave)#toast-container > div.ng-leave {
  248. opacity: 0.8;
  249. &.ng-leave-active {
  250. opacity: 0;
  251. }
  252. }
  253. :not(.no-enter)#toast-container > div.ng-enter {
  254. opacity: 0;
  255. }