@canopycanopycanopy/b-ber-theme-serif 1.2.13-media-queries.62 → 1.2.13-react-reader.70

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.
@@ -290,7 +290,7 @@ $grid-row-height-percentage: (100% - $grid-row-gap-percentage) /
290
290
  grid-template: grid-template($grid-column-count, $row-height);
291
291
  grid-gap: grid-gap();
292
292
 
293
- @include break-at('xs') {
293
+ @include break('mobile') {
294
294
  grid-template: grid-template(round($grid-column-count / 2), 'auto');
295
295
  }
296
296
  }
@@ -309,7 +309,7 @@ $grid-row-height-percentage: (100% - $grid-row-gap-percentage) /
309
309
  // @param $bottom int Number of line-height units at type-settings(0) to add as padding-bottom
310
310
  // @param $right int Number of `em`s at type-settings(0) to add as padding-right
311
311
  // @param $value int Elements type-settings index
312
- // @example padding: @include padding(1, 1, 1, 1, 0); // => padding: 1em 1.3125em 1em 1.3125em;
312
+ // @example padding: @include padding(1, 1, 1, 1, 0) // => padding: 1em 1.3125em 1em 1.3125em;
313
313
  @mixin padding($top, $right, $bottom, $left, $value) {
314
314
  padding: adjust-line-height-value($value) * $top + 0em
315
315
  adjust-font-size-value($value) * $right + 0em
package/_settings.scss CHANGED
@@ -1,4 +1,29 @@
1
+ //
1
2
  // Variables
3
+ //
4
+
5
+ // Media Queries
6
+ $media-mobile: 'only screen \
7
+ and (min-width: 320px) \
8
+ and (max-width: 680px)' !default;
9
+ $media-tablet: 'only screen \
10
+ and (min-width: 768px) \
11
+ and (min-height: 1024px) \
12
+ and (max-width: 768px) \
13
+ and (max-height: 768px)' !default;
14
+ $media-desktop: 'only screen \
15
+ and (min-width: 960px)' !default;
16
+ $media-wide: 'only screen \
17
+ and (min-width: 1590px)' !default;
18
+ $media-tall: 'only screen \
19
+ and (min-height: 860px) \
20
+ and (min-width: 960px)' !default;
21
+ $mobile-short: 'only screen \
22
+ and (max-height: 860px) \
23
+ and (max-width: 960px)' !default;
24
+ $desktop-short: 'only screen \
25
+ and (max-height: 860px) \
26
+ and (min-width: 960px)' !default;
2
27
 
3
28
  // Colors
4
29
  $white: #fff !default;
@@ -15,21 +40,45 @@ $success: #5050c5 !default;
15
40
  $grey: $black;
16
41
  }
17
42
 
18
- // General text Layout
19
- // If new paragraphs should be indented, and if so, by how much. The text indent size
20
- // can be set to a simple relative unit (not calculated based on font size) because
21
- // it's only applied to paragraph elements, so will remain consistent throughout
22
- // the document
43
+ // Layout
44
+ $debug: false !default;
23
45
  $text-indent: true !default;
24
- $text-indent-size: two-ems(0) !default;
25
-
26
- // If paragraphs and header elements should have a margin bottom. Margin bottom size
27
- // is calculated automatically to retain vertial rhythm
28
46
  $vertical-space: false !default;
29
47
 
