translucencss 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,41 @@
1
+ require 'compass'
2
+ #require 'normalize'
3
+ extension_path = File.expand_path(File.join(File.dirname(__FILE__), ".."))
4
+ Compass::Frameworks.register('translucencss', :path => extension_path)
5
+
6
+ module Sass::Script::Functions
7
+
8
+ def is_substring(string, substring)
9
+ assert_type string, :String
10
+ assert_type substring, :String
11
+ Sass::Script::Bool.new(string.value.include?(substring.value))
12
+ end
13
+ declare :is_substring, [:string, :substring]
14
+
15
+ #####################
16
+ # Number Manipulation
17
+ #####################
18
+
19
+ # https://github.com/nex3/sass/issues/740
20
+ # return a number without its unit
21
+ def strip_unit(number)
22
+ assert_type number, :Number
23
+ Sass::Script::Number.new(number.value)
24
+ end
25
+ #declare :strip_unit, [:number]
26
+
27
+ # return 1 * the unit of the input number
28
+ def one_unit(number)
29
+ assert_type number, :Number
30
+ Sass::Script::Number.new(1, ["#{number.unit_str}"])
31
+ end
32
+ #declare :one_unit, [:number]
33
+
34
+ # force the unit of a given number
35
+ def add_unit(number, unit)
36
+ assert_type number, :Number
37
+ assert_type unit, :String
38
+ Sass::Script::Number.new(number.value, ["#{unit}"])
39
+ end
40
+ #declare :add_unit, [:number]
41
+ end
@@ -0,0 +1,7 @@
1
+ // --------------------------------------------------------------------------------
2
+ // TranslucenCSS: Common CSS patterns abstracted as mixins and variables
3
+ // --------------------------------------------------------------------------------
4
+
5
+ @import "translucencss/core";
6
+ @import "translucencss/css3";
7
+ @import "translucencss/util";
@@ -0,0 +1,6 @@
1
+ @import "core/font-stacks";
2
+ @import "core/typography";
3
+ @import "core/headlines";
4
+ @import "core/tables";
5
+ @import "core/lists";
6
+ @import "core/forms";
@@ -0,0 +1,2 @@
1
+ @import "css3/object-fit";
2
+ @import "css3/flexbox";
@@ -0,0 +1,6 @@
1
+ @import "util/colors";
2
+ @import "util/clearfix";
3
+ @import "util/ie";
4
+ @import "util/images";
5
+ @import "util/ellipsis";
6
+ @import "util/spacing";
@@ -0,0 +1,45 @@
1
+ // --------------------------------------------------------------------------------
2
+ // Balanced, attractive font stacks
3
+ // http://www.awayback.com/revised-font-stack/
4
+ // --------------------------------------------------------------------------------
5
+
6
+ // -------------------------------------------------------------------------------- SERIF
7
+
8
+ $arial: Arial, "Helvetica Neue", Helvetica, sans-serif;
9
+ $baskerville: Baskerville, "Baskerville old face", "Hoefler Text", Garamond, "Times New Roman", serif;
10
+ $bodini: "Bodoni MT", Didot, "Didot LT STD", "Hoefler Text", Garamond, "Times New Roman", serif;
11
+ $copperplate: "Copperplate Light", "Copperplate Gothic Light", serif;
12
+ $garamond: Garamond, Baskerville, "Baskerville Old Face", "Hoefler Text", "Times New Roman", serif;
13
+ $georgia: Georgia, Palatino, "Palatino Linotype", Times, "Times New Roman", serif;
14
+ $hoefler: "Hoefler Text", "Baskerville Old Face", Garamond, "Times New Roman", serif;
15
+ $palatino: Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif;
16
+ $times: Times, "Times New Roman", Georgia, serif;
17
+
18
+ // -------------------------------------------------------------------------------- SANS-SERIF
19
+
20
+ $calibri: GillSans, Calibri, Trebuchet, sans-serif;
21
+ $futura: "Futura Medium", Century Gothic, AppleGothic, sans-serif;
22
+ $gothic: "Century Gothic", "Apple Gothic", sans-serif;
23
+ $helvetica: "Helvetica Neue", Arial, Helvetica, sans-serif;
24
+ $impact: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
25
+ $lucida: "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif;
26
+ $optima: Optima, Candara, Segoe, "Segoe UI", Arial, sans-serif;
27
+ $segoe: Segoe, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
28
+ $tahoma: Tahoma, Geneva, Verdana, sans-serif;
29
+ $verdana: Geneva, "Lucida Sans", "Lucida Grande", "Lucida Sans Unicode", Verdana, sans-serif;
30
+
31
+ // -------------------------------------------------------------------------------- MONOSPACE
32
+
33
+ $courier: "Courier New", Courier, monospace;
34
+ $lucida: Consolas, "Lucida Console", Monaco, monospace;
35
+
36
+ // -------------------------------------------------------------------------------- CURSIVE
37
+
38
+ $chancery: "Bradley Hand ITC", "Apple Chancery", "URW Chancery L", cursive;
39
+
40
+ // -------------------------------------------------------------------------------- DEFAULTS
41
+
42
+ $serif: $baskerville !default;
43
+ $sans-serif: $segoe !default;
44
+ $monospace: $courier !default;
45
+ $cursive: $chancery !default;
@@ -0,0 +1,24 @@
1
+ $form-input-text: unquote('input[type="text"], input[type="password"], input[type="search"], input[type="email"], input[type="tel"], input[type="url"]');
2
+ $form-input-buttons: unquote('input[type="submit"], input[type="reset"], input[type="button"], button');
3
+ $form-input-dates: unquote('input[type^="date"], input[type="month"], input[type="week"], input[type="time"]');
4
+ $form-input-not-radio: unquote('input:not([type="radio"]):not([type="checkbox"])');
5
+
6
+ @mixin input-placeholder {
7
+ &::-webkit-input-placeholder {
8
+ @content;
9
+ }
10
+
11
+ // Firefox <19
12
+ &:-moz-placeholder {
13
+ @content;
14
+ }
15
+
16
+ // Firefox >19
17
+ &::-moz-placeholder {
18
+ @content;
19
+ }
20
+
21
+ &:-ms-input-placeholder {
22
+ @content;
23
+ }
24
+ }
@@ -0,0 +1,48 @@
1
+ $headline-sizes: 2em 1.8em 1.4em 1.2em 1em .8em !default;
2
+ $gh-selectors: 'section, article' !default;
3
+
4
+ @mixin headings($from: 1, $to: 6) {
5
+ #{headings($from, $to)} {
6
+ @content;
7
+ }
8
+ }
9
+
10
+ @mixin headline-sizes($sizes: $headline-sizes, $margin: $baseline-block-margin) {
11
+ @warn "This mixin is deprecated";
12
+ @for $i from 1 through length($sizes) {
13
+ %h#{$i}-size {
14
+ $size: nth($sizes, $i);
15
+ font-size: $size;
16
+ @include rem(margin, $size, $margin)
17
+ }
18
+ }
19
+ }
20
+
21
+ @mixin graduated-headlines($hn, $sizes) {
22
+ @warn "This mixin is deprecated";
23
+ $sel: $gh-selectors;
24
+ @for $i from 1 through length($sizes) {
25
+ #{$sel} {
26
+ @for $j from 1 through $hn {
27
+ @if $i + $j - 1 <= length($sizes) {
28
+ h#{$j} {
29
+ font-size: nth($sizes, $i + $j - 1);
30
+ }
31
+ }
32
+ }
33
+ }
34
+ $sel: nest($sel, $gh-selectors);
35
+ }
36
+ }
37
+
38
+ @mixin graduated-headlines-extended($hn: 1, $min: 1, $max: 6) {
39
+ $sel: $gh-selectors;
40
+ @for $i from $min through $max {
41
+ #{$sel} {
42
+ @for $j from 1 through $hn {
43
+ h#{$j} { @extend h#{$i + $j - 1}%size !optional; }
44
+ }
45
+ }
46
+ $sel: nest($sel, $gh-selectors);
47
+ }
48
+ }
@@ -0,0 +1,76 @@
1
+ @mixin inline-menu($type: inline, $child: li) {
2
+ @if $type == float {
3
+ @include clearfix;
4
+ }
5
+
6
+ > #{$child} {
7
+ @if $type == float {
8
+ float: left;
9
+ //list-style: none;
10
+ } @else {
11
+ display: inline-block;
12
+ }
13
+
14
+ @content;
15
+
16
+ a { white-space: nowrap }
17
+ }
18
+ }
19
+
20
+ @mixin drop-menu($parent: ul) {
21
+ position: relative;
22
+
23
+ #{$parent} {
24
+ display: none;
25
+ }
26
+
27
+ &:hover #{$parent}, &.active #{$parent}, &.opened {
28
+ display: block;
29
+ position: absolute;
30
+ @content;
31
+ }
32
+ }
33
+
34
+ @mixin button-group($orientation: horizontal, $radius: .25em, $child: li) {
35
+ display: table;
36
+
37
+ > #{$child} {
38
+ @if $orientation == horizontal {
39
+ display: table-cell;
40
+ } @else {
41
+ list-style: none;
42
+ }
43
+
44
+ @content;
45
+
46
+ + #{$child} {
47
+ @if $orientation == horizontal {
48
+ border-left: none;
49
+ } @else {
50
+ border-top: none;
51
+ }
52
+ }
53
+
54
+ @if $radius > 0 {
55
+ @include button-group-ends($orientation, $radius);
56
+ }
57
+ }
58
+ }
59
+
60
+ @mixin button-group-ends($orientation: horizontal, $radius: .25em) {
61
+ &:first-child {
62
+ @if $orientation == horizontal {
63
+ @include border-radius($radius 0 0 $radius);
64
+ } @else {
65
+ @include border-radius($radius $radius 0 0);
66
+ }
67
+ }
68
+
69
+ &:last-child {
70
+ @if $orientation == horizontal {
71
+ @include border-radius(0 $radius $radius 0);
72
+ } @else {
73
+ @include border-radius(0 0 $radius $radius);
74
+ }
75
+ }
76
+ }
@@ -0,0 +1,16 @@
1
+ @mixin bordered-table($border: 1px solid) {
2
+ border-collapse: collapse;
3
+
4
+ th, td {
5
+ border: $border;
6
+ padding: .25em;
7
+
8
+ @content;
9
+ }
10
+ }
11
+
12
+ @mixin zebra-striping($position: even) {
13
+ tbody:nth-of-type(#{$position}) tr, tbody:only-of-type tr:nth-child(#{$position}) {
14
+ @content;
15
+ }
16
+ }
@@ -0,0 +1,55 @@
1
+ $baseline-block-margin: 1rem 0 !default;
2
+
3
+ // $base-size 1em by default, but it might not be if you're nesting elements
4
+ // Example
5
+ // -------
6
+ // body: 1em
7
+ // p.special: 1.2em
8
+ // p.special strong: 1em
9
+ //
10
+ // If we want to scale `p.special strong` back to 1em, we need to feed $base-size as .83333 or scale-em(1.2, 1):
11
+ //
12
+ // p.special strong {
13
+ // @include rem(font-size, 1em, scale-em(1.2, 1));
14
+ // }
15
+
16
+ @mixin rem($property, $font-size, $desired-sizes: 1rem, $base-size: 1em) { // this mixin uses em and rem interchangeably
17
+ $ems: ();
18
+ $rems: ();
19
+
20
+ @each $s in $desired-sizes {
21
+ $s: strip-unit($s);
22
+ $ems: append($ems, scale-em($font-size, $s, $base-size)); // scale-em already returns it into em
23
+ $rems: append($rems, if($s == 0, 0, $s * 1rem));
24
+ }
25
+
26
+ #{$property}: $ems;
27
+ #{$property}: $rems;
28
+ }
29
+
30
+ // @font-size:
31
+ // the size of the current element (eg. `1.5em`)
32
+ // @desired-size:
33
+ // the desired output size (eg. `1em`)
34
+ // @base-size:
35
+ // the size of the parent element if you're trying to scale it back to the baseline size (eg. `1.5em` or `.8em`)
36
+ // otherwise use the default of `1em` to signify no additional scaling
37
+ @function scale-em($font-size, $desired-size, $parent-size: 1em) {
38
+ // @return if($desired-size == 0, 0, strip-unit($desired-size) / strip-unit($font-size) * strip-unit($parent-size) * 1em);
39
+ @return if($desired-size == 0, 0, strip-unit($desired-size) / strip-unit($font-size) * $parent-size);
40
+ }
41
+
42
+ // a map version of scale-em
43
+ // @function scale-em-list($font-size, $desired-sizes: 1em, $base-size: 1em) {
44
+ // $collector: ();
45
+
46
+ // @each $s in $desired-sizes {
47
+ // $collector: append($collector, scale-em($font-size, $s, $base-size));
48
+ // }
49
+ // @return $collector;
50
+ // }
51
+
52
+ //@mixin baseline-margins($font-size, $margin: $baseline-block-margin) {
53
+ // font-size: $font-size;
54
+ // margin: scale-em-list($font-size, $margin);
55
+ //}
@@ -0,0 +1,288 @@
1
+ @import "compass/support";
2
+
3
+ // $flexbox-support values:
4
+ // standard: Draft #3
5
+ // modern: Draft #2 or newer
6
+ // legacy: Draft #1 only
7
+ // wrap: versions that support wrapping (includes feature query on the display property on the unprefixed standard value)
8
+ // all: all versions
9
+
10
+ $flexbox-support-threshold: $critical-usage-threshold !default;
11
+ $flexbox-support: modern !default;
12
+ $flexbox-warnings: true !default;
13
+
14
+ // @private
15
+ @function flexbox-capability-options($support: $flexbox-support) {
16
+ @if type-of($flexbox-support) == list { // this might need to be here for users who are expecting the older format for this variable
17
+ @warn "The $flexbox-support variable as a list has been deprecated, setting $flexbox-support to `modern`";
18
+ $flexbox-support: modern !global;
19
+ }
20
+
21
+ @if $support == wrap {
22
+ @return (), ((spec-versions: 2), ), ((spec-versions: 3, partial-support: false), (full-support: true));
23
+ } @else if $support == standard {
24
+ @return (), (), ((spec-versions: 3), (full-support: true));
25
+ } @else if $support == legacy {
26
+ @return (spec-versions: 1), (), ();
27
+ } @else if $support == modern {
28
+ @return (), ((spec-versions: 2), ), ((spec-versions: 3, partial-support: false), (full-support: true));
29
+ } @else { // all
30
+ @return (spec-versions: 1), ((spec-versions: 2), ), ((spec-versions: 3), (full-support: true));
31
+ }
32
+ }
33
+
34
+ // @private
35
+ @function flexbox-translate-value($value, $version: 1) {
36
+ $value: unquote($value);
37
+
38
+ @if $value == flex {
39
+ @return if($version == 1, box, flexbox);
40
+ } @else if $value == inline-flex {
41
+ @return if($version == 1, inline-box, inline-flexbox);
42
+ } @else if $value == flex-start {
43
+ @return start;
44
+ } @else if $value == flex-end {
45
+ @return end;
46
+ } @else if $value == space-between {
47
+ @return justify;
48
+ } @else if $value == space-around { // @box doesn't have a value equivalent to `space-around`
49
+ @return if($version == 1, justify, distribute);
50
+ }
51
+ @return $value;
52
+ }
53
+
54
+ // @private
55
+ // TODO: do away with assuming that length($styles) == 1 means that we only want the modern properties?
56
+ @mixin flexbox($styles, $warnings: ()) {
57
+ // length($styles) == 3: v1, v2, v3
58
+ // length($styles) == 2: v1, v2 & v3
59
+ // length($styles) == 1: v3
60
+ $options: flexbox-capability-options($flexbox-support);
61
+ $versions: length($styles);
62
+
63
+ @if $versions == 1 {
64
+ $options: nth($options, 3);
65
+ } @else if $versions == 2 {
66
+ $options: nth($options, 1), join(nth($options, 2), nth($options, 3));
67
+ }
68
+
69
+ @for $i from 1 through $versions {
70
+ $current-options: nth($options, $i);
71
+
72
+ @if $flexbox-warnings and length($warnings) >= $i {
73
+ $warning-shown: false;
74
+ $prefixes: prefixes-for-capability(flexbox, $flexbox-support-threshold, nth($options, $i));
75
+ @each $browser, $min-ver in $prefixes {
76
+ @if not $warning-shown and ($min-ver or $i == $versions) and nth($warnings, $i) {
77
+ @warn nth($warnings, $i);
78
+ $warning-shown: true;
79
+ }
80
+ }
81
+ }
82
+
83
+ @include with-each-prefix(flexbox, $flexbox-support-threshold, $current-options) {
84
+ // length($current-options) == 0 when spitting out only v1 properties via `$flexbox-support: legacy`
85
+ // in order to show the unprefixed properties, it needs to be the most recent version *and* have something for $current-options
86
+ $show-unprefixed: $i == $versions and length($current-options) > 0;
87
+ @if $current-prefix or $show-unprefixed {
88
+ @each $prop, $value in nth($styles, $i) {
89
+ @if $prop == display {
90
+ @if $show-unprefixed and not $current-prefix {
91
+ @if $flexbox-support == wrap {
92
+ @supports (flex-wrap: wrap) { // hide Flexbox from versions of Firefox that do not support wrapping
93
+ display: $value;
94
+ }
95
+ } @else {
96
+ display: $value;
97
+ }
98
+ } @else {
99
+ display: prefix-identifier($value);
100
+ }
101
+ } @else {
102
+ @include prefix-prop($prop, $value);
103
+ }
104
+ }
105
+ }
106
+ }
107
+ }
108
+ }
109
+
110
+ // @public
111
+ @mixin flexbox-support($support: $flexbox-support) {
112
+ $previous-support: $flexbox-support !global;
113
+ $flexbox-support: $support !global;
114
+ @content;
115
+ $flexbox-support: $previous-support !global;
116
+ }
117
+
118
+ // @flex container properties
119
+
120
+ @mixin display-flex($value: flex) {
121
+ @include flexbox(
122
+ ( (display: flexbox-translate-value($value, 1))
123
+ , (display: flexbox-translate-value($value, 2))
124
+ , (display: $value)
125
+ ));
126
+ }
127
+
128
+ @mixin flex-direction($value: row) {
129
+ @include flexbox(
130
+ ( ( box-orient: if($value == row or $value == row-reverse, horizontal, vertical)
131
+ , box-direction: if($value == row or $value == column, normal, reverse)
132
+ )
133
+ , (flex-direction: $value)
134
+ ));
135
+ }
136
+
137
+ @mixin flex-wrap($value: nowrap) {
138
+ $warnings:
139
+ ( "Flexbox v1 has properties for wrapping but no browser has implemented them, change your flexbox-support to `wrap` to hide Flexbox from them"
140
+ , "Firefox versions 22-28 do not support wrapping for Flexbox v3, change your flexbox-support to `wrap` to hide Flexbox from them"
141
+ );
142
+ @include flexbox(
143
+ ( (box-lines: if($value == nowrap, single, multiple))
144
+ , (flex-wrap: $value)
145
+ ), if($flexbox-support != wrap and $value != nowrap, $warnings, ()));
146
+ }
147
+
148
+ @mixin flex-flow($value: row nowrap) {
149
+ $warnings:
150
+ ( "Flexbox v1 has properties for wrapping but no browser has implemented them, change your flexbox-support to `wrap` to hide Flexbox from them"
151
+ , "Firefox versions 22-28 do not support wrapping for Flexbox v3, change your flexbox-support to `wrap` to hide Flexbox from them"
152
+ );
153
+ $direction: null;
154
+ $wrap: null;
155
+ @if length($value) == 2 {
156
+ $direction: nth($value, 1);
157
+ $wrap: nth($value, 2);
158
+ } @else {
159
+ @if $value == nowrap or $value == wrap or $value == wrap-reverse {
160
+ $wrap: $value;
161
+ } @else {
162
+ $direction: $value;
163
+ }
164
+ }
165
+ @include flexbox(
166
+ ( ( box-orient: if($direction == row or $direction == row-reverse, horizontal, vertical)
167
+ , box-direction: if($direction == row or $direction == column, normal, reverse)
168
+ , box-lines: if($wrap == nowrap, single, multiple)
169
+ )
170
+ , (flex-flow: $value)
171
+ ), if($flexbox-support != wrap and ($wrap == wrap or $wrap == wrap-reverse), $warnings, ()));
172
+ }
173
+
174
+ @mixin justify-content($value: stretch) {
175
+ @include flexbox(
176
+ ( (box-pack: flexbox-translate-value($value, 1))
177
+ , (flex-pack: flexbox-translate-value($value, 2))
178
+ , (justify-content: $value)
179
+ ));
180
+ }
181
+
182
+ @mixin align-content($value: stretch) {
183
+ $warnings:
184
+ ( "Flexbox v1 does not have an align-content property"
185
+ , null
186
+ , null
187
+ );
188
+ @include flexbox(
189
+ ( null
190
+ , (flex-line-pack: flexbox-translate-value($value, 2))
191
+ , (align-content: $value)
192
+ ), $warnings);
193
+ }
194
+
195
+ @mixin align-items($value: stretch) {
196
+ @include flexbox(
197
+ ( (box-align: flexbox-translate-value($value, 1))
198
+ , (flex-align: flexbox-translate-value($value, 2))
199
+ , (align-items: $value)
200
+ ));
201
+ }
202
+
203
+ // @flex item properties
204
+
205
+ @mixin align-self($value: stretch) {
206
+ $warnings:
207
+ ( "Flexbox v1 does not have an align-self property, only align-content"
208
+ , null
209
+ , null
210
+ );
211
+ @include flexbox(
212
+ ( ()
213
+ , (flex-item-align: flexbox-translate-value($value, 2))
214
+ , (align-self: $value)
215
+ ), $warnings);
216
+ }
217
+
218
+ @mixin flex($value: 1 0 auto) {
219
+ $last-val: nth($value, length($value));
220
+ // TODO: determine what kind of warning makes sense here
221
+ // Flexbox v1 doesn't let you control flex-grow and flex-shrink values independently
222
+ // (minor issue), nor does it have a concept of flex-basis (moderate issue).
223
+ // `box-flex: 1` is equivalent to `flex: 1 1`. There's no way to recreate `flex: 1 0`
224
+ // or `flex: 0 1`, though there are few instances where this is actually a problem
225
+ // see: http://stackoverflow.com/questions/16130399/flexbox-in-safari-grow-and-shrink
226
+ $warnings:
227
+ ( "Flexbox v1 does not support flex-basis for the `flex` property at all"
228
+ , null
229
+ , null
230
+ );
231
+ @include flexbox(
232
+ ( (box-flex: nth($value, 1))
233
+ , (flex: $value)
234
+ , (flex: $value)
235
+ ), if(length($value) > 2 or ($last-val != auto and not unitless($last-val)), $warnings, ()));
236
+ }
237
+
238
+ @mixin flex-grow($value: auto) {
239
+ $warnings:
240
+ ( "Flexbox v1 does not have a flex-grow property, try using the `flex` property instead"
241
+ , "Flexbox v2 does not have a flex-grow property, use the `flex` shorthand instead"
242
+ , null
243
+ );
244
+ @include flexbox(
245
+ ( ()
246
+ , ()
247
+ , (flex-grow: $value)
248
+ ), $warnings);
249
+ }
250
+
251
+ @mixin flex-shrink($value: auto) {
252
+ $warnings:
253
+ ( "Flexbox v1 does not have a flex-shrink property"
254
+ , "Flexbox v2 does not have a flex-grow property, use the `flex` shorthand instead"
255
+ , null
256
+ );
257
+ @include flexbox(
258
+ ( ()
259
+ , ()
260
+ , (flex-shrink: $value)
261
+ ), $warnings);
262
+ }
263
+
264
+ @mixin flex-basis($value: auto) {
265
+ $warnings:
266
+ ( "Flexbox v1 does not have a flex-basis property"
267
+ , "Flexbox v2 does not have a flex-grow property, use the `flex` shorthand instead"
268
+ , null
269
+ );
270
+ @include flexbox(
271
+ ( ()
272
+ , ()
273
+ , (flex-basis: $value)
274
+ ), $warnings);
275
+ }
276
+
277
+ @mixin order($value: 0) {
278
+ $warnings:
279
+ ( "Flexbox v1 does not support negative ordering, try increasing the order of the sibling elements instead"
280
+ , null
281
+ , null
282
+ );
283
+ @include flexbox(
284
+ ( (box-ordinal-group: $value + 1)
285
+ , (flex-order: $value)
286
+ , (order: $value)
287
+ ), if($value < 0, $warnings, ()));
288
+ }
@@ -0,0 +1,315 @@
1
+ @import "compass/css3/deprecated-support";
2
+
3
+ // NOTE:
4
+ // All mixins for the @box spec have been written assuming they'll be fed property values that
5
+ // correspond to the standard spec. Some mixins can be fed values from the @box spec, but don't
6
+ // rely on it. The `legacy-order` mixin will increment the value fed to it because the @box
7
+ // `box-ordinal-group` property begins indexing at 1, while the modern `order` property begins
8
+ // indexing at 0.
9
+
10
+ // if `true`, the @box properties will be emitted as part of the normal mixin call
11
+ // (if this is false, you're still free to explicitly call the legacy mixins yourself)
12
+ $flex-legacy-enabled: false !default;
13
+
14
+ // if `true`, `$flex-legacy-enabled` is treated as false and an `@supports` block is added to
15
+ // the display property to hide the standard value from versions of Firefox that support the
16
+ // unprefixed properties, but do not support wrapping
17
+ // (this includes suppressing the automatic emittion of @box properties)
18
+ $flex-wrap-required : false !default;
19
+
20
+ // The modern `flex-direction` property corresponds to two properties in the @box spec and the
21
+ // `legacy-flex-direction` mixin will emit both by default.
22
+
23
+ // This variable controls the emition of the `box-direction` property:
24
+ // true : always emit
25
+ // false : always suppress
26
+ // normal : only emit if the direction is `normal`
27
+ // reverse: only emit if the direction is `reverse`
28
+ $flex-legacy-direction: true !default;
29
+
30
+ // This variable controls the emition of the `box-orient` property:
31
+ // true : always emit
32
+ // false : always suppress
33
+ // horizontal: only emit if the orient is `horizontal`
34
+ // vertical : only emit if the orient is `vertical`
35
+ $flex-legacy-orient: true !default;
36
+
37
+ // @flex
38
+ // September 2012 Candidate Recommendation (http://www.w3.org/TR/2012/CR-css3-flexbox-20120918/)
39
+ // NOTE: FF did not support wrapping until version ??. Because the `display: flex` property
40
+ // is wrapped in a `@supports (flex-wrap: wrap)` block (when $flex-wrap-required or the $wrap
41
+ // argument to the `display-flex` mixin is set to `true`), it will Just Work(TM) when support is
42
+ // finally added
43
+ // Chrome 21 (prefixed)
44
+ // Opera 12.1 (unprefixed)
45
+ // Firefox 22 (unprefixed)
46
+ $flex-support: not -moz, -webkit, not -ms, not -o, not -khtml !default;
47
+
48
+ // @flexbox
49
+ // March 2012 Working Draft (http://www.w3.org/TR/2012/WD-css3-flexbox-20120322/)
50
+ // Chrome 17 (prefixed)
51
+ // Internet Explorer 10 (prefixed)
52
+ $flexbox-support: not -moz, -webkit, -ms, not -o, not -khtml, not standard !default;
53
+
54
+ // @box
55
+ // July 2009 Working Draft (http://www.w3.org/TR/2009/WD-css3-flexbox-20090723/)
56
+ // NOTE: no browser that implements this spec is known to support `box-lines: multiple`
57
+ // Chrome 4? (prefixed)
58
+ // Safari 3.1 (prefixed)
59
+ // Firefox <20 (prefixed)
60
+ $box-support: -moz, -webkit, not -ms, not -o, not -khtml, not standard !default;
61
+
62
+ // ====================================================================================================
63
+ // | Common
64
+ // ====================================================================================================
65
+
66
+ // function for converting a value from the standard specification to one that is comparable from
67
+ // an older specification
68
+ @function flex-translate-value($value, $version: box) {
69
+ $value: unquote($value);
70
+
71
+ @if $value == flex {
72
+ @return if($version == box, box, flexbox);
73
+ } @else if $value == inline-flex {
74
+ @return if($version == box, inline-box, inline-flexbox);
75
+ } @else if $value == flex-start {
76
+ @return start;
77
+ } @else if $value == flex-end {
78
+ @return end;
79
+ } @else if $value == space-between {
80
+ @return justify;
81
+ } @else if $value == space-around { // @box doesn't have a value equivalent to `space-around`
82
+ @return if($version == box, justify, distribute);
83
+ }
84
+ @return $value;
85
+ }
86
+
87
+ @function flex-support-common() {
88
+ $common: ();
89
+ @for $i from 1 through length($flex-support) {
90
+ $common: append($common, nth($flex-support, $i) or nth($flexbox-support, $i), comma);
91
+ }
92
+ @return $common;
93
+ }
94
+
95
+ // ====================================================================================================
96
+ // | Display Property
97
+ // ====================================================================================================
98
+
99
+ // $type: flex | inline-flex
100
+ @mixin display-flex($type: flex, $wrap: $flex-wrap-required, $legacy: $flex-legacy-enabled) {
101
+ @if $legacy and not $wrap {
102
+ @include legacy-display-flex($type);
103
+ }
104
+
105
+ @include experimental-value(display, flex-translate-value($type, flexbox), $flexbox-support...);
106
+
107
+ // if `$wrap` is true, then we need to suppress official support as generated by the `experimental()`
108
+ // mixin so that we can insert it inside an `@supports` block
109
+ $flex-support-standard: true;
110
+ $flex-support-list: $flex-support;
111
+ @if length($flex-support) > 5 {
112
+ $flex-support-standard: nth($flex-support, 6);
113
+ // a `slice()` function would really be handy here...
114
+ $flex-support-list: nth($flex-support, 1), nth($flex-support, 2), nth($flex-support, 3), nth($flex-support, 4), nth($flex-support, 5);
115
+ }
116
+ $flex-support-list: append($flex-support-list, if($wrap, false, $flex-support-standard));
117
+ @include experimental-value(display, $type, $flex-support-list...);
118
+
119
+ @if $wrap and $flex-support-standard {
120
+ @supports (flex-wrap: wrap) {
121
+ display: $type;
122
+ }
123
+ }
124
+ }
125
+
126
+ @mixin legacy-display-flex($type: flex) {
127
+ @include experimental-value(display, flex-translate-value($type, box), $box-support...);
128
+ }
129
+
130
+ // ====================================================================================================
131
+ // | Flex Container Properties
132
+ // ====================================================================================================
133
+
134
+ // $value: <'flex-direction'> || <'flex-wrap'>
135
+ @mixin flex-flow($value: row nowrap, $wrap: $flex-wrap-required, $legacy: $flex-legacy-enabled, $orient: $flex-legacy-orient, $direction: $flex-legacy-direction) {
136
+ @if $legacy and not $wrap {
137
+ @include legacy-flex-flow($value, $orient, $direction);
138
+ }
139
+
140
+ @include experimental(flex-flow, $value, flex-support-common()...);
141
+ }
142
+
143
+ @mixin legacy-flex-flow($value: row nowrap, $orient: $flex-legacy-orient, $direction: $flex-legacy-direction) {
144
+ @if length($value) > 1 { // @box version doesn't have a shorthand
145
+ @include legacy-flex-direction(nth($value, 1), $orient, $direction);
146
+ @include legacy-flex-wrap(nth($value, 2));
147
+ } @else {
148
+ $value: unquote($value);
149
+ @if $value == row or $value == row-reverse or $value == column or $value == column-reverse {
150
+ @include legacy-flex-direction($value);
151
+ } @else {
152
+ @include legacy-flex-wrap($value);
153
+ }
154
+ }
155
+ }
156
+
157
+ // ----------------------------------------------------------------------
158
+
159
+ // $value: row | row-reverse | column | column-reverse
160
+ @mixin flex-direction($value: row, $wrap: $flex-wrap-required, $legacy: $flex-legacy-enabled, $orient: $flex-legacy-orient, $direction: $flex-legacy-direction) {
161
+ @if $legacy and not $wrap {
162
+ @include legacy-flex-direction($value, $orient, $direction);
163
+ }
164
+
165
+ @include experimental(flex-direction, $value, flex-support-common()...);
166
+ }
167
+
168
+ @mixin legacy-flex-direction($value: row, $orient: $flex-legacy-orient, $direction: $flex-legacy-direction) {
169
+ $value: unquote($value);
170
+ $translated-orient: if($value == row or $value == row-reverse, horizontal, vertical);
171
+ $translated-direction: if($value == row or $value == column, normal, reverse);
172
+
173
+ @if $orient == true or $translated-orient == $orient {
174
+ @include experimental(box-orient, $translated-orient, $box-support...);
175
+ }
176
+
177
+ @if $direction == true or $translated-direction == $direction {
178
+ @include experimental(box-direction, $translated-direction, $box-support...);
179
+ }
180
+ }
181
+
182
+ // ----------------------------------------------------------------------
183
+
184
+ // $value: nowrap | wrap | wrap-reverse
185
+ @mixin flex-wrap($value: nowrap, $wrap: $flex-wrap-required, $legacy: $flex-legacy-enabled) {
186
+ @if $legacy and not $wrap {
187
+ @include legacy-flex-wrap($value);
188
+ }
189
+
190
+ @include experimental(flex-wrap, $value, flex-support-common()...);
191
+ }
192
+
193
+ @mixin legacy-flex-wrap($value: nowrap) {
194
+ // NOTE: @box has no equivalent of wrap-reverse
195
+ @include experimental(box-lines, if($value == nowrap, single, multiple), $box-support...);
196
+ }
197
+
198
+ // ----------------------------------------------------------------------
199
+
200
+ // Distributing extra space along the "main axis"
201
+ // $value: flex-start | flex-end | center | space-between | space-around
202
+ @mixin justify-content($value: flex-start, $wrap: $flex-wrap-required, $legacy: $flex-legacy-enabled) {
203
+ @if $legacy and not $wrap {
204
+ @include legacy-justify-content($value);
205
+ }
206
+
207
+ @include experimental(flex-pack, flex-translate-value($value, flexbox), $flexbox-support...);
208
+ @include experimental(justify-content, $value, $flex-support...);
209
+ }
210
+
211
+ @mixin legacy-justify-content($value: flex-start) {
212
+ @include experimental(box-pack, flex-translate-value($value, box), $box-support...);
213
+ }
214
+
215
+ // ----------------------------------------------------------------------
216
+
217
+ // Distributing extra space along the "cross axis"
218
+ // $value: flex-start | flex-end | center | space-between | space-around | stretch
219
+ @mixin align-content($value: flex-start, $wrap: $flex-wrap-required, $legacy: $flex-legacy-enabled) {
220
+ @if $legacy and not $wrap {
221
+ @include legacy-align-content($value);
222
+ }
223
+
224
+ @include experimental(flex-line-pack, flex-translate-value($value, flexbox), $flexbox-support...);
225
+ @include experimental(align-content, $value, $flex-support...);
226
+ }
227
+
228
+ @mixin legacy-align-content($value: flex-start) {
229
+ @include experimental(box-align, flex-translate-value($value, box), $box-support...);
230
+ }
231
+
232
+ // ----------------------------------------------------------------------
233
+
234
+ // Align items along the "cross axis"
235
+ // $value: flex-start | flex-end | center | baseline | stretch
236
+ @mixin align-items($value: stretch) { // the flex container
237
+ // There is no @box version of this property
238
+ @include experimental(flex-align, flex-translate-value($value, flexbox), $flexbox-support...);
239
+ @include experimental(align-items, $value, $flex-support...);
240
+ }
241
+
242
+ // ====================================================================================================
243
+ // | Flex Item Properties
244
+ // ====================================================================================================
245
+
246
+ // $value: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
247
+ @mixin flex($value: 0 1 auto, $wrap: $flex-wrap-required, $legacy: $flex-legacy-enabled) {
248
+ $value: unquote($value);
249
+ @if $legacy and unitless(nth($value, 1)) {
250
+ @include legacy-flex(nth($value, 1));
251
+ }
252
+
253
+ @include experimental(flex, $value, flex-support-common()...);
254
+ }
255
+
256
+ @mixin legacy-flex($value: 0) {
257
+ @include experimental(box-flex, $value, $box-support...);
258
+ }
259
+
260
+ // ----------------------------------------------------------------------
261
+
262
+ // $value: Integer
263
+ @mixin flex-grow($value: 0, $wrap: $flex-wrap-required, $legacy: $flex-legacy-enabled) {
264
+ @if $legacy and not $wrap {
265
+ @include legacy-flex-grow($value);
266
+ }
267
+
268
+ // There is no @flexbox version of this property
269
+ @include experimental(flex-grow, $value, $flex-support...);
270
+ }
271
+
272
+ // ----------------------------------------------------------------------
273
+
274
+ // $value: Integer
275
+ @mixin flex-shrink($value: 1) {
276
+ // There is no @box version of this property
277
+ // There is no @flexbox version of this property
278
+ @include experimental(flex-shrink, $value, $flex-support...);
279
+ }
280
+
281
+ // ----------------------------------------------------------------------
282
+
283
+ // $value: united number (eg: 100px)
284
+ @mixin flex-basis($value: auto) {
285
+ // There is no @box version of this property
286
+ // There is no @flexbox version of this property
287
+ @include experimental(flex-basis, $value, $flex-support...);
288
+ }
289
+
290
+ // ----------------------------------------------------------------------
291
+
292
+ // Align items along the "cross axis" -- overrides `align-items` value on individual items
293
+ // $value: auto | flex-start | flex-end | center | baseline | stretch
294
+ @mixin align-self($value: auto) { // children of flex containers
295
+ // There is no @box version of this property
296
+ @include experimental(flex-item-align, flex-translate-value($value, flexbox), $flexbox-support...);
297
+ @include experimental(align-self, $value, $flex-support...);
298
+ }
299
+
300
+ // ----------------------------------------------------------------------
301
+
302
+ // $value: Integer
303
+ @mixin order($value: 0, $wrap: $flex-wrap-required, $legacy: $flex-legacy-enabled) {
304
+ @if $legacy and not $wrap {
305
+ @include legacy-order($value);
306
+ }
307
+
308
+ @include experimental(flex-order, $value, $flexbox-support...);
309
+ @include experimental(order, $value, $flex-support...);
310
+ }
311
+
312
+ @mixin legacy-order($value: 0) {
313
+ // the @box spec starts the ordering at 1 instead of 0 like the modern specs
314
+ @include experimental(box-ordinal-group, $value + 1, $box-support...);
315
+ }
@@ -0,0 +1,13 @@
1
+ @import "compass/css3/deprecated-support";
2
+
3
+ // http://dev.opera.com/articles/view/css3-object-fit-object-position/
4
+
5
+ $object-fit-support: not webkit, not moz, o, not ms, not khtml;
6
+
7
+ @mixin object-fit($value: contain) {
8
+ @include experimental(object-fit, $value, $object-fit-support...);
9
+ }
10
+
11
+ @mixin object-position($value: 50% 50%) {
12
+ @include experimental(object-position, $value, $object-fit-support...);
13
+ }
@@ -0,0 +1,40 @@
1
+ // --------------------------------------------------------------------------------
2
+ // Clearfix: clear floats without using extra markup
3
+ // --------------------------------------------------------------------------------
4
+
5
+ $default-clearfix: modern !default;
6
+
7
+ @mixin clearfix($type: $default-clearfix) {
8
+ @if $type == modern {
9
+ @include clearfix-modern;
10
+ } @else if $type == traditional {
11
+ @include clearfix-traditional;
12
+ } @else {
13
+ @include clearfix-overflow;
14
+ }
15
+ }
16
+
17
+ // http://www.positioniseverything.net/easyclearing.html
18
+ @mixin clearfix-traditional {
19
+ zoom: 1; // fix for IE
20
+
21
+ &:after {
22
+ content: ' ';
23
+ display: block;
24
+ height: 0;
25
+ clear: both;
26
+ visibility: hidden;
27
+ }
28
+ }
29
+
30
+ // http://nicolasgallagher.com/micro-clearfix-hack/
31
+ @mixin clearfix-modern {
32
+ zoom: 1; // fix for IE
33
+
34
+ /*&:before,*/ &:after { content: ' '; display: table; }
35
+ &:after { clear: both; }
36
+ }
37
+
38
+ @mixin clearfix-overflow {
39
+ overflow: hidden;
40
+ }
@@ -0,0 +1,7 @@
1
+ @function fade($color, $mod) {
2
+ @return desaturate(lighten($color, $mod), $mod);
3
+ }
4
+
5
+ @function contrast-style($color, $light, $dark) {
6
+ @return if(lightness($color) < 30%, $light, $dark);
7
+ }
@@ -0,0 +1,34 @@
1
+ @import "compass/css3/deprecated-support";
2
+
3
+ $text-overflow-support: not webkit, not moz, o, not ms, not khtml;
4
+
5
+ @mixin single-line-ellipsis {
6
+ text-overflow: ellipsis;
7
+ white-space: nowrap;
8
+ overflow: hidden;
9
+ }
10
+
11
+ @mixin multi-line-ellipsis($background: white, $height: 1.4em) {
12
+ overflow: hidden;
13
+ position: relative;
14
+
15
+ &:after {
16
+ display: block;
17
+ height: $height;
18
+ content: ' ';
19
+ @include background(linear-gradient(rgba($background, 0), $background));
20
+ position: absolute;
21
+ bottom: 0;
22
+ left: 0;
23
+ right: 0;
24
+ }
25
+
26
+ @supports (text-overflow: -o-ellipsis-lastline) {
27
+ text-overflow: -o-ellipsis-lastline;
28
+ // no standard version of this value yet
29
+
30
+ &:after {
31
+ display: none;
32
+ }
33
+ }
34
+ }
@@ -0,0 +1,7 @@
1
+ $is-ie: false !default;
2
+
3
+ @mixin if-ie {
4
+ @if $is-ie {
5
+ @content;
6
+ }
7
+ }
@@ -0,0 +1,109 @@
1
+ // --------------------------------------------------------------------------------
2
+ // Image Replacement: apply a background image and hide the original content
3
+ // --------------------------------------------------------------------------------
4
+
5
+ $default-ir-technique: indent !default;
6
+
7
+ // NOTE: pseudo and padding options need to be applied to inline elements,
8
+ // instead of their parent block level element if they are intended to be linked
9
+ // <h1><a href="#">Title Text Here</a></h1><!-- style the a, not the h1 -->
10
+
11
+ // -------------------------------------------------------------------------------- Aliases
12
+
13
+ // http://www.mezzoblue.com/tests/revised-image-replacement/#phark
14
+ @mixin image-replacement-indent($image, $width, $height) {
15
+ @include image-replacement($image, $width, $height, indent);
16
+ }
17
+
18
+ // http://www.zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement/
19
+ @mixin image-replacement-overflow($image, $width, $height) {
20
+ @include image-replacement($image, $width, $height, overflow);
21
+ }
22
+
23
+ // http://nicolasgallagher.com/css-image-replacement-with-pseudo-elements/
24
+ @mixin image-replacement-pseudo($image, $width, $height) {
25
+ @include image-replacement($image, $width, $height, pseudo);
26
+ }
27
+
28
+ @mixin image-replacement-padding($image, $width, $height) {
29
+ @include image-replacement($image, $width, $height, padding);
30
+ }
31
+
32
+ // -------------------------------------------------------------------------------- Master Mixin
33
+
34
+ // $type options: pseudo, overflow, padding, fontsize, indent
35
+ @mixin image-replacement($image, $width, $height, $type: $default-ir-technique) {
36
+ @if $type != padding {
37
+ width: $width;
38
+ height: $height;
39
+ }
40
+
41
+ @if $type == pseudo {
42
+ padding: 0;
43
+ margin: 0;
44
+ overflow: hidden;
45
+ display: block;
46
+
47
+ &:before {
48
+ content: url($image);
49
+ display: inline-block;
50
+ font-size: 0;
51
+ line-height: 0;
52
+ }
53
+ } @else {
54
+ background: url($image) no-repeat;
55
+ @if $type == overflow {
56
+ text-indent: 100%;
57
+ white-space: nowrap;
58
+ overflow: hidden;
59
+ } @else if $type == padding {
60
+ width: 0;
61
+ height: 0;
62
+ padding-top: $height;
63
+ padding-left: $width;
64
+ overflow: hidden;
65
+ } @else { // indent
66
+ text-indent: -100em;
67
+ }
68
+ }
69
+ }
70
+
71
+ @mixin linked-image-replacement($width, $height, $image, $type: default) {
72
+ @include image-replacement($width, $height, $image, $type);
73
+
74
+ @if $type != pseudo and $type != padding {
75
+ a { display: block; width: 100%; height: 100% }
76
+ }
77
+ }
78
+
79
+ // --------------------------------------------------------------------------------
80
+ // SVG background: use background-size to hide the SVG background from older browsers
81
+ // --------------------------------------------------------------------------------
82
+
83
+ // This mixin expects the file to already have the `url()` around it,
84
+ // this allows it to be used with Compass helper functions like `image-url()`
85
+ @mixin svg-background($svg, $styles: 0 0 / auto auto no-repeat) {
86
+ background: $svg $styles;
87
+ }
88
+
89
+ // --------------------------------------------------------------------------------
90
+ // Center and clip an image to specific dimensions
91
+ // --------------------------------------------------------------------------------
92
+
93
+ @mixin center-clip ($parent-dims, $clip-dims) {
94
+ $parent-width: nth($parent-dims, 1);
95
+ $parent-height: nth($parent-dims, 2);
96
+
97
+ $clip-width: nth($clip-dims, 1);
98
+ $clip-height: nth($clip-dims, 2);
99
+
100
+ $top: ($parent-height - $clip-height) / 2;
101
+ $left: ($parent-width - $clip-width) / 2;
102
+ $bottom: $parent-height - $top;
103
+ $right: $parent-width - $left;
104
+
105
+ clip: rect($top $right $bottom $left);
106
+ top: -$top;
107
+ left: -$left;
108
+ }
109
+
@@ -0,0 +1,14 @@
1
+ @function even-spacing($val) {
2
+ $val: $val / 2;
3
+ @if $val == ceil($val) or unit($val) != px {
4
+ @return $val;
5
+ } @else {
6
+ @if $val > 0 {
7
+ @return ceil($val) ceil($val) floor($val) floor($val);
8
+ } @else {
9
+ // negative numbers have to be reversed otherwise they won't match up properly with positive numbers
10
+ // `-5px -5px -4px -4px` would get matched up with `4px 4px 5px 5px` otherwise
11
+ @return floor($val) floor($val) ceil($val) ceil($val);
12
+ }
13
+ }
14
+ }
@@ -0,0 +1,11 @@
1
+ description "Please provide description here"
2
+
3
+ # Make sure you list all the project template files here in the manifest.
4
+ #stylesheet 'screen.sass', :media => 'screen, projection'
5
+
6
+ #image 'dialog-boxes/spritemap.svg'
7
+ #image 'dialog-boxes/spritemap.png'
8
+
9
+ #require '../dialog-boxes'
10
+
11
+ #stylesheet '../../stylesheets/cimma/baseline/_core.scss', :to => 'cimma/_test.scss'
metadata ADDED
@@ -0,0 +1,83 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: translucencss
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Chris Siepker
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-05-30 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: compass
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0.11'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0.11'
30
+ description: TranslucenCSS doesn't generate anything that you don't absolutely need
31
+ to get the desired effect, leaving you free to style your elements without constantly
32
+ undoing
33
+ email: chris@cimmanon.org
34
+ executables: []
35
+ extensions: []
36
+ extra_rdoc_files: []
37
+ files:
38
+ - lib/translucencss.rb
39
+ - stylesheets/_translucencss.scss
40
+ - stylesheets/translucencss/core/_tables.scss
41
+ - stylesheets/translucencss/core/_forms.scss
42
+ - stylesheets/translucencss/core/_lists.scss
43
+ - stylesheets/translucencss/core/_font-stacks.scss
44
+ - stylesheets/translucencss/core/_headlines.scss
45
+ - stylesheets/translucencss/core/_typography.scss
46
+ - stylesheets/translucencss/_util.scss
47
+ - stylesheets/translucencss/_css3.scss
48
+ - stylesheets/translucencss/_core.scss
49
+ - stylesheets/translucencss/util/_clearfix.scss
50
+ - stylesheets/translucencss/util/_colors.scss
51
+ - stylesheets/translucencss/util/_ie.scss
52
+ - stylesheets/translucencss/util/_images.scss
53
+ - stylesheets/translucencss/util/_ellipsis.scss
54
+ - stylesheets/translucencss/util/_spacing.scss
55
+ - stylesheets/translucencss/css3/_object-fit.scss
56
+ - stylesheets/translucencss/css3/_flexbox.scss
57
+ - stylesheets/translucencss/css3/_flexbox_old.scss
58
+ - templates/project/manifest.rb
59
+ homepage: http://www.cimmanon.org/
60
+ licenses: []
61
+ post_install_message:
62
+ rdoc_options: []
63
+ require_paths:
64
+ - lib
65
+ required_ruby_version: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ required_rubygems_version: !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ requirements: []
78
+ rubyforge_project:
79
+ rubygems_version: 1.8.23
80
+ signing_key:
81
+ specification_version: 3
82
+ summary: ! 'TranslucenCSS: common CSS patterns abstracted as mixins and variables'
83
+ test_files: []