Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
13542 anikendra 1
 
2
// Button Mixins
3
// --------------------------------------------------
4
 
5
@mixin button-style($bg-color, $border-color, $active-bg-color, $active-border-color, $color) {
6
  border-color: $border-color;
7
  background-color: $bg-color;
8
  color: $color;
9
 
10
  // Give desktop users something to play with
11
  &:hover {
12
    color: $color;
13
    text-decoration: none;
14
  }
15
  &.active,
16
  &.activated {
17
    border-color: $active-border-color;
18
    background-color: $active-bg-color;
19
    box-shadow: inset 0 1px 4px rgba(0,0,0,0.1);
20
  }
21
}
22
 
23
@mixin button-clear($color, $font-size:"") {
24
  &.button-clear {
25
    border-color: transparent;
26
    background: none;
27
    box-shadow: none;
28
    color: $color;
29
 
30
    @if $font-size != "" {
31
      font-size: $font-size;
32
    }
33
  }
34
  &.button-icon {
35
    border-color: transparent;
36
    background: none;
37
  }
38
}
39
 
40
@mixin button-outline($color, $text-color:"") {
41
  &.button-outline {
42
    border-color: $color;
43
    background: transparent;
44
    @if $text-color == "" {
45
      $text-color: $color;
46
    }
47
    color: $text-color;
48
    &.active,
49
    &.activated {
50
      background-color: $color;
51
      box-shadow: none;
52
      color: #fff;
53
    }
54
  }
55
}
56
 
57
 
58
// Bar Mixins
59
// --------------------------------------------------
60
 
61
@mixin bar-style($bg-color, $border-color, $color) {
62
  border-color: $border-color;
63
  background-color: $bg-color;
64
  background-image: linear-gradient(0deg, $border-color, $border-color 50%, transparent 50%);
65
  color: $color;
66
 
67
  .title {
68
    color: $color;
69
  }
70
}
71
 
72
 
73
// Tab Mixins
74
// --------------------------------------------------
75
 
76
@mixin tab-style($bg-color, $border-color, $color) {
77
  border-color: $border-color;
78
  background-color: $bg-color;
79
  background-image: linear-gradient(0deg, $border-color, $border-color 50%, transparent 50%);
80
  color: $color;
81
}
82
 
83
@mixin tab-badge-style($bg-color, $color) {
84
  .tab-item .badge {
85
    background-color: $bg-color;
86
    color: $color;
87
  }
88
}
89
 
90
 
91
// Item Mixins
92
// --------------------------------------------------
93
 
94
@mixin item-style($bg-color, $border-color, $color) {
95
  border-color: $border-color;
96
  background-color: $bg-color;
97
  color: $color;
98
}
99
 
100
@mixin item-active-style($active-bg-color, $active-border-color) {
101
  border-color: $active-border-color;
102
  background-color: $active-bg-color;
103
}
104
 
105
 
106
// Badge Mixins
107
// --------------------------------------------------
108
 
109
@mixin badge-style($bg-color, $color) {
110
  background-color: $bg-color;
111
  color: $color;
112
}
113
 
114
 
115
// Range Mixins
116
// --------------------------------------------------
117
 
118
@mixin range-style($track-bg-color) {
119
  &::-webkit-slider-thumb:before {
120
    background: $track-bg-color;
121
  }
122
}
123
 
124
 
125
// Checkbox Mixins
126
// --------------------------------------------------
127
 
128
@mixin checkbox-style($off-border-color, $on-bg-color, $on-border-color) {
129
  & input:before,
130
  & .checkbox-icon:before {
131
    border-color: $off-border-color;
132
  }
133
 
134
  // what the background looks like when its checked
135
  & input:checked:before,
136
  & input:checked + .checkbox-icon:before {
137
    background: $on-bg-color;
138
    border-color: $on-border-color;
139
  }
140
}
141
 
142
 
143
// Toggle Mixins
144
// --------------------------------------------------
145
 
146
@mixin toggle-style($on-border-color, $on-bg-color) {
147
  // the track when the toggle is "on"
148
  & input:checked + .track {
149
    border-color: $on-border-color;
150
    background-color: $on-bg-color;
151
  }
152
}
153
 
154
 
155
// Clearfix
156
// --------------------------------------------------
157
 
158
@mixin clearfix {
159
  *zoom: 1;
160
  &:before,
161
  &:after {
162
    display: table;
163
    content: "";
164
    line-height: 0;
165
  }
166
  &:after {
167
    clear: both;
168
  }
169
}
170
 
171
 
172
// Placeholder text
173
// --------------------------------------------------
174
 
175
@mixin placeholder($color: $input-color-placeholder, $text-indent: 0) {
176
  &::-moz-placeholder { // Firefox 19+
177
    color: $color;
178
  }
179
  &:-ms-input-placeholder {
180
    color: $color;
181
  }
182
  &::-webkit-input-placeholder {
183
    color: $color;
184
    // Safari placeholder margin issue
185
    text-indent: $text-indent;
186
  }
187
}
188
 
189
 
190
// Text Mixins
191
// --------------------------------------------------
192
 
193
@mixin text-size-adjust($value: none) {
194
  -webkit-text-size-adjust: $value;
195
     -moz-text-size-adjust: $value;
196
          text-size-adjust: $value;
197
}
198
@mixin tap-highlight-transparent() {
199
  -webkit-tap-highlight-color: rgba(0,0,0,0);
200
  -webkit-tap-highlight-color: transparent; // For some Androids
201
}
202
@mixin touch-callout($value: none) {
203
  -webkit-touch-callout: $value;
204
}
205
 
206
 
207
// Font Mixins
208
// --------------------------------------------------
209
 
210
@mixin font-family-serif() {
211
  font-family: $serif-font-family;
212
}
213
@mixin font-family-sans-serif() {
214
  font-family: $sans-font-family;
215
}
216
@mixin font-family-monospace() {
217
  font-family: $mono-font-family;
218
}
219
@mixin font-shorthand($size: $base-font-size, $weight: normal, $line-height: $base-line-height) {
220
  font-weight: $weight;
221
  font-size: $size;
222
  line-height: $line-height;
223
}
224
@mixin font-serif($size: $base-font-size, $weight: normal, $line-height: $base-line-height) {
225
  @include font-family-serif();
226
  @include font-shorthand($size, $weight, $line-height);
227
}
228
@mixin font-sans-serif($size: $base-font-size, $weight: normal, $line-height: $base-line-height) {
229
  @include font-family-sans-serif();
230
  @include font-shorthand($size, $weight, $line-height);
231
}
232
@mixin font-monospace($size: $base-font-size, $weight: normal, $line-height: $base-line-height) {
233
  @include font-family-monospace();
234
  @include font-shorthand($size, $weight, $line-height);
235
}
236
@mixin font-smoothing($font-smoothing) {
237
  -webkit-font-smoothing: $font-smoothing;
238
          font-smoothing: $font-smoothing;
239
}
240
 
241
 
242
// Appearance
243
// --------------------------------------------------
244
 
245
@mixin appearance($val) {
246
  -webkit-appearance: $val;
247
     -moz-appearance: $val;
248
          appearance: $val;
249
}
250
 
251
 
252
// Border Radius Mixins
253
// --------------------------------------------------
254
 
255
@mixin border-radius($radius) {
256
  -webkit-border-radius: $radius;
257
          border-radius: $radius;
258
}
259
 
260
// Single Corner Border Radius
261
@mixin border-top-left-radius($radius) {
262
  -webkit-border-top-left-radius: $radius;
263
          border-top-left-radius: $radius;
264
}
265
@mixin border-top-right-radius($radius) {
266
  -webkit-border-top-right-radius: $radius;
267
          border-top-right-radius: $radius;
268
}
269
@mixin border-bottom-right-radius($radius) {
270
  -webkit-border-bottom-right-radius: $radius;
271
          border-bottom-right-radius: $radius;
272
}
273
@mixin border-bottom-left-radius($radius) {
274
  -webkit-border-bottom-left-radius: $radius;
275
          border-bottom-left-radius: $radius;
276
}
277
 
278
// Single Side Border Radius
279
@mixin border-top-radius($radius) {
280
  @include border-top-right-radius($radius);
281
  @include border-top-left-radius($radius);
282
}
283
@mixin border-right-radius($radius) {
284
  @include border-top-right-radius($radius);
285
  @include border-bottom-right-radius($radius);
286
}
287
@mixin border-bottom-radius($radius) {
288
  @include border-bottom-right-radius($radius);
289
  @include border-bottom-left-radius($radius);
290
}
291
@mixin border-left-radius($radius) {
292
  @include border-top-left-radius($radius);
293
  @include border-bottom-left-radius($radius);
294
}
295
 
296
 
297
// Box shadows
298
// --------------------------------------------------
299
 
300
@mixin box-shadow($shadow...) {
301
  -webkit-box-shadow: $shadow;
302
          box-shadow: $shadow;
303
}
304
 
305
 
306
// Transition Mixins
307
// --------------------------------------------------
308
 
309
@mixin transition($transition...) {
310
  -webkit-transition: $transition;
311
          transition: $transition;
312
}
313
@mixin transition-delay($transition-delay) {
314
  -webkit-transition-delay: $transition-delay;
315
          transition-delay: $transition-delay;
316
}
317
@mixin transition-duration($transition-duration) {
318
  -webkit-transition-duration: $transition-duration;
319
          transition-duration: $transition-duration;
320
}
321
@mixin transition-timing-function($transition-timing) {
322
   -webkit-transition-timing-function: $transition-timing;
323
           transition-timing-function: $transition-timing;
324
 }
325
 @mixin transition-property($property) {
326
  -webkit-transition-property: $property;
327
          transition-property: $property;
328
}
329
@mixin transition-transform($properties...) {
330
  // special case cuz of transform vendor prefixes
331
  -webkit-transition: -webkit-transform $properties;
332
          transition: transform $properties;
333
}
334
 
335
 
336
// Animation Mixins
337
// --------------------------------------------------
338
 
339
@mixin animation($animation) {
340
 -webkit-animation: $animation;
341
         animation: $animation;
342
}
343
@mixin animation-duration($duration) {
344
 -webkit-animation-duration: $duration;
345
         animation-duration: $duration;
346
}
347
@mixin animation-direction($direction) {
348
 -webkit-animation-direction: $direction;
349
         animation-direction: $direction;
350
}
351
@mixin animation-timing-function($animation-timing) {
352
 -webkit-animation-timing-function: $animation-timing;
353
         animation-timing-function: $animation-timing;
354
}
355
@mixin animation-fill-mode($fill-mode) {
356
 -webkit-animation-fill-mode: $fill-mode;
357
         animation-fill-mode: $fill-mode;
358
}
359
@mixin animation-name($name...) {
360
 -webkit-animation-name: $name;
361
         animation-name: $name;
362
}
363
@mixin animation-iteration-count($count) {
364
 -webkit-animation-iteration-count: $count;
365
         animation-iteration-count: $count;
366
}
367
 
368
 
369
// Transformation Mixins
370
// --------------------------------------------------
371
 
372
@mixin rotate($degrees) {
373
  @include transform( rotate($degrees) );
374
}
375
@mixin scale($ratio) {
376
  @include transform( scale($ratio) );
377
}
378
@mixin translate($x, $y) {
379
  @include transform( translate($x, $y) );
380
}
381
@mixin skew($x, $y) {
382
  @include transform( skew($x, $y) );
383
  -webkit-backface-visibility: hidden;
384
}
385
@mixin translate3d($x, $y, $z) {
386
  @include transform( translate3d($x, $y, $z) );
387
}
388
@mixin translateZ($z) {
389
  @include transform( translateZ($z) );
390
}
391
@mixin transform($val) {
392
  -webkit-transform: $val;
393
          transform: $val;
394
}
395
 
396
@mixin transform-origin($left, $top) {
397
  -webkit-transform-origin: $left $top;
398
          transform-origin: $left $top;
399
}
400
 
401
 
402
// Backface visibility
403
// --------------------------------------------------
404
// Prevent browsers from flickering when using CSS 3D transforms.
405
// Default value is `visible`, but can be changed to `hidden
406
 
407
@mixin backface-visibility($visibility){
408
  -webkit-backface-visibility: $visibility;
409
          backface-visibility: $visibility;
410
}
411
 
412
 
413
// Background clipping
414
// --------------------------------------------------
415
 
416
@mixin background-clip($clip) {
417
  -webkit-background-clip: $clip;
418
          background-clip: $clip;
419
}
420
 
421
 
422
// Background sizing
423
// --------------------------------------------------
424
 
425
@mixin background-size($size) {
426
  -webkit-background-size: $size;
427
          background-size: $size;
428
}
429
 
430
 
431
// Box sizing
432
// --------------------------------------------------
433
 
434
@mixin box-sizing($boxmodel) {
435
  -webkit-box-sizing: $boxmodel;
436
     -moz-box-sizing: $boxmodel;
437
          box-sizing: $boxmodel;
438
}
439
 
440
 
441
// User select
442
// --------------------------------------------------
443
 
444
@mixin user-select($select) {
445
  -webkit-user-select: $select;
446
     -moz-user-select: $select;
447
      -ms-user-select: $select;
448
          user-select: $select;
449
}
450
 
451
 
452
// Content Columns
453
// --------------------------------------------------
454
 
455
@mixin content-columns($columnCount, $columnGap: $grid-gutter-width) {
456
  -webkit-column-count: $columnCount;
457
     -moz-column-count: $columnCount;
458
          column-count: $columnCount;
459
  -webkit-column-gap: $columnGap;
460
     -moz-column-gap: $columnGap;
461
          column-gap: $columnGap;
462
}
463
 
464
 
465
// Flexbox Mixins
466
// --------------------------------------------------
467
// http://philipwalton.github.io/solved-by-flexbox/
468
// https://github.com/philipwalton/solved-by-flexbox
469
 
470
@mixin display-flex {
471
  display: -webkit-box;
472
  display: -webkit-flex;
473
  display: -moz-box;
474
  display: -moz-flex;
475
  display: -ms-flexbox;
476
  display: flex;
477
}
478
 
479
@mixin display-inline-flex {
480
  display: -webkit-inline-box;
481
  display: -webkit-inline-flex;
482
  display: -moz-inline-flex;
483
  display: -ms-inline-flexbox;
484
  display: inline-flex;
485
}
486
 
487
@mixin flex-direction($value: row) {
488
  @if $value == row-reverse {
489
    -webkit-box-direction: reverse;
490
    -webkit-box-orient: horizontal;
491
  } @else if $value == column {
492
    -webkit-box-direction: normal;
493
    -webkit-box-orient: vertical;
494
  } @else if $value == column-reverse {
495
    -webkit-box-direction: reverse;
496
    -webkit-box-orient: vertical;
497
  } @else {
498
    -webkit-box-direction: normal;
499
    -webkit-box-orient: horizontal;
500
  }
501
  -webkit-flex-direction: $value;
502
  -moz-flex-direction: $value;
503
  -ms-flex-direction: $value;
504
  flex-direction: $value;
505
}
506
 
