0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-01-06 14:22:52 +00:00

Journal theme "complete"?

This commit is contained in:
Trevor Buckner
2022-08-21 00:03:29 -04:00
parent fd64215298
commit fc20d73520
22 changed files with 427 additions and 878 deletions

View File

@@ -1,12 +1,14 @@
@import (less) './themes/fonts/5e/fonts.less';
@import (less) './themes/fonts/Journal/fonts.less';
@import (less) './themes/assets/assets.less';
:root {
//Colors
--HB_Color_Background : #EEE5CE; // Light parchment
--HB_Color_Background : unset; // Light parchment
--HB_Color_Accent : #E0E5C1; // Pastel green
--HB_Color_HeaderUnderline : #C0AD6A; // Gold
--HB_Color_HorizontalRule : #9C2B1B; // Maroon
--HB_Color_Text : #412121; // Dark Maroon Brown
--HB_Color_Text2 : #261C13CC; //Dark Brown
--HB_Color_HeaderText : #58180D; // Dark Maroon
--HB_Color_MonsterStatBackground : #EEDBAB; // Light orange parchment
--HB_Color_CaptionText : #766649; // Brown
@@ -22,9 +24,10 @@ body {
-webkit-print-color-adjust : exact;
}
.useSansSerif(){
font-family : ScalySansRemake;
font-size : 0.318cm;
font-family : PermanentMarker;
font-size : 0.3cm;
line-height : 1.2em;
color : var(--HB_Color_Text2);
p,dl,ul,ol {
line-height : 1.2em;
}
@@ -35,8 +38,8 @@ body {
font-style : italic;
}
strong{
font-weight : 800;
letter-spacing : -0.02em;
font-weight : 800;
font-size : 1.1em;
}
h5 + * {
margin-top : 0.1cm;
@@ -45,45 +48,46 @@ body {
.useColumns(@multiplier : 1, @fillMode: balance){
column-count : 2;
column-fill : @fillMode;
column-gap : 0.9cm;
column-width : 8cm * @multiplier;
-webkit-column-count : 2;
-moz-column-count : 2;
-webkit-column-width : 8cm * @multiplier;
-moz-column-width : 8cm * @multiplier;
-webkit-column-gap : 0.9cm;
-moz-column-gap : 0.9cm;
}
.columnWrapper{
max-height : 100%;
column-span : all;
columns : inherit;
column-gap : inherit;
column-gap : 0.5cm;
column-width : unset;
}
.page{
.useColumns();
counter-increment : phb-page-numbers;
position : relative;
z-index : 15;
box-sizing : border-box;
overflow : hidden;
height : 279.4mm;
width : 215.9mm;
background-color : var(--HB_Color_Background);
background-image : @backgroundImage;
padding : 1.4cm 1.9cm 1.7cm;
font-family : BookInsanityRemake;
font-size : 0.34cm;
text-rendering : optimizeLegibility;
page-break-before : always;
page-break-after : always;
background-color : var(--HB_Color_Background);
background-size : 200% 100%;
background-repeat : no-repeat;
filter : drop-shadow(1px 4px 14px black);
background-image : url(/assets/Journal/Background1.webp);
padding : 2.1cm 1.9cm 1.7cm 3.8cm;
&:nth-of-type(2n + 1) {
background-position : left;
}
&:nth-of-type(2n) {
background-position : right;
padding : 2.1cm 3.9cm 1.7cm 1.8cm;
}
&:nth-of-type(2) {
background-image : url(/assets/Journal/Background2.webp); //Only first page should show ribbon
}
& .columnWrapper {
//transform: rotate(-0.5deg); // Breaks absolute positioning of images/footers. Wait for Chrome fix
}
}
//*****************************
// * BASE
// *****************************/
:where(.page){
color : var(--HB_Color_Text);
font-family : ReenieBeanie;
font-size : 0.53cm;
line-height : 0.8em;
p{
overflow-wrap : break-word; //TODO: MAKE ALL MARGINS TOP-ONLY. USE * + * STYLE SELECTORS
display : block;
line-height : 1.25em;
&+* {
margin-top : 0.325cm;
}
@@ -94,14 +98,12 @@ body {
ul{
margin-bottom : 0.8em;
padding-left : 1.4em;
line-height : 1.25em;
list-style-position : outside;
list-style-type : disc;
}
ol{
margin-bottom : 0.8em;
padding-left : 1.4em;
line-height : 1.25em;
list-style-position : outside;
list-style-type : decimal;
}
@@ -109,84 +111,70 @@ body {
p+p, ul+p, ol+p{
text-indent : 1em;
}
img{
z-index : -1;
}
strong{
font-weight : bold;
letter-spacing : -0.02em;
}
em{
font-style : italic;
text-decoration : underline;
font-style : unset;
}
sup{
vertical-align : super;
font-size : smaller;
line-height : 0;
}
sub{
vertical-align : sub;
font-size : smaller;
line-height : 0;
del{
text-decoration-style: double;
}
//*****************************
// * HEADERS
// *****************************/
h1,h2,h3,h4{
font-family : MrEavesRemake;
font-weight : 800;
h1,h2,h3,h4,h5{
font-family : FrederickaTheGreat;
font-weight : unset;
color : var(--HB_Color_HeaderText);
}
h1{
margin-bottom : 0.18cm; //Margin-bottom only because this is WIDE
column-span : all;
font-size : 0.89cm;
-webkit-column-span : all;
-moz-column-span : all;
line-height : 1em;
font-variant : small-caps;
&+p::first-letter{
float : left;
font-family : SolberaImitationRemake;
font-family : FrederickaTheGreat;
line-height : 1em;
font-size : 3.5cm;
font-size : 1.9em;
padding-left : 40px; //Allow background color to extend into margins
margin-left : -40px;
margin-top : -0.3cm;
padding-bottom : 2px;
margin-bottom : -20px;
background-image : linear-gradient(-45deg, #322814, #998250, #322814);
background-clip : text;
-webkit-background-clip : text;
color : rgba(0, 0, 0, 0);
margin-left : -40px;
margin-right : 0.1em;
padding-top : 0.3em;
padding-bottom : 2px;
}
&+p::first-line{
font-variant : small-caps;
}
}
h2{
//margin-top : 0px; //Font is misaligned. Shift up slightly
//margin-bottom : 0.05cm;
font-size : 0.75cm;
font-size : 0.62cm;
line-height : 0.988em; //Font is misaligned. Shift up slightly
}
h3{
//margin-top : -0.1cm; //Font is misaligned. Shift up slightly
//margin-bottom : 0.1cm;
font-size : 0.575cm;
border-bottom : 2px solid var(--HB_Color_HeaderUnderline);;
line-height : 0.995em; //Font is misaligned. Shift up slightly
margin-left : -0.9em;
}
h4{
//margin-top : -0.02cm; //Font is misaligned. Shift up slightly
//margin-bottom : 0.02cm;
font-size : 0.458cm;
line-height : 0.971em; //Font is misaligned. Shift up slightly
font-size : 0.55cm;
line-height : 0.971em; //Font is misaligned. Shift up slightly
color : var(--HB_Color_Text);
padding-bottom : 5px;
transform:rotate(0deg);
&:nth-of-type(2n) {
transform:rotate(1deg);
}
&:nth-of-type(3n) {
transform:rotate(-1.5deg);
}
}
h5{
//margin-top : -0.02cm; //Font is misaligned. Shift up slightly
//margin-bottom : 0.02cm;
font-family : ScalySansSmallCapsRemake;
font-size : 0.423cm;
font-weight : 900;
font-family : PermanentMarker;
font-size : 0.4cm;
color : var(--HB_Color_Text2);
font-weight : bold;
line-height : 0.951em; //Font is misaligned. Shift up slightly
& + * {
margin-top : 0.2cm;
@@ -202,20 +190,18 @@ body {
margin-top : 0.325cm;
}
thead{
display: table-row-group;
font-weight : 800;
th{
vertical-align : bottom;
padding : 0.14em 0.4em;
padding : 0.14em 0;
}
}
tbody{
tr{
td{
padding : 0.14em 0.4em;
padding : 0.14em 0;
}
&:nth-child(odd){
background-color : var(--HB_Color_Accent);
background-image : linear-gradient(to left, #41212100, #41212122, #41212100);
}
}
}
@@ -225,15 +211,20 @@ body {
// *****************************/
.note{
.useSansSerif();
background-color : var(--HB_Color_Accent);
border-style : solid;
border-width : 1px;
border-image : @noteBorderImage 12 stretch;
border-image-outset : 9px 0px;
border-image-width : 11px;
padding : 0.13cm 0.16cm;
filter : drop-shadow(1px 4px 6px #888);
.page :where(&) {
border-image-source : url(/assets/Journal/Border1.png);
border-image-slice : 18 18 18 18;
border-image-width : 6px 6px 6px 6px;
border-image-outset : 5px 5px 5px 5px;
border-image-repeat : stretch stretch;
background-image : url(/assets/Journal/HashMarks.png),
linear-gradient(to bottom right, #ff000000, #a36a4e14, #41212100);
background-size : 120% 120%;
background-repeat : no-repeat;
background-position : center;
padding : 0.2cm;
:where(&) {
margin-top : 9px; //Prevent top border getting cut off on colbreak
}
& + * {
@@ -243,7 +234,6 @@ body {
font-size : 0.375cm;
}
p{
display : block;
padding-bottom : 0px;
}
:last-child {
@@ -253,16 +243,25 @@ body {
//************************************
// * DESCRIPTIVE TEXT BOX
// ************************************/
* + .descriptive {
margin-top : 0.6cm;
}
.descriptive{
.useSansSerif();
background-color : #faf7ea;
border-style : solid;
border-width : 7px;
border-image : @descriptiveBoxImage 12 stretch;
border-image-outset : 4px;
padding : 0.1em;
filter : drop-shadow(0 0 3px #faf7ea);
.page :where(&) {
border-width : 1px;
border-image-source : url('/assets/Journal/Border2.png');
border-image-slice : 48 48 48 48;
border-image-width : 20px;
border-image-outset : 16px 20px 16px 20px;
border-image-repeat : stretch stretch;
background-image : url(/assets/Journal/HashMarks.png),
linear-gradient(to bottom right, #ff000000, #41212114, #41212100);
background-size : 120% 120%;
background-repeat : no-repeat;
background-position : center;
padding : 0.2cm;
:where(&) {
margin-top : 4px; //Prevent top border getting cut off on colbreak
}
& + * {
@@ -272,9 +271,7 @@ body {
font-size : 0.375cm;
}
p{
display : block;
padding-bottom : 0px;
line-height : 1.5em;
}
:last-child {
margin-bottom : 0;
@@ -310,58 +307,6 @@ body {
}
}
/* Watermark */
.watermark {
display : grid !important;
place-items : center;
justify-content : center;
position : absolute;
top : 0;
left : 0;
width : 100%;
height : 100%;
font-size : 120px;
text-transform : uppercase;
color : black;
mix-blend-mode : overlay;
opacity : 30%;
transform : rotate(-45deg);
z-index : 500;
p {
margin-bottom : none;
}
}
/* Watercolor */
[class*="watercolor"] {
position : absolute;
width : 2000px; /* dimensions need to be real big so the user can set */
height : 2000px; /* height or width and the image will maintain aspect ratio */
-webkit-mask-image : var(--wc);
-webkit-mask-size : contain;
-webkit-mask-repeat : no-repeat;
mask-image : var(--wc);
mask-size : contain;
mask-repeat : no-repeat;
background-size : cover;
background-color : var(--HB_Color_WatercolorStain); /*default color*/
--wc : @watercolor1; /*default image*/
z-index : -2;
}
.watercolor1 { --wc : @watercolor1; }
.watercolor2 { --wc : @watercolor2; }
.watercolor3 { --wc : @watercolor3; }
.watercolor4 { --wc : @watercolor4; }
.watercolor5 { --wc : @watercolor5; }
.watercolor6 { --wc : @watercolor6; }
.watercolor7 { --wc : @watercolor7; }
.watercolor8 { --wc : @watercolor8; }
.watercolor9 { --wc : @watercolor9; }
.watercolor10 { --wc : @watercolor10; }
.watercolor11 { --wc : @watercolor11; }
.watercolor12 { --wc : @watercolor12; }
//*****************************
// * MONSTER STAT BLOCK
// *****************************/
@@ -370,19 +315,19 @@ body {
&.frame {
border-style : solid;
border-width : 7px 6px;
background-color : var(--HB_Color_MonsterStatBackground);
background-image : @monsterBlockBackground;
border-image : @monsterBorderImage 14 round;
border-image-outset : 0px 2px;
background-blend-mode : overlay;
background-attachment : fixed;
filter : drop-shadow(1px 4px 6px #888);
padding : 4px 2px;
margin-left : -0.16cm;
margin-right : -0.16cm;
width : calc(100% + 0.32cm);
border-image-source : url('/assets/Journal/Border3.png');
border-image-slice : 63 74 63 74;
border-image-width : 15px 20px 15px 20px;
border-image-outset : 12px 12px 12px 12px;
border-image-repeat : stretch round;
background-image : url('/assets/Journal/HashMarks.png'),
linear-gradient(to bottom right, #ff000000, #a36a4e14, #41212100);
background-blend-mode : screen multiply;
background-size : 100%;
padding : 0.2cm;
}
color: var(--HB_Color_Text);
position : relative;
padding : 0px;
margin-bottom : 0.325cm;
@@ -393,53 +338,35 @@ body {
line-height : 1em;
margin : 0;
&+p {
font-size : 0.304cm; //Monster size and type subtext
margin-bottom : 0;
margin-bottom : 0; //Monster size and type subtext
}
}
h3{
font-family : ScalySansRemake;
font-weight : 800;
margin-left : 0;
font-variant : small-caps;
border-bottom : 2px solid var(--HB_Color_HeaderText);
// margin-top : 0.05cm; //Font is misaligned. Shift up slightly
padding-bottom : 0.05cm;
}
//Triangle dividers
hr{
visibility : visible;
height : 6px;
margin : 0.12cm 0cm;
background-image : @redTriangleImage;
background-image : url('/assets/Journal/HorizontalRule.png');
background-size : 100% 100%;
border : none;
}
//Attribute Lists - All text between HRs is red
hr ~ :is(dl,p) {
color : var(--HB_Color_HeaderText);
}
hr:last-of-type {
& ~ :is(dl,p) {
color : inherit; // After the HRs, reset text to black
}
& + * {
margin-top : 0.325cm; // Space after last HR
}
hr:last-of-type + * {
margin-top : 0.325cm; // Space after last HR
}
// Monster Ability table
hr + table:first-of-type{
margin : 0;
column-span : none;
color : var(--HB_Color_HeaderText);
background-color : transparent;
background-image : none;
border-style : none;
border-image : none;
-webkit-column-span : none;
color : inherit;
tr {
background-color : transparent;
background-image : none;
}
td,th {
padding: 0px;
@@ -449,6 +376,11 @@ body {
:last-child {
margin-bottom : 0;
}
strong, em {
font-style : normal;
text-decoration : none;
}
}
//Full Width
@@ -459,36 +391,23 @@ body {
//*****************************
// * FOOTER
// *****************************/
&:after{
content : "";
position : absolute;
bottom : 0px;
left : 0px;
z-index : 100;
height : 50px;
width : 100%;
background-image : @footerAccentImage;
background-size : cover;
}
&:nth-child(even){
&:after{
transform : scaleX(-1);
}
&:nth-child(odd){
.pageNumber{
left : 2px;
left : 3cm;
}
.footnote{
left : 80px;
left : 4.5cm;
text-align : left;
}
}
.pageNumber{
font-family : FrederickaTheGreat;
position : absolute;
right : 2px;
bottom : 22px;
right : 3cm;
bottom : 1.25cm;
width : 50px;
font-size : 0.9em;
color : var(--HB_Color_Footnotes);
color : var(--HB_Color_HeaderText);
text-align : center;
text-indent : 0;
&.auto::after {
@@ -497,22 +416,22 @@ body {
}
.footnote{
position : absolute;
right : 80px;
bottom : 32px;
right : 4.5cm;
bottom : 1.25cm;
z-index : 150;
width : 200px;
font-size : 0.8em;
color : var(--HB_Color_Footnotes);
color : var(--HB_Color_HeaderText);
text-align : right;
}
//************************************
// * CODE BLOCKS
// ************************************/
code{
font-family : "Courier New", Courier, monospace;
font-size : 0.325;
font-size : 0.3cm;
padding : 0px 4px;
color : #58180d;
color : var(--HB_Color_Text);
vertical-align : middle;
background-color : #faf7ea;
border-radius : 4px;
white-space : pre-wrap;
@@ -542,49 +461,32 @@ body {
// *****************************/
hr{
visibility : hidden;
border : none;
margin : 0px;
}
.columnSplit {
visibility : hidden;
-webkit-column-break-after : always;
break-after : always;
-moz-column-break-after : always;
}
//Avoid breaking up
blockquote,table{
z-index : 15;
-webkit-column-break-inside : avoid;
page-break-inside : avoid;
break-inside : avoid;
}
//Text indent right after table
table+p{
text-indent : 1em;
}
// Nested lists
ul ul,ol ol,ul ol,ol ul{
margin-bottom : 0px;
margin-left : 1.5em;
a, a:visited, a:hover {
color: var(--HB_Color_Text);
transition:all 1s ease;
}
li{
-webkit-column-break-inside : avoid;
page-break-inside : avoid;
break-inside : avoid;
a:hover {
color:red;
}
}
//*****************************
// * SPELL LIST
// *****************************/
.page .spellList{
.useSansSerif();
column-count : 2;
font-family : PermanentMarker;
column-count : 2;
ul+h5{
margin-top : 15px;
}
p, ul{
font-size : 0.352cm;
line-height : 1.265em;
}
ul{
margin-bottom : 0.5em;
padding-left : 1em;
@@ -606,49 +508,6 @@ body {
th[colspan]:not([rowspan]) {
white-space : nowrap;
}
&.frame {
margin-top : 0.7cm;
margin-bottom : 0.9cm;
margin-left : -0.1cm;
margin-right : -0.1cm;
width : calc(100% + 0.2cm);
border-collapse : separate;
background-color : white;
border : initial;
border-style : solid;
border-image-outset : 0.4cm 0.3cm;
border-image-repeat : stretch;
border-image-slice : 200;
border-image-source : @frameBorderImage;
border-image-width : 47px;
&.wide:first-child {
margin-top: 0.12cm;
}
}
&.decoration {
position:relative;
}
&.decoration::before {
content :'';
position : absolute;
background-image : @classTableDecoration,
@classTableDecoration;
background-size : contain, contain;
background-repeat : no-repeat, no-repeat;
background-position : top, bottom;
width : 7.75cm;
height : calc(100% + 3.3cm);
top : 50%;
left : 50%;
transform : translateY(-50%) translateX(-50%);
filter : drop-shadow(0px 0px 1px #C8C5C080);
z-index : -1;
}
&.decoration.wide::before {
width : calc(100% + 3.3cm);
height : 7.75cm;
background-position : left, right;
}
h5 + table{
margin-top : 0.2cm;
}
@@ -704,7 +563,7 @@ body {
}
}
&:last-child {
font-family : BookInsanityRemake;
font-family : ReenieBeanie;
font-size : 0.34cm;
font-weight : normal;
color : black;
@@ -724,74 +583,9 @@ body {
}
}
//*****************************
// * MUSTACHE DIVS/SPANS
// *****************************/
.page {
.block {
break-inside : avoid;
display : inline-block;
.page :where(&) {
width : 100%;
}
//-webkit-transform : translateZ(0); //Prevents shadows from breaking across columns
}
.inline-block {
display : inline-block;
text-indent : initial;
}
}
//*****************************
// * DEFINITION LISTS
// *****************************/
.page {
dl {
line-height : 1.25em;
padding-left : 1em;
white-space : pre-line;
& + * {
margin-top : 0.28cm;
}
}
dl + * {
margin-top : 0.17cm;
}
p + dl {
margin-top: 0.17cm;
}
dt {
display : inline;
margin-right : 5px;
margin-left : -1em;
}
dd {
display : inline;
margin-left : 0px;
text-indent : 0px;
}
}
//*****************************
// * BLANK LINE
// *****************************/
.page {
.blank {
height : 1em;
margin-top : 0;
}
}
//*****************************
// * WIDE
// *****************************/
.page .wide{
column-span : all;
-webkit-column-span : all;
-moz-column-span : all;
display : block;
margin-bottom : 0.34cm;
&+* {
margin-top : 0;
}
:where(.page) .wide {
margin-bottom : 0.45cm;
}