diff --git a/client/homebrew/editor/snippetbar/snippetbar.jsx b/client/homebrew/editor/snippetbar/snippetbar.jsx index d0d1318a0..c357f2efa 100644 --- a/client/homebrew/editor/snippetbar/snippetbar.jsx +++ b/client/homebrew/editor/snippetbar/snippetbar.jsx @@ -82,6 +82,7 @@ const Snippetbar = createClass({ if(baseSnippetsPath) { let objA = _.keyBy(_.cloneDeep(ThemeSnippets[`${rendererPath}_${baseSnippetsPath}`]), 'groupName'); compiledSnippets = _.values(_.mergeWith(objA, objB, this.mergeCustomizer)); + compiledSnippets = this.compileSnippets(rendererPath, baseSnippetsPath, _.cloneDeep(compiledSnippets)); } else { let objA = _.keyBy(_.cloneDeep(ThemeSnippets[`${rendererPath}_Blank`]), 'groupName'); diff --git a/themes/V3/5ePHB/style.less b/themes/V3/5ePHB/style.less index 8907f8a71..98b52788f 100644 --- a/themes/V3/5ePHB/style.less +++ b/themes/V3/5ePHB/style.less @@ -141,6 +141,7 @@ body { margin-bottom : 0.18cm; //Margin-bottom only because this is WIDE column-span : all; font-size : 0.89cm; + line-height : 1em; -webkit-column-span : all; -moz-column-span : all; &+p::first-letter{ diff --git a/themes/V3/Blank/dropdownTexture.png b/themes/V3/Blank/dropdownTexture.png index d5884de16..d0c0256c0 100644 Binary files a/themes/V3/Blank/dropdownTexture.png and b/themes/V3/Blank/dropdownTexture.png differ diff --git a/themes/V3/Blank/style.less b/themes/V3/Blank/style.less index 51ddc250f..d93ce1e41 100644 --- a/themes/V3/Blank/style.less +++ b/themes/V3/Blank/style.less @@ -56,26 +56,32 @@ body { em{ font-style : italic; } - img{ - z-index : -1; - } sup{ vertical-align : super; font-size : smaller; + line-height : 0; } sub{ vertical-align : sub; font-size : smaller; + line-height : 0; } - * + * { - margin-top: 1em; //NOTE: MAKE ALL MARGINS TOP-ONLY FOR BEST RESULTS WITH COLUMN BREAKS. USE * + * STYLE SELECTORS + img{ + z-index : -1; + } + :not(:where(.wide,.columnSplit,.blank,hr)) + :where(h1,h2,h3,h4,h5,h6,table,dl,.block) { + margin-top : 1em; //NOTE: MAKE ALL MARGINS TOP-ONLY FOR BEST RESULTS WITH COLUMN BREAKS. USE * + * STYLE SELECTORS + } + + :where(h1,h3,h3,h4,h5,h6) + * { + margin-top : 0; } //***************************** // * HEADERS // *****************************/ h1,h2,h3,h4,h5,h6{ - font-weight : bold; - line-height : normal; + font-weight : bold; + line-height : 1.2em; } h1{ font-size : 2em; diff --git a/themes/V3/Journal/dropdownTexture.png b/themes/V3/Journal/dropdownTexture.png index d5884de16..558b82d19 100644 Binary files a/themes/V3/Journal/dropdownTexture.png and b/themes/V3/Journal/dropdownTexture.png differ diff --git a/themes/V3/Journal/snippets.js b/themes/V3/Journal/snippets.js index cd0911c1b..636befb60 100644 --- a/themes/V3/Journal/snippets.js +++ b/themes/V3/Journal/snippets.js @@ -1,408 +1,4 @@ /* eslint-disable max-lines */ -const MagicGen = require('./snippets/magic.gen.js'); -const ClassTableGen = require('./snippets/classtable.gen.js'); -const MonsterBlockGen = require('./snippets/monsterblock.gen.js'); -const ClassFeatureGen = require('./snippets/classfeature.gen.js'); -const CoverPageGen = require('./snippets/coverpage.gen.js'); -const TableOfContentsGen = require('./snippets/tableOfContents.gen.js'); -const WatercolorGen = require('./snippets/watercolor.gen.js'); -const dedent = require('dedent-tabs').default; - - - module.exports = [ - - { - groupName : 'Text Editor', - icon : 'fas fa-pencil-alt', - view : 'text', - snippets : [ - { - name : 'Column Break', - icon : 'fas fa-columns', - gen : '\n\\column\n' - }, - { - name : 'New Page', - icon : 'fas fa-file-alt', - gen : '\n\\page\n' - }, - { - name : 'Vertical Spacing', - icon : 'fas fa-arrows-alt-v', - gen : '\n::::\n' - }, - { - name : 'Horizontal Spacing', - icon : 'fas fa-arrows-alt-h', - gen : ' {{width:100px}} ' - }, - { - name : 'Wide Block', - icon : 'fas fa-window-maximize', - gen : dedent`\n - {{wide - Everything in here will be extra wide. Tables, text, everything! - Beware though, CSS columns can behave a bit weird sometimes. You may - have to manually place column breaks with \`\column\` to make the - surrounding text flow with this wide block the way you want. - }} - \n` - }, - { - name : 'QR Code', - icon : 'fas fa-qrcode', - gen : (brew)=>{ - return `![]` + - `(https://api.qrserver.com/v1/create-qr-code/?data=` + - `https://homebrewery.naturalcrit.com${brew.shareId ? `/share/${brew.shareId}` : ''}` + - `&size=100x100) {width:100px;mix-blend-mode:multiply}`; - } - }, - { - name : 'Page Number', - icon : 'fas fa-bookmark', - gen : '{{pageNumber 1}}\n{{footnote PART 1 | SECTION NAME}}\n\n' - }, - { - name : 'Auto-incrementing Page Number', - icon : 'fas fa-sort-numeric-down', - gen : '{{pageNumber,auto}}\n{{footnote PART 1 | SECTION NAME}}\n\n' - }, - { - name : 'Link to page', - icon : 'fas fa-link', - gen : '[Click here](#p3) to go to page 3\n' - }, - { - name : 'Table of Contents', - icon : 'fas fa-book', - gen : TableOfContentsGen - }, - { - name : 'Add Comment', - icon : 'fas fa-code', - gen : '' - }, - ] - }, - { - groupName : 'Style Editor', - icon : 'fas fa-pencil-alt', - view : 'style', - snippets : [ - { - name : 'Remove Drop Cap', - icon : 'fas fa-remove-format', - gen : dedent`/* Removes Drop Caps */ - .page h1+p:first-letter { - all: unset; - }\n\n - /* Removes Small-Caps in first line */ - .page h1+p:first-line { - all: unset; - }` - }, - { - name : 'Tweak Drop Cap', - icon : 'fas fa-sliders-h', - gen : dedent`/* Drop Cap settings */ - .page h1 + p::first-letter { - font-family: SolberaImitationRemake; - font-size: 3.5cm; - background-image: linear-gradient(-45deg, #322814, #998250, #322814); - line-height: 1em; - }\n\n` - }, - { - name : 'Add Comment', - icon : 'fas fa-code', - gen : '/* This is a comment that will not be rendered into your brew. */' - }, - ] - }, - - /*********************** IMAGES *******************/ - { - groupName : 'Images', - icon : 'fas fa-images', - view : 'text', - snippets : [ - { - name : 'Image', - icon : 'fas fa-image', - gen : dedent` - ![cat warrior](https://s-media-cache-ak0.pinimg.com/736x/4a/81/79/4a8179462cfdf39054a418efd4cb743e.jpg) {width:325px,mix-blend-mode:multiply} - - {{artist,position:relative,top:-230px,left:10px,margin-bottom:-30px - ##### Cat Warrior - [Kyoung Hwan Kim](https://www.artstation.com/tahra) - }}` - }, - { - name : 'Background Image', - icon : 'fas fa-tree', - gen : dedent` - ![homebrew mug](http://i.imgur.com/hMna6G0.png) {position:absolute,top:50px,right:30px,width:280px} - - {{artist,top:80px,right:30px - ##### Homebrew Mug - [naturalcrit](https://homebrew.naturalcrit.com) - }}` - }, - { - name : 'Watercolor Splatter', - icon : 'fas fa-fill-drip', - gen : WatercolorGen, - }, - { - name : 'Watermark', - icon : 'fas fa-id-card', - gen : dedent` - {{watermark Homebrewery}}\n` - }, - ] - }, - - - /************************* PHB ********************/ - - { - groupName : 'PHB', - icon : 'fas fa-book', - view : 'text', - snippets : [ - { - name : 'Spell', - icon : 'fas fa-magic', - gen : MagicGen.spell, - }, - { - name : 'Spell List', - icon : 'fas fa-scroll', - gen : MagicGen.spellList, - }, - { - name : 'Class Feature', - icon : 'fas fa-mask', - gen : ClassFeatureGen, - }, - { - name : 'Note', - icon : 'fas fa-sticky-note', - gen : function(){ - return dedent` - {{note - ##### Time to Drop Knowledge - Use notes to point out some interesting information. - - **Tables and lists** both work within a note. - }} - \n`; - }, - }, - { - name : 'Descriptive Text Box', - icon : 'fas fa-comment-alt', - gen : function(){ - return dedent` - {{descriptive - ##### Time to Drop Knowledge - Use descriptive boxes to highlight text that should be read aloud. - - **Tables and lists** both work within a descriptive box. - }} - \n`; - }, - }, - { - name : 'Monster Stat Block (unframed)', - icon : 'fas fa-paw', - gen : MonsterBlockGen.monster('monster', 2), - }, - { - name : 'Monster Stat Block', - icon : 'fas fa-spider', - gen : MonsterBlockGen.monster('monster,frame', 2), - }, - { - name : 'Wide Monster Stat Block', - icon : 'fas fa-dragon', - gen : MonsterBlockGen.monster('monster,frame,wide', 4), - }, - { - name : 'Cover Page', - icon : 'fas fa-file-word', - gen : CoverPageGen, - }, - { - name : 'Magic Item', - icon : 'fas fa-hat-wizard', - gen : MagicGen.item, - }, - { - name : 'Artist Credit', - icon : 'fas fa-signature', - gen : function(){ - return dedent` - {{artist,top:90px,right:30px - ##### Starry Night - [Van Gogh](https://www.vangoghmuseum.nl/en) - }} - \n`; - }, - }, - ] - }, - - - - /********************* TABLES *********************/ - - { - groupName : 'Tables', - icon : 'fas fa-table', - view : 'text', - snippets : [ - { - name : 'Table', - icon : 'fas fa-th-list', - gen : function(){ - return dedent` - ##### Character Advancement - | Experience Points | Level | Proficiency Bonus | - |:------------------|:-----:|:-----------------:| - | 0 | 1 | +2 | - | 300 | 2 | +2 | - | 900 | 3 | +2 | - | 2,700 | 4 | +2 | - | 6,500 | 5 | +3 | - | 14,000 | 6 | +3 | - \n`; - } - }, - { - name : 'Wide Table', - icon : 'fas fa-list', - gen : function(){ - return dedent` - {{wide - ##### Weapons - | Name | Cost | Damage | Weight | Properties | - |:------------------------|:-----:|:----------------|--------:|:-----------| - | *Simple Melee Weapons* | | | | | - |   Club | 1 sp | 1d4 bludgeoning | 2 lb. | Light | - |   Dagger | 2 gp | 1d4 piercing | 1 lb. | Finesse | - |   Spear | 1 gp | 1d6 piercing | 3 lb. | Thrown | - | *Simple Ranged Weapons* | | | | | - |   Dart | 5 cp | 1d4 piercig | 1/4 lb. | Finesse | - |   Shortbow | 25 gp | 1d6 piercing | 2 lb. | Ammunition | - |   Sling | 1 sp | 1d4 bludgeoning | — | Ammunition | - }} - \n`; - } - }, - { - name : 'Split Table', - icon : 'fas fa-th-large', - gen : function(){ - return dedent` - ##### Typical Difficulty Classes - {{column-count:2 - | Task Difficulty | DC | - |:----------------|:--:| - | Very easy | 5 | - | Easy | 10 | - | Medium | 15 | - - | Task Difficulty | DC | - |:------------------|:--:| - | Hard | 20 | - | Very hard | 25 | - | Nearly impossible | 30 | - }} - \n`; - } - }, - { - name : 'Class Table', - icon : 'fas fa-table', - gen : ClassTableGen.full('classTable,frame,decoration,wide'), - }, - { - name : 'Class Table (unframed)', - icon : 'fas fa-border-none', - gen : ClassTableGen.full('classTable,wide'), - }, - { - name : '1/2 Class Table', - icon : 'fas fa-list-alt', - gen : ClassTableGen.half('classTable,decoration,frame'), - }, - { - name : '1/2 Class Table (unframed)', - icon : 'fas fa-border-none', - gen : ClassTableGen.half('classTable'), - }, - { - name : '1/3 Class Table', - icon : 'fas fa-border-all', - gen : ClassTableGen.third('classTable,frame'), - }, - { - name : '1/3 Class Table (unframed)', - icon : 'fas fa-border-none', - gen : ClassTableGen.third('classTable'), - } - ] - }, - - - - - /**************** PAGE *************/ - - { - groupName : 'Print', - icon : 'fas fa-print', - view : 'style', - snippets : [ - { - name : 'A4 Page Size', - icon : 'far fa-file', - gen : dedent`/* A4 Page Size */ - .page{ - width : 210mm; - height : 296.8mm; - }\n\n` - }, - { - name : 'Square Page Size', - icon : 'far fa-file', - gen : dedent`/* Square Page Size */ - .page { - width : 125mm; - height : 125mm; - padding : 12.5mm; - columns : unset; - }\n\n` - }, - { - name : 'Ink Friendly', - icon : 'fas fa-tint', - gen : dedent` - /* Ink Friendly */ - *:is(.page,.monster,.note,.descriptive) { - background : white !important; - filter : drop-shadow(0px 0px 3px #888) !important; - } - - .page img { - visibility : hidden; - }\n\n` - }, - ] - }, - ]; diff --git a/themes/V3/Journal/snippets/magic.gen.js b/themes/V3/Journal/snippets/magic.gen.js deleted file mode 100644 index 33ce8406d..000000000 --- a/themes/V3/Journal/snippets/magic.gen.js +++ /dev/null @@ -1,109 +0,0 @@ -const _ = require('lodash'); - -const spellNames = [ - 'Astral Rite of Acne', - 'Create Acne', - 'Cursed Ramen Erruption', - 'Dark Chant of the Dentists', - 'Erruption of Immaturity', - 'Flaming Disc of Inconvenience', - 'Heal Bad Hygene', - 'Heavenly Transfiguration of the Cream Devil', - 'Hellish Cage of Mucus', - 'Irritate Peanut Butter Fairy', - 'Luminous Erruption of Tea', - 'Mystic Spell of the Poser', - 'Sorcerous Enchantment of the Chimneysweep', - 'Steak Sauce Ray', - 'Talk to Groupie', - 'Astonishing Chant of Chocolate', - 'Astounding Pasta Puddle', - 'Ball of Annoyance', - 'Cage of Yarn', - 'Control Noodles Elemental', - 'Create Nervousness', - 'Cure Baldness', - 'Cursed Ritual of Bad Hair', - 'Dispell Piles in Dentist', - 'Eliminate Florists', - 'Illusionary Transfiguration of the Babysitter', - 'Necromantic Armor of Salad Dressing', - 'Occult Transfiguration of Foot Fetish', - 'Protection from Mucus Giant', - 'Tinsel Blast', - 'Alchemical Evocation of the Goths', - 'Call Fangirl', - 'Divine Spell of Crossdressing', - 'Dominate Ramen Giant', - 'Eliminate Vindictiveness in Gym Teacher', - 'Extra-Planar Spell of Irritation', - 'Induce Whining in Babysitter', - 'Invoke Complaining', - 'Magical Enchantment of Arrogance', - 'Occult Globe of Salad Dressing', - 'Overwhelming Enchantment of the Chocolate Fairy', - 'Sorcerous Dandruff Globe', - 'Spiritual Invocation of the Costumers', - 'Ultimate Rite of the Confetti Angel', - 'Ultimate Ritual of Mouthwash', -]; -const itemNames = [ - 'Doorknob of Niceness', - 'Paper Armor of Folding', - 'Mixtape of Sadness', - 'Staff of Endless Confetti', -]; - -module.exports = { - - spellList : function(){ - const levels = ['Cantrips (0 Level)', '1st Level', '2nd Level', '3rd Level', '4th Level', '5th Level', '6th Level', '7th Level', '8th Level', '9th Level']; - - const content = _.map(levels, (level)=>{ - const spells = _.map(_.sampleSize(spellNames, _.random(4, 10)), (spell)=>{ - return `- ${spell}`; - }).join('\n'); - return `##### ${level} \n${spells} \n`; - }).join('\n'); - - return `{{spellList,wide\n${content}\n}}`; - }, - - spell : function(){ - const level = ['1st', '2nd', '3rd', '4th', '5th', '6th', '7th', '8th', '9th']; - const spellSchools = ['abjuration', 'conjuration', 'divination', 'enchantment', 'evocation', 'illusion', 'necromancy', 'transmutation']; - - - let components = _.sampleSize(['V', 'S', 'M'], _.random(1, 3)).join(', '); - if(components.indexOf('M') !== -1){ - components += ` (${_.sampleSize(['a small doll', 'a crushed button worth at least 1cp', 'discarded gum wrapper'], _.random(1, 3)).join(', ')})`; - } - - return [ - `#### ${_.sample(spellNames)}`, - `*${_.sample(level)}-level ${_.sample(spellSchools)}*`, - '', - '**Casting Time:** :: 1 action', - `**Range:** :: ${_.sample(['Self', 'Touch', '30 feet', '60 feet'])}`, - `**Components:** :: ${components}`, - `**Duration:** :: ${_.sample(['Until dispelled', '1 round', 'Instantaneous', 'Concentration, up to 10 minutes', '1 hour'])}`, - '', - 'A flame, equivalent in brightness to a torch, springs from an object that you touch. ', - 'The effect look like a regular flame, but it creates no heat and doesn\'t use oxygen. ', - 'A *continual flame* can be covered or hidden but not smothered or quenched.', - '\n\n\n' - ].join('\n'); - }, - - item : function() { - return [ - `#### ${_.sample(itemNames)}`, - `*${_.sample(['Wondrous item', 'Armor', 'Weapon'])}, ${_.sample(['Common', 'Uncommon', 'Rare', 'Very Rare', 'Legendary', 'Artifact'])} (requires attunement)*`, - `:`, - `This knob is pretty nice. When attached to a door, it allows a user to`, - `open that door with the strength of the nearest animal. For example, if`, - `there is a cow nearby, the user will have the "strength of a cow" while`, - `opening this door.` - ].join('\n'); - } -}; diff --git a/themes/V3/Journal/style.less b/themes/V3/Journal/style.less index 8907f8a71..7f4fe53c0 100644 --- a/themes/V3/Journal/style.less +++ b/themes/V3/Journal/style.less @@ -1,12 +1,14 @@ -@import (less) './themes/fonts/5e/fonts.less'; +@import (less) './themes/fonts/Journal/fonts.less'; @import (less) './themes/assets/assets.less'; :root { //Colors - --HB_Color_Background : #EEE5CE; // Light parchment + --HB_Color_Background : unset; // Light parchment --HB_Color_Accent : #E0E5C1; // Pastel green --HB_Color_HeaderUnderline : #C0AD6A; // Gold --HB_Color_HorizontalRule : #9C2B1B; // Maroon + --HB_Color_Text : #412121; // Dark Maroon Brown + --HB_Color_Text2 : #261C13CC; //Dark Brown --HB_Color_HeaderText : #58180D; // Dark Maroon --HB_Color_MonsterStatBackground : #EEDBAB; // Light orange parchment --HB_Color_CaptionText : #766649; // Brown @@ -22,9 +24,10 @@ body { -webkit-print-color-adjust : exact; } .useSansSerif(){ - font-family : ScalySansRemake; - font-size : 0.318cm; + font-family : PermanentMarker; + font-size : 0.3cm; line-height : 1.2em; + color : var(--HB_Color_Text2); p,dl,ul,ol { line-height : 1.2em; } @@ -35,8 +38,8 @@ body { font-style : italic; } strong{ - font-weight : 800; - letter-spacing : -0.02em; + font-weight : 800; + font-size : 1.1em; } h5 + * { margin-top : 0.1cm; @@ -45,45 +48,46 @@ body { .useColumns(@multiplier : 1, @fillMode: balance){ column-count : 2; column-fill : @fillMode; - column-gap : 0.9cm; - column-width : 8cm * @multiplier; - -webkit-column-count : 2; - -moz-column-count : 2; - -webkit-column-width : 8cm * @multiplier; - -moz-column-width : 8cm * @multiplier; - -webkit-column-gap : 0.9cm; - -moz-column-gap : 0.9cm; -} -.columnWrapper{ - max-height : 100%; - column-span : all; - columns : inherit; - column-gap : inherit; + column-gap : 0.5cm; + column-width : unset; } + .page{ .useColumns(); - counter-increment : phb-page-numbers; - position : relative; - z-index : 15; - box-sizing : border-box; - overflow : hidden; - height : 279.4mm; - width : 215.9mm; - background-color : var(--HB_Color_Background); - background-image : @backgroundImage; - padding : 1.4cm 1.9cm 1.7cm; - font-family : BookInsanityRemake; - font-size : 0.34cm; - text-rendering : optimizeLegibility; - page-break-before : always; - page-break-after : always; + background-color : var(--HB_Color_Background); + background-size : 200% 100%; + background-repeat : no-repeat; + filter : drop-shadow(1px 4px 14px black); + background-image : url(/assets/Journal/Background1.webp); + padding : 2.1cm 1.9cm 1.7cm 3.8cm; + &:nth-of-type(2n + 1) { + background-position : left; + } + &:nth-of-type(2n) { + background-position : right; + padding : 2.1cm 3.9cm 1.7cm 1.8cm; + } + &:nth-of-type(2) { + background-image : url(/assets/Journal/Background2.webp); //Only first page should show ribbon + } + + & .columnWrapper { + //transform: rotate(-0.5deg); // Breaks absolute positioning of images/footers. Wait for Chrome fix + } +} + + //***************************** // * BASE // *****************************/ +:where(.page){ + color : var(--HB_Color_Text); + font-family : ReenieBeanie; + font-size : 0.53cm; + line-height : 0.8em; p{ overflow-wrap : break-word; //TODO: MAKE ALL MARGINS TOP-ONLY. USE * + * STYLE SELECTORS display : block; - line-height : 1.25em; &+* { margin-top : 0.325cm; } @@ -94,14 +98,12 @@ body { ul{ margin-bottom : 0.8em; padding-left : 1.4em; - line-height : 1.25em; list-style-position : outside; list-style-type : disc; } ol{ margin-bottom : 0.8em; padding-left : 1.4em; - line-height : 1.25em; list-style-position : outside; list-style-type : decimal; } @@ -109,84 +111,70 @@ body { p+p, ul+p, ol+p{ text-indent : 1em; } - img{ - z-index : -1; - } - strong{ - font-weight : bold; - letter-spacing : -0.02em; - } em{ - font-style : italic; + text-decoration : underline; + font-style : unset; } - sup{ - vertical-align : super; - font-size : smaller; - line-height : 0; - } - sub{ - vertical-align : sub; - font-size : smaller; - line-height : 0; + del{ + text-decoration-style: double; } //***************************** // * HEADERS // *****************************/ - h1,h2,h3,h4{ - font-family : MrEavesRemake; - font-weight : 800; + h1,h2,h3,h4,h5{ + font-family : FrederickaTheGreat; + font-weight : unset; color : var(--HB_Color_HeaderText); } h1{ margin-bottom : 0.18cm; //Margin-bottom only because this is WIDE - column-span : all; font-size : 0.89cm; - -webkit-column-span : all; - -moz-column-span : all; + line-height : 1em; + font-variant : small-caps; &+p::first-letter{ float : left; - font-family : SolberaImitationRemake; + font-family : FrederickaTheGreat; line-height : 1em; - font-size : 3.5cm; + font-size : 1.9em; padding-left : 40px; //Allow background color to extend into margins - margin-left : -40px; margin-top : -0.3cm; - padding-bottom : 2px; margin-bottom : -20px; - background-image : linear-gradient(-45deg, #322814, #998250, #322814); - background-clip : text; - -webkit-background-clip : text; - color : rgba(0, 0, 0, 0); + margin-left : -40px; + margin-right : 0.1em; + padding-top : 0.3em; + padding-bottom : 2px; } &+p::first-line{ font-variant : small-caps; } } h2{ - //margin-top : 0px; //Font is misaligned. Shift up slightly - //margin-bottom : 0.05cm; - font-size : 0.75cm; + font-size : 0.62cm; line-height : 0.988em; //Font is misaligned. Shift up slightly } h3{ - //margin-top : -0.1cm; //Font is misaligned. Shift up slightly - //margin-bottom : 0.1cm; font-size : 0.575cm; - border-bottom : 2px solid var(--HB_Color_HeaderUnderline);; line-height : 0.995em; //Font is misaligned. Shift up slightly + margin-left : -0.9em; } h4{ - //margin-top : -0.02cm; //Font is misaligned. Shift up slightly - //margin-bottom : 0.02cm; - font-size : 0.458cm; - line-height : 0.971em; //Font is misaligned. Shift up slightly + font-size : 0.55cm; + line-height : 0.971em; //Font is misaligned. Shift up slightly + color : var(--HB_Color_Text); + padding-bottom : 5px; + transform:rotate(0deg); + &:nth-of-type(2n) { + transform:rotate(1deg); + } + &:nth-of-type(3n) { + transform:rotate(-1.5deg); + } } h5{ - //margin-top : -0.02cm; //Font is misaligned. Shift up slightly - //margin-bottom : 0.02cm; - font-family : ScalySansSmallCapsRemake; - font-size : 0.423cm; - font-weight : 900; + font-family : PermanentMarker; + font-size : 0.4cm; + color : var(--HB_Color_Text2); + font-weight : bold; line-height : 0.951em; //Font is misaligned. Shift up slightly & + * { margin-top : 0.2cm; @@ -202,20 +190,18 @@ body { margin-top : 0.325cm; } thead{ - display: table-row-group; - font-weight : 800; th{ vertical-align : bottom; - padding : 0.14em 0.4em; + padding : 0.14em 0; } } tbody{ tr{ td{ - padding : 0.14em 0.4em; + padding : 0.14em 0; } &:nth-child(odd){ - background-color : var(--HB_Color_Accent); + background-image : linear-gradient(to left, #41212100, #41212122, #41212100); } } } @@ -225,15 +211,20 @@ body { // *****************************/ .note{ .useSansSerif(); - background-color : var(--HB_Color_Accent); border-style : solid; border-width : 1px; - border-image : @noteBorderImage 12 stretch; - border-image-outset : 9px 0px; - border-image-width : 11px; - padding : 0.13cm 0.16cm; - filter : drop-shadow(1px 4px 6px #888); - .page :where(&) { + border-image-source : url(/assets/Journal/Border1.png); + border-image-slice : 18 18 18 18; + border-image-width : 6px 6px 6px 6px; + border-image-outset : 5px 5px 5px 5px; + border-image-repeat : stretch stretch; + background-image : url(/assets/Journal/HashMarks.png), + linear-gradient(to bottom right, #ff000000, #a36a4e14, #41212100); + background-size : 120% 120%; + background-repeat : no-repeat; + background-position : center; + padding : 0.2cm; + :where(&) { margin-top : 9px; //Prevent top border getting cut off on colbreak } & + * { @@ -243,7 +234,6 @@ body { font-size : 0.375cm; } p{ - display : block; padding-bottom : 0px; } :last-child { @@ -253,16 +243,25 @@ body { //************************************ // * DESCRIPTIVE TEXT BOX // ************************************/ + * + .descriptive { + margin-top : 0.6cm; + } .descriptive{ .useSansSerif(); - background-color : #faf7ea; border-style : solid; - border-width : 7px; - border-image : @descriptiveBoxImage 12 stretch; - border-image-outset : 4px; - padding : 0.1em; - filter : drop-shadow(0 0 3px #faf7ea); - .page :where(&) { + border-width : 1px; + border-image-source : url('/assets/Journal/Border2.png'); + border-image-slice : 48 48 48 48; + border-image-width : 20px; + border-image-outset : 16px 20px 16px 20px; + border-image-repeat : stretch stretch; + background-image : url(/assets/Journal/HashMarks.png), + linear-gradient(to bottom right, #ff000000, #41212114, #41212100); + background-size : 120% 120%; + background-repeat : no-repeat; + background-position : center; + padding : 0.2cm; + :where(&) { margin-top : 4px; //Prevent top border getting cut off on colbreak } & + * { @@ -272,9 +271,7 @@ body { font-size : 0.375cm; } p{ - display : block; padding-bottom : 0px; - line-height : 1.5em; } :last-child { margin-bottom : 0; @@ -310,58 +307,6 @@ body { } } - /* Watermark */ - .watermark { - display : grid !important; - place-items : center; - justify-content : center; - position : absolute; - top : 0; - left : 0; - width : 100%; - height : 100%; - font-size : 120px; - text-transform : uppercase; - color : black; - mix-blend-mode : overlay; - opacity : 30%; - transform : rotate(-45deg); - z-index : 500; - p { - margin-bottom : none; - } - } - - /* Watercolor */ - [class*="watercolor"] { - position : absolute; - width : 2000px; /* dimensions need to be real big so the user can set */ - height : 2000px; /* height or width and the image will maintain aspect ratio */ - -webkit-mask-image : var(--wc); - -webkit-mask-size : contain; - -webkit-mask-repeat : no-repeat; - mask-image : var(--wc); - mask-size : contain; - mask-repeat : no-repeat; - background-size : cover; - background-color : var(--HB_Color_WatercolorStain); /*default color*/ - --wc : @watercolor1; /*default image*/ - z-index : -2; - } - - .watercolor1 { --wc : @watercolor1; } - .watercolor2 { --wc : @watercolor2; } - .watercolor3 { --wc : @watercolor3; } - .watercolor4 { --wc : @watercolor4; } - .watercolor5 { --wc : @watercolor5; } - .watercolor6 { --wc : @watercolor6; } - .watercolor7 { --wc : @watercolor7; } - .watercolor8 { --wc : @watercolor8; } - .watercolor9 { --wc : @watercolor9; } - .watercolor10 { --wc : @watercolor10; } - .watercolor11 { --wc : @watercolor11; } - .watercolor12 { --wc : @watercolor12; } - //***************************** // * MONSTER STAT BLOCK // *****************************/ @@ -370,19 +315,19 @@ body { &.frame { border-style : solid; border-width : 7px 6px; - background-color : var(--HB_Color_MonsterStatBackground); - background-image : @monsterBlockBackground; - border-image : @monsterBorderImage 14 round; - border-image-outset : 0px 2px; - background-blend-mode : overlay; - background-attachment : fixed; - filter : drop-shadow(1px 4px 6px #888); - padding : 4px 2px; - margin-left : -0.16cm; - margin-right : -0.16cm; - width : calc(100% + 0.32cm); + border-image-source : url('/assets/Journal/Border3.png'); + border-image-slice : 63 74 63 74; + border-image-width : 15px 20px 15px 20px; + border-image-outset : 12px 12px 12px 12px; + border-image-repeat : stretch round; + background-image : url('/assets/Journal/HashMarks.png'), + linear-gradient(to bottom right, #ff000000, #a36a4e14, #41212100); + background-blend-mode : screen multiply; + background-size : 100%; + padding : 0.2cm; } + color: var(--HB_Color_Text); position : relative; padding : 0px; margin-bottom : 0.325cm; @@ -393,53 +338,35 @@ body { line-height : 1em; margin : 0; &+p { - font-size : 0.304cm; //Monster size and type subtext - margin-bottom : 0; + margin-bottom : 0; //Monster size and type subtext } } h3{ - font-family : ScalySansRemake; - font-weight : 800; + margin-left : 0; font-variant : small-caps; - border-bottom : 2px solid var(--HB_Color_HeaderText); - // margin-top : 0.05cm; //Font is misaligned. Shift up slightly padding-bottom : 0.05cm; } - - //Triangle dividers hr{ visibility : visible; height : 6px; margin : 0.12cm 0cm; - background-image : @redTriangleImage; + background-image : url('/assets/Journal/HorizontalRule.png'); background-size : 100% 100%; - border : none; } - - //Attribute Lists - All text between HRs is red - hr ~ :is(dl,p) { - color : var(--HB_Color_HeaderText); - } - hr:last-of-type { - & ~ :is(dl,p) { - color : inherit; // After the HRs, reset text to black - } - & + * { - margin-top : 0.325cm; // Space after last HR - } + hr:last-of-type + * { + margin-top : 0.325cm; // Space after last HR } // Monster Ability table hr + table:first-of-type{ margin : 0; column-span : none; - color : var(--HB_Color_HeaderText); - background-color : transparent; + background-image : none; border-style : none; border-image : none; - -webkit-column-span : none; + color : inherit; tr { - background-color : transparent; + background-image : none; } td,th { padding: 0px; @@ -449,6 +376,11 @@ body { :last-child { margin-bottom : 0; } + + strong, em { + font-style : normal; + text-decoration : none; + } } //Full Width @@ -459,36 +391,23 @@ body { //***************************** // * FOOTER // *****************************/ - &:after{ - content : ""; - position : absolute; - bottom : 0px; - left : 0px; - z-index : 100; - height : 50px; - width : 100%; - background-image : @footerAccentImage; - background-size : cover; - } - &:nth-child(even){ - &:after{ - transform : scaleX(-1); - } + &:nth-child(odd){ .pageNumber{ - left : 2px; + left : 3cm; } .footnote{ - left : 80px; + left : 4.5cm; text-align : left; } } .pageNumber{ + font-family : FrederickaTheGreat; position : absolute; - right : 2px; - bottom : 22px; + right : 3cm; + bottom : 1.25cm; width : 50px; font-size : 0.9em; - color : var(--HB_Color_Footnotes); + color : var(--HB_Color_HeaderText); text-align : center; text-indent : 0; &.auto::after { @@ -497,22 +416,22 @@ body { } .footnote{ position : absolute; - right : 80px; - bottom : 32px; + right : 4.5cm; + bottom : 1.25cm; z-index : 150; width : 200px; font-size : 0.8em; - color : var(--HB_Color_Footnotes); + color : var(--HB_Color_HeaderText); text-align : right; } //************************************ // * CODE BLOCKS // ************************************/ code{ - font-family : "Courier New", Courier, monospace; - font-size : 0.325; + font-size : 0.3cm; padding : 0px 4px; - color : #58180d; + color : var(--HB_Color_Text); + vertical-align : middle; background-color : #faf7ea; border-radius : 4px; white-space : pre-wrap; @@ -542,49 +461,32 @@ body { // *****************************/ hr{ visibility : hidden; + border : none; margin : 0px; } - .columnSplit { - visibility : hidden; - -webkit-column-break-after : always; - break-after : always; - -moz-column-break-after : always; - } - //Avoid breaking up - blockquote,table{ - z-index : 15; - -webkit-column-break-inside : avoid; - page-break-inside : avoid; - break-inside : avoid; - } //Text indent right after table table+p{ text-indent : 1em; } - // Nested lists - ul ul,ol ol,ul ol,ol ul{ - margin-bottom : 0px; - margin-left : 1.5em; + a, a:visited, a:hover { + color: var(--HB_Color_Text); + transition:all 1s ease; } - li{ - -webkit-column-break-inside : avoid; - page-break-inside : avoid; - break-inside : avoid; + a:hover { + color:red; } } //***************************** // * SPELL LIST // *****************************/ + .page .spellList{ .useSansSerif(); - column-count : 2; + font-family : PermanentMarker; + column-count : 2; ul+h5{ margin-top : 15px; } - p, ul{ - font-size : 0.352cm; - line-height : 1.265em; - } ul{ margin-bottom : 0.5em; padding-left : 1em; @@ -606,49 +508,6 @@ body { th[colspan]:not([rowspan]) { white-space : nowrap; } - &.frame { - margin-top : 0.7cm; - margin-bottom : 0.9cm; - margin-left : -0.1cm; - margin-right : -0.1cm; - width : calc(100% + 0.2cm); - border-collapse : separate; - background-color : white; - border : initial; - border-style : solid; - border-image-outset : 0.4cm 0.3cm; - border-image-repeat : stretch; - border-image-slice : 200; - border-image-source : @frameBorderImage; - border-image-width : 47px; - &.wide:first-child { - margin-top: 0.12cm; - } - } - &.decoration { - position:relative; - } - &.decoration::before { - content :''; - position : absolute; - background-image : @classTableDecoration, - @classTableDecoration; - background-size : contain, contain; - background-repeat : no-repeat, no-repeat; - background-position : top, bottom; - width : 7.75cm; - height : calc(100% + 3.3cm); - top : 50%; - left : 50%; - transform : translateY(-50%) translateX(-50%); - filter : drop-shadow(0px 0px 1px #C8C5C080); - z-index : -1; - } - &.decoration.wide::before { - width : calc(100% + 3.3cm); - height : 7.75cm; - background-position : left, right; - } h5 + table{ margin-top : 0.2cm; } @@ -704,7 +563,7 @@ body { } } &:last-child { - font-family : BookInsanityRemake; + font-family : ReenieBeanie; font-size : 0.34cm; font-weight : normal; color : black; @@ -724,74 +583,9 @@ body { } } -//***************************** -// * MUSTACHE DIVS/SPANS -// *****************************/ -.page { - .block { - break-inside : avoid; - display : inline-block; - .page :where(&) { - width : 100%; - } - //-webkit-transform : translateZ(0); //Prevents shadows from breaking across columns - } - .inline-block { - display : inline-block; - text-indent : initial; - } -} - -//***************************** -// * DEFINITION LISTS -// *****************************/ -.page { - dl { - line-height : 1.25em; - padding-left : 1em; - white-space : pre-line; - & + * { - margin-top : 0.28cm; - } - } - dl + * { - margin-top : 0.17cm; - } - p + dl { - margin-top: 0.17cm; - } - dt { - display : inline; - margin-right : 5px; - margin-left : -1em; - } - dd { - display : inline; - margin-left : 0px; - text-indent : 0px; - } -} - -//***************************** -// * BLANK LINE -// *****************************/ -.page { - .blank { - height : 1em; - margin-top : 0; - } -} - //***************************** // * WIDE // *****************************/ -.page .wide{ - column-span : all; - -webkit-column-span : all; - -moz-column-span : all; - display : block; - margin-bottom : 0.34cm; - &+* { - margin-top : 0; - } +:where(.page) .wide { + margin-bottom : 0.45cm; } diff --git a/themes/assets/Journal/Background1.webp b/themes/assets/Journal/Background1.webp new file mode 100644 index 000000000..01cfb9bc4 Binary files /dev/null and b/themes/assets/Journal/Background1.webp differ diff --git a/themes/assets/Journal/Background2.webp b/themes/assets/Journal/Background2.webp new file mode 100644 index 000000000..7c6198107 Binary files /dev/null and b/themes/assets/Journal/Background2.webp differ diff --git a/themes/assets/Journal/Border1.png b/themes/assets/Journal/Border1.png new file mode 100644 index 000000000..f7e4cb763 Binary files /dev/null and b/themes/assets/Journal/Border1.png differ diff --git a/themes/assets/Journal/Border2.png b/themes/assets/Journal/Border2.png new file mode 100644 index 000000000..8f38c3f25 Binary files /dev/null and b/themes/assets/Journal/Border2.png differ diff --git a/themes/assets/Journal/Border3.png b/themes/assets/Journal/Border3.png new file mode 100644 index 000000000..ee033a712 Binary files /dev/null and b/themes/assets/Journal/Border3.png differ diff --git a/themes/assets/Journal/HashMarks.png b/themes/assets/Journal/HashMarks.png new file mode 100644 index 000000000..d587019f2 Binary files /dev/null and b/themes/assets/Journal/HashMarks.png differ diff --git a/themes/assets/Journal/HashMarksLight.png b/themes/assets/Journal/HashMarksLight.png new file mode 100644 index 000000000..7b4bcd2b7 Binary files /dev/null and b/themes/assets/Journal/HashMarksLight.png differ diff --git a/themes/assets/Journal/HashMarksLight2.png b/themes/assets/Journal/HashMarksLight2.png new file mode 100644 index 000000000..b8896db03 Binary files /dev/null and b/themes/assets/Journal/HashMarksLight2.png differ diff --git a/themes/assets/Journal/HorizontalRule.png b/themes/assets/Journal/HorizontalRule.png new file mode 100644 index 000000000..696a42a2b Binary files /dev/null and b/themes/assets/Journal/HorizontalRule.png differ diff --git a/themes/fonts/Journal/FrederickaTheGreat-Regular.woff2 b/themes/fonts/Journal/FrederickaTheGreat-Regular.woff2 new file mode 100644 index 000000000..92f13f25b Binary files /dev/null and b/themes/fonts/Journal/FrederickaTheGreat-Regular.woff2 differ diff --git a/themes/fonts/Journal/LICENSE - PermanentMarker.txt b/themes/fonts/Journal/LICENSE - PermanentMarker.txt new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/themes/fonts/Journal/LICENSE - PermanentMarker.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/themes/fonts/Journal/PermanentMarker-Regular.woff2 b/themes/fonts/Journal/PermanentMarker-Regular.woff2 new file mode 100644 index 000000000..6defcd122 Binary files /dev/null and b/themes/fonts/Journal/PermanentMarker-Regular.woff2 differ diff --git a/themes/fonts/Journal/ReenieBeanie-Regular.woff2 b/themes/fonts/Journal/ReenieBeanie-Regular.woff2 new file mode 100644 index 000000000..470a16032 Binary files /dev/null and b/themes/fonts/Journal/ReenieBeanie-Regular.woff2 differ diff --git a/themes/fonts/Journal/fonts.less b/themes/fonts/Journal/fonts.less new file mode 100644 index 000000000..703b594ba --- /dev/null +++ b/themes/fonts/Journal/fonts.less @@ -0,0 +1,58 @@ +/* Main Font, serif */ +@font-face { + font-family: ReenieBeanie; + src: url('../../../fonts/Journal/ReenieBeanie-Regular.woff2'); + font-weight: normal; + font-style: normal; +} + +/* Notes and Tables, sans-serif */ +@font-face { + font-family: PermanentMarker; + src: url('../../../fonts/Journal/PermanentMarker-Regular.woff2'); + font-weight: normal; + font-style: normal; +} +@font-face { + font-family: WalterTurncoat; + src: url('../../../fonts/5e/WalterTurncoat-Regular.woff2'); + font-weight: normal; + font-style: normal; +} + +/* Headers */ +@font-face { + font-family: FrederickaTheGreat; + src: url('../../../fonts/Journal/FrederickaTheGreat-Regular.woff2'); + font-weight: normal; + font-style: normal; +} + +/* Cover Page */ +@font-face { + font-family: NodestoCapsCondensed; + src: url('../fonts/5e/Nodesto Caps Condensed.woff2'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: NodestoCapsCondensed; + src: url('../fonts/5e/Nodesto Caps Condensed Bold.woff2'); + font-weight: bold; + font-style: normal; +} + +@font-face { + font-family: NodestoCapsCondensed; + src: url('../fonts/5e/Nodesto Caps Condensed Italic.woff2'); + font-weight: normal; + font-style: italic; +} + +@font-face { + font-family: NodestoCapsCondensed; + src: url('../fonts/5e/Nodesto Caps Condensed Bold Italic.woff2'); + font-weight: bold; + font-style: italic; +}