edge_framework 2.0.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/README.md +16 -2
- data/assets/kitchensink.html +8 -9
- data/assets/sass/_edge.scss +3 -2
- data/assets/sass/_edgemail.scss +1 -1
- data/assets/sass/edge/_base.scss +71 -280
- data/assets/sass/edge/_component.scss +12 -0
- data/assets/sass/edge/_helpers.scss +1 -7
- data/assets/sass/edge/_user.scss +5 -0
- data/assets/sass/edge/_utility.scss +7 -0
- data/assets/sass/edge/{components → component}/_animate.scss +0 -0
- data/assets/sass/edge/{components → component}/_button.scss +0 -0
- data/assets/sass/edge/{components → component}/_code.scss +0 -0
- data/assets/sass/edge/{components → component}/_form.scss +0 -0
- data/assets/sass/edge/{components → component}/_grid.scss +26 -34
- data/assets/sass/edge/{components → component}/_normalize.scss +0 -11
- data/assets/sass/edge/{components → component}/_print.scss +26 -12
- data/assets/sass/edge/{components → component}/_tile.scss +6 -6
- data/assets/sass/edge/component/_typography.scss +98 -0
- data/assets/sass/edge/utility/_em.scss +35 -0
- data/assets/sass/edge/utility/_media.scss +70 -0
- data/assets/sass/edge/utility/_other.scss +44 -0
- data/assets/sass/edge/{helpers → utility}/_sprites.scss +3 -3
- data/assets/sass/edge/{helpers → utility}/_sticky-footer.scss +0 -0
- data/assets/sass/edge/utility/_triangle.scss +83 -0
- data/assets/sass/edgemail/_base.scss +5 -5
- data/assets/sass/edgemail/_component.scss +2 -0
- data/assets/sass/edgemail/{_helpers.scss → _user.scss} +0 -0
- data/assets/sass/edgemail/{components → component}/_generic.scss +0 -0
- data/assets/sass/edgemail/{components → component}/_normalize.scss +0 -0
- data/assets/test/kitchensink-email.scss +1 -1
- data/assets/test/kitchensink.scss +1 -2
- data/lib/edge/message.rb +17 -7
- data/lib/edge/version.rb +1 -1
- data/template/base/assets/js/vendor/edge.js +1 -1
- data/template/base/assets/sass/_setting.scss +19 -17
- data/template/base/assets/sass/app.scss +1 -1
- data/template/base/config.rb +1 -1
- data/template/email/assets/sass/app.scss +1 -1
- data/template/wordpress/views/layout.twig +1 -0
- metadata +24 -18
- data/assets/sass/edge/_components.scss +0 -12
- data/assets/sass/edge/components/_typography.scss +0 -171
- data/assets/sass/edgemail/_components.scss +0 -2
@@ -0,0 +1,12 @@
|
|
1
|
+
@import "component/normalize";
|
2
|
+
@import "component/typography";
|
3
|
+
|
4
|
+
@import "component/grid";
|
5
|
+
@import "component/tile";
|
6
|
+
|
7
|
+
@import "component/button";
|
8
|
+
@import "component/form";
|
9
|
+
@import "component/animate";
|
10
|
+
|
11
|
+
@import "component/print";
|
12
|
+
@import "component/code";
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -2,12 +2,6 @@
|
|
2
2
|
// EDGE GRID
|
3
3
|
// =============
|
4
4
|
|
5
|
-
$row-max-width : $medium-screen !default;
|
6
|
-
$total-columns : 12 !default;
|
7
|
-
$column-gutter : 20px !default;
|
8
|
-
|
9
|
-
$adaptive-breakpoints : $medium-screen, $small-screen !default;
|
10
|
-
|
11
5
|
// Calculate percentages for grid
|
12
6
|
@function gridCalc($colNumber, $totalColumns) {
|
13
7
|
// If column specified is not fraction
|
@@ -226,15 +220,21 @@ $adaptive-breakpoints : $medium-screen, $small-screen !default;
|
|
226
220
|
|
227
221
|
// Sizing
|
228
222
|
@if $size > 0 {
|
229
|
-
@include base-column($size, $total:$total);
|
223
|
+
@include base-column($size, $offset:$offset, $total:$total);
|
224
|
+
|
225
|
+
// Reset offset if more than 0
|
226
|
+
$reset-offset: $offset;
|
227
|
+
@if $offset {
|
228
|
+
$reset-offset: 0;
|
229
|
+
}
|
230
230
|
|
231
231
|
@if $small > 0 {
|
232
232
|
@include below(small) {
|
233
|
-
@include base-column($small, $total:$total);
|
233
|
+
@include base-column($small, $offset:$reset-offset, $total:$total);
|
234
234
|
}
|
235
|
-
} @else if
|
235
|
+
} @else if not $in-media { // else, become 100% width on small screen
|
236
236
|
@include below(small) {
|
237
|
-
@include base-column($total, $total:$total);
|
237
|
+
@include base-column($total, $offset:$reset-offset, $total:$total);
|
238
238
|
}
|
239
239
|
}
|
240
240
|
|
@@ -252,16 +252,6 @@ $adaptive-breakpoints : $medium-screen, $small-screen !default;
|
|
252
252
|
$gutter: $gutter,
|
253
253
|
$total: $total
|
254
254
|
);
|
255
|
-
|
256
|
-
// Source Ordering, follow base column
|
257
|
-
@if $responsive and not $in-media {
|
258
|
-
// make Offset not inherited in small screen
|
259
|
-
@include above(small) {
|
260
|
-
@include base-column($offset:$offset, $total:$total);
|
261
|
-
}
|
262
|
-
} @else {
|
263
|
-
@include base-column($offset:$offset, $total:$total);
|
264
|
-
}
|
265
255
|
}
|
266
256
|
|
267
257
|
// ----------------------------------------------
|
@@ -314,11 +304,11 @@ $adaptive-breakpoints : $medium-screen, $small-screen !default;
|
|
314
304
|
EDGE Grid
|
315
305
|
------------ */
|
316
306
|
|
317
|
-
@if not $responsive {
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
}
|
307
|
+
// @if not $responsive {
|
308
|
+
// body {
|
309
|
+
// min-width: $row-max-width + ($column-gutter * 2);
|
310
|
+
// }
|
311
|
+
// }
|
322
312
|
|
323
313
|
// normal row
|
324
314
|
h-row {
|
@@ -355,13 +345,7 @@ h-column {
|
|
355
345
|
}
|
356
346
|
|
357
347
|
@include h-sizing("large");
|
358
|
-
|
359
|
-
@if $responsive {
|
360
|
-
@include above(small) { @include h-offset("offset"); }
|
361
|
-
} @else {
|
362
|
-
// Not inside media query. So when it reach the breakpoint, the offset isn't gone.
|
363
|
-
@include h-offset("offset");
|
364
|
-
}
|
348
|
+
@include h-offset("offset");
|
365
349
|
|
366
350
|
// centered column
|
367
351
|
.centered {
|
@@ -370,8 +354,16 @@ h-column {
|
|
370
354
|
|
371
355
|
// small screen and below
|
372
356
|
@include below(small) {
|
373
|
-
|
374
|
-
|
357
|
+
// reset large sizing
|
358
|
+
%large-reset { @include base-column($total-columns); }
|
359
|
+
@for $i from 1 through $total-columns {
|
360
|
+
.large-#{$i} { @extend %large-reset; }
|
361
|
+
}
|
362
|
+
|
363
|
+
// reset large offset
|
364
|
+
%offset-reset { @include base-column($offset: 0); }
|
365
|
+
@for $i from 1 through ($total-columns - 1) {
|
366
|
+
.offset-#{$i} { @extend %offset-reset; }
|
375
367
|
}
|
376
368
|
|
377
369
|
@include h-sizing("small");
|
@@ -23,10 +23,6 @@
|
|
23
23
|
padding: 0;
|
24
24
|
}
|
25
25
|
|
26
|
-
body {
|
27
|
-
height: 100%;
|
28
|
-
}
|
29
|
-
|
30
26
|
// Chrome Sibling Selector Fix
|
31
27
|
body { -webkit-animation: bugfix infinite 1s; }
|
32
28
|
@-webkit-keyframes bugfix {
|
@@ -35,7 +31,6 @@ body { -webkit-animation: bugfix infinite 1s; }
|
|
35
31
|
}
|
36
32
|
|
37
33
|
html {
|
38
|
-
height: 100%;
|
39
34
|
font-family: sans-serif;
|
40
35
|
-webkit-text-size-adjust: 100%;
|
41
36
|
-ms-text-size-adjust: 100%;
|
@@ -176,12 +171,6 @@ table {
|
|
176
171
|
|
177
172
|
/* Miscellaneous useful HTML classes */
|
178
173
|
|
179
|
-
.left { float: left !important; }
|
180
|
-
.right { float: right !important; }
|
181
|
-
.text-left { text-align: left !important; }
|
182
|
-
.text-right { text-align: right !important; }
|
183
|
-
.text-center { text-align: center !important; }
|
184
|
-
.text-justify { text-align: justify !important; }
|
185
174
|
.hide { display: none !important; visibility: hidden !important; }
|
186
175
|
.visual-hide {
|
187
176
|
border: 0 !important;
|
@@ -4,48 +4,52 @@
|
|
4
4
|
|
5
5
|
@if $include-print and not $user-mode {
|
6
6
|
|
7
|
-
/*
|
7
|
+
/* ---------------------
|
8
8
|
EDGE Print
|
9
|
-
|
9
|
+
- HTML5 Boilerplate
|
10
|
+
--------------------- */
|
10
11
|
|
11
12
|
@include print {
|
12
13
|
* {
|
13
|
-
|
14
|
-
|
14
|
+
@if $override-color {
|
15
|
+
color: #000 !important;
|
16
|
+
}
|
15
17
|
box-shadow: none !important;
|
16
18
|
text-shadow: none !important;
|
17
19
|
}
|
18
20
|
|
19
21
|
a,
|
20
22
|
a:visited {
|
21
|
-
color
|
23
|
+
@if $override-color {
|
24
|
+
color: #000 !important;
|
25
|
+
}
|
22
26
|
text-decoration: underline;
|
23
27
|
}
|
24
28
|
|
25
|
-
a[href]
|
29
|
+
a[href]::after {
|
26
30
|
content: " (" attr(href) ")";
|
27
31
|
}
|
28
32
|
|
29
|
-
abbr[title]
|
33
|
+
abbr[title]::after {
|
30
34
|
content: " (" attr(title) ")";
|
31
35
|
}
|
32
36
|
|
33
37
|
// Don't show links for images, or javascript/internal links
|
34
38
|
|
35
|
-
.ir a
|
36
|
-
a[href^="javascript:"]
|
37
|
-
a[href^="#"]
|
39
|
+
.ir a::after,
|
40
|
+
a[href^="javascript:"]::after,
|
41
|
+
a[href^="#"]::after,
|
42
|
+
.button::after {
|
38
43
|
content: "";
|
39
44
|
}
|
40
45
|
|
41
46
|
pre,
|
42
47
|
blockquote {
|
43
|
-
border: 1px solid #999;
|
44
48
|
page-break-inside: avoid;
|
45
49
|
}
|
46
50
|
|
47
51
|
thead {
|
48
|
-
display: table-header-group;
|
52
|
+
display: table-header-group;
|
49
53
|
}
|
50
54
|
|
51
55
|
tr,
|
@@ -71,6 +75,16 @@
|
|
71
75
|
h2,
|
72
76
|
h3 {
|
73
77
|
page-break-after: avoid;
|
78
|
+
}
|
79
|
+
|
80
|
+
// set the page size
|
81
|
+
|
82
|
+
h-row {
|
83
|
+
min-width: $row-max-width + $column-gutter;
|
84
|
+
|
85
|
+
h-row {
|
86
|
+
min-width: 0;
|
87
|
+
}
|
74
88
|
}
|
75
89
|
}
|
76
90
|
|
@@ -2,9 +2,6 @@
|
|
2
2
|
// EDGE TILE
|
3
3
|
// ==============
|
4
4
|
|
5
|
-
$max-tiles : 12 !default;
|
6
|
-
$tile-gutter : 20px !default;
|
7
|
-
|
8
5
|
// ------------------------------
|
9
6
|
// BASE TILE
|
10
7
|
// - Styling for base framework
|
@@ -26,6 +23,8 @@ $tile-gutter : 20px !default;
|
|
26
23
|
@if $collapse {
|
27
24
|
margin-right: 0;
|
28
25
|
margin-left: 0;
|
26
|
+
padding-right: 0; // override grid's .collapse
|
27
|
+
padding-left: 0;
|
29
28
|
}
|
30
29
|
|
31
30
|
@if $gutter > 0 {
|
@@ -121,9 +120,10 @@ h-tile {
|
|
121
120
|
}
|
122
121
|
|
123
122
|
@include below(small) {
|
124
|
-
//
|
125
|
-
|
126
|
-
|
123
|
+
// reset large block
|
124
|
+
%block-reset { @include base-tile(1, $clear:true); }
|
125
|
+
@for $i from 1 through $max-tiles {
|
126
|
+
.block-#{$i} { @extend %block-reset; }
|
127
127
|
}
|
128
128
|
|
129
129
|
@for $i from 1 through $max-tiles {
|
@@ -0,0 +1,98 @@
|
|
1
|
+
// ==================
|
2
|
+
// EDGE TYPOGRAPHY
|
3
|
+
// ==================
|
4
|
+
|
5
|
+
// ------------------------------
|
6
|
+
// BASELINE
|
7
|
+
// - Create notebook-like row
|
8
|
+
// ------------------------------
|
9
|
+
@mixin baseline($lh : $body-line-height) {
|
10
|
+
|
11
|
+
@include background(
|
12
|
+
linear-gradient(to bottom, rgba(black, 0) 95%, rgba(black, .1) 100%)
|
13
|
+
);
|
14
|
+
background-size: 100% ($lh * 1em);
|
15
|
+
}
|
16
|
+
|
17
|
+
// ----------------------
|
18
|
+
// Create Inline List
|
19
|
+
// ----------------------
|
20
|
+
@mixin inline-list() {
|
21
|
+
@include clearfix();
|
22
|
+
|
23
|
+
> li {
|
24
|
+
display: inline-block;
|
25
|
+
float: left;
|
26
|
+
vertical-align: top;
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
@if $include-typography and not $user-mode {
|
31
|
+
|
32
|
+
/* -----------------
|
33
|
+
EDGE Typography
|
34
|
+
----------------- */
|
35
|
+
|
36
|
+
body {
|
37
|
+
position: relative;
|
38
|
+
background: $body-background;
|
39
|
+
font-size: $body-font-size;
|
40
|
+
font-family: $body-font-family;
|
41
|
+
font-weight: $body-font-weight;
|
42
|
+
line-height: $body-line-height;
|
43
|
+
color: $body-font-color;
|
44
|
+
}
|
45
|
+
|
46
|
+
h1, h2, h3, h4, h5, h6 {
|
47
|
+
color: $header-font-color;
|
48
|
+
font-family: $header-font-family;
|
49
|
+
font-weight: $header-font-weight;
|
50
|
+
line-height: $header-line-height;
|
51
|
+
}
|
52
|
+
|
53
|
+
a {
|
54
|
+
color: $link-color;
|
55
|
+
}
|
56
|
+
|
57
|
+
h1 { font-size: em($h1-font-size); }
|
58
|
+
h2 { font-size: em($h2-font-size); }
|
59
|
+
h3 { font-size: em($h3-font-size); }
|
60
|
+
h4 { font-size: em($h4-font-size); }
|
61
|
+
h5 { font-size: em($h5-font-size); }
|
62
|
+
h6 { font-size: em($h6-font-size); }
|
63
|
+
|
64
|
+
p {
|
65
|
+
margin-top: 0;
|
66
|
+
margin-bottom: 0;
|
67
|
+
}
|
68
|
+
|
69
|
+
// -----------
|
70
|
+
// LIST
|
71
|
+
// -----------
|
72
|
+
|
73
|
+
ul {
|
74
|
+
list-style-type: $ul-parent-style;
|
75
|
+
padding-left: 20px;
|
76
|
+
|
77
|
+
ul {
|
78
|
+
list-style-type: $ul-child-style;
|
79
|
+
}
|
80
|
+
}
|
81
|
+
|
82
|
+
ol {
|
83
|
+
list-style-type: $ol-parent-style;
|
84
|
+
padding-left: 25px;
|
85
|
+
|
86
|
+
ol {
|
87
|
+
list-style-type: $ol-child-style;
|
88
|
+
}
|
89
|
+
}
|
90
|
+
|
91
|
+
blockquote {
|
92
|
+
cite {
|
93
|
+
display: block;
|
94
|
+
font-style: italic;
|
95
|
+
}
|
96
|
+
}
|
97
|
+
|
98
|
+
} // include-typography
|
@@ -0,0 +1,35 @@
|
|
1
|
+
// --------------
|
2
|
+
// EM CONVERTER
|
3
|
+
// --------------
|
4
|
+
|
5
|
+
// Strips unit and return plain number
|
6
|
+
@function _stripUnit($num) {
|
7
|
+
@return $num / ($num * 0 + 1);
|
8
|
+
}
|
9
|
+
|
10
|
+
// Convert the number to EM
|
11
|
+
@function _convertToEm($value, $context: $body-font-size) {
|
12
|
+
// if not number, return it as is
|
13
|
+
@if type-of($value) != number { @return $value; }
|
14
|
+
|
15
|
+
$value: _stripUnit($value) / _stripUnit($context) * 1em;
|
16
|
+
// turn 0em into 0
|
17
|
+
@if ($value == 0em) {
|
18
|
+
$value: 0;
|
19
|
+
}
|
20
|
+
@return $value;
|
21
|
+
}
|
22
|
+
|
23
|
+
@function em($values, $context: $body-font-size) {
|
24
|
+
// if only contain single number, convert it directly
|
25
|
+
@if type-of($values) == number {
|
26
|
+
@return _convertToEm($values, $context);
|
27
|
+
}
|
28
|
+
|
29
|
+
// if contains multiple values, loop through it
|
30
|
+
$emValues : ();
|
31
|
+
@each $val in $values {
|
32
|
+
$emValues: append($emValues, hConvertToEm($val, $context) );
|
33
|
+
}
|
34
|
+
@return join((), $emValues, space );
|
35
|
+
}
|
@@ -0,0 +1,70 @@
|
|
1
|
+
// ---------------
|
2
|
+
// MEDIA QUERY
|
3
|
+
// ---------------
|
4
|
+
|
5
|
+
@function _translateSize($size) {
|
6
|
+
// if number, return it as it is
|
7
|
+
@if type-of($size) == number {
|
8
|
+
@return $size;
|
9
|
+
}
|
10
|
+
// if keyword, translate from the map
|
11
|
+
@else {
|
12
|
+
@return map-get($_media-sizes, $size);
|
13
|
+
}
|
14
|
+
}
|
15
|
+
|
16
|
+
@mixin below($named-size) {
|
17
|
+
@if $responsive {
|
18
|
+
$in-media: true !global;
|
19
|
+
$size: _translateSize($named-size);
|
20
|
+
|
21
|
+
@if $named-size == retina {
|
22
|
+
@media only screen and (-webkit-max-device-pixel-ratio: 2), (max-resolution: $size) {
|
23
|
+
@content;
|
24
|
+
}
|
25
|
+
}
|
26
|
+
@else {
|
27
|
+
@media only screen and (max-width: $size) { @content; }
|
28
|
+
}
|
29
|
+
|
30
|
+
$in-media: false !global;
|
31
|
+
}
|
32
|
+
}
|
33
|
+
|
34
|
+
@mixin above($named-size) {
|
35
|
+
@if $responsive {
|
36
|
+
$in-media: true !global;
|
37
|
+
$size: _translateSize($named-size) + 1px;
|
38
|
+
|
39
|
+
@if $named-size == retina {
|
40
|
+
@media only screen and (-webkit-min-device-pixel-ratio: 2), (min-resolution: $size) {
|
41
|
+
@content;
|
42
|
+
}
|
43
|
+
}
|
44
|
+
@else {
|
45
|
+
@media (min-width: $size) { @content; }
|
46
|
+
}
|
47
|
+
|
48
|
+
$in-media: false !global;
|
49
|
+
}
|
50
|
+
}
|
51
|
+
|
52
|
+
@mixin between($smaller-size, $larger-size) {
|
53
|
+
@if $responsive {
|
54
|
+
$in-media: true !global;
|
55
|
+
$smaller-size: _translateSize($smaller-size);
|
56
|
+
$larger-size: _translateSize($larger-size);
|
57
|
+
|
58
|
+
@media only screen and (min-width: $smaller-size) and (max-width: $larger-size) {
|
59
|
+
@content;
|
60
|
+
}
|
61
|
+
|
62
|
+
$in-media: false !global;
|
63
|
+
}
|
64
|
+
}
|
65
|
+
|
66
|
+
@mixin print {
|
67
|
+
@media only print {
|
68
|
+
@content;
|
69
|
+
}
|
70
|
+
}
|