0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-01-16 01:42:47 +00:00

Merge pull request #4102 from naturalcrit/linting

Linting the entire project
This commit is contained in:
Víctor Losada Hernández
2025-03-18 20:21:51 +01:00
committed by GitHub
67 changed files with 1672 additions and 2021 deletions

View File

@@ -18,17 +18,15 @@
margin-bottom : unset; margin-bottom : unset;
font-family : monospace; font-family : monospace;
&[type="date"] { &[type='date'] { width : 14ch; }
width:14ch;
}
} }
textarea { textarea {
width : 50ch; width : 50ch;
min-height : 7em; min-height : 7em;
max-height : 20em; max-height : 20em;
resize : vertical;
padding : 10px; padding : 10px;
resize : vertical;
} }
} }

View File

@@ -2,12 +2,10 @@
.anchored-box { .anchored-box {
position : absolute; position : absolute;
visibility : hidden;
justify-self : anchor-center;
@supports (inset-block-start: anchor(bottom)) { @supports (inset-block-start: anchor(bottom)) {
inset-block-start : anchor(bottom); inset-block-start : anchor(bottom);
} }
justify-self: anchor-center; &.active { visibility : visible; }
visibility: hidden;
&.active {
visibility: visible;
}
} }

View File

@@ -27,7 +27,7 @@
position : relative; position : relative;
padding : 5px; padding : 5px;
margin : 0 3px; margin : 0 3px;
font-family : "Open Sans"; font-family : 'Open Sans';
font-size : 11px; font-size : 11px;
cursor : default; cursor : default;
&:hover { &:hover {

View File

@@ -196,7 +196,7 @@ const BrewRenderer = (props)=>{
pageText = pageText.includes('\n') ? pageText.substring(pageText.indexOf('\n') + 1) : ''; // Remove the \page line pageText = pageText.includes('\n') ? pageText.substring(pageText.indexOf('\n') + 1) : ''; // Remove the \page line
} }
let html = Markdown.render(pageText, index); const html = Markdown.render(pageText, index);
return <BrewPage className={classes} index={index} key={index} contents={html} style={styles} attributes={attributes} onVisibilityChange={handlePageVisibilityChange} />; return <BrewPage className={classes} index={index} key={index} contents={html} style={styles} attributes={attributes} onVisibilityChange={handlePageVisibilityChange} />;
} }

View File

@@ -1,21 +1,17 @@
@import (multiple, less) 'shared/naturalcrit/styles/reset.less'; @import (multiple, less) 'shared/naturalcrit/styles/reset.less';
.brewRenderer { .brewRenderer {
height : 100vh;
padding-top : 60px;
overflow-y : scroll; overflow-y : scroll;
will-change : transform; will-change : transform;
padding-top : 60px; &:has(.facing, .flow) { padding : 60px 30px; }
height : 100vh; &.deployment { background-color : darkred; }
&:has(.facing, .flow) {
padding : 60px 30px;
}
&.deployment {
background-color: darkred;
}
:where(.pages) { :where(.pages) {
&.facing { &.facing {
display : grid; display : grid;
grid-template-columns: repeat(2, auto);
grid-template-rows : repeat(3, auto); grid-template-rows : repeat(3, auto);
grid-template-columns : repeat(2, auto);
gap : 10px 10px; gap : 10px 10px;
justify-content : safe center; justify-content : safe center;
&.recto .page:first-child { &.recto .page:first-child {
@@ -24,8 +20,8 @@
grid-column-start : 2; grid-column-start : 2;
} }
& :where(.page) { & :where(.page) {
margin-left: unset !important;
margin-right : unset !important; margin-right : unset !important;
margin-left : unset !important;
} }
} }
@@ -36,8 +32,8 @@
justify-content : safe center; justify-content : safe center;
& :where(.page) { & :where(.page) {
flex : 0 0 auto; flex : 0 0 auto;
margin-left: unset !important;
margin-right : unset !important; margin-right : unset !important;
margin-left : unset !important;
} }
} }
@@ -50,9 +46,7 @@
margin-left : auto; margin-left : auto;
box-shadow : 1px 4px 14px #000000; box-shadow : 1px 4px 14px #000000;
} }
*[id] { *[id] { scroll-margin-top : 100px; }
scroll-margin-top:100px;
}
} }
&::-webkit-scrollbar { &::-webkit-scrollbar {
width : 20px; width : 20px;
@@ -83,7 +77,5 @@
& > .page { box-shadow : unset; } & > .page { box-shadow : unset; }
} }
} }
.headerNav { .headerNav { visibility : hidden; }
visibility: hidden;
}
} }

View File

@@ -25,7 +25,7 @@ const HeaderNav = React.forwardRef(({}, pagesRef)=>{
'.toc' : ()=>{ return 'Table of Contents'; }, '.toc' : ()=>{ return 'Table of Contents'; },
}; };
const getHeaderContent = el => el.querySelector('h1')?.textContent; const getHeaderContent = (el)=>el.querySelector('h1')?.textContent;
const topLevelPageSelector = Object.keys(topLevelPages).join(','); const topLevelPageSelector = Object.keys(topLevelPages).join(',');
@@ -52,25 +52,23 @@ const HeaderNav = React.forwardRef(({}, pagesRef)=>{
depth : 7, // All unmatched elements with IDs are set to the maximum depth (7) depth : 7, // All unmatched elements with IDs are set to the maximum depth (7)
text : el.textContent, // Use `textContent` because `innerText` is affected by rendering, e.g. 'content-visibility: auto' text : el.textContent, // Use `textContent` because `innerText` is affected by rendering, e.g. 'content-visibility: auto'
link : el.id link : el.id
} };
if(el.classList.contains('page')) { if(el.classList.contains('page')) {
let text = `Page ${el.id.slice(1)}`; // Get the page # by trimming off the 'p' from the ID let text = `Page ${el.id.slice(1)}`; // Get the page # by trimming off the 'p' from the ID
const pageType = Object.keys(topLevelPages).find(pageType => el.querySelector(pageType)); const pageType = Object.keys(topLevelPages).find((pageType)=>el.querySelector(pageType));
if(pageType) if(pageType)
text += ` - ${topLevelPages[pageType](el, pageType)}` // If a Top Level Page, add extra label text += ` - ${topLevelPages[pageType](el, pageType)}`; // If a Top Level Page, add extra label
navEntry.depth = 0; // Pages are always at the least indented level navEntry.depth = 0; // Pages are always at the least indented level
navEntry.text = text; navEntry.text = text;
navEntry.className = 'pageLink'; navEntry.className = 'pageLink';
} } else if(el.localName.match(/^h[1-6]/)){ // Header elements H1 through H6
else if(el.localName.match(/^h[1-6]/)){ // Header elements H1 through H6
navEntry.depth = el.localName[1]; // Depth is set by the header level navEntry.depth = el.localName[1]; // Depth is set by the header level
} }
navList.push(navEntry); navList.push(navEntry);
}); });
return _.map(navList, (navItem, index)=> return _.map(navList, (navItem, index)=><HeaderNavItem {...navItem} key={index} />
<HeaderNavItem {...navItem} key={index} />
); );
}; };

View File

