jekyll-theme-basically-basic 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/CHANGELOG.md +19 -0
- data/LICENSE.md +21 -0
- data/README.md +582 -0
- data/_includes/author +31 -0
- data/_includes/contact-list.html +27 -0
- data/_includes/cv/awards.html +24 -0
- data/_includes/cv/basics.html +69 -0
- data/_includes/cv/education.html +36 -0
- data/_includes/cv/interests.html +20 -0
- data/_includes/cv/intro.html +18 -0
- data/_includes/cv/languages.html +20 -0
- data/_includes/cv/publications.html +30 -0
- data/_includes/cv/references.html +24 -0
- data/_includes/cv/skills.html +20 -0
- data/_includes/cv/volunteer.html +46 -0
- data/_includes/cv/work.html +46 -0
- data/_includes/disqus_comments.html +17 -0
- data/_includes/entry.html +29 -0
- data/_includes/footer.html +9 -0
- data/_includes/google-analytics.html +9 -0
- data/_includes/head-feed.html +1 -0
- data/_includes/head-seo.html +1 -0
- data/_includes/head.html +35 -0
- data/_includes/icon-arrow-left.svg +1 -0
- data/_includes/icon-arrow-right.svg +1 -0
- data/_includes/icon-bitbucket.html +4 -0
- data/_includes/icon-bitbucket.svg +1 -0
- data/_includes/icon-calendar.svg +1 -0
- data/_includes/icon-codepen.html +4 -0
- data/_includes/icon-codepen.svg +1 -0
- data/_includes/icon-download.svg +1 -0
- data/_includes/icon-dribbble.html +4 -0
- data/_includes/icon-dribbble.svg +1 -0
- data/_includes/icon-email.svg +1 -0
- data/_includes/icon-facebook.html +4 -0
- data/_includes/icon-facebook.svg +1 -0
- data/_includes/icon-flickr.html +4 -0
- data/_includes/icon-flickr.svg +1 -0
- data/_includes/icon-github.html +4 -0
- data/_includes/icon-github.svg +1 -0
- data/_includes/icon-gitlab.html +4 -0
- data/_includes/icon-gitlab.svg +1 -0
- data/_includes/icon-googleplus.html +4 -0
- data/_includes/icon-googleplus.svg +1 -0
- data/_includes/icon-instagram.html +4 -0
- data/_includes/icon-instagram.svg +1 -0
- data/_includes/icon-lastfm.html +4 -0
- data/_includes/icon-lastfm.svg +1 -0
- data/_includes/icon-linkedin.html +4 -0
- data/_includes/icon-linkedin.svg +1 -0
- data/_includes/icon-pdf.svg +1 -0
- data/_includes/icon-pinterest.html +4 -0
- data/_includes/icon-pinterest.svg +1 -0
- data/_includes/icon-rss.svg +1 -0
- data/_includes/icon-soundcloud.html +4 -0
- data/_includes/icon-soundcloud.svg +1 -0
- data/_includes/icon-stackoverflow.html +4 -0
- data/_includes/icon-stackoverflow.svg +1 -0
- data/_includes/icon-stopwatch.svg +1 -0
- data/_includes/icon-tumblr.html +4 -0
- data/_includes/icon-tumblr.svg +1 -0
- data/_includes/icon-twitter.html +4 -0
- data/_includes/icon-twitter.svg +1 -0
- data/_includes/icon-xing.html +4 -0
- data/_includes/icon-xing.svg +1 -0
- data/_includes/icon-youtube.html +4 -0
- data/_includes/icon-youtube.svg +1 -0
- data/_includes/masthead.html +27 -0
- data/_includes/navigation.html +25 -0
- data/_includes/page-intro.html +42 -0
- data/_includes/posts-all.html +3 -0
- data/_includes/posts-paginated.html +16 -0
- data/_includes/read-time.html +13 -0
- data/_includes/scripts.html +5 -0
- data/_includes/skip-links.html +8 -0
- data/_layouts/about.html +21 -0
- data/_layouts/cv.html +28 -0
- data/_layouts/default.html +38 -0
- data/_layouts/home.html +30 -0
- data/_layouts/page.html +17 -0
- data/_layouts/post.html +20 -0
- data/_sass/basically-basic.scss +37 -0
- data/_sass/basically-basic/_base.scss +110 -0
- data/_sass/basically-basic/_buttons.scss +39 -0
- data/_sass/basically-basic/_contact-lists.scss +11 -0
- data/_sass/basically-basic/_entries.scss +155 -0
- data/_sass/basically-basic/_footer.scss +13 -0
- data/_sass/basically-basic/_global.scss +36 -0
- data/_sass/basically-basic/_icons.scss +43 -0
- data/_sass/basically-basic/_intro.scss +65 -0
- data/_sass/basically-basic/_layout.scss +178 -0
- data/_sass/basically-basic/_mixins.scss +7 -0
- data/_sass/basically-basic/_navicons.scss +144 -0
- data/_sass/basically-basic/_navigation.scss +51 -0
- data/_sass/basically-basic/_reset.scss +522 -0
- data/_sass/basically-basic/_sidebar.scss +177 -0
- data/_sass/basically-basic/_syntax-highlighting.scss +127 -0
- data/_sass/basically-basic/_tables.scss +42 -0
- data/_sass/basically-basic/_utilities.scss +5 -0
- data/_sass/basically-basic/_variables.scss +84 -0
- data/_sass/basically-basic/mixins/_clearfix.scss +11 -0
- data/_sass/basically-basic/mixins/_color.scss +21 -0
- data/_sass/basically-basic/mixins/_float.scss +15 -0
- data/_sass/basically-basic/mixins/_fluid-type.scss +33 -0
- data/_sass/basically-basic/mixins/_image.scss +38 -0
- data/_sass/basically-basic/mixins/_lists.scss +9 -0
- data/_sass/basically-basic/mixins/_text-truncate.scss +10 -0
- data/_sass/basically-basic/themes/_default.scss +5 -0
- data/_sass/basically-basic/themes/_night.scss +12 -0
- data/_sass/basically-basic/themes/_plum.scss +12 -0
- data/_sass/basically-basic/themes/_sea.scss +12 -0
- data/_sass/basically-basic/themes/_soft.scss +12 -0
- data/_sass/basically-basic/themes/_steel.scss +12 -0
- data/_sass/basically-basic/utilities/_accessibility.scss +54 -0
- data/_sass/basically-basic/utilities/_align.scss +64 -0
- data/_sass/basically-basic/utilities/_clearfix.scss +7 -0
- data/_sass/basically-basic/utilities/_float.scss +7 -0
- data/_sass/basically-basic/utilities/_text.scss +28 -0
- data/_sass/basically-basic/vendor/_breakpoint.scss +114 -0
- data/_sass/basically-basic/vendor/_su.scss +4 -0
- data/_sass/basically-basic/vendor/_susy.scss +4 -0
- data/_sass/basically-basic/vendor/_susyone.scss +4 -0
- data/_sass/basically-basic/vendor/breakpoint/_context.scss +95 -0
- data/_sass/basically-basic/vendor/breakpoint/_helpers.scss +151 -0
- data/_sass/basically-basic/vendor/breakpoint/_legacy-settings.scss +50 -0
- data/_sass/basically-basic/vendor/breakpoint/_no-query.scss +15 -0
- data/_sass/basically-basic/vendor/breakpoint/_parsers.scss +215 -0
- data/_sass/basically-basic/vendor/breakpoint/_respond-to.scss +82 -0
- data/_sass/basically-basic/vendor/breakpoint/_settings.scss +71 -0
- data/_sass/basically-basic/vendor/breakpoint/parsers/_double.scss +33 -0
- data/_sass/basically-basic/vendor/breakpoint/parsers/_query.scss +82 -0
- data/_sass/basically-basic/vendor/breakpoint/parsers/_resolution.scss +31 -0
- data/_sass/basically-basic/vendor/breakpoint/parsers/_single.scss +26 -0
- data/_sass/basically-basic/vendor/breakpoint/parsers/_triple.scss +36 -0
- data/_sass/basically-basic/vendor/breakpoint/parsers/double/_default-pair.scss +21 -0
- data/_sass/basically-basic/vendor/breakpoint/parsers/double/_default.scss +22 -0
- data/_sass/basically-basic/vendor/breakpoint/parsers/double/_double-string.scss +22 -0
- data/_sass/basically-basic/vendor/breakpoint/parsers/resolution/_resolution.scss +60 -0
- data/_sass/basically-basic/vendor/breakpoint/parsers/single/_default.scss +13 -0
- data/_sass/basically-basic/vendor/breakpoint/parsers/triple/_default.scss +18 -0
- data/_sass/basically-basic/vendor/susy/_su.scss +7 -0
- data/_sass/basically-basic/vendor/susy/language/_susy.scss +24 -0
- data/_sass/basically-basic/vendor/susy/language/_susyone.scss +13 -0
- data/_sass/basically-basic/vendor/susy/language/susy/_background.scss +385 -0
- data/_sass/basically-basic/vendor/susy/language/susy/_bleed.scss +200 -0
- data/_sass/basically-basic/vendor/susy/language/susy/_box-sizing.scss +47 -0
- data/_sass/basically-basic/vendor/susy/language/susy/_breakpoint-plugin.scss +185 -0
- data/_sass/basically-basic/vendor/susy/language/susy/_container.scss +81 -0
- data/_sass/basically-basic/vendor/susy/language/susy/_context.scss +36 -0
- data/_sass/basically-basic/vendor/susy/language/susy/_gallery.scss +94 -0
- data/_sass/basically-basic/vendor/susy/language/susy/_grids.scss +64 -0
- data/_sass/basically-basic/vendor/susy/language/susy/_gutters.scss +154 -0
- data/_sass/basically-basic/vendor/susy/language/susy/_isolate.scss +77 -0
- data/_sass/basically-basic/vendor/susy/language/susy/_margins.scss +94 -0
- data/_sass/basically-basic/vendor/susy/language/susy/_padding.scss +74 -0
- data/_sass/basically-basic/vendor/susy/language/susy/_rows.scss +138 -0
- data/_sass/basically-basic/vendor/susy/language/susy/_settings.scss +216 -0
- data/_sass/basically-basic/vendor/susy/language/susy/_span.scss +163 -0
- data/_sass/basically-basic/vendor/susy/language/susy/_validation.scss +16 -0
- data/_sass/basically-basic/vendor/susy/language/susyone/_background.scss +18 -0
- data/_sass/basically-basic/vendor/susy/language/susyone/_functions.scss +377 -0
- data/_sass/basically-basic/vendor/susy/language/susyone/_grid.scss +312 -0
- data/_sass/basically-basic/vendor/susy/language/susyone/_isolation.scss +51 -0
- data/_sass/basically-basic/vendor/susy/language/susyone/_margin.scss +93 -0
- data/_sass/basically-basic/vendor/susy/language/susyone/_media.scss +105 -0
- data/_sass/basically-basic/vendor/susy/language/susyone/_padding.scss +92 -0
- data/_sass/basically-basic/vendor/susy/language/susyone/_settings.scss +60 -0
- data/_sass/basically-basic/vendor/susy/output/_float.scss +9 -0
- data/_sass/basically-basic/vendor/susy/output/_shared.scss +15 -0
- data/_sass/basically-basic/vendor/susy/output/_support.scss +9 -0
- data/_sass/basically-basic/vendor/susy/output/float/_container.scss +16 -0
- data/_sass/basically-basic/vendor/susy/output/float/_end.scss +40 -0
- data/_sass/basically-basic/vendor/susy/output/float/_isolate.scss +22 -0
- data/_sass/basically-basic/vendor/susy/output/float/_span.scss +35 -0
- data/_sass/basically-basic/vendor/susy/output/shared/_background.scss +26 -0
- data/_sass/basically-basic/vendor/susy/output/shared/_container.scss +21 -0
- data/_sass/basically-basic/vendor/susy/output/shared/_direction.scss +42 -0
- data/_sass/basically-basic/vendor/susy/output/shared/_inspect.scss +25 -0
- data/_sass/basically-basic/vendor/susy/output/shared/_margins.scss +23 -0
- data/_sass/basically-basic/vendor/susy/output/shared/_output.scss +14 -0
- data/_sass/basically-basic/vendor/susy/output/shared/_padding.scss +23 -0
- data/_sass/basically-basic/vendor/susy/output/support/_background.scss +58 -0
- data/_sass/basically-basic/vendor/susy/output/support/_box-sizing.scss +19 -0
- data/_sass/basically-basic/vendor/susy/output/support/_clearfix.scss +18 -0
- data/_sass/basically-basic/vendor/susy/output/support/_prefix.scss +19 -0
- data/_sass/basically-basic/vendor/susy/output/support/_rem.scss +22 -0
- data/_sass/basically-basic/vendor/susy/output/support/_support.scss +85 -0
- data/_sass/basically-basic/vendor/susy/su/_grid.scss +103 -0
- data/_sass/basically-basic/vendor/susy/su/_settings.scss +73 -0
- data/_sass/basically-basic/vendor/susy/su/_utilities.scss +111 -0
- data/_sass/basically-basic/vendor/susy/su/_validation.scss +57 -0
- data/assets/javascripts/main.js +57 -0
- data/assets/stylesheets/main.scss +10 -0
- metadata +335 -0
@@ -0,0 +1,95 @@
|
|
1
|
+
//////////////////////////////
|
2
|
+
// Private Breakpoint Variables
|
3
|
+
//////////////////////////////
|
4
|
+
$private-breakpoint-context-holder: ();
|
5
|
+
$private-breakpoint-query-count: 0 !default;
|
6
|
+
|
7
|
+
//////////////////////////////
|
8
|
+
// Breakpoint Has Context
|
9
|
+
// Returns whether or not you are inside a Breakpoint query
|
10
|
+
//////////////////////////////
|
11
|
+
@function breakpoint-has-context() {
|
12
|
+
@if length($private-breakpoint-query-count) {
|
13
|
+
@return true;
|
14
|
+
}
|
15
|
+
@else {
|
16
|
+
@return false;
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
//////////////////////////////
|
21
|
+
// Breakpoint Get Context
|
22
|
+
// $feature: Input feature to get it's current MQ context. Returns false if no context
|
23
|
+
//////////////////////////////
|
24
|
+
@function breakpoint-get-context($feature) {
|
25
|
+
@if map-has-key($private-breakpoint-context-holder, $feature) {
|
26
|
+
$get: map-get($private-breakpoint-context-holder, $feature);
|
27
|
+
// Special handling of no-query from get side so /false/ prepends aren't returned
|
28
|
+
@if $feature == 'no-query' {
|
29
|
+
@if type-of($get) == 'list' and length($get) > 1 and nth($get, 1) == false {
|
30
|
+
$get: nth($get, length($get));
|
31
|
+
}
|
32
|
+
}
|
33
|
+
@return $get;
|
34
|
+
}
|
35
|
+
@else {
|
36
|
+
@if breakpoint-has-context() and $feature == 'media' {
|
37
|
+
@return breakpoint-get('default media');
|
38
|
+
}
|
39
|
+
@else {
|
40
|
+
@return false;
|
41
|
+
}
|
42
|
+
}
|
43
|
+
}
|
44
|
+
|
45
|
+
//////////////////////////////
|
46
|
+
// Private function to set context
|
47
|
+
//////////////////////////////
|
48
|
+
@function private-breakpoint-set-context($feature, $value) {
|
49
|
+
@if $value == 'monochrome' {
|
50
|
+
$feature: 'monochrome';
|
51
|
+
}
|
52
|
+
|
53
|
+
$current: map-get($private-breakpoint-context-holder, $feature);
|
54
|
+
@if $current and length($current) == $private-breakpoint-query-count {
|
55
|
+
@warn "You have already queried against `#{$feature}`. Unexpected things may happen if you query against the same feature more than once in the same `and` query. Breakpoint is overwriting the current context with `#{$value}`";
|
56
|
+
}
|
57
|
+
|
58
|
+
@if not map-has-key($private-breakpoint-context-holder, $feature) {
|
59
|
+
$v-holder: ();
|
60
|
+
@for $i from 1 to $private-breakpoint-query-count {
|
61
|
+
@if $feature == 'media' {
|
62
|
+
$v-holder: append($v-holder, breakpoint-get('default media'));
|
63
|
+
}
|
64
|
+
@else {
|
65
|
+
$v-holder: append($v-holder, false);
|
66
|
+
}
|
67
|
+
}
|
68
|
+
$v-holder: append($v-holder, $value);
|
69
|
+
$private-breakpoint-context-holder: map-merge($private-breakpoint-context-holder, ($feature: $v-holder)) !global;
|
70
|
+
}
|
71
|
+
@else {
|
72
|
+
$v-holder: map-get($private-breakpoint-context-holder, $feature);
|
73
|
+
$length: length($v-holder);
|
74
|
+
@for $i from $length to $private-breakpoint-query-count - 1 {
|
75
|
+
@if $feature == 'media' {
|
76
|
+
$v-holder: append($v-holder, breakpoint-get('default media'));
|
77
|
+
}
|
78
|
+
@else {
|
79
|
+
$v-holder: append($v-holder, false);
|
80
|
+
}
|
81
|
+
}
|
82
|
+
$v-holder: append($v-holder, $value);
|
83
|
+
$private-breakpoint-context-holder: map-merge($private-breakpoint-context-holder, ($feature: $v-holder)) !global;
|
84
|
+
}
|
85
|
+
|
86
|
+
@return true;
|
87
|
+
}
|
88
|
+
|
89
|
+
//////////////////////////////
|
90
|
+
// Private function to reset context
|
91
|
+
//////////////////////////////
|
92
|
+
@mixin private-breakpoint-reset-contexts {
|
93
|
+
$private-breakpoint-context-holder: () !global;
|
94
|
+
$private-breakpoint-query-count: 0 !global;
|
95
|
+
}
|
@@ -0,0 +1,151 @@
|
|
1
|
+
//////////////////////////////
|
2
|
+
// Converts the input value to Base EMs
|
3
|
+
//////////////////////////////
|
4
|
+
@function breakpoint-to-base-em($value) {
|
5
|
+
$value-unit: unit($value);
|
6
|
+
|
7
|
+
// Will convert relative EMs into root EMs.
|
8
|
+
@if breakpoint-get('base font size') and type-of(breakpoint-get('base font size')) == 'number' and $value-unit == 'em' {
|
9
|
+
$base-unit: unit(breakpoint-get('base font size'));
|
10
|
+
|
11
|
+
@if $base-unit == 'px' or $base-unit == '%' or $base-unit == 'em' or $base-unit == 'pt' {
|
12
|
+
@return base-conversion($value) / base-conversion(breakpoint-get('base font size')) * 1em;
|
13
|
+
}
|
14
|
+
@else {
|
15
|
+
@warn '#{breakpoint-get(\'base font size\')} is not set in valid units for font size!';
|
16
|
+
@return false;
|
17
|
+
}
|
18
|
+
}
|
19
|
+
@else {
|
20
|
+
@return base-conversion($value);
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
24
|
+
@function base-conversion($value) {
|
25
|
+
$unit: unit($value);
|
26
|
+
|
27
|
+
@if $unit == 'px' {
|
28
|
+
@return $value / 16px * 1em;
|
29
|
+
}
|
30
|
+
@else if $unit == '%' {
|
31
|
+
@return $value / 100% * 1em;
|
32
|
+
}
|
33
|
+
@else if $unit == 'em' {
|
34
|
+
@return $value;
|
35
|
+
}
|
36
|
+
@else if $unit == 'pt' {
|
37
|
+
@return $value / 12pt * 1em;
|
38
|
+
}
|
39
|
+
@else {
|
40
|
+
@return $value;
|
41
|
+
// @warn 'Everything is terrible! What have you done?!';
|
42
|
+
}
|
43
|
+
}
|
44
|
+
|
45
|
+
//////////////////////////////
|
46
|
+
// Returns whether the feature can have a min/max pair
|
47
|
+
//////////////////////////////
|
48
|
+
$breakpoint-min-max-features: 'color',
|
49
|
+
'color-index',
|
50
|
+
'aspect-ratio',
|
51
|
+
'device-aspect-ratio',
|
52
|
+
'device-height',
|
53
|
+
'device-width',
|
54
|
+
'height',
|
55
|
+
'monochrome',
|
56
|
+
'resolution',
|
57
|
+
'width';
|
58
|
+
|
59
|
+
@function breakpoint-min-max($feature) {
|
60
|
+
@each $item in $breakpoint-min-max-features {
|
61
|
+
@if $feature == $item {
|
62
|
+
@return true;
|
63
|
+
}
|
64
|
+
}
|
65
|
+
@return false;
|
66
|
+
}
|
67
|
+
|
68
|
+
//////////////////////////////
|
69
|
+
// Returns whether the feature can have a string value
|
70
|
+
//////////////////////////////
|
71
|
+
$breakpoint-string-features: 'orientation',
|
72
|
+
'scan',
|
73
|
+
'color',
|
74
|
+
'aspect-ratio',
|
75
|
+
'device-aspect-ratio',
|
76
|
+
'pointer',
|
77
|
+
'luminosity';
|
78
|
+
|
79
|
+
@function breakpoint-string-value($feature) {
|
80
|
+
@each $item in $breakpoint-string-features {
|
81
|
+
@if breakpoint-min-max($item) {
|
82
|
+
@if $feature == 'min-#{$item}' or $feature == 'max-#{$item}' {
|
83
|
+
@return true;
|
84
|
+
}
|
85
|
+
}
|
86
|
+
@else if $feature == $item {
|
87
|
+
@return true;
|
88
|
+
}
|
89
|
+
}
|
90
|
+
@return false;
|
91
|
+
}
|
92
|
+
|
93
|
+
//////////////////////////////
|
94
|
+
// Returns whether the feature is a media type
|
95
|
+
//////////////////////////////
|
96
|
+
$breakpoint-media-types: 'all',
|
97
|
+
'braille',
|
98
|
+
'embossed',
|
99
|
+
'handheld',
|
100
|
+
'print',
|
101
|
+
'projection',
|
102
|
+
'screen',
|
103
|
+
'speech',
|
104
|
+
'tty',
|
105
|
+
'tv';
|
106
|
+
|
107
|
+
@function breakpoint-is-media($feature) {
|
108
|
+
@each $media in $breakpoint-media-types {
|
109
|
+
@if ($feature == $media) or ($feature == 'not #{$media}') or ($feature == 'only #{$media}') {
|
110
|
+
@return true;
|
111
|
+
}
|
112
|
+
}
|
113
|
+
|
114
|
+
@return false;
|
115
|
+
}
|
116
|
+
|
117
|
+
//////////////////////////////
|
118
|
+
// Returns whether the feature can stand alone
|
119
|
+
//////////////////////////////
|
120
|
+
$breakpoint-single-string-features: 'color',
|
121
|
+
'color-index',
|
122
|
+
'grid',
|
123
|
+
'monochrome';
|
124
|
+
|
125
|
+
@function breakpoint-single-string($feature) {
|
126
|
+
@each $item in $breakpoint-single-string-features {
|
127
|
+
@if $feature == $item {
|
128
|
+
@return true;
|
129
|
+
}
|
130
|
+
}
|
131
|
+
@return false;
|
132
|
+
}
|
133
|
+
|
134
|
+
//////////////////////////////
|
135
|
+
// Returns whether the feature
|
136
|
+
//////////////////////////////
|
137
|
+
@function breakpoint-is-resolution($feature) {
|
138
|
+
$resolutions: 'device-pixel-ratio', 'dpr';
|
139
|
+
|
140
|
+
@if breakpoint-get('transform resolutions') {
|
141
|
+
$resolutions: append($resolutions, 'resolution');
|
142
|
+
}
|
143
|
+
|
144
|
+
@each $reso in $resolutions {
|
145
|
+
@if index($feature, $reso) or index($feature, 'min-#{$reso}') or index($feature, 'max-#{$reso}') {
|
146
|
+
@return true;
|
147
|
+
}
|
148
|
+
}
|
149
|
+
|
150
|
+
@return false;
|
151
|
+
}
|
@@ -0,0 +1,50 @@
|
|
1
|
+
@mixin legacy-settings-warning {
|
2
|
+
$legacyVars: (
|
3
|
+
'default-media': 'default media',
|
4
|
+
'default-feature': 'default feature',
|
5
|
+
'force-media-all': 'force all media type',
|
6
|
+
'to-ems': 'to ems',
|
7
|
+
'resolutions': 'transform resolutions',
|
8
|
+
'no-queries': 'no queries',
|
9
|
+
'no-query-fallbacks': 'no query fallbacks',
|
10
|
+
'base-font-size': 'base font size',
|
11
|
+
'legacy-syntax': 'legacy syntax'
|
12
|
+
);
|
13
|
+
|
14
|
+
@each $legacy, $new in $legacyVars {
|
15
|
+
@if global-variable-exists('breakpoint-' + $legacy) {
|
16
|
+
@warn "In order to avoid variable namspace collisions, we have updated the way to change settings for Breakpoint. Please change all instances of `$breakpoint-#{$legacy}: {{setting}}` to `@include breakpoint-set('#{$new}', {{setting}})`. Variable settings, as well as this warning will be deprecated in a future release."
|
17
|
+
}
|
18
|
+
};
|
19
|
+
|
20
|
+
//////////////////////////////
|
21
|
+
// Hand correct each setting
|
22
|
+
//////////////////////////////
|
23
|
+
@if global-variable-exists('breakpoint-default-media') and $breakpoint-default-media != breakpoint-get('default media') {
|
24
|
+
@include breakpoint-set('default media', $breakpoint-default-media);
|
25
|
+
}
|
26
|
+
@if global-variable-exists('breakpoint-default-feature') and $breakpoint-default-feature != breakpoint-get('default feature') {
|
27
|
+
@include breakpoint-set('default feature', $breakpoint-default-feature);
|
28
|
+
}
|
29
|
+
@if global-variable-exists('breakpoint-force-media-all') and $breakpoint-force-media-all != breakpoint-get('force all media type') {
|
30
|
+
@include breakpoint-set('force all media type', $breakpoint-force-media-all);
|
31
|
+
}
|
32
|
+
@if global-variable-exists('breakpoint-to-ems') and $breakpoint-to-ems != breakpoint-get('to ems') {
|
33
|
+
@include breakpoint-set('to ems', $breakpoint-to-ems);
|
34
|
+
}
|
35
|
+
@if global-variable-exists('breakpoint-resolutions') and $breakpoint-resolutions != breakpoint-get('transform resolutions') {
|
36
|
+
@include breakpoint-set('transform resolutions', $breakpoint-resolutions);
|
37
|
+
}
|
38
|
+
@if global-variable-exists('breakpoint-no-queries') and $breakpoint-no-queries != breakpoint-get('no queries') {
|
39
|
+
@include breakpoint-set('no queries', $breakpoint-no-queries);
|
40
|
+
}
|
41
|
+
@if global-variable-exists('breakpoint-no-query-fallbacks') and $breakpoint-no-query-fallbacks != breakpoint-get('no query fallbacks') {
|
42
|
+
@include breakpoint-set('no query fallbacks', $breakpoint-no-query-fallbacks);
|
43
|
+
}
|
44
|
+
@if global-variable-exists('breakpoint-base-font-size') and $breakpoint-base-font-size != breakpoint-get('base font size') {
|
45
|
+
@include breakpoint-set('base font size', $breakpoint-base-font-size);
|
46
|
+
}
|
47
|
+
@if global-variable-exists('breakpoint-legacy-syntax') and $breakpoint-legacy-syntax != breakpoint-get('legacy syntax') {
|
48
|
+
@include breakpoint-set('legacy syntax', $breakpoint-legacy-syntax);
|
49
|
+
}
|
50
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
@function breakpoint-no-query($query) {
|
2
|
+
@if type-of($query) == 'list' {
|
3
|
+
$keyword: nth($query, 1);
|
4
|
+
|
5
|
+
@if type-of($keyword) == 'string' and ($keyword == 'no-query' or $keyword == 'no query' or $keyword == 'fallback') {
|
6
|
+
@return nth($query, 2);
|
7
|
+
}
|
8
|
+
@else {
|
9
|
+
@return false;
|
10
|
+
}
|
11
|
+
}
|
12
|
+
@else {
|
13
|
+
@return false;
|
14
|
+
}
|
15
|
+
}
|
@@ -0,0 +1,215 @@
|
|
1
|
+
//////////////////////////////
|
2
|
+
// Import Parser Pieces
|
3
|
+
//////////////////////////////
|
4
|
+
@import "parsers/query";
|
5
|
+
@import "parsers/single";
|
6
|
+
@import "parsers/double";
|
7
|
+
@import "parsers/triple";
|
8
|
+
@import "parsers/resolution";
|
9
|
+
|
10
|
+
$Memo-Exists: function-exists(memo-get) and function-exists(memo-set);
|
11
|
+
|
12
|
+
//////////////////////////////
|
13
|
+
// Breakpoint Function
|
14
|
+
//////////////////////////////
|
15
|
+
@function breakpoint($query, $contexts...) {
|
16
|
+
$run: true;
|
17
|
+
$return: ();
|
18
|
+
|
19
|
+
// Grab the Memo Output if Memoization can be a thing
|
20
|
+
@if $Memo-Exists {
|
21
|
+
$return: memo-get(breakpoint, breakpoint $query $contexts);
|
22
|
+
|
23
|
+
@if $return != null {
|
24
|
+
$run: false;
|
25
|
+
}
|
26
|
+
}
|
27
|
+
|
28
|
+
@if not $Memo-Exists or $run {
|
29
|
+
// Internal Variables
|
30
|
+
$query-string: '';
|
31
|
+
$query-fallback: false;
|
32
|
+
$return: ();
|
33
|
+
|
34
|
+
// Reserve Global Private Breakpoint Context
|
35
|
+
$holder-context: $private-breakpoint-context-holder;
|
36
|
+
$holder-query-count: $private-breakpoint-query-count;
|
37
|
+
|
38
|
+
// Reset Global Private Breakpoint Context
|
39
|
+
$private-breakpoint-context-holder: () !global;
|
40
|
+
$private-breakpoint-query-count: 0 !global;
|
41
|
+
|
42
|
+
|
43
|
+
// Test to see if it's a comma-separated list
|
44
|
+
$or-list: if(list-separator($query) == 'comma', true, false);
|
45
|
+
|
46
|
+
|
47
|
+
@if ($or-list == false and breakpoint-get('legacy syntax') == false) {
|
48
|
+
$query-string: breakpoint-parse($query);
|
49
|
+
}
|
50
|
+
@else {
|
51
|
+
$length: length($query);
|
52
|
+
|
53
|
+
$last: nth($query, $length);
|
54
|
+
$query-fallback: breakpoint-no-query($last);
|
55
|
+
|
56
|
+
@if ($query-fallback != false) {
|
57
|
+
$length: $length - 1;
|
58
|
+
}
|
59
|
+
|
60
|
+
@if (breakpoint-get('legacy syntax') == true) {
|
61
|
+
$mq: ();
|
62
|
+
|
63
|
+
@for $i from 1 through $length {
|
64
|
+
$mq: append($mq, nth($query, $i), comma);
|
65
|
+
}
|
66
|
+
|
67
|
+
$query-string: breakpoint-parse($mq);
|
68
|
+
}
|
69
|
+
@else {
|
70
|
+
$query-string: '';
|
71
|
+
@for $i from 1 through $length {
|
72
|
+
$query-string: $query-string + if($i == 1, '', ', ') + breakpoint-parse(nth($query, $i));
|
73
|
+
}
|
74
|
+
}
|
75
|
+
}
|
76
|
+
|
77
|
+
$return: ('query': $query-string,
|
78
|
+
'fallback': $query-fallback,
|
79
|
+
'context holder': $private-breakpoint-context-holder,
|
80
|
+
'query count': $private-breakpoint-query-count
|
81
|
+
);
|
82
|
+
@if length($contexts) > 0 and nth($contexts, 1) != false {
|
83
|
+
@if $query-fallback != false {
|
84
|
+
$context-setter: private-breakpoint-set-context('no-query', $query-fallback);
|
85
|
+
}
|
86
|
+
$context-map: ();
|
87
|
+
@each $context in $contexts {
|
88
|
+
$context-map: map-merge($context-map, ($context: breakpoint-get-context($context)));
|
89
|
+
}
|
90
|
+
$return: map-merge($return, (context: $context-map));
|
91
|
+
}
|
92
|
+
|
93
|
+
// Reset Global Private Breakpoint Context
|
94
|
+
$private-breakpoint-context-holder: () !global;
|
95
|
+
$private-breakpoint-query-count: 0 !global;
|
96
|
+
|
97
|
+
@if $Memo-Exists {
|
98
|
+
$holder: memo-set(breakpoint, breakpoint $query $contexts, $return);
|
99
|
+
}
|
100
|
+
}
|
101
|
+
|
102
|
+
@return $return;
|
103
|
+
}
|
104
|
+
|
105
|
+
//////////////////////////////
|
106
|
+
// General Breakpoint Parser
|
107
|
+
//////////////////////////////
|
108
|
+
@function breakpoint-parse($query) {
|
109
|
+
// Increase number of 'and' queries
|
110
|
+
$private-breakpoint-query-count: $private-breakpoint-query-count + 1 !global;
|
111
|
+
|
112
|
+
// Set up Media Type
|
113
|
+
$query-print: '';
|
114
|
+
|
115
|
+
$force-all: ((breakpoint-get('force all media type') == true) and (breakpoint-get('default media') == 'all'));
|
116
|
+
$empty-media: true;
|
117
|
+
@if ($force-all == true) or (breakpoint-get('default media') != 'all') {
|
118
|
+
// Force the print of the default media type if (force all is true and default media type is all) or (default media type is not all)
|
119
|
+
$query-print: breakpoint-get('default media');
|
120
|
+
$empty-media: false;
|
121
|
+
}
|
122
|
+
|
123
|
+
|
124
|
+
$query-resolution: false;
|
125
|
+
|
126
|
+
$query-holder: breakpoint-parse-query($query);
|
127
|
+
|
128
|
+
|
129
|
+
|
130
|
+
// Loop over each parsed out query and write it to $query-print
|
131
|
+
$first: true;
|
132
|
+
|
133
|
+
@each $feature in $query-holder {
|
134
|
+
$length: length($feature);
|
135
|
+
|
136
|
+
// Parse a single feature
|
137
|
+
@if ($length == 1) {
|
138
|
+
// Feature is currently a list, grab the actual value
|
139
|
+
$feature: nth($feature, 1);
|
140
|
+
|
141
|
+
// Media Type must by convention be the first item, so it's safe to flat override $query-print, which right now should only be the default media type
|
142
|
+
@if (breakpoint-is-media($feature)) {
|
143
|
+
@if ($force-all == true) or ($feature != 'all') {
|
144
|
+
// Force the print of the default media type if (force all is true and default media type is all) or (default media type is not all)
|
145
|
+
$query-print: $feature;
|
146
|
+
$empty-media: false;
|
147
|
+
|
148
|
+
// Set Context
|
149
|
+
$context-setter: private-breakpoint-set-context(media, $query-print);
|
150
|
+
}
|
151
|
+
}
|
152
|
+
@else {
|
153
|
+
$parsed: breakpoint-parse-single($feature, $empty-media, $first);
|
154
|
+
$query-print: '#{$query-print} #{$parsed}';
|
155
|
+
$first: false;
|
156
|
+
}
|
157
|
+
}
|
158
|
+
// Parse a double feature
|
159
|
+
@else if ($length == 2) {
|
160
|
+
@if (breakpoint-is-resolution($feature) != false) {
|
161
|
+
$query-resolution: $feature;
|
162
|
+
}
|
163
|
+
@else {
|
164
|
+
$parsed: null;
|
165
|
+
// If it's a string/number pair,
|
166
|
+
// we check to see if one is a single-string value,
|
167
|
+
// then we parse it as a normal double
|
168
|
+
$alpha: nth($feature, 1);
|
169
|
+
$beta: nth($feature, 2);
|
170
|
+
@if breakpoint-single-string($alpha) or breakpoint-single-string($beta) {
|
171
|
+
$parsed: breakpoint-parse-single($alpha, $empty-media, $first);
|
172
|
+
$query-print: '#{$query-print} #{$parsed}';
|
173
|
+
$first: false;
|
174
|
+
$parsed: breakpoint-parse-single($beta, $empty-media, $first);
|
175
|
+
$query-print: '#{$query-print} #{$parsed}';
|
176
|
+
}
|
177
|
+
@else {
|
178
|
+
$parsed: breakpoint-parse-double($feature, $empty-media, $first);
|
179
|
+
$query-print: '#{$query-print} #{$parsed}';
|
180
|
+
$first: false;
|
181
|
+
}
|
182
|
+
}
|
183
|
+
}
|
184
|
+
// Parse a triple feature
|
185
|
+
@else if ($length == 3) {
|
186
|
+
$parsed: breakpoint-parse-triple($feature, $empty-media, $first);
|
187
|
+
$query-print: '#{$query-print} #{$parsed}';
|
188
|
+
$first: false;
|
189
|
+
}
|
190
|
+
|
191
|
+
}
|
192
|
+
|
193
|
+
@if ($query-resolution != false) {
|
194
|
+
$query-print: breakpoint-build-resolution($query-print, $query-resolution, $empty-media, $first);
|
195
|
+
}
|
196
|
+
|
197
|
+
// Loop through each feature that's been detected so far and append 'false' to the the value list to increment their counters
|
198
|
+
@each $f, $v in $private-breakpoint-context-holder {
|
199
|
+
$v-holder: $v;
|
200
|
+
$length: length($v-holder);
|
201
|
+
@if length($v-holder) < $private-breakpoint-query-count {
|
202
|
+
@for $i from $length to $private-breakpoint-query-count {
|
203
|
+
@if $f == 'media' {
|
204
|
+
$v-holder: append($v-holder, breakpoint-get('default media'));
|
205
|
+
}
|
206
|
+
@else {
|
207
|
+
$v-holder: append($v-holder, false);
|
208
|
+
}
|
209
|
+
}
|
210
|
+
}
|
211
|
+
$private-breakpoint-context-holder: map-merge($private-breakpoint-context-holder, ($f: $v-holder)) !global;
|
212
|
+
}
|
213
|
+
|
214
|
+
@return $query-print;
|
215
|
+
}
|