Uniform the slides rendering in present and print mode

This commit is contained in:
yflory 2017-03-17 15:30:27 +01:00
parent 2add39ee40
commit a5f11d0d0d
4 changed files with 337 additions and 334 deletions

View file

@ -23,8 +23,11 @@
.top-left(@s: 5px) { border-top-left-radius: @s; }
.size (@n) {
font-size: @n * 1vw;
line-height: @n * 1.1vw;
// font-size: @n * 1vmin;
// line-height: @n * 1.1vmin;
font-size: @n * 10%;
// line-height: @n * 11%;
line-height: 110%;
}
.two-part-gradient (@start, @end) {

View file

@ -137,6 +137,17 @@ define([
var $modal = $pad.contents().find('#modal');
var $content = $pad.contents().find('#content');
var $print = $pad.contents().find('#print');
$( window ).resize(function() {
// 20vh
// 20 * 16 / 9vw
if ($(window).width() > 16/9*$(window).height()) {
$content.css('font-size', '20vh');
// $print.css('font-size', '20vh');
return;
}
$content.css('font-size', (20*9/16)+'vw');
// $print.css('font-size', (20*9/16)+'vw');
});
Slide.setModal($modal, $content, $pad, ifrw, initialState);

View file

@ -44,7 +44,7 @@ body .CodeMirror-focused .cm-matchhighlight {
@media print {
@page {
margin: 0;
size: auto;
size: landscape;
}
body {
display: block;
@ -63,110 +63,65 @@ body .CodeMirror-focused .cm-matchhighlight {
max-height: none;
overflow: visible;
}
html #print {
html .cp #print {
display: block;
visibility: visible;
}
html #print * {
html .cp #print * {
visibility: visible;
}
}
#print {
.cp {
/* Slide position (print mode) */
/* Slide position (present mode) */
/* Slide content */
}
.cp #print {
position: relative;
display: none;
font-size: 11.25vw;
}
#print .slide-frame {
display: flex !important;
justify-content: center;
align-items: center;
flex-flow: column;
padding: 5vh 0;
height: 100vh;
width: 100%;
.cp #print .slide-frame {
display: block !important;
padding: 2.5%;
margin-top: calc((100vh - 56.25vw)/2);
border-top: 1px solid black;
border-bottom: 1px solid black;
height: 56.25vw;
width: 100vw;
page-break-after: always;
position: relative;
box-sizing: border-box;
}
#print .slide-frame li {
.cp #print .slide-frame li {
min-width: 50vw;
}
#print .slide-frame h1 {
.cp #print .slide-frame h1 {
padding-top: 0;
}
#print .slide-frame .slideNumber {
.cp #print .slide-frame .slideNumber {
position: absolute;
right: 5vh;
bottom: 5vh;
font-size: 15px;
}
#print .slide-frame .slideDate {
.cp #print .slide-frame .slideDate {
position: absolute;
left: 5vh;
bottom: 5vh;
font-size: 15px;
}
#print .slide-frame .slideTitle {
.cp #print .slide-frame .slideTitle {
position: absolute;
top: 5vh;
left: 0px;
right: 0px;
text-align: center;
}
.cp.slide #modal .button {
position: absolute;
cursor: pointer;
font-size: 30px;
opacity: 0.6;
display: none;
}
.cp.slide #modal .button:hover {
opacity: 1;
display: block !important;
}
.cp.slide #modal #button_exit {
left: 20px;
top: 20px;
z-index: 9001;
}
.cp.slide #modal #button_left {
left: 6vw;
bottom: 10vh;
}
.cp.slide #modal #button_right {
right: 6vw;
bottom: 10vh;
}
.cp.slide #modal #content h1,
.cp.slide #modal #content h2,
.cp.slide #modal #content h3,
.cp.slide #modal #content h4,
.cp.slide #modal #content h5,
.cp.slide #modal #content h6 {
text-align: center;
}
.cp.slide #modal.shown {
display: block;
position: fixed;
top: 0px;
left: 0px;
z-index: 100;
background-color: black;
color: white;
height: 100vh;
width: 100%;
}
.cp.slide #modal #content p,
.cp.slide #modal #content ul,
.cp.slide #modal #content ol {
font-size: 26px;
}
.cp.slide #modal #content img {
position: relative;
min-width: 1%;
max-width: 90%;
max-height: 90%;
margin: auto;
font-size: 15px;
}
.cp div.modal,
.cp div#modal {
/* Navigation buttons */
box-sizing: border-box;
z-index: 9001;
position: fixed;
@ -177,19 +132,64 @@ body .CodeMirror-focused .cm-matchhighlight {
display: none;
background-color: #000;
}
.cp div.modal .button,
.cp div#modal .button {
position: absolute;
cursor: pointer;
font-size: 30px;
opacity: 0.6;
display: none;
}
.cp div.modal .button:hover,
.cp div#modal .button:hover {
opacity: 1;
display: block !important;
}
.cp div.modal #button_exit,
.cp div#modal #button_exit {
left: 20px;
top: 20px;
z-index: 9001;
}
.cp div.modal #button_left,
.cp div#modal #button_left {
left: 6vw;
bottom: 10vh;
}
.cp div.modal #button_right,
.cp div#modal #button_right {
right: 6vw;
bottom: 10vh;
}
.cp div.modal.shown,
.cp div#modal.shown {
display: block;
position: fixed;
top: 0px;
left: 0px;
z-index: 100;
background-color: black;
color: white;
height: 100vh;
width: 100%;
}
.cp div.modal #content,
.cp div#modal #content {
font-size: 20vh;
}
.cp div.modal #content .slide-frame,
.cp div#modal #content .slide-frame {
box-sizing: border-box;
border: 1px solid white;
vertical-align: middle;
padding: 2.5vw;
/* center things as much as possible
margin-top: 50vh;
margin-bottom: 50vh;
transform: translateY(-50%);
margin-top: 50vh;
margin-bottom: 50vh;
transform: translateY(-50%);
*/
*/
padding: 2.5%;
width: 100vw;
height: 56.25vw;
max-height: 100vh;
@ -201,80 +201,6 @@ body .CodeMirror-focused .cm-matchhighlight {
left: 0;
right: 0;
}
.cp div.modal #content p,
.cp div#modal #content p,
.cp div.modal #content li,
.cp div#modal #content li,
.cp div.modal #content pre,
.cp div#modal #content pre,
.cp div.modal #content code,
.cp div#modal #content code {
font-size: 2.75vw;
line-height: 3.025vw;
}
.cp div.modal #content h1,
.cp div#modal #content h1 {
font-size: 5vw;
line-height: 5.5vw;
}
.cp div.modal #content h2,
.cp div#modal #content h2 {
font-size: 4.2vw;
line-height: 4.62vw;
}
.cp div.modal #content h3,
.cp div#modal #content h3 {
font-size: 3.6vw;
line-height: 3.96vw;
}
.cp div.modal #content h4,
.cp div#modal #content h4 {
font-size: 3vw;
line-height: 3.3vw;
}
.cp div.modal #content h5,
.cp div#modal #content h5 {
font-size: 2.2vw;
line-height: 2.42vw;
}
.cp div.modal #content h6,
.cp div#modal #content h6 {
font-size: 1.6vw;
line-height: 1.76vw;
}
.cp div.modal #content h1,
.cp div#modal #content h1,
.cp div.modal #content h2,
.cp div#modal #content h2,
.cp div.modal #content h3,
.cp div#modal #content h3,
.cp div.modal #content h4,
.cp div#modal #content h4,
.cp div.modal #content h5,
.cp div#modal #content h5,
.cp div.modal #content h6,
.cp div#modal #content h6 {
color: inherit;
text-align: center;
}
.cp div.modal #content pre > code,
.cp div#modal #content pre > code {
display: block;
position: relative;
border: 1px solid #333;
width: 90%;
margin: auto;
padding-left: .25vw;
}
.cp div.modal #content ul,
.cp div#modal #content ul,
.cp div.modal #content ol,
.cp div#modal #content ol {
min-width: 50%;
max-width: 100%;
display: table;
margin: 0 auto;
}
.cp div.modal .center,
.cp div#modal .center {
position: relative;
@ -288,35 +214,130 @@ body .CodeMirror-focused .cm-matchhighlight {
.cp div#modal.shown {
display: block;
}
.cp div.modal table,
.cp div#modal table {
margin: 30px;
border-collapse: collapse;
.cp div#modal #content .slide-frame p,
.cp #print .slide-frame p,
.cp div#modal #content .slide-frame li,
.cp #print .slide-frame li,
.cp div#modal #content .slide-frame pre,
.cp #print .slide-frame pre,
.cp div#modal #content .slide-frame code,
.cp #print .slide-frame code {
font-size: 27.5%;
line-height: 110%;
}
.cp div.modal table input,
.cp div#modal table input {
height: 100%;
.cp div#modal #content .slide-frame p p,
.cp #print .slide-frame p p,
.cp div#modal #content .slide-frame li p,
.cp #print .slide-frame li p,
.cp div#modal #content .slide-frame pre p,
.cp #print .slide-frame pre p,
.cp div#modal #content .slide-frame code p,
.cp #print .slide-frame code p,
.cp div#modal #content .slide-frame p li,
.cp #print .slide-frame p li,
.cp div#modal #content .slide-frame li li,
.cp #print .slide-frame li li,
.cp div#modal #content .slide-frame pre li,
.cp #print .slide-frame pre li,
.cp div#modal #content .slide-frame code li,
.cp #print .slide-frame code li,
.cp div#modal #content .slide-frame p pre,
.cp #print .slide-frame p pre,
.cp div#modal #content .slide-frame li pre,
.cp #print .slide-frame li pre,
.cp div#modal #content .slide-frame pre pre,
.cp #print .slide-frame pre pre,
.cp div#modal #content .slide-frame code pre,
.cp #print .slide-frame code pre,
.cp div#modal #content .slide-frame p code,
.cp #print .slide-frame p code,
.cp div#modal #content .slide-frame li code,
.cp #print .slide-frame li code,
.cp div#modal #content .slide-frame pre code,
.cp #print .slide-frame pre code,
.cp div#modal #content .slide-frame code code,
.cp #print .slide-frame code code {
font-size: 100%;
line-height: 1em;
}
.cp div#modal #content .slide-frame ul ul,
.cp #print .slide-frame ul ul,
.cp div#modal #content .slide-frame ol ul,
.cp #print .slide-frame ol ul,
.cp div#modal #content .slide-frame ul ol,
.cp #print .slide-frame ul ol,
.cp div#modal #content .slide-frame ol ol,
.cp #print .slide-frame ol ol {
margin: 0;
}
.cp div#modal #content .slide-frame h1,
.cp #print .slide-frame h1 {
font-size: 50%;
line-height: 110%;
}
.cp div#modal #content .slide-frame h2,
.cp #print .slide-frame h2 {
font-size: 42%;
line-height: 110%;
}
.cp div#modal #content .slide-frame h3,
.cp #print .slide-frame h3 {
font-size: 36%;
line-height: 110%;
}
.cp div#modal #content .slide-frame h4,
.cp #print .slide-frame h4 {
font-size: 30%;
line-height: 110%;
}
.cp div#modal #content .slide-frame h5,
.cp #print .slide-frame h5 {
font-size: 22%;
line-height: 110%;
}
.cp div#modal #content .slide-frame h6,
.cp #print .slide-frame h6 {
font-size: 16%;
line-height: 110%;
}
.cp div#modal #content .slide-frame h1,
.cp #print .slide-frame h1,
.cp div#modal #content .slide-frame h2,
.cp #print .slide-frame h2,
.cp div#modal #content .slide-frame h3,
.cp #print .slide-frame h3,
.cp div#modal #content .slide-frame h4,
.cp #print .slide-frame h4,
.cp div#modal #content .slide-frame h5,
.cp #print .slide-frame h5,
.cp div#modal #content .slide-frame h6,
.cp #print .slide-frame h6 {
color: inherit;
text-align: center;
}
.cp div#modal #content .slide-frame pre > code,
.cp #print .slide-frame pre > code {
display: block;
position: relative;
border: 1px solid #333;
width: 90%;
border: 3px solid #fff;
margin: auto;
padding-left: .25vw;
}
.cp div.modal table tfoot tr td,
.cp div#modal table tfoot tr td {
z-index: 4000;
cursor: pointer;
.cp div#modal #content .slide-frame ul,
.cp #print .slide-frame ul,
.cp div#modal #content .slide-frame ol,
.cp #print .slide-frame ol {
min-width: 50%;
max-width: 100%;
display: table;
margin: 0 auto;
}
.cp div.modal #addtime,
.cp div#modal #addtime,
.cp div.modal #adddate,
.cp div#modal #adddate {
color: #46E981;
border: 1px solid #46E981;
padding: 15px;
}
.cp div.modal #adddate,
.cp div#modal #adddate {
border-top-left-radius: 5px;
}
.cp div.modal #addtime,
.cp div#modal #addtime {
border-bottom-left-radius: 5px;
.cp div#modal #content .slide-frame img,
.cp #print .slide-frame img {
position: relative;
min-width: 1%;
max-width: 90%;
max-height: 90%;
margin: auto;
}

View file

@ -48,7 +48,7 @@ body {
@media print {
@page {
margin: 0;
size: auto;
size: landscape;
}
body {
.CodeMirror, #cme_toolbox {
@ -66,7 +66,7 @@ body {
overflow: visible;
}
html {
#print {
.cp #print {
display: block;
visibility: visible;
* {
@ -75,17 +75,26 @@ body {
}
}
}
.cp {
/* Slide position (print mode) */
#print {
position: relative;
display: none;
font-size: 11.25vw;
.slide-frame {
display: flex !important;
justify-content: center;
align-items: center;
flex-flow: column;
padding: 5vh 0;
height: 100vh;
width: 100%;
display: block !important;
// justify-content: center;
//align-items: center;
// flex-flow: column;
padding: 2.5%;
margin-top: ~"calc((100vh - 56.25vw)/2)";
border-top: 1px solid black;
border-bottom: 1px solid black;
height: 56.25vw;
width: 100vw;
page-break-after: always;
position: relative;
box-sizing: border-box;
@ -99,137 +108,91 @@ body {
position: absolute;
right: 5vh;
bottom: 5vh;
font-size: 15px;
}
.slideDate {
position: absolute;
left: 5vh;
bottom: 5vh;
font-size: 15px;
}
.slideTitle {
position: absolute;
top: 5vh;
left: 0px; right: 0px;
text-align: center;
font-size: 15px;
}
}
}
.cp {
&.slide {
#modal {
.button {
position: absolute;
cursor: pointer;
font-size: 30px;
opacity: 0.6;
display: none;
}
.button:hover {
opacity: 1;
display: block !important;
}
#button_exit {
left: 20px;
top: 20px;
z-index: 9001;
}
#button_left {
left: 6vw;
bottom: 10vh;
}
#button_right {
right: 6vw;
bottom: 10vh;
}
#content {
h1, h2, h3, h4, h5, h6 {
text-align: center;
}
}
&.shown {
display: block;
position: fixed;
top: 0px;
left: 0px;
z-index: 100;
background-color: black;
color: white;
height: 100vh;
width: 100%;
}
}
#modal #content {
p, ul, ol { font-size: 26px; }
img {
position: relative;
min-width: 1%;
max-width: 90%;
max-height: 90%;
margin: auto;
}
}
}
/* Slide position (present mode) */
div.modal, div#modal {
display: none;
#content {
box-sizing: border-box;
border: 1px solid white;
vertical-align: middle;
padding: 2.5vw;
/* center things as much as possible
margin-top: 50vh;
margin-bottom: 50vh;
transform: translateY(-50%);
*/
width: 100vw;
height: 56.25vw; // height:width ratio = 9/16 = .5625
max-height: 100vh;
max-width: 177.78vh; // 16/9 = 1.778
margin: auto;
/* Navigation buttons */
.button {
position: absolute;
top:0;bottom:0; // vertical center
left:0;right:0; // horizontal center
cursor: pointer;
font-size: 30px;
opacity: 0.6;
display: none;
}
.button:hover {
opacity: 1;
display: block !important;
}
#button_exit {
left: 20px;
top: 20px;
z-index: 9001;
}
#button_left {
left: 6vw;
bottom: 10vh;
}
#button_right {
right: 6vw;
bottom: 10vh;
}
&.shown {
display: block;
position: fixed;
top: 0px;
left: 0px;
z-index: 100;
background-color: black;
color: white;
height: 100vh;
width: 100%;
}
#content {
font-size: 20vh;
.slide-frame {
box-sizing: border-box;
border: 1px solid white;
p, li, pre, code {
.size(2.75);
}
vertical-align: middle;
// padding: 2.5vw;
h1 { .size(5); }
h2 { .size(4.2); }
h3 { .size(3.6); }
h4 { .size (3); }
h5 { .size(2.2); }
h6 { .size(1.6); }
/* center things as much as possible
h1, h2, h3, h4, h5, h6 {
color: inherit;
text-align: center;
}
margin-top: 50vh;
margin-bottom: 50vh;
transform: translateY(-50%);
pre > code {
display: block;
position: relative;
border: 1px solid #333;
width: 90%;
*/
padding: 2.5%;
width: 100vw;
height: 56.25vw; // height:width ratio = 9/16 = .5625
max-height: 100vh;
max-width: 177.78vh; // 16/9 = 1.778
margin: auto;
padding-left: .25vw;
}
ul, ol {
min-width: 50%;
max-width: 100%;
display: table;
margin: 0 auto;
position: absolute;
top:0;bottom:0; // vertical center
left:0;right:0; // horizontal center
}
}
@ -260,55 +223,60 @@ div.modal, div#modal {
&.shown {
display: block;
}
}
table {
margin: 30px;
border-collapse: collapse;
tr {
td {
/* Slide content */
div#modal #content, #print {
.slide-frame {
p, li, pre, code {
.size(2.75);
p, li, pre, code {
font-size: 100%;
line-height: 1em;
}
}
ul, ol {
ul, ol {
margin: 0;
}
}
input {
height: 100%;
h1 { .size(5); }
h2 { .size(4.2); }
h3 { .size(3.6); }
h4 { .size (3); }
h5 { .size(2.2); }
h6 { .size(1.6); }
h1, h2, h3, h4, h5, h6 {
color: inherit;
text-align: center;
}
pre > code {
display: block;
position: relative;
border: 1px solid #333;
width: 90%;
border: 3px solid @base;
margin: auto;
padding-left: .25vw;
}
thead {
tr {
th {
span.remove {
}
}
}
ul, ol {
min-width: 50%;
max-width: 100%;
display: table;
margin: 0 auto;
}
tbody {
tr {
td {
// p, ul, ol { padding-left: 10%; }
}
}
}
tfoot {
tr {
td {
z-index: 4000;
cursor: pointer;
}
}
img {
position: relative;
min-width: 1%;
max-width: 90%;
max-height: 90%;
margin: auto;
}
}
#addtime,
#adddate {
color: @cp-green;
border: 1px solid @cp-green;
padding: 15px;
}
#adddate { .top-left; }
#addtime { .bottom-left; }
}
}