30
- // Vertical rhythm settings
31
- $font-size-base: 1.6em !default; // 16px
32
- $line-height-base: 1.44222 !default; // 20.8px
48
+ // Font size and view port
49
+ // The min-width and max-width sizes set the viewport dimensions for font scaling
50
+ // The min-font and max-font is the range that the font will scale within the viewport settings
51
+ $min-width: 320px !default;
52
+ $max-width: 1980px !default;
53
+ $min-font: 17px !default;
54
+ $max-font: 21px !default;
55
+ $font-size-base: 1em !default;
56
+ $line-height-base: 1.3 !default;
57
+
58
+ // Typgraphic Scale
59
+ //
60
+ // Function Ratio Decimal value
61
+ // --- --- ---
62
+ // $font-scale: 'phi' ;// 1:1.618 1.618
63
+ // $font-scale: 'golden' ;// 1:1.618 1.618
64
+ // $font-scale: 'double-octave' ;// 1:4 4
65
+ // $font-scale: 'major-twelfth' ;// 1:3 3
66
+ // $font-scale: 'major-eleventh' ;// 3:8 2.667
67
+ // $font-scale: 'major-tenth' ;// 2:5 2.5
68
+ // $font-scale: 'octave' ;// 1:2 2
69
+ // $font-scale: 'major-seventh' ;// 8:15 1.875
70
+ // $font-scale: 'minor-seventh' ;// 9:16 1.778
71
+ // $font-scale: 'major-sixth' ;// 3:5 1.667
72
+ // $font-scale: 'minor-sixth' ;// 5:8 1.6
73
+ // $font-scale: 'fifth' ;// 2:3 1.5
74
+ // $font-scale: 'augmented-fourth' ;// 1:√2 1.414
75
+ // $font-scale: 'fourth' ;// 3:4 1.333
76
+ // $font-scale: 'major-third' ;// 4:5 1.25
77
+ // $font-scale: 'minor-third' ;// 5:6 1.2
78
+ // $font-scale: 'major-second' ;// 8:9 1.125
79
+ // $font-scale: 'minor-second' ;// 15:16 1.067
80
+
81
+ $font-scale: 'minor-second' !default;
33
82
 
34
83
  // Font stacks
35
84
  $sans: Helvetica, Arial, sans-serif !default;
@@ -43,3 +92,28 @@ $landscape-image-height: 4 !default;
43
92
  $square-image-height: 4 !default;
44
93
  $portrait-image-height: 5 !default;
45
94
  $portrait-image--high-height: 5 !default;
95
+
96
+ // CSS Grid settings for Reader view
97
+ $grid-row-count: 2 !default; // Number of rows
98
+ $grid-column-count: 12 !default; // Number of columns
99
+ $grid-row-gap-percentage: 14 !default; // Height of the gap between rows
100
+ $grid-column-gap-percentage: 3 !default; // Width of the gap between columns (the gutter)
101
+
102
+ // Grid items' size and location. Declaring both start and end properties will
103
+ // result in the following:
104
+ //
105
+ // $grid-column-start: 1;
106
+ // $grid-column-end: 2;
107
+ //
108
+ // 1 / 2
109
+ //
110
+ // If only the start property is required, omit the second by setting it to an
111
+ // empty string:
112
+ //
113
+ // $grid-column-start: 'span 1';
114
+ // $grid-column-end: '';
115
+ //
116
+ // span 1
117
+ //
118
+ $grid-column-start: 'span 4' !default;
119
+ $grid-column-end: '' !default;
package/application.scss CHANGED
@@ -1,34 +1,94 @@
1
+ // sass-lint:disable mixins-before-declarations
2
+
1
3
  // Declare namespaces
2
4
  @namespace url('http://www.w3.org/1999/xhtml');
3
5
  @namespace epub url('http://www.idpf.org/2007/ops');
4
6
 
5
7
  // Load vendor libs
6
8
  // https://github.com/modularscale/modularscale-sass
7
- @import '~modularscale-sass/stylesheets/_modularscale';
8
- // @import '../../node_modules/modularscale-sass/stylesheets/_modularscale.scss';
9
-
10
- // For validation while building on CLI, not used in production
11
- $build: 'epub' !default;
9
+ @import '~modularscale-sass';
12
10
 
13
11
  @import 'settings';
14
12
  @import 'mixins';
13
+ @import 'debug';
15
14
 
16
15
  // for validation while building on CLI, not an actual setting
17
16
  $build: 'epub' !default;
18
17
 
18
+ // Font ratio is set by user, but modular-scale isn't available yet in their
19
+ // settings, so we map to values once the lib has loaded
20
+ $font-scale: 'fifth' !default;
21
+
22
+ $font-ratios: (
23
+ 'phi': $phi,
24
+ 'golden': $golden,
25
+ 'double-octave': $double-octave,
26
+ 'major-twelfth': $major-twelfth,
27
+ 'major-eleventh': $major-eleventh,
28
+ 'major-tenth': $major-tenth,
29
+ 'octave': $octave,
30
+ 'major-seventh': $major-seventh,
31
+ 'minor-seventh': $minor-seventh,
32
+ 'major-sixth': $major-sixth,
33
+ 'minor-sixth': $minor-sixth,
34
+ 'fifth': $fifth,
35
+ 'augmented-fourth': $augmented-fourth,
36
+ 'fourth': $fourth,
37
+ 'major-third': $major-third,
38
+ 'minor-third': $minor-third,
39
+ 'major-second': $major-second,
40
+ 'minor-second': $minor-second,
41
+ );
42
+
43
+ $font-ratio: map-get($font-ratios, $font-scale);
44
+
19
45
  // Initialize Modular Scale
