0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-01-17 05:52:42 +00:00
This commit is contained in:
Victor Losada Hernandez
2023-01-30 20:34:15 +01:00
12 changed files with 2035 additions and 2023 deletions

View File

@@ -134,7 +134,7 @@ const BrewRenderer = createClass({
renderStyle : function() {
if(!this.props.style) return;
return <div style={{ display: 'none' }} dangerouslySetInnerHTML={{ __html: `<style> ${this.props.style} </style>` }} />;
return <div style={{ display: 'none' }} dangerouslySetInnerHTML={{ __html: `<style>@layer styleTab {\n${this.props.style}\n} </style>` }} />;
},
renderPage : function(pageText, index){

View File

@@ -219,12 +219,13 @@ const ListPage = createClass({
render : function(){
return <div className='listPage sitePage'>
<style>@layer V3_5ePHB, bundle;</style>
<link href='/themes/V3/5ePHB/style.css' rel='stylesheet'/>
{this.props.navItems}
{this.renderSortOptions()}
<div className='content V3'>
<div className='phb page'>
<div className='page'>
{this.renderBrewCollection(this.state.brewCollection)}
</div>
</div>

View File

@@ -10,14 +10,14 @@
-moz-column-width : auto;
-webkit-column-gap : auto;
-moz-column-gap : auto;
}
.listPage{
.content{
.phb{
.noColumns();
height : auto;
min-height : 279.4mm;
margin : 20px auto;
}
.listPage{
.content{
.page{
.noColumns() !important; //Needed to override PHB Theme since this is on a lower @layer
&::after{
display : none;
}

View File

@@ -60,7 +60,7 @@ const PrintPage = createClass({
renderStyle : function() {
if(!this.state.brew.style) return;
return <div style={{ display: 'none' }} dangerouslySetInnerHTML={{ __html: `<style> ${this.state.brew.style} </style>` }} />;
return <div style={{ display: 'none' }} dangerouslySetInnerHTML={{ __html: `<style>@layer styleTab {\n${this.state.brew.style}\n} </style>` }} />;
},
renderPages : function(){

28
package-lock.json generated
View File

@@ -46,8 +46,8 @@
"vitreum": "git+https://git@github.com/calculuschild/vitreum.git"
},
"devDependencies": {
"eslint": "^8.32.0",
"eslint-plugin-react": "^7.32.1",
"eslint": "^8.33.0",
"eslint-plugin-react": "^7.32.2",
"jest": "^29.4.1",
"supertest": "^6.3.3"
},
@@ -6186,9 +6186,9 @@
}
},
"node_modules/eslint": {
"version": "8.32.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.32.0.tgz",
"integrity": "sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==",
"version": "8.33.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz",
"integrity": "sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==",
"dev": true,
"dependencies": {
"@eslint/eslintrc": "^1.4.1",
@@ -6242,9 +6242,9 @@
}
},
"node_modules/eslint-plugin-react": {
"version": "7.32.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.1.tgz",
"integrity": "sha512-vOjdgyd0ZHBXNsmvU+785xY8Bfe57EFbTYYk8XrROzWpr9QBvpjITvAXt9xqcE6+8cjR/g1+mfumPToxsl1www==",
"version": "7.32.2",
"resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz",
"integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==",
"dev": true,
"dependencies": {
"array-includes": "^3.1.6",
@@ -21434,9 +21434,9 @@
"integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
},
"eslint": {
"version": "8.32.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.32.0.tgz",
"integrity": "sha512-nETVXpnthqKPFyuY2FNjz/bEd6nbosRgKbkgS/y1C7LJop96gYHWpiguLecMHQ2XCPxn77DS0P+68WzG6vkZSQ==",
"version": "8.33.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-8.33.0.tgz",
"integrity": "sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==",
"dev": true,
"requires": {
"@eslint/eslintrc": "^1.4.1",
@@ -21553,9 +21553,9 @@
}
},
"eslint-plugin-react": {
"version": "7.32.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.1.tgz",
"integrity": "sha512-vOjdgyd0ZHBXNsmvU+785xY8Bfe57EFbTYYk8XrROzWpr9QBvpjITvAXt9xqcE6+8cjR/g1+mfumPToxsl1www==",
"version": "7.32.2",
"resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz",
"integrity": "sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==",
"dev": true,
"requires": {
"array-includes": "^3.1.6",

View File

@@ -104,8 +104,8 @@
"vitreum": "git+https://git@github.com/calculuschild/vitreum.git"
},
"devDependencies": {
"eslint": "^8.32.0",
"eslint-plugin-react": "^7.32.1",
"eslint": "^8.33.0",
"eslint-plugin-react": "^7.32.2",
"jest": "^29.4.1",
"supertest": "^6.3.3"
}

View File

@@ -20,7 +20,8 @@ const transforms = {
};
const build = async ({ bundle, render, ssr })=>{
const css = await lessTransform.generate({ paths: './shared' });
let css = await lessTransform.generate({ paths: './shared' });
css = `@layer bundle {\n${css}\n}`;
await fs.outputFile('./build/homebrew/bundle.css', css);
await fs.outputFile('./build/homebrew/bundle.js', bundle);
await fs.outputFile('./build/homebrew/ssr.js', ssr);

View File

@@ -1,22 +1,23 @@
@import (less) './themes/fonts/5e legacy/fonts.less';
@import (less) './themes/assets/assets.less';
@import (less) './themes/phb.depricated.less';
//Colors
@background : #EEE5CE; // Light parchment
@noteGreen : #e0e5c1; // Pastel green
@headerUnderline : #c9ad6a; // Gold
@horizontalRule : #9c2b1b; // Maroon
@headerText : #58180D; // Dark maroon
@monsterStatBackground : #FDF1DC; // Lighter parchment
@captionText : #766649; // Brown
@page { margin: 0; }
body {
@layer Legacy_5ePHB {
@import (less) './themes/fonts/5e legacy/fonts.less';
@import (less) './themes/assets/assets.less';
@import (less) './themes/phb.depricated.less';
//Colors
@background : #EEE5CE; // Light parchment
@noteGreen : #e0e5c1; // Pastel green
@headerUnderline : #c9ad6a; // Gold
@horizontalRule : #9c2b1b; // Maroon
@headerText : #58180D; // Dark maroon
@monsterStatBackground : #FDF1DC; // Lighter parchment
@captionText : #766649; // Brown
@page { margin: 0; }
body {
counter-reset : phb-page-numbers;
}
*{
}
*{
-webkit-print-color-adjust : exact;
}
.useSansSerif(){
}
.useSansSerif(){
font-family : ScalySans;
em{
font-family : ScalySans;
@@ -27,8 +28,8 @@ body {
font-weight : 800;
letter-spacing : -0.02em;
}
}
.useColumns(@multiplier : 1){
}
.useColumns(@multiplier : 1){
column-count : 2;
column-fill : auto;
column-gap : 1cm;
@@ -39,8 +40,8 @@ body {
-moz-column-width : 8cm * @multiplier;
-webkit-column-gap : 1cm;
-moz-column-gap : 1cm;
}
.phb{
}
.phb{
.useColumns();
counter-increment : phb-page-numbers;
position : relative;
@@ -357,11 +358,11 @@ body {
page-break-inside : avoid;
break-inside : avoid;
}
}
//*****************************
// * SPELL LIST
// *****************************/
.phb .spellList{
}
//*****************************
// * SPELL LIST
// *****************************/
.phb .spellList{
.useSansSerif();
column-count : 4;
column-span : all;
@@ -383,19 +384,19 @@ body {
page-break-inside : auto;
break-inside : auto;
}
}
//*****************************
// * WIDE
// *****************************/
.phb .wide{
}
//*****************************
// * WIDE
// *****************************/
.phb .wide{
column-span : all;
-webkit-column-span : all;
-moz-column-span : all;
}
//*****************************
// * CLASS TABLE
// *****************************/
.phb .classTable{
}
//*****************************
// * CLASS TABLE
// *****************************/
.phb .classTable{
margin-top : 25px;
margin-bottom : 40px;
border-collapse : separate;
@@ -410,11 +411,11 @@ body {
h5{
margin-bottom : 10px;
}
}
//************************************
// * DESCRIPTIVE TEXT BOX
// ************************************/
.phb .descriptive{
}
//************************************
// * DESCRIPTIVE TEXT BOX
// ************************************/
.phb .descriptive{
margin-bottom : 1em;
background-color : #faf7ea;
font-family : ScalySans;
@@ -440,15 +441,15 @@ body {
font-weight : 800;
letter-spacing : -0.02em;
}
}
.phb pre+.descriptive{
}
.phb pre+.descriptive{
margin-top : 8px;
}
}
//*****************************
// * ARTIST CREDIT BLOCK
// *****************************/
.phb {
//*****************************
// * ARTIST CREDIT BLOCK
// *****************************/
.phb {
.artist {
position : absolute;
text-align : center;
@@ -472,11 +473,11 @@ body {
}
}
}
}
//*****************************
// * TABLE OF CONTENTS
// *****************************/
.phb .toc{
}
//*****************************
// * TABLE OF CONTENTS
// *****************************/
.phb .toc{
-webkit-column-break-inside : avoid;
page-break-inside : avoid;
break-inside : avoid;
@@ -494,4 +495,5 @@ body {
&>ul>li{
margin-bottom : 10px;
}
}
}

View File

@@ -1,10 +1,11 @@
:root {
@layer V3_5eDMG {
:root {
//Colors
--HB_Color_Accent : #EBCEC3; // Salmon
--HB_Color_Footnotes : #5C5C5C; // Dark gray
}
}
.page {
.page {
background-image : url(/assets/DMG_background.png);
background-size : cover;
@@ -16,4 +17,5 @@
.footnote {
bottom : 40px;
}
}
}

View File

@@ -1,7 +1,8 @@
@import (less) './themes/fonts/5e/fonts.less';
@import (less) './themes/assets/assets.less';
@layer V3_5ePHB {
@import (less) './themes/fonts/5e/fonts.less';
@import (less) './themes/assets/assets.less';
:root {
:root {
//Colors
--HB_Color_Background : #EEE5CE; // Light parchment
--HB_Color_Accent : #E0E5C1; // Pastel green
@@ -12,16 +13,16 @@
--HB_Color_CaptionText : #766649; // Brown
--HB_Color_WatercolorStain : #BBAD82; // Light brown
--HB_Color_Footnotes : #C9AD6A; // Gold
}
}
@page { margin: 0; }
body {
@page { margin: 0; }
body {
counter-reset : phb-page-numbers;
}
*{
}
*{
-webkit-print-color-adjust : exact;
}
.useSansSerif(){
}
.useSansSerif(){
font-family : ScalySansRemake;
font-size : 0.318cm;
line-height : 1.2em;
@@ -41,8 +42,8 @@ body {
h5 + * {
margin-top : 0.1cm;
}
}
.useColumns(@multiplier : 1, @fillMode: balance){
}
.useColumns(@multiplier : 1, @fillMode: balance){
column-count : 2;
column-fill : @fillMode;
column-gap : 0.9cm;
@@ -53,14 +54,14 @@ body {
-moz-column-width : 8cm * @multiplier;
-webkit-column-gap : 0.9cm;
-moz-column-gap : 0.9cm;
}
.columnWrapper{
}
.columnWrapper{
max-height : 100%;
column-span : all;
columns : inherit;
column-gap : inherit;
}
.page{
}
.page{
.useColumns();
counter-increment : phb-page-numbers;
position : relative;
@@ -77,12 +78,12 @@ body {
text-rendering : optimizeLegibility;
page-break-before : always;
page-break-after : always;
}
}
//*****************************
// * BASE
// *****************************/
.page{
.page{
p{
overflow-wrap : break-word; //TODO: MAKE ALL MARGINS TOP-ONLY. USE * + * STYLE SELECTORS
display : block;
@@ -592,11 +593,11 @@ body {
page-break-inside : avoid;
break-inside : avoid;
}
}
//*****************************
// * SPELL LIST
// *****************************/
.page .spellList{
}
//*****************************
// * SPELL LIST
// *****************************/
.page .spellList{
.useSansSerif();
column-count : 2;
ul+h5{
@@ -618,12 +619,12 @@ body {
&.wide{
column-count : 4;
}
}
}
//*****************************
// * CLASS TABLE
// *****************************/
.page .classTable{
//*****************************
// * CLASS TABLE
// *****************************/
.page .classTable{
th[colspan]:not([rowspan]) {
white-space : nowrap;
}
@@ -676,11 +677,11 @@ body {
h5 + table{
margin-top : 0.2cm;
}
}
//*****************************
// * TABLE OF CONTENTS
// *****************************/
.page {
}
//*****************************
// * TABLE OF CONTENTS
// *****************************/
.page {
&:has(.toc):after {
display: none;
}
@@ -752,12 +753,12 @@ body {
.useColumns(0.96, @fillMode: balance);
}
}
}
}
//*****************************
// * DEFINITION LISTS
// *****************************/
.page {
//*****************************
// * DEFINITION LISTS
// *****************************/
.page {
dl {
line-height : 1.25em;
padding-left : 1em;
@@ -782,15 +783,16 @@ body {
margin-left : 0px;
text-indent : 0px;
}
}
}
//*****************************
// * WIDE
// *****************************/
.page .wide{
//*****************************
// * WIDE
// *****************************/
.page .wide{
margin-bottom : 0.325cm;
}
}
.page h1 + *{
.page h1 + *{
margin-top : 0;
}
}

View File

@@ -1,31 +1,32 @@
@import (less) './themes/fonts/5e/fonts.less';
@import (less) './themes/assets/assets.less';
@layer V3_Blank {
@import (less) './themes/fonts/5e/fonts.less';
@import (less) './themes/assets/assets.less';
:root {
:root {
//Colors
--HB_Color_Background : #FFFFFF; // White
--HB_Color_WatercolorStain : #000000; // Black
}
}
@page { margin: 0; }
body {
@page { margin: 0; }
body {
counter-reset : phb-page-numbers;
}
*{
}
*{
-webkit-print-color-adjust : exact;
}
}
.useColumns(@multiplier : 1, @fillMode: balance){
.useColumns(@multiplier : 1, @fillMode: balance){
column-fill : @fillMode;
column-count : 2;
}
.columnWrapper{
}
.columnWrapper{
max-height : 100%;
column-span : all;
columns : inherit;
column-gap : inherit;
}
.page{
}
.page{
.useColumns();
height : 279.4mm;
width : 215.9mm;
@@ -40,11 +41,11 @@ body {
page-break-before : always;
page-break-after : always;
contain : size;
}
}
//*****************************
// * BASE
// *****************************/
.page{
.page{
p{
overflow-wrap : break-word;
display : block;
@@ -211,12 +212,12 @@ body {
page-break-inside : avoid;
break-inside : avoid;
}
}
}
//*****************************
// * MUSTACHE DIVS/SPANS
// *****************************/
.page {
//*****************************
// * MUSTACHE DIVS/SPANS
// *****************************/
.page {
.block {
break-inside : avoid;
display : inline-block;
@@ -226,12 +227,12 @@ body {
display : inline-block;
text-indent : initial;
}
}
}
//*****************************
// * DEFINITION LISTS
// *****************************/
.page {
//*****************************
// * DEFINITION LISTS
// *****************************/
.page {
dl {
padding-left : 1em;
white-space : pre-line;
@@ -246,12 +247,12 @@ body {
margin-left : 0;
text-indent : 0;
}
}
}
//*****************************
// * BLANK LINE
// *****************************/
.page {
//*****************************
// * BLANK LINE
// *****************************/
.page {
.blank {
height : 1em;
margin-top : 0;
@@ -259,12 +260,12 @@ body {
margin-top : 0;
}
}
}
}
//*****************************
// * WIDE
// *****************************/
.page {
//*****************************
// * WIDE
// *****************************/
.page {
.wide{
column-span : all;
display : block;
@@ -273,4 +274,5 @@ body {
margin-top : 0;
}
}
}
}

View File

@@ -1,7 +1,8 @@
@import (less) './themes/fonts/Journal/fonts.less';
@import (less) './themes/assets/assets.less';
@layer V3_Journal {
@import (less) './themes/fonts/Journal/fonts.less';
@import (less) './themes/assets/assets.less';
:root {
:root {
//Colors
--HB_Color_Background : unset; // Light parchment
--HB_Color_Text : #412121; // Dark Maroon Brown
@@ -9,9 +10,9 @@
--HB_Color_HeaderText : #58180D; // Dark Maroon
--HB_Color_CaptionText : #766649; // Brown
--HB_Color_WatercolorStain : #BBAD82; // Light brown
}
}
.useSansSerif(){
.useSansSerif(){
font-family : PermanentMarker;
font-size : 0.3cm;
line-height : 1.2em;
@@ -32,12 +33,12 @@
h5 + * {
margin-top : 0.1cm;
}
}
.useColumns(@multiplier : 1, @fillMode: balance){
}
.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);
@@ -57,12 +58,12 @@
& .columnWrapper {
//transform: rotate(-0.5deg); // Breaks absolute positioning of images/footers. Wait for Chrome fix
}
}
}
//*****************************
// * BASE
// *****************************/
.page{
.page{
color : var(--HB_Color_Text);
font-family : ReenieBeanie;
font-size : 0.53cm;
@@ -443,12 +444,12 @@
a:hover {
color:red;
}
}
//*****************************
// * SPELL LIST
// *****************************/
}
//*****************************
// * SPELL LIST
// *****************************/
.page .spellList{
.page .spellList{
.useSansSerif();
font-family : PermanentMarker;
column-count : 2;
@@ -467,23 +468,23 @@
&.wide{
column-count : 4;
}
}
}
//*****************************
// * CLASS TABLE
// *****************************/
.page .classTable{
//*****************************
// * CLASS TABLE
// *****************************/
.page .classTable{
th[colspan]:not([rowspan]) {
white-space : nowrap;
}
h5 + table{
margin-top : 0.2cm;
}
}
//*****************************
// * TABLE OF CONTENTS
// *****************************/
.page .toc{
}
//*****************************
// * TABLE OF CONTENTS
// *****************************/
.page .toc{
-webkit-column-break-inside : avoid;
page-break-inside : avoid;
break-inside : avoid;
@@ -549,11 +550,12 @@
&.wide{
.useColumns(0.96, @fillMode: balance);
}
}
}
//*****************************
// * WIDE
// *****************************/
.page .wide {
//*****************************
// * WIDE
// *****************************/
.page .wide {
margin-bottom : 0.45cm;
}
}