@@ -2,38 +2,30 @@
position : fixed; position : fixed;
top : 32px; top : 32px;
left : 0px; left : 0px;
padding: 5px 10px;
background-color: #ccc;
border-radius: 5px;
max-height: calc(100vh - 32px);
max-width : 40vw; max-width : 40vw;
max-height : calc(100vh - 32px);
padding : 5px 10px;
overflow-y : auto; overflow-y : auto;
background-color : #CCCCCC;
border-radius : 5px;
&.active { &.active {
padding-bottom : 10px; padding-bottom : 10px;
.navIcon { .navIcon { padding-bottom : 10px; }
padding-bottom: 10px;
}
}
.navIcon {
cursor: pointer;
} }
.navIcon { cursor : pointer; }
li { li {
list-style-type : none; list-style-type : none;
a { a {
display : inline-block; display : inline-block;
width : 100%; width : 100%;
padding : 2px;
font-family : 'Open Sans'; font-family : 'Open Sans';
font-size : 12px; font-size : 12px;
padding: 2px;
color : inherit; color : inherit;
text-decoration : none; text-decoration : none;
cursor : pointer; cursor : pointer;
&:hover { &:hover { text-decoration : underline; }
text-decoration: underline; &.pageLink { font-weight : 900; }
}
&.pageLink {
font-weight: 900;
}
@depths: 0,1,2,3,4,5,6,7; @depths: 0,1,2,3,4,5,6,7;

View File

@@ -156,7 +156,7 @@
min-width : 46px; min-width : 46px;
height : 100%; height : 100%;
&:hover { background-color : #444444; } &:hover { background-color : #444444; }
&:focus { border : 1px solid #D3D3D3;outline : none;} &:focus {outline : none; border : 1px solid #D3D3D3;}
&:disabled { &:disabled {
color : #777777; color : #777777;
background-color : unset !important; background-color : unset !important;
@@ -182,8 +182,8 @@
position : absolute; position : absolute;
left : 0; left : 0;
z-index : 5; z-index : 5;
display : flex;
width : 32px; width : 32px;
min-width : unset; min-width : unset;
height : 100%; height : 100%;
display : flex;
} }

View File

@@ -45,26 +45,26 @@
color : green; color : green;
} }
.emoji:not(.cm-comment) { .emoji:not(.cm-comment) {
margin-left : 2px;
color : #360034;
background : #ffc8ff;
border-radius : 6px;
font-weight : bold;
padding-bottom : 1px; padding-bottom : 1px;
margin-left : 2px;
font-weight : bold;
color : #360034;
outline : solid 2px #FF96FC;
outline-offset : -2px; outline-offset : -2px;
outline : solid 2px #ff96fc; background : #FFC8FF;
border-radius : 6px;
} }
.superscript:not(.cm-comment) { .superscript:not(.cm-comment) {
font-weight : bold;
color : goldenrod;
vertical-align : super;
font-size : 0.9em; font-size : 0.9em;
font-weight : bold;
vertical-align : super;
color : goldenrod;
} }
.subscript:not(.cm-comment) { .subscript:not(.cm-comment) {
font-weight : bold;
color : rgb(123, 123, 15);
vertical-align : sub;
font-size : 0.9em; font-size : 0.9em;
font-weight : bold;
vertical-align : sub;
color : rgb(123, 123, 15);
} }
.dl-highlight { .dl-highlight {
&.dl-colon-highlight { &.dl-colon-highlight {

View File

@@ -4,7 +4,6 @@ const React = require('react');
const createClass = require('create-react-class'); const createClass = require('create-react-class');
const _ = require('lodash'); const _ = require('lodash');
import request from '../../utils/request-middleware.js'; import request from '../../utils/request-middleware.js';
const Nav = require('naturalcrit/nav/nav.jsx');
const Combobox = require('client/components/combobox.jsx'); const Combobox = require('client/components/combobox.jsx');
const TagInput = require('../tagInput/tagInput.jsx'); const TagInput = require('../tagInput/tagInput.jsx');
@@ -110,6 +109,7 @@ const MetadataEditor = createClass({
} }
this.props.onChange(this.props.metadata, 'renderer'); this.props.onChange(this.props.metadata, 'renderer');
}, },
handlePublish : function(val){ handlePublish : function(val){
this.props.onChange({ this.props.onChange({
...this.props.metadata, ...this.props.metadata,

View File

@@ -1,8 +1,8 @@
@import 'naturalcrit/styles/colors.less'; @import 'naturalcrit/styles/colors.less';
.userThemeName { .userThemeName {
padding-left: 10px;
padding-right : 10px; padding-right : 10px;
padding-left : 10px;
} }
.metadataEditor { .metadataEditor {
@@ -12,8 +12,8 @@
height : calc(100vh - 54px); // 54px is the height of the navbar + snippet bar. probably a better way to dynamic get this. height : calc(100vh - 54px); // 54px is the height of the navbar + snippet bar. probably a better way to dynamic get this.
padding : 25px; padding : 25px;
overflow-y : auto; overflow-y : auto;
background-color : #999999;
font-size : 13px; font-size : 13px;
background-color : #999999;
h1 { h1 {
margin : 0 0 40px; margin : 0 0 40px;
@@ -24,8 +24,8 @@
h2 { h2 {
margin : 20px 0; margin : 20px 0;
font-weight : bold; font-weight : bold;
color : #555555;
border-bottom : 2px solid gray; border-bottom : 2px solid gray;
color: #555;
} }
& > div { margin-bottom : 10px; } & > div { margin-bottom : 10px; }
@@ -54,10 +54,10 @@
min-width : 200px; min-width : 200px;
& > label { & > label {
width : 80px; width : 80px;
font-size : 0.9em;
font-weight : 800; font-weight : 800;
line-height : 1.8em; line-height : 1.8em;
text-transform : uppercase; text-transform : uppercase;
font-size: .9em;
} }
& > .value { & > .value {
flex : 1 1 auto; flex : 1 1 auto;
@@ -96,8 +96,8 @@
text-overflow : auto; text-overflow : auto;
} }
button { button {
padding-left: 5px;
padding-right : 5px; padding-right : 5px;
padding-left : 5px;
} }
} }
@@ -136,8 +136,8 @@
margin-right : 15px; margin-right : 15px;
font-size : 0.9em; font-size : 0.9em;
font-weight : 800; font-weight : 800;
white-space : nowrap;
vertical-align : middle; vertical-align : middle;
white-space : nowrap;
cursor : pointer; cursor : pointer;
user-select : none; user-select : none;
} }
@@ -164,9 +164,7 @@
.colorButton(@red); .colorButton(@red);
} }
} }
.authors.field .value { .authors.field .value { line-height : 1.5em; }
line-height : 1.5em;
}
.themes.field { .themes.field {
& .dropdown-container { & .dropdown-container {
@@ -174,9 +172,7 @@
z-index : 100; z-index : 100;
background-color : white; background-color : white;
} }
& .dropdown-options { & .dropdown-options { overflow-y : visible; }
overflow-y : visible;
}
.disabled { .disabled {
font-style : italic; font-style : italic;
color : dimgray; color : dimgray;

View File

@@ -259,7 +259,7 @@ const Snippetbar = createClass({
</div> </div>
</div> </div>
) );
}, },
render : function(){ render : function(){

View File

@@ -22,7 +22,7 @@
justify-content : flex-end; justify-content : flex-end;
min-width : 225px; min-width : 225px;
&:only-child { margin-left : auto;min-width:unset;} &:only-child {min-width : unset; margin-left : auto;}
>div { >div {
display : flex; display : flex;
@@ -39,9 +39,7 @@
text-align : center; text-align : center;
cursor : pointer; cursor : pointer;
&.editorTool:not(.active) { &.editorTool:not(.active) { cursor : not-allowed; }
cursor:not-allowed;
}
&:hover,&.selected { background-color : #999999; } &:hover,&.selected { background-color : #999999; }
&.text { &.text {
@@ -151,9 +149,9 @@
position : absolute; position : absolute;
top : 100%; top : 100%;
z-index : 1000; z-index : 1000;
visibility : hidden;
padding : 0px; padding : 0px;
margin-left : -5px; margin-left : -5px;
visibility : hidden;
background-color : #DDDDDD; background-color : #DDDDDD;
.snippet { .snippet {
position : relative; position : relative;

View File

@@ -8,13 +8,13 @@ const TagInput = ({ unique = true, values = [], ...props }) => {
const [tagList, setTagList] = useState(values.map((value)=>({ value, editing: false }))); const [tagList, setTagList] = useState(values.map((value)=>({ value, editing: false })));
useEffect(()=>{ useEffect(()=>{
handleChange(tagList.map((context)=>context.value)) handleChange(tagList.map((context)=>context.value));
}, [tagList]) }, [tagList]);
const handleChange = (value)=>{ const handleChange = (value)=>{
props.onChange({ props.onChange({
target : { value } target : { value }
}) });
}; };
const handleInputKeyDown = ({ evt, value, index, options = {} })=>{ const handleInputKeyDown = ({ evt, value, index, options = {} })=>{
@@ -35,7 +35,7 @@ const TagInput = ({ unique = true, values = [], ...props }) => {
} }
// add new tag // add new tag
if(originalValue === null){ if(originalValue === null){
return [...prevContext, { value: newValue, editing: false }] return [...prevContext, { value: newValue, editing: false }];
} }
// update existing tag // update existing tag
return prevContext.map((context, i)=>{ return prevContext.map((context, i)=>{
@@ -65,7 +65,7 @@ const TagInput = ({ unique = true, values = [], ...props }) => {
className='tag' className='tag'
onClick={()=>editTag(index)}> onClick={()=>editTag(index)}>
{context.value} {context.value}
<button onClick={(evt)=>{evt.stopPropagation(); submitTag(null, context.value, index)}}><i className='fa fa-times fa-fw'/></button> <button onClick={(evt)=>{evt.stopPropagation(); submitTag(null, context.value, index);}}><i className='fa fa-times fa-fw'/></button>
</li> </li>
); );
}; };

View File

@@ -3,14 +3,14 @@
height : 100%; height : 100%;
.sitePage { .sitePage {
display : flex; display : flex;
height : 100%;
background-color : @steel;
flex-direction : column; flex-direction : column;
height : 100%;
overflow-y : hidden; overflow-y : hidden;
background-color : @steel;
.content { .content {
position : relative; position : relative;
height : calc(~"100% - 29px"); //Navbar height
flex : auto; flex : auto;
height : calc(~'100% - 29px'); //Navbar height
overflow-y : hidden; overflow-y : hidden;
} }
&.listPage .content { &.listPage .content {
@@ -19,18 +19,14 @@
&::-webkit-scrollbar { &::-webkit-scrollbar {
width : 20px; width : 20px;
&:horizontal { &:horizontal {
height: 20px;
width : auto; width : auto;
height : 20px;
} }
&-thumb { &-thumb {
background: linear-gradient(90deg, #d3c1af 15px, #00000000 15px); background : linear-gradient(90deg, #D3C1AF 15px, #00000000 15px);
&:horizontal{ &:horizontal { background : linear-gradient(0deg, #D3C1AF 15px, #00000000 15px); }
background: linear-gradient(0deg, #d3c1af 15px, #00000000 15px);
}
}
&-corner {
visibility: hidden;
} }
&-corner { visibility : hidden; }
} }
} }
} }

View File

@@ -4,75 +4,67 @@
} }
.errorContainer { .errorContainer {
animation-name: glideDown;
animation-duration: 0.4s;
position : absolute; position : absolute;
top : 100%; top : 100%;
left : 50%; left : 50%;
z-index : 1000; z-index : 1000;
width : 140px; width : 140px;
padding : 3px; padding : 3px;
color : white;
background-color : #333;
border : 3px solid #444;
border-radius : 5px;
transform : translate(-50% + 3px, 10px);
text-align : center;
font-size : 10px; font-size : 10px;
font-weight : 800; font-weight : 800;
color : white;
text-align : center;
text-transform : uppercase; text-transform : uppercase;
.lowercase { background-color : #333333;
text-transform : none; border : 3px solid #444444;
} border-radius : 5px;
a{ transform : translate(-50% + 3px, 10px);
color : @teal; animation-name : glideDown;
} animation-duration : 0.4s;
&:before { .lowercase { text-transform : none; }
content: ""; a { color : @teal; }
width: 0px; &::before {
height: 0px;
position : absolute; position : absolute;
border-left: 10px solid transparent;
border-right: 10px solid transparent;
border-top: 10px solid transparent;
border-bottom: 10px solid #444;
left: 53px;
top : -23px; top : -23px;
} left : 53px;
&:after {
content: "";
width : 0px; width : 0px;
height : 0px; height : 0px;
position: absolute; content : '';
border-left: 10px solid transparent;
border-right: 10px solid transparent;
border-top : 10px solid transparent; border-top : 10px solid transparent;
border-bottom: 10px solid #333; border-right : 10px solid transparent;
left: 53px; border-bottom : 10px solid #444444;
border-left : 10px solid transparent;
}
&::after {
position : absolute;
top : -19px; top : -19px;
left : 53px;
width : 0px;
height : 0px;
content : '';
border-top : 10px solid transparent;
border-right : 10px solid transparent;
border-bottom : 10px solid #333333;
border-left : 10px solid transparent;
} }
.deny { .deny {
width : 48%;
margin : 1px;
padding : 5px;
background-color : #333;
display : inline-block; display : inline-block;
border-left : 1px solid #666; width : 48%;
padding : 5px;
margin : 1px;
background-color : #333333;
border-left : 1px solid #666666;
.animate(background-color); .animate(background-color);
&:hover{ &:hover { background-color : red; }
background-color : red;
}
} }
.confirm { .confirm {
width : 48%;
margin : 1px;
padding : 5px;
background-color : #333;
display : inline-block; display : inline-block;
width : 48%;
padding : 5px;
margin : 1px;
color : white; color : white;
background-color : #333333;
.animate(background-color); .animate(background-color);
&:hover{ &:hover { background-color : teal; }
background-color : teal;
}
} }
} }

View File

@@ -24,11 +24,11 @@
} }
.homebrew nav { .homebrew nav {
background-color : #333333;
position : relative; position : relative;
z-index : 2; z-index : 2;
display : flex; display : flex;
justify-content : space-between; justify-content : space-between;
background-color : #333333;
.navSection { .navSection {
display : flex; display : flex;
@@ -82,8 +82,8 @@
font-weight : 800; font-weight : 800;
line-height : 13px; line-height : 13px;
color : white; color : white;
text-decoration : none;
text-transform : uppercase; text-transform : uppercase;
text-decoration : none;
cursor : pointer; cursor : pointer;
background-color : #333333; background-color : #333333;
i { i {
@@ -106,11 +106,11 @@
display : block; display : block;
width : 100%; width : 100%;
overflow : hidden; overflow : hidden;
text-overflow : ellipsis;
font-size : 12px; font-size : 12px;
font-weight : 800; font-weight : 800;
color : white; color : white;
text-align : center; text-align : center;
text-overflow : ellipsis;
text-transform : initial; text-transform : initial;
white-space : nowrap; white-space : nowrap;
background-color : transparent; background-color : transparent;
@@ -170,16 +170,16 @@
h4 { h4 {
box-sizing : border-box; box-sizing : border-box;
display : block; display : block;
flex-basis : 20%;
flex-grow : 1; flex-grow : 1;
flex-basis : 20%;
min-width : 76px; min-width : 76px;
padding : 5px 0; padding : 5px 0;
color : #BBBBBB; color : #BBBBBB;
text-align : center; text-align : center;
} }
p { p {
flex-basis : 80%;
flex-grow : 1; flex-grow : 1;
flex-basis : 80%;
padding : 5px 0; padding : 5px 0;
font-family : 'Open Sans', sans-serif; font-family : 'Open Sans', sans-serif;
font-size : 10px; font-size : 10px;
@@ -215,10 +215,10 @@
z-index : 10000; z-index : 10000;
box-sizing : border-box; box-sizing : border-box;
display : block; display : block;
visibility : hidden;
width : 100%; width : 100%;
padding : 13px 5px; padding : 13px 5px;
text-align : center; text-align : center;
visibility : hidden;
background-color : #333333; background-color : #333333;
} }
} }

View File

@@ -1,37 +1,36 @@
.brewItem { .brewItem {
position : relative; position : relative;
box-sizing : border-box;
display : inline-block; display : inline-block;
vertical-align : top;
box-sizing : border-box;
box-sizing : border-box;
overflow : hidden;
width : 48%; width : 48%;
min-height : 105px; min-height : 105px;
margin-right : 15px;
margin-bottom : 15px;
padding : 5px 15px 2px 6px; padding : 5px 15px 2px 6px;
padding-right : 15px; padding-right : 15px;
border : 1px solid #c9ad6a; margin-right : 15px;
margin-bottom : 15px;
overflow : hidden;
vertical-align : top;
background-color : #CAB2802E;
border : 1px solid #C9AD6A;
border-radius : 5px; border-radius : 5px;
box-shadow : 0px 4px 5px 0px #333333;
break-inside : avoid;
-webkit-column-break-inside : avoid; -webkit-column-break-inside : avoid;
page-break-inside : avoid; page-break-inside : avoid;
break-inside : avoid;
box-shadow : 0px 4px 5px 0px #333;
background-color : #cab2802e;
.thumbnail { .thumbnail {
position : absolute; position : absolute;
width: 150px;
height: 100%;
top : 0; top : 0;
right : 0; right : 0;
z-index : -1; z-index : -1;
background-size: contain; width : 150px;
height : 100%;
background-repeat : no-repeat; background-repeat : no-repeat;
background-position : right top; background-position : right top;
mask-image: linear-gradient(80deg, #0000 20%, #050 40%); background-size : contain;
-webkit-mask-image: linear-gradient(80deg, #0000 20%, #050 40%);
opacity : 50%; opacity : 50%;
-webkit-mask-image : linear-gradient(80deg, #00000000 20%, #005500 40%);
mask-image : linear-gradient(80deg, #00000000 20%, #005500 40%);
} }
.text { .text {
min-height : 54px; min-height : 54px;
@@ -43,94 +42,76 @@
.info { .info {
position : initial; position : initial;
bottom : 2px; bottom : 2px;
font-family : ScalySansRemake; font-family : "ScalySansRemake";
font-size : 1.2em; font-size : 1.2em;
& > span { & > span {
margin-right : 12px; margin-right : 12px;
line-height : 1.5em; line-height : 1.5em;
a { a { color : inherit; }
color:inherit;
}
} }
} }
.brewTags span { .brewTags span {
background-color: #c8ac6e3b;
margin: 2px;
padding: 2px;
border: 1px solid #c8ac6e;
border-radius: 4px;
white-space: nowrap;
display : inline-block; display : inline-block;
padding : 2px;
margin : 2px;
font-weight : bold; font-weight : bold;
border-color: currentColor; white-space : nowrap;
cursor : pointer; cursor : pointer;
&:before { background-color : #C8AC6E3B;
border : 1px solid #C8AC6E;
border-color : currentColor;
border-radius : 4px;
&::before {
margin-right : 3px;
font-family : 'Font Awesome 5 Free'; font-family : 'Font Awesome 5 Free';
font-size : 12px; font-size : 12px;
margin-right: 3px;
} }
&.type { &.type {
background-color: #0080003b;
color : #008000; color : #008000;
&:before{ background-color : #0080003B;
content: '\f0ad'; &::before { content : '\f0ad'; }
}
} }
&.group { &.group {
background-color: #5050503b;
color : #000000; color : #000000;
&:before{ background-color : #5050503B;
content: '\f500'; &::before { content : '\f500'; }
}
} }
&.meta { &.meta {
background-color: #0000803b;
color : #000080; color : #000080;
&:before{ background-color : #0000803B;
content: '\f05a'; &::before { content : '\f05a'; }
}
} }
&.system { &.system {
background-color: #8000003b;
color : #800000; color : #800000;
&:before{ background-color : #8000003B;
content: '\f518'; &::before { content : '\f518'; }
}
} }
} }
&:hover { &:hover {
.links{ .links { opacity : 1; }
opacity : 1;
}
}
&:nth-child(2n + 1){
margin-right : 0px;
} }
&:nth-child(2n + 1) { margin-right : 0px; }
.links { .links {
.animate(opacity); .animate(opacity);
position : absolute; position : absolute;
top : 0px; top : 0px;
right : 0px; right : 0px;
height : 100%;
width : 2em; width : 2em;
opacity : 0; height : 100%;
background-color : fade(black, 60%);
text-align : center; text-align : center;
background-color : fade(black, 60%);
opacity : 0;
a { a {
.animate(opacity); .animate(opacity);
display : block; display : block;
margin : 8px 0px; margin : 8px 0px;
opacity : 0.6;
font-size : 1.3em; font-size : 1.3em;
color : white; color : white;
text-decoration : unset; text-decoration : unset;
&:hover{ opacity : 0.6;
opacity : 1; &:hover { opacity : 1; }
} i { cursor : pointer; }
i{
cursor : pointer;
}
} }
} }
.googleDriveIcon { .googleDriveIcon {
@@ -139,10 +120,10 @@
margin : -5px; margin : -5px;
} }
.homebreweryIcon { .homebreweryIcon {
mix-blend-mode : darken;
height : 24px;
position : relative; position : relative;
top : 5px; top : 5px;
left : -5px; left : -5px;
height : 24px;
mix-blend-mode : darken;
} }
} }

View File

@@ -20,170 +20,144 @@
z-index : 1; z-index : 1;
.page { .page {
.noColumns() !important; //Needed to override PHB Theme since this is on a lower @layer .noColumns() !important; //Needed to override PHB Theme since this is on a lower @layer
&::after{ &::after { display : none; }
display : none;
}
.noBrews { .noBrews {
margin : 10px 0px; margin : 10px 0px;
font-size : 1.3em; font-size : 1.3em;
font-style : italic; font-style : italic;
} }
.brewCollection { .brewCollection {
h1:hover{ h1:hover { cursor : pointer; }
cursor: pointer;
}
.active::before, .inactive::before { .active::before, .inactive::before {
font-family: 'Font Awesome 5 Free';
font-weight: 900;
font-size: 0.6cm;
padding-right : 0.5em; padding-right : 0.5em;
font-family : 'Font Awesome 5 Free';
font-size : 0.6cm;
font-weight : 900;
} }
.active { .active { color : var(--HB_Color_HeaderText); }
color: var(--HB_Color_HeaderText); .active::before { content : '\f107'; }
} .inactive { color : #707070; }
.active::before { .inactive::before { content : '\f105'; }
content: '\f107';
}
.inactive {
color: #707070;
}
.inactive::before {
content: '\f105';
}
} }
} }
} }
.sort-container { .sort-container {
font-family : 'Open Sans', sans-serif;
position : sticky; position : sticky;
top : 0; top : 0;
left : 0; left : 0;
width : 100%;
height : 30px;
background-color : #555;
border-top : 1px solid #666;
border-bottom : 1px solid #666;
color : white;
text-align : center;
z-index : 1; z-index : 1;
display : flex; display : flex;
justify-content : center;
align-items : baseline;
column-gap : 15px;
row-gap : 5px;
flex-wrap : wrap; flex-wrap : wrap;
row-gap : 5px;
column-gap : 15px;
align-items : baseline;
justify-content : center;
width : 100%;
height : 30px;
font-family : 'Open Sans', sans-serif;
color : white;
text-align : center;
background-color : #555555;
border-top : 1px solid #666666;
border-bottom : 1px solid #666666;
h6 { h6 {
text-transform : uppercase;
font-family : 'Open Sans', sans-serif; font-family : 'Open Sans', sans-serif;
font-size : 11px; font-size : 11px;
font-weight : bold; font-weight : bold;
text-transform : uppercase;
} }
.sort-option { .sort-option {
display : flex; display : flex;
align-items : center; align-items : center;
padding: 0 8px;
color: #ccc;
height : 100%; height : 100%;
padding : 0 8px;
color : #CCCCCC;
&:hover{ &:hover { background-color : #444444; }
background-color : #444;
}
&.active { &.active {
font-weight : bold; font-weight : bold;
color: #ddd; color : #DDDDDD;
background-color: #333; background-color : #333333;
button { button {
color: white;
font-weight: 800;
height : 100%; height : 100%;
& + .sortDir { font-weight : 800;
padding-left: 5px; color : white;
} & + .sortDir { padding-left : 5px; }
} }
} }
} }
.filter-option { .filter-option {
margin-left : 20px; margin-left : 20px;
background-color : transparent !important;
font-size : 11px; font-size : 11px;
i{ background-color : transparent !important;
padding-right : 5px; i { padding-right : 5px; }
}
} }
button { button {
background-color : transparent;
font-family : 'Open Sans', sans-serif;
text-transform : uppercase;
font-weight : normal;
font-size : 11px;
color : #ccc;
padding : 0; padding : 0;
font-family : 'Open Sans', sans-serif;
font-size : 11px;
font-weight : normal;
color : #CCCCCC;
text-transform : uppercase;
background-color : transparent;
} }
} }
.tags-container { .tags-container {
height : 30px;
background-color : #555;
border-top : 1px solid #666;
border-bottom : 1px solid #666;
color : white;
display : flex; display : flex;
justify-content : center;
align-items : center;
column-gap : 15px;
row-gap : 5px;
flex-wrap : wrap; flex-wrap : wrap;
row-gap : 5px;
column-gap : 15px;
align-items : center;
justify-content : center;
height : 30px;
color : white;
background-color : #555555;
border-top : 1px solid #666666;
border-bottom : 1px solid #666666;
span { span {
padding : 3px;
font-family : 'Open Sans', sans-serif; font-family : 'Open Sans', sans-serif;
font-size : 11px; font-size : 11px;
font-weight : bold; font-weight : bold;
color : #DFDFDF;
cursor : pointer;
border : 1px solid; border : 1px solid;
border-radius : 3px; border-radius : 3px;
padding : 3px; &::before {
cursor : pointer;
color: #dfdfdf;
&:before {
font-family: 'Font Awesome 5 Free';
font-size: 12px;
margin-right : 3px; margin-right : 3px;
}
&:after {
content: '\f00d';
font-family : 'Font Awesome 5 Free'; font-family : 'Font Awesome 5 Free';
font-size : 12px; font-size : 12px;
}
&::after {
margin-left : 3px; margin-left : 3px;
font-family : 'Font Awesome 5 Free';
font-size : 12px;
content : '\f00d';
} }
&.type { &.type {
background-color : #008000; background-color : #008000;
border-color: #00a000; border-color : #00A000;
&:before{ &::before { content : '\f0ad'; }
content: '\f0ad';
}
} }
&.group { &.group {
background-color : #505050; background-color : #505050;
border-color : #000000; border-color : #000000;
&:before{ &::before { content : '\f500'; }
content: '\f500';
}
} }
&.meta { &.meta {
background-color : #000080; background-color : #000080;
border-color: #0000a0; border-color : #0000A0;
&:before{ &::before { content : '\f05a'; }
content: '\f05a';
}
} }
&.system { &.system {
background-color : #800000; background-color : #800000;
border-color: #a00000; border-color : #A00000;
&:before{ &::before { content : '\f518'; }
content: '\f518';
}
} }
} }
} }

View File

@@ -1,7 +1,7 @@
.homebrew { .homebrew {
.uiPage.sitePage { .uiPage.sitePage {
.content { .content {
width : ~"min(90vw, 1000px)"; width : ~'min(90vw, 1000px)';
padding : 2% 4%; padding : 2% 4%;
margin-top : 25px; margin-top : 25px;
margin-right : auto; margin-right : auto;
@@ -17,19 +17,19 @@
border : 2px solid black; border : 2px solid black;
border-radius : 5px; border-radius : 5px;
button { button {
width : 125px;
margin-right : 5px;
color : black;
background-color : transparent; background-color : transparent;
border : 1px solid black; border : 1px solid black;
border-radius : 5px; border-radius : 5px;
width : 125px;
color : black;
margin-right : 5px;
&.active { &.active {
background-color: #0007;
color : white; color : white;
&:before { background-color : #00000077;
content: '\f00c'; &::before {
font-family: 'FONT AWESOME 5 FREE';
margin-right : 5px; margin-right : 5px;
font-family : 'FONT AWESOME 5 FREE';
content : '\f00c';
} }
} }
} }
@@ -62,9 +62,7 @@
.blank { .blank {
height : 1em; height : 1em;
margin-top : 0; margin-top : 0;
& + * { & + * { margin-top : 0; }
margin-top: 0;
}
} }
} }
} }

View File

@@ -1,29 +1,25 @@
@keyframes glideDown { @keyframes glideDown {
0% {transform : translate(-50% + 3px, 0px); 0% {
opacity : 0;} opacity : 0;transform : translate(-50% + 3px, 0px);}
100% {transform : translate(-50% + 3px, 10px); 100% {
opacity : 1;} opacity : 1;transform : translate(-50% + 3px, 10px);}
} }
.editPage { .editPage {
.navItem.save { .navItem.save {
position : relative;
width : 106px; width : 106px;
text-align : center; text-align : center;
position : relative;
&.saved { &.saved {
color : #666666;
cursor : initial; cursor : initial;
color : #666;
} }
} }
.googleDriveStorage { .googleDriveStorage { position : relative; }
position : relative;
}
.googleDriveStorage img { .googleDriveStorage img {
height : 18px; height : 18px;
padding : 0px; padding : 0px;
margin : -5px; margin : -5px;
&.inactive { &.inactive { filter : grayscale(1); }
filter: grayscale(1);
}
} }
} }

View File

@@ -100,7 +100,7 @@ const HomePage = createClass({
return <div className='homePage sitePage'> return <div className='homePage sitePage'>
<Meta name='google-site-verification' content='NwnAQSSJZzAT7N-p5MY6ydQ7Njm67dtbu73ZSyE5Fy4' /> <Meta name='google-site-verification' content='NwnAQSSJZzAT7N-p5MY6ydQ7Njm67dtbu73ZSyE5Fy4' />
{this.renderNavbar()} {this.renderNavbar()}
<div className="content"> <div className='content'>
<SplitPane onDragFinish={this.handleSplitMove}> <SplitPane onDragFinish={this.handleSplitMove}>
<Editor <Editor
ref={this.editor} ref={this.editor}

View File

@@ -3,48 +3,38 @@
a.floatingNewButton { a.floatingNewButton {
.animate(background-color); .animate(background-color);
position : absolute; position : absolute;
display : block;
right : 70px; right : 70px;
bottom : 50px; bottom : 50px;
z-index : 100;
z-index : 5001; z-index : 5001;
display : block;
padding : 1em; padding : 1em;
background-color : @orange;
font-size : 1.5em; font-size : 1.5em;
color : white; color : white;
text-decoration : none; text-decoration : none;
background-color : @orange;
box-shadow : 3px 3px 15px black; box-shadow : 3px 3px 15px black;
&:hover{ &:hover { background-color : darken(@orange, 20%); }
background-color : darken(@orange, 20%);
}
} }
.floatingSaveButton { .floatingSaveButton {
.animateAll(); .animateAll();
position : absolute; position : absolute;
display : block;
right : 200px; right : 200px;
bottom : 70px; bottom : 70px;
z-index : 100;
z-index : 5000; z-index : 5000;
display : block;
padding : 0.8em; padding : 0.8em;
cursor : pointer;
background-color : @blue;
font-size : 0.8em; font-size : 0.8em;
color : white; color : white;
text-decoration : none; text-decoration : none;
cursor : pointer;
background-color : @blue;
box-shadow : 3px 3px 15px black; box-shadow : 3px 3px 15px black;
&:hover{ &:hover { background-color : darken(@blue, 20%); }
background-color : darken(@blue, 20%); &.show { right : 350px; }
}
&.show{
right : 350px;
}
} }
.navItem.save { .navItem.save {
background-color : @orange; background-color : @orange;
&:hover{ &:hover { background-color : @green; }
background-color: @green;
}
} }
} }

View File

@@ -223,7 +223,7 @@ const NewPage = createClass({
render : function(){ render : function(){
return <div className='newPage sitePage'> return <div className='newPage sitePage'>
{this.renderNavbar()} {this.renderNavbar()}
<div className="content"> <div className='content'>
<SplitPane onDragFinish={this.handleSplitMove}> <SplitPane onDragFinish={this.handleSplitMove}>
<Editor <Editor
ref={this.editor} ref={this.editor}

View File

@@ -1,8 +1,6 @@
.newPage { .newPage {
.navItem.save { .navItem.save {
background-color : @orange; background-color : @orange;
&:hover{ &:hover { background-color : @green; }
background-color: @green;
}
} }
} }

View File

@@ -3,7 +3,5 @@
flex-grow : 1; flex-grow : 1;
justify-content : center; justify-content : center;
} }
.content{ .content { overflow-y : hidden; }
overflow-y : hidden;
}
} }

View File

@@ -1,84 +1,34 @@
.fac { .fac {
display : inline-block; display : inline-block;
background-color : currentColor;
mask-size : contain;
mask-repeat : no-repeat;
mask-position : center;
width : 1em; width : 1em;
aspect-ratio : 1; aspect-ratio : 1;
background-color : currentColor;
mask-repeat : no-repeat;
mask-position : center;
mask-size : contain;
} }
.position-top-left { .position-top-left { mask-image : url('../icons/position-top-left.svg'); }
mask-image: url('../icons/position-top-left.svg'); .position-top-right { mask-image : url('../icons/position-top-right.svg'); }
} .position-bottom-left { mask-image : url('../icons/position-bottom-left.svg'); }
.position-top-right { .position-bottom-right { mask-image : url('../icons/position-bottom-right.svg'); }
mask-image: url('../icons/position-top-right.svg'); .position-top { mask-image : url('../icons/position-top.svg'); }
} .position-right { mask-image : url('../icons/position-right.svg'); }
.position-bottom-left { .position-bottom { mask-image : url('../icons/position-bottom.svg'); }
mask-image: url('../icons/position-bottom-left.svg'); .position-left { mask-image : url('../icons/position-left.svg'); }
} .mask-edge { mask-image : url('../icons/mask-edge.svg'); }
.position-bottom-right { .mask-corner { mask-image : url('../icons/mask-corner.svg'); }
mask-image: url('../icons/position-bottom-right.svg'); .mask-center { mask-image : url('../icons/mask-center.svg'); }
} .book-front-cover { mask-image : url('../icons/book-front-cover.svg'); }
.position-top { .book-back-cover { mask-image : url('../icons/book-back-cover.svg'); }
mask-image: url('../icons/position-top.svg'); .book-inside-cover { mask-image : url('../icons/book-inside-cover.svg'); }
} .book-part-cover { mask-image : url('../icons/book-part-cover.svg'); }
.position-right { .image-wrap-left { mask-image : url('../icons/image-wrap-left.svg'); }
mask-image: url('../icons/position-right.svg'); .image-wrap-right { mask-image : url('../icons/image-wrap-right.svg'); }
} .davek { mask-image : url('../icons/Davek.svg'); }
.position-bottom { .rellanic { mask-image : url('../icons/Rellanic.svg'); }
mask-image: url('../icons/position-bottom.svg'); .iokharic { mask-image : url('../icons/Iokharic.svg'); }
} .zoom-to-fit { mask-image : url('../icons/zoom-to-fit.svg'); }
.position-left { .fit-width { mask-image : url('../icons/fit-width.svg'); }
mask-image: url('../icons/position-left.svg'); .single-spread { mask-image : url('../icons/single-spread.svg'); }
} .facing-spread { mask-image : url('../icons/facing-spread.svg'); }
.mask-edge { .flow-spread { mask-image : url('../icons/flow-spread.svg'); }
mask-image: url('../icons/mask-edge.svg');
}
.mask-corner {
mask-image: url('../icons/mask-corner.svg');
}
.mask-center {
mask-image: url('../icons/mask-center.svg');
}
.book-front-cover {
mask-image: url('../icons/book-front-cover.svg');
}
.book-back-cover {
mask-image: url('../icons/book-back-cover.svg');
}
.book-inside-cover {
mask-image: url('../icons/book-inside-cover.svg');
}
.book-part-cover {
mask-image: url('../icons/book-part-cover.svg');
}
.image-wrap-left {
mask-image: url('../icons/image-wrap-left.svg');
}
.image-wrap-right {
mask-image: url('../icons/image-wrap-right.svg');
}
.davek {
mask-image: url('../icons/Davek.svg');
}
.rellanic {
mask-image: url('../icons/Rellanic.svg');
}
.iokharic {
mask-image: url('../icons/Iokharic.svg');
}
.zoom-to-fit {
mask-image: url('../icons/zoom-to-fit.svg');
}
.fit-width {
mask-image: url('../icons/fit-width.svg');
}
.single-spread {
mask-image: url('../icons/single-spread.svg');
}
.facing-spread {
mask-image: url('../icons/facing-spread.svg');
}
.flow-spread {
mask-image: url('../icons/flow-spread.svg');
}

View File

@@ -53,7 +53,7 @@ fs.emptyDirSync('./build');
const themes = { Legacy: {}, V3: {} }; const themes = { Legacy: {}, V3: {} };
let themeFiles = fs.readdirSync('./themes/Legacy'); let themeFiles = fs.readdirSync('./themes/Legacy');
for (let dir of themeFiles) { for (const dir of themeFiles) {
const themeData = JSON.parse(fs.readFileSync(`./themes/Legacy/${dir}/settings.json`).toString()); const themeData = JSON.parse(fs.readFileSync(`./themes/Legacy/${dir}/settings.json`).toString());
themeData.path = dir; themeData.path = dir;
themes.Legacy[dir] = (themeData); themes.Legacy[dir] = (themeData);
@@ -70,7 +70,7 @@ fs.emptyDirSync('./build');
} }
themeFiles = fs.readdirSync('./themes/V3'); themeFiles = fs.readdirSync('./themes/V3');
for (let dir of themeFiles) { for (const dir of themeFiles) {
const themeData = JSON.parse(fs.readFileSync(`./themes/V3/${dir}/settings.json`).toString()); const themeData = JSON.parse(fs.readFileSync(`./themes/V3/${dir}/settings.json`).toString());
themeData.path = dir; themeData.path = dir;
themes.V3[dir] = (themeData); themes.V3[dir] = (themeData);
@@ -113,7 +113,7 @@ fs.emptyDirSync('./build');
const stream = fs.createWriteStream(editorThemeFile, { flags: 'a' }); const stream = fs.createWriteStream(editorThemeFile, { flags: 'a' });
stream.write('[\n"default"'); stream.write('[\n"default"');
for (let themeFile of editorThemeFiles) { for (const themeFile of editorThemeFiles) {
stream.write(`,\n"${themeFile.slice(0, -4)}"`); stream.write(`,\n"${themeFile.slice(0, -4)}"`);
} }
stream.write('\n]\n'); stream.write('\n]\n');

View File

@@ -75,7 +75,7 @@ describe('Tests for admin api', ()=>{
const response = await app const response = await app
.post('/admin/notification/add') .post('/admin/notification/add')
.set('Authorization', 'Basic ' + Buffer.from('admin:password3').toString('base64')) .set('Authorization', `Basic ${Buffer.from('admin:password3').toString('base64')}`)
.send(inputNotification); .send(inputNotification);
expect(response.status).toBe(500); expect(response.status).toBe(500);

View File

@@ -11,7 +11,6 @@ const version = packageJSON.version;
import _ from 'lodash'; import _ from 'lodash';
import jwt from 'jwt-simple'; import jwt from 'jwt-simple';
import express from 'express'; import express from 'express';
import yaml from 'js-yaml';
import config from './config.js'; import config from './config.js';
import fs from 'fs-extra'; import fs from 'fs-extra';

View File

@@ -181,6 +181,7 @@ const api = {
`${text}`; `${text}`;
return text; return text;
}, },
getGoodBrewTitle : (text)=>{ getGoodBrewTitle : (text)=>{
const tokens = Markdown.marked.lexer(text); const tokens = Markdown.marked.lexer(text);
return (tokens.find((token)=>token.type === 'heading' || token.type === 'paragraph')?.text || 'No Title') return (tokens.find((token)=>token.type === 'heading' || token.type === 'paragraph')?.text || 'No Title')
@@ -294,7 +295,7 @@ const api = {
currentTheme = req.brew; currentTheme = req.brew;
splitTextStyleAndMetadata(currentTheme); splitTextStyleAndMetadata(currentTheme);
if(!currentTheme.tags.some(tag => tag === "meta:theme" || tag === "meta:Theme")) if(!currentTheme.tags.some((tag)=>tag === 'meta:theme' || tag === 'meta:Theme'))
throw { brewId: req.params.id, name: 'Invalid Theme Selected', message: 'Selected theme does not have the meta:theme tag', status: 422, HBErrorCode: '10' }; throw { brewId: req.params.id, name: 'Invalid Theme Selected', message: 'Selected theme does not have the meta:theme tag', status: 422, HBErrorCode: '10' };
themeName ??= currentTheme.title; themeName ??= currentTheme.title;
themeAuthor ??= currentTheme.authors?.[0]; themeAuthor ??= currentTheme.authors?.[0];

View File

@@ -87,7 +87,7 @@ renderer.paragraph = function(token){
//Fix local links in the Preview iFrame to link inside the frame //Fix local links in the Preview iFrame to link inside the frame
renderer.link = function (token) { renderer.link = function (token) {
let { href, title, tokens } = token; let { href, title, tokens } = token;
const text = this.parser.parseInline(tokens) const text = this.parser.parseInline(tokens);
let self = false; let self = false;
if(href[0] == '#') { if(href[0] == '#') {
self = true; self = true;
@@ -110,7 +110,7 @@ renderer.link = function (token) {
// Expose `src` attribute as `--HB_src` to make the URL accessible via CSS // Expose `src` attribute as `--HB_src` to make the URL accessible via CSS
renderer.image = function (token) { renderer.image = function (token) {
let {href, title, text} = token; const { href, title, text } = token;
if(href === null) if(href === null)
return text; return text;
@@ -873,7 +873,7 @@ const extractHTMLStyleTags = (htmlString)=>{
?.filter((attr)=>!attr.startsWith('class="') && !attr.startsWith('style="') && !attr.startsWith('id="')) ?.filter((attr)=>!attr.startsWith('class="') && !attr.startsWith('style="') && !attr.startsWith('id="'))
.reduce((obj, attr)=>{ .reduce((obj, attr)=>{
const index = attr.indexOf('='); const index = attr.indexOf('=');
let [key, value] = [attr.substring(0, index), attr.substring(index + 1)]; const [key, value] = [attr.substring(0, index), attr.substring(index + 1)];
obj[key.trim()] = value.replace(/"/g, ''); obj[key.trim()] = value.replace(/"/g, '');
return obj; return obj;
}, {}) || null; }, {}) || null;

View File

@@ -21,8 +21,8 @@
background-color : #BBBBBB; background-color : #BBBBBB;
.dots { .dots {
display : table-cell; display : table-cell;
text-align : center;
vertical-align : middle; vertical-align : middle;
text-align : center;
i { i {
display : block !important; display : block !important;
margin : 10px 0px; margin : 10px 0px;

View File

@@ -60,10 +60,10 @@
.delay(@delay) { .delay(@delay) {
animation-delay:@delay;
-webkit-animation-delay:@delay;
transition-delay:@delay;
-webkit-transition-delay : @delay; -webkit-transition-delay : @delay;
transition-delay : @delay;
-webkit-animation-delay : @delay;
animation-delay : @delay;
} }
.keep() { .keep() {
-webkit-animation-fill-mode : forwards; -webkit-animation-fill-mode : forwards;
@@ -75,26 +75,26 @@
.sequentialDelay(@delayInc : 0.2s, @initialDelay : 0s) { .sequentialDelay(@delayInc : 0.2s, @initialDelay : 0s) {
&:nth-child(1){.delay(0*@delayInc + @initialDelay)} &:nth-child(1) {.delay(0*@delayInc + @initialDelay); }
&:nth-child(2){.delay(1*@delayInc + @initialDelay)} &:nth-child(2) {.delay(1*@delayInc + @initialDelay); }
&:nth-child(3){.delay(2*@delayInc + @initialDelay)} &:nth-child(3) {.delay(2*@delayInc + @initialDelay); }
&:nth-child(4){.delay(3*@delayInc + @initialDelay)} &:nth-child(4) {.delay(3*@delayInc + @initialDelay); }
&:nth-child(5){.delay(4*@delayInc + @initialDelay)} &:nth-child(5) {.delay(4*@delayInc + @initialDelay); }
&:nth-child(6){.delay(5*@delayInc + @initialDelay)} &:nth-child(6) {.delay(5*@delayInc + @initialDelay); }
&:nth-child(7){.delay(6*@delayInc + @initialDelay)} &:nth-child(7) {.delay(6*@delayInc + @initialDelay); }
&:nth-child(8){.delay(7*@delayInc + @initialDelay)} &:nth-child(8) {.delay(7*@delayInc + @initialDelay); }
&:nth-child(9){.delay(8*@delayInc + @initialDelay)} &:nth-child(9) {.delay(8*@delayInc + @initialDelay); }
&:nth-child(10){.delay(9*@delayInc + @initialDelay)} &:nth-child(10) {.delay(9*@delayInc + @initialDelay); }
&:nth-child(11){.delay(10*@delayInc + @initialDelay)} &:nth-child(11) {.delay(10*@delayInc + @initialDelay); }
&:nth-child(12){.delay(11*@delayInc + @initialDelay)} &:nth-child(12) {.delay(11*@delayInc + @initialDelay); }
&:nth-child(13){.delay(12*@delayInc + @initialDelay)} &:nth-child(13) {.delay(12*@delayInc + @initialDelay); }
&:nth-child(14){.delay(13*@delayInc + @initialDelay)} &:nth-child(14) {.delay(13*@delayInc + @initialDelay); }
&:nth-child(15){.delay(14*@delayInc + @initialDelay)} &:nth-child(15) {.delay(14*@delayInc + @initialDelay); }
&:nth-child(16){.delay(15*@delayInc + @initialDelay)} &:nth-child(16) {.delay(15*@delayInc + @initialDelay); }
&:nth-child(17){.delay(16*@delayInc + @initialDelay)} &:nth-child(17) {.delay(16*@delayInc + @initialDelay); }
&:nth-child(18){.delay(17*@delayInc + @initialDelay)} &:nth-child(18) {.delay(17*@delayInc + @initialDelay); }
&:nth-child(19){.delay(18*@delayInc + @initialDelay)} &:nth-child(19) {.delay(18*@delayInc + @initialDelay); }
&:nth-child(20){.delay(19*@delayInc + @initialDelay)} &:nth-child(20) {.delay(19*@delayInc + @initialDelay); }
} }

View File

@@ -23,47 +23,47 @@
@grey : #7F8C8D; @grey : #7F8C8D;
#backgroundColors { #backgroundColors {
&.tealLight{ background-color : @tealLight }; &.tealLight { background-color : @tealLight; };
&.teal{ background-color : @teal }; &.teal { background-color : @teal; };
&.greenLight{ background-color : @greenLight }; &.greenLight { background-color : @greenLight; };
&.green{ background-color : @green }; &.green { background-color : @green; };
&.blueLight{ background-color : @blueLight }; &.blueLight { background-color : @blueLight; };
&.blue{ background-color : @blue }; &.blue { background-color : @blue; };
&.purpleLight{ background-color : @purpleLight }; &.purpleLight { background-color : @purpleLight; };
&.purple{ background-color : @purple }; &.purple { background-color : @purple; };
&.steelLight{ background-color : @steelLight }; &.steelLight { background-color : @steelLight; };
&.steel{ background-color : @steel }; &.steel { background-color : @steel; };
&.yellowLight{ background-color : @yellowLight }; &.yellowLight { background-color : @yellowLight; };
&.yellow{ background-color : @yellow }; &.yellow { background-color : @yellow; };
&.orangeLight{ background-color : @orangeLight }; &.orangeLight { background-color : @orangeLight; };
&.orange{ background-color : @orange }; &.orange { background-color : @orange; };
&.redLight{ background-color : @redLight }; &.redLight { background-color : @redLight; };
&.red{ background-color : @red }; &.red { background-color : @red; };
&.silverLight{ background-color : @silverLight }; &.silverLight { background-color : @silverLight; };
&.silver{ background-color : @silver }; &.silver { background-color : @silver; };
&.greyLight{ background-color : @greyLight }; &.greyLight { background-color : @greyLight; };
&.grey{ background-color : @grey }; &.grey { background-color : @grey; };
} }
#backgroundColorsHover { #backgroundColorsHover {
&.tealLight:hover{ background-color : @tealLight }; &.tealLight:hover { background-color : @tealLight; };
&.teal:hover{ background-color : @teal }; &.teal:hover { background-color : @teal; };
&.greenLight:hover{ background-color : @greenLight }; &.greenLight:hover { background-color : @greenLight; };
&.green:hover{ background-color : @green }; &.green:hover { background-color : @green; };
&.blueLight:hover{ background-color : @blueLight }; &.blueLight:hover { background-color : @blueLight; };
&.blue:hover{ background-color : @blue }; &.blue:hover { background-color : @blue; };
&.purpleLight:hover{ background-color : @purpleLight }; &.purpleLight:hover { background-color : @purpleLight; };
&.purple:hover{ background-color : @purple }; &.purple:hover { background-color : @purple; };
&.steelLight:hover{ background-color : @steelLight }; &.steelLight:hover { background-color : @steelLight; };
&.steel:hover{ background-color : @steel }; &.steel:hover { background-color : @steel; };
&.yellowLight:hover{ background-color : @yellowLight }; &.yellowLight:hover { background-color : @yellowLight; };
&.yellow:hover{ background-color : @yellow }; &.yellow:hover { background-color : @yellow; };
&.orangeLight:hover{ background-color : @orangeLight }; &.orangeLight:hover { background-color : @orangeLight; };
&.orange:hover{ background-color : @orange }; &.orange:hover { background-color : @orange; };
&.redLight:hover{ background-color : @redLight }; &.redLight:hover { background-color : @redLight; };
&.red:hover{ background-color : @red }; &.red:hover { background-color : @red; };
&.silverLight:hover{ background-color : @silverLight }; &.silverLight:hover { background-color : @silverLight; };
&.silver:hover{ background-color : @silver }; &.silver:hover { background-color : @silver; };
&.greyLight:hover{ background-color : @greyLight }; &.greyLight:hover { background-color : @greyLight; };
&.grey:hover{ background-color : @grey }; &.grey:hover { background-color : @grey; };
} }

View File

@@ -18,31 +18,25 @@ html,body, #reactRoot{
margin : 0; margin : 0;
font-family : 'Open Sans', sans-serif; font-family : 'Open Sans', sans-serif;
} }
*{ * { box-sizing : border-box; }
box-sizing : border-box;
}
.colorButton(@backgroundColor : @green) { .colorButton(@backgroundColor : @green) {
.animate(background-color); .animate(background-color);
display : inline-block; display : inline-block;
padding : 0.6em 1.2em; padding : 0.6em 1.2em;
cursor : pointer;
background-color : @backgroundColor;
font-family : 'Open Sans', sans-serif; font-family : 'Open Sans', sans-serif;
font-size : 0.8em; font-size : 0.8em;
font-weight : 800; font-weight : 800;
color : white; color : white;
text-decoration : none;
text-transform : uppercase; text-transform : uppercase;
border : none; text-decoration : none;
cursor : pointer;
outline : none; outline : none;
&:hover{ background-color : @backgroundColor;
background-color : darken(@backgroundColor, 5%); border : none;
} &:hover { background-color : darken(@backgroundColor, 5%); }
&:active{ &:active { background-color : darken(@backgroundColor, 10%); }
background-color : darken(@backgroundColor, 10%);
}
&:disabled { &:disabled {
background-color : @silver !important;
cursor : not-allowed; cursor : not-allowed;
background-color : @silver !important;
} }
} }

View File

@@ -5,16 +5,16 @@ html, body{
position : relative; position : relative;
height : 100%; height : 100%;
min-height : 100%; min-height : 100%;
background-color : #eee;
font-family : 'Lato', sans-serif; font-family : 'Lato', sans-serif;
color : @copyGrey; color : @copyGrey;
background-color : #EEEEEE;
} }
.container { .container {
position : relative; position : relative;
max-width : @containerWidth; max-width : @containerWidth;
margin : 0 auto;
padding-right : 20px; padding-right : 20px;
padding-left : 20px; padding-left : 20px;
margin : 0 auto;
} }
h1 { h1 {
margin-top : 10px; margin-top : 10px;
@@ -36,21 +36,17 @@ h3{
p { p {
margin-bottom : 1em; margin-bottom : 1em;
font-size : 16px; font-size : 16px;
color : @copyGrey;
line-height : 1.5em; line-height : 1.5em;
color : @copyGrey;
} }
code { code {
background-color : #F8F8F8; font-family : 'Courier', "mono";
font-family : 'Courier', mono;
color : black; color : black;
white-space : pre; white-space : pre;
background-color : #F8F8F8;
} }
a{ a { color : inherit; }
color : inherit; strong { font-weight : bold; }
}
strong{
font-weight : bold;
}
button { button {
.button(); .button();
} }
@@ -58,29 +54,23 @@ button{
.animate(background-color); .animate(background-color);
display : inline-block; display : inline-block;
padding : 0.6em 1.2em; padding : 0.6em 1.2em;
cursor : pointer; font-family : 'Lato', "Helvetica", "Arial", sans-serif;
background-color : @backgroundColor;
font-family : "Lato", Helvetica, Arial, sans-serif;
font-size : 15px; font-size : 15px;
color : white; color : white;
text-decoration : none; text-decoration : none;
border : none; cursor : pointer;
outline : none; outline : none;
&:hover{ background-color : @backgroundColor;
background-color : darken(@backgroundColor, 5%); border : none;
} &:hover { background-color : darken(@backgroundColor, 5%); }
&:active{ &:active { background-color : darken(@backgroundColor, 10%); }
background-color : darken(@backgroundColor, 10%); &:disabled { background-color : @silver !important; }
}
&:disabled{
background-color : @silver !important;
}
} }
.iconButton(@backgroundColor : @green) { .iconButton(@backgroundColor : @green) {
padding : 0.6em; padding : 0.6em;
cursor : pointer;
background-color : @backgroundColor;
font-size : 14px; font-size : 14px;
color : white; color : white;
text-align : center; text-align : center;
cursor : pointer;
background-color : @backgroundColor;
} }

View File

@@ -1,33 +1,23 @@
:where(html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,button,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video){ :where(html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,button,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video) {padding : 0;margin : 0;font : inherit;font-size : 100%;vertical-align : baseline;
border:0;font-size:100%;font:inherit;vertical-align:baseline;margin:0;padding:0 border : 0;
} }
:where(article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section){ :where(article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section) { display : block; }
display:block
}
:where(body){ :where(body) { line-height : 1; }
line-height:1
}
:where(ol,ul){ :where(ol,ul) { list-style : none; }
list-style:none
}
:where(blockquote,q){ :where(blockquote,q) { quotes : none; }
quotes:none
}
:where(blockquote:before,blockquote:after,q:before,q:after){ :where(blockquote::before,blockquote::after,q::before,q::after) { content : none; }
content:none
}
:where(table){ :where(table) {border-spacing : 0;
border-collapse:collapse;border-spacing:0 border-collapse : collapse;
} }
:where(button) { :where(button) {
background-color: unset;
text-transform: unset;
color : unset; color : unset;
text-transform : unset;
background-color : unset;
} }

View File

@@ -22,96 +22,95 @@
} }
.tooltipTop(@content) { .tooltipTop(@content) {
.tooltipBase(@content); .tooltipBase(@content);
&:before { &::before {
margin-bottom : -@arrowSize * 2; margin-bottom : -@arrowSize * 2;
border-top-color : @tooltipColor; border-top-color : @tooltipColor;
} }
&:after{ margin-left: -18px; } &::after { margin-left : -18px; }
&:before, &:after{ &::before, &::after {
bottom : 100%; bottom : 100%;
left : 50%; left : 50%;
} }
&:hover:after, &:hover:before, &:focus:after, &:focus:before { &:hover::after, &:hover::before, &:focus::after, &:focus::before {
.transform(translateY(-(@arrowSize + 2))); .transform(translateY(-(@arrowSize + 2)));
} }
} }
.tooltipBottom(@content) { .tooltipBottom(@content) {
.tooltipBase(@content); .tooltipBase(@content);
&:before { &::before {
margin-top : -@arrowSize * 2; margin-top : -@arrowSize * 2;
border-bottom-color : @tooltipColor; border-bottom-color : @tooltipColor;
} }
&:after{ margin-left: -18px; } &::after { margin-left : -18px; }
&:before, &:after{ &::before, &::after {
top : 100%; top : 100%;
left : 50%; left : 50%;
} }
&:hover:after, &:hover:before, &:focus:after, &:focus:before { &:hover::after, &:hover::before, &:focus::after, &:focus::before {
.transform(translateY(@arrowSize + 2)); .transform(translateY(@arrowSize + 2));
} }
} }
.tooltipLeft(@content) { .tooltipLeft(@content) {
.tooltipBase(@content); .tooltipBase(@content);
&:before { &::before {
margin-right : -@arrowSize * 2; margin-right : -@arrowSize * 2;
margin-bottom : -@arrowSize; margin-bottom : -@arrowSize;
border-left-color : @tooltipColor; border-left-color : @tooltipColor;
} }
&:after{ margin-bottom: -14px;} &::after { margin-bottom : -14px;}
&:before, &:after { &::before, &::after {
right : 100%; right : 100%;
bottom : 50%; bottom : 50%;
} }
&:hover:after, &:hover:before, &:focus:after, &:focus:before { &:hover::after, &:hover::before, &:focus::after, &:focus::before {
.transform(translateX(-(@arrowSize + 2))); .transform(translateX(-(@arrowSize + 2)));
} }
} }
.tooltipRight(@content) { .tooltipRight(@content) {
.tooltipBase(@content); .tooltipBase(@content);
&:before { &::before {
margin-bottom : -@arrowSize; margin-bottom : -@arrowSize;
margin-left : -@arrowSize * 2; margin-left : -@arrowSize * 2;
border-right-color : @tooltipColor; border-right-color : @tooltipColor;
} }
&:after{ margin-bottom: -14px;} &::after { margin-bottom : -14px;}
&:before, &:after { &::before, &::after {
bottom : 50%; bottom : 50%;
left : 100%; left : 100%;
} }
&:hover:after, &:hover:before, &:focus:after, &:focus:before { &:hover::after, &:hover::before, &:focus::after, &:focus::before {
.transform(translateX(@arrowSize + 2)); .transform(translateX(@arrowSize + 2));
} }
} }
.tooltipShow(){ .tooltipShow(){ }
}
.tooltipBase(@content) { .tooltipBase(@content) {
//position: relative; //position: relative;
&:before, &:after{ &::before, &::after {
.animateAll(); .animateAll();
position : absolute; position : absolute;
z-index : 1000000; z-index : 1000000;
opacity : 0;
pointer-events : none; pointer-events : none;
opacity : 0;
} }
//Arrow //Arrow
&:before{ &::before {
content : '';
z-index : 1000001; z-index : 1000001;
content : '';
background : transparent; background : transparent;
border : @arrowSize solid transparent; border : @arrowSize solid transparent;
} }
//Box //Box
&:after{ &::after {
content : @content;
visibility : hidden; visibility : hidden;
padding : 8px 10px; padding : 8px 10px;
background : @tooltipColor;
font-size : 12px; font-size : 12px;
color : white;
line-height : 12px; line-height : 12px;
color : white;
white-space : nowrap; white-space : nowrap;
content : @content;
background : @tooltipColor;
} }
&:hover:before, &:hover:after { &:hover::before, &:hover::after {
visibility : visible; visibility : visible;
opacity : 1; opacity : 1;
} }

View File

@@ -1,4 +1,4 @@
/* eslint-disable max-lines */
import Markdown from 'naturalcrit/markdown.js'; import Markdown from 'naturalcrit/markdown.js';

View File

@@ -1,4 +1,4 @@
/* eslint-disable max-lines */
import Markdown from 'naturalcrit/markdown.js'; import Markdown from 'naturalcrit/markdown.js';

View File

@@ -1,4 +1,4 @@
/* eslint-disable max-lines */
import Markdown from 'naturalcrit/markdown.js'; import Markdown from 'naturalcrit/markdown.js';

View File

@@ -10,20 +10,16 @@
@monsterStatBackground : #FDF1DC; // Lighter parchment @monsterStatBackground : #FDF1DC; // Lighter parchment
@captionText : #766649; // Brown @captionText : #766649; // Brown
@page { margin : 0; } @page { margin : 0; }
body { body { counter-reset : phb-page-numbers; }
counter-reset : phb-page-numbers; * { -webkit-print-color-adjust : exact; }
}
*{
-webkit-print-color-adjust : exact;
}
.useSansSerif() { .useSansSerif() {
font-family : ScalySans; font-family : "ScalySans";
em { em {
font-family : ScalySans; font-family : "ScalySans";
font-style : italic; font-style : italic;
} }
strong { strong {
font-family : ScalySans; font-family : "ScalySans";
font-weight : 800; font-weight : 800;
letter-spacing : -0.02em; letter-spacing : -0.02em;
} }
@@ -42,19 +38,19 @@ body {
} }
.phb, .page { .phb, .page {
.useColumns(); .useColumns();
counter-increment : phb-page-numbers;
position : relative; position : relative;
z-index : 15; z-index : 15;
box-sizing : border-box; box-sizing : border-box;
overflow : hidden;
height : 279.4mm;
width : 215.9mm; width : 215.9mm;
height : 279.4mm;
padding : 1.0cm 1.7cm; padding : 1.0cm 1.7cm;
padding-bottom : 1.5cm; padding-bottom : 1.5cm;
overflow : hidden;
font-family : "BookSanity";
font-size : 0.317cm;
counter-increment : phb-page-numbers;
background-color : @background; background-color : @background;
background-image : @backgroundImage; background-image : @backgroundImage;
font-family : BookSanity;
font-size : 0.317cm;
text-rendering : optimizeLegibility; text-rendering : optimizeLegibility;
page-break-before : always; page-break-before : always;
page-break-after : always; page-break-after : always;
@@ -70,47 +66,39 @@ body {
p { p {
padding-bottom : 0.8em; padding-bottom : 0.8em;
line-height : 1.269em; line-height : 1.269em;
&+p{ & + p { margin-top : -0.8em; }
margin-top : -0.8em;
}
} }
ul { ul {
margin-bottom : 0.8em;
padding-left : 1.4em; padding-left : 1.4em;
margin-bottom : 0.8em;
line-height : 1.269em; line-height : 1.269em;
list-style-position : outside; list-style-position : outside;
list-style-type : disc; list-style-type : disc;
} }
ol { ol {
margin-bottom : 0.8em;
padding-left : 1.4em; padding-left : 1.4em;
margin-bottom : 0.8em;
line-height : 1.269em; line-height : 1.269em;
list-style-position : outside; list-style-position : outside;
list-style-type : decimal; list-style-type : decimal;
} }
//Indents after p or lists //Indents after p or lists
p+p, ul+p, ol+p{ p + p, ul + p, ol + p { text-indent : 1em; }
text-indent : 1em; img { z-index : -1; }
}
img{
z-index : -1;
}
strong { strong {
font-weight : bold; font-weight : bold;
letter-spacing : 0.03em; letter-spacing : 0.03em;
} }
em{ em { font-style : italic; }
font-style : italic;
}
sup { sup {
vertical-align : super;
font-size : smaller; font-size : smaller;
line-height : 0; line-height : 0;
vertical-align : super;
} }
sub { sub {
vertical-align : sub;
font-size : smaller; font-size : smaller;
line-height : 0; line-height : 0;
vertical-align : sub;
} }
//***************************** //*****************************
// * HEADERS // * HEADERS
@@ -118,7 +106,7 @@ body {
h1,h2,h3,h4 { h1,h2,h3,h4 {
margin-top : 0.2em; margin-top : 0.2em;
margin-bottom : 0.2em; margin-bottom : 0.2em;
font-family : MrJeeves; font-family : "MrJeeves";
font-weight : 800; font-weight : 800;
color : @headerText; color : @headerText;
} }
@@ -129,15 +117,13 @@ body {
-moz-column-span : all; -moz-column-span : all;
& + p::first-letter { & + p::first-letter {
float : left; float : left;
font-family : Solberry; font-family : "Solberry";
font-size : 10em; font-size : 10em;
color : #222;
line-height : 0.795em; line-height : 0.795em;
color : #222222;
} }
} }
h2{ h2 { font-size : 0.705cm; }
font-size : 0.705cm;
}
h3 { h3 {
font-size : 0.529cm; font-size : 0.529cm;
border-bottom : 2px solid @headerUnderline; border-bottom : 2px solid @headerUnderline;
@@ -148,7 +134,7 @@ body {
} }
h5 { h5 {
margin-bottom : 0.2em; margin-bottom : 0.2em;
font-family : ScalySansSmallCaps; font-family : "ScalySansSmallCaps";
font-size : 0.423cm; font-size : 0.423cm;
font-weight : 900; font-weight : 900;
} }
@@ -164,20 +150,16 @@ body {
display : table-row-group; display : table-row-group;
font-weight : 800; font-weight : 800;
th { th {
vertical-align : bottom;
padding-bottom : 0.3em;
padding-right : 0.1em; padding-right : 0.1em;
padding-bottom : 0.3em;
padding-left : 0.1em; padding-left : 0.1em;
vertical-align : bottom;
} }
} }
tbody { tbody {
tr { tr {
td{ td { padding : 0.3em 0.1em; }
padding : 0.3em 0.1em; &:nth-child(odd) { background-color : @noteGreen; }
}
&:nth-child(odd){
background-color : @noteGreen;
}
} }
} }
} }
@@ -187,23 +169,21 @@ body {
blockquote { blockquote {
.useSansSerif(); .useSansSerif();
box-sizing : border-box; box-sizing : border-box;
margin-bottom : 1em;
padding : 5px 10px; padding : 5px 10px;
margin-bottom : 1em;
background-color : @noteGreen; background-color : @noteGreen;
border-style : solid; border-style : solid;
border-width : 11px; border-width : 11px;
border-image : @noteBorderImage 11; border-image : @noteBorderImage 11;
border-image-outset : 9px 0px; border-image-outset : 9px 0px;
box-shadow : 1px 4px 14px #888; box-shadow : 1px 4px 14px #888888;
p, ul { p, ul {
font-size : 0.352cm; font-size : 0.352cm;
line-height : 1.083em; line-height : 1.083em;
} }
} }
//If a note starts a column, give it space at the top to render border //If a note starts a column, give it space at the top to render border
pre+blockquote, h2+blockquote, h3+blockquote, h4+blockquote, h5+blockquote { pre + blockquote, h2 + blockquote, h3 + blockquote, h4 + blockquote, h5 + blockquote { margin-top : 13px; }
margin-top : 13px;
}
//***************************** //*****************************
// * MONSTER STAT BLOCK // * MONSTER STAT BLOCK
// *****************************/ // *****************************/
@@ -217,18 +197,14 @@ body {
h2 { h2 {
margin-top : -8px; margin-top : -8px;
margin-bottom : 0px; margin-bottom : 0px;
&+p{ & + p { padding-bottom : 0px; }
padding-bottom : 0px;
}
} }
h3 { h3 {
font-family : ScalySans; font-family : "ScalySans";
font-weight : 400; font-weight : normal;
border-bottom : 1px solid @headerText; border-bottom : 1px solid @headerText;
} }
hr+ul{ hr + ul { color : @headerText; }
color : @headerText;
}
ul { ul {
.useSansSerif(); .useSansSerif();
padding-left : 1em; padding-left : 1em;
@@ -241,17 +217,13 @@ body {
border-style : none; border-style : none;
border-image : none; border-image : none;
tbody { tbody {
tr:nth-child(odd), tr:nth-child(even){ tr:nth-child(odd), tr:nth-child(even) { background-color : transparent; }
background-color : transparent;
} }
} }
} table { color : @headerText; }
table{
color : @headerText;
}
p + p { p + p {
margin-top : 0em;
padding-bottom : 0.5em; padding-bottom : 0.5em;
margin-top : 0em;
text-indent : 0em; text-indent : 0em;
} }
//Triangle dividers //Triangle dividers
@@ -273,23 +245,19 @@ body {
// * FOOTER // * FOOTER
// *****************************/ // *****************************/
&:after { &:after {
content : "";
position : absolute; position : absolute;
bottom : 0px; bottom : 0px;
left : 0px; left : 0px;
z-index : 100; z-index : 100;
height : 50px;
width : 100%; width : 100%;
height : 50px;
content : '';
background-image : @footerAccentImage; background-image : @footerAccentImage;
background-size : cover; background-size : cover;
} }
&:nth-child(even) { &:nth-child(even) {
&:after{ &::after { transform : scaleX(-1); }
transform : scaleX(-1); .pageNumber { left : 2px; }
}
.pageNumber{
left : 2px;
}
.footnote { .footnote {
left : 80px; left : 80px;
text-align : left; text-align : left;
@@ -301,11 +269,9 @@ body {
bottom : 22px; bottom : 22px;
width : 50px; width : 50px;
font-size : 0.9em; font-size : 0.9em;
color : #c9ad6a; color : #C9AD6A;
text-align : center; text-align : center;
&.auto::after { &.auto::after { content : counter(phb-page-numbers); }
content : counter(phb-page-numbers);
}
} }
.footnote { .footnote {
position : absolute; position : absolute;
@@ -314,7 +280,7 @@ body {
z-index : 150; z-index : 150;
width : 200px; width : 200px;
font-size : 0.8em; font-size : 0.8em;
color : #c9ad6a; color : #C9AD6A;
text-align : right; text-align : right;
} }
//***************************** //*****************************
@@ -326,8 +292,8 @@ body {
} }
//Modified unorder list, used in spells //Modified unorder list, used in spells
hr + ul { hr + ul {
margin-bottom : 0.5em;
padding-left : 1em; padding-left : 1em;
margin-bottom : 0.5em;
text-indent : -1em; text-indent : -1em;
list-style-type : none; list-style-type : none;
} }
@@ -346,13 +312,9 @@ body {
break-inside : avoid; break-inside : avoid;
} }
//Better spacing for spell blocks //Better spacing for spell blocks
h4+p+hr+ul{ h4 + p + hr + ul { margin-top : -0.5em; }
margin-top : -0.5em
}
//Text indent right after table //Text indent right after table
table+p{ table + p { text-indent : 1em; }
text-indent : 1em;
}
// Nested lists // Nested lists
ul ul,ol ol,ul ol,ol ul { ul ul,ol ol,ul ol,ol ul {
margin-bottom : 0px; margin-bottom : 0px;
@@ -370,33 +332,31 @@ body {
.phb .spellList { .phb .spellList {
.useSansSerif(); .useSansSerif();
column-count : 4; column-count : 4;
column-span : all;
-webkit-column-span : all; -webkit-column-span : all;
-moz-column-span : all; -moz-column-span : all;
ul+h5{ column-span : all;
margin-top : 15px; ul + h5 { margin-top : 15px; }
}
p, ul { p, ul {
font-size : 0.352cm; font-size : 0.352cm;
line-height : 1.263em; line-height : 1.263em;
} }
ul { ul {
margin-bottom : 0.5em;
padding-left : 1em; padding-left : 1em;
margin-bottom : 0.5em;
text-indent : -1em; text-indent : -1em;
list-style-type : none; list-style-type : none;
break-inside : auto;
-webkit-column-break-inside : auto; -webkit-column-break-inside : auto;
page-break-inside : auto; page-break-inside : auto;
break-inside : auto;
} }
} }
//***************************** //*****************************
// * WIDE // * WIDE
// *****************************/ // *****************************/
.phb .wide { .phb .wide {
column-span : all;
-webkit-column-span : all; -webkit-column-span : all;
-moz-column-span : all; -moz-column-span : all;
column-span : all;
} }
//***************************** //*****************************
// * CLASS TABLE // * CLASS TABLE
@@ -408,48 +368,42 @@ body {
background-color : white; background-color : white;
border : initial; border : initial;
border-style : solid; border-style : solid;
border-image-source : @frameBorderImage;
border-image-slice : 150 200 150 200;
border-image-width : 47px;
border-image-outset : 25px 17px; border-image-outset : 25px 17px;
border-image-repeat : stretch; border-image-repeat : stretch;
border-image-slice : 150 200 150 200; h5 { margin-bottom : 10px; }
border-image-source : @frameBorderImage;
border-image-width : 47px;
h5{
margin-bottom : 10px;
}
} }
//************************************ //************************************
// * DESCRIPTIVE TEXT BOX // * DESCRIPTIVE TEXT BOX
// ************************************/ // ************************************/
.phb .descriptive { .phb .descriptive {
margin-bottom : 1em; margin-bottom : 1em;
background-color : #faf7ea; font-family : "ScalySans";
font-family : ScalySans; background-color : #FAF7EA;
border-style : solid; border-style : solid;
border-width : 7px; border-width : 7px;
border-image : @descriptiveBoxImage 12 stretch; border-image : @descriptiveBoxImage 12 stretch;
border-image-outset : 4px; border-image-outset : 4px;
box-shadow : 0px 0px 6px #faf7ea; box-shadow : 0px 0px 6px #FAF7EA;
p { p {
display : block; display : block;
padding-bottom : 0px; padding-bottom : 0px;
line-height : 1.47em; line-height : 1.47em;
} }
p + p { p + p { padding-top : 0.8em; }
padding-top : .8em;
}
em { em {
font-family : ScalySans; font-family : "ScalySans";
font-style : italic; font-style : italic;
} }
strong { strong {
font-family : ScalySans; font-family : "ScalySans";
font-weight : 800; font-weight : 800;
letter-spacing : -0.02em; letter-spacing : -0.02em;
} }
} }
.phb pre+.descriptive{ .phb pre + .descriptive { margin-top : 8px; }
margin-top : 8px;
}
//***************************** //*****************************
// * ARTIST CREDIT BLOCK // * ARTIST CREDIT BLOCK
@@ -457,25 +411,23 @@ body {
.phb { .phb {
.artist { .artist {
position : absolute; position : absolute;
text-align : center; font-family : "WalterTurncoat";
font-family : WalterTurncoat;
font-size : 0.27cm; font-size : 0.27cm;
color : @captionText; color : @captionText;
text-align : center;
p, p + p { p, p + p {
margin : unset; margin : unset;
text-indent : unset;
line-height : 0.941em; line-height : 0.941em;
text-indent : unset;
} }
h5 { h5 {
font-family : "WalterTurncoat";
font-size : 1.3em; font-size : 1.3em;
font-family : WalterTurncoat;
} }
a { a {
color : inherit; color : inherit;
text-decoration : unset; text-decoration : unset;
&:hover { &:hover { text-decoration : underline; }
text-decoration : underline;
}
} }
} }
} }
@@ -489,15 +441,11 @@ body {
a { a {
color : black; color : black;
text-decoration : none; text-decoration : none;
&:hover{ &:hover { text-decoration : underline; }
text-decoration : underline;
}
} }
ul { ul {
padding-left : 0; padding-left : 0;
list-style-type : none; list-style-type : none;
} }
&>ul>li{ & > ul > li { margin-bottom : 10px; }
margin-bottom : 10px;
}
} }

View File

@@ -1,4 +1,4 @@
/* eslint-disable max-lines */
module.exports = [ module.exports = [
]; ];

View File

@@ -7,37 +7,29 @@
} }
.page { .page {
background-image : url(/assets/DMG_background.png); background-image : url("/assets/DMG_background.png");
background-size : cover; background-size : cover;
/* TABLES WITHIN NOTES */ /* TABLES WITHIN NOTES */
.note table tbody tr:nth-child(odd) { .note table tbody tr:nth-child(odd) { background : #FFFFFF; }
background:#fff;
}
/* DROP CAP */ /* DROP CAP */
h1 + p::first-letter { h1 + p::first-letter {
background-image: unset;
color : black; color : black;
background-image : unset;
} }
.quote p:first-child::first-line { .quote p:first-child::first-line { all : unset; }
all: unset;
}
&:after { &::after {
background-image : url(/assets/DMG_footerAccent.png);
height : 58px; height : 58px;
background-image : url("/assets/DMG_footerAccent.png");
} }
.footnote { .footnote { bottom : 40px; }
bottom : 40px;
}
} }
.page:has(.partCover) { .page:has(.partCover) {
.partCover { .partCover { background-image : @partCoverHeaderDMG; }
background-image: @partCoverHeaderDMG;
}
} }

View File

@@ -305,12 +305,12 @@
margin-left : -0.16cm; margin-left : -0.16cm;
background-color : var(--HB_Color_MonsterStatBackground); background-color : var(--HB_Color_MonsterStatBackground);
background-image : @monsterBlockBackground; background-image : @monsterBlockBackground;
background-blend-mode : overlay;
border-style : solid; border-style : solid;
border-width : 7px 6px; border-width : 7px 6px;
border-image : @monsterBorderImage 14 round; border-image : @monsterBorderImage 14 round;
border-image-outset : 0px 2px; border-image-outset : 0px 2px;
box-shadow : 1px 4px 14px #888888; box-shadow : 1px 4px 14px #888888;
background-blend-mode : overlay;
} }
position : relative; position : relative;
@@ -335,9 +335,9 @@
//Triangle dividers //Triangle dividers
hr { hr {
visibility : visible;
height : 6px; height : 6px;
margin : 0.12cm 0cm; margin : 0.12cm 0cm;
visibility : visible;
background-image : @redTriangleImage; background-image : @redTriangleImage;
background-size : 100% 100%; background-size : 100% 100%;
border : none; border : none;
@@ -456,8 +456,8 @@
// * EXTRAS // * EXTRAS
// *****************************/ // *****************************/
hr { hr {
margin : 0px;
visibility : hidden; visibility : hidden;
margin : 0px;
} }
//Text indent right after table //Text indent right after table
table + p { text-indent : 1em; } table + p { text-indent : 1em; }
@@ -525,10 +525,10 @@
content : ''; content : '';
background-image : @classTableDecoration, background-image : @classTableDecoration,
@classTableDecoration; @classTableDecoration;
filter : drop-shadow(0px 0px 1px #C8C5C080);
background-repeat : no-repeat, no-repeat; background-repeat : no-repeat, no-repeat;
background-position : top, bottom; background-position : top, bottom;
background-size : contain, contain; background-size : contain, contain;
filter : drop-shadow(0px 0px 1px #C8C5C080);
transform : translateY(-50%) translateX(-50%); transform : translateY(-50%) translateX(-50%);
} }
&.decoration.wide::before { &.decoration.wide::before {
@@ -554,8 +554,8 @@
font-weight : normal; font-weight : normal;
line-height : 1.9cm; line-height : 1.9cm;
color : white; color : white;
text-shadow : unset;
text-transform : uppercase; text-transform : uppercase;
text-shadow : unset;
-webkit-text-stroke : 0.2cm black; -webkit-text-stroke : 0.2cm black;
paint-order : stroke; paint-order : stroke;
} }
@@ -571,14 +571,14 @@
hr { hr {
position : relative; position : relative;
display : block; display : block;
visibility : visible;
width : 12cm; width : 12cm;
height : 0.5cm; height : 0.5cm;
margin : auto; margin : auto;
visibility : visible;
background-image : @horizontalRule; background-image : @horizontalRule;
filter : drop-shadow(0 0 3px black);
background-size : 100% 100%; background-size : 100% 100%;
border : none; border : none;
filter : drop-shadow(0 0 3px black);
} }
.banner { .banner {
position : absolute; position : absolute;
@@ -621,9 +621,7 @@
right : 0; right : 0;
left : 0; left : 0;
filter : drop-shadow(0 0 0.075cm black); filter : drop-shadow(0 0 0.075cm black);
img { img { height : 2cm; }
height : 2cm;
}
} }
} }
// ***************************** // *****************************
@@ -652,10 +650,10 @@
hr { hr {
position : relative; position : relative;
display : block; display : block;
visibility : visible;
width : 12cm; width : 12cm;
height : 0.5cm; height : 0.5cm;
margin : auto; margin : auto;
visibility : visible;
background-image : @horizontalRule; background-image : @horizontalRule;
background-size : 100% 100%; background-size : 100% 100%;
border : none; border : none;
@@ -666,9 +664,7 @@
bottom : 1cm; bottom : 1cm;
left : 0; left : 0;
height : 2cm; height : 2cm;
img { img { height : 2cm; }
height : 2cm;
}
} }
} }
// ***************************** // *****************************
@@ -676,9 +672,9 @@
// *****************************/ // *****************************/
.page:has(.backCover) { .page:has(.backCover) {
padding : 2.25cm 1.3cm 2cm 1.3cm; padding : 2.25cm 1.3cm 2cm 1.3cm;
line-height : 1.4em;
color : #FFFFFF; color : #FFFFFF;
columns : 1; columns : 1;
line-height : 1.4em;
&::after { display : none; } &::after { display : none; }
.columnWrapper { width : 7.6cm; } .columnWrapper { width : 7.6cm; }
.backCover { .backCover {
@@ -707,12 +703,12 @@
height : 100%; height : 100%;
} }
hr { hr {
visibility : visible;
width : 4.5cm; width : 4.5cm;
height : 0.53cm; height : 0.53cm;
margin-top : 1.1cm; margin-top : 1.1cm;
margin-right : auto; margin-right : auto;
margin-left : auto; margin-left : auto;
visibility : visible;
background-image : @horizontalRule; background-image : @horizontalRule;
background-size : 100% 100%; background-size : 100% 100%;
border : none; border : none;
@@ -839,9 +835,7 @@ h6,
.page:has(.partCover) { .page:has(.partCover) {
--TOC : exclude; --TOC : exclude;
& h1 { & h1 { --TOC : include; }
--TOC: include;
}
} }
.page { .page {
@@ -908,9 +902,7 @@ h6,
.useColumns(0.96, @fillMode: balance); .useColumns(0.96, @fillMode: balance);
} }
} }
.toc.wide li { .toc.wide li { break-inside : auto; }
break-inside: auto;
}
} }
// ***************************** // *****************************
@@ -935,9 +927,7 @@ h6,
.page h1 + * { margin-top : 0; } .page h1 + * { margin-top : 0; }
.page .descriptive.wide + * { .page .descriptive.wide + * { margin-top : 0; }
margin-top: 0;
}
//***************************** //*****************************
// * RUNE TABLE // * RUNE TABLE
@@ -952,8 +942,8 @@ h6,
width : 1.3cm; width : 1.3cm;
height : 1.3cm; height : 1.3cm;
font-weight : normal; font-weight : normal;
text-transform : uppercase;
vertical-align : middle; vertical-align : middle;
text-transform : uppercase;
outline : 1px solid #000000; outline : 1px solid #000000;
} }
th { th {

View File

@@ -21,9 +21,9 @@ body { counter-reset : page-numbers 0; }
// *****************************/ // *****************************/
.page { .page {
.block { .block {
break-inside : avoid;
display : inline-block; display : inline-block;
width : 100%; width : 100%;
break-inside : avoid;
img { z-index : 0; } img { z-index : 0; }
} }
.inline-block { .inline-block {
@@ -120,7 +120,7 @@ body { counter-reset : page-numbers 0; }
// * CODE BLOCKS // * CODE BLOCKS
// ************************************/ // ************************************/
code { code {
font-family : 'Courier New', "Courier", monospace; font-family : 'Courier New', 'Courier', monospace;
overflow-wrap : break-word; overflow-wrap : break-word;
white-space : pre-wrap; white-space : pre-wrap;
} }
@@ -133,10 +133,10 @@ body { counter-reset : page-numbers 0; }
// * EXTRAS // * EXTRAS
// *****************************/ // *****************************/
.columnSplit { .columnSplit {
margin-top : 0;
visibility : hidden; visibility : hidden;
-webkit-column-break-after : always; margin-top : 0;
break-after : always; break-after : always;
-webkit-column-break-after : always;
-moz-column-break-after : always; -moz-column-break-after : always;
& + * { margin-top : 0; } & + * { margin-top : 0; }
} }
@@ -199,11 +199,11 @@ body { counter-reset : page-numbers 0; }
background-color : var(--HB_Color_WatercolorStain); /* default color */ background-color : var(--HB_Color_WatercolorStain); /* default color */
background-size : cover; background-size : cover;
-webkit-mask-image : var(--wc); -webkit-mask-image : var(--wc);
-webkit-mask-size : contain;
-webkit-mask-repeat : no-repeat;
mask-image : var(--wc); mask-image : var(--wc);
mask-size : contain; -webkit-mask-repeat : no-repeat;
mask-repeat : no-repeat; mask-repeat : no-repeat;
-webkit-mask-size : contain;
mask-size : contain;
--wc : @watercolor1; /* default image */ --wc : @watercolor1; /* default image */
} }
@@ -231,15 +231,15 @@ body { counter-reset : page-numbers 0; }
height : 200%; height : 200%;
background-image : var(--checkerboard); background-image : var(--checkerboard);
background-size : 20px; background-size : 20px;
transform : translateY(50%) translateX(-50%) rotate(calc(1deg * var(--rotation))) scaleX(var(--scaleX)) scaleY(var(--scaleY));
-webkit-mask-image : var(--wc), var(--revealer); -webkit-mask-image : var(--wc), var(--revealer);
-webkit-mask-repeat : repeat-x;
-webkit-mask-size : 50%; //Scale only X to fit page width, leave height at aspect ratio, designed to hang off the edge
-webkit-mask-position : 50% calc(50% - var(--offset));
mask-image : var(--wc); mask-image : var(--wc);
-webkit-mask-repeat : repeat-x;
mask-repeat : repeat-x; mask-repeat : repeat-x;
mask-size : 50%; -webkit-mask-position : 50% calc(50% - var(--offset));
mask-position : 50% calc(50% - var(--offset)); mask-position : 50% calc(50% - var(--offset));
-webkit-mask-size : 50%; //Scale only X to fit page width, leave height at aspect ratio, designed to hang off the edge
mask-size : 50%;
transform : translateY(50%) translateX(-50%) rotate(calc(1deg * var(--rotation))) scaleX(var(--scaleX)) scaleY(var(--scaleY));
--rotation : 0; --rotation : 0;
--revealer : none; --revealer : none;
--checkerboard : none; --checkerboard : none;
@@ -276,19 +276,19 @@ body { counter-reset : page-numbers 0; }
} }
&.revealImage { &.revealImage {
--revealer : linear-gradient(0deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.2)); --revealer : linear-gradient(0deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.2));
--checkerboard : url("/assets/waterColorMasks/missingImage.png"); //shows any masked regions not filled by image --checkerboard : url('/assets/waterColorMasks/missingImage.png'); //shows any masked regions not filled by image
} }
} }
.imageMaskEdge { .imageMaskEdge {
&1 { --wc : url("/assets/waterColorMasks/edge/0001.webp"); } &1 { --wc : url('/assets/waterColorMasks/edge/0001.webp'); }
&2 { --wc : url("/assets/waterColorMasks/edge/0002.webp"); } &2 { --wc : url('/assets/waterColorMasks/edge/0002.webp'); }
&3 { --wc : url("/assets/waterColorMasks/edge/0003.webp"); } &3 { --wc : url('/assets/waterColorMasks/edge/0003.webp'); }
&4 { --wc : url("/assets/waterColorMasks/edge/0004.webp"); } &4 { --wc : url('/assets/waterColorMasks/edge/0004.webp'); }
&5 { --wc : url("/assets/waterColorMasks/edge/0005.webp"); } &5 { --wc : url('/assets/waterColorMasks/edge/0005.webp'); }
&6 { --wc : url("/assets/waterColorMasks/edge/0006.webp"); } &6 { --wc : url('/assets/waterColorMasks/edge/0006.webp'); }
&7 { --wc : url("/assets/waterColorMasks/edge/0007.webp"); } &7 { --wc : url('/assets/waterColorMasks/edge/0007.webp'); }
&8 { --wc : url("/assets/waterColorMasks/edge/0008.webp"); } &8 { --wc : url('/assets/waterColorMasks/edge/0008.webp'); }
} }
[class*='imageMaskCenter'] { [class*='imageMaskCenter'] {
@@ -296,15 +296,15 @@ body { counter-reset : page-numbers 0; }
left : calc(var(--offsetX)); left : calc(var(--offsetX));
width : 100%; width : 100%;
height : 100%; height : 100%;
transform : rotate(calc(1deg * var(--rotation))) scaleX(var(--scaleX)) scaleY(var(--scaleY));
-webkit-mask-image : var(--wc), var(--revealer); -webkit-mask-image : var(--wc), var(--revealer);
-webkit-mask-repeat : no-repeat;
-webkit-mask-size : 100% 100%; //Scale both dimensions to fit page size
-webkit-mask-position : 0% 0%;
mask-image : var(--wc), var(--revealer); mask-image : var(--wc), var(--revealer);
-webkit-mask-repeat : no-repeat;
mask-repeat : no-repeat; mask-repeat : no-repeat;
mask-size : 100% 100%; //Scale both dimensions to fit page size -webkit-mask-position : 0% 0%;
mask-position : 50% 50%; mask-position : 50% 50%;
-webkit-mask-size : 100% 100%; //Scale both dimensions to fit page size
mask-size : 100% 100%; //Scale both dimensions to fit page size
transform : rotate(calc(1deg * var(--rotation))) scaleX(var(--scaleX)) scaleY(var(--scaleY));
& > p:has(img) { & > p:has(img) {
position : absolute; position : absolute;
@@ -321,23 +321,23 @@ body { counter-reset : page-numbers 0; }
} }
.imageMaskCenter { .imageMaskCenter {
&1 { --wc : url("/assets/waterColorMasks/center/0001.webp"); } &1 { --wc : url('/assets/waterColorMasks/center/0001.webp'); }
&2 { --wc : url("/assets/waterColorMasks/center/0002.webp"); } &2 { --wc : url('/assets/waterColorMasks/center/0002.webp'); }
&3 { --wc : url("/assets/waterColorMasks/center/0003.webp"); } &3 { --wc : url('/assets/waterColorMasks/center/0003.webp'); }
&4 { --wc : url("/assets/waterColorMasks/center/0004.webp"); } &4 { --wc : url('/assets/waterColorMasks/center/0004.webp'); }
&5 { --wc : url("/assets/waterColorMasks/center/0005.webp"); } &5 { --wc : url('/assets/waterColorMasks/center/0005.webp'); }
&6 { --wc : url("/assets/waterColorMasks/center/0006.webp"); } &6 { --wc : url('/assets/waterColorMasks/center/0006.webp'); }
&7 { --wc : url("/assets/waterColorMasks/center/0007.webp"); } &7 { --wc : url('/assets/waterColorMasks/center/0007.webp'); }
&8 { --wc : url("/assets/waterColorMasks/center/0008.webp"); } &8 { --wc : url('/assets/waterColorMasks/center/0008.webp'); }
&9 { --wc : url("/assets/waterColorMasks/center/0009.webp"); } &9 { --wc : url('/assets/waterColorMasks/center/0009.webp'); }
&10 { --wc : url("/assets/waterColorMasks/center/0010.webp"); } &10 { --wc : url('/assets/waterColorMasks/center/0010.webp'); }
&11 { --wc : url("/assets/waterColorMasks/center/0011.webp"); } &11 { --wc : url('/assets/waterColorMasks/center/0011.webp'); }
&12 { --wc : url("/assets/waterColorMasks/center/0012.webp"); } &12 { --wc : url('/assets/waterColorMasks/center/0012.webp'); }
&13 { --wc : url("/assets/waterColorMasks/center/0013.webp"); } &13 { --wc : url('/assets/waterColorMasks/center/0013.webp'); }
&14 { --wc : url("/assets/waterColorMasks/center/0014.webp"); } &14 { --wc : url('/assets/waterColorMasks/center/0014.webp'); }
&15 { --wc : url("/assets/waterColorMasks/center/0015.webp"); } &15 { --wc : url('/assets/waterColorMasks/center/0015.webp'); }
&16 { --wc : url("/assets/waterColorMasks/center/0016.webp"); } &16 { --wc : url('/assets/waterColorMasks/center/0016.webp'); }
&special { --wc : url("/assets/waterColorMasks/center/special.webp"); } &special { --wc : url('/assets/waterColorMasks/center/special.webp'); }
} }
@@ -346,15 +346,15 @@ body { counter-reset : page-numbers 0; }
left : calc(-50% + var(--offsetX)); left : calc(-50% + var(--offsetX));
width : 200%; width : 200%;
height : 200%; height : 200%;
transform : rotate(calc(1deg * var(--rotation))) scaleX(var(--scaleX)) scaleY(var(--scaleY));
-webkit-mask-image : var(--wc), var(--revealer); -webkit-mask-image : var(--wc), var(--revealer);
-webkit-mask-repeat : no-repeat;
-webkit-mask-size : 100% 100%; //Scale both dimensions to fit page size
-webkit-mask-position : 50% 50%;
mask-image : var(--wc), var(--revealer); mask-image : var(--wc), var(--revealer);
-webkit-mask-repeat : no-repeat;
mask-repeat : no-repeat; mask-repeat : no-repeat;
mask-size : 100% 100%; //Scale both dimensions to fit page size -webkit-mask-position : 50% 50%;
mask-position : 50% 50%; mask-position : 50% 50%;
-webkit-mask-size : 100% 100%; //Scale both dimensions to fit page size
mask-size : 100% 100%; //Scale both dimensions to fit page size
transform : rotate(calc(1deg * var(--rotation))) scaleX(var(--scaleX)) scaleY(var(--scaleY));
& > p:has(img) { & > p:has(img) {
bottom : 25%; bottom : 25%;
left : 25%; left : 25%;
@@ -367,43 +367,43 @@ body { counter-reset : page-numbers 0; }
} }
} }
.imageMaskCorner { .imageMaskCorner {
&1 { --wc : url("/assets/waterColorMasks/corner/0001.webp"); } &1 { --wc : url('/assets/waterColorMasks/corner/0001.webp'); }
&2 { --wc : url("/assets/waterColorMasks/corner/0002.webp"); } &2 { --wc : url('/assets/waterColorMasks/corner/0002.webp'); }
&3 { --wc : url("/assets/waterColorMasks/corner/0003.webp"); } &3 { --wc : url('/assets/waterColorMasks/corner/0003.webp'); }
&4 { --wc : url("/assets/waterColorMasks/corner/0004.webp"); } &4 { --wc : url('/assets/waterColorMasks/corner/0004.webp'); }
&5 { --wc : url("/assets/waterColorMasks/corner/0005.webp"); } &5 { --wc : url('/assets/waterColorMasks/corner/0005.webp'); }
&6 { --wc : url("/assets/waterColorMasks/corner/0006.webp"); } &6 { --wc : url('/assets/waterColorMasks/corner/0006.webp'); }
&7 { --wc : url("/assets/waterColorMasks/corner/0007.webp"); } &7 { --wc : url('/assets/waterColorMasks/corner/0007.webp'); }
&8 { --wc : url("/assets/waterColorMasks/corner/0008.webp"); } &8 { --wc : url('/assets/waterColorMasks/corner/0008.webp'); }
&9 { --wc : url("/assets/waterColorMasks/corner/0009.webp"); } &9 { --wc : url('/assets/waterColorMasks/corner/0009.webp'); }
&10 { --wc : url("/assets/waterColorMasks/corner/0010.webp"); } &10 { --wc : url('/assets/waterColorMasks/corner/0010.webp'); }
&11 { --wc : url("/assets/waterColorMasks/corner/0011.webp"); } &11 { --wc : url('/assets/waterColorMasks/corner/0011.webp'); }
&12 { --wc : url("/assets/waterColorMasks/corner/0012.webp"); } &12 { --wc : url('/assets/waterColorMasks/corner/0012.webp'); }
&13 { --wc : url("/assets/waterColorMasks/corner/0013.webp"); } &13 { --wc : url('/assets/waterColorMasks/corner/0013.webp'); }
&14 { --wc : url("/assets/waterColorMasks/corner/0014.webp"); } &14 { --wc : url('/assets/waterColorMasks/corner/0014.webp'); }
&15 { --wc : url("/assets/waterColorMasks/corner/0015.webp"); } &15 { --wc : url('/assets/waterColorMasks/corner/0015.webp'); }
&16 { --wc : url("/assets/waterColorMasks/corner/0016.webp"); } &16 { --wc : url('/assets/waterColorMasks/corner/0016.webp'); }
&17 { --wc : url("/assets/waterColorMasks/corner/0017.webp"); } &17 { --wc : url('/assets/waterColorMasks/corner/0017.webp'); }
&18 { --wc : url("/assets/waterColorMasks/corner/0018.webp"); } &18 { --wc : url('/assets/waterColorMasks/corner/0018.webp'); }
&19 { --wc : url("/assets/waterColorMasks/corner/0019.webp"); } &19 { --wc : url('/assets/waterColorMasks/corner/0019.webp'); }
&20 { --wc : url("/assets/waterColorMasks/corner/0020.webp"); } &20 { --wc : url('/assets/waterColorMasks/corner/0020.webp'); }
&21 { --wc : url("/assets/waterColorMasks/corner/0021.webp"); } &21 { --wc : url('/assets/waterColorMasks/corner/0021.webp'); }
&22 { --wc : url("/assets/waterColorMasks/corner/0022.webp"); } &22 { --wc : url('/assets/waterColorMasks/corner/0022.webp'); }
&23 { --wc : url("/assets/waterColorMasks/corner/0023.webp"); } &23 { --wc : url('/assets/waterColorMasks/corner/0023.webp'); }
&24 { --wc : url("/assets/waterColorMasks/corner/0024.webp"); } &24 { --wc : url('/assets/waterColorMasks/corner/0024.webp'); }
&25 { --wc : url("/assets/waterColorMasks/corner/0025.webp"); } &25 { --wc : url('/assets/waterColorMasks/corner/0025.webp'); }
&26 { --wc : url("/assets/waterColorMasks/corner/0026.webp"); } &26 { --wc : url('/assets/waterColorMasks/corner/0026.webp'); }
&27 { --wc : url("/assets/waterColorMasks/corner/0027.webp"); } &27 { --wc : url('/assets/waterColorMasks/corner/0027.webp'); }
&28 { --wc : url("/assets/waterColorMasks/corner/0028.webp"); } &28 { --wc : url('/assets/waterColorMasks/corner/0028.webp'); }
&29 { --wc : url("/assets/waterColorMasks/corner/0029.webp"); } &29 { --wc : url('/assets/waterColorMasks/corner/0029.webp'); }
&30 { --wc : url("/assets/waterColorMasks/corner/0030.webp"); } &30 { --wc : url('/assets/waterColorMasks/corner/0030.webp'); }
&31 { --wc : url("/assets/waterColorMasks/corner/0031.webp"); } &31 { --wc : url('/assets/waterColorMasks/corner/0031.webp'); }
&32 { --wc : url("/assets/waterColorMasks/corner/0032.webp"); } &32 { --wc : url('/assets/waterColorMasks/corner/0032.webp'); }
&33 { --wc : url("/assets/waterColorMasks/corner/0033.webp"); } &33 { --wc : url('/assets/waterColorMasks/corner/0033.webp'); }
&34 { --wc : url("/assets/waterColorMasks/corner/0034.webp"); } &34 { --wc : url('/assets/waterColorMasks/corner/0034.webp'); }
&35 { --wc : url("/assets/waterColorMasks/corner/0035.webp"); } &35 { --wc : url('/assets/waterColorMasks/corner/0035.webp'); }
&36 { --wc : url("/assets/waterColorMasks/corner/0036.webp"); } &36 { --wc : url('/assets/waterColorMasks/corner/0036.webp'); }
&37 { --wc : url("/assets/waterColorMasks/corner/0037.webp"); } &37 { --wc : url('/assets/waterColorMasks/corner/0037.webp'); }
} }
} }
@@ -440,9 +440,7 @@ body { counter-reset : page-numbers 0; }
.blank { .blank {
height : 1em; height : 1em;
margin-top : 0; margin-top : 0;
& + * { & + * { margin-top : 0; }
margin-top: 0;
}
} }
} }
@@ -468,8 +466,8 @@ body { counter-reset : page-numbers 0; }
height : 1.5cm; height : 1.5cm;
margin : 0 auto; margin : 0 auto;
background-color : black; background-color : black;
-webkit-mask : url("/assets/naturalCritLogoWhite.svg") center / contain no-repeat; -webkit-mask : url('/assets/naturalCritLogoWhite.svg') center / contain no-repeat;
mask : url("/assets/naturalCritLogoWhite.svg") center / contain no-repeat; mask : url('/assets/naturalCritLogoWhite.svg') center / contain no-repeat;
} }
.homebreweryIcon.red { background-color : red; } .homebreweryIcon.red { background-color : red; }
.homebreweryIcon.gold { background-image : linear-gradient(to top left, brown 22.5%, gold 40%, white 60%, gold 67.5%, brown 82.5%); } .homebreweryIcon.gold { background-image : linear-gradient(to top left, brown 22.5%, gold 40%, white 60%, gold 67.5%, brown 82.5%); }
@@ -493,12 +491,8 @@ body { counter-reset : page-numbers 0; }
.pageNumber { left : 30px; } .pageNumber { left : 30px; }
} }
.resetCounting { .resetCounting { counter-set : page-numbers 1; }
counter-set : page-numbers 1;
}
&:not(:has(.skipCounting)) { &:not(:has(.skipCounting)) { counter-increment : page-numbers; }
counter-increment : page-numbers;
}
} }

View File

@@ -1,4 +1,4 @@
/* eslint-disable max-lines */
module.exports = [ module.exports = [
]; ];

View File

@@ -12,46 +12,34 @@
} }
.useSansSerif() { .useSansSerif() {
font-family : PermanentMarker; font-family : "PermanentMarker";
font-size : 0.3cm; font-size : 0.3cm;
line-height : 1.2em; line-height : 1.2em;
color : var(--HB_Color_Text2); color : var(--HB_Color_Text2);
p,dl,ul,ol { p,dl,ul,ol { line-height : 1.2em; }
line-height : 1.2em; ul, ol { padding-left : 1em; }
} em { font-style : italic; }
ul, ol {
padding-left : 1em;
}
em{
font-style : italic;
}
strong { strong {
font-weight : 800;
font-size : 1.1em; font-size : 1.1em;
font-weight : 800;
} }
h5 + * { h5 + * { margin-top : 0.1cm; }
margin-top : 0.1cm;
}
}
.useColumns(@multiplier : 1, @fillMode: balance){
column-gap : 0.5cm;
} }
.useColumns(@multiplier : 1, @fillMode: balance) { column-gap : 0.5cm; }
.page { .page {
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; padding : 2.1cm 1.9cm 1.7cm 3.8cm;
&:nth-of-type(2n + 1) { background-image : url("/assets/Journal/Background1.webp");
background-position : left; background-repeat : no-repeat;
} background-size : 200% 100%;
filter : drop-shadow(1px 4px 14px black);
&:nth-of-type(2n + 1) { background-position : left; }
&:nth-of-type(2n) { &:nth-of-type(2n) {
background-position : right;
padding : 2.1cm 3.9cm 1.7cm 1.8cm; padding : 2.1cm 3.9cm 1.7cm 1.8cm;
background-position : right;
} }
&:nth-of-type(2) { &:nth-of-type(2) {
background-image : url(/assets/Journal/Background2.webp); //Only first page should show ribbon background-image : url("/assets/Journal/Background2.webp"); //Only first page should show ribbon
} }
& .columnWrapper { & .columnWrapper {
@@ -63,118 +51,92 @@
// * BASE // * BASE
// *****************************/ // *****************************/
.page { .page {
color : var(--HB_Color_Text); font-family : "ReenieBeanie";
font-family : ReenieBeanie;
font-size : 0.53cm; font-size : 0.53cm;
line-height : 0.8em; line-height : 0.8em;
p + * { color : var(--HB_Color_Text);
margin-top : 0.325cm; p + * { margin-top : 0.325cm; }
} p + p { margin-top : 0; }
p + p{ ul { margin-bottom : 0.8em; }
margin-top : 0; ol { margin-bottom : 0.8em; }
}
ul{
margin-bottom : 0.8em;
}
ol{
margin-bottom : 0.8em;
}
em { em {
text-decoration : underline;
font-style : unset; font-style : unset;
text-decoration : underline;
} }
del{ del { text-decoration-style : double; }
text-decoration-style: double;
}
//Indents after p or lists //Indents after p or lists
p+p, ul+p, ol+p{ p + p, ul + p, ol + p { text-indent : 1em; }
text-indent : 1em;
}
//***************************** //*****************************
// * HEADERS // * HEADERS
// *****************************/ // *****************************/
h1,h2,h3,h4,h5 { h1,h2,h3,h4,h5 {
font-family : FrederickaTheGreat; font-family : "FrederickaTheGreat";
font-weight : unset; font-weight : unset;
color : var(--HB_Color_HeaderText); color : var(--HB_Color_HeaderText);
} }
h1 { h1 {
margin-bottom : 0.18cm; //Margin-bottom only because this is WIDE margin-bottom : 0.18cm; //Margin-bottom only because this is WIDE
font-size : 0.89cm; font-size : 0.89cm;
line-height : 1em;
font-variant : small-caps; font-variant : small-caps;
line-height : 1em;
& + p::first-letter { & + p::first-letter {
float : left; float : left;
font-family : FrederickaTheGreat;
line-height : 1em;
font-size : 1.9em;
padding-left : 40px; //Allow background color to extend into margins
margin-top : -0.3cm;
margin-bottom : -20px;
margin-left : -40px;
margin-right : 0.1em;
padding-top : 0.3em; padding-top : 0.3em;
padding-bottom : 2px; padding-bottom : 2px;
padding-left : 40px; //Allow background color to extend into margins
margin-top : -0.3cm;
margin-right : 0.1em;
margin-bottom : -20px;
margin-left : -40px;
font-family : "FrederickaTheGreat";
font-size : 1.9em;
line-height : 1em;
} }
&+p::first-line{ & + p::first-line { font-variant : small-caps; }
font-variant : small-caps;
}
} }
h2 { h2 {
font-size : 0.62cm; font-size : 0.62cm;
line-height : 0.988em; //Font is misaligned. Shift up slightly line-height : 0.988em; //Font is misaligned. Shift up slightly
} }
h3 { h3 {
margin-left : -0.9em;
font-size : 0.575cm; font-size : 0.575cm;
line-height : 0.995em; //Font is misaligned. Shift up slightly line-height : 0.995em; //Font is misaligned. Shift up slightly
margin-left : -0.9em;
} }
h4 { h4 {
padding-bottom : 5px;
font-size : 0.55cm; font-size : 0.55cm;
line-height : 0.971em; //Font is misaligned. Shift up slightly line-height : 0.971em; //Font is misaligned. Shift up slightly
color : var(--HB_Color_Text); color : var(--HB_Color_Text);
padding-bottom : 5px;
transform : rotate(0deg); transform : rotate(0deg);
&:nth-of-type(2n) { &:nth-of-type(2n) { transform : rotate(1deg); }
transform:rotate(1deg); &:nth-of-type(3n) { transform : rotate(-1.5deg); }
}
&:nth-of-type(3n) {
transform:rotate(-1.5deg);
}
} }
h5 { h5 {
font-family : PermanentMarker; font-family : "PermanentMarker";
font-size : 0.4cm; font-size : 0.4cm;
color : var(--HB_Color_Text2);
font-weight : bold; font-weight : bold;
line-height : 0.951em; //Font is misaligned. Shift up slightly line-height : 0.951em; //Font is misaligned. Shift up slightly
& + * { color : var(--HB_Color_Text2);
margin-top : 0.2cm; & + * { margin-top : 0.2cm; }
}
} }
//***************************** //*****************************
// * TABLE // * TABLE
// *****************************/ // *****************************/
table { table {
.useSansSerif(); .useSansSerif();
& + * { & + * { margin-top : 0.325cm; }
margin-top : 0.325cm;
}
thead { thead {
th { th {
vertical-align : bottom;
padding : 0.14em 0; padding : 0.14em 0;
vertical-align : bottom;
} }
} }
tbody { tbody {
tr { tr {
td{ td { padding : 0.14em 0; }
padding : 0.14em 0; &:nth-child(odd) { background-image : linear-gradient(to left, #41212100, #41212122, #41212100); }
}
&:nth-child(odd){
background-image : linear-gradient(to left, #41212100, #41212122, #41212100);
}
} }
} }
} }
@@ -183,43 +145,39 @@
// *****************************/ // *****************************/
.note { .note {
.useSansSerif(); .useSansSerif();
padding : 0.2cm;
background-image : url("/assets/Journal/HashMarks.png"),
linear-gradient(to bottom right, #FF000000, #A36A4E14, #41212100);
background-repeat : no-repeat;
background-position : center;
background-size : 120% 120%;
border-style : solid; border-style : solid;
border-width : 1px; border-width : 1px;
border-image-source : url(/assets/Journal/Border1.png); border-image-source : url("/assets/Journal/Border1.png");
border-image-slice : 18 18 18 18; border-image-slice : 18 18 18 18;
border-image-width : 6px 6px 6px 6px; border-image-width : 6px 6px 6px 6px;
border-image-outset : 5px 5px 5px 5px; border-image-outset : 5px 5px 5px 5px;
border-image-repeat : stretch stretch; 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(&) { :where(&) {
margin-top : 9px; //Prevent top border getting cut off on colbreak margin-top : 9px; //Prevent top border getting cut off on colbreak
} }
& + * { & + * { margin-top : 0.45cm; }
margin-top : 0.45cm; h5 { font-size : 0.375cm; }
} p { padding-bottom : 0px; }
h5 { :last-child { margin-bottom : 0; }
font-size : 0.375cm;
}
p{
padding-bottom : 0px;
}
:last-child {
margin-bottom : 0;
}
} }
//************************************ //************************************
// * DESCRIPTIVE TEXT BOX // * DESCRIPTIVE TEXT BOX
// ************************************/ // ************************************/
* + .descriptive { * + .descriptive { margin-top : 0.6cm; }
margin-top : 0.6cm;
}
.descriptive { .descriptive {
.useSansSerif(); .useSansSerif();
padding : 0.2cm;
background-image : url("/assets/Journal/HashMarks.png"),
linear-gradient(to bottom right, #FF000000, #41212114, #41212100);
background-repeat : no-repeat;
background-position : center;
background-size : 120% 120%;
border-style : solid; border-style : solid;
border-width : 1px; border-width : 1px;
border-image-source : url('/assets/Journal/Border2.png'); border-image-source : url('/assets/Journal/Border2.png');
@@ -227,27 +185,13 @@
border-image-width : 20px; border-image-width : 20px;
border-image-outset : 16px 20px 16px 20px; border-image-outset : 16px 20px 16px 20px;
border-image-repeat : stretch stretch; 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(&) { :where(&) {
margin-top : 4px; //Prevent top border getting cut off on colbreak margin-top : 4px; //Prevent top border getting cut off on colbreak
} }
& + * { & + * { margin-top : 0.45cm; }
margin-top : 0.45cm; h5 { font-size : 0.375cm; }
} p { padding-bottom : 0px; }
h5 { :last-child { margin-bottom : 0; }
font-size : 0.375cm;
}
p{
padding-bottom : 0px;
}
:last-child {
margin-bottom : 0;
}
} }
//***************************** //*****************************
// * Images Snippets // * Images Snippets
@@ -257,25 +201,23 @@
.artist { .artist {
position : absolute; position : absolute;
width : auto; width : auto;
text-align : center; font-family : "WalterTurncoat";
font-family : WalterTurncoat;
font-size : 0.27cm; font-size : 0.27cm;
color : var(--HB_Color_CaptionText); color : var(--HB_Color_CaptionText);
text-align : center;
p, p + p { p, p + p {
margin : unset; margin : unset;
text-indent : unset;
line-height : 1em; line-height : 1em;
text-indent : unset;
} }
h5 { h5 {
font-family : "WalterTurncoat";
font-size : 1.3em; font-size : 1.3em;
font-family : WalterTurncoat;
} }
a { a {
color : inherit; color : inherit;
text-decoration : unset; text-decoration : unset;
&:hover { &:hover { text-decoration : underline; }
text-decoration : underline;
}
} }
} }
@@ -285,6 +227,10 @@
.monster { .monster {
.useSansSerif(); .useSansSerif();
&.frame { &.frame {
padding : 0.2cm;
background-image : url('/assets/Journal/HashMarks.png'),
linear-gradient(to bottom right, #FF000000, #A36A4E14, #41212100);
background-size : 100%;
border-style : solid; border-style : solid;
border-width : 7px 6px; border-width : 7px 6px;
border-image-source : url('/assets/Journal/Border3.png'); border-image-source : url('/assets/Journal/Border3.png');
@@ -292,31 +238,27 @@
border-image-width : 15px 20px 15px 20px; border-image-width : 15px 20px 15px 20px;
border-image-outset : 12px 12px 12px 12px; border-image-outset : 12px 12px 12px 12px;
border-image-repeat : stretch round; 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-blend-mode : screen multiply;
background-size : 100%;
padding : 0.2cm;
} }
color: var(--HB_Color_Text);
position : relative; position : relative;
padding : 0px; padding : 0px;
margin-bottom : 0.325cm; margin-bottom : 0.325cm;
color : var(--HB_Color_Text);
//Headers //Headers
h2 { h2 {
margin : 0;
font-size : 0.62cm; font-size : 0.62cm;
line-height : 1em; line-height : 1em;
margin : 0;
& + p { & + p {
margin-bottom : 0; //Monster size and type subtext margin-bottom : 0; //Monster size and type subtext
} }
} }
h3 { h3 {
padding-bottom : 0.05cm;
margin-left : 0; margin-left : 0;
font-variant : small-caps; font-variant : small-caps;
padding-bottom : 0.05cm;
} }
hr { hr {
visibility : visible; visibility : visible;
@@ -332,22 +274,16 @@
// Monster Ability table // Monster Ability table
hr + table:first-of-type { hr + table:first-of-type {
margin : 0; margin : 0;
column-span : none; color : inherit;
background-image : none; background-image : none;
border-style : none; border-style : none;
border-image : none; border-image : none;
color : inherit; column-span : none;
tr { tr { background-image : none; }
background-image : none; td,th { padding : 0px; }
}
td,th {
padding: 0px;
}
} }
:last-child { :last-child { margin-bottom : 0; }
margin-bottom : 0;
}
strong, em { strong, em {
font-style : normal; font-style : normal;
@@ -364,18 +300,16 @@
// * FOOTER // * FOOTER
// *****************************/ // *****************************/
&:nth-child(odd) { &:nth-child(odd) {
.pageNumber{ .pageNumber { left : 3cm; }
left : 3cm;
}
.footnote { .footnote {
left : 4.5cm; left : 4.5cm;
text-align : left; text-align : left;
} }
} }
.pageNumber { .pageNumber {
font-family : FrederickaTheGreat;
right : 3cm; right : 3cm;
bottom : 1.25cm; bottom : 1.25cm;
font-family : "FrederickaTheGreat";
color : var(--HB_Color_HeaderText); color : var(--HB_Color_HeaderText);
} }
.footnote { .footnote {
@@ -392,49 +326,43 @@
// * CODE BLOCKS // * CODE BLOCKS
// ************************************/ // ************************************/
code { code {
font-size : 0.3cm;
padding : 0px 4px; padding : 0px 4px;
color : var(--HB_Color_Text); font-size : 0.3cm;
vertical-align : middle; vertical-align : middle;
background-color : #faf7ea; color : var(--HB_Color_Text);
background-color : #FAF7EA;
border-radius : 4px; border-radius : 4px;
} }
pre code { pre code {
padding : 0.15cm;
margin-bottom : 2px;
border-style : solid; border-style : solid;
border-width : 1px; border-width : 1px;
border-radius : 12px;
border-image : @codeBorderImage 26 stretch; border-image : @codeBorderImage 26 stretch;
border-image-width : 10px; border-image-width : 10px;
border-image-outset : 2px; border-image-outset : 2px;
border-radius : 12px;
margin-bottom : 2px;
padding : 0.15cm;
.page :where(&) { .page :where(&) {
margin-top : 2px; //Prevent top border getting cut off on colbreak margin-top : 2px; //Prevent top border getting cut off on colbreak
} }
& + * { & + * { margin-top : 0.325cm; }
margin-top : 0.325cm;
}
} }
//***************************** //*****************************
// * EXTRAS // * EXTRAS
// *****************************/ // *****************************/
hr { hr {
visibility : hidden; visibility : hidden;
border : none;
margin : 0px; margin : 0px;
border : none;
} }
//Text indent right after table //Text indent right after table
table+p{ table + p { text-indent : 1em; }
text-indent : 1em;
}
a, a:visited, a:hover { a, a:visited, a:hover {
color : var(--HB_Color_Text); color : var(--HB_Color_Text);
transition : all 1s ease; transition : all 1s ease;
} }
a:hover { a:hover { color : red; }
color:red;
}
} }
//***************************** //*****************************
// * SPELL LIST // * SPELL LIST
@@ -442,35 +370,27 @@
.page .spellList { .page .spellList {
.useSansSerif(); .useSansSerif();
font-family : PermanentMarker; font-family : "PermanentMarker";
column-count : 2; column-count : 2;
ul+h5{ ul + h5 { margin-top : 15px; }
margin-top : 15px;
}
ul { ul {
margin-bottom : 0.5em;
padding-left : 1em; padding-left : 1em;
margin-bottom : 0.5em;
text-indent : -1em; text-indent : -1em;
list-style-type : none; list-style-type : none;
break-inside : auto;
-webkit-column-break-inside : auto; -webkit-column-break-inside : auto;
page-break-inside : auto; page-break-inside : auto;
break-inside : auto;
}
&.wide{
column-count : 4;
} }
&.wide { column-count : 4; }
} }
//***************************** //*****************************
// * CLASS TABLE // * CLASS TABLE
// *****************************/ // *****************************/
.page .classTable { .page .classTable {
th[colspan]:not([rowspan]) { th[colspan]:not([rowspan]) { white-space : nowrap; }
white-space : nowrap; h5 + table { margin-top : 0.2cm; }
}
h5 + table{
margin-top : 0.2cm;
}
} }
//***************************** //*****************************
// * TABLE OF CONTENTS // * TABLE OF CONTENTS
@@ -480,57 +400,51 @@
page-break-inside : avoid; page-break-inside : avoid;
break-inside : avoid; break-inside : avoid;
h1 { h1 {
text-align : center;
margin-bottom : 0.3cm; margin-bottom : 0.3cm;
text-align : center;
} }
a { a {
display : inline; display : inline;
color : inherit; color : inherit;
text-decoration : none; text-decoration : none;
&:hover{ &:hover { text-decoration : underline; }
text-decoration : underline;
}
} }
h4 { h4 {
margin-top : 0.2cm; margin-top : 0.2cm;
line-height : 0.4cm; line-height : 0.4cm;
& + ul li { & + ul li { line-height : 1.2em; }
line-height: 1.2em;
}
} }
ul { ul {
padding-left : 0; padding-left : 0;
list-style-type : none; list-style-type : none;
li + li h3 { li + li h3 {
margin-top : 0.26cm; margin-top : 0.26cm;
line-height : 1em line-height : 1em;
}
h3 span:first-child::after {
border : none;
} }
h3 span:first-child::after { border : none; }
span { span {
display : table-cell; display : table-cell;
&:first-child { &:first-child {
position : relative; position : relative;
overflow : hidden; overflow : hidden;
&::after { &::after {
content : "";
position : absolute; position : absolute;
bottom : 0.08cm; bottom : 0.08cm;
margin-left : 0.06cm; /* Spacing before dot leaders */
width : 100%; width : 100%;
border-bottom : 0.05cm dotted #000; margin-left : 0.06cm; /* Spacing before dot leaders */
content : '';
border-bottom : 0.05cm dotted #000000;
} }
} }
&:last-child { &:last-child {
font-family : ReenieBeanie;
font-size : 0.34cm;
font-weight : normal;
color : black;
text-align : right;
vertical-align : bottom; /* Keep page number bottom-aligned */
width : 1%; width : 1%;
padding-left : 0.06cm; /* Spacing after dot leaders */ padding-left : 0.06cm; /* Spacing after dot leaders */
font-family : "ReenieBeanie";
font-size : 0.34cm;
font-weight : normal;
vertical-align : bottom; /* Keep page number bottom-aligned */
color : black;
text-align : right;
/* white-space : nowrap; /* Uncomment if needed */ /* white-space : nowrap; /* Uncomment if needed */
} }
} }
@@ -546,6 +460,4 @@
//***************************** //*****************************
// * WIDE // * WIDE
// *****************************/ // *****************************/
.page .wide { .page .wide { margin-bottom : 0.45cm; }
margin-bottom : 0.45cm;
}

View File

@@ -47,21 +47,16 @@
&.cm-s-vibrant-ink, &.cm-s-vibrant-ink,
&.cm-s-xq-dark, &.cm-s-xq-dark,
&.cm-s-yonce, &.cm-s-yonce,
&.cm-s-zenburn &.cm-s-zenburn {
{
.CodeMirror-code { .CodeMirror-code {
.block:not(.cm-comment) { .block:not(.cm-comment) { color : magenta; }
color: magenta;
}
.columnSplit { .columnSplit {
color : black; color : black;
background-color : rgba(35,153,153,0.5); background-color : rgba(35,153,153,0.5);
} }
.pageLine { .pageLine {
background-color : rgba(255,255,255,0.5); background-color : rgba(255,255,255,0.5);
& ~ pre.CodeMirror-line { & ~ pre.CodeMirror-line { color : black; }
color: black;
}
} }
} }
} }

View File

@@ -1,61 +1,61 @@
/* Main Font, serif */ /* Main Font, serif */
@font-face { @font-face {
font-family: BookSanity; font-family : "BookSanity";
font-style : normal;
font-weight : normal;
src : url('../../../fonts/5e legacy/Bookinsanity.woff2'); src : url('../../../fonts/5e legacy/Bookinsanity.woff2');
font-weight: normal;
font-style: normal;
} }
@font-face { @font-face {
font-family: BookSanity; font-family : "BookSanity";
font-style : normal;
font-weight : bold;
src : url('../../../fonts/5e legacy/Bookinsanity Bold.woff2'); src : url('../../../fonts/5e legacy/Bookinsanity Bold.woff2');
font-weight: bold;
font-style: normal;
} }
@font-face { @font-face {
font-family: BookSanity; font-family : "BookSanity";
src: url('../../../fonts/5e legacy/Bookinsanity Italic.woff2'); font-style : italic;
font-weight : normal; font-weight : normal;
font-style: italic; src : url('../../../fonts/5e legacy/Bookinsanity Italic.woff2');
} }
@font-face { @font-face {
font-family: BookSanity; font-family : "BookSanity";
src: url('../../../fonts/5e legacy/Bookinsanity Bold Italic.woff2');
font-weight: bold;
font-style : italic; font-style : italic;
font-weight : bold;
src : url('../../../fonts/5e legacy/Bookinsanity Bold Italic.woff2');
} }
/* Notes and Tables, sans-serif */ /* Notes and Tables, sans-serif */
@font-face { @font-face {
font-family: ScalySans; font-family : "ScalySans";
font-style : normal;
font-weight : normal;
src : url('../../../fonts/5e legacy/Scaly Sans.woff2'); src : url('../../../fonts/5e legacy/Scaly Sans.woff2');
font-weight: normal;
font-style: normal;
} }
@font-face { @font-face {
font-family: ScalySansSmallCaps; font-family : "ScalySansSmallCaps";
font-style : normal;
font-weight : normal;
src : url('../../../fonts/5e legacy/Scaly Sans Caps.woff2'); src : url('../../../fonts/5e legacy/Scaly Sans Caps.woff2');
font-weight: normal;
font-style: normal;
} }
@font-face { @font-face {
font-family: WalterTurncoat; font-family : "WalterTurncoat";
src: url('../../../fonts/5e legacy/WalterTurncoat-Regular.woff2');
font-weight: normal;
font-style : normal; font-style : normal;
font-weight : normal;
src : url('../../../fonts/5e legacy/WalterTurncoat-Regular.woff2');
} }
/* Headers */ /* Headers */
@font-face { @font-face {
font-family: MrJeeves; font-family : "MrJeeves";
src: url('../../../fonts/5e legacy/Mr Eaves Small Caps.woff2');
font-weight: normal;
font-style : normal; font-style : normal;
font-weight : normal;
src : url('../../../fonts/5e legacy/Mr Eaves Small Caps.woff2');
} }
/* Fancy Drop Cap */ /* Fancy Drop Cap */
@font-face { @font-face {
font-family: Solberry; font-family : "Solberry";
src: url('../../../fonts/5e legacy/Solbera Imitation.woff2');
font-weight: normal;
font-style : normal; font-style : normal;
font-weight : normal;
src : url('../../../fonts/5e legacy/Solbera Imitation.woff2');
} }

View File

@@ -1,143 +1,143 @@
/* Main Font, serif */ /* Main Font, serif */
@font-face { @font-face {
font-family: BookInsanityRemake; font-family : "BookInsanityRemake";
font-style : normal;
font-weight : normal;
src : url('../../../fonts/5e/Bookinsanity.woff2'); src : url('../../../fonts/5e/Bookinsanity.woff2');
font-weight: normal;
font-style: normal;
} }
@font-face { @font-face {
font-family: BookInsanityRemake; font-family : "BookInsanityRemake";
font-style : normal;
font-weight : bold;
src : url('../../../fonts/5e/Bookinsanity Bold.woff2'); src : url('../../../fonts/5e/Bookinsanity Bold.woff2');
font-weight: bold;
font-style: normal;
} }
@font-face { @font-face {
font-family: BookInsanityRemake; font-family : "BookInsanityRemake";
src: url('../../../fonts/5e/Bookinsanity Italic.woff2'); font-style : italic;
font-weight : normal; font-weight : normal;
font-style: italic; src : url('../../../fonts/5e/Bookinsanity Italic.woff2');
} }
@font-face { @font-face {
font-family: BookInsanityRemake; font-family : "BookInsanityRemake";
src: url('../../../fonts/5e/Bookinsanity Bold Italic.woff2');
font-weight: bold;
font-style : italic; font-style : italic;
font-weight : bold;
src : url('../../../fonts/5e/Bookinsanity Bold Italic.woff2');
} }
/* Notes and Tables, sans-serif */ /* Notes and Tables, sans-serif */
@font-face { @font-face {
font-family: ScalySansRemake; font-family : "ScalySansRemake";
font-style : normal;
font-weight : normal;
src : url('../../../fonts/5e/Scaly Sans.woff2'); src : url('../../../fonts/5e/Scaly Sans.woff2');
font-weight: normal;
font-style: normal;
} }
@font-face { @font-face {
font-family: ScalySansRemake; font-family : "ScalySansRemake";
font-style : normal;
font-weight : bold;
src : url('../../../fonts/5e/Scaly Sans Bold.woff2'); src : url('../../../fonts/5e/Scaly Sans Bold.woff2');
font-weight: bold;
font-style: normal;
} }
@font-face { @font-face {
font-family: ScalySansRemake; font-family : "ScalySansRemake";
font-style : italic;
font-weight : normal;
src : url('../../../fonts/5e/Scaly Sans Italic.woff2'); src : url('../../../fonts/5e/Scaly Sans Italic.woff2');
font-weight: normal;
font-style: italic;
} }
@font-face { @font-face {
font-family: ScalySansRemake; font-family : "ScalySansRemake";
src: url('../../../fonts/5e/Scaly Sans Bold Italic.woff2'); font-style : italic;
font-weight : bold; font-weight : bold;
font-style: italic; src : url('../../../fonts/5e/Scaly Sans Bold Italic.woff2');
} }
@font-face { @font-face {
font-family: ScalySansSmallCapsRemake; font-family : "ScalySansSmallCapsRemake";
font-style : normal;
font-weight : normal;
src : url('../../../fonts/5e/Scaly Sans Caps.woff2'); src : url('../../../fonts/5e/Scaly Sans Caps.woff2');
font-weight: normal;
font-style: normal;
} }
@font-face { @font-face {
font-family: WalterTurncoat; font-family : "WalterTurncoat";
src: url('../../../fonts/5e/WalterTurncoat-Regular.woff2');
font-weight: normal;
font-style : normal; font-style : normal;
font-weight : normal;
src : url('../../../fonts/5e/WalterTurncoat-Regular.woff2');
} }
/* Headers */ /* Headers */
@font-face { @font-face {
font-family: MrEavesRemake; font-family : "MrEavesRemake";
src: url('../../../fonts/5e/Mr Eaves Small Caps.woff2');
font-weight: normal;
font-style : normal; font-style : normal;
font-weight : normal;
src : url('../../../fonts/5e/Mr Eaves Small Caps.woff2');
} }
/* Fancy Drop Cap */ /* Fancy Drop Cap */
@font-face { @font-face {
font-family: SolberaImitationRemake; //Tweaked 5e version font-family : "SolberaImitationRemake"; //Tweaked 5e version
src: url('../../../fonts/5e/Solbera Imitation Tweak.woff2');
font-weight: 100 1000;
font-style : normal; font-style : normal;
font-style : italic; font-style : italic;
font-weight : 100 1000;
src : url('../../../fonts/5e/Solbera Imitation Tweak.woff2');
} }
/* Cover Page */ /* Cover Page */
@font-face { @font-face {
font-family: NodestoCapsCondensed; font-family : "NodestoCapsCondensed";
font-style : normal;
font-weight : normal;
src : url('../../../fonts/5e/Nodesto Caps Condensed.woff2'); src : url('../../../fonts/5e/Nodesto Caps Condensed.woff2');
font-weight: normal;
font-style: normal;
} }
@font-face { @font-face {
font-family: NodestoCapsCondensed; font-family : "NodestoCapsCondensed";
font-style : normal;
font-weight : bold;
src : url('../../../fonts/5e/Nodesto Caps Condensed Bold.woff2'); src : url('../../../fonts/5e/Nodesto Caps Condensed Bold.woff2');
font-weight: bold;
font-style: normal;
} }
@font-face { @font-face {
font-family: NodestoCapsCondensed; font-family : "NodestoCapsCondensed";
font-style : italic;
font-weight : normal;
src : url('../../../fonts/5e/Nodesto Caps Condensed Italic.woff2'); src : url('../../../fonts/5e/Nodesto Caps Condensed Italic.woff2');
font-weight: normal;
font-style: italic;
} }
@font-face { @font-face {
font-family: NodestoCapsCondensed; font-family : "NodestoCapsCondensed";
src: url('../../../fonts/5e/Nodesto Caps Condensed Bold Italic.woff2'); font-style : italic;
font-weight : bold; font-weight : bold;
font-style: italic; src : url('../../../fonts/5e/Nodesto Caps Condensed Bold Italic.woff2');
} }
@font-face { @font-face {
font-family: NodestoCapsWide; font-family : "NodestoCapsWide";
src: url('../../../fonts/5e/Nodesto Caps Wide.woff2'); font-style : normal;
font-weight : normal; font-weight : normal;
font-style: normal src : url('../../../fonts/5e/Nodesto Caps Wide.woff2');
} }
@font-face { @font-face {
font-family: Overpass; font-family : "Overpass";
font-style : normal;
font-weight : 500;
src : url('../../../fonts/5e/Overpass Medium.woff2'); src : url('../../../fonts/5e/Overpass Medium.woff2');
font-weight: 500;
font-style: normal;
} }
@font-face { @font-face {
font-family: Davek; font-family : "Davek";
font-style : normal;
font-weight : 500;
src : url('../../../fonts/5e/Davek.woff2'); src : url('../../../fonts/5e/Davek.woff2');
font-weight: 500;
font-style: normal;
} }
@font-face { @font-face {
font-family: Iokharic; font-family : "Iokharic";
src: url('../../../fonts/5e/Iokharic.woff2');
font-weight: 500;
font-style : normal; font-style : normal;
font-weight : 500;
src : url('../../../fonts/5e/Iokharic.woff2');
} }
@font-face { @font-face {
font-family: Rellanic; font-family : "Rellanic";
src: url('../../../fonts/5e/Rellanic.woff2');
font-weight: 500;
font-style : normal; font-style : normal;
font-weight : 500;
src : url('../../../fonts/5e/Rellanic.woff2');
} }

View File

@@ -18,29 +18,29 @@ License:
*/ */
@font-face { @font-face {
font-family: Pagella; font-family : "Pagella";
font-style : normal;
font-weight : normal;
src : url('../../../fonts/Blank/texgyrepagella-regular.woff2'); src : url('../../../fonts/Blank/texgyrepagella-regular.woff2');
font-weight: normal;
font-style: normal;
} }
@font-face { @font-face {
font-family: Pagella; font-family : "Pagella";
font-style : normal;
font-weight : bold;
src : url('../../../fonts/Blank/texgyrepagella-bold.woff2'); src : url('../../../fonts/Blank/texgyrepagella-bold.woff2');
font-weight: bold;
font-style: normal;
} }
@font-face { @font-face {
font-family: Pagella; font-family : "Pagella";
src: url('../../../fonts/Blank/texgyrepagella-italic.woff2'); font-style : italic;
font-weight : normal; font-weight : normal;
font-style: italic; src : url('../../../fonts/Blank/texgyrepagella-italic.woff2');
} }
@font-face { @font-face {
font-family: Pagella; font-family : "Pagella";
src: url('../../../fonts/Blank/texgyrepagella-bolditalic.woff2');
font-weight: bold;
font-style : italic; font-style : italic;
font-weight : bold;
src : url('../../../fonts/Blank/texgyrepagella-bolditalic.woff2');
} }

View File

@@ -1,58 +1,58 @@
/* Main Font, serif */ /* Main Font, serif */
@font-face { @font-face {
font-family: ReenieBeanie; font-family : "ReenieBeanie";
src: url('../../../fonts/Journal/ReenieBeanie-Regular.woff2');
font-weight: normal;
font-style : normal; font-style : normal;
font-weight : normal;
src : url('../../../fonts/Journal/ReenieBeanie-Regular.woff2');
} }
/* Notes and Tables, sans-serif */ /* Notes and Tables, sans-serif */
@font-face { @font-face {
font-family: PermanentMarker; font-family : "PermanentMarker";
src: url('../../../fonts/Journal/PermanentMarker-Regular.woff2');
font-weight: normal;
font-style : normal; font-style : normal;
font-weight : normal;
src : url('../../../fonts/Journal/PermanentMarker-Regular.woff2');
} }
@font-face { @font-face {
font-family: WalterTurncoat; font-family : "WalterTurncoat";
src: url('../../../fonts/5e/WalterTurncoat-Regular.woff2');
font-weight: normal;
font-style : normal; font-style : normal;
font-weight : normal;
src : url('../../../fonts/5e/WalterTurncoat-Regular.woff2');
} }
/* Headers */ /* Headers */
@font-face { @font-face {
font-family: FrederickaTheGreat; font-family : "FrederickaTheGreat";
src: url('../../../fonts/Journal/FrederickaTheGreat-Regular.woff2');
font-weight: normal;
font-style : normal; font-style : normal;
font-weight : normal;
src : url('../../../fonts/Journal/FrederickaTheGreat-Regular.woff2');
} }
/* Cover Page */ /* Cover Page */
@font-face { @font-face {
font-family: NodestoCapsCondensed; font-family : "NodestoCapsCondensed";
font-style : normal;
font-weight : normal;
src : url('../fonts/5e/Nodesto Caps Condensed.woff2'); src : url('../fonts/5e/Nodesto Caps Condensed.woff2');
font-weight: normal;
font-style: normal;
} }
@font-face { @font-face {
font-family: NodestoCapsCondensed; font-family : "NodestoCapsCondensed";
font-style : normal;
font-weight : bold;
src : url('../fonts/5e/Nodesto Caps Condensed Bold.woff2'); src : url('../fonts/5e/Nodesto Caps Condensed Bold.woff2');
font-weight: bold;
font-style: normal;
} }
@font-face { @font-face {
font-family: NodestoCapsCondensed; font-family : "NodestoCapsCondensed";
src: url('../fonts/5e/Nodesto Caps Condensed Italic.woff2'); font-style : italic;
font-weight : normal; font-weight : normal;
font-style: italic; src : url('../fonts/5e/Nodesto Caps Condensed Italic.woff2');
} }
@font-face { @font-face {
font-family: NodestoCapsCondensed; font-family : "NodestoCapsCondensed";
src: url('../fonts/5e/Nodesto Caps Condensed Bold Italic.woff2');
font-weight: bold;
font-style : italic; font-style : italic;
font-weight : bold;
src : url('../fonts/5e/Nodesto Caps Condensed Bold Italic.woff2');
} }

View File

@@ -13,8 +13,8 @@
font-weight : normal; font-weight : normal;
font-variant : normal; font-variant : normal;
line-height : 1; line-height : 1;
text-decoration : inherit;
text-transform : none; text-transform : none;
text-decoration : inherit;
text-rendering : optimizeLegibility; text-rendering : optimizeLegibility;
/* Better Font Rendering =========== */ /* Better Font Rendering =========== */

View File

@@ -1,3 +1,5 @@
/* eslint-disable max-lines */
const fontAwesome = { const fontAwesome = {
// FONT-AWESOME SOLID // FONT-AWESOME SOLID
'fas_0' : 'fas fa-0', 'fas_0' : 'fas fa-0',

View File

@@ -1,31 +1,31 @@
.phb { .phb {
//Double hr for full width elements //Double hr for full width elements
hr + hr + blockquote { hr + hr + blockquote {
column-span : all;
-webkit-column-span : all; -webkit-column-span : all;
-moz-column-span : all; -moz-column-span : all;
column-span : all;
} }
//***************************** //*****************************
// * CLASS TABLE // * CLASS TABLE
// *****************************/ // *****************************/
hr+table { hr+table {
padding-top : 10px;
margin-top : -5px; margin-top : -5px;
margin-bottom : 50px; margin-bottom : 50px;
padding-top : 10px;
border-collapse : separate; border-collapse : separate;
background-color : white; background-color : white;
border : initial; border : initial;
border-style : solid; border-style : solid;
border-image-source : @frameBorderImage;
border-image-slice : 150 200 150 200;
border-image-width : 47px;
border-image-outset : 37px 17px; border-image-outset : 37px 17px;
border-image-repeat : round; border-image-repeat : round;
border-image-slice : 150 200 150 200;
border-image-source : @frameBorderImage;
border-image-width : 47px;
} }
h5 + hr + table { h5 + hr + table {
column-span : all;
-webkit-column-span : all; -webkit-column-span : all;
-moz-column-span : all; -moz-column-span : all;
column-span : all;
} }
} }