Convert css to scss entirely (#24)

* Convert css to scss entirely
Fixes #15

* tufte css is now a scss file
This commit is contained in:
slashformotion 2021-08-20 23:21:47 +02:00 committed by GitHub
parent 8f8778a4b0
commit 70c7b91f81
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
24 changed files with 1729 additions and 878 deletions

2
.gitignore vendored
View file

@ -1,3 +1,5 @@
exampleSite/public/*
*.patch
exampleSite/resources/_gen/
node_modules
package-lock.json

33
Makefile Normal file
View file

@ -0,0 +1,33 @@
# VARIABLE
NPM := npm
SCSS_DIR := "assets/scss/vendor"
# LIST OF THE COMMANDS
help:
@echo "Commands available:"
@echo "- 'rebuild': rebuild the public directory in the 'exampleSite'"
@echo "- 'vendor': copy the files from the 'node_modules' folder to the 'assets' directory (Please note that the 'node_modules' folder need to exist)"
@echo "- 'install-npm': install (or reinstall) the nodes modules"
@echo "- 'install': shortcut for 'make install-npm && make vendor'"
# COMMANDS
install-npm:
@rm -r node_modules
@rm package-lock.json
@$(NPM) install
@sudo $(NPM) install -g postcss-cli #needs to install globally
@echo "NPM INSTALL"
vendor:
@mkdir -p $(SCSS_DIR)
@cp -r node_modules/normalize-scss/sass/** $(SCSS_DIR)
@echo "VENDORING"
rebuild:
@rm -rf exampleSite/public
@cd exampleSite && hugo && cd ..
@echo "SITE REBUILT"
install:
@make install-npm
@make vendor
chroma:
hugo gen chromastyles --style=monokai > assets/scss/syntax/syntax-dark.scss

View file

@ -0,0 +1,53 @@
$ht-code-border-radius: .4em;
.highlight {
width: 55%;
overflow-x: scroll;
border-radius: $ht-code-border-radius;
&>div.chroma>table.lntable{
margin: $ht-code-border-radius 0 $ht-code-border-radius 0;
& td:first-of-type {
& span:not(& span>span) {
padding: 0 .75em 0 .5em;
}
}
}
&>.chroma>code {
width: max-content;
margin-top: .5em;
margin-bottom: .5em;
margin-left: .5em;
&>span.hl{
margin-left: -.5em;
padding-left: .5em;
}
}
.chroma .hl {
// border-radius: $ht-code-border-radius / 2;
display: block;
}
&::-webkit-scrollbar {
border-radius: $ht-code-border-radius;
width: 10px;
height: 1rem;
}
&::-webkit-scrollbar-thumb {
border-radius: $ht-code-border-radius;
}
}
.highlight .lntable {
overflow: initial;
}
.highlight pre {
margin: 0;
}
.highlight pre code {
display: block;
font-size: 1rem;
}

View file

@ -0,0 +1,25 @@
header.brand {
margin-top: 0.5em;
}
/* Main brand title */
header.brand h1 {
margin: 0;
font-weight: 400;
color: rgba(65, 70, 75, 1);
}
header.brand h2 {
margin: 0;
padding-top: 0rem;
/*font-style: normal;*/
/*font-weight: 200;*/
color: rgba(100, 105, 110, 1);
}
header.brand hr {
text-align: left;
margin-left: 0;
width: 75%;
border-color: rgba(250, 250, 250, 0.25);
}

View file

@ -0,0 +1,19 @@
/* Content meta-data such as author, publication date, etc. */
.content-meta {
display: block;
/*color: rgba(155, 155, 155, 1);*/
color: rgba(100, 105, 110, 1);
font-size: 1.1rem;
margin-top: 1em;
}
.content-meta .author {
/*color: rgb(90, 20, 55)*/
color: rgba(65, 70, 75, 1);
}
.post-avatar {
border-radius: 50px;
float: right;
margin-left: 1em;
}

View file

@ -0,0 +1,32 @@
nav.menu ul {
list-style: none;
display: block;
/*text-align:center;*/
margin-top: 0.75rem;
padding: 0;
max-width: 45rem;
/* Width is the same as tufte.css body */
font-size: 0.9rem;
width: 87.5%;
}
nav.menu li {
display: inline-block;
margin-right: 1rem;
}
nav.menu li a {
text-decoration: none;
background: transparent;
color: rgba(65, 70, 75, 1);
letter-spacing: 0.05em;
text-transform: uppercase;
}
nav.menu li a:hover,
nav.menu li a:active,
nav.menu li a:focus {
background: inherit;
color: darkgray;
}

View file

@ -0,0 +1,47 @@
/* We utilize the html5 summary tags in order to create a post archive */
/* with built-in folding. */
details {
border-radius: 3px;
}
details summary {
vertical-align: top;
padding: .3em .5em;
outline: none;
/*color: rgba(65, 70, 75, 1);*/
}
details summary.year {
font-size: 1.5rem;
}
// details[open] summary {
// }
/* Table of Contents */
.toc summary {
font-size: 1.5rem;
margin-bottom: -1.5rem;
padding-left: 0;
}
.toc {
// float: right;
/*padding: 0rem 1rem 1rem 1rem;*/
/*margin-top: 1rem;*/
// border-left: 1px solid #eee;
}
.toc ul {
list-style: none;
display: block;
/*margin-top: 0.75rem;*/
padding: 0;
width: 87.5%;
}
.toc li {
line-height: 0.5rem;
margin: 1rem;
}

114
assets/scss/general.scss Normal file
View file

@ -0,0 +1,114 @@
/* ------------------------------------------------------------------------ */
/* hugo-tufte.css */
/* Contains extensions to the original tufte.css styles to */
/* accomodate a blog-like site. */
/* ------------------------------------------------------------------------ */
@import url("https://fonts.googleapis.com/css2?family=Fira+Code:wght@351&display=swap");
/* When setting the primary font stack, apply it to the Pure grid units along */
/* with `html`, `button`, `input`, `select`, and `textarea`. Pure Grids use */
/* specific font stacks to ensure the greatest OS/browser compatibility. */
html,
button,
input,
select,
textarea,
p,
nav,
section,
article,
header,
footer,
.pure-g [class*="pure-u"] {
font-family: "et-book", -apple-system, "San Francisco", "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell",
"Open Sans", "Helvetica Neue", "Lucida Grand", sans-serif;
}
p {
text-align: justify;
}
code {
font-family: "Fira Code", Consolas, "Liberation Mono", Menlo, Courier, monospace;
font-size: 1.125rem;
line-height: 1.6;
}
.sidenote,
.marginnote {
margin-right: -55%;
width: 45%;
}
/* ------------------------------------------------------------------------ */
/* Generic content, such as the index list pages */
/* ------------------------------------------------------------------------ */
/* Content Title styling. This is mostly to avoid underlying links. */
h1.content-title {
/*max-width: 50rem;*/
}
h1.content-title a:link,
h1.content-title a:visited {
background: transparent;
text-decoration: none;
color: inherit;
}
h1.content-title a:hover,
h1.content-title a:focus {
color: darkgray;
}
/* ------------------------------------------------------------------------ */
/* Styling for listing pages. */
/* ------------------------------------------------------------------------ */
.list-page {
ul {
list-style-type: none;
margin: -0.25em;
width: 87.5%;
max-width: 45rem;
}
li {
margin: 0;
/*font-size: 95%;*/
}
}
.list-page .list-date {
display: inline;
font-size: 0.75em;
/* padding-right: 2em; */
/* margin-right: 2em; */
}
table:not(.lntable) {
margin-top: 1em;
font-size: 1.4rem;
width: auto; /* making booktabs style tables the unstyled default in case someone uses Markdown styling */
/* margin: 0 auto; */
/* border-spacing: 0px; */
border-top: 2px solid #111;
border-bottom: 2px solid #111;
}
table:not(.lntable) th,
table:not(.lntable) td {
font-size: 1.25rem;
line-height: 1.71428571;
}
table:not(.lntable) td {
padding-right: 0.75em;
}
table.lntable {
td.lntd {
padding: 0em;
}
border-spacing: 0;
padding: 0;
}

View file

@ -1,6 +1,6 @@
$ht-code-bgcolor: #282a36;
@import "syntax-dark.scss";
@import "syntax/syntax-dark.scss";
.highlight {
&::-webkit-scrollbar {

View file

@ -1,6 +1,6 @@
$ht-code-bgcolor: #dde2ff;
@import "syntax-light.scss";
@import "syntax/syntax-light.scss";
.highlight {
&::-webkit-scrollbar {

View file

@ -1,333 +1,17 @@
/* ------------------------------------------------------------------------ */
/* hugo-tufte.css */
/* Contains extensions to the original tufte.css styles to */
/* accomodate a blog-like site. */
/* ------------------------------------------------------------------------ */
// VENDOR
@import "vendor/normalize/import-now";
@import "vendor/tufte.scss";
@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@351&display=swap');
// OUR CODE
@import "general";
/* When setting the primary font stack, apply it to the Pure grid units along */
/* with `html`, `button`, `input`, `select`, and `textarea`. Pure Grids use */
/* specific font stacks to ensure the greatest OS/browser compatibility. */
html, button, input, select, textarea, p, nav, section, article, header, footer, .pure-g [class *= "pure-u"] {
font-family: "et-book", -apple-system, "San Francisco", "Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Open Sans","Helvetica Neue", "Lucida Grand", sans-serif;
}
/// PAGES
@import "pages/footer";
p {
text-align: justify;
}
code {
font-family: "Fira Code", Consolas, "Liberation Mono", Menlo, Courier, monospace;
font-size: 1.125rem;
line-height: 1.6;
}
$ht-code-border-radius: .4em;
.highlight {
width: 55%;
overflow-x: scroll;
border-radius: $ht-code-border-radius;
&>div.chroma>table.lntable{
margin: $ht-code-border-radius 0 $ht-code-border-radius 0;
& td:first-of-type {
& span:not(& span>span) {
padding: 0 .75em 0 .5em;
}
}
}
&>.chroma>code {
width: max-content;
margin-top: .5em;
margin-bottom: .5em;
margin-left: .5em;
&>span.hl{
margin-left: -.5em;
padding-left: .5em;
}
}
.chroma .hl {
// border-radius: $ht-code-border-radius / 2;
display: block;
}
&::-webkit-scrollbar {
border-radius: $ht-code-border-radius;
width: 10px;
height: 1rem;
}
&::-webkit-scrollbar-thumb {
border-radius: $ht-code-border-radius;
}
}
.highlight .lntable {
overflow: initial;
}
.highlight pre {
margin: 0;
}
.highlight pre code {
display: block;
font-size: 1rem;
}
.sidenote, .marginnote {
margin-right: -55%;
width: 45%;
}
/* ------------------------------------------------------------------------ */
/* Brand details, such as a sidebar or top display. */
/* ------------------------------------------------------------------------ */
header.brand{
margin-top: 0.5em;
}
/* Main brand title */
header.brand h1 {
margin: 0;
font-weight: 400;
color: rgba(65, 70, 75, 1);
}
header.brand h2 {
margin: 0;
padding-top: 0rem;
/*font-style: normal;*/
/*font-weight: 200;*/
color: rgba(100, 105, 110, 1);
}
header.brand hr {
text-align: left;
margin-left: 0;
width: 75%;
border-color: rgba(250, 250, 250, 0.25);
}
nav.menu ul {
list-style: none;
display: block;
/*text-align:center;*/
margin-top: 0.75rem;
padding: 0;
max-width: 45rem;
/* Width is the same as tufte.css body */
font-size: .9rem;
width: 87.5%;
}
nav.menu li {
display: inline-block;
margin-right: 1rem;
}
nav.menu li a {
text-decoration: none;
background: transparent;
color: rgba(65, 70, 75, 1);
letter-spacing: 0.05em;
text-transform: uppercase;
}
nav.menu li a:hover,
nav.menu li a:active,
nav.menu li a:focus {
background: inherit;
color: darkgray;
}
/* ------------------------------------------------------------------------ */
/* Generic content, such as the index list pages */
/* ------------------------------------------------------------------------ */
/* Content Title styling. This is mostly to avoid underlying links. */
h1.content-title {
/*max-width: 50rem;*/
}
h1.content-title a:link,
h1.content-title a:visited {
background: transparent;
text-decoration: none;
color: inherit;
}
h1.content-title a:hover,
h1.content-title a:focus {
color: darkgray;
}
/* Content meta-data such as author, publication date, etc. */
.content-meta {
display: block;
/*color: rgba(155, 155, 155, 1);*/
color: rgba(100, 105, 110, 1);
font-size: 1.1rem;
margin-top: 1em;
}
.content-meta .author {
/*color: rgb(90, 20, 55)*/
color: rgba(65, 70, 75, 1);
}
.post-avatar {
border-radius: 50px;
float: right;
margin-left: 1em;
}
/* ------------------------------------------------------------------------ */
/* Styling for listing pages. */
/* ------------------------------------------------------------------------ */
.list-page {
ul {
list-style-type: none;
margin: -0.25em;
width: 87.5%;
max-width: 45rem;
}
li {
margin: 0;
/*font-size: 95%;*/
}
}
.list-page
.list-date {
display: inline;
font-size: 0.75em;
/* padding-right: 2em; */
/* margin-right: 2em; */
}
/* Table of Contents */
.toc summary {
font-size: 1.5rem;
margin-bottom: -1.5rem;
padding-left: 0;
}
.toc {
/*float: right;*/
/*padding: 0rem 1rem 1rem 1rem;*/
/*margin-top: 1rem;*/
/*border-left: 1px solid #eee;*/
}
.toc ul {
list-style: none;
display: block;
/*margin-top: 0.75rem;*/
padding: 0;
width: 87.5%;
}
.toc li {
line-height: 0.5rem;
margin: 1rem;
}
table:not(.lntable) {
margin-top: 1em;
font-size: 1.4rem;
width: auto; /* making booktabs style tables the unstyled default in case someone uses Markdown styling */
/* margin: 0 auto; */
/* border-spacing: 0px; */
border-top: 2px solid #111;
border-bottom: 2px solid #111;
}
table:not(.lntable) th, table:not(.lntable) td{
font-size: 1.25rem;
line-height: 1.71428571;
}
table:not(.lntable) td {
padding-right: 0.75em;
}
table.lntable
{
td.lntd {
padding: 0em;
}
border-spacing: 0;
padding: 0;
}
/* Footer, but with a different name to avoid conflicts with tufte.css */
footer.page-footer{
padding-top: 1em;
margin-top: 3em;
color: #aaa;
width: 95%;
max-width: 45rem;
}
footer.page-footer p {
font-size: 1.2rem;
margin: 0em;
/* light font looked odd on chrome */
/*font-weight: lighter;*/
}
footer.page-footer a {
color: rgba(65, 70, 75, 1);
text-decoration: none;
background: transparent;
}
footer.page-footer hr {
text-align: left;
margin-left: 0;
width: 100%;
border-color: rgba(250, 250, 250, 0.25);
}
footer.page-footer ul.page-footer-menu {
list-style: none;
display: block;
/*text-align:center;*/
margin: 0;
padding: 0;
width: unset;
}
footer.page-footer ul.page-footer-menu li {
display: inline-block;
margin-right: 0.5rem;
// font-size: 55%;
}
.copyright {
}
.copyright p {
font-size: 90%;
}
/* ------------------------------------------------------------------------ */
/* Post Archive. */
/* ------------------------------------------------------------------------ */
/* We utilize the html5 summary tags in order to create a post archive */
/* with built-in folding. */
details {
border-radius: 3px;
}
details summary {
vertical-align: top;
padding: .3em .5em;
outline: none;
/*color: rgba(65, 70, 75, 1);*/
}
details summary.year {
font-size: 1.5rem;
}
details[open] summary {
}
/// COMPONENTS
@import "components/code-highlight";
@import "components/toc";
@import "components/nav";
@import "components/header";
@import "components/meta";

View file

@ -0,0 +1,46 @@
/* Footer, but with a different name to avoid conflicts with tufte.css */
footer.page-footer{
padding-top: 1em;
margin-top: 3em;
color: #aaa;
width: 95%;
max-width: 45rem;
}
footer.page-footer p {
font-size: 1.2rem;
margin: 0em;
/* light font looked odd on chrome */
/*font-weight: lighter;*/
}
footer.page-footer a {
color: rgba(65, 70, 75, 1);
text-decoration: none;
background: transparent;
}
footer.page-footer hr {
text-align: left;
margin-left: 0;
width: 100%;
border-color: rgba(250, 250, 250, 0.25);
}
footer.page-footer ul.page-footer-menu {
list-style: none;
display: block;
/*text-align:center;*/
margin: 0;
padding: 0;
width: unset;
}
footer.page-footer ul.page-footer-menu li {
display: inline-block;
margin-right: 0.5rem;
// font-size: 55%;
}
.copyright {
}
.copyright p {
font-size: 90%;
}

View file

@ -1,91 +1,91 @@
/* Dracula Theme v1.2.5
*
* https://github.com/zenorocha/dracula-theme
*
* Copyright 2016, All rights reserved
*
* Code licensed under the MIT license
* http://zenorocha.mit-license.org
*
* @author Rob G <wowmotty@gmail.com>
* @author Chris Bracco <chris@cbracco.me>
* @author Zeno Rocha <hi@zenorocha.com>
*/
.highlight .hl { background-color: scale-color($ht-code-bgcolor, $lightness: 32%, $saturation: -40%) }
.highlight { background: $ht-code-bgcolor; color: #f8f8f2 }
.highlight .c { color: #6272a4 } /* Comment */
.highlight .err { color: #f8f8f2 } /* Error */
.highlight .g { color: #f8f8f2 } /* Generic */
.highlight .k { color: #ff79c6 } /* Keyword */
.highlight .l { color: #f8f8f2 } /* Literal */
.highlight .n { color: #f8f8f2 } /* Name */
.highlight .o { color: #ff79c6 } /* Operator */
.highlight .x { color: #f8f8f2 } /* Other */
.highlight .p { color: #f8f8f2 } /* Punctuation */
.highlight .ch { color: #6272a4 } /* Comment.Hashbang */
.highlight .cm { color: #6272a4 } /* Comment.Multiline */
.highlight .cp { color: #ff79c6 } /* Comment.Preproc */
.highlight .cpf { color: #6272a4 } /* Comment.PreprocFile */
.highlight .c1 { color: #6272a4 } /* Comment.Single */
.highlight .cs { color: #6272a4 } /* Comment.Special */
.highlight .gd { color: #8b080b } /* Generic.Deleted */
.highlight .ge { color: #f8f8f2; text-decoration: underline } /* Generic.Emph */
.highlight .gr { color: #f8f8f2 } /* Generic.Error */
.highlight .gh { color: #f8f8f2; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #f8f8f2; font-weight: bold } /* Generic.Inserted */
.highlight .go { color: #44475a } /* Generic.Output */
.highlight .gp { color: #f8f8f2 } /* Generic.Prompt */
.highlight .gs { color: #f8f8f2 } /* Generic.Strong */
.highlight .gu { color: #f8f8f2; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #f8f8f2 } /* Generic.Traceback */
.highlight .kc { color: #ff79c6 } /* Keyword.Constant */
.highlight .kd { color: #8be9fd; font-style: italic } /* Keyword.Declaration */
.highlight .kn { color: #ff79c6 } /* Keyword.Namespace */
.highlight .kp { color: #ff79c6 } /* Keyword.Pseudo */
.highlight .kr { color: #ff79c6 } /* Keyword.Reserved */
.highlight .kt { color: #8be9fd } /* Keyword.Type */
.highlight .ld { color: #f8f8f2 } /* Literal.Date */
.highlight .m { color: #bd93f9 } /* Literal.Number */
.highlight .s { color: #f1fa8c } /* Literal.String */
.highlight .na { color: #50fa7b } /* Name.Attribute */
.highlight .nb { color: #8be9fd; font-style: italic } /* Name.Builtin */
.highlight .nc { color: #50fa7b } /* Name.Class */
.highlight .no { color: #f8f8f2 } /* Name.Constant */
.highlight .nd { color: #f8f8f2 } /* Name.Decorator */
.highlight .ni { color: #f8f8f2 } /* Name.Entity */
.highlight .ne { color: #f8f8f2 } /* Name.Exception */
.highlight .nf { color: #50fa7b } /* Name.Function */
.highlight .nl { color: #8be9fd; font-style: italic } /* Name.Label */
.highlight .nn { color: #f8f8f2 } /* Name.Namespace */
.highlight .nx { color: #f8f8f2 } /* Name.Other */
.highlight .py { color: #f8f8f2 } /* Name.Property */
.highlight .nt { color: #ff79c6 } /* Name.Tag */
.highlight .nv { color: #8be9fd; font-style: italic } /* Name.Variable */
.highlight .ow { color: #ff79c6 } /* Operator.Word */
.highlight .w { color: #f8f8f2 } /* Text.Whitespace */
.highlight .mb { color: #bd93f9 } /* Literal.Number.Bin */
.highlight .mf { color: #bd93f9 } /* Literal.Number.Float */
.highlight .mh { color: #bd93f9 } /* Literal.Number.Hex */
.highlight .mi { color: #bd93f9 } /* Literal.Number.Integer */
.highlight .mo { color: #bd93f9 } /* Literal.Number.Oct */
.highlight .sa { color: #f1fa8c } /* Literal.String.Affix */
.highlight .sb { color: #f1fa8c } /* Literal.String.Backtick */
.highlight .sc { color: #f1fa8c } /* Literal.String.Char */
.highlight .dl { color: #f1fa8c } /* Literal.String.Delimiter */
.highlight .sd { color: #f1fa8c } /* Literal.String.Doc */
.highlight .s2 { color: #f1fa8c } /* Literal.String.Double */
.highlight .se { color: #f1fa8c } /* Literal.String.Escape */
.highlight .sh { color: #f1fa8c } /* Literal.String.Heredoc */
.highlight .si { color: #f1fa8c } /* Literal.String.Interpol */
.highlight .sx { color: #f1fa8c } /* Literal.String.Other */
.highlight .sr { color: #f1fa8c } /* Literal.String.Regex */
.highlight .s1 { color: #f1fa8c } /* Literal.String.Single */
.highlight .ss { color: #f1fa8c } /* Literal.String.Symbol */
.highlight .bp { color: #f8f8f2; font-style: italic } /* Name.Builtin.Pseudo */
.highlight .fm { color: #50fa7b } /* Name.Function.Magic */
.highlight .vc { color: #8be9fd; font-style: italic } /* Name.Variable.Class */
.highlight .vg { color: #8be9fd; font-style: italic } /* Name.Variable.Global */
.highlight .vi { color: #8be9fd; font-style: italic } /* Name.Variable.Instance */
.highlight .vm { color: #8be9fd; font-style: italic } /* Name.Variable.Magic */
/* Dracula Theme v1.2.5
*
* https://github.com/zenorocha/dracula-theme
*
* Copyright 2016, All rights reserved
*
* Code licensed under the MIT license
* http://zenorocha.mit-license.org
*
* @author Rob G <wowmotty@gmail.com>
* @author Chris Bracco <chris@cbracco.me>
* @author Zeno Rocha <hi@zenorocha.com>
*/
.highlight .hl { background-color: scale-color($ht-code-bgcolor, $lightness: 32%, $saturation: -40%) }
.highlight { background: $ht-code-bgcolor; color: #f8f8f2 }
.highlight .c { color: #6272a4 } /* Comment */
.highlight .err { color: #f8f8f2 } /* Error */
.highlight .g { color: #f8f8f2 } /* Generic */
.highlight .k { color: #ff79c6 } /* Keyword */
.highlight .l { color: #f8f8f2 } /* Literal */
.highlight .n { color: #f8f8f2 } /* Name */
.highlight .o { color: #ff79c6 } /* Operator */
.highlight .x { color: #f8f8f2 } /* Other */
.highlight .p { color: #f8f8f2 } /* Punctuation */
.highlight .ch { color: #6272a4 } /* Comment.Hashbang */
.highlight .cm { color: #6272a4 } /* Comment.Multiline */
.highlight .cp { color: #ff79c6 } /* Comment.Preproc */
.highlight .cpf { color: #6272a4 } /* Comment.PreprocFile */
.highlight .c1 { color: #6272a4 } /* Comment.Single */
.highlight .cs { color: #6272a4 } /* Comment.Special */
.highlight .gd { color: #8b080b } /* Generic.Deleted */
.highlight .ge { color: #f8f8f2; text-decoration: underline } /* Generic.Emph */
.highlight .gr { color: #f8f8f2 } /* Generic.Error */
.highlight .gh { color: #f8f8f2; font-weight: bold } /* Generic.Heading */
.highlight .gi { color: #f8f8f2; font-weight: bold } /* Generic.Inserted */
.highlight .go { color: #44475a } /* Generic.Output */
.highlight .gp { color: #f8f8f2 } /* Generic.Prompt */
.highlight .gs { color: #f8f8f2 } /* Generic.Strong */
.highlight .gu { color: #f8f8f2; font-weight: bold } /* Generic.Subheading */
.highlight .gt { color: #f8f8f2 } /* Generic.Traceback */
.highlight .kc { color: #ff79c6 } /* Keyword.Constant */
.highlight .kd { color: #8be9fd; font-style: italic } /* Keyword.Declaration */
.highlight .kn { color: #ff79c6 } /* Keyword.Namespace */
.highlight .kp { color: #ff79c6 } /* Keyword.Pseudo */
.highlight .kr { color: #ff79c6 } /* Keyword.Reserved */
.highlight .kt { color: #8be9fd } /* Keyword.Type */
.highlight .ld { color: #f8f8f2 } /* Literal.Date */
.highlight .m { color: #bd93f9 } /* Literal.Number */
.highlight .s { color: #f1fa8c } /* Literal.String */
.highlight .na { color: #50fa7b } /* Name.Attribute */
.highlight .nb { color: #8be9fd; font-style: italic } /* Name.Builtin */
.highlight .nc { color: #50fa7b } /* Name.Class */
.highlight .no { color: #f8f8f2 } /* Name.Constant */
.highlight .nd { color: #f8f8f2 } /* Name.Decorator */
.highlight .ni { color: #f8f8f2 } /* Name.Entity */
.highlight .ne { color: #f8f8f2 } /* Name.Exception */
.highlight .nf { color: #50fa7b } /* Name.Function */
.highlight .nl { color: #8be9fd; font-style: italic } /* Name.Label */
.highlight .nn { color: #f8f8f2 } /* Name.Namespace */
.highlight .nx { color: #f8f8f2 } /* Name.Other */
.highlight .py { color: #f8f8f2 } /* Name.Property */
.highlight .nt { color: #ff79c6 } /* Name.Tag */
.highlight .nv { color: #8be9fd; font-style: italic } /* Name.Variable */
.highlight .ow { color: #ff79c6 } /* Operator.Word */
.highlight .w { color: #f8f8f2 } /* Text.Whitespace */
.highlight .mb { color: #bd93f9 } /* Literal.Number.Bin */
.highlight .mf { color: #bd93f9 } /* Literal.Number.Float */
.highlight .mh { color: #bd93f9 } /* Literal.Number.Hex */
.highlight .mi { color: #bd93f9 } /* Literal.Number.Integer */
.highlight .mo { color: #bd93f9 } /* Literal.Number.Oct */
.highlight .sa { color: #f1fa8c } /* Literal.String.Affix */
.highlight .sb { color: #f1fa8c } /* Literal.String.Backtick */
.highlight .sc { color: #f1fa8c } /* Literal.String.Char */
.highlight .dl { color: #f1fa8c } /* Literal.String.Delimiter */
.highlight .sd { color: #f1fa8c } /* Literal.String.Doc */
.highlight .s2 { color: #f1fa8c } /* Literal.String.Double */
.highlight .se { color: #f1fa8c } /* Literal.String.Escape */
.highlight .sh { color: #f1fa8c } /* Literal.String.Heredoc */
.highlight .si { color: #f1fa8c } /* Literal.String.Interpol */
.highlight .sx { color: #f1fa8c } /* Literal.String.Other */
.highlight .sr { color: #f1fa8c } /* Literal.String.Regex */
.highlight .s1 { color: #f1fa8c } /* Literal.String.Single */
.highlight .ss { color: #f1fa8c } /* Literal.String.Symbol */
.highlight .bp { color: #f8f8f2; font-style: italic } /* Name.Builtin.Pseudo */
.highlight .fm { color: #50fa7b } /* Name.Function.Magic */
.highlight .vc { color: #8be9fd; font-style: italic } /* Name.Variable.Class */
.highlight .vg { color: #8be9fd; font-style: italic } /* Name.Variable.Global */
.highlight .vi { color: #8be9fd; font-style: italic } /* Name.Variable.Instance */
.highlight .vm { color: #8be9fd; font-style: italic } /* Name.Variable.Magic */
.highlight .il { color: #bd93f9 } /* Literal.Number.Integer.Long */

3
assets/scss/vendor/_normalize.scss vendored Normal file
View file

@ -0,0 +1,3 @@
@import 'normalize/variables';
@import 'normalize/vertical-rhythm';
@import 'normalize/normalize-mixin';

View file

@ -0,0 +1,11 @@
// Import Now
//
// If you import this module directly, it will immediately output all the CSS
// needed to normalize default HTML elements across all browsers.
//
// ```
// @import "normalize/import-now";
// ```
@import '../normalize';
@include normalize();

View file

@ -0,0 +1,666 @@
// Helper function for the normalize() mixin.
@function _normalize-include($section, $exclude: null) {
// Initialize the global variables needed by this function.
@if not global_variable_exists(_normalize-include) {
$_normalize-include: () !global;
$_normalize-exclude: () !global;
}
// Since we are given 2 parameters, set the global variables.
@if $exclude != null {
$include: $section;
// Sass doesn't have static variables, so the work-around is to stuff these
// values into global variables so we can access them in future calls.
$_normalize-include: if(type-of($include) == 'list', $include, ($include)) !global;
$_normalize-exclude: if(type-of($exclude) == 'list', $exclude, ($exclude)) !global;
@return true;
}
// Check if $section is in the $include list.
@if index($_normalize-include, $section) {
@return true;
}
// If $include is set to (all), make sure $section is not in $exclude.
@else if not index($_normalize-exclude, $section) and index($_normalize-include, all) {
@return true;
}
@return false;
}
@mixin normalize($include: (all), $exclude: ()) {
// Initialize the helper function by passing it this mixin's parameters.
$init: _normalize-include($include, $exclude);
// If we've customized any font variables, we'll need extra properties.
@if $base-line-height != 24px
or $base-unit != 'em'
or $h2-font-size != 1.5 * $base-font-size
or $h3-font-size != 1.17 * $base-font-size
or $h4-font-size != 1 * $base-font-size
or $h5-font-size != 0.83 * $base-font-size
or $h6-font-size != 0.67 * $base-font-size {
$normalize-vertical-rhythm: true !global;
}
/*! normalize-scss | MIT/GPLv2 License | bit.ly/normalize-scss */
@if _normalize-include(document) {
/* Document
========================================================================== */
/**
* 1. Correct the line height in all browsers.
* 2. Prevent adjustments of font size after orientation changes in
* IE on Windows Phone and in iOS.
*/
html {
@if $base-font-family {
/* Change the default font family in all browsers (opinionated). */
font-family: $base-font-family;
}
@if $base-font-size != 16px or $normalize-vertical-rhythm {
// Correct old browser bug that prevented accessible resizing of text
// when root font-size is set with px or em.
font-size: ($base-font-size / 16px) * 100%;
}
@if $normalize-vertical-rhythm {
line-height: ($base-line-height / $base-font-size) * 1em; /* 1 */
}
@else {
line-height: 1.15; /* 1 */
}
-ms-text-size-adjust: 100%; /* 2 */
-webkit-text-size-adjust: 100%; /* 2 */
}
}
@if _normalize-include(sections) {
/* Sections
========================================================================== */
/**
* Remove the margin in all browsers (opinionated).
*/
body {
margin: 0;
}
/**
* Add the correct display in IE 9-.
*/
article,
aside,
footer,
header,
nav,
section {
display: block;
}
/**
* Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari.
*/
h1 {
@include normalize-font-size($h1-font-size);
@if $normalize-vertical-rhythm {
@include normalize-line-height($h1-font-size);
}
@if $normalize-vertical-rhythm {
/* Set 1 unit of vertical rhythm on the top and bottom margins. */
@include normalize-margin(1 0, $h1-font-size);
}
@else {
margin: 0.67em 0;
}
}
@if $normalize-vertical-rhythm {
h2 {
@include normalize-font-size($h2-font-size);
@include normalize-line-height($h2-font-size);
@include normalize-margin(1 0, $h2-font-size);
}
h3 {
@include normalize-font-size($h3-font-size);
@include normalize-line-height($h3-font-size);
@include normalize-margin(1 0, $h3-font-size);
}
h4 {
@include normalize-font-size($h4-font-size);
@include normalize-line-height($h4-font-size);
@include normalize-margin(1 0, $h4-font-size);
}
h5 {
@include normalize-font-size($h5-font-size);
@include normalize-line-height($h5-font-size);
@include normalize-margin(1 0, $h5-font-size);
}
h6 {
@include normalize-font-size($h6-font-size);
@include normalize-line-height($h6-font-size);
@include normalize-margin(1 0, $h6-font-size);
}
}
}
@if _normalize-include(grouping) {
/* Grouping content
========================================================================== */
@if $normalize-vertical-rhythm {
/**
* Set 1 unit of vertical rhythm on the top and bottom margin.
*/
blockquote {
@include normalize-margin(1 $indent-amount);
}
dl,
ol,
ul {
@include normalize-margin(1 0);
}
/**
* Turn off margins on nested lists.
*/
ol,
ul {
ol,
ul {
margin: 0;
}
}
dd {
margin: 0 0 0 $indent-amount;
}
ol,
ul {
padding: 0 0 0 $indent-amount;
}
}
/**
* Add the correct display in IE 9-.
*/
figcaption,
figure {
display: block;
}
/**
* Add the correct margin in IE 8.
*/
figure {
@if $normalize-vertical-rhythm {
@include normalize-margin(1 $indent-amount);
}
@else {
margin: 1em $indent-amount;
}
}
/**
* 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE.
*/
hr {
box-sizing: content-box; /* 1 */
height: 0; /* 1 */
overflow: visible; /* 2 */
}
/**
* Add the correct display in IE.
*/
main {
display: block;
}
@if $normalize-vertical-rhythm {
/**
* Set 1 unit of vertical rhythm on the top and bottom margin.
*/
p,
pre {
@include normalize-margin(1 0);
}
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
pre {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
}
@if _normalize-include(links) {
/* Links
========================================================================== */
/**
* 1. Remove the gray background on active links in IE 10.
* 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
*/
a {
background-color: transparent; /* 1 */
-webkit-text-decoration-skip: objects; /* 2 */
}
}
@if _normalize-include(text) {
/* Text-level semantics
========================================================================== */
/**
* 1. Remove the bottom border in Chrome 57- and Firefox 39-.
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
abbr[title] {
border-bottom: none; /* 1 */
text-decoration: underline; /* 2 */
text-decoration: underline dotted; /* 2 */
}
/**
* Prevent the duplicate application of `bolder` by the next rule in Safari 6.
*/
b,
strong {
font-weight: inherit;
}
/**
* Add the correct font weight in Chrome, Edge, and Safari.
*/
b,
strong {
font-weight: bolder;
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
code,
kbd,
samp {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
/**
* Add the correct font style in Android 4.3-.
*/
dfn {
font-style: italic;
}
/**
* Add the correct background and color in IE 9-.
*/
mark {
background-color: #ff0;
color: #000;
}
/**
* Add the correct font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` elements from affecting the line height in
* all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
}
@if _normalize-include(embedded) {
/* Embedded content
========================================================================== */
/**
* Add the correct display in IE 9-.
*/
audio,
video {
display: inline-block;
}
/**
* Add the correct display in iOS 4-7.
*/
audio:not([controls]) {
display: none;
height: 0;
}
/**
* Remove the border on images inside links in IE 10-.
*/
img {
border-style: none;
}
/**
* Hide the overflow in IE.
*/
svg:not(:root) {
overflow: hidden;
}
}
@if _normalize-include(forms) {
/* Forms
========================================================================== */
/**
* 1. Change the font styles in all browsers (opinionated).
* 2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
font-family: if($base-font-family, $base-font-family, sans-serif); /* 1 */
font-size: 100%; /* 1 */
@if $normalize-vertical-rhythm {
line-height: ($base-line-height / $base-font-size) * 1em; /* 1 */
}
@else {
line-height: 1.15; /* 1 */
}
margin: 0; /* 2 */
}
/**
* Show the overflow in IE.
*/
button {
overflow: visible;
}
/**
* Remove the inheritance of text transform in Edge, Firefox, and IE.
* 1. Remove the inheritance of text transform in Firefox.
*/
button,
select { /* 1 */
text-transform: none;
}
/**
* 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
* controls in Android 4.
* 2. Correct the inability to style clickable types in iOS and Safari.
*/
button,
html [type="button"], /* 1 */
[type="reset"],
[type="submit"] {
-webkit-appearance: button; /* 2 */
}
button,
[type="button"],
[type="reset"],
[type="submit"] {
/**
* Remove the inner border and padding in Firefox.
*/
&::-moz-focus-inner {
border-style: none;
padding: 0;
}
/**
* Restore the focus styles unset by the previous rule.
*/
&:-moz-focusring {
outline: 1px dotted ButtonText;
}
}
/**
* Show the overflow in Edge.
*/
input {
overflow: visible;
}
/**
* 1. Add the correct box sizing in IE 10-.
* 2. Remove the padding in IE 10-.
*/
[type="checkbox"],
[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
/**
* Correct the cursor style of increment and decrement buttons in Chrome.
*/
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. Correct the odd appearance in Chrome and Safari.
* 2. Correct the outline style in Safari.
*/
[type="search"] {
-webkit-appearance: textfield; /* 1 */
outline-offset: -2px; /* 2 */
/**
* Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
*/
&::-webkit-search-cancel-button,
&::-webkit-search-decoration {
-webkit-appearance: none;
}
}
/**
* 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
-webkit-appearance: button; /* 1 */
font: inherit; /* 2 */
}
/**
* Correct the padding in Firefox.
*/
fieldset {
padding: 0.35em 0.75em 0.625em;
}
/**
* 1. Correct the text wrapping in Edge and IE.
* 2. Correct the color inheritance from `fieldset` elements in IE.
* 3. Remove the padding so developers are not caught out when they zero out
* `fieldset` elements in all browsers.
*/
legend {
box-sizing: border-box; /* 1 */
display: table; /* 1 */
max-width: 100%; /* 1 */
padding: 0; /* 3 */
color: inherit; /* 2 */
white-space: normal; /* 1 */
}
/**
* 1. Add the correct display in IE 9-.
* 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
progress {
display: inline-block; /* 1 */
vertical-align: baseline; /* 2 */
}
/**
* Remove the default vertical scrollbar in IE.
*/
textarea {
overflow: auto;
}
}
@if _normalize-include(interactive) {
/* Interactive
========================================================================== */
/*
* Add the correct display in Edge, IE, and Firefox.
*/
details {
display: block;
}
/*
* Add the correct display in all browsers.
*/
summary {
display: list-item;
}
/*
* Add the correct display in IE 9-.
*/
menu {
display: block;
@if $normalize-vertical-rhythm {
/*
* 1. Set 1 unit of vertical rhythm on the top and bottom margin.
* 2. Set consistent space for the list style image.
*/
@include normalize-margin(1 0); /* 1 */
padding: 0 0 0 $indent-amount; /* 2 */
/**
* Turn off margins on nested lists.
*/
menu &,
ol &,
ul & {
margin: 0;
}
}
}
}
@if _normalize-include(scripting) {
/* Scripting
========================================================================== */
/**
* Add the correct display in IE 9-.
*/
canvas {
display: inline-block;
}
/**
* Add the correct display in IE.
*/
template {
display: none;
}
}
@if _normalize-include(hidden) {
/* Hidden
========================================================================== */
/**
* Add the correct display in IE 10-.
*/
[hidden] {
display: none;
}
}
}

View file

@ -0,0 +1,36 @@
//
// Variables
//
// You can override the default values by setting the variables in your Sass
// before importing the normalize-scss library.
// The font size set on the root html element.
$base-font-size: 16px !default;
// The base line height determines the basic unit of vertical rhythm.
$base-line-height: 24px !default;
// The length unit in which to output vertical rhythm values.
// Supported values: px, em, rem.
$base-unit: 'em' !default;
// The default font family.
$base-font-family: null !default;
// The font sizes for h1-h6.
$h1-font-size: 2 * $base-font-size !default;
$h2-font-size: 1.5 * $base-font-size !default;
$h3-font-size: 1.17 * $base-font-size !default;
$h4-font-size: 1 * $base-font-size !default;
$h5-font-size: 0.83 * $base-font-size !default;
$h6-font-size: 0.67 * $base-font-size !default;
// The amount lists and blockquotes are indented.
$indent-amount: 40px !default;
// The following variable controls whether normalize-scss will output
// font-sizes, line-heights and block-level top/bottom margins that form a basic
// vertical rhythm on the page, which differs from the original Normalize.css.
// However, changing any of the variables above will cause
// $normalize-vertical-rhythm to be automatically set to true.
$normalize-vertical-rhythm: false !default;

View file

@ -0,0 +1,61 @@
//
// Vertical Rhythm
//
// This is the minimal amount of code needed to create vertical rhythm in our
// CSS. If you are looking for a robust solution, look at the excellent Typey
// library. @see https://github.com/jptaranto/typey
@function normalize-rhythm($value, $relative-to: $base-font-size, $unit: $base-unit) {
@if unit($value) != px {
@error "The normalize vertical-rhythm module only supports px inputs. The typey library is better.";
}
@if $unit == rem {
@return ($value / $base-font-size) * 1rem;
}
@else if $unit == em {
@return ($value / $relative-to) * 1em;
}
@else { // $unit == px
@return $value;
}
}
@mixin normalize-font-size($value, $relative-to: $base-font-size) {
@if unit($value) != 'px' {
@error "normalize-font-size() only supports px inputs. The typey library is better.";
}
font-size: normalize-rhythm($value, $relative-to);
}
@mixin normalize-rhythm($property, $values, $relative-to: $base-font-size) {
$value-list: $values;
$sep: space;
@if type-of($values) == 'list' {
$sep: list-separator($values);
}
@else {
$value-list: append((), $values);
}
$normalized-values: ();
@each $value in $value-list {
@if unitless($value) and $value != 0 {
$value: $value * normalize-rhythm($base-line-height, $relative-to);
}
$normalized-values: append($normalized-values, $value, $sep);
}
#{$property}: $normalized-values;
}
@mixin normalize-margin($values, $relative-to: $base-font-size) {
@include normalize-rhythm(margin, $values, $relative-to);
}
@mixin normalize-line-height($font-size, $min-line-padding: 2px) {
$lines: ceil($font-size / $base-line-height);
// If lines are cramped include some extra leading.
@if ($lines * $base-line-height - $font-size) < ($min-line-padding * 2) {
$lines: $lines + 1;
}
@include normalize-rhythm(line-height, $lines, $font-size);
}

458
assets/scss/vendor/tufte.scss vendored Normal file
View file

@ -0,0 +1,458 @@
/* You can find the original at https://github.com/edwardtufte/tufte-css */
/* Import ET Book styles
adapted from https://github.com/edwardtufte/et-book/blob/gh-pages/et-book.css */
@charset "UTF-8";
@font-face {
font-family: "et-book";
src: url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.eot");
src: url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.eot?#iefix") format("embedded-opentype"),
url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.woff") format("woff"),
url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.ttf") format("truetype"),
url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.svg#etbookromanosf") format("svg");
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: "et-book";
src: url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.eot");
src: url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.eot?#iefix")
format("embedded-opentype"),
url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.woff")
format("woff"),
url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.ttf")
format("truetype"),
url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.svg#etbookromanosf")
format("svg");
font-weight: normal;
font-style: italic;
}
@font-face {
font-family: "et-book";
src: url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.eot");
src: url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.eot?#iefix") format("embedded-opentype"),
url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.woff") format("woff"),
url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.ttf") format("truetype"),
url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.svg#etbookromanosf") format("svg");
font-weight: bold;
font-style: normal;
}
@font-face {
font-family: "et-book-roman-old-style";
src: url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.eot");
src: url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.eot?#iefix")
format("embedded-opentype"),
url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.woff") format("woff"),
url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.ttf") format("truetype"),
url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.svg#etbookromanosf") format("svg");
font-weight: normal;
font-style: normal;
}
/* Tufte CSS styles */
html {
font-size: 15px;
}
body {
width: 87.5%;
margin-left: auto;
margin-right: auto;
padding-left: 12.5%;
font-family: et-book, Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif;
background-color: #fffff8;
color: #111;
max-width: 1400px;
counter-reset: sidenote-counter;
}
h1 {
font-weight: 400;
margin-top: 4rem;
margin-bottom: 1.5rem;
font-size: 3.2rem;
line-height: 1;
}
h2 {
font-style: italic;
font-weight: 400;
margin-top: 2.1rem;
margin-bottom: 0;
font-size: 2.2rem;
line-height: 1;
}
h3 {
font-style: italic;
font-weight: 400;
font-size: 1.7rem;
margin-top: 2rem;
margin-bottom: 0;
line-height: 1;
}
p.subtitle {
font-style: italic;
margin-top: 1rem;
margin-bottom: 1rem;
font-size: 1.8rem;
display: block;
line-height: 1;
}
.numeral {
font-family: et-book-roman-old-style;
}
.danger {
color: red;
}
article {
position: relative;
padding: 5rem 0rem;
}
section {
padding-top: 1rem;
padding-bottom: 1rem;
}
p,
ol,
ul {
font-size: 1.4rem;
}
p {
line-height: 2rem;
margin-top: 1.4rem;
margin-bottom: 1.4rem;
padding-right: 0;
vertical-align: baseline;
}
/* Chapter Epigraphs */
div.epigraph {
margin: 5em 0;
}
div.epigraph > blockquote {
margin-top: 3em;
margin-bottom: 3em;
}
div.epigraph > blockquote,
div.epigraph > blockquote > p {
font-style: italic;
}
div.epigraph > blockquote > footer {
font-style: normal;
}
div.epigraph > blockquote > footer > cite {
font-style: italic;
}
/* end chapter epigraphs styles */
blockquote {
font-size: 1.4rem;
}
blockquote p {
width: 50%;
}
blockquote footer {
width: 50%;
font-size: 1.1rem;
text-align: right;
}
ol,
ul {
width: 45%;
-webkit-padding-start: 5%;
-webkit-padding-end: 5%;
}
li {
padding: 0.5rem 0;
}
figure {
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
max-width: 55%;
-webkit-margin-start: 0;
-webkit-margin-end: 0;
margin: 0 0 3em 0;
}
figcaption {
float: right;
clear: right;
margin-right: -48%;
margin-top: 0;
margin-bottom: 0;
font-size: 1.1rem;
line-height: 1.6;
vertical-align: baseline;
position: relative;
max-width: 40%;
}
figure.fullwidth figcaption {
margin-right: 24%;
}
/* Links: replicate underline that clears descenders */
a:link,
a:visited {
color: inherit;
}
a:link {
text-decoration: none;
background: -webkit-linear-gradient(#fffff8, #fffff8), -webkit-linear-gradient(#fffff8, #fffff8),
-webkit-linear-gradient(#333, #333);
background: linear-gradient(#fffff8, #fffff8), linear-gradient(#fffff8, #fffff8), linear-gradient(#333, #333);
-webkit-background-size: 0.05em 1px, 0.05em 1px, 1px 1px;
-moz-background-size: 0.05em 1px, 0.05em 1px, 1px 1px;
background-size: 0.05em 1px, 0.05em 1px, 1px 1px;
background-repeat: no-repeat, no-repeat, repeat-x;
text-shadow: 0.03em 0 #fffff8, -0.03em 0 #fffff8, 0 0.03em #fffff8, 0 -0.03em #fffff8, 0.06em 0 #fffff8,
-0.06em 0 #fffff8, 0.09em 0 #fffff8, -0.09em 0 #fffff8, 0.12em 0 #fffff8, -0.12em 0 #fffff8, 0.15em 0 #fffff8,
-0.15em 0 #fffff8;
background-position: 0% 93%, 100% 93%, 0% 93%;
}
@media screen and (-webkit-min-device-pixel-ratio: 0) {
a:link {
background-position-y: 87%, 87%, 87%;
}
}
a:link::selection {
text-shadow: 0.03em 0 #b4d5fe, -0.03em 0 #b4d5fe, 0 0.03em #b4d5fe, 0 -0.03em #b4d5fe, 0.06em 0 #b4d5fe,
-0.06em 0 #b4d5fe, 0.09em 0 #b4d5fe, -0.09em 0 #b4d5fe, 0.12em 0 #b4d5fe, -0.12em 0 #b4d5fe, 0.15em 0 #b4d5fe,
-0.15em 0 #b4d5fe;
background: #b4d5fe;
}
a:link::-moz-selection {
text-shadow: 0.03em 0 #b4d5fe, -0.03em 0 #b4d5fe, 0 0.03em #b4d5fe, 0 -0.03em #b4d5fe, 0.06em 0 #b4d5fe,
-0.06em 0 #b4d5fe, 0.09em 0 #b4d5fe, -0.09em 0 #b4d5fe, 0.12em 0 #b4d5fe, -0.12em 0 #b4d5fe, 0.15em 0 #b4d5fe,
-0.15em 0 #b4d5fe;
background: #b4d5fe;
}
/* Sidenotes, margin notes, figures, captions */
img {
max-width: 100%;
}
.sidenote,
.marginnote {
float: right;
clear: right;
margin-right: -60%;
width: 50%;
margin-top: 0;
margin-bottom: 0;
font-size: 1.1rem;
line-height: 1.3;
vertical-align: baseline;
position: relative;
}
.table-caption {
float: right;
clear: right;
margin-right: -60%;
width: 50%;
margin-top: 0;
margin-bottom: 0;
font-size: 1rem;
line-height: 1.6;
}
.sidenote-number {
counter-increment: sidenote-counter;
}
.sidenote-number:after,
.sidenote:before {
content: counter(sidenote-counter) " ";
font-family: et-book-roman-old-style;
position: relative;
vertical-align: baseline;
}
.sidenote-number:after {
content: counter(sidenote-counter);
font-size: 1rem;
top: -0.5rem;
left: 0.1rem;
}
.sidenote:before {
content: counter(sidenote-counter) " ";
top: -0.5rem;
}
p,
footer,
table,
div.table-wrapper-small,
div.supertable-wrapper > p,
div.booktabs-wrapper {
width: 55%;
}
div.fullwidth,
table.fullwidth {
width: 100%;
}
div.table-wrapper {
overflow-x: scroll;
font-family: "Trebuchet MS", "Gill Sans", "Gill Sans MT", sans-serif;
}
@media screen and (max-width: 760px) {
p,
footer {
width: 90%;
}
pre.code {
width: 87.5%;
}
ul {
width: 85%;
}
figure {
max-width: 90%;
}
figcaption,
figure.fullwidth figcaption {
margin-right: 0%;
max-width: none;
}
blockquote p,
blockquote footer {
width: 90%;
}
}
.sans {
font-family: "Gill Sans", "Gill Sans MT", Calibri, sans-serif;
letter-spacing: 0.03em;
}
.code {
font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
font-size: 1.125rem;
line-height: 1.6;
}
h1 .code,
h2 .code,
h3 .code {
font-size: 0.8em;
}
.marginnote .code,
.sidenote .code {
font-size: 1rem;
}
pre.code {
width: 52.5%;
padding-left: 2.5%;
overflow-x: scroll;
}
.fullwidth {
max-width: 90%;
clear: both;
}
span.newthought {
font-variant: small-caps;
font-size: 1.2em;
}
input.margin-toggle {
display: none;
}
label.sidenote-number {
display: inline;
}
label.margin-toggle:not(.sidenote-number) {
display: none;
}
@media (max-width: 760px) {
label.margin-toggle:not(.sidenote-number) {
display: inline;
}
.sidenote,
.marginnote {
display: none;
}
.margin-toggle:checked + .sidenote,
.margin-toggle:checked + .marginnote {
display: block;
float: left;
left: 1rem;
clear: both;
width: 95%;
margin: 1rem 2.5%;
vertical-align: baseline;
position: relative;
}
label {
cursor: pointer;
}
pre.code {
width: 90%;
padding: 0;
}
.table-caption {
display: block;
float: right;
clear: both;
width: 98%;
margin-top: 1rem;
margin-bottom: 0.5rem;
margin-left: 1%;
margin-right: 1%;
vertical-align: baseline;
position: relative;
}
div.table-wrapper,
table,
table.booktabs {
width: 85%;
}
div.table-wrapper {
border-right: 1px solid #efefef;
}
img {
width: 100%;
}
}

View file

@ -30,8 +30,6 @@
<link rel="stylesheet" href="{{ $codestyle.Permalink | relURL }}">
{{ end }}
<link rel="stylesheet" href="{{ "/css/tufte.css" | relURL }}">
{{ $htoptions := (dict "targetPath" "/css/hugo-tufte.min.css" "outputStyle" "compressed" "enableSourceMap" true) }}
{{ $htstyle := resources.Get "scss/hugo-tufte.scss" | resources.ToCSS $htoptions }}
<link rel="stylesheet" href="{{ $htstyle.Permalink | relURL }}">

18
package.json Normal file
View file

@ -0,0 +1,18 @@
{
"name": "hugo-tufte",
"version": "0.1.2",
"description": "Content centric Hugo blogging theme styled with Tufte-Css",
"repository": {
"type": "git",
"url": "git+https://github.com/slashformotion/hugo-tufte.git"
},
"author": "Slashformotion",
"license": "MIT",
"bugs": {
"url": "https://github.com/slashformotion/hugo-tufte/issues"
},
"homepage": "https://github.com/slashformotion/hugo-tufte#readme",
"dependencies": {
"normalize-scss": "^7.0.1"
}
}

View file

@ -1,455 +0,0 @@
/* Import ET Book styles
adapted from https://github.com/edwardtufte/et-book/blob/gh-pages/et-book.css */
@charset "UTF-8";
@font-face {
font-family: "et-book";
src: url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.eot");
src: url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.eot?#iefix") format("embedded-opentype"),
url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.woff") format("woff"),
url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.ttf") format("truetype"),
url("et-book/et-book-roman-line-figures/et-book-roman-line-figures.svg#etbookromanosf") format("svg");
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: "et-book";
src: url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.eot");
src: url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.eot?#iefix")
format("embedded-opentype"),
url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.woff") format("woff"),
url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.ttf")
format("truetype"),
url("et-book/et-book-display-italic-old-style-figures/et-book-display-italic-old-style-figures.svg#etbookromanosf")
format("svg");
font-weight: normal;
font-style: italic;
}
@font-face {
font-family: "et-book";
src: url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.eot");
src: url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.eot?#iefix") format("embedded-opentype"),
url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.woff") format("woff"),
url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.ttf") format("truetype"),
url("et-book/et-book-bold-line-figures/et-book-bold-line-figures.svg#etbookromanosf") format("svg");
font-weight: bold;
font-style: normal;
}
@font-face {
font-family: "et-book-roman-old-style";
src: url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.eot");
src: url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.eot?#iefix")
format("embedded-opentype"),
url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.woff") format("woff"),
url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.ttf") format("truetype"),
url("et-book/et-book-roman-old-style-figures/et-book-roman-old-style-figures.svg#etbookromanosf") format("svg");
font-weight: normal;
font-style: normal;
}
/* Tufte CSS styles */
html {
font-size: 15px;
}
body {
width: 87.5%;
margin-left: auto;
margin-right: auto;
padding-left: 12.5%;
font-family: et-book, Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif;
background-color: #fffff8;
color: #111;
max-width: 1400px;
counter-reset: sidenote-counter;
}
h1 {
font-weight: 400;
margin-top: 4rem;
margin-bottom: 1.5rem;
font-size: 3.2rem;
line-height: 1;
}
h2 {
font-style: italic;
font-weight: 400;
margin-top: 2.1rem;
margin-bottom: 0;
font-size: 2.2rem;
line-height: 1;
}
h3 {
font-style: italic;
font-weight: 400;
font-size: 1.7rem;
margin-top: 2rem;
margin-bottom: 0;
line-height: 1;
}
p.subtitle {
font-style: italic;
margin-top: 1rem;
margin-bottom: 1rem;
font-size: 1.8rem;
display: block;
line-height: 1;
}
.numeral {
font-family: et-book-roman-old-style;
}
.danger {
color: red;
}
article {
position: relative;
padding: 5rem 0rem;
}
section {
padding-top: 1rem;
padding-bottom: 1rem;
}
p,
ol,
ul {
font-size: 1.4rem;
}
p {
line-height: 2rem;
margin-top: 1.4rem;
margin-bottom: 1.4rem;
padding-right: 0;
vertical-align: baseline;
}
/* Chapter Epigraphs */
div.epigraph {
margin: 5em 0;
}
div.epigraph > blockquote {
margin-top: 3em;
margin-bottom: 3em;
}
div.epigraph > blockquote,
div.epigraph > blockquote > p {
font-style: italic;
}
div.epigraph > blockquote > footer {
font-style: normal;
}
div.epigraph > blockquote > footer > cite {
font-style: italic;
}
/* end chapter epigraphs styles */
blockquote {
font-size: 1.4rem;
}
blockquote p {
width: 50%;
}
blockquote footer {
width: 50%;
font-size: 1.1rem;
text-align: right;
}
ol,
ul {
width: 45%;
-webkit-padding-start: 5%;
-webkit-padding-end: 5%;
}
li {
padding: 0.5rem 0;
}
figure {
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
max-width: 55%;
-webkit-margin-start: 0;
-webkit-margin-end: 0;
margin: 0 0 3em 0;
}
figcaption {
float: right;
clear: right;
margin-right: -48%;
margin-top: 0;
margin-bottom: 0;
font-size: 1.1rem;
line-height: 1.6;
vertical-align: baseline;
position: relative;
max-width: 40%;
}
figure.fullwidth figcaption {
margin-right: 24%;
}
/* Links: replicate underline that clears descenders */
a:link,
a:visited {
color: inherit;
}
a:link {
text-decoration: none;
background: -webkit-linear-gradient(#fffff8, #fffff8), -webkit-linear-gradient(#fffff8, #fffff8),
-webkit-linear-gradient(#333, #333);
background: linear-gradient(#fffff8, #fffff8), linear-gradient(#fffff8, #fffff8), linear-gradient(#333, #333);
-webkit-background-size: 0.05em 1px, 0.05em 1px, 1px 1px;
-moz-background-size: 0.05em 1px, 0.05em 1px, 1px 1px;
background-size: 0.05em 1px, 0.05em 1px, 1px 1px;
background-repeat: no-repeat, no-repeat, repeat-x;
text-shadow: 0.03em 0 #fffff8, -0.03em 0 #fffff8, 0 0.03em #fffff8, 0 -0.03em #fffff8, 0.06em 0 #fffff8,
-0.06em 0 #fffff8, 0.09em 0 #fffff8, -0.09em 0 #fffff8, 0.12em 0 #fffff8, -0.12em 0 #fffff8, 0.15em 0 #fffff8,
-0.15em 0 #fffff8;
background-position: 0% 93%, 100% 93%, 0% 93%;
}
@media screen and (-webkit-min-device-pixel-ratio: 0) {
a:link {
background-position-y: 87%, 87%, 87%;
}
}
a:link::selection {
text-shadow: 0.03em 0 #b4d5fe, -0.03em 0 #b4d5fe, 0 0.03em #b4d5fe, 0 -0.03em #b4d5fe, 0.06em 0 #b4d5fe,
-0.06em 0 #b4d5fe, 0.09em 0 #b4d5fe, -0.09em 0 #b4d5fe, 0.12em 0 #b4d5fe, -0.12em 0 #b4d5fe, 0.15em 0 #b4d5fe,
-0.15em 0 #b4d5fe;
background: #b4d5fe;
}
a:link::-moz-selection {
text-shadow: 0.03em 0 #b4d5fe, -0.03em 0 #b4d5fe, 0 0.03em #b4d5fe, 0 -0.03em #b4d5fe, 0.06em 0 #b4d5fe,
-0.06em 0 #b4d5fe, 0.09em 0 #b4d5fe, -0.09em 0 #b4d5fe, 0.12em 0 #b4d5fe, -0.12em 0 #b4d5fe, 0.15em 0 #b4d5fe,
-0.15em 0 #b4d5fe;
background: #b4d5fe;
}
/* Sidenotes, margin notes, figures, captions */
img {
max-width: 100%;
}
.sidenote,
.marginnote {
float: right;
clear: right;
margin-right: -60%;
width: 50%;
margin-top: 0;
margin-bottom: 0;
font-size: 1.1rem;
line-height: 1.3;
vertical-align: baseline;
position: relative;
}
.table-caption {
float: right;
clear: right;
margin-right: -60%;
width: 50%;
margin-top: 0;
margin-bottom: 0;
font-size: 1rem;
line-height: 1.6;
}
.sidenote-number {
counter-increment: sidenote-counter;
}
.sidenote-number:after,
.sidenote:before {
content: counter(sidenote-counter) " ";
font-family: et-book-roman-old-style;
position: relative;
vertical-align: baseline;
}
.sidenote-number:after {
content: counter(sidenote-counter);
font-size: 1rem;
top: -0.5rem;
left: 0.1rem;
}
.sidenote:before {
content: counter(sidenote-counter) " ";
top: -0.5rem;
}
p,
footer,
table,
div.table-wrapper-small,
div.supertable-wrapper > p,
div.booktabs-wrapper {
width: 55%;
}
div.fullwidth,
table.fullwidth {
width: 100%;
}
div.table-wrapper {
overflow-x: scroll;
font-family: "Trebuchet MS", "Gill Sans", "Gill Sans MT", sans-serif;
}
@media screen and (max-width: 760px) {
p,
footer {
width: 90%;
}
pre.code {
width: 87.5%;
}
ul {
width: 85%;
}
figure {
max-width: 90%;
}
figcaption,
figure.fullwidth figcaption {
margin-right: 0%;
max-width: none;
}
blockquote p,
blockquote footer {
width: 90%;
}
}
.sans {
font-family: "Gill Sans", "Gill Sans MT", Calibri, sans-serif;
letter-spacing: 0.03em;
}
.code {
font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
font-size: 1.125rem;
line-height: 1.6;
}
h1 .code,
h2 .code,
h3 .code {
font-size: 0.8em;
}
.marginnote .code,
.sidenote .code {
font-size: 1rem;
}
pre.code {
width: 52.5%;
padding-left: 2.5%;
overflow-x: scroll;
}
.fullwidth {
max-width: 90%;
clear: both;
}
span.newthought {
font-variant: small-caps;
font-size: 1.2em;
}
input.margin-toggle {
display: none;
}
label.sidenote-number {
display: inline;
}
label.margin-toggle:not(.sidenote-number) {
display: none;
}
@media (max-width: 760px) {
label.margin-toggle:not(.sidenote-number) {
display: inline;
}
.sidenote,
.marginnote {
display: none;
}
.margin-toggle:checked + .sidenote,
.margin-toggle:checked + .marginnote {
display: block;
float: left;
left: 1rem;
clear: both;
width: 95%;
margin: 1rem 2.5%;
vertical-align: baseline;
position: relative;
}
label {
cursor: pointer;
}
pre.code {
width: 90%;
padding: 0;
}
.table-caption {
display: block;
float: right;
clear: both;
width: 98%;
margin-top: 1rem;
margin-bottom: 0.5rem;
margin-left: 1%;
margin-right: 1%;
vertical-align: baseline;
position: relative;
}
div.table-wrapper,
table,
table.booktabs {
width: 85%;
}
div.table-wrapper {
border-right: 1px solid #efefef;
}
img {
width: 100%;
}
}