Advertisement
roxiestheme

SCSS prefix mixins

Feb 15th, 2019
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.09 KB | None | 0 0
  1. // placeholder
  2. @mixin optional-at-root($sel) {
  3. @at-root #{if(not &, $sel, selector-append(&, $sel))} {
  4. @content;
  5. }
  6. }
  7. @mixin placeholder {
  8. @include optional-at-root('::-webkit-input-placeholder') {
  9. @content;
  10. }
  11. @include optional-at-root(':-moz-placeholder') {
  12. @content;
  13. }
  14. @include optional-at-root('::-moz-placeholder') {
  15. @content;
  16. }
  17. @include optional-at-root(':-ms-input-placeholder') {
  18. @content;
  19. }
  20. }
  21.  
  22. // box-sizing
  23. @mixin box-sizing($value) {
  24. -webkit-box-sizing: $value;
  25. -moz-box-sizing: $value;
  26. box-sizing: $value;
  27. }
  28.  
  29. // filter
  30. @mixin filter($value) {
  31. -webkit-filter: $value;
  32. -ms-filter: $value;
  33. filter: $value;
  34. }
  35.  
  36. // flexbox
  37. @mixin flexbox {
  38. display: -webkit-box;
  39. display: -webkit-flex;
  40. display: -ms-flexbox;
  41. display: flex;
  42. }
  43. @mixin inline-flex {
  44. display: -webkit-inline-box;
  45. display: -webkit-inline-flex;
  46. display: -ms-inline-flexbox;
  47. display: inline-flex;
  48. }
  49.  
  50. // flex-direction
  51. @mixin flex-row {
  52. -webkit-box-orient: horizontal;
  53. -webkit-box-direction: normal;
  54. -ms-flex-direction: row;
  55. flex-direction: row;
  56. }
  57. @mixin flex-row-reverse {
  58. -webkit-box-orient: horizontal;
  59. -webkit-box-direction: reverse;
  60. -ms-flex-direction: row-reverse;
  61. flex-direction: row-reverse;
  62. }
  63. @mixin flex-column {
  64. -webkit-box-orient: vertical;
  65. -webkit-box-direction: normal;
  66. -ms-flex-direction: column;
  67. flex-direction: column;
  68. }
  69. @mixin flex-column-reverse {
  70. -webkit-box-orient: vertical;
  71. -webkit-box-direction: reverse;
  72. -ms-flex-direction: column-reverse;
  73. flex-direction: column-reverse;
  74. }
  75.  
  76. // flex-wrap
  77. @mixin flex-wrap {
  78. -ms-flex-wrap: wrap;
  79. flex-wrap: wrap;
  80. }
  81. @mixin flex-wrap-reverse {
  82. -ms-flex-wrap: wrap-reverse;
  83. flex-wrap: wrap-reverse;
  84. }
  85. @mixin flex-nowrap {
  86. -ms-flex-wrap: nowrap;
  87. flex-wrap: nowrap;
  88. }
  89.  
  90. // justify-content
  91. @mixin justify-content-start {
  92. -webkit-box-pack: start;
  93. -ms-flex-pack: start;
  94. justify-content: flex-start;
  95. }
  96. @mixin justify-content-end {
  97. -webkit-box-pack: end;
  98. -ms-flex-pack: end;
  99. justify-content: flex-end;
  100. }
  101. @mixin justify-content-center {
  102. -webkit-box-pack: center;
  103. -ms-flex-pack: center;
  104. justify-content: center;
  105. }
  106. @mixin justify-content-between {
  107. -webkit-box-pack: justify;
  108. -ms-flex-pack: justify;
  109. justify-content: space-between;
  110. }
  111.  
  112. // align-items
  113. @mixin align-items-start {
  114. -webkit-box-align: start;
  115. -ms-flex-align: start;
  116. align-items: flex-start;
  117. }
  118. @mixin align-items-end {
  119. -webkit-box-align: end;
  120. -ms-flex-align: end;
  121. align-items: flex-end;
  122. }
  123. @mixin align-items-center {
  124. -webkit-box-align: center;
  125. -ms-flex-align: center;
  126. align-items: center;
  127. }
  128. @mixin align-items-stretch {
  129. -webkit-box-align: stretch;
  130. -ms-flex-align: stretch;
  131. align-items: stretch;
  132. }
  133.  
  134. // align-self
  135. @mixin align-self-start {
  136. -webkit-align-self: start;
  137. -ms-flex-item-align: start;
  138. align-self: flex-start;
  139. }
  140. @mixin align-self-end {
  141. -webkit-align-self: end;
  142. -ms-flex-item-align: end;
  143. align-self: flex-end;
  144. }
  145.  
  146. // flex-shrink
  147. @mixin flex-shrink($value) {
  148. -webkit-flex-shrink: $value;
  149. -moz-flex-shrink: $value;
  150. -ms-flex-negative: $value;
  151. flex-shrink: $value;
  152. }
  153.  
  154. // flex-grow
  155. @mixin flex-grow($value) {
  156. -webkit-box-flex: $value;
  157. -webkit-flex-grow: $value;
  158. -moz-flex-grow: $value;
  159. -ms-flex-positive: $value;
  160. flex-grow: $value;
  161. }
  162.  
  163. // flex-grow
  164. @mixin flex-basis($value) {
  165. -webkit-flex-basis: $value;
  166. -moz-flex-basis: $value;
  167. -ms-flex-preferred-size: $value;
  168. flex-basis: $value;
  169. }
  170.  
  171. // flex
  172. @mixin flex($value) {
  173. -webkit-box-flex: $value;
  174. -ms-flex: $value;
  175. flex: $value;
  176. }
  177.  
  178. // vertical gradient
  179. @mixin vertical-gradient($colors...) {
  180. background: -webkit-linear-gradient(top, $colors);
  181. background: -moz-linear-gradient(top, $colors);
  182. background: -o-linear-gradient(top, $colors);
  183. background: -ms-linear-gradient(top, $colors);
  184. background: linear-gradient(to bottom, $colors);
  185. }
  186.  
  187. // horizontal gradient
  188. @mixin horizontal-gradient($colors...) {
  189. background: -webkit-linear-gradient(left, $colors);
  190. background: -moz-linear-gradient(left, $colors);
  191. background: -o-linear-gradient(left, $colors);
  192. background: -ms-linear-gradient(left, $colors);
  193. background: linear-gradient(to right, $colors);
  194. }
  195.  
  196. // radial gradient
  197. @mixin radial-gradient($colors...) {
  198. background: -webkit-radial-gradient($colors);
  199. background: -moz-radial-gradient($colors);
  200. background: -o-radial-gradient($colors);
  201. background: radial-gradient($colors);
  202. }
  203.  
  204. // rotate gradient
  205. // example: @include rotate-gradient(-45deg, 135deg, #000, #fff);
  206. @mixin rotate-gradient($deg1, $deg2, $colors...) {
  207. background-image: -webkit-linear-gradient(#{$deg1}deg, $colors);
  208. background-image: -moz-linear-gradient(#{$deg1}deg, $colors);
  209. background-image: -o-linear-gradient(#{$deg1}deg, $colors);
  210. background-image: -ms-linear-gradient(#{$deg1}deg, $colors);
  211. background-image: linear-gradient(#{$deg2}deg, $colors);
  212. }
  213. // box shadow
  214. @mixin box-shadow($content...) {
  215. -webkit-box-shadow: $content;
  216. -moz-box-shadow: $content;
  217. box-shadow: $content;
  218. }
  219.  
  220. // generic transform
  221. @mixin transform($transforms) {
  222. -moz-transform: $transforms;
  223. -o-transform: $transforms;
  224. -ms-transform: $transforms;
  225. -webkit-transform: $transforms;
  226. transform: $transforms;
  227. }
  228.  
  229. // rotate
  230. @mixin rotate ($deg) {
  231. @include transform(rotate(#{$deg}deg));
  232. }
  233.  
  234. // scale
  235. @mixin scale($scale) {
  236. @include transform(scale($scale));
  237. }
  238.  
  239. // scaleX
  240. @mixin scaleX($scaleX) {
  241. @include transform(scaleX($scaleX));
  242. }
  243.  
  244. // scaleY
  245. @mixin scaleY($scaleY) {
  246. @include transform(scaleY($scaleY));
  247. }
  248.  
  249. // translate
  250. @mixin translate($x, $y) {
  251. @include transform(translate($x, $y));
  252. }
  253.  
  254. // translateX
  255. @mixin translateX($translateX) {
  256. @include transform(translateX($translateX));
  257. }
  258.  
  259. // translateY
  260. @mixin translateY($translateY) {
  261. @include transform(translateY($translateY));
  262. }
  263.  
  264. // translate
  265. @mixin translate3d ($x, $y, $z) {
  266. @include transform(translate3d($x, $y, $z));
  267. }
  268.  
  269. // skew
  270. @mixin skew ($x, $y) {
  271. @include transform(skew(#{$x}deg, #{$y}deg));
  272. }
  273.  
  274. // matrix
  275. @mixin matrix($matrix...) {
  276. @include transform(matrix($matrix));
  277. }
  278.  
  279. // transform origin
  280. @mixin transform-origin ($origin) {
  281. -moz-transform-origin: $origin;
  282. -o-transform-origin: $origin;
  283. -ms-transform-origin: $origin;
  284. -webkit-transform-origin: $origin;
  285. transform-origin: $origin;
  286. }
  287.  
  288. // transform style
  289. @mixin transform-style($style) {
  290. -webkit-transform-style: $style;
  291. -moz-transform-style: $style;
  292. transform-style: $style;
  293. }
  294.  
  295. // transition
  296. @mixin transition($transition...) {
  297. -moz-transition: $transition;
  298. -o-transition: $transition;
  299. -webkit-transition: $transition;
  300. transition: $transition;
  301. }
  302. @mixin transition-property($property...) {
  303. -moz-transition-property: $property;
  304. -o-transition-property: $property;
  305. -webkit-transition-property: $property;
  306. transition-property: $property;
  307. }
  308. @mixin transition-duration($duration) {
  309. -moz-transition-duration: $duration;
  310. -o-transition-duration: $duration;
  311. -webkit-transition-duration: $duration;
  312. transition-duration: $duration;
  313. }
  314. @mixin transition-timing-function($timing) {
  315. -moz-transition-timing-function: $timing;
  316. -o-transition-timing-function: $timing;
  317. -webkit-transition-timing-function: $timing;
  318. transition-timing-function: $timing;
  319. }
  320. @mixin transition-delay($delay...) {
  321. -moz-transition-delay: $delay;
  322. -o-transition-delay: $delay;
  323. -webkit-transition-delay: $delay;
  324. transition-delay: $delay;
  325. }
  326.  
  327. // animation
  328. @mixin keyframe($name) {
  329. @-webkit-keyframes #{$name} {
  330. @content;
  331. }
  332. @-moz-keyframes #{$name} {
  333. @content;
  334. }
  335. @-o-keyframes #{$name} {
  336. @content;
  337. }
  338. @-ms-keyframes #{$name} {
  339. @content;
  340. }
  341. @keyframes #{$name} {
  342. @content;
  343. }
  344. }
  345. @mixin animation($content) {
  346. -webkit-animation: $content;
  347. -moz-animation: $content;
  348. -o-animation: $content;
  349. -ms-animation: $content;
  350. animation: $content;
  351. }
  352. @mixin animation-name($name) {
  353. -webkit-animation-name: $name;
  354. -moz-animation-name: $name;
  355. -o-animation-name: $name;
  356. animation-name: $name;
  357. }
  358. @mixin animation-duration($duration) {
  359. -webkit-animation-duration: $duration;
  360. -moz-animation-duration: $duration;
  361. -o-animation-duration: $duration;
  362. animation-duration: $duration;
  363. }
  364. @mixin animation-delay($delay) {
  365. -webkit-animation-delay: $delay;
  366. -moz-animation-delay: $delay;
  367. -o-animation-delay: $delay;
  368. animation-delay: $delay;
  369. }
  370. @mixin animation-iteration-count($count) {
  371. -webkit-animation-iteration-count: $count;
  372. -moz-animation-iteration-count: $count;
  373. -o-animation-iteration-count: $count;
  374. animation-iteration-count: $count;
  375. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement