From 4f715a316b647061735601afe4019c3d54671fbf Mon Sep 17 00:00:00 2001 From: Trevor Buckner Date: Tue, 28 Feb 2023 13:17:25 -0500 Subject: [PATCH] Tweak CSS and snippet --- themes/V3/5ePHB/snippets/coverpage.gen.js | 179 ++++++++++------------ themes/V3/5ePHB/style.less | 160 ++++++++++--------- 2 files changed, 165 insertions(+), 174 deletions(-) diff --git a/themes/V3/5ePHB/snippets/coverpage.gen.js b/themes/V3/5ePHB/snippets/coverpage.gen.js index f125ce12f..5351f5db5 100644 --- a/themes/V3/5ePHB/snippets/coverpage.gen.js +++ b/themes/V3/5ePHB/snippets/coverpage.gen.js @@ -1,115 +1,90 @@ -const _ = require("lodash"); +const _ = require('lodash'); +const dedent = require('dedent-tabs').default; const titles = [ - "The Burning Gallows", - "The Ring of Nenlast", - "Below the Blind Tavern", - "Below the Hungering River", - "Before Bahamut's Land", - "The Cruel Grave from Within", - "The Strength of Trade Road", - "Through The Raven Queen's Worlds", - "Within the Settlement", - "The Crown from Within", - "The Merchant Within the Battlefield", - "Ioun's Fading Traveler", - "The Legion Ingredient", - "The Explorer Lure", - "Before the Charming Badlands", - "The Living Dead Above the Fearful Cage", - "Vecna's Hidden Sage", - "Bahamut's Demonspawn", - "Across Gruumsh's Elemental Chaos", - "The Blade of Orcus", - "Beyond Revenge", - "Brain of Insanity", - "Breed Battle!, A New Beginning", - "Evil Lake, A New Beginning", - "Invasion of the Gigantic Cat, Part II", - "Kraken War 2020", - "The Body Whisperers", - "The Diabolical Tales of the Ape-Women", - "The Doctor Immortal", - "The Doctor from Heaven", - "The Graveyard", - "Azure Core", - "Core Battle", - "Core of Heaven: The Guardian of Amazement", - "Deadly Amazement III", - "Dry Chaos IX", - "Gate Thunder", - "Guardian: Skies of the Dark Wizard", - "Lute of Eternity", - "Mercury's Planet: Brave Evolution", - "Ruby of Atlantis: The Quake of Peace", - "Sky of Zelda: The Thunder of Force", - "Vyse's Skies", - "White Greatness III", - "Yellow Divinity", - "Zidane's Ghost", + 'The Burning Gallows', 'The Ring of Nenlast', + 'Below the Blind Tavern', 'Below the Hungering River', + 'Before Bahamut\'s Land', 'The Cruel Grave from Within', + 'The Strength of Trade Road', 'Through The Raven Queen\'s Worlds', + 'Within the Settlement', 'The Crown from Within', + 'The Merchant Within the Battlefield', 'Ioun\'s Fading Traveler', + 'The Legion Ingredient', 'The Explorer Lure', + 'Before the Charming Badlands', 'Vecna\'s Hidden Sage', + 'The Living Dead Above the Fearful Cage', 'Bahamut\'s Demonspawn', + 'Across Gruumsh\'s Elemental Chaos', 'The Blade of Orcus', + 'Beyond Revenge', 'Brain of Insanity', + 'Breed Battle!, A New Beginning', 'Evil Lake, A New Beginning', + 'Invasion of the Gigantic Cat, Part II', 'Kraken War 2020', + 'The Body Whisperers', 'The Doctor from Heaven', + 'The Diabolical Tales of the Ape-Women', 'The Doctor Immortal', + 'Core of Heaven: Guardian of Amazement', 'The Graveyard', + 'Guardian: Skies of the Dark Wizard', 'Lute of Eternity', + 'Mercury\'s Planet: Brave Evolution', 'Azure Core', + 'Sky of Zelda: The Thunder of Force', 'Core Battle', + 'Ruby of Atlantis: The Quake of Peace', 'Deadly Amazement III', + 'Dry Chaos IX', 'Gate Thunder', + 'Vyse\'s Skies', 'White Greatness III', + 'Yellow Divinity', 'Zidane\'s Ghost' +]; + +const subtitles = [ + 'Tomb of Shadows', 'Dragon\'s Lair', + 'Lost Caverns', 'The Necromancer', + 'Mystic Forest', 'Cursed Ruins', + 'The Dark Abyss', 'Enchanted Maze', + 'Haunted Castle', 'Sands of Fate', + 'Dragon\'s Hoard', 'Undead Menace', + 'Lost City Ruins', 'Goblin Ambush', + 'Enchanted Forest', 'Darkness Rising', + 'Quest for Glory', 'Ancient Prophecy', + 'Shadowy Depths', 'Mystic Isles' ]; const footnote = [ - "In an ominous universe, a botanist opposes terrorism.", - "In a demon-haunted city, in an age of lies and hate, a physicist tries to find an ancient treasure and battles a mob of aliens.", - "In a land of corruption, two cyberneticists and a dungeon delver search for freedom.", - "In an evil empire of horror, two rangers battle the forces of hell.", - "In a lost city, in an age of sorcery, a librarian quests for revenge.", - "In a universe of illusions and danger, three time travellers and an adventurer search for justice.", - "In a forgotten universe of barbarism, in an era of terror and mysticism, a virtual reality programmer and a spy try to find vengance and battle crime.", - "In a universe of demons, in an era of insanity and ghosts, three bodyguards and a bodyguard try to find vengance.", - "In a kingdom of corruption and battle, seven artificial intelligences try to save the last living fertile woman.", - "In a universe of virutal reality and agony, in an age of ghosts and ghosts, a fortune-teller and a wanderer try to avert the apocalypse.", - "In a crime-infested kingdom, three martial artists quest for the truth and oppose evil.", - "In a terrifying universe of lost souls, in an era of lost souls, eight dancers fight evil.", - "In a galaxy of confusion and insanity, three martial artists and a duke battle a mob of psychics.", - "In an amazing kingdom, a wizard and a secretary hope to prevent the destruction of mankind.", - "In a kingdom of deception, a reporter searches for fame.", - "In a hellish empire, a swordswoman and a duke try to find the ultimate weapon and battle a conspiracy.", - "In an evil galaxy of illusion, in a time of technology and misery, seven psychiatrists battle crime.", - "In a dark city of confusion, three swordswomen and a singer battle lawlessness.", - "In an ominous empire, in an age of hate, two philosophers and a student try to find justice and battle a mob of mages intent on stealing the souls of the innocent.", - "In a kingdom of panic, six adventurers oppose lawlessness.", - "In a land of dreams and hopelessness, three hackers and a cyborg search for justice.", - "On a planet of mysticism, three travelers and a fire fighter quest for the ultimate weapon and oppose evil.", - "In a wicked universe, five seers fight lawlessness.", - "In a kingdom of death, in an era of illusion and blood, four colonists search for fame.", - "In an amazing kingdom, in an age of sorcery and lost souls, eight space pirates quest for freedom.", - "In a cursed empire, five inventors oppose terrorism.", - "On a crime-ridden planet of conspiracy, a watchman and an artificial intelligence try to find love and oppose lawlessness.", - "In a forgotten land, a reporter and a spy try to stop the apocalypse.", - "In a forbidden land of prophecy, a scientist and an archivist oppose a cabal of barbarians intent on stealing the souls of the innocent.", - "On an infernal world of illusion, a grave robber and a watchman try to find revenge and combat a syndicate of mages intent on stealing the source of all magic.", - "In a galaxy of dark magic, four fighters seek freedom.", - "In an empire of deception, six tomb-robbers quest for the ultimate weapon and combat an army of raiders.", - "In a kingdom of corruption and lost souls, in an age of panic, eight planetologists oppose evil.", - "In a galaxy of misery and hopelessness, in a time of agony and pain, five planetologists search for vengance.", - "In a universe of technology and insanity, in a time of sorcery, a computer techician quests for hope.", - "On a planet of dark magic and barbarism, in an age of horror and blasphemy, seven librarians search for fame.", - "In an empire of dark magic, in a time of blood and illusions, four monks try to find the ultimate weapon and combat terrorism.", - "In a forgotten empire of dark magic, six kings try to prevent the destruction of mankind.", - "In a galaxy of dark magic and horror, in an age of hopelessness, four marines and an outlaw combat evil.", - "In a mysterious city of illusion, in an age of computerization, a witch-hunter tries to find the ultimate weapon and opposes an evil corporation.", - "In a damned kingdom of technology, a virtual reality programmer and a fighter seek fame.", - "In a hellish kingdom, in an age of blasphemy and blasphemy, an astrologer searches for fame.", - "In a damned world of devils, an alien and a ranger quest for love and oppose a syndicate of demons.", - "In a cursed galaxy, in a time of pain, seven librarians hope to avert the apocalypse.", - "In a crime-infested galaxy, in an era of hopelessness and panic, three champions and a grave robber try to solve the ultimate crime.", + 'In an ominous universe, a botanist opposes terrorism.', + 'In a demon-haunted city, in an age of lies and hate, a physicist tries to find an ancient treasure and battles a mob of aliens.', + 'In a land of corruption, two cyberneticists and a dungeon delver search for freedom.', + 'In an evil empire of horror, two rangers battle the forces of hell.', + 'In a lost city, in an age of sorcery, a librarian quests for revenge.', + 'In a universe of illusions and danger, three time travellers and an adventurer search for justice.', + 'In a forgotten universe of barbarism, in an era of terror and mysticism, a virtual reality programmer and a spy try to find vengance and battle crime.', + 'In a universe of demons, in an era of insanity and ghosts, three bodyguards and a bodyguard try to find vengance.', + 'In a kingdom of corruption and battle, seven artificial intelligences try to save the last living fertile woman.', + 'In a universe of virutal reality and agony, in an age of ghosts and ghosts, a fortune-teller and a wanderer try to avert the apocalypse.', + 'In a crime-infested kingdom, three martial artists quest for the truth and oppose evil.', + 'In a terrifying universe of lost souls, in an era of lost souls, eight dancers fight evil.', + 'In a galaxy of confusion and insanity, three martial artists and a duke battle a mob of psychics.', + 'In an amazing kingdom, a wizard and a secretary hope to prevent the destruction of mankind.', + 'In a kingdom of deception, a reporter searches for fame.', + 'In a hellish empire, a swordswoman and a duke try to find the ultimate weapon and battle a conspiracy.', + 'In an evil galaxy of illusion, in a time of technology and misery, seven psychiatrists battle crime.', + 'In a dark city of confusion, three swordswomen and a singer battle lawlessness.', + 'In an ominous empire, in an age of hate, two philosophers and a student try to find justice and battle a mob of mages intent on stealing the souls of the innocent.', + 'In a kingdom of panic, six adventurers oppose lawlessness.', + 'In a land of dreams and hopelessness, three hackers and a cyborg search for justice.', + 'On a planet of mysticism, three travelers and a fire fighter quest for the ultimate weapon and oppose evil.', + 'In a wicked universe, five seers fight lawlessness.', + 'In a kingdom of death, in an era of illusion and blood, four colonists search for fame.', + 'In an amazing kingdom, in an age of sorcery and lost souls, eight space pirates quest for freedom.' ]; -module.exports = () => { - return `{{coverPage }} +module.exports = ()=>{ + return dedent` + {{coverPage }} -![image](https://i.imgur.com/Mqx8Vf7.png) {} + {{logo ![](/assets/naturalCritLogo.svg)}} -# ${_.sample(titles)} -___ + # ${_.sample(titles)} + ## ${_.sample(subtitles)} + __________ -{{banner 5e HOMEBREW}} + {{banner HOMEBREW}} -{{footnote - ${_.sample(footnote)} -}} + {{footnote + ${_.sample(footnote)} + }} -\\page`; + ![background image](https://i.imgur.com/Mqx8Vf7.png) + + \page`; }; diff --git a/themes/V3/5ePHB/style.less b/themes/V3/5ePHB/style.less index b6351e3f0..61c9900fe 100644 --- a/themes/V3/5ePHB/style.less +++ b/themes/V3/5ePHB/style.less @@ -681,90 +681,106 @@ h5 + table{ // * COVER PAGE // *****************************/ .page:has(.coverPage) { - columns:1; - text-align:center; + columns : 1; + text-align : center; &:after { all: unset; } - .coverPage { - background-image: @naturalCritLogo; - background-position: center; - background-size: 2cm; - background-repeat: no-repeat; - position: absolute; - top: .6cm; - left: 0; - display: block; - height: 2.38cm; - width: 100%; - filter: drop-shadow(0 0 0.075cm black); + .logo { + position : absolute; + top : 0.5cm; + left : 0; + right : 0; + filter : drop-shadow(0 0 0.075cm black); + img { + height : 2cm; + width : 100%; + } } - img { - position: absolute; - bottom: 0; - left: 0; - height: 100%; - min-width: 100%; - z-index: -1; + .columnWrapper > p img { + position : absolute; + bottom : 0; + left : 0; + height : 100%; + min-width : 100%; + z-index : -1; } h1 { - --shadow-x0: #000 0px 0px 0.1cm; - --shadow-x1: var(--shadow-x0), var(--shadow-x0), var(--shadow-x0); - --shadow-x2: var(--shadow-x1), var(--shadow-x1), var(--shadow-x1); - --shadow-x3: var(--shadow-x2), var(--shadow-x2), var(--shadow-x2); - text-shadow: var(--shadow-x3), var(--shadow-x3), var(--shadow-x3); - text-transform: uppercase; - display:block; - margin-top:2.12cm; - color: white; - font-family: NodestoCapsCondensed; - font-size: 2.245cm; - line-height: 0.85em; + --shadow-x0 : #000 0px 0px 0.1cm; + --shadow-x1 : var(--shadow-x0), var(--shadow-x0), var(--shadow-x0); + --shadow-x2 : var(--shadow-x1), var(--shadow-x1), var(--shadow-x1); + --shadow-x3 : var(--shadow-x2), var(--shadow-x2), var(--shadow-x2); + text-shadow : var(--shadow-x3), var(--shadow-x3), var(--shadow-x3); + text-transform : uppercase; + font-weight : normal; + display : block; + margin-top : 1.2cm; + margin-bottom : 0; + color : white; + font-family : NodestoCapsCondensed; + font-size : 2.245cm; + line-height : 0.85em; + } + h2 { + --shadow-x0 : #000 0px 0px 2.5px; + --shadow-x1 : var(--shadow-x0), var(--shadow-x0), var(--shadow-x0); + --shadow-x2 : var(--shadow-x1), var(--shadow-x1), var(--shadow-x1); + --shadow-x3 : var(--shadow-x2), var(--shadow-x2), var(--shadow-x2); + text-shadow : var(--shadow-x3), var(--shadow-x3), var(--shadow-x3); + font-family : NodestoCapsCondensed; + font-weight : normal; + font-size : 0.85cm; + letter-spacing : 0.1cm; + color : white; } hr { - display:block; - position: relative; - top: 0.2cm; - background-image: @horizontalRule; - background-size: 100% 100%; - visibility: visible; - height: 0.5cm; - width: 12cm; - border: none; - margin: auto; - filter: drop-shadow(0 0 0.075cm black); + display : block; + position : relative; + background-image : @horizontalRule; + background-size : 100% 100%; + visibility : visible; + height : 0.5cm; + width : 12cm; + border : none; + margin : auto; + filter : drop-shadow(0 0 3px black); } .banner { - filter: drop-shadow(0 0 0.13cm #000); - position: absolute; - left: 0; - bottom: 4.2cm; - background-image: url('/assets/coverPageBanner.svg'); - height: 1.7cm; - width: 9.67cm; - color:white; - font-family: NodestoCapsCondensed; - font-weight: normal; - font-size: 1cm; - letter-spacing: 0.014cm; - text-align: left; - padding-left:1cm; - line-height:2em; + filter : drop-shadow(2px 2px 2px #000); + position : absolute; + left : 0; + bottom : 4.2cm; + background-image : url('/assets/coverPageBanner.svg'); + height : 1.7cm; + width : 10.5cm; + color : white; + font-family : NodestoCapsCondensed; + font-weight : normal; + font-size : 1cm; + letter-spacing : 0.014cm; + text-align : left; + padding-left : 1cm; + display : flex; + justify-content : center; + flex-direction : column; + padding-top : 0.1cm; } .footnote { - --shadow-x0: #000 0px 0px 0.05cm; - --shadow-x1: var(--shadow-x0), var(--shadow-x0), var(--shadow-x0); - --shadow-x2: var(--shadow-x1), var(--shadow-x1), var(--shadow-x1); - text-shadow: var(--shadow-x2), var(--shadow-x2), var(--shadow-x2); - position: absolute; - text-align: center; - color: white; - font-size: 0.535cm; - bottom: 1.9cm; - left: 50%; - translate:-50% 0; - width: 70%; - font-family: Alkalami; + --shadow-x0 : #000 0px 0px 0.05cm; + --shadow-x1 : var(--shadow-x0), var(--shadow-x0), var(--shadow-x0); + --shadow-x2 : var(--shadow-x1), var(--shadow-x1), var(--shadow-x1); + text-shadow : var(--shadow-x2), var(--shadow-x2), var(--shadow-x2); + position : absolute; + text-align : center; + color : white; + font-size : 0.496cm; + bottom : 1.3cm; + left : 0; + right : 0; + margin-left : auto; + margin-right : auto; + width : 70%; + font-family : Overpass; } }