507
@mixin flex-wrap($value: nowrap) {
508
  // No Webkit Box fallback.
509
  -webkit-flex-wrap: $value;
510
  -moz-flex-wrap: $value;
511
  @if $value == nowrap {
512
      -ms-flex-wrap: none;
513
  } @else {
514
      -ms-flex-wrap: $value;
515
  }
516
  flex-wrap: $value;
517
}
518
 
519
@mixin flex($fg: 1, $fs: null, $fb: null) {
520
  -webkit-box-flex: $fg;
521
  -webkit-flex: $fg $fs $fb;
522
  -moz-box-flex: $fg;
523
  -moz-flex: $fg $fs $fb;
524
  -ms-flex: $fg $fs $fb;
525
  flex: $fg $fs $fb;
526
}
527
 
528
@mixin flex-flow($values: (row nowrap)) {
529
  // No Webkit Box fallback.
530
  -webkit-flex-flow: $values;
531
  -moz-flex-flow: $values;
532
  -ms-flex-flow: $values;
533
  flex-flow: $values;
534
}
535
 
536
@mixin align-items($value: stretch) {
537
  @if $value == flex-start {
538
    -webkit-box-align: start;
539
    -ms-flex-align: start;
540
  } @else if $value == flex-end {
541
    -webkit-box-align: end;
542
    -ms-flex-align: end;
543
  } @else {
544
    -webkit-box-align: $value;
545
    -ms-flex-align: $value;
546
  }
547
  -webkit-align-items: $value;
548
  -moz-align-items: $value;
549
  align-items: $value;
550
}
551
 
552
@mixin align-self($value: auto) {
553
  -webkit-align-self: $value;
554
  -moz-align-self: $value;
555
  @if $value == flex-start {
556
    -ms-flex-item-align: start;
557
  } @else if $value == flex-end {
558
    -ms-flex-item-align: end;
559
  } @else {
560
    -ms-flex-item-align: $value;
561
  }
562
  align-self: $value;
563
}
564
 
565
@mixin align-content($value: stretch) {
566
  -webkit-align-content: $value;
567
  -moz-align-content: $value;
568
  @if $value == flex-start {
569
    -ms-flex-line-pack: start;
570
  } @else if $value == flex-end {
571
    -ms-flex-line-pack: end;
572
  } @else {
573
    -ms-flex-line-pack: $value;
574
  }
575
  align-content: $value;
576
}
577
 
578
@mixin justify-content($value: stretch) {
579
  @if $value == flex-start {
580
    -webkit-box-pack: start;
581
    -ms-flex-pack: start;
582
  } @else if $value == flex-end {
583
    -webkit-box-pack: end;
584
    -ms-flex-pack: end;
585
  } @else if $value == space-between {
586
    -webkit-box-pack: justify;
587
    -ms-flex-pack: justify;
588
  } @else {
589
    -webkit-box-pack: $value;
590
    -ms-flex-pack: $value;
591
  }
592
  -webkit-justify-content: $value;
593
  -moz-justify-content: $value;
594
  justify-content: $value;
595
}
596
 
597
@mixin flex-order($n) {
598
  -webkit-order: $n;
599
  -ms-flex-order: $n;
600
  order: $n;
601
  -webkit-box-ordinal-group: $n;
602
}
603
 
604
@mixin responsive-grid-break($selector, $max-width) {
605
  @media (max-width: $max-width) {
606
    #{$selector} {
607
      -webkit-box-direction: normal;
608
      -moz-box-direction: normal;
609
      -webkit-box-orient: vertical;
610
      -moz-box-orient: vertical;
611
      -webkit-flex-direction: column;
612
      -ms-flex-direction: column;
613
      flex-direction: column;
614
 
615
      .col, .col-10, .col-20, .col-25, .col-33, .col-34, .col-50, .col-66, .col-67, .col-75, .col-80, .col-90 {
616
        @include flex(1);
617
        margin-bottom: ($grid-padding-width * 3) / 2;
618
        margin-left: 0;
619
        max-width: 100%;
620
        width: 100%;
621
      }
622
    }
623
  }
624
}