ratchet_design 0.1.19 → 0.1.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/ratchet/_esvg.js +72 -0
- data/app/assets/javascripts/ratchet/_icons.js +19 -0
- data/app/assets/javascripts/ratchet/_topology.js +19 -0
- data/app/assets/javascripts/ratchet/base/form.js +4 -4
- data/app/assets/javascripts/ratchet/core.js +15 -8
- data/app/assets/javascripts/ratchet/enhancement/{_collapse.js → collapse.js} +3 -3
- data/app/assets/javascripts/ratchet/enhancement/lightbox.js +52 -118
- data/app/assets/javascripts/ratchet/enhancement/modal.js +185 -0
- data/app/assets/javascripts/ratchet/enhancement/smooth-scroll.js +21 -0
- data/app/assets/javascripts/ratchet/utility/once.js +42 -0
- data/app/assets/stylesheets/ratchet/_colors.yml +54 -0
- data/app/assets/stylesheets/ratchet/_core.scss +8 -1
- data/app/assets/stylesheets/ratchet/base/_button.scss +22 -31
- data/app/assets/stylesheets/ratchet/base/_document.scss +66 -53
- data/app/assets/stylesheets/ratchet/base/_form.scss +0 -1
- data/app/assets/stylesheets/ratchet/base/_list.scss +6 -15
- data/app/assets/stylesheets/ratchet/base/_media.scss +22 -6
- data/app/assets/stylesheets/ratchet/base/_section.scss +8 -257
- data/app/assets/stylesheets/ratchet/base/_slider.scss +388 -0
- data/app/assets/stylesheets/ratchet/base/_table.scss +1 -2
- data/app/assets/stylesheets/ratchet/base/_text.scss +13 -29
- data/app/assets/stylesheets/ratchet/enhancement/_deployments.scss +26 -0
- data/app/assets/stylesheets/ratchet/enhancement/_hero.scss +1 -1
- data/app/assets/stylesheets/ratchet/enhancement/_lightbox.scss +35 -76
- data/app/assets/stylesheets/ratchet/enhancement/_modal.scss +125 -0
- data/app/assets/stylesheets/ratchet/utility/_animations.scss +8 -0
- data/app/assets/stylesheets/ratchet/utility/_color.scss +25 -105
- data/app/assets/stylesheets/ratchet/utility/_global.scss +30 -24
- data/app/assets/stylesheets/ratchet/utility/_grid.scss +152 -15
- data/app/assets/svgs/ratchet/_icons/backup.svg +9 -0
- data/app/assets/svgs/ratchet/_icons/block.svg +7 -0
- data/app/assets/svgs/ratchet/_icons/compose-logomark.svg +8 -0
- data/app/assets/svgs/ratchet/_icons/connecting-in.svg +46 -0
- data/app/assets/svgs/ratchet/_icons/connecting-out.svg +33 -0
- data/app/assets/svgs/ratchet/_icons/customer-buffer.svg +28 -0
- data/app/assets/svgs/ratchet/_icons/customer-citrix.svg +12 -0
- data/app/assets/svgs/ratchet/_icons/customer-guardian.svg +31 -0
- data/app/assets/svgs/ratchet/_icons/customer-roximity.svg +16 -0
- data/app/assets/svgs/ratchet/_icons/customer-upworthy.svg +13 -0
- data/app/assets/svgs/ratchet/_icons/db-money.svg +31 -0
- data/app/assets/svgs/ratchet/_icons/deployment.svg +1 -0
- data/app/assets/svgs/ratchet/{facebook.svg → _icons/facebook.svg} +0 -0
- data/app/assets/svgs/ratchet/_icons/gear.svg +12 -0
- data/app/assets/svgs/ratchet/{github.svg → _icons/github.svg} +0 -0
- data/app/assets/svgs/ratchet/{google-plus.svg → _icons/google-plus.svg} +0 -0
- data/app/assets/svgs/ratchet/{ibm.svg → _icons/ibm.svg} +0 -0
- data/app/assets/svgs/ratchet/{inbox.svg → _icons/inbox.svg} +0 -0
- data/app/assets/svgs/ratchet/_icons/index.svg +3 -0
- data/app/assets/svgs/ratchet/_icons/keylock.svg +8 -0
- data/app/assets/svgs/ratchet/_icons/life-preserver.svg +17 -0
- data/app/assets/svgs/ratchet/{linkedin.svg → _icons/linkedin.svg} +0 -0
- data/app/assets/svgs/ratchet/_icons/metrics.svg +7 -0
- data/app/assets/svgs/ratchet/_icons/money-stack.svg +60 -0
- data/app/assets/svgs/ratchet/_icons/notepad.svg +12 -0
- data/app/assets/svgs/ratchet/_icons/notepad2.svg +14 -0
- data/app/assets/svgs/ratchet/_icons/one-click.svg +6 -0
- data/app/assets/svgs/ratchet/{ratchet.svg → _icons/ratchet.svg} +0 -0
- data/app/assets/svgs/ratchet/_icons/reliability.svg +12 -0
- data/app/assets/svgs/ratchet/_icons/safe.svg +26 -0
- data/app/assets/svgs/ratchet/_icons/scaling.svg +16 -0
- data/app/assets/svgs/ratchet/{search.svg → _icons/search.svg} +0 -0
- data/app/assets/svgs/ratchet/{subscribe.svg → _icons/subscribe.svg} +0 -0
- data/app/assets/svgs/ratchet/{twitter.svg → _icons/twitter.svg} +0 -0
- data/app/assets/svgs/ratchet/{y-combinator.svg → _icons/y-combinator.svg} +0 -0
- data/app/assets/svgs/ratchet/_icons/youtube.svg +3 -0
- data/app/assets/svgs/ratchet/_topology/arbiter.svg +1 -0
- data/app/assets/svgs/ratchet/_topology/backup.svg +1 -0
- data/app/assets/svgs/ratchet/_topology/config.svg +1 -0
- data/app/assets/svgs/ratchet/_topology/haproxy-2.svg +1 -0
- data/app/assets/svgs/ratchet/_topology/haproxy-storage.svg +1 -0
- data/app/assets/svgs/ratchet/_topology/haproxy.svg +1 -0
- data/app/assets/svgs/ratchet/_topology/memory.svg +1 -0
- data/app/assets/svgs/ratchet/_topology/portal-2.svg +1 -0
- data/app/assets/svgs/ratchet/_topology/portal.svg +1 -0
- data/app/assets/svgs/ratchet/_topology/sentinel-memory.svg +1 -0
- data/app/assets/svgs/ratchet/_topology/sentinel.svg +1 -0
- data/app/assets/svgs/ratchet/_topology/storage.svg +1 -0
- data/app/helpers/ratchet/application_helper.rb +10 -2
- data/app/helpers/ratchet/form_helper.rb +84 -1
- data/app/helpers/ratchet/icon_helper.rb +113 -0
- data/app/helpers/ratchet/pricing_helper.rb +133 -0
- data/app/helpers/ratchet/toggle_nav_helper.rb +101 -0
- data/app/views/layouts/ratchet/default.html.slim +3 -3
- data/app/views/shared/ratchet/_defs.html.slim +30 -88
- data/app/views/shared/ratchet/_fonts.html.slim +88 -0
- data/app/views/shared/ratchet/_footer.html.slim +1 -1
- data/app/views/shared/ratchet/_header.html.slim +5 -5
- data/app/views/shared/ratchet/_icons.html.slim +190 -5
- data/lib/ratchet_design/config_data.rb +29 -0
- data/lib/ratchet_design/version.rb +1 -1
- data/lib/ratchet_design.rb +27 -10
- data/public/core-0.1.20.js +22627 -0
- data/public/{fonts-woff-0.1.19.css → fonts-woff-0.1.20.css} +0 -0
- data/public/{fonts-woff2-0.1.19.css → fonts-woff2-0.1.20.css} +0 -0
- metadata +84 -22
- data/app/assets/javascripts/ratchet/_svg.js +0 -55
- data/public/core-0.1.19.js +0 -138
- data/public/core-0.1.19.js.gz +0 -0
- data/public/core-0.1.19.map.json +0 -1
- data/public/fonts-woff-0.1.19.css.gz +0 -0
- data/public/fonts-woff2-0.1.19.css.gz +0 -0
@@ -0,0 +1,125 @@
|
|
1
|
+
/* ========================================================================== *
|
2
|
+
* Modal
|
3
|
+
* -------------------------------------------------------------------------- */
|
4
|
+
|
5
|
+
/* ===================================== *
|
6
|
+
* Utility
|
7
|
+
* ------------------------------------- */
|
8
|
+
|
9
|
+
$modal-padding: 3vw;
|
10
|
+
|
11
|
+
// Animations
|
12
|
+
@keyframes scale-up {
|
13
|
+
0% { transform: translateZ(0) scale(0); }
|
14
|
+
100% { transform: translateZ(0) scale(1); }
|
15
|
+
}
|
16
|
+
|
17
|
+
@keyframes scale-down {
|
18
|
+
0% { transform: translateZ(0) scale(1); }
|
19
|
+
100% { transform: translateZ(0) scale(0); }
|
20
|
+
}
|
21
|
+
|
22
|
+
// Modal button placeholder styles
|
23
|
+
@mixin modal-button {
|
24
|
+
display: flex;
|
25
|
+
width: vr(4); // 60px;
|
26
|
+
height: vr(4); // 60px;
|
27
|
+
flex-direction: column;
|
28
|
+
justify-content: center;
|
29
|
+
align-items: center;
|
30
|
+
text-align: center;
|
31
|
+
}
|
32
|
+
|
33
|
+
/* ===================================== *
|
34
|
+
* Common
|
35
|
+
* ------------------------------------- */
|
36
|
+
|
37
|
+
// Main modal
|
38
|
+
[data-modal] {
|
39
|
+
display: flex;
|
40
|
+
flex-direction: column;
|
41
|
+
align-items: center;
|
42
|
+
position: fixed;
|
43
|
+
left: 0;
|
44
|
+
top: 0;
|
45
|
+
width: 100%;
|
46
|
+
height: 100%;
|
47
|
+
z-index: -1;
|
48
|
+
color: $white;
|
49
|
+
overflow: auto;
|
50
|
+
padding: $modal-padding;
|
51
|
+
|
52
|
+
// Push immediate children down a bit
|
53
|
+
> * {
|
54
|
+
opacity: 0;
|
55
|
+
transform: translateY(vr(1));
|
56
|
+
transition:
|
57
|
+
opacity $duration,
|
58
|
+
transform $duration;
|
59
|
+
}
|
60
|
+
|
61
|
+
// Modal close button
|
62
|
+
[data-close-modal] {
|
63
|
+
@include modal-button;
|
64
|
+
position: absolute;
|
65
|
+
top: $modal-padding;
|
66
|
+
right: $modal-padding;
|
67
|
+
color: $white;
|
68
|
+
font-size: 12px;
|
69
|
+
letter-spacing: .05em;
|
70
|
+
line-height: 1em;
|
71
|
+
border-radius: 50%;
|
72
|
+
transition: $duration;
|
73
|
+
-webkit-font-smoothing: subpixel-antialiased; // Webkit sucks so much
|
74
|
+
background: $steel;
|
75
|
+
|
76
|
+
// Active state
|
77
|
+
&:hover,
|
78
|
+
&:focus,
|
79
|
+
&:active {
|
80
|
+
color: $azure;
|
81
|
+
background: $white;
|
82
|
+
}
|
83
|
+
|
84
|
+
// SVG styles
|
85
|
+
svg {
|
86
|
+
flex: 0 1 auto;
|
87
|
+
margin: 2px 0 5px 0;
|
88
|
+
}
|
89
|
+
}
|
90
|
+
|
91
|
+
&:after {
|
92
|
+
content: '';
|
93
|
+
position: fixed;
|
94
|
+
background: rgba($space, .97);
|
95
|
+
border-radius: 50%;
|
96
|
+
z-index: -1;
|
97
|
+
}
|
98
|
+
}
|
99
|
+
|
100
|
+
[data-modal='in'],
|
101
|
+
[data-modal='out'],
|
102
|
+
[data-modal='visible'] {
|
103
|
+
z-index: 15;
|
104
|
+
}
|
105
|
+
|
106
|
+
[data-modal='in']:after {
|
107
|
+
animation: scale-up .5s cubic-bezier(0.7,0,0.3,1);
|
108
|
+
}
|
109
|
+
|
110
|
+
[data-modal='out']:after {
|
111
|
+
animation: scale-down .5s cubic-bezier(0.7,0,0.3,1);
|
112
|
+
}
|
113
|
+
|
114
|
+
[data-modal='visible'] > * {
|
115
|
+
opacity: 1;
|
116
|
+
transform: translateY(0);
|
117
|
+
}
|
118
|
+
|
119
|
+
[data-modal-content] {
|
120
|
+
display: flex;
|
121
|
+
flex-direction: column;
|
122
|
+
width: 100%;
|
123
|
+
height: 100%;
|
124
|
+
align-items: center;
|
125
|
+
}
|
@@ -2,109 +2,20 @@
|
|
2
2
|
* a. Color module
|
3
3
|
* -------------------------------------------------------------------------- */
|
4
4
|
|
5
|
-
// Passive colors
|
6
|
-
$space: #1f2b54; // Blue-Black
|
7
|
-
$shark: #30446e; // Dark Blue-Gray
|
8
|
-
$steel: #576e91; // Blue-Gray
|
9
|
-
$pewter: #869ebc; // Light Blue-Gray
|
10
|
-
$dolphin: #b4c1d2; // Lighter Blue
|
11
|
-
$alabaster: #c3cdda; // Light Blue
|
12
|
-
$isabella: #d6dde7; // Off-Cream
|
13
|
-
$smoke: #edf5f7; // Cream
|
14
|
-
$white: #FFFFFF; // White
|
15
|
-
|
16
|
-
// Passive (dark to light)
|
17
|
-
$rhino: #263D53;
|
18
|
-
$bayou: #445D75;
|
19
|
-
$smalt: #58728A;
|
20
|
-
$bali: #87A0B8;
|
21
|
-
$boticelli: #C3D4E4;
|
22
|
-
$catskill: #EDF5F7;
|
23
|
-
|
24
|
-
// Active
|
25
|
-
$azure: #0094FD; // Blue
|
26
|
-
$cornflower: #625ff9; // Blue purple
|
27
|
-
$medium: #8F52EA; // Purple
|
28
|
-
$shocking: #C60CA5; // Pink
|
29
|
-
$shamrock: #25C894; // Mint green
|
30
|
-
$poppy: #F69523; // Light orange
|
31
|
-
$orange: #F96623; // Orange
|
32
|
-
$crimson: #DD2F41; // Red
|
33
|
-
// Active colors
|
34
|
-
$azure: #0094fd; // Blue
|
35
|
-
$cerulean: #0FA7DB; // Softer Blue
|
36
|
-
$byzantine: #c60ca5; // Magenta
|
37
|
-
$mulberry: #8f52ea; // Purple
|
38
|
-
$majorelle: #625ff9; // Indigo
|
39
|
-
$caribbean: #25c894; // Mint
|
40
|
-
$grass: #2ac84f; // Green
|
41
|
-
$gold: #f69523; // Yellow
|
42
|
-
$tangelo: #f96623; // Orange
|
43
|
-
$rusty: #dd2f41; // Red
|
44
|
-
$orchid: #a346ce; // Purple
|
45
|
-
|
46
|
-
// Banner-specific colors
|
47
|
-
$lochmara: #008BC3; // Default
|
48
|
-
$akaroa: #D2C9A7; // Error
|
49
|
-
$turquoise: #5CC6E4; // NTTW
|
50
|
-
$terracotta: #A81C27; // Thanksgiving
|
51
|
-
$cobalt: #006dff; // Royal blue
|
52
|
-
$capri: #00d2fe; // Deep sky blue
|
53
|
-
|
54
|
-
// Active color gradients
|
55
|
-
$active-gradients: (
|
56
|
-
earthrise: ( start: $azure, end: $majorelle ), // Blue to Indigo | PostgreSQL
|
57
|
-
royalty: ( start: $majorelle, end: $mulberry ), // Indigo to Purple | Elasticsearch
|
58
|
-
lagoon: ( start: $azure, end: $caribbean ), // Blue to Mint | RethinkDB
|
59
|
-
pearlescent: ( start: $azure, end: $mulberry ), // Blue to Purple | MySQL
|
60
|
-
firestorm: ( start: $gold, end: $tangelo ), // Yellow to Orange | RabbitMQ
|
61
|
-
sunset: ( start: $tangelo, end: $rusty ), // Orange to Red | Redis
|
62
|
-
berries: ( start: $byzantine, end: $rusty ), // Magenta to Red | etcd
|
63
|
-
supernova: ( start: $byzantine, end: $mulberry ), // Magenta to Purple | ScyllaDB
|
64
|
-
emerald: ( start: $caribbean, end: $grass ), // Mint to Green | MongoDB
|
65
|
-
aurora: ( start: $grass, end: $mulberry ), // Green to Indigo
|
66
|
-
tidal: ( start: $cobalt, end: $capri ) // Hero Gradient Only
|
67
|
-
);
|
68
|
-
|
69
|
-
// Gradient (passive)
|
70
|
-
$passive-gradients: (
|
71
|
-
blackhole: ( start: $space, end: $steel ), // Hero Gradient Only
|
72
|
-
midnight: ( start: $shark, end: $pewter ), // Hero Gradient Only
|
73
|
-
shady: ( start: $steel, end: $alabaster ), // Hero Gradient Only
|
74
|
-
grayscale: ( start: $pewter, end: $isabella ), // Hero Gradient Only
|
75
|
-
polar: ( start: $alabaster, end: $smoke ), // Hero Gradient Only
|
76
|
-
eggshell: ( start: $isabella, end: $white ) // Hero Gradient Only
|
77
|
-
);
|
78
|
-
|
79
5
|
// Translucent colors
|
80
6
|
$translucent-white: rgba($white, .5);
|
81
7
|
|
82
|
-
// Active Variable List
|
83
|
-
$active-colors: $azure, $cerulean, $byzantine, $mulberry, $majorelle, $caribbean, $grass, $gold, $tangelo, $rusty, $orchid;
|
84
|
-
$active-color-names: azure, cerulean, byzantine, mulberry, majorelle, caribbean, grass, gold, tangelo, rusty, orchid;
|
85
|
-
|
86
|
-
// Passive Variable List
|
87
|
-
$passive-colors: $space, $shark, $steel, $pewter, $dolphin, $alabaster, $isabella, $smoke, $white;
|
88
|
-
$passive-color-names: space, shark, steel, pewter, dolphin, alabaster, isabella, smoke, white;
|
89
|
-
|
90
|
-
// // Active Gradient Variable List
|
91
|
-
// $gradient-colors: $earthrise, $royalty, $lagoon, $pearlescent, $firestorm, $sunset, $berries, $supernova, $emerald, $aurora, $tidal, $blackhole, $midnight, $shady, $grayscale, $polar, $eggshell;
|
92
|
-
// $gradient-color-names: earthrise, royalty, lagoon, pearlescent, firestorm, sunset, berries, supernova, emerald, aurora, tidal, blackhole, midnight, shady, grayscale, polar, eggshell;
|
93
|
-
|
94
|
-
// Active and Passive List
|
95
|
-
$full-solid-color-list: zip( join($active-color-names, $passive-color-names), join($active-colors, $passive-colors));
|
96
|
-
|
97
8
|
// Solid color classes
|
98
|
-
@each $name, $color in $
|
9
|
+
@each $name, $color in $colors {
|
99
10
|
// Assign a `.[color]-text` class with a color of [color]
|
100
11
|
.#{$name}-text {
|
101
12
|
color: $color;
|
102
13
|
}
|
103
14
|
|
104
15
|
.#{$name}-bg {
|
105
|
-
&:before {
|
16
|
+
// &:before {
|
106
17
|
background-color: $color;
|
107
|
-
}
|
18
|
+
// }
|
108
19
|
}
|
109
20
|
|
110
21
|
linearGradient##{$name} {
|
@@ -121,18 +32,18 @@ $full-solid-color-list: zip( join($active-color-names, $passive-color-names), jo
|
|
121
32
|
}
|
122
33
|
|
123
34
|
|
124
|
-
// Create
|
125
|
-
@each $
|
126
|
-
$start:
|
127
|
-
$end:
|
35
|
+
// Create gradients
|
36
|
+
@each $name, $colors in $gradients {
|
37
|
+
$start: nth($colors, 1);
|
38
|
+
$end: nth($colors, 2);
|
128
39
|
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
40
|
+
.#{$name}-bg {
|
41
|
+
// &:before {
|
42
|
+
background: linear-gradient(135deg, #{$start}, #{$end}) left top/100% 100% no-repeat;
|
43
|
+
// }
|
44
|
+
}
|
134
45
|
|
135
|
-
linearGradient##{$
|
46
|
+
linearGradient##{$name} {
|
136
47
|
stop:nth-child(1) {
|
137
48
|
stop-color: $start;
|
138
49
|
}
|
@@ -141,7 +52,7 @@ $full-solid-color-list: zip( join($active-color-names, $passive-color-names), jo
|
|
141
52
|
}
|
142
53
|
}
|
143
54
|
|
144
|
-
linearGradient##{$
|
55
|
+
linearGradient##{$name}-darken {
|
145
56
|
stop:nth-child(1) {
|
146
57
|
stop-color: darken($start, 10%);
|
147
58
|
}
|
@@ -150,7 +61,7 @@ $full-solid-color-list: zip( join($active-color-names, $passive-color-names), jo
|
|
150
61
|
}
|
151
62
|
}
|
152
63
|
|
153
|
-
linearGradient##{$
|
64
|
+
linearGradient##{$name}-lighten {
|
154
65
|
stop:nth-child(1) {
|
155
66
|
stop-color: lighten($start, 10%);
|
156
67
|
}
|
@@ -158,4 +69,13 @@ $full-solid-color-list: zip( join($active-color-names, $passive-color-names), jo
|
|
158
69
|
stop-color: lighten($end, 10%);
|
159
70
|
}
|
160
71
|
}
|
161
|
-
|
72
|
+
|
73
|
+
// linearGradient##{$name}-reverse {
|
74
|
+
// stop:nth-child(1) {
|
75
|
+
// stop-color: $end;
|
76
|
+
// }
|
77
|
+
// stop:nth-child(2) {
|
78
|
+
// stop-color: $start;
|
79
|
+
// }
|
80
|
+
// }
|
81
|
+
}
|
@@ -1,15 +1,15 @@
|
|
1
1
|
/* ========================================================================== *
|
2
|
-
*
|
2
|
+
* Global module
|
3
3
|
* -------------------------------------------------------------------------- */
|
4
4
|
|
5
5
|
/* ===================================== *
|
6
|
-
*
|
6
|
+
* Color
|
7
7
|
* ------------------------------------- */
|
8
8
|
|
9
9
|
@import 'color';
|
10
10
|
|
11
11
|
/* ===================================== *
|
12
|
-
*
|
12
|
+
* Fonts
|
13
13
|
* ------------------------------------- */
|
14
14
|
|
15
15
|
// Cap height declaration
|
@@ -107,14 +107,14 @@ $amp-font: Baskerville, Palatino, 'Book Antiqua', serif;
|
|
107
107
|
$mono-font: 'Nitti', Consolas, 'Liberation Mono', Menlo, Courier, monospace;
|
108
108
|
|
109
109
|
/* ===================================== *
|
110
|
-
*
|
110
|
+
* Animations
|
111
111
|
* ------------------------------------- */
|
112
112
|
|
113
113
|
// Transition duration
|
114
114
|
$duration: .2s;
|
115
115
|
|
116
116
|
/* ===================================== *
|
117
|
-
*
|
117
|
+
* Layout
|
118
118
|
* ------------------------------------- */
|
119
119
|
|
120
120
|
// Border radius
|
@@ -126,6 +126,9 @@ $header-height: vr(6); // 90px
|
|
126
126
|
// Universal padding unit
|
127
127
|
$content-padding: vr(2); // 30px
|
128
128
|
|
129
|
+
// Site Width
|
130
|
+
$site-width: 1100px;
|
131
|
+
|
129
132
|
// Angle
|
130
133
|
|
131
134
|
$deg: 30deg;
|
@@ -174,27 +177,34 @@ $deg: 30deg;
|
|
174
177
|
}
|
175
178
|
}
|
176
179
|
|
180
|
+
// Center an element to the viewport regardless of nesting
|
181
|
+
@mixin center-to-viewport {
|
182
|
+
margin-left: calc(-50vw + 50%);
|
183
|
+
transform: translateX(calc(50vw - 50%));
|
184
|
+
}
|
185
|
+
|
177
186
|
// Modules with max-width and padding
|
178
|
-
@mixin padded-module($width: 1100px, $padding: $content-padding, $
|
179
|
-
|
180
|
-
|
187
|
+
@mixin padded-module($width: 1100px, $padding: $content-padding, $overflow: false, $offset: null) {
|
188
|
+
$half-width: if($overflow, 50vw, 50%);
|
189
|
+
$margin: if($offset, calc(-50vw + 50% + #{$offset / 2}), calc(-50vw + 50%));
|
190
|
+
$transform: if($offset, translateX(calc(50vw - 50% - #{$offset})), translateX(calc(50vw - 50%)));
|
181
191
|
|
182
|
-
|
192
|
+
// Overflows container and center
|
193
|
+
@if $overflow {
|
183
194
|
width: 100vw;
|
195
|
+
margin-left: $margin;
|
196
|
+
transform: $transform;
|
184
197
|
}
|
185
198
|
|
199
|
+
padding-left: calc(#{$half-width} - #{$width / 2});
|
200
|
+
padding-right: calc(#{$half-width} - #{$width / 2});
|
201
|
+
|
186
202
|
@media (max-width: $width + $padding * 2) {
|
187
203
|
padding-left: $padding;
|
188
204
|
padding-right: $padding;
|
189
205
|
}
|
190
206
|
}
|
191
207
|
|
192
|
-
// Center an element to the viewport regardless of nesting
|
193
|
-
@mixin center-to-viewport {
|
194
|
-
margin-left: calc(-50vw + 50%);
|
195
|
-
transform: translateX(calc(50vw - 50%));
|
196
|
-
}
|
197
|
-
|
198
208
|
// Width-agnostic module backgrounds
|
199
209
|
@mixin cover-background($background: transparent, $offset: null) {
|
200
210
|
&,
|
@@ -222,7 +232,7 @@ $deg: 30deg;
|
|
222
232
|
}
|
223
233
|
|
224
234
|
/* ===================================== *
|
225
|
-
*
|
235
|
+
* Context
|
226
236
|
* ------------------------------------- */
|
227
237
|
|
228
238
|
// Normal link state mixin
|
@@ -273,26 +283,22 @@ $deg: 30deg;
|
|
273
283
|
}
|
274
284
|
|
275
285
|
/* ===================================== *
|
276
|
-
*
|
286
|
+
* Visibility
|
277
287
|
* ------------------------------------- */
|
278
288
|
|
279
289
|
// Visually hidden mixin
|
280
290
|
@mixin hidden() {
|
281
|
-
|
282
|
-
top: -9999px;
|
283
|
-
left: -9999px;
|
291
|
+
display: none !important;
|
284
292
|
}
|
285
293
|
|
286
294
|
// Visually hidden placeholder
|
287
|
-
%hidden {
|
295
|
+
.hidden, %hidden {
|
288
296
|
@include hidden;
|
289
297
|
}
|
290
298
|
|
291
299
|
// Visually shown mixin
|
292
300
|
@mixin shown() {
|
293
|
-
|
294
|
-
top: initial;
|
295
|
-
left: initial;
|
301
|
+
display: initial;
|
296
302
|
}
|
297
303
|
|
298
304
|
// Visually shown placeholder
|
@@ -9,6 +9,7 @@
|
|
9
9
|
// Display breakpoints
|
10
10
|
$breakpoint-xlg: 1500px;
|
11
11
|
$breakpoint-lg: 1100px;
|
12
|
+
$breakpoint-med: 950px;
|
12
13
|
$breakpoint: 800px;
|
13
14
|
$breakpoint-sm: 550px;
|
14
15
|
$breakpoint-xsm: 400px;
|
@@ -19,7 +20,7 @@ $grid-no-gutter: 0;
|
|
19
20
|
$grid-small-gutter: vr(2); // 30px
|
20
21
|
$grid-large-gutter: vr(4); // 60px
|
21
22
|
|
22
|
-
|
23
|
+
// Grid init mixin (use on parent elements)
|
23
24
|
@mixin grid($direction: row) {
|
24
25
|
display: flex;
|
25
26
|
flex: 0 1 auto;
|
@@ -28,16 +29,22 @@ $grid-large-gutter: vr(4); // 60px
|
|
28
29
|
}
|
29
30
|
|
30
31
|
// Grid gutter mixin (use on parent elements)
|
31
|
-
@mixin gutter($amount: 0) {
|
32
|
-
|
33
|
-
|
34
|
-
|
32
|
+
@mixin gutter($amount: 0, $both: off) {
|
33
|
+
margin-left: $amount * -.5;
|
34
|
+
margin-right: $amount * -.5;
|
35
|
+
|
36
|
+
@if $both == on {
|
37
|
+
margin-top: -$amount;
|
38
|
+
}
|
35
39
|
|
36
40
|
> * {
|
37
|
-
margin-bottom: 0;
|
38
|
-
margin-top: $amount;
|
39
41
|
padding-left: $amount * .5;
|
40
42
|
padding-right: $amount * .5;
|
43
|
+
|
44
|
+
@if $both == on {
|
45
|
+
margin-bottom: 0;
|
46
|
+
margin-top: $amount;
|
47
|
+
}
|
41
48
|
}
|
42
49
|
}
|
43
50
|
|
@@ -78,17 +85,13 @@ $grid-large-gutter: vr(4); // 60px
|
|
78
85
|
@mixin span($cols: auto, $breakpoint: auto) {
|
79
86
|
|
80
87
|
// Universal styles
|
81
|
-
display: flex;
|
82
|
-
flex-flow: column nowrap;
|
83
|
-
align-items: flex-start;
|
84
|
-
// justify-content: center;
|
85
88
|
flex: 0 0 auto;
|
86
89
|
max-width: inherit;
|
87
90
|
|
88
91
|
// Full width
|
89
92
|
@if $cols == auto {
|
90
93
|
flex-grow: 1;
|
91
|
-
flex-basis:
|
94
|
+
flex-basis: 100%;
|
92
95
|
width: 100%;
|
93
96
|
}
|
94
97
|
|
@@ -127,19 +130,39 @@ $grid-large-gutter: vr(4); // 60px
|
|
127
130
|
|
128
131
|
&.small-gutter {
|
129
132
|
@include gutter($grid-small-gutter);
|
133
|
+
|
134
|
+
&-all {
|
135
|
+
@include gutter($grid-small-gutter, on);
|
136
|
+
}
|
130
137
|
}
|
131
138
|
|
132
139
|
&.large-gutter {
|
133
140
|
@include gutter($grid-large-gutter);
|
141
|
+
|
142
|
+
&-all {
|
143
|
+
@include gutter($grid-large-gutter, on);
|
144
|
+
}
|
145
|
+
}
|
146
|
+
|
147
|
+
&.v-center {
|
148
|
+
align-items: center;
|
134
149
|
}
|
135
150
|
}
|
136
151
|
|
137
|
-
$cell-sizes: (1:one, 2:two, 3:three, 4:four, 5:five, 6:six);
|
152
|
+
$cell-sizes: (1:one, 2:two, 3:three, 4:four, 5:five, 6:six, 7:seven);
|
138
153
|
|
139
154
|
@mixin grid-cell($num) {
|
140
155
|
@for $i from 1 through length($cell-sizes) {
|
141
156
|
.#{map-get($cell-sizes, $i)}-of-#{map-get($cell-sizes, $num)} {
|
142
|
-
@include span($i of $num);
|
157
|
+
@include span($i of $num, $breakpoint);
|
158
|
+
|
159
|
+
@media (max-width: $breakpoint) {
|
160
|
+
@include span(1 of 1);
|
161
|
+
|
162
|
+
// &.spacer {
|
163
|
+
// margin-bottom: vr(2);
|
164
|
+
// }
|
165
|
+
}
|
143
166
|
}
|
144
167
|
}
|
145
168
|
}
|
@@ -148,4 +171,118 @@ $cell-sizes: (1:one, 2:two, 3:three, 4:four, 5:five, 6:six);
|
|
148
171
|
@include grid-cell(3);
|
149
172
|
@include grid-cell(4);
|
150
173
|
@include grid-cell(5);
|
151
|
-
@include grid-cell(6);
|
174
|
+
@include grid-cell(6);
|
175
|
+
@include grid-cell(7);
|
176
|
+
|
177
|
+
|
178
|
+
|
179
|
+
|
180
|
+
|
181
|
+
/* ========================================================================== *
|
182
|
+
* b. Grid module
|
183
|
+
* -------------------------------------------------------------------------- */
|
184
|
+
|
185
|
+
/* ===================================== *
|
186
|
+
* i. Utilities
|
187
|
+
* ------------------------------------- */
|
188
|
+
|
189
|
+
// // Grid init mixin (use on parent elements)
|
190
|
+
// @mixin grid($direction: row) {
|
191
|
+
// display: flex;
|
192
|
+
// flex: 0 1 auto;
|
193
|
+
// flex-wrap: wrap;
|
194
|
+
// flex-direction: $direction;
|
195
|
+
// }
|
196
|
+
|
197
|
+
// // Grid gutter mixin (use on parent elements)
|
198
|
+
// @mixin gutter($amount: 0, $both: off) {
|
199
|
+
// margin-left: $amount * -.5;
|
200
|
+
// margin-right: $amount * -.5;
|
201
|
+
|
202
|
+
// @if $both == on {
|
203
|
+
// margin-top: -$amount;
|
204
|
+
// }
|
205
|
+
|
206
|
+
// > * {
|
207
|
+
// padding-left: $amount * .5;
|
208
|
+
// padding-right: $amount * .5;
|
209
|
+
|
210
|
+
// @if $both == on {
|
211
|
+
// margin-bottom: 0;
|
212
|
+
// margin-top: $amount;
|
213
|
+
// }
|
214
|
+
// }
|
215
|
+
// }
|
216
|
+
|
217
|
+
// // Grid alignment mixin (use on parent elements)
|
218
|
+
// @mixin align($x-axis: left, $y-axis: top) {
|
219
|
+
|
220
|
+
// // Map horizontal params
|
221
|
+
// $horizontal: (
|
222
|
+
// left: flex-start,
|
223
|
+
// center: center,
|
224
|
+
// right: flex-end
|
225
|
+
// );
|
226
|
+
|
227
|
+
// // Map vertical params
|
228
|
+
// $vertical: (
|
229
|
+
// top: flex-start,
|
230
|
+
// middle: center,
|
231
|
+
// bottom: flex-end
|
232
|
+
// );
|
233
|
+
|
234
|
+
// // Assign appropriate horizontal property
|
235
|
+
// @if map-has-key($horizontal, $x-axis) {
|
236
|
+
// justify-content: map-get($horizontal, $x-axis);
|
237
|
+
// }
|
238
|
+
|
239
|
+
// // Assign appropriate vertical property
|
240
|
+
// @if map-has-key($vertical, $y-axis) {
|
241
|
+
// align-items: map-get($vertical, $y-axis);
|
242
|
+
// }
|
243
|
+
// }
|
244
|
+
|
245
|
+
// // Column span function (use for the maths)
|
246
|
+
// @function span($cols) {
|
247
|
+
// @return nth($cols, 1) / nth($cols, 3) * 100%;
|
248
|
+
// }
|
249
|
+
|
250
|
+
// // Column span mixin (use on child elements)
|
251
|
+
// @mixin span($cols: auto, $breakpoint: 34em) {
|
252
|
+
|
253
|
+
// // Universal styles
|
254
|
+
// flex: 0 0 auto;
|
255
|
+
// max-width: inherit;
|
256
|
+
|
257
|
+
// // Full width
|
258
|
+
// @if $cols == auto {
|
259
|
+
// flex-grow: 1;
|
260
|
+
// flex-basis: 0;
|
261
|
+
// width: 100%;
|
262
|
+
// }
|
263
|
+
|
264
|
+
// // 1 - 8 of 8 columns
|
265
|
+
// @elseif length($cols) > 1 {
|
266
|
+
// flex-basis: span($cols);
|
267
|
+
// width: span($cols);
|
268
|
+
// }
|
269
|
+
|
270
|
+
// // Explicit column width
|
271
|
+
// @else {
|
272
|
+
// flex-basis: $cols;
|
273
|
+
// width: $cols;
|
274
|
+
// }
|
275
|
+
|
276
|
+
// // Stack cells at breakpoint
|
277
|
+
// @media (max-width: $breakpoint) {
|
278
|
+
// flex-basis: 100%;
|
279
|
+
// width: auto;
|
280
|
+
// max-width: unset;
|
281
|
+
// margin-left: 0;
|
282
|
+
// }
|
283
|
+
// }
|
284
|
+
|
285
|
+
// // Column offset mixin (use on child elements)
|
286
|
+
// @mixin offset($offset: 1) {
|
287
|
+
// margin-left: span($offset);
|
288
|
+
// }
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<svg viewBox="0 0 37.8 34.6">
|
2
|
+
<g fill="url(#azure)" opacity="0.5">
|
3
|
+
<polygon points="20.3,21.3 18.5,20.5 18.5,9 20.7,9 20.7,18.3 25.3,14.9 26.6,16.6 "/>
|
4
|
+
</g>
|
5
|
+
<path fill="url(#azure)" d="M37.3,13.2c-1.1-4.5-3.9-8.3-7.8-10.7c-3.9-2.4-8.6-3.1-13.1-2C12,1.6,8.2,4.4,5.8,8.3l0,0
|
6
|
+
c-1.6,2.6-2.5,5.6-2.5,8.9H0l3,5.4l3,5.3l3-5.3l3.1-5.4H8.7c0-2.3,0.7-4.5,1.9-6.3c1.6-2.5,4.1-4.3,7.1-5.1c3.1-0.8,6.2-0.3,8.9,1.4
|
7
|
+
c2.7,1.6,4.6,4.2,5.4,7.3c0.8,3.1,0.3,6.2-1.4,8.9c-3.4,5.6-10.7,7.4-16.2,4l-2.8,4.7c2.8,1.7,5.9,2.5,8.9,2.5
|
8
|
+
c5.9,0,11.6-3,14.8-8.3C37.7,22.3,38.4,17.6,37.3,13.2z"/>
|
9
|
+
</svg>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<svg viewBox="0 0 29.9 34.6">
|
2
|
+
|
3
|
+
<polygon fill="url(#azure)" points="29.9,25.9 15,34.6 0,25.9 0,8.6 15,17.3 29.9,8.6 "/>
|
4
|
+
<polygon fill="url(#azure)" opacity="0.5" points="0,8.6 15,17.3 29.9,8.6 15,0 "/>
|
5
|
+
<path fill="url(#azure)" d="M19.7,7.5c-2.6,1.5-6.8,1.5-9.4,0C9,6.8,8.4,5.8,8.4,4.8v3.8c0,1,0.6,2,1.9,2.7
|
6
|
+
c2.6,1.5,6.8,1.5,9.4,0c1.3-0.7,1.9-1.7,1.9-2.7V4.8C21.6,5.8,20.9,6.8,19.7,7.5z"/>
|
7
|
+
</svg>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<svg fill="currentColor" viewBox="0 0 210 120" width="50" height="29">
|
2
|
+
<path d="M158.1 23.1h-.1l-38.8-22.6-38.3 22.3-39.3-22.8-41.6 24.2v44l80.3 46.8 38.4-22.2 39.4 22.8 41.9-24.2v-44l-41.9-24.3zm-.2 45.1l-32.9-19.1 33.2-19.4 32.9 19.3-33.2 19.2zm-77.9-38.8l33.2 19.2-32.8 19.1-33.1-19.3 32.7-19zm72.2-3l-32.5 18.9-33.1-19.2 32.6-19 33 19.3zm-77.5-.6l-6.7 3.9-27.1 15.3-32.3-19.2 33.1-19.2 33 19.2zm-68.9 4.8l32.5 19.6v34.6l-32.5-19.8v-34.4zm39 23l32.5 19.3v34.5l-32.5-19.3v-34.5zm77.3.4l33.1 19.5v34.2l-33.1-19.7v-34z"/>
|
3
|
+
<g opacity=".5">
|
4
|
+
<polygon points="44.8,88.2 77.3,107.3 77.3,72.9 44.8,53.6"/>
|
5
|
+
<polygon points="5.8,64.9 38.3,84.7 38.3,50.2 5.8,30.6"/>
|
6
|
+
<polygon points="122.1,88.1 155.2,107.8 155.2,73.5 122.1,54"/>
|
7
|
+
</g>
|
8
|
+
</svg>
|