604 lines
12 KiB
Plaintext
604 lines
12 KiB
Plaintext
|
|
/**
|
||
|
|
* LESS for magdev/resume print theme
|
||
|
|
*/
|
||
|
|
|
||
|
|
// MIXINS:START
|
||
|
|
|
||
|
|
//
|
||
|
|
// Mixins
|
||
|
|
//
|
||
|
|
.no-page-break-inside() {
|
||
|
|
page-break-after: auto;
|
||
|
|
page-break-before: auto;
|
||
|
|
page-break-inside: avoid;
|
||
|
|
}
|
||
|
|
.border-radius(@radius) {
|
||
|
|
-moz-border-radius: @radius;
|
||
|
|
-webkit-border-radius: @radius;
|
||
|
|
border-radius: @radius;
|
||
|
|
}
|
||
|
|
|
||
|
|
.border-box(@width) {
|
||
|
|
border-right: @width solid @base-accent-color;
|
||
|
|
border-bottom: (@width * 2) solid @base-background-color;
|
||
|
|
}
|
||
|
|
|
||
|
|
.clearfix() {
|
||
|
|
&::after {
|
||
|
|
display: block;
|
||
|
|
content: '.';
|
||
|
|
clear: both;
|
||
|
|
visibility: hidden;
|
||
|
|
height: 1px;
|
||
|
|
font-size: 1px;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// MIXINS:END
|
||
|
|
|
||
|
|
// VARS:START
|
||
|
|
|
||
|
|
//
|
||
|
|
// Variables
|
||
|
|
//
|
||
|
|
|
||
|
|
// Base styles
|
||
|
|
@base-font-family: Arial, Verdana;
|
||
|
|
@base-font-size: 10pt;
|
||
|
|
@base-font-color: #222;
|
||
|
|
@base-background-color: #fff;
|
||
|
|
@base-accent-color: #68d19b;
|
||
|
|
|
||
|
|
// Page format
|
||
|
|
@page-format: A4 portrait;
|
||
|
|
@page-margins: 11mm 17mm 17mm 17mm;
|
||
|
|
|
||
|
|
// Typography
|
||
|
|
@headline-small-font-style: italic;
|
||
|
|
@headline-font-weight: bold;
|
||
|
|
@headline-border-style: 1px solid @base-accent-color;
|
||
|
|
|
||
|
|
@headline-1-size: (@base-font-size + 8pt);
|
||
|
|
@headline-1-size-small: (@headline-1-size - 5pt);
|
||
|
|
@headline-1-color: @base-font-color;
|
||
|
|
@headline-1-color-small: lighten(@base-font-color, 20%);
|
||
|
|
|
||
|
|
@headline-2-size: (@base-font-size + 6pt);
|
||
|
|
@headline-2-size-small: (@headline-2-size - 4pt);
|
||
|
|
@headline-2-color: @base-font-color;
|
||
|
|
@headline-2-color-small: lighten(@base-font-color, 20%);
|
||
|
|
|
||
|
|
@headline-3-size: @base-font-size;
|
||
|
|
@headline-3-size-small: (@headline-3-size - 2pt);
|
||
|
|
@headline-3-color: lighten(@base-font-color, 30%);
|
||
|
|
@headline-3-color-small: lighten(@base-font-color, 15%);
|
||
|
|
@headline-3-spacing: .4pt;
|
||
|
|
@headline-3-transform: uppercase;
|
||
|
|
|
||
|
|
@headline-4-size: (@base-font-size + 1pt);
|
||
|
|
@headline-4-size-small: (@headline-4-size - 2pt);
|
||
|
|
@headline-4-color: @base-font-color;
|
||
|
|
@headline-4-color-small: lighten(@base-font-color, 20%);
|
||
|
|
|
||
|
|
@paragraph-size: @base-font-size;
|
||
|
|
@paragraph-size-small: (@paragraph-size - 2pt);
|
||
|
|
@paragraph-color: @base-font-color;
|
||
|
|
@paragraph-text-align: left;
|
||
|
|
|
||
|
|
@date-base-color: lighten(@base-font-color, 30%);
|
||
|
|
@date-start-color: @base-accent-color;
|
||
|
|
|
||
|
|
|
||
|
|
// Whitespace
|
||
|
|
@headline-margin: .5cm 0 .2cm;
|
||
|
|
@paragraph-margin: 0 0 .3cm;
|
||
|
|
@paragraph-line-height: (@paragraph-size + 2pt);
|
||
|
|
@column-space: .3cm;
|
||
|
|
|
||
|
|
@blockquote-vertical-space: .5cm;
|
||
|
|
@blockquote-horizontal-wide: 3cm;
|
||
|
|
@blockquote-horizontal-narrow: 1.5cm;
|
||
|
|
|
||
|
|
// Cover
|
||
|
|
@cover-border-width: 6pt;
|
||
|
|
@cover-text-position: 18cm 0 0 8cm;
|
||
|
|
|
||
|
|
// Intro
|
||
|
|
@intro-paragraph-size: (@paragraph-size + .5pt);
|
||
|
|
@intro-paragraph-line-height: (@intro-paragraph-size + 3pt);
|
||
|
|
@intro-photo-border-radius: 0;
|
||
|
|
@intro-photo-margin: .15cm 0 .3cm .5cm;
|
||
|
|
@intro-photo-align: right;
|
||
|
|
@intro-text-inset: .1cm;
|
||
|
|
@intro-text-right-inset: .5cm;
|
||
|
|
@intro-text-align: justify;
|
||
|
|
|
||
|
|
// Resume
|
||
|
|
@resume-column-space: @column-space;
|
||
|
|
@resume-border-width: @cv-border-width;
|
||
|
|
@resume-label-color: lighten(@base-font-color, 30%);
|
||
|
|
@resume-gutter-padding: .6cm;
|
||
|
|
@resume-text-inset: .1cm;
|
||
|
|
@resume-text-align: left;
|
||
|
|
|
||
|
|
// CV
|
||
|
|
@cv-column-space: @column-space;
|
||
|
|
@cv-border-width: 4pt;
|
||
|
|
@cv-label-color: lighten(@base-font-color, 30%);
|
||
|
|
@cv-text-align: @resume-text-align;
|
||
|
|
|
||
|
|
|
||
|
|
// VARS:END
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
//
|
||
|
|
// Styles
|
||
|
|
//
|
||
|
|
|
||
|
|
|
||
|
|
// Reset
|
||
|
|
* {
|
||
|
|
margin: 0;
|
||
|
|
padding: 0;
|
||
|
|
border: 0;
|
||
|
|
font-weight: normal;
|
||
|
|
font-style: normal;
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
// Grid
|
||
|
|
.row {
|
||
|
|
display: flex;
|
||
|
|
}
|
||
|
|
.col {
|
||
|
|
flex: 1;
|
||
|
|
}
|
||
|
|
|
||
|
|
.col-border { flex: 0 0 1%; }
|
||
|
|
.col-tenth { flex: 0 0 10%; }
|
||
|
|
.col-eighth { flex: 0 0 12.5%; }
|
||
|
|
.col-fifteen { flex: 0 0 15%; }
|
||
|
|
.col-fifth { flex: 0 0 20%; }
|
||
|
|
.col-quarter { flex: 0 0 25%; }
|
||
|
|
.col-third { flex: 0 0 33.3333334%; }
|
||
|
|
.col-half { flex: 0 0 50%; }
|
||
|
|
.col-resume { flex: 0 0 48.5%; }
|
||
|
|
.col-golden-narrow { flex: 0 0 38%; }
|
||
|
|
.col-golden-wide { flex: 0 0 62%; }
|
||
|
|
|
||
|
|
|
||
|
|
// Page settings for printing
|
||
|
|
@page {
|
||
|
|
size: @page-format;
|
||
|
|
margin: @page-margins;
|
||
|
|
}
|
||
|
|
|
||
|
|
// Base elements
|
||
|
|
html, body {
|
||
|
|
background-color: @base-background-color;
|
||
|
|
font-family: @base-font-family;
|
||
|
|
font-size: @base-font-size;
|
||
|
|
color: @base-font-color;
|
||
|
|
}
|
||
|
|
section {
|
||
|
|
page-break-before: always;
|
||
|
|
}
|
||
|
|
|
||
|
|
h1, h2, h3 {
|
||
|
|
font-weight: @headline-font-weight;
|
||
|
|
margin: @headline-margin;
|
||
|
|
page-break-after: avoid;
|
||
|
|
|
||
|
|
small {
|
||
|
|
font-style: @headline-small-font-style;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
h1 {
|
||
|
|
font-size: @headline-1-size;
|
||
|
|
margin-top: 0;
|
||
|
|
|
||
|
|
small {
|
||
|
|
font-size: @headline-1-size-small;
|
||
|
|
color: @headline-1-color-small;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
h2 {
|
||
|
|
font-size: @headline-2-size;
|
||
|
|
border-bottom: @headline-border-style;
|
||
|
|
margin-top: 0;
|
||
|
|
|
||
|
|
small {
|
||
|
|
font-size: @headline-2-size-small;
|
||
|
|
color: @headline-2-color-small;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
h3 {
|
||
|
|
font-size: @headline-3-size;
|
||
|
|
color: @headline-3-color;
|
||
|
|
letter-spacing: @headline-3-spacing;
|
||
|
|
text-transform: @headline-3-transform;
|
||
|
|
|
||
|
|
small {
|
||
|
|
font-size: @headline-3-size-small;
|
||
|
|
color: @headline-3-color-small;
|
||
|
|
text-transform: none;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
p {
|
||
|
|
margin: @paragraph-margin;
|
||
|
|
font-size: @paragraph-size;
|
||
|
|
text-align: @paragraph-text-align;
|
||
|
|
color: @paragraph-color;
|
||
|
|
|
||
|
|
small {
|
||
|
|
font-size: @paragraph-size-small;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
ul, ol, li {
|
||
|
|
list-style-type: none;
|
||
|
|
}
|
||
|
|
|
||
|
|
a, a:active, a:hover, a:visited {
|
||
|
|
text-decoration: none;
|
||
|
|
color: @base-font-color;
|
||
|
|
}
|
||
|
|
strong {
|
||
|
|
font-weight: bold;
|
||
|
|
}
|
||
|
|
em {
|
||
|
|
font-style: italic;
|
||
|
|
}
|
||
|
|
blockquote {
|
||
|
|
padding: .3cm 1cm .15cm;
|
||
|
|
color: lighten(@base-font-color, 30%);
|
||
|
|
background-color: lighten(@base-font-color, 80%);
|
||
|
|
border: 1px solid lighten(@base-font-color, 80%);
|
||
|
|
font-style: italic;
|
||
|
|
.border-radius(5pt);
|
||
|
|
.clearfix();
|
||
|
|
|
||
|
|
.text {
|
||
|
|
font-family: Georgia;
|
||
|
|
font-size: (@paragraph-size + 2pt);
|
||
|
|
font-style: italic;
|
||
|
|
}
|
||
|
|
.author {
|
||
|
|
font-family: Georgia;
|
||
|
|
font-size: (@paragraph-size - 1pt);
|
||
|
|
font-style: italic;
|
||
|
|
float: right;
|
||
|
|
margin-top: .2cm;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
blockquote:nth-child(even) {
|
||
|
|
margin: @blockquote-vertical-space @blockquote-horizontal-wide @blockquote-vertical-space @blockquote-horizontal-narrow;
|
||
|
|
}
|
||
|
|
blockquote:nth-child(odd) {
|
||
|
|
margin: @blockquote-vertical-space @blockquote-horizontal-narrow @blockquote-vertical-space @blockquote-horizontal-wide;
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
dl.horizontal {
|
||
|
|
dl {
|
||
|
|
.no-page-break-inside();
|
||
|
|
}
|
||
|
|
dt, dd {
|
||
|
|
display: inline-block;
|
||
|
|
line-height: 14pt;
|
||
|
|
}
|
||
|
|
dt {
|
||
|
|
text-align: right;
|
||
|
|
padding-right: .2cm;
|
||
|
|
font-size: (@base-font-size - 1pt);
|
||
|
|
vertical-align: top;
|
||
|
|
color: @resume-label-color;
|
||
|
|
margin-top: .5pt;
|
||
|
|
}
|
||
|
|
dd {
|
||
|
|
font-size: @base-font-size;
|
||
|
|
text-align: @resume-text-align;
|
||
|
|
|
||
|
|
li, p {
|
||
|
|
padding-left: 0;
|
||
|
|
padding-right: 0;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// Cover page
|
||
|
|
.cover {
|
||
|
|
.col-border {
|
||
|
|
.border-box(@cover-border-width);
|
||
|
|
}
|
||
|
|
.col-content {
|
||
|
|
padding-left: .3cm;
|
||
|
|
}
|
||
|
|
.text {
|
||
|
|
margin: @cover-text-position;
|
||
|
|
|
||
|
|
h1 {
|
||
|
|
font-size: 30pt;
|
||
|
|
font-weight: bold;
|
||
|
|
margin-top: 0;
|
||
|
|
margin-bottom: .5cm;
|
||
|
|
line-height: 26pt;
|
||
|
|
}
|
||
|
|
|
||
|
|
.tagline {
|
||
|
|
font-size: 20pt;
|
||
|
|
color: lighten(@base-font-color, 30%);
|
||
|
|
}
|
||
|
|
|
||
|
|
.subtitle {
|
||
|
|
font-size: 12pt;
|
||
|
|
font-style: italic;
|
||
|
|
color: @base-accent-color;
|
||
|
|
margin-bottom: 0;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
// Certificate pages
|
||
|
|
.certs {
|
||
|
|
.certificate {
|
||
|
|
text-align: center;
|
||
|
|
page-break-after: always;
|
||
|
|
|
||
|
|
|
||
|
|
figcaption {
|
||
|
|
text-align: left;
|
||
|
|
margin-bottom: .2cm;
|
||
|
|
|
||
|
|
h3 {
|
||
|
|
small {
|
||
|
|
text-transform: none;
|
||
|
|
display: block;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
img {
|
||
|
|
width: 95%;
|
||
|
|
height: auto;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
// Introduction page
|
||
|
|
.intro {
|
||
|
|
h4 {
|
||
|
|
border-bottom: 1pt solid lighten(@base-font-color, 40%);
|
||
|
|
margin-bottom: 2pt;
|
||
|
|
margin-top: 1.2cm;
|
||
|
|
display: inline-block;
|
||
|
|
}
|
||
|
|
.toc {
|
||
|
|
list-style-position: inside;
|
||
|
|
padding-left: .3cm;
|
||
|
|
|
||
|
|
li {
|
||
|
|
list-style-type: circle;
|
||
|
|
font-size: @base-font-size;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
.content {
|
||
|
|
padding-left: @intro-text-inset;
|
||
|
|
padding-right: @intro-text-right-inset;
|
||
|
|
.clearfix();
|
||
|
|
|
||
|
|
h2, h3 {
|
||
|
|
margin-left: -@intro-text-inset;
|
||
|
|
margin-right: -(@intro-text-inset + @intro-text-right-inset);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
.quotes {
|
||
|
|
&.top {
|
||
|
|
margin-bottom: 1cm;
|
||
|
|
}
|
||
|
|
&.bottom {
|
||
|
|
margin-top: 1cm;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
p, li {
|
||
|
|
line-height: @intro-paragraph-line-height;
|
||
|
|
font-size: @intro-paragraph-size;
|
||
|
|
text-align: @intro-text-align;
|
||
|
|
}
|
||
|
|
.photo {
|
||
|
|
float: @intro-photo-align;
|
||
|
|
margin: @intro-photo-margin;
|
||
|
|
height: auto;
|
||
|
|
.border-radius(@intro-photo-border-radius);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
// Curriculum vitae
|
||
|
|
.cv {
|
||
|
|
.cv-entry {
|
||
|
|
.no-page-break-inside();
|
||
|
|
margin-bottom: .5cm;
|
||
|
|
|
||
|
|
h4 {
|
||
|
|
font-weight: bold;
|
||
|
|
font-size: @headline-4-size;
|
||
|
|
color: @headline-4-color;
|
||
|
|
|
||
|
|
small {
|
||
|
|
font-size: @headline-4-size-small;
|
||
|
|
font-style: italic;
|
||
|
|
color: @headline-4-color-small;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
p {
|
||
|
|
text-align: @cv-text-align;
|
||
|
|
small {
|
||
|
|
color: @cv-label-color;
|
||
|
|
font-style: italic;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
.col-date {
|
||
|
|
padding-right: @column-space;
|
||
|
|
.border-box(@cv-border-width);
|
||
|
|
}
|
||
|
|
.col-info {
|
||
|
|
padding-left: @column-space;
|
||
|
|
|
||
|
|
p {
|
||
|
|
margin-bottom: .1cm;
|
||
|
|
|
||
|
|
&:last-child {
|
||
|
|
margin-bottom: 0;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
.date {
|
||
|
|
font-size: @base-font-size;
|
||
|
|
font-weight: bold;
|
||
|
|
text-align: right;
|
||
|
|
color: @date-base-color;
|
||
|
|
|
||
|
|
.start, .end {
|
||
|
|
display: block;
|
||
|
|
}
|
||
|
|
|
||
|
|
.start {
|
||
|
|
font-size: (@base-font-size + 4pt);
|
||
|
|
font-weight: bold;
|
||
|
|
color: @date-start-color;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
.company {
|
||
|
|
font-size: (@base-font-size - 1pt);
|
||
|
|
font-style: italic;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
// Projects
|
||
|
|
.projects {
|
||
|
|
|
||
|
|
.content {
|
||
|
|
padding-left: @intro-text-inset;
|
||
|
|
padding-right: @intro-text-right-inset;
|
||
|
|
.clearfix();
|
||
|
|
|
||
|
|
h2, h3 {
|
||
|
|
margin-left: -@intro-text-inset;
|
||
|
|
margin-right: -(@intro-text-inset + @intro-text-right-inset);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
.short-description {
|
||
|
|
font-weight: bold;
|
||
|
|
font-size: (@base-font-size + .5pt);
|
||
|
|
}
|
||
|
|
dl.horizontal {
|
||
|
|
display: none;
|
||
|
|
dt {
|
||
|
|
text-align: left;
|
||
|
|
width: 1cm;
|
||
|
|
}
|
||
|
|
dd {
|
||
|
|
padding-right: 1cm;
|
||
|
|
p {
|
||
|
|
margin: 0;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
p, li {
|
||
|
|
line-height: @intro-paragraph-line-height;
|
||
|
|
font-size: @intro-paragraph-size;
|
||
|
|
text-align: @intro-text-align;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// Resume
|
||
|
|
.resume {
|
||
|
|
|
||
|
|
dl.horizontal {
|
||
|
|
dt {
|
||
|
|
width: 2.1cm;
|
||
|
|
}
|
||
|
|
dd {
|
||
|
|
width: 6cm;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
li, p {
|
||
|
|
font-size: @base-font-size;
|
||
|
|
text-align: @resume-text-align;
|
||
|
|
padding-left: @resume-text-inset;
|
||
|
|
padding-right: @resume-gutter-padding;
|
||
|
|
}
|
||
|
|
.col-resume {
|
||
|
|
margin-top: .45cm;
|
||
|
|
|
||
|
|
h3:first-child {
|
||
|
|
margin-top: .05cm;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
.col-1 {
|
||
|
|
.border-box(@resume-border-width);
|
||
|
|
flex: 0 0 47.5%;
|
||
|
|
}
|
||
|
|
.col-2 {
|
||
|
|
padding-left: @resume-gutter-padding;
|
||
|
|
flex: 0 0 50.5%;
|
||
|
|
|
||
|
|
li {
|
||
|
|
margin-bottom: 3pt;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
// Footers and headers or PDF generation
|
||
|
|
footer,
|
||
|
|
header {
|
||
|
|
display: block;
|
||
|
|
|
||
|
|
.left {
|
||
|
|
text-align: left;
|
||
|
|
}
|
||
|
|
.center {
|
||
|
|
text-align: center;
|
||
|
|
}
|
||
|
|
.right {
|
||
|
|
text-align: right;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
// Specific screen styles
|
||
|
|
@media screen {
|
||
|
|
html, body {
|
||
|
|
height: 100%;
|
||
|
|
}
|
||
|
|
body {
|
||
|
|
margin: 20px 30px 0;
|
||
|
|
width: 19.5cm;
|
||
|
|
}
|
||
|
|
section {
|
||
|
|
margin-bottom: 2cm;
|
||
|
|
|
||
|
|
&.cover {
|
||
|
|
.text {
|
||
|
|
margin: 0;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
.certs {
|
||
|
|
.certificate {
|
||
|
|
margin-bottom: 1.5cm;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|