20
46
  //
21
47
  // @demo http://www.modularscale.com/
22
48
  // @repo https://github.com/modularscale/modularscale-sass
23
49
  $modularscale: (
24
50
  base: $font-size-base,
25
- ratio: $minor-second,
51
+ ratio: $font-ratio,
26
52
  );
27
53
 
28
- @import 'typography';
29
- @import 'layout';
54
+ @import 'typography/typography';
55
+ @import 'layout/layout';
56
+
57
+ // base styles
58
+ //
59
+
60
+ html {
61
+ font-size: 156.25%; // 25px
62
+ }
63
+
64
+ @if $build != 'web' {
65
+ html {
66
+ font-size: 100%; // 16px
67
+ }
68
+ body {
69
+ padding: 0 one-em(0) * 0.5;
70
+ }
71
+ }
72
+
73
+ @if $build == 'web' {
74
+ .publication__contents {
75
+ font-size: 80%; // 20px
76
+ }
77
+ @include break('mobile') {
78
+ .publication__contents {
79
+ font-size: 68%; // 17px
80
+ }
81
+ }
82
+ }
83
+
84
+ @if $build == 'reader' {
85
+ #layout {
86
+ @include fluid-type($min-width, $max-width, $min-font, $max-font);
87
+ }
88
+ }
30
89
 
