summaryrefslogtreecommitdiff
path: root/source/bower_components/foundation/scss/foundation/components/_visibility.scss
blob: 7e7abef726c4bfd0a3be10caa69cc6d32c19b757 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
// Foundation by ZURB
// foundation.zurb.com
// Licensed under MIT Open Source

@import "global";

//
// Foundation Visibility Classes
//
$include-html-visibility-classes: $include-html-classes !default;
$include-accessibility-classes: true !default;
$include-table-visibility-classes: true !default;
$include-legacy-visibility-classes: true !default;

//
// Media Class Names
//
// Visibility Breakpoints
$visibility-breakpoint-sizes:
  small,
  medium,
  large,
  xlarge,
  xxlarge;

$visibility-breakpoint-queries:
  unquote($small-up),
  unquote($medium-up),
  unquote($large-up),
  unquote($xlarge-up),
  unquote($xxlarge-up);

@mixin visibility-loop {
  @each $current-visibility-breakpoint in $visibility-breakpoint-sizes {
    $visibility-inherit-list: ();
    $visibility-none-list: ();

    $visibility-visible-list: ();
    $visibility-hidden-list: ();

    $visibility-table-list: ();
    $visibility-table-header-group-list: ();
    $visibility-table-row-group-list: ();
    $visibility-table-row-list: ();
    $visibility-table-cell-list: ();

    @each $visibility-comparison-breakpoint in $visibility-breakpoint-sizes {
      @if index($visibility-breakpoint-sizes, $visibility-comparison-breakpoint) < index($visibility-breakpoint-sizes, $current-visibility-breakpoint) {
        // Smaller than current breakpoint

        $visibility-inherit-list: append($visibility-inherit-list, unquote(
          '.hide-for-#{$visibility-comparison-breakpoint}-only, .show-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);
        $visibility-none-list: append($visibility-none-list, unquote(
          '.show-for-#{$visibility-comparison-breakpoint}-only, .hide-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);
        $visibility-visible-list: append($visibility-visible-list, unquote(
          '.hidden-for-#{$visibility-comparison-breakpoint}-only, .visible-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);
        $visibility-hidden-list: append($visibility-hidden-list, unquote(
          '.visible-for-#{$visibility-comparison-breakpoint}-only, .hidden-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);
        $visibility-table-list: append($visibility-table-list, unquote(
          'table.hide-for-#{$visibility-comparison-breakpoint}-only, table.show-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);
        $visibility-table-header-group-list: append($visibility-table-header-group-list, unquote(
          'thead.hide-for-#{$visibility-comparison-breakpoint}-only, thead.show-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);
        $visibility-table-row-group-list: append($visibility-table-row-group-list, unquote(
          'tbody.hide-for-#{$visibility-comparison-breakpoint}-only, tbody.show-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);
        $visibility-table-row-list: append($visibility-table-row-list, unquote(
          'tr.hide-for-#{$visibility-comparison-breakpoint}-only, tr.show-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);
        $visibility-table-cell-list: append($visibility-table-cell-list, unquote(
          'th.hide-for-#{$visibility-comparison-breakpoint}-only, td.hide-for-#{$visibility-comparison-breakpoint}-only, th.show-for-#{$visibility-comparison-breakpoint}-up, td.show-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);

        // Foundation 4 compatibility:
        // Include .show/hide-for-[size] and .show/hide-for-[size]-down classes
        // for small, medium, and large breakpoints only
        @if $include-legacy-visibility-classes and index((small, medium, large), $visibility-comparison-breakpoint) != false {
          $visibility-inherit-list: append($visibility-inherit-list, unquote(
            '.hide-for-#{$visibility-comparison-breakpoint}, .hide-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
          $visibility-none-list: append($visibility-none-list, unquote(
            '.show-for-#{$visibility-comparison-breakpoint}, .show-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
          $visibility-visible-list: append($visibility-visible-list, unquote(
            '.hidden-for-#{$visibility-comparison-breakpoint}, .hidden-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
          $visibility-hidden-list: append($visibility-hidden-list, unquote(
            '.visible-for-#{$visibility-comparison-breakpoint}, .visible-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
          $visibility-table-list: append($visibility-table-list, unquote(
            'table.hide-for-#{$visibility-comparison-breakpoint}, table.hide-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
          $visibility-table-header-group-list: append($visibility-table-header-group-list, unquote(
            'thead.hide-for-#{$visibility-comparison-breakpoint}, thead.hide-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
          $visibility-table-row-group-list: append($visibility-table-row-group-list, unquote(
            'tbody.hide-for-#{$visibility-comparison-breakpoint}, tbody.hide-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
          $visibility-table-row-list: append($visibility-table-row-list, unquote(
            'tr.hide-for-#{$visibility-comparison-breakpoint}, tr.hide-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
          $visibility-table-cell-list: append($visibility-table-cell-list, unquote(
            'th.hide-for-#{$visibility-comparison-breakpoint}, td.hide-for-#{$visibility-comparison-breakpoint}, th.hide-for-#{$visibility-comparison-breakpoint}-down, td.hide-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
        }

      } @else if index($visibility-breakpoint-sizes, $visibility-comparison-breakpoint) > index($visibility-breakpoint-sizes, $current-visibility-breakpoint) {
        // Larger than current breakpoint

        $visibility-inherit-list: append($visibility-inherit-list, unquote(
          '.hide-for-#{$visibility-comparison-breakpoint}-only, .hide-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);
        $visibility-none-list: append($visibility-none-list, unquote(
          '.show-for-#{$visibility-comparison-breakpoint}-only, .show-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);
        $visibility-visible-list: append($visibility-visible-list, unquote(
          '.hidden-for-#{$visibility-comparison-breakpoint}-only, .hidden-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);
        $visibility-hidden-list: append($visibility-hidden-list, unquote(
          '.visible-for-#{$visibility-comparison-breakpoint}-only, .visible-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);
        $visibility-table-list: append($visibility-table-list, unquote(
          'table.hide-for-#{$visibility-comparison-breakpoint}-only, table.hide-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);
        $visibility-table-header-group-list: append($visibility-table-header-group-list, unquote(
          'thead.hide-for-#{$visibility-comparison-breakpoint}-only, thead.hide-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);
        $visibility-table-row-group-list: append($visibility-table-row-group-list, unquote(
          'tbody.hide-for-#{$visibility-comparison-breakpoint}-only, tbody.hide-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);
        $visibility-table-row-list: append($visibility-table-row-list, unquote(
          'tr.hide-for-#{$visibility-comparison-breakpoint}-only, tr.hide-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);
        $visibility-table-cell-list: append($visibility-table-cell-list, unquote(
          'th.hide-for-#{$visibility-comparison-breakpoint}-only, td.hide-for-#{$visibility-comparison-breakpoint}-only, th.hide-for-#{$visibility-comparison-breakpoint}-up, td.hide-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);

        // Foundation 4 compatibility:
        // Include .show/hide-for-[size] and .show/hide-for-[size]-down classes
        // for small, medium, and large breakpoints only
        @if $include-legacy-visibility-classes and index((small, medium, large), $visibility-comparison-breakpoint) != false {
          $visibility-inherit-list: append($visibility-inherit-list, unquote(
            '.hide-for-#{$visibility-comparison-breakpoint}, .show-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
          $visibility-none-list: append($visibility-none-list, unquote(
            '.show-for-#{$visibility-comparison-breakpoint}, .hide-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
          $visibility-visible-list: append($visibility-visible-list, unquote(
            '.hidden-for-#{$visibility-comparison-breakpoint}, .visible-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
          $visibility-hidden-list: append($visibility-hidden-list, unquote(
            '.visible-for-#{$visibility-comparison-breakpoint}, .hidden-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
          $visibility-table-list: append($visibility-table-list, unquote(
            'table.hide-for-#{$visibility-comparison-breakpoint}, table.show-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
          $visibility-table-header-group-list: append($visibility-table-header-group-list, unquote(
            'thead.hide-for-#{$visibility-comparison-breakpoint}, thead.show-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
          $visibility-table-row-group-list: append($visibility-table-row-group-list, unquote(
            'tbody.hide-for-#{$visibility-comparison-breakpoint}, tbody.show-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
          $visibility-table-row-list: append($visibility-table-row-list, unquote(
            'tr.hide-for-#{$visibility-comparison-breakpoint}, tr.show-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
          $visibility-table-cell-list: append($visibility-table-cell-list, unquote(
            'th.hide-for-#{$visibility-comparison-breakpoint}, td.hide-for-#{$visibility-comparison-breakpoint}, th.show-for-#{$visibility-comparison-breakpoint}-down, td.show-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
        }

      } @else {
        // Current breakpoint

        $visibility-inherit-list: append($visibility-inherit-list, unquote(
          '.show-for-#{$visibility-comparison-breakpoint}-only, .show-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);
        $visibility-none-list: append($visibility-none-list, unquote(
          '.hide-for-#{$visibility-comparison-breakpoint}-only, .hide-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);
        $visibility-visible-list: append($visibility-visible-list, unquote(
          '.visible-for-#{$visibility-comparison-breakpoint}-only, .visible-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);
        $visibility-hidden-list: append($visibility-hidden-list, unquote(
          '.hidden-for-#{$visibility-comparison-breakpoint}-only, .hidden-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);
        $visibility-table-list: append($visibility-table-list, unquote(
          'table.show-for-#{$visibility-comparison-breakpoint}-only, table.show-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);
        $visibility-table-header-group-list: append($visibility-table-header-group-list, unquote(
          'thead.show-for-#{$visibility-comparison-breakpoint}-only, thead.show-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);
        $visibility-table-row-group-list: append($visibility-table-row-group-list, unquote(
          'tbody.show-for-#{$visibility-comparison-breakpoint}-only, tbody.show-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);
        $visibility-table-row-list: append($visibility-table-row-list, unquote(
          'tr.show-for-#{$visibility-comparison-breakpoint}-only, tr.show-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);
        $visibility-table-cell-list: append($visibility-table-cell-list, unquote(
          'th.show-for-#{$visibility-comparison-breakpoint}-only, td.show-for-#{$visibility-comparison-breakpoint}-only, th.show-for-#{$visibility-comparison-breakpoint}-up, td.show-for-#{$visibility-comparison-breakpoint}-up'
        ), comma);

        // Foundation 4 compatibility:
        // Include .show/hide-for-[size] and .show/hide-for-[size]-down classes
        // for small, medium, and large breakpoints only
        @if $include-legacy-visibility-classes and index((small, medium, large), $visibility-comparison-breakpoint) != false {
          $visibility-inherit-list: append($visibility-inherit-list, unquote(
            '.show-for-#{$visibility-comparison-breakpoint}, .show-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
          $visibility-none-list: append($visibility-none-list, unquote(
            '.hide-for-#{$visibility-comparison-breakpoint}, .hide-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
          $visibility-visible-list: append($visibility-visible-list, unquote(
            '.visible-for-#{$visibility-comparison-breakpoint}, .visible-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
          $visibility-hidden-list: append($visibility-hidden-list, unquote(
            '.hidden-for-#{$visibility-comparison-breakpoint}, .hidden-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
          $visibility-table-list: append($visibility-table-list, unquote(
            'table.show-for-#{$visibility-comparison-breakpoint}, table.show-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
          $visibility-table-header-group-list: append($visibility-table-header-group-list, unquote(
            'thead.show-for-#{$visibility-comparison-breakpoint}, thead.show-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
          $visibility-table-row-group-list: append($visibility-table-row-group-list, unquote(
            'tbody.show-for-#{$visibility-comparison-breakpoint}, tbody.show-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
          $visibility-table-row-list: append($visibility-table-row-list, unquote(
            'tr.show-for-#{$visibility-comparison-breakpoint}, tr.show-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
          $visibility-table-cell-list: append($visibility-table-cell-list, unquote(
            'th.show-for-#{$visibility-comparison-breakpoint}, td.show-for-#{$visibility-comparison-breakpoint}, th.show-for-#{$visibility-comparison-breakpoint}-down, td.show-for-#{$visibility-comparison-breakpoint}-down'
          ), comma);
        }
      }
    }

    /* #{$current-visibility-breakpoint} displays */
    @media #{nth($visibility-breakpoint-queries, index($visibility-breakpoint-sizes, $current-visibility-breakpoint))} {
      #{$visibility-inherit-list} {
        display: inherit !important;
      }
      #{$visibility-none-list} {
        display: none !important;
      }
      @if $include-accessibility-classes != false {
        #{$visibility-visible-list} {
          @include element-invisible-off;
        }
        #{$visibility-hidden-list} {
          @include element-invisible;
        }
      }
      @if $include-table-visibility-classes != false {
        #{$visibility-table-list} {
          display: table;
        }
        #{$visibility-table-header-group-list} {
          display: table-header-group !important;
        }
        #{$visibility-table-row-group-list} {
          display: table-row-group !important;
        }
        #{$visibility-table-row-list} {
          display: table-row !important;
        }
        #{$visibility-table-cell-list} {
          display: table-cell !important;
        }
      }
    }
  }
}


@if $include-html-visibility-classes != false {

  @include visibility-loop;

  /* Orientation targeting */
  .show-for-landscape,
  .hide-for-portrait { display: inherit !important; }
  .hide-for-landscape,
  .show-for-portrait { display: none !important; }

  /* Specific visibility for tables */
  table {
    &.hide-for-landscape,
    &.show-for-portrait { display: table; }
  }
  thead {
    &.hide-for-landscape,
    &.show-for-portrait { display: table-header-group !important; }
  }
  tbody {
    &.hide-for-landscape,
    &.show-for-portrait { display: table-row-group !important; }
  }
  tr {
    &.hide-for-landscape,
    &.show-for-portrait { display: table-row !important; }
  }
  td,
  th {
    &.hide-for-landscape,
    &.show-for-portrait { display: table-cell !important; }
  }

  @media #{$landscape} {
    .show-for-landscape,
    .hide-for-portrait { display: inherit !important; }
    .hide-for-landscape,
    .show-for-portrait { display: none !important; }

    /* Specific visibility for tables */
    table {
      &.show-for-landscape,
      &.hide-for-portrait { display: table; }
    }
    thead {
      &.show-for-landscape,
      &.hide-for-portrait { display: table-header-group !important; }
    }
    tbody {
      &.show-for-landscape,
      &.hide-for-portrait { display: table-row-group !important; }
    }
    tr {
      &.show-for-landscape,
      &.hide-for-portrait { display: table-row !important; }
    }
    td,
    th {
      &.show-for-landscape,
      &.hide-for-portrait { display: table-cell !important; }
    }
  }

  @media #{$portrait} {
    .show-for-portrait,
    .hide-for-landscape { display: inherit !important; }
    .hide-for-portrait,
    .show-for-landscape { display: none !important; }

    /* Specific visibility for tables */
    table {
      &.show-for-portrait,
      &.hide-for-landscape { display: table; }
    }
    thead {
      &.show-for-portrait,
      &.hide-for-landscape { display: table-header-group !important; }
    }
    tbody {
      &.show-for-portrait,
      &.hide-for-landscape { display: table-row-group !important; }
    }
    tr {
      &.show-for-portrait,
      &.hide-for-landscape { display: table-row !important; }
    }
    td,
    th {
      &.show-for-portrait,
      &.hide-for-landscape { display: table-cell !important; }
    }
  }

  /* Touch-enabled device targeting */
  .show-for-touch { display: none !important; }
  .hide-for-touch { display: inherit !important; }
  .touch .show-for-touch { display: inherit !important; }
  .touch .hide-for-touch { display: none !important; }

  /* Specific visibility for tables */
  table.hide-for-touch { display: table; }
  .touch table.show-for-touch { display: table; }
  thead.hide-for-touch { display: table-header-group !important; }
  .touch thead.show-for-touch { display: table-header-group !important; }
  tbody.hide-for-touch { display: table-row-group !important; }
  .touch tbody.show-for-touch { display: table-row-group !important; }
  tr.hide-for-touch { display: table-row !important; }
  .touch tr.show-for-touch { display: table-row !important; }
  td.hide-for-touch { display: table-cell !important; }
  .touch td.show-for-touch { display: table-cell !important; }
  th.hide-for-touch { display: table-cell !important; }
  .touch th.show-for-touch { display: table-cell !important; }


  /* Print visibility */
  @media print {
    .show-for-print { display: block; }
    .hide-for-print { display: none; }

    table.show-for-print { display: table; }
    thead.show-for-print { display: table-header-group !important; }
    tbody.show-for-print { display: table-row-group !important; }
    tr.show-for-print { display: table-row !important; }
    td.show-for-print { display: table-cell !important; }
    th.show-for-print { display: table-cell !important; }

  }

}