diff --git a/client/homebrew/editor/snippetbar/snippetbar.less b/client/homebrew/editor/snippetbar/snippetbar.less index 80444a7e4..cb24da105 100644 --- a/client/homebrew/editor/snippetbar/snippetbar.less +++ b/client/homebrew/editor/snippetbar/snippetbar.less @@ -96,6 +96,7 @@ padding : 0px; background-color : #ddd; .snippet{ + position: relative; .animate(background-color); display : flex; align-items : center; diff --git a/client/icons/Davek.svg b/client/icons/Davek.svg new file mode 100644 index 000000000..0f2324ce2 --- /dev/null +++ b/client/icons/Davek.svg @@ -0,0 +1 @@ +Davek \ No newline at end of file diff --git a/client/icons/Iokharic.svg b/client/icons/Iokharic.svg new file mode 100644 index 000000000..983c42354 --- /dev/null +++ b/client/icons/Iokharic.svg @@ -0,0 +1 @@ +Iokharic diff --git a/client/icons/Rellanic.svg b/client/icons/Rellanic.svg new file mode 100644 index 000000000..d03447baa --- /dev/null +++ b/client/icons/Rellanic.svg @@ -0,0 +1 @@ +Rellanic \ No newline at end of file diff --git a/client/icons/customIcons.less b/client/icons/customIcons.less index 28cbcdf24..775f252d3 100644 --- a/client/icons/customIcons.less +++ b/client/icons/customIcons.less @@ -37,3 +37,12 @@ .book-front-cover { content: url('../icons/book-front-cover.svg'); } +.davek { + content: url('../icons/Davek.svg'); +} +.rellanic { + content: url('../icons/Rellanic.svg'); +} +.iokharic { + content: url('../icons/Iokharic.svg'); +} diff --git a/themes/V3/5ePHB/snippets.js b/themes/V3/5ePHB/snippets.js index 5ccd2db9e..68d5cc596 100644 --- a/themes/V3/5ePHB/snippets.js +++ b/themes/V3/5ePHB/snippets.js @@ -3,6 +3,7 @@ const MagicGen = require('./snippets/magic.gen.js'); const ClassTableGen = require('./snippets/classtable.gen.js'); const MonsterBlockGen = require('./snippets/monsterblock.gen.js'); +const scriptGen = require('./snippets/script.gen.js'); const ClassFeatureGen = require('./snippets/classfeature.gen.js'); const CoverPageGen = require('./snippets/coverpage.gen.js'); const TableOfContentsGen = require('./snippets/tableOfContents.gen.js'); @@ -232,7 +233,30 @@ module.exports = [ name : '1/3 Class Table (unframed)', icon : 'fas fa-border-none', gen : ClassTableGen.third('classTable'), - } + }, + { + name : 'Rune Table', + icon : 'fas fa-language', + gen : scriptGen.dwarvish, + experimental : true, + subsnippets : [ + { + name : 'Dwarvish', + icon : 'fac davek', + gen : scriptGen.dwarvish, + }, + { + name : 'Elvish', + icon : 'fac rellanic', + gen : scriptGen.elvish, + }, + { + name : 'Draconic', + icon : 'fac iokharic', + gen : scriptGen.draconic, + }, + ] + }, ] }, diff --git a/themes/V3/5ePHB/snippets/script.gen.js b/themes/V3/5ePHB/snippets/script.gen.js new file mode 100644 index 000000000..61f56ec5f --- /dev/null +++ b/themes/V3/5ePHB/snippets/script.gen.js @@ -0,0 +1,48 @@ +const _ = require('lodash'); +const dedent = require('dedent-tabs').default; + +module.exports = { + dwarvish : ()=>{ + return dedent `##### Dwarvish Runes: Sample Alphabet + {{runeTable,wide,frame,font-family:Davek + | a | b | c | d | e | f | g | h | i | j | k | l | m | + |:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:| + | a | b | c | d | e | f | g | h | i | j | k | l | m | + : + | n | o | p | q | r | s | t | u | v | w | x | y | z | + |:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:| + | n | o | p | q | r | s | t | u | v | w | x | y | z | + }}\n\n`; + }, + elvish : ()=>{ + return dedent `##### Elvish Runes: Sample Alphabet + {{runeTable,wide,frame,font-family:Rellanic + | a | b | c | d | e | f | g | h | i | j | k | l | m | + |:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:| + | a | b | c | d | e | f | g | h | i | j | k | l | m | + : + | n | o | p | q | r | s | t | u | v | w | x | y | z | + |:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:| + | n | o | p | q | r | s | t | u | v | w | x | y | z | + }}\n\n`; + }, + draconic : ()=>{ + return dedent `##### Draconic Runes: Sample Alphabet + {{runeTable,wide,frame,font-family:Iokharic + | a | b | c | d | e | f | g | h | i | j | k | l | m | + |:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:| + | a | b | c | d | e | f | g | h | i | j | k | l | m | + : + | n | o | p | q | r | s | t | u | v | w | x | y | z | + |:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:| + | n | o | p | q | r | s | t | u | v | w | x | y | z | + }}\n\n`; + } + + +}; + + +()=>{ + +}; diff --git a/themes/V3/5ePHB/style.less b/themes/V3/5ePHB/style.less index ee799b697..c75cf0a1a 100644 --- a/themes/V3/5ePHB/style.less +++ b/themes/V3/5ePHB/style.less @@ -901,3 +901,43 @@ break-inside : avoid; .page h1 + *{ margin-top : 0; } + +//***************************** +// * RUNE TABLE +// *****************************/ +.page { + .runeTable { + margin-block: 0.7cm; + table { + font-family : inherit; + tbody tr { + background: unset; + } + th, td { + width: 1.3cm; + height: 1.3cm; + vertical-align: middle; + text-transform: uppercase; + outline: 1px solid #000; + font-weight: normal; + } + th{ + font-family: BookInsanityRemake; + font-size: 0.45cm; + } + td { + font-size: 0.7cm; + } + } + + &.frame { + border: initial; + border-style: solid; + border-image-outset: .45cm .35cm .4cm .4cm; + border-image-repeat: stretch; + border-image-slice: 170; + border-image-source: @scriptBorder; + border-image-width: 1.4cm; + } + } +} diff --git a/themes/assets/assets.less b/themes/assets/assets.less index 1f61bf89e..f50799916 100644 --- a/themes/assets/assets.less +++ b/themes/assets/assets.less @@ -13,6 +13,7 @@ @naturalCritLogo : url('/assets/naturalCritLogo.svg'); @coverPageBanner : url('/assets/coverPageBanner.svg'); @horizontalRule : url('/assets/horizontalRule.svg'); +@scriptBorder : url('/assets/scriptBorder.png'); // Watercolor Images @watercolor1 : url('/assets/watercolor/watercolor1.png'); diff --git a/themes/assets/scriptBorder.png b/themes/assets/scriptBorder.png new file mode 100644 index 000000000..05d481a97 Binary files /dev/null and b/themes/assets/scriptBorder.png differ diff --git a/themes/fonts/5e/Davek.woff2 b/themes/fonts/5e/Davek.woff2 new file mode 100644 index 000000000..69a7de83c Binary files /dev/null and b/themes/fonts/5e/Davek.woff2 differ diff --git a/themes/fonts/5e/Iokharic.woff2 b/themes/fonts/5e/Iokharic.woff2 new file mode 100644 index 000000000..2ceb7c6b7 Binary files /dev/null and b/themes/fonts/5e/Iokharic.woff2 differ diff --git a/themes/fonts/5e/Rellanic.woff2 b/themes/fonts/5e/Rellanic.woff2 new file mode 100644 index 000000000..add898f45 Binary files /dev/null and b/themes/fonts/5e/Rellanic.woff2 differ diff --git a/themes/fonts/5e/fonts.less b/themes/fonts/5e/fonts.less index 5257dfce4..a83399567 100644 --- a/themes/fonts/5e/fonts.less +++ b/themes/fonts/5e/fonts.less @@ -113,3 +113,23 @@ font-weight: 500; font-style: normal; } + +@font-face { + font-family: Davek; + src: url('../../../fonts/5e/Davek.woff2'); + font-weight: 500; + font-style: normal; +} + +@font-face { + font-family: Iokharic; + src: url('../../../fonts/5e/Iokharic.woff2'); + font-weight: 500; + font-style: normal; +} +@font-face { + font-family: Rellanic; + src: url('../../../fonts/5e/Rellanic.woff2'); + font-weight: 500; + font-style: normal; +}