31
- // Set `$grey-0` in case of e-ink readers
32
- @if $build == 'mobi' {
33
- $grey-0: $black;
90
+ @if $debug == true {
91
+ img {
92
+ background-color: #dcdcdc;
93
+ }
34
94
  }
@@ -1,10 +1,50 @@
1
- hr {
2
- @include following-paragraph-not-indented;
3
- @include following-element-has-no-top-padding;
4
- width: 25%;
5
- background-color: $grey;
6
- padding: 0;
7
- margin: one-line(0) auto;
8
- height: 1px;
9
- border: 0;
1
+ // Set @page margin for e-readers
2
+ @page {
3
+ margin: em-to-px($font-size-base * 2);
4
+ }
5
+
6
+ @import 'base/container';
7
+ @import 'base/figure';
8
+ @import 'base/layout';
9
+ @import 'base/list';
10
+ @import 'base/table';
11
+ @import 'base/text';
12
+ @import 'base/media';
13
+ @import 'base/web'; // conditional styles
14
+ @import 'base/reader'; // conditional styles
15
+ @import 'base/print'; // for print views and PDF generation
16
+
17
+ .break-after {
18
+ @if $build == 'reader' {
19
+ @include break('desktop') {
20
+ // Reader: Chrome & Safari
21
+ break-after: column;
22
+
23
+ // FireFox: TBD.
24
+ // `break`ing in the column context in FireFox is unsupported, so shims
25
+ // will need to be added on a per-project basis until we find a reliable
26
+ // way of dealing with this
27
+ @-moz-document url-prefix() {
28
+ }
29
+ }
30
+ } @else {
31
+ // Epub, Mobi, PDF ...
32
+ page-break-after: always;
33
+ }
34
+ }
35
+
36
+ .break-before {
37
+ @if $build == 'reader' {
38
+ @include break('desktop') {
39
+ // Reader: Chrome & Safari
40
+ break-before: column;
41
+
42
+ // FireFox: TBD.
43
+ @-moz-document url-prefix() {
44
+ }
45
+ }
46
+ } @else {
47
+ // Epub, Mobi, PDF ...
48
+ page-break-before: always;
49
+ }
10
50
  }
@@ -1,20 +1,5 @@
1
- @use 'sass:math';
2
-
3
- // Set @page margin for e-readers
4
- @page {
5
- margin: em-to-px($font-size-base * 2);
6
- }
7
-
8
- html {
9
- @if $build == 'reader' {
10
- font-size: 62.5%; // 10px
11
- } @else {
12
- font-size: 150%; // 24px
13
- }
14
- }
15
-
16
1
  body {
17
- @include text-large;
2
+ @include type-settings(0);
18
3
  @include hyphens;
19
4
  @include widows;
20
5
  @include orphans;
@@ -28,7 +13,7 @@ body {
28
13
 
29
14
  blockquote {
30
15
  @include following-element-has-no-top-padding;
31
- @include padding('text-large', 1, 1, 1, 1);
16
+ @include padding(1, 1, 1, 1, 0);
32
17
  margin: 0;
33
18
  font-size: one-em(0);
34
19
  }
@@ -71,14 +56,14 @@ section.bibliography {
71
56
  margin-bottom: 0;
72
57
  }
73
58
  h3 {
74
- @include text-large;
75
- @include padding('text-large', 0, 0, 1, 0);
59
+ @include type-settings(0);
60
+ @include padding(0, 0, 1, 0, 0);
76
61
  }
77
62
  h1 + .subchapter > h3 {
78
63
  padding-top: 0;
79
64
  }
80
65
  p {
81
- @include padding('text-large', 0, 0, 1, 0);
66
+ @include padding(0, 0, 1, 0, 0);
82
67
  text-indent: 0;
83
68
  }
84
69
  }
@@ -86,7 +71,7 @@ section.bibliography {
86
71
  .audio,
87
72
  .video,
88
73
  .vimeo {
89
- @include padding('text-large', 1, 1, 1, 1);
74
+ @include padding(1, 1, 1, 1, 0);
90
75
  text-align: center;
91
76
  .figure__large & {
92
77
  padding: 0;
@@ -106,7 +91,7 @@ section.bibliography {
106
91
  } @else {
107
92
  width: 80%;
108
93
  }
109
- @include break-at('xs') {
94
+ @include break('mobile') {
110
95
  width: 100%;
111
96
  }
112
97
  margin-left: auto;
@@ -139,15 +124,15 @@ video,
139
124
  // Outer container
140
125
 
141
126
  &.vimeo--4x3 .embed.supported {
142
- padding-top: math.div(3, 4) * 100%;
127
+ padding-top: 3 / 4 * 100%;
143
128
  }
144
129
 
145
130
  &.vimeo--16x9 .embed.supported {
146
- padding-top: math.div(9, 16) * 100%;
131
+ padding-top: 9 / 16 * 100%;
147
132
  }
148
133
 
149
134
  &.vimeo--21x9 .embed.supported {
150
- padding-top: math.div(9, 21) * 100%;
135
+ padding-top: 9 / 21 * 100%;
151
136
  }
152
137
 
153
138
  // Inner container
@@ -174,7 +159,7 @@ video,
174
159
  }
175
160
 
176
161
  aside.note {
177
- @include padding('text-large', 0, 0, 1, 0);
162
+ @include padding(0, 0, 1, 0, 0);
178
163
  text-align: left;
179
164
  margin: 0;
180
165
  p {
@@ -186,7 +171,7 @@ aside.note {
186
171
  }
187
172
 
188
173
  .pullquote {
189
- @include padding('text-large', 0, 1, 1, 1);
174
+ @include padding(0, 1, 1, 1, 0);
190
175
  text-indent: 0;
191
176
  font-size: one-em(0);
192
177
 
@@ -200,7 +185,7 @@ aside.note {
200
185
  }
201
186
 
202
187
  .epigraph & {
203
- @include padding('text-large', 0, 1, 2, 1);
188
+ @include padding(0, 1, 2, 1, 0);
204
189
  float: none;
205
190
  margin-top: 0;
206
191
  }
@@ -232,7 +217,7 @@ section.backmatter {
232
217
 
233
218
  section.staff {
234
219
  h3 {
235
- @include text-medium;
220
+ @include type-settings(-1);
236
221
  text-align: left;
237
222
  margin: 0;
238
223
  padding: 0;
@@ -241,7 +226,7 @@ section.staff {
241
226
  }
242
227
 
243
228
  .masthead h2 {
244
- @include text-medium;
229
+ @include type-settings(-1);
245
230
  font-weight: 700;
246
231
  font-family: inherit;
247
232
  padding-top: 0;
@@ -47,7 +47,7 @@ figure {
47
47
 
48
48
  .figure__large {
49
49
  // Space is added in the event that readers don't respect the page-break atrribute.
50
- @include padding('text-large', 1, 0, 1, 0);
50
+ @include padding(1, 0, 1, 0, 0);
51
51
  page-break-before: always;
52
52
  page-break-after: always;
53
53
  }
@@ -102,7 +102,7 @@ figure {
102
102
  &.figure__small--square,
103
103
  &.figure__small--portrait,
104
104
  &.figure__small--portrait-high {
105
- @include padding('text-large', 1, 0, 1, 0);
105
+ @include padding(1, 0, 1, 0, 0);
106
106
  h1 + & {
107
107
  padding-top: 0;
108
108
  }
@@ -0,0 +1,10 @@
1
+ hr {
2
+ @include following-paragraph-not-indented;
3
+ @include following-element-has-no-top-padding;
4
+ width: 25%;
5
+ background-color: $grey;
6
+ padding: 0;
7
+ margin: one-line(0) auto;
8
+ height: 1px;
9
+ border: 0;
10
+ }
@@ -1,5 +1,5 @@
1
1
  ul {
2
- @include text-small;
2
+ @include type-settings(-2);
3
3
  padding: one-line(-2) 0 one-line(-2) two-ems(0);
4
4
  @include following-element-has-no-top-padding; // sass-lint:disable-line mixins-before-declarations
5
5
  list-style: disc;
@@ -31,14 +31,14 @@ ul {
31
31
  }
32
32
 
33
33
  * {
34
- @include text-large;
34
+ @include type-settings(0);
35
35
  line-height: line-height(ms(-2));
36
36
  }
37
37
  }
38
38
 
39
39
  ol,
40
40
  dl {
41
- @include text-small;
41
+ @include type-settings(-2);
42
42
  padding: one-line(-2) 0 one-line(-2) two-ems(0);
43
43
  @include following-element-has-no-top-padding; // sass-lint:disable-line mixins-before-declarations
44
44
  list-style: decimal;
@@ -66,7 +66,7 @@ dl {
66
66
  section.colophon &,
67
67
  section.appendix &,
68
68
  section.backmatter & {
69
- @include padding('text-medium', 0, 1, 0, 1);
69
+ @include padding(0, 1, 0, 1, -1);
70
70
  li {
71
71
  @include following-paragraph-not-indented;
72
72
  font-weight: normal;
@@ -76,7 +76,7 @@ dl {
76
76
  }
77
77
 
78
78
  * {
79
- @include text-large;
79
+ @include type-settings(0);
80
80
  line-height: line-height(ms(-2));
81
81
  }
82
82
  }
File without changes
File without changes
@@ -39,9 +39,10 @@
39
39
 
40
40
  // Gallery Styling This sets up a layout for galleries that contains 12
41
41
  // columns and two rows by default and is responsive.
42
+
42
43
  section.gallery .figure__gallery {
43
44
  .figure__items {
44
- // @include grid-layout;
45
+ @include grid-layout;
45
46
  width: 85vw;
46
47
  height: 75vh;
47
48
  margin-top: 75px;
@@ -53,7 +54,7 @@
53
54
  }
54
55
 
55
56
  // Mobile Overrides for Fullbleed, spreads, and galleries.
56
- @include break-at('xs') {
57
+ @include break('mobile') {
57
58
  // Gallery
58
59
  section.gallery .figure__gallery .figure__items {
59
60
  margin-top: 0;
@@ -3,7 +3,7 @@
3
3
  }
4
4
 
5
5
  table {
6
- @include table-text;
6
+ @include type-settings(-6);
7
7
  page-break-inside: avoid;
8
8
  border-collapse: collapse;
9
9
  border-spacing: 0;
@@ -16,7 +16,7 @@ table {
16
16
  }
17
17
  th,
18
18
  td {
19
- @include text-large;
19
+ @include type-settings(0);
20
20
  font-family: $sans;
21
21
  text-align: left;
22
22
  padding: one-em(0);