diff --git a/fonts/OpenSans-Bold.ttf b/fonts/OpenSans-Bold.ttf new file mode 100644 index 00000000..efdd5e84 Binary files /dev/null and b/fonts/OpenSans-Bold.ttf differ diff --git a/fonts/OpenSans-BoldItalic.ttf b/fonts/OpenSans-BoldItalic.ttf new file mode 100644 index 00000000..9bf9b4e9 Binary files /dev/null and b/fonts/OpenSans-BoldItalic.ttf differ diff --git a/fonts/OpenSans-Italic.ttf b/fonts/OpenSans-Italic.ttf new file mode 100644 index 00000000..11785670 Binary files /dev/null and b/fonts/OpenSans-Italic.ttf differ diff --git a/gulpfile.js b/gulpfile.js index 509c8d30..96969383 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -5,13 +5,18 @@ const less = require('gulp-less'); /* Compile LESS /* ----------------------------------------- */ -const SW5E_LESS = ["less/*.less"]; +const SW5E_LESS = ["less/**/*.less"]; function compileLESS() { - return gulp.src("less/sw5e.less") + return gulp.src("less/original/sw5e.less") .pipe(less()) .pipe(gulp.dest("./")) } -const css = gulp.series(compileLESS); +function compileMORE() { + return gulp.src("less/update/sw5e-update.less") + .pipe(less()) + .pipe(gulp.dest("./")) +} +const css = gulp.series(compileLESS, compileMORE); /* ----------------------------------------- */ /* Watch Updates diff --git a/lang/en.json b/lang/en.json index 13d613f4..b1716695 100644 --- a/lang/en.json +++ b/lang/en.json @@ -579,6 +579,7 @@ "SW5E.RollSituationalBonus": "Situational Bonus?", "SW5E.Save": "Save", "SW5E.SheetClassCharacter": "Default Character Sheet", +"SW5E.SheetClassCharacterOld": "Old Character Sheet", "SW5E.SheetClassNPC": "Default NPC Sheet", "SW5E.SheetClassVehicle": "Default Vehicle Sheet", "SW5E.SheetClassItem": "Default Item Sheet", diff --git a/less/actors.less b/less/original/actors.less similarity index 100% rename from less/actors.less rename to less/original/actors.less diff --git a/less/apps.less b/less/original/apps.less similarity index 100% rename from less/apps.less rename to less/original/apps.less diff --git a/less/character.less b/less/original/character.less similarity index 100% rename from less/character.less rename to less/original/character.less diff --git a/less/chat.less b/less/original/chat.less similarity index 100% rename from less/chat.less rename to less/original/chat.less diff --git a/less/items.less b/less/original/items.less similarity index 100% rename from less/items.less rename to less/original/items.less diff --git a/less/npc.less b/less/original/npc.less similarity index 100% rename from less/npc.less rename to less/original/npc.less diff --git a/less/sw5e.less b/less/original/sw5e.less similarity index 100% rename from less/sw5e.less rename to less/original/sw5e.less diff --git a/less/variables.less b/less/original/variables.less similarity index 100% rename from less/variables.less rename to less/original/variables.less diff --git a/less/vehicle.less b/less/original/vehicle.less similarity index 100% rename from less/vehicle.less rename to less/original/vehicle.less diff --git a/less/update/actor.less b/less/update/actor.less new file mode 100644 index 00000000..e69de29b diff --git a/less/update/components/forms.less b/less/update/components/forms.less new file mode 100644 index 00000000..eecb1a5a --- /dev/null +++ b/less/update/components/forms.less @@ -0,0 +1,107 @@ +input[type="text"], input[type="number"], input[type="password"], input[type="date"], input[type="time"], select, textarea { + border: 1px solid @colorLightGray; + border-radius: 4px; + color: @colorBlack; + transition: all 0.3s; + &:hover { + border-color: @colorGray; + box-shadow: none; + } + &:focus { + border-color: @colorRed; + box-shadow: none; + } +} +input[type=range] { + -webkit-appearance: none; /* Hides the slider so that custom slider can be made */ + width: 100%; /* Specific width is required for Firefox. */ + background: transparent; /* Otherwise white in Chrome */ + +} + +input[type=range]::-webkit-slider-thumb{ + -webkit-appearance: none; + background: @colorRed; + width: 12px; + height: 12px; + border-radius: 32px; + cursor: pointer; + box-shadow: none; +} +input[type=range]::-moz-range-thumb{ + -webkit-appearance: none; + background: @colorRed; + width: 12px; + height: 12px; + border-radius: 32px; + cursor: pointer; + box-shadow: none; +} +input[type=range]::-ms-thumb { + -webkit-appearance: none; + background: @colorRed; + width: 12px; + height: 12px; + border-radius: 32px; + cursor: pointer; + box-shadow: none; +} + +input[type=range]::-webkit-slider-runnable-track { + width: 100%; + height: 6px; + cursor: pointer; + background: @colorLightBlue; + border-radius: 4px; + border: 1px solid @colorBlue; + box-shadow: none; +} +input[type=range]:focus::-webkit-slider-runnable-track { + background: @colorBlue; +} +input[type=range]::-moz-range-track { + width: 100%; + height: 6px; + cursor: pointer; + background: @colorLightBlue; + border-radius: 4px; + border: 1px solid @colorBlue; + box-shadow: none; +} +input[type=range]::-ms-track { + width: 100%; + height: 6px; + cursor: pointer; + background: @colorLightBlue; + border-radius: 4px; + border: 1px solid @colorBlue; + box-shadow: none; +} +input[type=range]:focus { + outline: none; /* Removes the blue border. You should probably do some kind of focus styling for accessibility reasons though. */ +} + +input[type=range]::-ms-track { + width: 100%; + cursor: pointer; + + /* Hides the slider so custom styles can be added */ + background: transparent; + border-color: transparent; + color: transparent; +} + +button { + .openSans(13px, 700); + background: @colorRed; + color: white; + text-align: center; + border: none; + border-radius: 4px; + cursor: pointer; + transition: all 0.3s; + &:hover, &:focus { + box-shadow: none; + background: lighten(@colorRed, 5); + } +} \ No newline at end of file diff --git a/less/update/components/sidebar.less b/less/update/components/sidebar.less new file mode 100644 index 00000000..8c673ba3 --- /dev/null +++ b/less/update/components/sidebar.less @@ -0,0 +1,495 @@ +#sidebar { + border: none; //1px solid @colorBlue; +} + +#sidebar-tabs { + border: none; + box-shadow: none; + background: white; + .dropShadow1(); + & > .collapse { + color: @colorRed; + } + .item { + font-size: 16px; + } + .item.active { + color: @colorRed; + border: none; + border-bottom: 3px solid @colorRed; + box-shadow: none; + background: none; + text-shadow: none; + } +} + +/*----------- +** Chat Tab +-----------*/ + +#chat-log { + .chat-message { + background: white; + border: none; + border-radius: 4px; + margin-bottom: 8px; + .dropShadow1(); + & > header { + color: @colorRed; + border-bottom: 2px solid @colorBlue; + margin-bottom: 4px; + span { + color: @colorBlack; + } + } + + } +} +.notification-pip { + color: @colorBlue; + text-shadow: none; + +} + +.sw5e.chat-card { + font-size: 13px; + + .card-header { + padding: 0; + border: none; + + img { + flex: 0 0 36px; + margin-right: 4px; + } + + h3 { + flex: 1; + margin: 0; + line-height: 36px; + .russoOne(17px); + color: @colorBlack; + &:hover { + color: @colorBlack; + text-shadow: none; + } + } + } + + .card-content { + margin: 4px 0; + + h3 { + font-size: 12px; + margin: 0; + font-weight: bold; + } + + > * { + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + } + } + + .card-buttons { + margin: 4px 0; + + span { + display: block; + line-height: 28px; + text-align: center; + border: 1px solid @colorLightGray; + } + + button { + .openSans(13px, 700); + padding: 4px 0; + height: auto; + line-height: 1.6; + margin: 4px 0; + background: @colorRed; + border: none; + border-radius: 4px; + &:hover, &:focus { + background-color: lighten(@colorRed, 5); + box-shadow: none; + } + } + } + + .card-footer { + padding: 4px 0 0; + border-top: 1px solid @colorLightBlue; + + span { + border-right: 2px groove #FFF; + padding: 0 4px 0 0; + font-size: 10px; + + &:last-child { + border-right: none; + padding-right: 0; + } + } + } +} +.dice-roll { + +.dice-formula { + background: none; + border: none; +} +.dice-total { + background: @colorPaleBlue; + border: 1px solid @colorBlue; + border-radius: 0; + padding: 4px 0; + box-shadow: 0 0 12px rgba(@colorBlue,.5); + &.success { + color: inherit; + background: #c7d0c0; + border: 1px solid #006c00; + } + &.failure { + color: inherit; + background: #ffdddd; + border: 1px solid #6e0000; + } + &.critical { + color: @colorGreen; + background: @colorPaleGreen; + box-shadow: 0 0 12px rgba(@colorGreen,.5); + } + &.fumble { + color: red; + } +} +} +#chat-controls { + padding-top: 4px; + label { + color: @colorBlack; + } + +} +#chat-form textarea { + background: white; + &:focus { + box-shadow: none; + outline: none; + } +} + +/*----------- +** Combat Tab +-----------*/ +#combat { +#combat-round { + color: @colorRed; + border-bottom: 2px solid @colorBlue; + .encounters { + h4 { + color: @colorRed; + } + a { + color: @colorGray; + &:hover { + color: @colorRed; + } + } + } +} + #combat-tracker { + //padding-top: 4px; + li.combatant { + padding: 4px 0; + color: @colorBlack; + background: none; + &:nth-child(even) { + background: rgba(@colorPaleBlue, 0.5); + } + h4 { + color: @colorBlack; + text-shadow: none; + } + .roll { + background: none; + color: @colorGray; + &::before { + content: "\f6cf"; + .fontAwesome(); + font-size: 28px; + } + &:hover { + color: @colorRed; + } + } + .combatant-control { + color: @colorLightGray; + text-shadow: none; + &.active { + color: @colorDarkGray; + } + } + .token-resource { + color: @colorGray; + border-right: 1px solid @colorLightGray; + } + .initiative { + text-shadow: none; + } + &.active { + color: @colorBlue; + .initiative, h4 { + color: @colorBlue; + } + } + &.hidden { + opacity: 0.5; + color: @colorBlack; + } + } + } + #combat-controls { + padding-top: 0; + border-top: 1px solid @colorBlue; + } +} + +/* +** Folders +*/ +.sidebar-tab { +.directory-header { + margin-bottom: 4px; + .header-search { + position: relative; + i.fa-search { + position: absolute; + left: 8px; + color: @colorBlue; + } + input { + text-align: left; + padding-left: 22px; + background: white; + &:focus { + box-shadow: none; + } + } + } +} +.subdirectory { + border: none; + margin-left: 8px; + background: white; + min-height: 8px; + .folder { + border-left: 2px solid rgba(@colorBlack, 0.4); + } +} +.directory-list { + padding-bottom: 4px; + li + li { + border-top: 1px solid @colorBlue; + } + .folder { + & > .folder-header { + line-height: default; + padding: 0 0 0 8px; + position: relative; + border: none; + background: white; + h3 { + padding: 8px 4px; + background: white; + color: @colorBlack; + .openSans(13px, 700); + line-height: 1.6; + & > i { + margin-right: 4px; + color: @colorBlue; + } + } + a { + position: absolute; + top: 0; + right: 4px; + height: 100%; + padding: 0 4px; + color: @colorLightGray; + &:hover { + color: @colorRed; + } + i { + margin-top: 12px; + } + + &.create-folder { + right: 28px; + } + } + } + &.collapsed > .folder-header { + background: white; + } + & + .entity { + border-top: 1px solid @colorBlue; + } + } + .directory-item img { + flex: 0 0 32px; + height: 32px; + width: 32px; + align-self: center; + } + .actor, .item, .journal, .table,{ + background: white; + border: none; + .entity-name { + .openSans(13px, 700); + color: @colorBlack; + } + &:nth-child(even) { + background: rgba(@colorPaleBlue, 0.3); + } + } +} +} +#scenes { + .subdirectory { + border-left: none; + } + .scene { + border: none; + border-top: 1px solid @colorBlue; + border-left: 4px solid @colorBlue; + box-shadow: none; + position: relative; + height: 128px; + //margin-bottom: 4px; + & + .scene { + margin-top: 4px; + } + &::after { + content: ''; + display: block; + width: 100%; + height: 99px; + position: absolute; + top: 28px; + left: 0; + box-shadow: 0 0 20px @colorBlue inset; + } + h3 { + .openSans(13px, 700); + text-align: left; + text-shadow: none; + padding: 4px 4px 4px 12px; + background: white; + line-height: 1.6; + position: absolute; + top: 0; + left: 0; + width: 100%; + } + } +} + +#playlists { + .directory-list { + padding: 0 8px; + li.playlist { + padding: 8px; + border-radius: 4px; + background: white; + margin-bottom: 8px; + border-top: inherit; + .dropShadow1(); + .playlist-header { + background: white; + color: @colorRed; + text-decoration: none; + border-bottom: 2px solid @colorBlue; + } + li.sound { + border: none; + color: @colorBlack; + h4 { + .openSans(13px, 400); + } + + } + a.sound-control { + color: @colorRed; + } + } + } + +} +#compendium { + .compendium-entity { + margin: 0 4px; + padding: 8px; + background: white !important; + .dropShadow1(); + border-radius: 4px; + border: none; + &+ .compendium-entity { + margin-top: 4px; + } + h3 { + border: none; + color: @colorRed; + border-bottom: 2px solid @colorBlue; + .russoOne(17px); + padding: 0; + margin-bottom: 4px; + } + ol.compendium-list { + li.compendium-pack { + margin: 0; + padding: 4px; + border: none; + &:nth-child(even) { + background: rgba(@colorPaleBlue, 0.3); + } + .pack-title { + margin: 0; + position: relative; + a { + .openSans(13px, 700); + i { + display: none; + } + } + .status-icons { + top: 4px; + color: @colorLightGray; + font-size: 13px; + } + } + footer.compendium-footer { + color: @colorBlack; + } + } + } + } +} + +#settings { + h2 { + color: @colorRed; + border: none; + border-bottom: 2px solid @colorBlue; + margin: 0 8px; + padding: 0; + } + #game-details, #settings-game, #settings-documentation, #settings-access { + padding: 0 8px; + margin: 0 0 8px; + color: @colorBlack; + } +} \ No newline at end of file diff --git a/less/update/sw5e-update.less b/less/update/sw5e-update.less new file mode 100644 index 00000000..ca8bacef --- /dev/null +++ b/less/update/sw5e-update.less @@ -0,0 +1,104 @@ +@import "variables.less"; + +html { + box-sizing: border-box; +} +*, *:before, *:after { + box-sizing: inherit; +} +// ::-webkit-scrollbar { +// width: 6px; +// height: 6px; +// } +::-webkit-scrollbar-track { + border: 1px solid @colorBlue; + border-radius: 4px; +} +::-webkit-scrollbar-thumb { + outline: none; + border-radius: 4px; + background: @colorBlue; + border: none; +} +:root { + scrollbar-width: thin; + scrollbar-color: @colorBlue @colorPaleBlue; +} + +body { + .openSans(13px, 400); +} + +h1 { + .russoOne(34px); +} +h2 { + .russoOne(27px); +} +h3 { + .russoOne(21px); +} +h4 { + .russoOne(17px); +} +h5, h6 { + .russoOne(13px); +} + +a { + color: @colorRed; + text-decoration: none; + &:hover, &:active { + text-shadow: none; + text-decoration: underline; + } +} + +.app { + background: @sheetBackground; + border: none;// 1px solid @colorBlue; + .dropShadow1(); +} + +#context-menu { + background: none; + border: none; + border-radius: 0; + color: @colorBlack; + padding: 0 8px; + ol.context-items { + background: white; + border-radius: 4px; + border: 1px solid @colorLightGray; + .dropShadow2(); + li.context-item { + &:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; + } + &:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + } + i { + color: @colorBlue; + } + &:hover { + background: @colorRed; + color: white; + text-shadow: none; + cursor: pointer; + i { + color: white; + } + } + & + li { + border-top: 1px solid @colorPaleGray; + } + } + } + + +} +@import "components/forms.less"; +@import "components/sidebar.less"; \ No newline at end of file diff --git a/less/update/variables.less b/less/update/variables.less new file mode 100644 index 00000000..09bfa8f6 --- /dev/null +++ b/less/update/variables.less @@ -0,0 +1,110 @@ + +/* ----------------------------------------- */ +/* Fonts */ +/* ----------------------------------------- */ + +/* russo-one-regular - latin */ +@font-face { + font-family: 'Russo One'; + font-style: normal; + font-weight: 400; + src: url('./fonts/RussoOne.ttf'); +} +@font-face { + font-family: 'Russo One'; + font-style: italic; + font-weight: 400; + src: url('./fonts/RussoOne.ttf'); +} +@font-face { + font-family: 'Russo One'; + font-style: normal; + font-weight: 700; + src: url('./fonts/RussoOne.ttf'); +} +.russoOne(@size: 20px) { + font-family: 'Russo One'; + font-size: @size; + font-weight: 400; +} +/* open-sans-regular - latin */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: url('./fonts/OpenSans-Regular.ttf'); +} +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + src: url('./fonts/OpenSans-Italic.ttf'); +} +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + src: url('./fonts/OpenSans-Bold.ttf'); +} +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 700; + src: url('./fonts/OpenSans-BoldItalic.ttf'); +} +.openSans(@size: 13px, @weight: 400) { + font-family: 'Open Sans'; + font-size: @size; + font-weight: @weight; +} +.fontAwesome() { + font-family: "Font Awesome 5 Free"; + -webkit-font-smoothing: antialiased; + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + font-weight: 900; +} + +/* ----------------------------------------- */ +/* Sheet Styles */ +/* ----------------------------------------- */ + +@colorDark: #191813; +@colorFaint: #c9c7b8; +@colorBeige: #b5b3a4; +@colorTan: #7a7971; +@colorOlive: #4b4a44; +@colorCrimson: #44191A; +@borderGroove: 2px groove #eeede0; +//@sheetBackground: url("ui/parchment.jpg") repeat; + + +//SW5e Colors +@colorBlack: #1C1C1C; +@colorDarkGray: #363636; +@colorGray: #4f4f4f; +@colorLightGray: #828282; +@colorPaleGray: #D6D6D6; +@colorRed: #c40f0f; +@colorPaleRed: #FBF4F4; +@colorLightRed: #F6E1E1; +@colorBlue: #0d99cc; +@colorLightBlue: #7ed6f7; +@colorPaleBlue: #afc6d6; +@colorGreen: #0dce0d; +@colorPaleGreen: #bcdcbe; + +@sheetBackground: linear-gradient(90deg, @colorPaleBlue 0%, @colorPaleGray 30%, @colorPaleGray 70%, @colorPaleBlue); + + +.dropShadow1(){ + box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 1px -2px rgba(0,0,0,0.12), 0 1px 5px 0 rgba(0,0,0,0.2); +} +.dropShadow2() { + box-shadow: 0 4px 5px 0 rgba(0,0,0,0.14), 0 1px 10px 0 rgba(0,0,0,0.12), 0 2px 4px -1px rgba(0,0,0,0.3); +} +.dropShadow3() { + box-shadow: 0 8px 17px 2px rgba(0,0,0,0.14), 0 3px 14px 2px rgba(0,0,0,0.12), 0 5px 5px -3px rgba(0,0,0,0.2); +} \ No newline at end of file diff --git a/module/actor/sheets/base.js b/module/actor/sheets/base.js index 7a3bdc9a..557aba7b 100644 --- a/module/actor/sheets/base.js +++ b/module/actor/sheets/base.js @@ -43,8 +43,8 @@ export default class ActorSheet5e extends ActorSheet { /** @override */ get template() { - if ( !game.user.isGM && this.actor.limited ) return "systems/sw5e/templates/actors/limited-sheet.html"; - return `systems/sw5e/templates/actors/${this.actor.data.type}-sheet.html`; + if ( !game.user.isGM && this.actor.limited ) return "systems/sw5e/templates/actors/oldActor/limited-sheet.html"; + return `systems/sw5e/templates/actors/oldActor/${this.actor.data.type}-sheet.html`; } /* -------------------------------------------- */ diff --git a/module/actor/sheets/newSheet/character.js b/module/actor/sheets/newSheet/character.js new file mode 100644 index 00000000..94ba7625 --- /dev/null +++ b/module/actor/sheets/newSheet/character.js @@ -0,0 +1,626 @@ +import ActorSheet5e from "../base.js"; +import Actor5e from "../../entity.js"; + +/** + * An Actor sheet for player character type actors in the SW5E system. + * Extends the base ActorSheet5e class. + * @type {ActorSheet5e} + */ +export default class ActorSheet5eCharacterNew extends ActorSheet5e { + + get template() { + if (!game.user.isGM && this.actor.limited) return "systems/sw5e/templates/actors/newActor/limited-sheet.html"; + return "systems/sw5e/templates/actors/newActor/character-sheet.html"; + } + /** + * Define default rendering options for the NPC sheet + * @return {Object} + */ + static get defaultOptions() { + + return mergeObject(super.defaultOptions, { + classes: ["swalt", "sw5e", "sheet", "actor", "character"], + blockFavTab: true, + subTabs: null, + width: 800, + tabs: [{ + navSelector: ".root-tabs", + contentSelector: ".sheet-body", + initial: "attributes" + }], + }); + } + + /* -------------------------------------------- */ + + /** + * Add some extra data when rendering the sheet to reduce the amount of logic required within the template. + */ + getData() { + const sheetData = super.getData(); + + // Temporary HP + let hp = sheetData.data.attributes.hp; + if (hp.temp === 0) delete hp.temp; + if (hp.tempmax === 0) delete hp.tempmax; + + // Resources + sheetData["resources"] = ["primary", "secondary", "tertiary"].reduce((arr, r) => { + const res = sheetData.data.resources[r] || {}; + res.name = r; + res.placeholder = game.i18n.localize("SW5E.Resource"+r.titleCase()); + if (res && res.value === 0) delete res.value; + if (res && res.max === 0) delete res.max; + return arr.concat([res]); + }, []); + + // Experience Tracking + sheetData["disableExperience"] = game.settings.get("sw5e", "disableExperienceTracking"); + sheetData["classLabels"] = this.actor.itemTypes.class.map(c => c.name).join(", "); + + // Return data for rendering + return sheetData; + } + + /* -------------------------------------------- */ + + /** + * Organize and classify Owned Items for Character sheets + * @private + */ + _prepareItems(data) { + + // Categorize items as inventory, powerbook, features, and classes + const inventory = { + weapon: { label: "SW5E.ItemTypeWeaponPl", items: [], dataset: {type: "weapon"} }, + equipment: { label: "SW5E.ItemTypeEquipmentPl", items: [], dataset: {type: "equipment"} }, + consumable: { label: "SW5E.ItemTypeConsumablePl", items: [], dataset: {type: "consumable"} }, + tool: { label: "SW5E.ItemTypeToolPl", items: [], dataset: {type: "tool"} }, + backpack: { label: "SW5E.ItemTypeContainerPl", items: [], dataset: {type: "backpack"} }, + loot: { label: "SW5E.ItemTypeLootPl", items: [], dataset: {type: "loot"} } + }; + + // Partition items by category + let [items, powers, feats, classes, species, archetypes, classfeatures, backgrounds, lightsaberforms] = data.items.reduce((arr, item) => { + + // Item details + item.img = item.img || DEFAULT_TOKEN; + item.isStack = Number.isNumeric(item.data.quantity) && (item.data.quantity !== 1); + + // Item usage + item.hasUses = item.data.uses && (item.data.uses.max > 0); + item.isOnCooldown = item.data.recharge && !!item.data.recharge.value && (item.data.recharge.charged === false); + item.isDepleted = item.isOnCooldown && (item.data.uses.per && (item.data.uses.value > 0)); + item.hasTarget = !!item.data.target && !(["none",""].includes(item.data.target.type)); + + // Item toggle state + this._prepareItemToggleState(item); + + // Classify items into types + if ( item.type === "power" ) arr[1].push(item); + else if ( item.type === "feat" ) arr[2].push(item); + else if ( item.type === "class" ) arr[3].push(item); + else if ( item.type === "species" ) arr[4].push(item); + else if ( item.type === "archetype" ) arr[5].push(item); + else if ( item.type === "classfeature" ) arr[6].push(item); + else if ( item.type === "background" ) arr[7].push(item); + else if ( item.type === "lightsaberform" ) arr[8].push(item); + else if ( Object.keys(inventory).includes(item.type ) ) arr[0].push(item); + return arr; + }, [[], [], [], [], [], [], [], [], []]); + + // Apply active item filters + items = this._filterItems(items, this._filters.inventory); + powers = this._filterItems(powers, this._filters.powerbook); + feats = this._filterItems(feats, this._filters.features); + + // Organize items + for ( let i of items ) { + i.data.quantity = i.data.quantity || 0; + i.data.weight = i.data.weight || 0; + i.totalWeight = Math.round(i.data.quantity * i.data.weight * 10) / 10; + inventory[i.type].items.push(i); + } + + // Organize Powerbook and count the number of prepared powers (excluding always, at will, etc...) + const powerbook = this._preparePowerbook(data, powers); + const nPrepared = powers.filter(s => { + return (s.data.level > 0) && (s.data.preparation.mode === "prepared") && s.data.preparation.prepared; + }).length; + + // Organize Features + const features = { + classes: { label: "SW5E.ItemTypeClassPl", items: [], hasActions: false, dataset: {type: "class"}, isClass: true }, + classfeatures: { label: "SW5E.ItemTypeClassFeats", items: [], hasActions: false, dataset: {type: "classfeature"}, isClassfeature: true }, + archetype: { label: "SW5E.ItemTypeArchetype", items: [], hasActions: false, dataset: {type: "archetype"}, isArchetype: true }, + species: { label: "SW5E.ItemTypeSpecies", items: [], hasActions: false, dataset: {type: "species"}, isSpecies: true }, + background: { label: "SW5E.ItemTypeBackground", items: [], hasActions: false, dataset: {type: "background"}, isBackground: true }, + lightsaberform: { label: "SW5E.ItemTypeLightsaberForm", items: [], hasActions: false, dataset: {type: "lightsaberform"}, isLightsaberform: true }, + active: { label: "SW5E.FeatureActive", items: [], hasActions: true, dataset: {type: "feat", "activation.type": "action"} }, + passive: { label: "SW5E.FeaturePassive", items: [], hasActions: false, dataset: {type: "feat"} } + }; + for ( let f of feats ) { + if ( f.data.activation.type ) features.active.items.push(f); + else features.passive.items.push(f); + } + classes.sort((a, b) => b.levels - a.levels); + features.classes.items = classes; + features.classfeatures.items = classfeatures; + features.archetype.items = archetypes; + features.species.items = species; + features.background.items = backgrounds; + features.lightsaberform.items = lightsaberforms; + + // Assign and return + data.inventory = Object.values(inventory); + data.powerbook = powerbook; + data.preparedPowers = nPrepared; + data.features = Object.values(features); + } + + /* -------------------------------------------- */ + + /** + * A helper method to establish the displayed preparation state for an item + * @param {Item} item + * @private + */ + _prepareItemToggleState(item) { + if (item.type === "power") { + const isAlways = getProperty(item.data, "preparation.mode") === "always"; + const isPrepared = getProperty(item.data, "preparation.prepared"); + item.toggleClass = isPrepared ? "active" : ""; + if ( isAlways ) item.toggleClass = "fixed"; + if ( isAlways ) item.toggleTitle = CONFIG.SW5E.powerPreparationModes.always; + else if ( isPrepared ) item.toggleTitle = CONFIG.SW5E.powerPreparationModes.prepared; + else item.toggleTitle = game.i18n.localize("SW5E.PowerUnprepared"); + } + else { + const isActive = getProperty(item.data, "equipped"); + item.toggleClass = isActive ? "active" : ""; + item.toggleTitle = game.i18n.localize(isActive ? "SW5E.Equipped" : "SW5E.Unequipped"); + } + } + + /* -------------------------------------------- */ + /* Event Listeners and Handlers + /* -------------------------------------------- */ + + /** + * Activate event listeners using the prepared sheet HTML + * @param html {HTML} The prepared HTML object ready to be rendered into the DOM + */ + activateListeners(html) { + super.activateListeners(html); + if ( !this.options.editable ) return; + + // Inventory Functions + html.find(".currency-convert").click(this._onConvertCurrency.bind(this)); + + // Item State Toggling + html.find('.item-toggle').click(this._onToggleItem.bind(this)); + + // Short and Long Rest + html.find('.short-rest').click(this._onShortRest.bind(this)); + html.find('.long-rest').click(this._onLongRest.bind(this)); + + // Death saving throws + html.find('.death-save').click(this._onDeathSave.bind(this)); + + // Send Languages to Chat onClick + html.find('[data-options="share-languages"]').click(event => { + event.preventDefault(); + let langs = this.actor.data.data.traits.languages.value.map(l => SW5E.languages[l] || l).join(", "); + let custom = this.actor.data.data.traits.languages.custom; + if (custom) langs += ", " + custom.replace(/;/g, ","); + let content = ` +
+
+ +

Known Languages

+
+
${langs}
+
+ `; + + // Send to Chat + let rollWhisper = null; + let rollBlind = false; + let rollMode = game.settings.get("core", "rollMode"); + if (["gmroll", "blindroll"].includes(rollMode)) rollWhisper = ChatMessage.getWhisperIDs("GM"); + if (rollMode === "blindroll") rollBlind = true; + ChatMessage.create({ + user: game.user._id, + content: content, + speaker: { + actor: this.actor._id, + token: this.actor.token, + alias: this.actor.name + }, + type: CONST.CHAT_MESSAGE_TYPES.OTHER + }); + }); + + // Item Delete Confirmation + html.find('.item-delete').off("click"); + html.find('.item-delete').click(event => { + let li = $(event.currentTarget).parents('.item'); + let itemId = li.attr("data-item-id"); + let item = this.actor.getOwnedItem(itemId); + new Dialog({ + title: `Deleting ${item.data.name}`, + content: `

Are you sure you want to delete ${item.data.name}?

`, + buttons: { + Yes: { + icon: '', + label: 'Yes', + callback: dlg => { + this.actor.deleteOwnedItem(itemId); + } + }, + cancel: { + icon: '', + label: 'No' + }, + }, + default: 'cancel' + }).render(true); + }); + } + + /* -------------------------------------------- */ + + /** + * Handle rolling a death saving throw for the Character + * @param {MouseEvent} event The originating click event + * @private + */ + _onDeathSave(event) { + event.preventDefault(); + return this.actor.rollDeathSave({event: event}); + } + + /* -------------------------------------------- */ + + + /** + * Handle toggling the state of an Owned Item within the Actor + * @param {Event} event The triggering click event + * @private + */ + _onToggleItem(event) { + event.preventDefault(); + const itemId = event.currentTarget.closest(".item").dataset.itemId; + const item = this.actor.getOwnedItem(itemId); + const attr = item.data.type === "power" ? "data.preparation.prepared" : "data.equipped"; + return item.update({[attr]: !getProperty(item.data, attr)}); + } + + /* -------------------------------------------- */ + + /** + * Take a short rest, calling the relevant function on the Actor instance + * @param {Event} event The triggering click event + * @private + */ + async _onShortRest(event) { + event.preventDefault(); + await this._onSubmit(event); + return this.actor.shortRest(); + } + + /* -------------------------------------------- */ + + /** + * Take a long rest, calling the relevant function on the Actor instance + * @param {Event} event The triggering click event + * @private + */ + async _onLongRest(event) { + event.preventDefault(); + await this._onSubmit(event); + return this.actor.longRest(); + } + + /* -------------------------------------------- */ + + /** + * Handle mouse click events to convert currency to the highest possible denomination + * @param {MouseEvent} event The originating click event + * @private + */ + async _onConvertCurrency(event) { + event.preventDefault(); + return Dialog.confirm({ + title: `${game.i18n.localize("SW5E.CurrencyConvert")}`, + content: `

${game.i18n.localize("SW5E.CurrencyConvertHint")}

`, + yes: () => this.actor.convertCurrency() + }); + } + + /* -------------------------------------------- */ + + /** @override */ + async _onDropItemCreate(itemData) { + + // Upgrade the number of class levels a character has and add features + if ( itemData.type === "class" ) { + const cls = this.actor.itemTypes.class.find(c => c.name === itemData.name); + const classWasAlreadyPresent = !!cls; + + // Add new features for class level + if ( !classWasAlreadyPresent ) { + Actor5e.getClassFeatures(itemData).then(features => { + this.actor.createEmbeddedEntity("OwnedItem", features); + }); + } + + // If the actor already has the class, increment the level instead of creating a new item + // then add new features as long as level increases + if ( classWasAlreadyPresent ) { + const lvl = cls.data.data.levels; + const newLvl = Math.min(lvl + 1, 20 + lvl - this.actor.data.data.details.level); + if ( !(lvl === newLvl) ) { + cls.update({"data.levels": newLvl}); + itemData.data.levels = newLvl; + Actor5e.getClassFeatures(itemData).then(features => { + this.actor.createEmbeddedEntity("OwnedItem", features); + }); + } + return + } + } + + super._onDropItemCreate(itemData); + } +} + +async function addFavorites(app, html, data) { + // Thisfunction is adapted for the SwaltSheet from the Favorites Item + // Tab Module created for Foundry VTT - by Felix Müller (Felix#6196 on Discord). + // It is licensed under a Creative Commons Attribution 4.0 International License + // and can be found at https://github.com/syl3r86/favtab. + let favItems = []; + let favFeats = []; + let favPowers = { + 0: { + isCantrip: true, + powers: [] + }, + 1: { + powers: [], + value: data.actor.data.powers.power1.value, + max: data.actor.data.powers.power1.max + }, + 2: { + powers: [], + value: data.actor.data.powers.power2.value, + max: data.actor.data.powers.power2.max + }, + 3: { + powers: [], + value: data.actor.data.powers.power3.value, + max: data.actor.data.powers.power3.max + }, + 4: { + powers: [], + value: data.actor.data.powers.power4.value, + max: data.actor.data.powers.power4.max + }, + 5: { + powers: [], + value: data.actor.data.powers.power5.value, + max: data.actor.data.powers.power5.max + }, + 6: { + powers: [], + value: data.actor.data.powers.power6.value, + max: data.actor.data.powers.power6.max + }, + 7: { + powers: [], + value: data.actor.data.powers.power7.value, + max: data.actor.data.powers.power7.max + }, + 8: { + powers: [], + value: data.actor.data.powers.power8.value, + max: data.actor.data.powers.power8.max + }, + 9: { + powers: [], + value: data.actor.data.powers.power9.value, + max: data.actor.data.powers.power9.max + } + } + + let powerCount = 0 + let items = data.actor.items; + for (let item of items) { + if (item.type == "class") continue; + if (item.flags.favtab === undefined || item.flags.favtab.isFavourite === undefined) { + item.flags.favtab = { + isFavourite: false + }; + } + let isFav = item.flags.favtab.isFavourite; + if (app.options.editable) { + let favBtn = $(``); + favBtn.click(ev => { + app.actor.getOwnedItem(item._id).update({ + "flags.favtab.isFavourite": !item.flags.favtab.isFavourite + }); + }); + html.find(`.item[data-item-id="${item._id}"]`).find('.item-controls').prepend(favBtn); + } + + if (isFav) { + item.powerComps = ""; + if (item.data.components) { + let comps = item.data.components; + let v = (comps.vocal) ? "V" : ""; + let s = (comps.somatic) ? "S" : ""; + let m = (comps.material) ? "M" : ""; + let c = (comps.concentration) ? true : false; + let r = (comps.ritual) ? true : false; + item.powerComps = `${v}${s}${m}`; + item.powerCon = c; + item.powerRit = r; + } + + item.editable = app.options.editable; + switch (item.type) { + case 'feat': + if (item.flags.favtab.sort === undefined) { + item.flags.favtab.sort = (favFeats.count + 1) * 100000; // initial sort key if not present + } + favFeats.push(item); + break; + case 'power': + if (item.data.preparation.mode) { + item.powerPrepMode = ` (${CONFIG.SW5E.powerPreparationModes[item.data.preparation.mode]})` + } + if (item.data.level) { + favPowers[item.data.level].powers.push(item); + } else { + favPowers[0].powers.push(item); + } + powerCount++; + break; + default: + if (item.flags.favtab.sort === undefined) { + item.flags.favtab.sort = (favItems.count + 1) * 100000; // initial sort key if not present + } + favItems.push(item); + break; + } + } + } + + // Alter core CSS to fit new button + // if (app.options.editable) { + // html.find('.powerbook .item-controls').css('flex', '0 0 88px'); + // html.find('.inventory .item-controls, .features .item-controls').css('flex', '0 0 90px'); + // html.find('.favourite .item-controls').css('flex', '0 0 22px'); + // } + + let tabContainer = html.find('.favtabtarget'); + data.favItems = favItems.length > 0 ? favItems.sort((a, b) => (a.flags.favtab.sort) - (b.flags.favtab.sort)) : false; + data.favFeats = favFeats.length > 0 ? favFeats.sort((a, b) => (a.flags.favtab.sort) - (b.flags.favtab.sort)) : false; + data.favPowers = powerCount > 0 ? favPowers : false; + data.editable = app.options.editable; + + await loadTemplates(['systems/sw5e/templates/actors/newActor/item.hbs']); + let favtabHtml = $(await renderTemplate('systems/sw5e/templates/actors/newActor/template.hbs', data)); + favtabHtml.find('.item-name h4').click(event => app._onItemSummary(event)); + + if (app.options.editable) { + favtabHtml.find('.item-image').click(ev => app._onItemRoll(ev)); + let handler = ev => app._onDragItemStart(ev); + favtabHtml.find('.item').each((i, li) => { + if (li.classList.contains("inventory-header")) return; + li.setAttribute("draggable", true); + li.addEventListener("dragstart", handler, false); + }); + //favtabHtml.find('.item-toggle').click(event => app._onToggleItem(event)); + favtabHtml.find('.item-edit').click(ev => { + let itemId = $(ev.target).parents('.item')[0].dataset.itemId; + app.actor.getOwnedItem(itemId).sheet.render(true); + }); + favtabHtml.find('.item-fav').click(ev => { + let itemId = $(ev.target).parents('.item')[0].dataset.itemId; + let val = !app.actor.getOwnedItem(itemId).data.flags.favtab.isFavourite + app.actor.getOwnedItem(itemId).update({ + "flags.favtab.isFavourite": val + }); + }); + + // Sorting + favtabHtml.find('.item').on('drop', ev => { + ev.preventDefault(); + ev.stopPropagation(); + + let dropData = JSON.parse(ev.originalEvent.dataTransfer.getData('text/plain')); + // if (dropData.actorId !== app.actor.id || dropData.data.type === 'power') return; + if (dropData.actorId !== app.actor.id) return; + let list = null; + if (dropData.data.type === 'feat') list = favFeats; + else list = favItems; + let dragSource = list.find(i => i._id === dropData.data._id); + let siblings = list.filter(i => i._id !== dropData.data._id); + let targetId = ev.target.closest('.item').dataset.itemId; + let dragTarget = siblings.find(s => s._id === targetId); + + if (dragTarget === undefined) return; + const sortUpdates = SortingHelpers.performIntegerSort(dragSource, { + target: dragTarget, + siblings: siblings, + sortKey: 'flags.favtab.sort' + }); + const updateData = sortUpdates.map(u => { + const update = u.update; + update._id = u.target._id; + return update; + }); + app.actor.updateEmbeddedEntity("OwnedItem", updateData); + }); + } + tabContainer.append(favtabHtml); + + // try { + // if (game.modules.get("betterrolls5e") && game.modules.get("betterrolls5e").active) BetterRolls.addItemContent(app.object, favtabHtml, ".item .item-name h4", ".item-properties", ".item > .rollable div"); + // } + // catch (err) { + // // Better Rolls not found! + // } + Hooks.callAll("renderedSwaltSheet", app, html, data); +} +async function addSubTabs(app, html, data) { + if(data.options.subTabs == null) { + //let subTabs = []; //{subgroup: '', target: '', active: false} + data.options.subTabs = {}; + html.find('[data-subgroup-selection] [data-subgroup]').each((idx, el) => { + let subgroup = el.getAttribute('data-subgroup'); + let target = el.getAttribute('data-target'); + let targetObj = {target: target, active: el.classList.contains("active")} + if(data.options.subTabs.hasOwnProperty(subgroup)) { + data.options.subTabs[subgroup].push(targetObj); + } else { + data.options.subTabs[subgroup] = []; + data.options.subTabs[subgroup].push(targetObj); + } + }) + } + + for(const group in data.options.subTabs) { + data.options.subTabs[group].forEach(tab => { + if(tab.active) { + html.find(`[data-subgroup=${group}][data-target=${tab.target}]`).addClass('active'); + } else { + html.find(`[data-subgroup=${group}][data-target=${tab.target}]`).removeClass('active'); + } + }) + } + + html.find('[data-subgroup-selection]').children().on('click', event => { + let subgroup = event.target.closest('[data-subgroup]').getAttribute('data-subgroup'); + let target = event.target.closest('[data-target]').getAttribute('data-target'); + html.find(`[data-subgroup=${subgroup}]`).removeClass('active'); + html.find(`[data-subgroup=${subgroup}][data-target=${target}]`).addClass('active'); + let tabId = data.options.subTabs[subgroup].find(tab => { + return tab.target == target + }); + data.options.subTabs[subgroup].map(el => { + if(el.target == target) { + el.active = true; + } else { + el.active = false; + } + return el; + }) + + }) + + + +} \ No newline at end of file diff --git a/module/actor/sheets/character.js b/module/actor/sheets/oldSheets/character.js similarity index 99% rename from module/actor/sheets/character.js rename to module/actor/sheets/oldSheets/character.js index 76e813d6..3817fc8f 100644 --- a/module/actor/sheets/character.js +++ b/module/actor/sheets/oldSheets/character.js @@ -1,5 +1,5 @@ -import ActorSheet5e from "./base.js"; -import Actor5e from "../entity.js"; +import ActorSheet5e from "../base.js"; +import Actor5e from "../../entity.js"; /** * An Actor sheet for player character type actors in the SW5E system. diff --git a/module/actor/sheets/npc.js b/module/actor/sheets/oldSheets/npc.js similarity index 98% rename from module/actor/sheets/npc.js rename to module/actor/sheets/oldSheets/npc.js index 023b5ce4..d5b6bff8 100644 --- a/module/actor/sheets/npc.js +++ b/module/actor/sheets/oldSheets/npc.js @@ -1,4 +1,4 @@ -import ActorSheet5e from "../sheets/base.js"; +import ActorSheet5e from "../base.js"; /** * An Actor sheet for NPC type characters in the SW5E system. diff --git a/module/actor/sheets/vehicle.js b/module/actor/sheets/oldSheets/vehicle.js similarity index 99% rename from module/actor/sheets/vehicle.js rename to module/actor/sheets/oldSheets/vehicle.js index 4fc5cdde..099cf606 100644 --- a/module/actor/sheets/vehicle.js +++ b/module/actor/sheets/oldSheets/vehicle.js @@ -1,4 +1,4 @@ -import ActorSheet5e from "./base.js"; +import ActorSheet5e from "../base.js"; /** * An Actor sheet for Vehicle type actors. diff --git a/module/templates.js b/module/templates.js index e14f1cd8..b477dfa9 100644 --- a/module/templates.js +++ b/module/templates.js @@ -9,12 +9,22 @@ export const preloadHandlebarsTemplates = async function() { const templatePaths = [ // Actor Sheet Partials - "systems/sw5e/templates/actors/parts/actor-traits.html", - "systems/sw5e/templates/actors/parts/actor-inventory.html", - "systems/sw5e/templates/actors/parts/actor-features.html", - "systems/sw5e/templates/actors/parts/actor-powerbook.html", - "systems/sw5e/templates/actors/parts/actor-effects.html", + "systems/sw5e/templates/actors/oldActor/parts/actor-traits.html", + "systems/sw5e/templates/actors/oldActor/parts/actor-inventory.html", + "systems/sw5e/templates/actors/oldActor/parts/actor-features.html", + "systems/sw5e/templates/actors/oldActor/parts/actor-powerbook.html", + "systems/sw5e/templates/actors/oldActor/parts/actor-effects.html", + + "systems/sw5e/templates/actors/newActor/parts/swalt-biography.html", + "systems/sw5e/templates/actors/newActor/parts/swalt-core.html", + "systems/sw5e/templates/actors/newActor/parts/swalt-features.html", + "systems/sw5e/templates/actors/newActor/parts/swalt-inventory.html", + "systems/sw5e/templates/actors/newActor/parts/swalt-notes.html", + "systems/sw5e/templates/actors/newActor/parts/swalt-powerbook.html", + "systems/sw5e/templates/actors/newActor/parts/swalt-resources.html", + "systems/sw5e/templates/actors/newActor/parts/swalt-traits.html", + // Item Sheet Partials "systems/sw5e/templates/items/parts/item-action.html", "systems/sw5e/templates/items/parts/item-activation.html", diff --git a/sw5e copy.css b/sw5e copy.css new file mode 100644 index 00000000..8417ca66 --- /dev/null +++ b/sw5e copy.css @@ -0,0 +1,1787 @@ +/* Deprecated vars */ +/* ----------------------------------------- */ +/* Fonts */ +/* ----------------------------------------- */ + +/* russo-one-regular - latin */ +@font-face { + font-family: 'Russo One'; + font-style: normal; + font-weight: 400; + src: url('./fonts/RussoOne.ttf'); +} +/* bungee-inline-regular - latin */ +@font-face { + font-family: 'Bungee Inline'; + font-style: normal; + font-weight: 400; + src: url('./fonts/BungeeInline.ttf'); +} +/* open-sans-regular - latin */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: url('./fonts/OpenSans-Regular.ttf'); +} +body { + width: 100vw; + height: 100vh; + margin: 0; + overflow: hidden; + background-image: url('./ui/SW5e-logo.svg'); + background-repeat: no-repeat; + background-size: cover; + font-family: 'Open Sans'; + font-size: 14px; + box-shadow: 0 0 50vw #000 inset; +} +/* ----------------------------------------- */ +/* Sheet Styles */ +/* ----------------------------------------- */ +/* ----------------------------------------- */ +/* Flexbox */ +/* ----------------------------------------- */ +.flexrow { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: flex-start; +} +.flexrow > * { + flex: 1; +} +.flexrow .flex1 { + flex: 1; +} +.flexrow .flex2 { + flex: 2; +} +.flexrow .flex3 { + flex: 3; +} +.flexrow .flex4 { + flex: 4; +} +.flexcol { + display: flex; + flex-direction: column; + flex-wrap: nowrap; +} +.flexcol > * { + flex: 1; +} +.flexcol .flex1 { + flex: 1; +} +.flexcol .flex2 { + flex: 2; +} +.flexcol .flex3 { + flex: 3; +} +.flexcol .flex4 { + flex: 4; +} +/* ----------------------------------------- */ +/* All SW5e Apps */ +/* ----------------------------------------- */ +.sw5e { + /* ----------------------------------------- */ + /* Element Styles */ + /* ----------------------------------------- */ + /* Form Groups */ + /* Tags */ +} +.sw5e .window-content { + background: url("ui/parchment.webp") repeat; + font-size: 13px; + color: #191813; +} +.sw5e input[type="text"] +.sw5e select { + height: calc(100% - 2px); + border: 1px solid #7a7971; + background: rgba(0, 0, 0, 0.05); + color: #191813; +} +.sw5e input[type="text"]:hover, +.sw5e input[type="text"]:focus { + border: 1px solid #111; + box-shadow: 0 0 8px red; +} +.sw5e input:disabled, +.sw5e select:disabled, +.sw5e textarea:disabled { + color: #4b4a44; +} +.sw5e input:disabled:hover, +.sw5e select:disabled:hover, +.sw5e textarea:disabled:hover, +.sw5e input:disabled:focus, +.sw5e select:disabled:focus, +.sw5e textarea:disabled:focus { + box-shadow: none !important; + border: 1px solid transparent !important; + outline: none !important; +} +.sw5e button { + background: rgba(0, 0, 0, 0.1); + border: 2px groove #eeede0; +} +.sw5e label.checkbox { + flex: auto; + margin: 0; + line-height: 20px; + font-size: 10px; + text-align: right; +} +.sw5e label.checkbox input[type="checkbox"] { + height: auto; + margin: 0 5px 0; + position: relative; + top: 3px; +} +.sw5e .form-group label { + flex: 2; + color: #4b4a44; + font-weight: bold; +} +.sw5e .form-group .form-fields { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: flex-start; +} +.sw5e .form-group .form-fields > * { + flex: 1; +} +.sw5e .form-group .form-fields .flex1 { + flex: 1; +} +.sw5e .form-group .form-fields .flex2 { + flex: 2; +} +.sw5e .form-group .form-fields .flex3 { + flex: 3; +} +.sw5e .form-group .form-fields .flex4 { + flex: 4; +} +.sw5e .form-group .form-fields > * { + margin: 0 3px 0 0; +} +.sw5e .form-group .form-fields > *:last-child { + margin-right: 0; +} +.sw5e .form-group.stacked label { + flex: 0 0 100%; + margin: 0; +} +.sw5e .form-group.stacked label.checkbox { + flex: auto; + text-align: left; +} +.sw5e .form-header { + margin: 0 0 0.25em 0; + padding: 0 2px; + font-family: "Russo One"; + font-size: 8px; + font-size: 12px; + border-top: 2px groove #eeede0; + border-bottom: 2px groove #eeede0; +} +.sw5e .tag { + display: inline-block; + margin: 0 2px 0 0; + padding: 0 3px; + font-size: 10px; + line-height: 16px; + border: 1px solid #999; + border-radius: 3px; + background: rgba(0, 0, 0, 0.05); +} +/* ----------------------------------------- */ +/* Entity Sheets Specifically */ +/* ----------------------------------------- */ +.sw5e.sheet { + /* ----------------------------------------- */ + /* Element Styles */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* TinyMCE */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Sheet Header */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Sheet Navigation */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Sheet Body */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* List Filters */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Trait Lists */ + /* ----------------------------------------- */ +} +.sw5e.sheet .window-content { + overflow-y: hidden; + padding: 5px; + background: url("ui/parchment.webp") repeat; + font-size: 13px; + color: #191813; +} +.sw5e.sheet .window-content form { + height: 100%; + overflow: hidden; +} +.sw5e.sheet .window-content .tab { + height: 100%; + overflow-y: auto; + align-content: flex-start; +} +.sw5e.sheet input[type="text"] { + background: none; + border: 1px solid transparent; +} +.sw5e.sheet input[type="text"]:hover, +.sw5e.sheet input[type="text"]:focus { + border: 1px solid #111; +} +.sw5e.sheet select { + flex: 1; + font-size: 12px; + height: 22px; + background: transparent; +} +.sw5e.sheet .editable .rollable:hover { + color: #000; + text-shadow: 0 0 10px red; + cursor: pointer; +} +.sw5e.sheet .editor { + height: 100%; +} +.sw5e.sheet .editor .tox-toolbar-overlord, +.sw5e.sheet .editor .tox-toolbar__primary { + background: none; +} +.sw5e.sheet .sheet-header { + flex: 0 0 100px; + border-bottom: 2px groove #eeede0; + font-family: "Russo One"; + font-size: 14px; + /* Character Name */ + /* Profile Image */ + /* Header Summary Details */ +} +.sw5e.sheet .sheet-header h1 { + flex: 2; + border-bottom: none; + height: 60px; + margin: 0; + padding: 5px; +} +.sw5e.sheet .sheet-header h1 input { + height: 50px; + font-size: 22px; + text-transform: uppercase; +} +.sw5e.sheet .sheet-header img.profile { + flex: 0 0 100px; + max-width: 100px; + height: 100px; + object-fit: cover; + border: none; + border-right: 2px groove #eeede0; +} +.sw5e.sheet .sheet-header .summary { + flex: 0 0 100%; + height: 40px; + margin: 0; + padding: 0; + list-style: none; + border-top: 2px groove #eeede0; + border-bottom: none; +} +.sw5e.sheet .sheet-header .summary li { + width: 33.33%; + float: left; + height: 34px; + margin: 2px 0; + padding: 0 3px; + border-right: 2px groove #eeede0; + line-height: 34px; + color: #4b4a44; +} +.sw5e.sheet .sheet-header .summary li:last-child { + border-right: none; +} +.sw5e.sheet .sheet-navigation { + flex: 0 0 30px; + margin-bottom: 5px; + font-family: "Russo One"; + font-size: 12px; +} +.sw5e.sheet .sheet-navigation .item { + height: 30px; + line-height: 32px; + margin: 0 24px; + border-bottom: 3px solid #b5b3a4; +} +.sw5e.sheet .sheet-navigation .item.active { + border-bottom: 3px solid #44191A; +} +.sw5e.sheet .sheet-body { + flex: 1; + overflow: hidden; + font-family: "Open Sans"; +} +.sw5e.sheet .sheet-body h1 { + font-family: "Russo One"; + font-size: 22px; + text-transform: uppercase; + color: #c40f0f; + border: 0px; +} +.sw5e.sheet .sheet-body h2 { + font-family: "Russo One"; + font-size: 18px; + text-transform: uppercase; + color: #c40f0f; +} +.sw5e.sheet .sheet-body th { + font-family: "Russo One"; + text-transform: uppercase; + color: #c40f0f; +} +.sw5e.sheet .sheet-body tr:nth-child(odd) { + background-color: #c9d6db; +} +.sw5e.sheet .sheet-body tr:nth-child(even) { + background-color: #bdc8cc; +} +.sw5e.sheet .sheet-body .smalltable table { + width: 200px; + border: 0px; + margin: 0.5em 0.5em; +} +.sw5e.sheet .sheet-body .smalltable td:nth-child(odd) { + width: 50px; + margin: 0.5em 0.5em; +} +.sw5e.sheet .sheet-body .smalltable td:nth-child(even) { + width: 150px; + margin: 0.5em 0.5em; + padding: 0px 10px 0px 10px; +} +.sw5e.sheet .sheet-body .smalltable thead { + border-bottom: 0px; +} +.sw5e.sheet .sheet-body .smalltable th { + color: #000000; + text-shadow: none; + border-bottom: 0px; + background-color: #bdc8cc; + text-transform: none; + font-weight: bold; + font-family: 'Open Sans'; +} +.sw5e.sheet .sheet-body .medtable table { + width: 500px; + border: 0px; + margin: 0.5em 0.5em; +} +.sw5e.sheet .sheet-body .medtable td:nth-child(odd) { + width: 50px; + margin: 0.5em 0.5em; +} +.sw5e.sheet .sheet-body .medtable td:nth-child(even) { + width: 450px; + margin: 0.5em 0.5em; + padding: 0px 10px 0px 10px; +} +.sw5e.sheet .sheet-body .medtable thead { + border-bottom: 0px; +} +.sw5e.sheet .sheet-body .medtable th { + color: #000000; + text-shadow: none; + border-bottom: 0px; + background-color: #bdc8cc; + text-transform: none; + font-weight: bold; + font-family: 'Open Sans'; +} +.sw5e.sheet .sheet-body .classtable blockquote { + border-left: 0px; + border-right: 0px; +} +.sw5e.sheet .sheet-body .classtable table { + width: 100%; + border-collapse: collapse; + background: rgba(0, 0, 0, 0.05); + border-left: 0px; + border-right: 0px; + border-top: 0; + border-bottom: 0; + margin: 0.5em 0; + font-style: normal; + font-weight: normal; + text-shadow: none; +} +.sw5e.sheet .sheet-body .classtable thead { + color: #000000; + text-shadow: none; + border-bottom: 0px; + background-color: #bdc8cc; + text-transform: none; + font-style: normal; + font-weight: normal; + font-family: 'Open Sans'; +} +.sw5e.sheet .sheet-body .classtable th { + color: #000000; + text-shadow: none; + border-bottom: 0px; + background-color: #bdc8cc; + text-transform: none; + font-style: normal; + font-weight: bold; + font-family: 'Open Sans'; +} +.sw5e.sheet .filter-list { + list-style: none; + margin: 0; + padding: 0; + line-height: 16px; +} +.sw5e.sheet .filter-list .filter-title { + flex: 3; +} +.sw5e.sheet .filter-list .filter-item { + text-align: center; + font-size: 12px; + margin: 0 6px; + border-bottom: 3px solid #b5b3a4; + white-space: nowrap; +} +.sw5e.sheet .filter-list .filter-item:hover { + text-shadow: 0 0 4px red; + border-bottom: 3px solid #7a7971; +} +.sw5e.sheet .filter-list .filter-item.active { + border-bottom: 3px solid #44191A; +} +.sw5e.sheet .trait-selector { + flex: 0 0 16px; + padding: 2px 0; + color: #999; + font-size: 10px; +} +.sw5e.sheet .traits-list { + line-height: 20px; + list-style: none; + margin: 0; + padding: 0; + text-align: right; +} +/* ----------------------------------------- */ +/* Trait Selector +/* ----------------------------------------- */ +#trait-selector .trait-list { + list-style: none; + margin: 0; + padding: 0; +} +#trait-selector input[type="text"] { + height: 24px; + margin: 2px; +} +.sw5e.sheet.actor { + /* ----------------------------------------- */ + /* Sheet Header */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* General Styles */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Attributes */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Ability Scores */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Skills */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Statuses */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Traits */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Inventory Lists */ + /* ----------------------------------------- */ + /* Inventory List Filters */ + /* ----------------------------------------- */ + /* Powerbook */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* TinyMCE */ + /* ----------------------------------------- */ +} +.sw5e.sheet.actor .sheet-header .charlevel { + flex: 0 0 160px; + height: 60px; + margin: 0; + padding: 5px; + text-align: right; +} +.sw5e.sheet.actor .sheet-header .charlevel .level { + width: 100%; + height: 30px; + font-size: 18px; + line-height: 30px; +} +.sw5e.sheet.actor .sheet-header .charlevel .level label { + display: inline; + font-size: 18px; + text-align: right; +} +.sw5e.sheet.actor .sheet-header .charlevel .level input { + display: inline; + width: 36px; + font-size: 18px; + text-align: center; +} +.sw5e.sheet.actor .sheet-header .charlevel .level.noxp { + margin-top: 10px; +} +.sw5e.sheet.actor .sheet-header .charlevel .level.noxp > label { + font-size: 32px; +} +.sw5e.sheet.actor .sheet-header .charlevel .level.noxp > input { + font-size: 18px; + flex: 0 0 40px; + height: 44px; +} +.sw5e.sheet.actor .sheet-header .charlevel .experience { + width: 100%; + height: 20px; + padding-right: 5px; + font-size: 16px; + color: #4b4a44; +} +.sw5e.sheet.actor .attributes input.temphp { + width: 48%; +} +.sw5e.sheet.actor h4.box-title { + line-height: 16px; + margin: 4px 8px 2px; + font-size: 14px; + border-bottom: 1px solid #b5b3a4; +} +.sw5e.sheet.actor ul.attributes { + list-style: none; + margin: 5px 0 0; + padding: 0; +} +.sw5e.sheet.actor ul.attributes li.attribute { + height: 70px; + margin: 0 5px; + border: 2px groove #eeede0; + border-radius: 4px; + font-family: "Russo One"; + font-size: 12px; + text-align: center; +} +.sw5e.sheet.actor ul.attributes li.attribute .attribute-name { + flex: 0 0 18px; +} +.sw5e.sheet.actor ul.attributes li.attribute .attribute-value { + height: 28px; + line-height: 28px; +} +.sw5e.sheet.actor ul.attributes li.attribute .attribute-value input { + display: inline; + max-width: 80%; + height: 28px; + margin: 0; + font-size: 14px; +} +.sw5e.sheet.actor ul.attributes li.attribute .attribute-value span.sep { + display: inline; + position: relative; + top: 2px; + font-size: 28px; + color: #7a7971; +} +.sw5e.sheet.actor ul.attributes li.attribute .attribute-value.multiple input { + max-width: 33%; +} +.sw5e.sheet.actor ul.attributes li.attribute .attribute-footer { + flex: 0 0 18px; + margin-top: -1px; + line-height: 18px; + font-family: "Signika", "Palatino Linotype", serif; + font-size: 12px; +} +.sw5e.sheet.actor .ability-scores { + flex: 0 0 100%; + list-style: none; + margin: 0; + padding: 0; + font-family: "Russo One"; + font-size: 8px; +} +.sw5e.sheet.actor .ability-scores .ability { + height: 70px; + margin: 0 5px; + text-align: center; + border: 2px groove #eeede0; + border-radius: 3px; + /* Hide modifier box on hover */ +} +.sw5e.sheet.actor .ability-scores .ability input.ability-score { + height: 30px; + width: 50px; + margin: 0 auto; + line-height: 32px; + font-size: 16px; +} +.sw5e.sheet.actor .ability-scores .ability .ability-modifiers { + height: 24px; + margin: -10px 0 0; +} +.sw5e.sheet.actor .ability-scores .ability .ability-modifiers span.ability-mod, +.sw5e.sheet.actor .ability-scores .ability .ability-modifiers span.ability-save { + flex: 0 0 24px; + height: 24px; + border-top: 2px groove #eeede0; +} +.sw5e.sheet.actor .ability-scores .ability .ability-modifiers span.ability-mod { + border-right: 2px groove #eeede0; +} +.sw5e.sheet.actor .ability-scores .ability .ability-modifiers .ability-proficiency { + line-height: 30px; +} +.sw5e.sheet.actor .ability-scores .ability .ability-modifiers span.ability-save { + border-left: 2px groove #eeede0; +} +.sw5e.sheet.actor .ability-scores .ability input.ability-score:hover + .ability-modifiers { + visibility: hidden; +} +.sw5e.sheet.actor .proficiency-toggle { + color: #b5b3a4; + font-size: 12px; +} +.sw5e.sheet.actor .proficient .proficiency-toggle { + color: #4b4a44; +} +.sw5e.sheet.actor .locked .proficiency-toggle { + color: #b5b3a4; + text-shadow: none; + cursor: default; +} +.sw5e.sheet.actor ul.skills-list { + flex: 0 0 192px; + list-style: none; + margin: 5px 5px 0; + padding: 2px 2px 0; + border: 2px groove #eeede0; + border-radius: 3px; +} +.sw5e.sheet.actor ul.skills-list li.skill { + height: 22px; + padding: 3px 0; +} +.sw5e.sheet.actor ul.skills-list li.skill h4 { + flex: 1px; + margin: 0; + font-size: 11px; + line-height: 18px; +} +.sw5e.sheet.actor ul.skills-list li.skill .skill-proficiency { + flex: 0 0 16px; + line-height: 18px; +} +.sw5e.sheet.actor ul.skills-list li.skill .skill-ability { + flex: 0 0 26px; +} +.sw5e.sheet.actor ul.skills-list li.skill .skill-mod { + flex: 0 0 20px; +} +.sw5e.sheet.actor ul.skills-list li.skill .skill-passive { + flex: 0 0 26px; + text-align: center; + color: #7a7971; +} +.sw5e.sheet.actor .counters { + flex: 0 0 100%; + border-bottom: 2px groove #eeede0; + margin-bottom: 5px; +} +.sw5e.sheet.actor .counters .counter { + padding: 0 3px; + line-height: 32px; +} +.sw5e.sheet.actor .counters .counter h4 { + flex: auto; + margin: 0; + font-family: "Russo One"; + font-size: 14px; + font-size: 10px; +} +.sw5e.sheet.actor .counters .counter .counter-value { + flex: 0 0 50px; + text-align: right; +} +.sw5e.sheet.actor .counters .counter .counter-value > * { + display: inline; +} +.sw5e.sheet.actor .counters .counter input[type="text"] { + height: 20px; + max-width: 20px; + margin: 0; + padding: 0; + text-align: center; +} +.sw5e.sheet.actor .counters .counter input[type="checkbox"] { + position: relative; + margin: 0; + top: 6px; +} +.sw5e.sheet.actor .counters .counter span.sep { + margin: 0 -2px; + font-size: 12px; +} +.sw5e.sheet.actor .traits { + margin: 0 5px; +} +.sw5e.sheet.actor .traits .form-group, +.sw5e.sheet.actor .traits .form-group-stacked { + margin: 0 0 4px 0; + justify-content: space-between; +} +.sw5e.sheet.actor .traits .configure-flags { + flex: 1; +} +.sw5e.sheet.actor .traits .actor-size { + flex: 0 0 150px; +} +.sw5e.sheet.actor .traits label { + flex: 0 0 150px; + line-height: 20px; + font-weight: bold; + margin: 0; +} +.sw5e.sheet.actor .traits input { + text-align: right; +} +.sw5e.sheet.actor .traits i.fas { + float: right; + margin-right: 3px; + text-align: right; + color: #999; +} +.sw5e.sheet.actor .traits i.fas:hover { + color: #111; + text-shadow: 0 0 10px red; +} +.sw5e.sheet.actor .traits .inactive { + color: #7a7971; +} +.sw5e.sheet.actor .tab.features, +.sw5e.sheet.actor .tab.inventory, +.sw5e.sheet.actor .tab.powerbook { + overflow-y: hidden; +} +.sw5e.sheet.actor .inventory-filters { + margin: 0 8px; + flex: 0 0 20px; +} +.sw5e.sheet.actor .inventory-filters h3, +.sw5e.sheet.actor .inventory-filters .filter-title { + font-family: "Russo One"; + font-size: 10px; + color: #4b4a44; + font-size: 12px; + margin: 0; +} +.sw5e.sheet.actor .inventory-filters.powerbook-filters { + flex: 0 0 40px; +} +.sw5e.sheet.actor .inventory-filters .currency { + list-style: none; + margin: 4px 0 8px; + padding: 0; + font-size: 12px; +} +.sw5e.sheet.actor .inventory-filters .currency label { + flex: 0; + margin-left: 8px; + text-align: right; + line-height: 20px; + color: #7a7971; +} +.sw5e.sheet.actor .inventory-filters .currency input[type="text"] { + flex: 0 0 48px; + text-align: center; + margin-left: 8px; + border-bottom: 2px groove #eeede0; +} +.sw5e.sheet.actor .inventory-list { + list-style: none; + margin: 0; + padding: 0 5px; + overflow-y: auto; +} +.sw5e.sheet.actor .inventory-list .item { + line-height: 30px; + padding: 0 2px; + border-bottom: 1px solid #c9c7b8; +} +.sw5e.sheet.actor .inventory-list .item:last-child { + border-bottom: none; +} +.sw5e.sheet.actor .inventory-list .item .item-name { + cursor: pointer; + max-height: 30px; + overflow: hidden; +} +.sw5e.sheet.actor .inventory-list .item .item-name .item-image { + flex: 0 0 30px; + background-size: 30px; + margin-right: 5px; +} +.sw5e.sheet.actor .inventory-list .item .item-name h4 { + margin: 0; + white-space: nowrap; + overflow-x: hidden; +} +.sw5e.sheet.actor .inventory-list .item .item-name.rollable .item-image:hover { + background-image: url("/icons/svg/d20-black.svg") !important; +} +.sw5e.sheet.actor .inventory-list .item .item-name.rollable:hover .item-image { + background-image: url("/icons/svg/d20-grey.svg") !important; +} +.sw5e.sheet.actor .inventory-list .item .item-name i.attuned { + color: #7a7971; +} +.sw5e.sheet.actor .inventory-list .item .item-uses input { + width: 24px; + text-align: center; +} +.sw5e.sheet.actor .inventory-list .item .item-properties { + margin-top: 3px; +} +.sw5e.sheet.actor .inventory-list .item .item-recharge { + flex: 0 0 80px; + text-align: right; + font-size: 11px; + color: #7a7971; +} +.sw5e.sheet.actor .inventory-list .inventory-header { + margin: 2px 0; + padding: 0; + background: rgba(0, 0, 0, 0.05); + border: 2px groove #eeede0; + font-weight: bold; + line-height: 24px; +} +.sw5e.sheet.actor .inventory-list .inventory-header h3 { + margin: 0 -5px 0 0; + padding-left: 5px; + font-size: 13px; + font-weight: bold; +} +.sw5e.sheet.actor .inventory-list .inventory-header .item-controls a.item-create { + flex: 0 0 100%; +} +.sw5e.sheet.actor .inventory-list .item-detail { + flex: 0 0 70px; + font-size: 12px; + color: #7a7971; + text-align: center; + border-right: 1px solid #c9c7b8; +} +.sw5e.sheet.actor .inventory-list .item-detail:last-child { + border-right: none; +} +.sw5e.sheet.actor .inventory-list .item-detail.item-action { + flex: 0 0 100px; +} +.sw5e.sheet.actor .inventory-list .item-weight { + flex: 0 0 60px; + border-left: 1px solid #c9c7b8; + border-right: 1px solid #c9c7b8; +} +.sw5e.sheet.actor .inventory-list .item-list { + list-style: none; + margin: 0; + padding: 0; +} +.sw5e.sheet.actor .inventory-list .item-controls { + flex: 0 0 44px; + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: flex-start; + justify-content: flex-end; +} +.sw5e.sheet.actor .inventory-list .item-controls > * { + flex: 1; +} +.sw5e.sheet.actor .inventory-list .item-controls .flex1 { + flex: 1; +} +.sw5e.sheet.actor .inventory-list .item-controls .flex2 { + flex: 2; +} +.sw5e.sheet.actor .inventory-list .item-controls .flex3 { + flex: 3; +} +.sw5e.sheet.actor .inventory-list .item-controls .flex4 { + flex: 4; +} +.sw5e.sheet.actor .inventory-list .item-controls a { + flex: 0 0 22px; + font-size: 12px; + text-align: center; + color: #7a7971; +} +.sw5e.sheet.actor .inventory-list .item-summary { + flex: 0 0 100%; + font-size: 12px; + line-height: 16px; + padding: 0.25em 0.5em; + border-top: 1px solid #c9c7b8; +} +.sw5e.sheet.actor .powercasting-ability h3, +.sw5e.sheet.actor .pact-slots h3 { + flex: none; + margin-right: 5px; +} +.sw5e.sheet.actor .powercasting-ability input, +.sw5e.sheet.actor .pact-slots input, +.sw5e.sheet.actor .powercasting-ability span, +.sw5e.sheet.actor .pact-slots span { + flex: 0 0 32px; + text-align: center; +} +.sw5e.sheet.actor .powercasting-ability select, +.sw5e.sheet.actor .pact-slots select { + margin: 0 5px; + flex: 0 0 150px; +} +.sw5e.sheet.actor .powercasting-ability h3.power-dc, +.sw5e.sheet.actor .pact-slots h3.power-dc { + flex: 1; + text-align: right; +} +.sw5e.sheet.actor .pact-slots { + align-items: center; +} +.sw5e.sheet.actor .power-slots, +.sw5e.sheet.actor .power-comps { + flex: 0 0 72px; + padding-right: 5px; + text-align: right; + font-size: 12px; + color: #7a7971; + border-right: 1px solid #c9c7b8; +} +.sw5e.sheet.actor .power-slots input, +.sw5e.sheet.actor .power-slots span.sep { + display: inline; + max-width: 20px; + text-align: center; +} +.sw5e.sheet.actor .power-uses { + padding-right: 8px; + text-align: right !important; +} +.sw5e.sheet.actor .power-school, +.sw5e.sheet.actor .power-action, +.sw5e.sheet.actor .power-target { + flex: 0 0 100px; + font-size: 12px; + color: #7a7971; + text-align: center; + border-right: 1px solid #c9c7b8; +} +.sw5e.sheet.actor .power-component { + line-height: 14px; +} +.sw5e.sheet.actor .power-component.C, +.sw5e.sheet.actor .power-component.R { + display: inline-block; + text-align: center; + padding-top: 1px; + width: 16px; + color: #c9c7b8; + background: rgba(0, 0, 0, 0.4); + border: 1px solid transparent; + border-radius: 8px; +} +.sw5e.sheet.actor .powerbook-empty .item-controls { + flex: 1; +} +.sw5e.sheet.actor .editor { + padding: 0 8px; +} +.sw5e.sheet.item { + min-height: 520px; + min-width: 700px; + /* ----------------------------------------- */ + /* Sheet Header */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Item Details Form */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Item Actions */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Item Actions */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Loot Sheet (No Tabs) */ + /* ----------------------------------------- */ +} +.sw5e.sheet.item .sheet-header img.profile { + border: 2px solid #000; +} +.sw5e.sheet.item .sheet-header .item-subtitle { + flex: 1 0 80px; + height: 60px; + margin: 0; + padding: 5px; + text-align: right; + color: #7a7971; +} +.sw5e.sheet.item .sheet-header .item-subtitle .item-type { + font-size: 16px; + line-height: 26px; + margin: 0; +} +.sw5e.sheet.item .sheet-header .item-subtitle .item-status { + font-size: 16px; + line-height: 24px; +} +.sw5e.sheet.item .sheet-navigation { + margin-bottom: 5px; +} +.sw5e.sheet.item .sheet-navigation .item { + font-size: 14px; +} +.sw5e.sheet.item .sheet-body { + overflow: hidden; + font-family: "Open Sans"; +} +.sw5e.sheet.item .sheet-body h2 { + font-family: "Russo One"; + font-size: 18px; + border-bottom: 2px solid #0d99cc; +} +.sw5e.sheet.item .sheet-body h3 { + font-family: "Russo One"; + color: #c40f0f; + text-transform: uppercase; +} +.sw5e.sheet.item .sheet-body .tab { + padding: 0 5px; + overflow: hidden auto; +} +.sw5e.sheet.item .sheet-body .item-properties { + flex: 0 0 120px; + margin: 5px 5px 5px 0; + padding-right: 5px; + border-right: 2px groove #eeede0; +} +.sw5e.sheet.item .sheet-body .item-properties .form-group { + margin: 0; +} +.sw5e.sheet.item .sheet-body .item-properties .form-group label { + line-height: 20px; +} +.sw5e.sheet.item .sheet-body .item-properties .form-group input { + text-align: right; +} +.sw5e.sheet.item .sheet-body .item-properties .properties-list { + list-style: none; + margin: 0; + padding: 0; +} +.sw5e.sheet.item .sheet-body .item-properties .properties-list li { + margin: 3px 0; + padding: 0 2px; + background: rgba(0, 0, 0, 0.05); + border: 2px groove #eeede0; + text-align: center; + font-size: 12px; + line-height: 18px; +} +.sw5e.sheet.item .details input[type="text"], +.sw5e.sheet.item .details select { + height: 24px; + border: 1px solid #7a7971; + background: rgba(0, 0, 0, 0.05); +} +.sw5e.sheet.item .details .form-group span { + text-align: center; + line-height: 24px; +} +.sw5e.sheet.item .details .form-group.input-select select { + flex: 1.8; +} +.sw5e.sheet.item .details .form-group.input-select-select select { + flex: 1.5; +} +.sw5e.sheet.item .details .form-group.uses-per input { + flex: 1; +} +.sw5e.sheet.item .details .form-group.uses-per span { + flex: 0 0 16px; +} +.sw5e.sheet.item .details .form-group.uses-per select { + flex: 3; +} +.sw5e.sheet.item .details span.sep { + flex: 0 0 8px; +} +.sw5e.sheet.item .details .prepared { + flex: 1.3 !important; + text-align: right; + padding-right: 10px; +} +.sw5e.sheet.item .details .power-materials { + flex: 0 0 100%; + margin: 0.25em 0; + justify-content: flex-end; +} +.sw5e.sheet.item .details .power-materials label { + flex: 0 0 64px; + text-align: right; + margin-right: 5px; + font-size: 12px; + line-height: 24px; +} +.sw5e.sheet.item .details .power-materials input[type="text"] { + flex: 0 0 48px; + margin-right: 10px; +} +.sw5e.sheet.item h4.damage-header { + margin: 0; + padding: 0; + font-weight: bold; + line-height: 24px; + color: #4b4a44; +} +.sw5e.sheet.item .damage-parts { + list-style: none; + margin: 0; + padding: 0; +} +.sw5e.sheet.item .damage-parts .damage-part { + flex: 0 0 100%; + padding: 0; +} +.sw5e.sheet.item .damage-parts .damage-part input { + flex: 3; +} +.sw5e.sheet.item .damage-parts .damage-part select { + margin-left: 5px; + flex: 1; +} +.sw5e.sheet.item .damage-control { + width: 18px; + flex: 0 0 18px; + line-height: 24px; + float: right; + text-align: right; + color: #7a7971; +} + +.sw5e.sheet.item h4.armorproperties-header { + margin: 0; + padding: 0; + font-weight: bold; + line-height: 24px; + color: #4b4a44; +} +.sw5e.sheet.item .armorproperties-parts { + list-style: none; + margin: 0; + padding: 0; +} +.sw5e.sheet.item .armorproperties-parts .armorproperties-part { + flex: 0 0 100%; + padding: 0; +} +.sw5e.sheet.item .armorproperties-parts .armorproperties-part input { + flex: 3; +} +.sw5e.sheet.item .armorproperties-parts .armorproperties-part select { + margin-left: 5px; + flex: 1; +} +.sw5e.sheet.item .armorproperties-control { + width: 18px; + flex: 0 0 18px; + line-height: 24px; + float: right; + text-align: right; + color: #7a7971; + +} + +.sw5e.sheet.item h4.weaponproperties-header { + margin: 0; + padding: 0; + font-weight: bold; + line-height: 24px; + color: #4b4a44; +} +.sw5e.sheet.item .weaponproperties-parts { + list-style: none; + margin: 0; + padding: 0; +} +.sw5e.sheet.item .weaponproperties-parts .weaponproperties-part { + flex: 0 0 100%; + padding: 0; +} +.sw5e.sheet.item .weaponproperties-parts .weaponproperties-part input { + flex: 3; +} +.sw5e.sheet.item .weaponproperties-parts .weaponproperties-part select { + margin-left: 5px; + flex: 1; +} +.sw5e.sheet.item .weaponproperties-control { + width: 18px; + flex: 0 0 18px; + line-height: 24px; + float: right; + text-align: right; + color: #7a7971; +} + +.sw5e.sheet.item .recharge span { + flex: 0 0 80px; +} +.sw5e.sheet.item .recharge label.checkbox { + flex: 0 0 80px; + text-align: right; +} +.sw5e.sheet.item .weapon-properties label.checkbox { + flex: 0 0 98px; +} +.sw5e.sheet.item .loot-header { + margin-bottom: 10px; +} +.sw5e.sheet.item blockquote { + box-sizing: border-box; + font-family: 'Open Sans'; + margin-bottom: 1em; + padding: 5px 10px; + background-color: #bdc8cc; + border: 0px solid #0d99cc; + border-spacing: 0em; + border-image: none; + box-shadow: 0px 0px 20px rgba(13, 153, 204, 0.5); + border-top: 0.1em solid #0d99cc; + border-bottom: 0.1em solid #0d99cc; + border-left: 0.1em solid #0d99cc; + border-right: 0.1em solid #0d99cc; + color: #000000; + font-size: 1em; +} + +.sw5e.sheet.item blockquote h3 { + font-family: 'Russo One'; + color: #000000 !important; +} +/* ----------------------------------------- */ +/* Chat Cards +/* ----------------------------------------- */ +.sw5e.chat-card { + font-style: normal; + font-size: 12px; +} +.sw5e.chat-card .card-header { + padding: 3px 0; + border-top: 2px groove #FFF; + border-bottom: 2px groove #FFF; +} +.sw5e.chat-card .card-header img { + flex: 0 0 36px; + margin-right: 5px; +} +.sw5e.chat-card .card-header h3 { + flex: 1; + margin: 0; + line-height: 36px; + font-family: "Russo One"; + font-size: 10px; + color: #4b4a44; +} +.sw5e.chat-card .card-header h3:hover { + color: #111; + text-shadow: 0 0 10px red; +} +.sw5e.chat-card .card-content { + margin: 5px 0; +} +.sw5e.chat-card .card-content h3 { + font-size: 12px; + margin: 0; + font-weight: bold; +} +.sw5e.chat-card .card-content > * { + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; +} +.sw5e.chat-card .card-buttons { + margin: 5px 0; +} +.sw5e.chat-card .card-buttons span { + display: block; + line-height: 28px; + text-align: center; + border: 1px solid #CCC; +} +.sw5e.chat-card .card-buttons button { + font-size: 12px; + height: 24px; + line-height: 20px; + margin: 2px 0; +} +.sw5e.chat-card .card-footer { + padding: 3px 0 0; + border-top: 2px groove #FFF; +} +.sw5e.chat-card .card-footer span { + border-right: 2px groove #FFF; + padding: 0 5px 0 0; + font-size: 10px; +} +.sw5e.chat-card .card-footer span:last-child { + border-right: none; + padding-right: 0; +} +.dice-roll .dice-total.success { + color: inherit; + background: #c7d0c0; + border: 1px solid #006c00; +} +.dice-roll .dice-total.failure { + color: inherit; + background: #ffdddd; + border: 1px solid #6e0000; +} +.dice-roll .dice-total.critical { + color: green; +} +.dice-roll .dice-total.fumble { + color: red; +} +/* ----------------------------------------- */ +/* Basic Structure */ +/* ----------------------------------------- */ +.sw5e.sheet.actor.character { + min-width: 680px; + min-height: 736px; + /* ----------------------------------------- */ + /* Sheet Header */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Sheet Body */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Inventory */ + /* ----------------------------------------- */ + /* Encumbrance Bar */ + /* ----------------------------------------- */ + /* Item Controls */ + /* ----------------------------------------- */ +} +.sw5e.sheet.actor.character .sheet-header img.profile { + flex: 0 0 180px; + max-width: 180px; + height: 180px; +} +.sw5e.sheet.actor.character .sheet-header .charlevel { + flex: 0 0 180px; + padding: 0 5px 2px; +} +.sw5e.sheet.actor.character .sheet-header .charlevel .level { + height: 28px; +} +.sw5e.sheet.actor.character .sheet-header .charlevel .experience input[type="text"] { + width: 100px; +} +.sw5e.sheet.actor.character .sheet-header .charlevel .xpbar { + width: 100%; + flex: 0 0 8px; + background: #666; + border: 1px solid #000; + border-radius: 3px; +} +.sw5e.sheet.actor.character .sheet-header .charlevel .xpbar .bar { + height: 4px; + margin: 1px; + display: block; + background: #afebff; + border: 1px solid #000; + border-radius: 2px; +} +.sw5e.sheet.actor.character .sheet-header .summary { + border-bottom: 2px groove #eeede0; +} +.sw5e.sheet.actor.character .sheet-header .attributes { + height: 80px; + margin: 0; +} +.sw5e.sheet.actor.character .sheet-header .attributes .attribute { + height: 80px; + margin: 0; + border: none; + border-right: 2px groove #eeede0; + border-radius: 0; +} +.sw5e.sheet.actor.character .sheet-header .attributes .attribute:last-child { + border-right: none; +} +.sw5e.sheet.actor.character .sheet-header .attributes .attribute .attribute-value { + margin: 5px 0 0; + height: 32px; + line-height: 32px; +} +.sw5e.sheet.actor.character .sheet-header .attributes .attribute .attribute-name { + margin-top: 6px; +} +.sw5e.sheet.actor.character .sheet-header .attributes .attribute .attribute-footer { + margin-bottom: 2px; +} +.sw5e.sheet.actor.character .sheet-header .attributes a.rest { + border: 1px solid #b5b3a4; + border-radius: 2px; + background: rgba(0, 0, 0, 0.05); + padding: 1px 3px; + margin: 0 6px; +} +.sw5e.sheet.actor.character .sheet-header .attributes .hit-dice { + font-size: 16px; +} +.sw5e.sheet.actor.character .attributes .resource .attribute-name { + margin: 0 8px; +} +.sw5e.sheet.actor.character .attributes .resource .attribute-name input[type="text"] { + height: 20px; + margin: 2px 0 -2px; + line-height: 24px; +} +.sw5e.sheet.actor.character .attributes .resource label.checkbox { + margin: 0 3px; +} +.sw5e.sheet.actor.character .attributes .resource label.checkbox input[type="checkbox"] { + transform: scale(1.2); +} +.sw5e.sheet.actor.character .attributes .initiative .attribute-footer input { + width: 32px; +} +.sw5e.sheet.actor.character ul.skills-list { + flex: 0 0 212px; +} +.sw5e.sheet.actor.character ul.skills-list li.skill { + padding: 3px; +} +.sw5e.sheet.actor.character ul.skills-list li.skill h4 { + flex: 1px; + margin: 0; + font-size: 13px; +} +.sw5e.sheet.actor.character .counters .death-saves { + flex: 2; +} +.sw5e.sheet.actor.character .counters .death-saves .counter-value { + flex: 0 0 90px; +} +.sw5e.sheet.actor.character .item-detail.player-class { + flex: 0 0 180px; + text-align: right; + padding-right: 10px; +} +.sw5e.sheet.actor.character .encumbrance { + flex: 0 0 12px; + background: #7a7971; + margin: 1px 15px 0 1px; + border: 1px solid #191813; + border-radius: 3px; + position: relative; +} +.sw5e.sheet.actor.character .encumbrance .encumbrance-bar { + position: absolute; + top: 1px; + left: 1px; + background: #6c8aa5; + height: 8px; + border: 1px solid #cde4ff; + border-radius: 2px; +} +.sw5e.sheet.actor.character .encumbrance .encumbrance-label { + height: 10px; + padding: 0 5px; + position: absolute; + top: 0; + right: 0; + font-size: 13px; + line-height: 12px; + text-align: right; + color: #EEE; + text-shadow: 0 0 5px #000; +} +.sw5e.sheet.actor.character .encumbrance .encumbrance-breakpoint { + display: block; + position: absolute; +} +.sw5e.sheet.actor.character .encumbrance .encumbrance-breakpoint.encumbrance-33 { + left: 33%; +} +.sw5e.sheet.actor.character .encumbrance .encumbrance-breakpoint.encumbrance-66 { + left: 66%; +} +.sw5e.sheet.actor.character .encumbrance .arrow-up { + bottom: 0; + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-bottom: 4px solid #666; +} +.sw5e.sheet.actor.character .encumbrance .arrow-down { + top: 0; + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 4px solid #666; +} +.sw5e.sheet.actor.character .encumbrance.encumbered .arrow-up { + border-bottom: 4px solid #000; +} +.sw5e.sheet.actor.character .encumbrance.encumbered .arrow-down { + border-top: 4px solid #000; +} +.sw5e.sheet.actor.character .inventory .item-controls, +.sw5e.sheet.actor.character .powerbook .item-controls { + flex: 0 0 68px; +} +.sw5e.sheet.actor.character .inventory .item-controls .item-toggle, +.sw5e.sheet.actor.character .powerbook .item-controls .item-toggle { + color: #b5b3a4; +} +.sw5e.sheet.actor.character .inventory .item-controls .item-toggle.active, +.sw5e.sheet.actor.character .powerbook .item-controls .item-toggle.active { + color: #4b4a44; +} +.sw5e.sheet.actor.character .inventory .item-controls .item-toggle.fixed, +.sw5e.sheet.actor.character .powerbook .item-controls .item-toggle.fixed { + color: #44191A; +} +.sw5e.sheet.actor.character .inventory .item-controls .item-toggle.fixed:hover, +.sw5e.sheet.actor.character .powerbook .item-controls .item-toggle.fixed:hover { + text-shadow: none; +} +/* ----------------------------------------- */ +/* Basic Structure */ +/* ----------------------------------------- */ +.sw5e.sheet.actor.npc { + min-width: 800px; + min-height: 658px; +} +/* ----------------------------------------- */ +/* Journal Entry +/* ----------------------------------------- */ +.journal-sheet .window-content { + padding: 0; + background: url("ui/parchment.webp") repeat; +} +.journal-sheet form { + overflow: hidden; + padding: 5px; + font-family: "Open Sans"; + background: url("ui/parchment.webp") repeat; +} +.journal-sheet form h2 { + font-family: "Russo One"; + font-size: 18px; + text-transform: uppercase; + color: #c40f0f; +} + +.journal-sheet form input[name="name"] { + height: 36px; + font-family: "Russo One"; + font-size: 24px; + text-transform: uppercase; + color: #c40f0f; + line-height: 36px; +} +.journal-sheet form select { + width: 100%; + height: 30px; + margin: 5px 0; +} +.journal-sheet form .editor { + height: calc(100% - 115px); +} +.journal-sheet form button[type="submit"] { + margin-top: 5px; +} +.journal-sheet form img { + border: none +} +.journal-sheet form table { + border: none; + background-color: none; +} +/* ---------------------------------------- */ +/* Roll Table Sheet */ +/* ---------------------------------------- */ +.roll-table-config .window-content { + background: url("ui/parchment.webp") repeat; +} +.roll-table-config form { + background: url("ui/parchment.webp") repeat; +} +.roll-table-config h1.name input { + width: 100%; + height: 36px; + margin: 0 0 5px; + font-family: "Russo One"; + font-size: 24px; + text-transform: uppercase; + color: #c40f0f; +} +.roll-table-config textarea { + resize: none; + min-height: 44px; + font-family: "Open Sans"; + background: url("ui/parchment.webp") repeat; +} +.roll-table-config ol.table-results { + list-style: none; + margin: 0; + padding: 0; + max-height: 600px; + overflow-y: auto; +} +.roll-table-config ol.table-results .table-result { + padding: 2px 0; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; +} +.roll-table-config ol.table-results .table-result input[type="text"] { + width: 100%; + height: 28px; +} +.roll-table-config ol.table-results .table-result > div { + line-height: 36px; + margin-right: 5px; +} +.roll-table-config ol.table-results .table-result .result-image { + flex: 0 0 36px; + width: 36px; + height: 36px; + text-align: center; + margin: 0; +} +.roll-table-config ol.table-results .table-result .result-image img { + border: none; + object-fit: cover; + object-position: 50% 0; +} +.roll-table-config ol.table-results .table-result .result-type { + flex: 0 0 110px; +} +.roll-table-config ol.table-results .table-result .result-details { + flex: 1; +} +.roll-table-config ol.table-results .table-result .result-details select { + width: 40%; +} +.roll-table-config ol.table-results .table-result .result-details .result-target { + width: 58%; + margin-left: 3px; +} +.roll-table-config ol.table-results .table-result .result-weight { + flex: 0 0 50px; + text-align: center; +} +.roll-table-config ol.table-results .table-result .result-range { + flex: 0 0 92px; + text-align: center; +} +.roll-table-config ol.table-results .table-result .result-range input { + width: 36px; +} +.roll-table-config ol.table-results .table-result .result-controls { + flex: 0 0 40px; + margin: 0; + text-align: center; +} +.roll-table-config ol.table-results .table-result .result-controls a { + width: 20px; +} +.roll-table-config ol.table-results .table-result .result-controls .lock-result { + color: #b5b3a4; +} +.roll-table-config ol.table-results .table-result.roulette { + background: url("ui/parchment.webp") repeat; + border-top: 1px solid #000; + border-bottom: 1px solid #000; +} +.roll-table-config ol.table-results .table-result.drawn { + background: rgba(0, 0, 0, 0.15); +} +.roll-table-config ol.table-results .table-result.drawn .lock-result { + color: #111; +} +.roll-table-config ol.table-results .table-header { + background: url("ui/parchment.webp") repeat; + border: 1px solid #7a7971; + line-height: 24px; + font-weight: bold; +} +.icon:before { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + -webkit-font-smoothing: antialiased; +} +a.entity-link { + background: #DDD; + padding: 1px 4px; + border: 1px solid #4b4a44; + border-radius: 2px; + white-space: nowrap; + word-break: break-all; +} +a.entity-link i::before { + content: url("ui/jedi-order.svg") !important; + display: inline-block; + position: relative; + top: 2px; + height: 15px; + width: 15px; +} diff --git a/sw5e-update.css b/sw5e-update.css new file mode 100644 index 00000000..61dc98c1 --- /dev/null +++ b/sw5e-update.css @@ -0,0 +1,757 @@ +/* ----------------------------------------- */ +/* Fonts */ +/* ----------------------------------------- */ +/* russo-one-regular - latin */ +@font-face { + font-family: 'Russo One'; + font-style: normal; + font-weight: 400; + src: url('./fonts/RussoOne.ttf'); +} +@font-face { + font-family: 'Russo One'; + font-style: italic; + font-weight: 400; + src: url('./fonts/RussoOne.ttf'); +} +@font-face { + font-family: 'Russo One'; + font-style: normal; + font-weight: 700; + src: url('./fonts/RussoOne.ttf'); +} +/* open-sans-regular - latin */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: url('./fonts/OpenSans-Regular.ttf'); +} +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 400; + src: url('./fonts/OpenSans-Italic.ttf'); +} +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 700; + src: url('./fonts/OpenSans-Bold.ttf'); +} +@font-face { + font-family: 'Open Sans'; + font-style: italic; + font-weight: 700; + src: url('./fonts/OpenSans-BoldItalic.ttf'); +} +/* ----------------------------------------- */ +/* Sheet Styles */ +/* ----------------------------------------- */ +html { + box-sizing: border-box; +} +*, +*:before, +*:after { + box-sizing: inherit; +} +::-webkit-scrollbar-track { + border: 1px solid #0d99cc; + border-radius: 4px; +} +::-webkit-scrollbar-thumb { + outline: none; + border-radius: 4px; + background: #0d99cc; + border: none; +} +:root { + scrollbar-width: thin; + scrollbar-color: #0d99cc #afc6d6; +} +body { + font-family: 'Open Sans'; + font-size: 13px; + font-weight: 400; +} +h1 { + font-family: 'Russo One'; + font-size: 34px; + font-weight: 400; +} +h2 { + font-family: 'Russo One'; + font-size: 27px; + font-weight: 400; +} +h3 { + font-family: 'Russo One'; + font-size: 21px; + font-weight: 400; +} +h4 { + font-family: 'Russo One'; + font-size: 17px; + font-weight: 400; +} +h5, +h6 { + font-family: 'Russo One'; + font-size: 13px; + font-weight: 400; +} +a { + color: #c40f0f; + text-decoration: none; +} +a:hover, +a:active { + text-shadow: none; + text-decoration: underline; +} +.app { + background: linear-gradient(90deg, #afc6d6 0%, #D6D6D6 30%, #D6D6D6 70%, #afc6d6); + border: none; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2); +} +#context-menu { + background: none; + border: none; + border-radius: 0; + color: #1C1C1C; + padding: 0 8px; +} +#context-menu ol.context-items { + background: white; + border-radius: 4px; + border: 1px solid #828282; + box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3); +} +#context-menu ol.context-items li.context-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} +#context-menu ol.context-items li.context-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} +#context-menu ol.context-items li.context-item i { + color: #0d99cc; +} +#context-menu ol.context-items li.context-item:hover { + background: #c40f0f; + color: white; + text-shadow: none; + cursor: pointer; +} +#context-menu ol.context-items li.context-item:hover i { + color: white; +} +#context-menu ol.context-items li.context-item + li { + border-top: 1px solid #D6D6D6; +} +input[type="text"], +input[type="number"], +input[type="password"], +input[type="date"], +input[type="time"], +select, +textarea { + border: 1px solid #828282; + border-radius: 4px; + color: #1C1C1C; + transition: all 0.3s; +} +input[type="text"]:hover, +input[type="number"]:hover, +input[type="password"]:hover, +input[type="date"]:hover, +input[type="time"]:hover, +select:hover, +textarea:hover { + border-color: #4f4f4f; + box-shadow: none; +} +input[type="text"]:focus, +input[type="number"]:focus, +input[type="password"]:focus, +input[type="date"]:focus, +input[type="time"]:focus, +select:focus, +textarea:focus { + border-color: #c40f0f; + box-shadow: none; +} +input[type=range] { + -webkit-appearance: none; + /* Hides the slider so that custom slider can be made */ + width: 100%; + /* Specific width is required for Firefox. */ + background: transparent; + /* Otherwise white in Chrome */ +} +input[type=range]::-webkit-slider-thumb { + -webkit-appearance: none; + background: #c40f0f; + width: 12px; + height: 12px; + border-radius: 32px; + cursor: pointer; + box-shadow: none; +} +input[type=range]::-moz-range-thumb { + -webkit-appearance: none; + background: #c40f0f; + width: 12px; + height: 12px; + border-radius: 32px; + cursor: pointer; + box-shadow: none; +} +input[type=range]::-ms-thumb { + -webkit-appearance: none; + background: #c40f0f; + width: 12px; + height: 12px; + border-radius: 32px; + cursor: pointer; + box-shadow: none; +} +input[type=range]::-webkit-slider-runnable-track { + width: 100%; + height: 6px; + cursor: pointer; + background: #7ed6f7; + border-radius: 4px; + border: 1px solid #0d99cc; + box-shadow: none; +} +input[type=range]:focus::-webkit-slider-runnable-track { + background: #0d99cc; +} +input[type=range]::-moz-range-track { + width: 100%; + height: 6px; + cursor: pointer; + background: #7ed6f7; + border-radius: 4px; + border: 1px solid #0d99cc; + box-shadow: none; +} +input[type=range]::-ms-track { + width: 100%; + height: 6px; + cursor: pointer; + background: #7ed6f7; + border-radius: 4px; + border: 1px solid #0d99cc; + box-shadow: none; +} +input[type=range]:focus { + outline: none; + /* Removes the blue border. You should probably do some kind of focus styling for accessibility reasons though. */ +} +input[type=range]::-ms-track { + width: 100%; + cursor: pointer; + /* Hides the slider so custom styles can be added */ + background: transparent; + border-color: transparent; + color: transparent; +} +button { + font-family: 'Open Sans'; + font-size: 13px; + font-weight: 700; + background: #c40f0f; + color: white; + text-align: center; + border: none; + border-radius: 4px; + cursor: pointer; + transition: all 0.3s; +} +button:hover, +button:focus { + box-shadow: none; + background: #dc1111; +} +#sidebar { + border: none; +} +#sidebar-tabs { + border: none; + box-shadow: none; + background: white; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2); +} +#sidebar-tabs > .collapse { + color: #c40f0f; +} +#sidebar-tabs .item { + font-size: 16px; +} +#sidebar-tabs .item.active { + color: #c40f0f; + border: none; + border-bottom: 3px solid #c40f0f; + box-shadow: none; + background: none; + text-shadow: none; +} +/*----------- +** Chat Tab +-----------*/ +#chat-log .chat-message { + background: white; + border: none; + border-radius: 4px; + margin-bottom: 8px; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2); +} +#chat-log .chat-message > header { + color: #c40f0f; + border-bottom: 2px solid #0d99cc; + margin-bottom: 4px; +} +#chat-log .chat-message > header span { + color: #1C1C1C; +} +.notification-pip { + color: #0d99cc; + text-shadow: none; +} +.sw5e.chat-card { + font-size: 13px; +} +.sw5e.chat-card .card-header { + padding: 0; + border: none; +} +.sw5e.chat-card .card-header img { + flex: 0 0 36px; + margin-right: 4px; +} +.sw5e.chat-card .card-header h3 { + flex: 1; + margin: 0; + line-height: 36px; + font-family: 'Russo One'; + font-size: 17px; + font-weight: 400; + color: #1C1C1C; +} +.sw5e.chat-card .card-header h3:hover { + color: #1C1C1C; + text-shadow: none; +} +.sw5e.chat-card .card-content { + margin: 4px 0; +} +.sw5e.chat-card .card-content h3 { + font-size: 12px; + margin: 0; + font-weight: bold; +} +.sw5e.chat-card .card-content > * { + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; +} +.sw5e.chat-card .card-buttons { + margin: 4px 0; +} +.sw5e.chat-card .card-buttons span { + display: block; + line-height: 28px; + text-align: center; + border: 1px solid #828282; +} +.sw5e.chat-card .card-buttons button { + font-family: 'Open Sans'; + font-size: 13px; + font-weight: 700; + padding: 4px 0; + height: auto; + line-height: 1.6; + margin: 4px 0; + background: #c40f0f; + border: none; + border-radius: 4px; +} +.sw5e.chat-card .card-buttons button:hover, +.sw5e.chat-card .card-buttons button:focus { + background-color: #dc1111; + box-shadow: none; +} +.sw5e.chat-card .card-footer { + padding: 4px 0 0; + border-top: 1px solid #7ed6f7; +} +.sw5e.chat-card .card-footer span { + border-right: 2px groove #FFF; + padding: 0 4px 0 0; + font-size: 10px; +} +.sw5e.chat-card .card-footer span:last-child { + border-right: none; + padding-right: 0; +} +.dice-roll .dice-formula { + background: none; + border: none; +} +.dice-roll .dice-total { + background: #afc6d6; + border: 1px solid #0d99cc; + border-radius: 0; + padding: 4px 0; + box-shadow: 0 0 12px rgba(13, 153, 204, 0.5); +} +.dice-roll .dice-total.success { + color: inherit; + background: #c7d0c0; + border: 1px solid #006c00; +} +.dice-roll .dice-total.failure { + color: inherit; + background: #ffdddd; + border: 1px solid #6e0000; +} +.dice-roll .dice-total.critical { + color: #0dce0d; + background: #bcdcbe; + box-shadow: 0 0 12px rgba(13, 206, 13, 0.5); +} +.dice-roll .dice-total.fumble { + color: red; +} +#chat-controls { + padding-top: 4px; +} +#chat-controls label { + color: #1C1C1C; +} +#chat-form textarea { + background: white; +} +#chat-form textarea:focus { + box-shadow: none; + outline: none; +} +/*----------- +** Combat Tab +-----------*/ +#combat #combat-round { + color: #c40f0f; + border-bottom: 2px solid #0d99cc; +} +#combat #combat-round .encounters h4 { + color: #c40f0f; +} +#combat #combat-round .encounters a { + color: #4f4f4f; +} +#combat #combat-round .encounters a:hover { + color: #c40f0f; +} +#combat #combat-tracker li.combatant { + padding: 4px 0; + color: #1C1C1C; + background: none; +} +#combat #combat-tracker li.combatant:nth-child(even) { + background: rgba(175, 198, 214, 0.5); +} +#combat #combat-tracker li.combatant h4 { + color: #1C1C1C; + text-shadow: none; +} +#combat #combat-tracker li.combatant .roll { + background: none; + color: #4f4f4f; +} +#combat #combat-tracker li.combatant .roll::before { + content: "\f6cf"; + font-family: "Font Awesome 5 Free"; + -webkit-font-smoothing: antialiased; + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + font-weight: 900; + font-size: 28px; +} +#combat #combat-tracker li.combatant .roll:hover { + color: #c40f0f; +} +#combat #combat-tracker li.combatant .combatant-control { + color: #828282; + text-shadow: none; +} +#combat #combat-tracker li.combatant .combatant-control.active { + color: #363636; +} +#combat #combat-tracker li.combatant .token-resource { + color: #4f4f4f; + border-right: 1px solid #828282; +} +#combat #combat-tracker li.combatant .initiative { + text-shadow: none; +} +#combat #combat-tracker li.combatant.active { + color: #0d99cc; +} +#combat #combat-tracker li.combatant.active .initiative, +#combat #combat-tracker li.combatant.active h4 { + color: #0d99cc; +} +#combat #combat-tracker li.combatant.hidden { + opacity: 0.5; + color: #1C1C1C; +} +#combat #combat-controls { + padding-top: 0; + border-top: 1px solid #0d99cc; +} +/* +** Folders +*/ +.sidebar-tab .directory-header { + margin-bottom: 4px; +} +.sidebar-tab .directory-header .header-search { + position: relative; +} +.sidebar-tab .directory-header .header-search i.fa-search { + position: absolute; + left: 8px; + color: #0d99cc; +} +.sidebar-tab .directory-header .header-search input { + text-align: left; + padding-left: 22px; + background: white; +} +.sidebar-tab .directory-header .header-search input:focus { + box-shadow: none; +} +.sidebar-tab .subdirectory { + border: none; + margin-left: 8px; + background: white; + min-height: 8px; +} +.sidebar-tab .subdirectory .folder { + border-left: 2px solid rgba(28, 28, 28, 0.4); +} +.sidebar-tab .directory-list { + padding-bottom: 4px; +} +.sidebar-tab .directory-list li + li { + border-top: 1px solid #0d99cc; +} +.sidebar-tab .directory-list .folder > .folder-header { + line-height: default; + padding: 0 0 0 8px; + position: relative; + border: none; + background: white; +} +.sidebar-tab .directory-list .folder > .folder-header h3 { + padding: 8px 4px; + background: white; + color: #1C1C1C; + font-family: 'Open Sans'; + font-size: 13px; + font-weight: 700; + line-height: 1.6; +} +.sidebar-tab .directory-list .folder > .folder-header h3 > i { + margin-right: 4px; + color: #0d99cc; +} +.sidebar-tab .directory-list .folder > .folder-header a { + position: absolute; + top: 0; + right: 4px; + height: 100%; + padding: 0 4px; + color: #828282; +} +.sidebar-tab .directory-list .folder > .folder-header a:hover { + color: #c40f0f; +} +.sidebar-tab .directory-list .folder > .folder-header a i { + margin-top: 12px; +} +.sidebar-tab .directory-list .folder > .folder-header a.create-folder { + right: 28px; +} +.sidebar-tab .directory-list .folder.collapsed > .folder-header { + background: white; +} +.sidebar-tab .directory-list .folder + .entity { + border-top: 1px solid #0d99cc; +} +.sidebar-tab .directory-list .directory-item img { + flex: 0 0 32px; + height: 32px; + width: 32px; + align-self: center; +} +.sidebar-tab .directory-list .actor, +.sidebar-tab .directory-list .item, +.sidebar-tab .directory-list .journal, +.sidebar-tab .directory-list .table { + background: white; + border: none; +} +.sidebar-tab .directory-list .actor .entity-name, +.sidebar-tab .directory-list .item .entity-name, +.sidebar-tab .directory-list .journal .entity-name, +.sidebar-tab .directory-list .table .entity-name { + font-family: 'Open Sans'; + font-size: 13px; + font-weight: 700; + color: #1C1C1C; +} +.sidebar-tab .directory-list .actor:nth-child(even), +.sidebar-tab .directory-list .item:nth-child(even), +.sidebar-tab .directory-list .journal:nth-child(even), +.sidebar-tab .directory-list .table:nth-child(even) { + background: rgba(175, 198, 214, 0.3); +} +#scenes .subdirectory { + border-left: none; +} +#scenes .scene { + border: none; + border-top: 1px solid #0d99cc; + border-left: 4px solid #0d99cc; + box-shadow: none; + position: relative; + height: 128px; +} +#scenes .scene + .scene { + margin-top: 4px; +} +#scenes .scene::after { + content: ''; + display: block; + width: 100%; + height: 99px; + position: absolute; + top: 28px; + left: 0; + box-shadow: 0 0 20px #0d99cc inset; +} +#scenes .scene h3 { + font-family: 'Open Sans'; + font-size: 13px; + font-weight: 700; + text-align: left; + text-shadow: none; + padding: 4px 4px 4px 12px; + background: white; + line-height: 1.6; + position: absolute; + top: 0; + left: 0; + width: 100%; +} +#playlists .directory-list { + padding: 0 8px; +} +#playlists .directory-list li.playlist { + padding: 8px; + border-radius: 4px; + background: white; + margin-bottom: 8px; + border-top: inherit; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2); +} +#playlists .directory-list li.playlist .playlist-header { + background: white; + color: #c40f0f; + text-decoration: none; + border-bottom: 2px solid #0d99cc; +} +#playlists .directory-list li.playlist li.sound { + border: none; + color: #1C1C1C; +} +#playlists .directory-list li.playlist li.sound h4 { + font-family: 'Open Sans'; + font-size: 13px; + font-weight: 400; +} +#playlists .directory-list li.playlist a.sound-control { + color: #c40f0f; +} +#compendium .compendium-entity { + margin: 0 4px; + padding: 8px; + background: white !important; + box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2); + border-radius: 4px; + border: none; +} +#compendium .compendium-entity + .compendium-entity { + margin-top: 4px; +} +#compendium .compendium-entity h3 { + border: none; + color: #c40f0f; + border-bottom: 2px solid #0d99cc; + font-family: 'Russo One'; + font-size: 17px; + font-weight: 400; + padding: 0; + margin-bottom: 4px; +} +#compendium .compendium-entity ol.compendium-list li.compendium-pack { + margin: 0; + padding: 4px; + border: none; +} +#compendium .compendium-entity ol.compendium-list li.compendium-pack:nth-child(even) { + background: rgba(175, 198, 214, 0.3); +} +#compendium .compendium-entity ol.compendium-list li.compendium-pack .pack-title { + margin: 0; + position: relative; +} +#compendium .compendium-entity ol.compendium-list li.compendium-pack .pack-title a { + font-family: 'Open Sans'; + font-size: 13px; + font-weight: 700; +} +#compendium .compendium-entity ol.compendium-list li.compendium-pack .pack-title a i { + display: none; +} +#compendium .compendium-entity ol.compendium-list li.compendium-pack .pack-title .status-icons { + top: 4px; + color: #828282; + font-size: 13px; +} +#compendium .compendium-entity ol.compendium-list li.compendium-pack footer.compendium-footer { + color: #1C1C1C; +} +#settings h2 { + color: #c40f0f; + border: none; + border-bottom: 2px solid #0d99cc; + margin: 0 8px; + padding: 0; +} +#settings #game-details, +#settings #settings-game, +#settings #settings-documentation, +#settings #settings-access { + padding: 0 8px; + margin: 0 0 8px; + color: #1C1C1C; +} diff --git a/sw5e.css b/sw5e.css index 8417ca66..d7e176c6 100644 --- a/sw5e.css +++ b/sw5e.css @@ -1,1787 +1,1573 @@ -/* Deprecated vars */ -/* ----------------------------------------- */ -/* Fonts */ -/* ----------------------------------------- */ - -/* russo-one-regular - latin */ -@font-face { - font-family: 'Russo One'; - font-style: normal; - font-weight: 400; - src: url('./fonts/RussoOne.ttf'); -} -/* bungee-inline-regular - latin */ -@font-face { - font-family: 'Bungee Inline'; - font-style: normal; - font-weight: 400; - src: url('./fonts/BungeeInline.ttf'); -} -/* open-sans-regular - latin */ -@font-face { - font-family: 'Open Sans'; - font-style: normal; - font-weight: 400; - src: url('./fonts/OpenSans-Regular.ttf'); -} -body { - width: 100vw; - height: 100vh; - margin: 0; - overflow: hidden; - background-image: url('./ui/SW5e-logo.svg'); - background-repeat: no-repeat; - background-size: cover; - font-family: 'Open Sans'; - font-size: 14px; - box-shadow: 0 0 50vw #000 inset; -} -/* ----------------------------------------- */ -/* Sheet Styles */ -/* ----------------------------------------- */ -/* ----------------------------------------- */ -/* Flexbox */ -/* ----------------------------------------- */ -.flexrow { - display: flex; - flex-direction: row; - flex-wrap: wrap; - justify-content: flex-start; -} -.flexrow > * { - flex: 1; -} -.flexrow .flex1 { - flex: 1; -} -.flexrow .flex2 { - flex: 2; -} -.flexrow .flex3 { - flex: 3; -} -.flexrow .flex4 { - flex: 4; -} -.flexcol { - display: flex; - flex-direction: column; - flex-wrap: nowrap; -} -.flexcol > * { - flex: 1; -} -.flexcol .flex1 { - flex: 1; -} -.flexcol .flex2 { - flex: 2; -} -.flexcol .flex3 { - flex: 3; -} -.flexcol .flex4 { - flex: 4; -} -/* ----------------------------------------- */ -/* All SW5e Apps */ -/* ----------------------------------------- */ -.sw5e { - /* ----------------------------------------- */ - /* Element Styles */ - /* ----------------------------------------- */ - /* Form Groups */ - /* Tags */ -} -.sw5e .window-content { - background: url("ui/parchment.webp") repeat; - font-size: 13px; - color: #191813; -} -.sw5e input[type="text"] -.sw5e select { - height: calc(100% - 2px); - border: 1px solid #7a7971; - background: rgba(0, 0, 0, 0.05); - color: #191813; -} -.sw5e input[type="text"]:hover, -.sw5e input[type="text"]:focus { - border: 1px solid #111; - box-shadow: 0 0 8px red; -} -.sw5e input:disabled, -.sw5e select:disabled, -.sw5e textarea:disabled { - color: #4b4a44; -} -.sw5e input:disabled:hover, -.sw5e select:disabled:hover, -.sw5e textarea:disabled:hover, -.sw5e input:disabled:focus, -.sw5e select:disabled:focus, -.sw5e textarea:disabled:focus { - box-shadow: none !important; - border: 1px solid transparent !important; - outline: none !important; -} -.sw5e button { - background: rgba(0, 0, 0, 0.1); - border: 2px groove #eeede0; -} -.sw5e label.checkbox { - flex: auto; - margin: 0; - line-height: 20px; - font-size: 10px; - text-align: right; -} -.sw5e label.checkbox input[type="checkbox"] { - height: auto; - margin: 0 5px 0; - position: relative; - top: 3px; -} -.sw5e .form-group label { - flex: 2; - color: #4b4a44; - font-weight: bold; -} -.sw5e .form-group .form-fields { - display: flex; - flex-direction: row; - flex-wrap: wrap; - justify-content: flex-start; -} -.sw5e .form-group .form-fields > * { - flex: 1; -} -.sw5e .form-group .form-fields .flex1 { - flex: 1; -} -.sw5e .form-group .form-fields .flex2 { - flex: 2; -} -.sw5e .form-group .form-fields .flex3 { - flex: 3; -} -.sw5e .form-group .form-fields .flex4 { - flex: 4; -} -.sw5e .form-group .form-fields > * { - margin: 0 3px 0 0; -} -.sw5e .form-group .form-fields > *:last-child { - margin-right: 0; -} -.sw5e .form-group.stacked label { - flex: 0 0 100%; - margin: 0; -} -.sw5e .form-group.stacked label.checkbox { - flex: auto; - text-align: left; -} -.sw5e .form-header { - margin: 0 0 0.25em 0; - padding: 0 2px; - font-family: "Russo One"; - font-size: 8px; - font-size: 12px; - border-top: 2px groove #eeede0; - border-bottom: 2px groove #eeede0; -} -.sw5e .tag { - display: inline-block; - margin: 0 2px 0 0; - padding: 0 3px; - font-size: 10px; - line-height: 16px; - border: 1px solid #999; - border-radius: 3px; - background: rgba(0, 0, 0, 0.05); -} -/* ----------------------------------------- */ -/* Entity Sheets Specifically */ -/* ----------------------------------------- */ -.sw5e.sheet { - /* ----------------------------------------- */ - /* Element Styles */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* TinyMCE */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Sheet Header */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Sheet Navigation */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Sheet Body */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* List Filters */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Trait Lists */ - /* ----------------------------------------- */ -} -.sw5e.sheet .window-content { - overflow-y: hidden; - padding: 5px; - background: url("ui/parchment.webp") repeat; - font-size: 13px; - color: #191813; -} -.sw5e.sheet .window-content form { - height: 100%; - overflow: hidden; -} -.sw5e.sheet .window-content .tab { - height: 100%; - overflow-y: auto; - align-content: flex-start; -} -.sw5e.sheet input[type="text"] { - background: none; - border: 1px solid transparent; -} -.sw5e.sheet input[type="text"]:hover, -.sw5e.sheet input[type="text"]:focus { - border: 1px solid #111; -} -.sw5e.sheet select { - flex: 1; - font-size: 12px; - height: 22px; - background: transparent; -} -.sw5e.sheet .editable .rollable:hover { - color: #000; - text-shadow: 0 0 10px red; - cursor: pointer; -} -.sw5e.sheet .editor { - height: 100%; -} -.sw5e.sheet .editor .tox-toolbar-overlord, -.sw5e.sheet .editor .tox-toolbar__primary { - background: none; -} -.sw5e.sheet .sheet-header { - flex: 0 0 100px; - border-bottom: 2px groove #eeede0; - font-family: "Russo One"; - font-size: 14px; - /* Character Name */ - /* Profile Image */ - /* Header Summary Details */ -} -.sw5e.sheet .sheet-header h1 { - flex: 2; - border-bottom: none; - height: 60px; - margin: 0; - padding: 5px; -} -.sw5e.sheet .sheet-header h1 input { - height: 50px; - font-size: 22px; - text-transform: uppercase; -} -.sw5e.sheet .sheet-header img.profile { - flex: 0 0 100px; - max-width: 100px; - height: 100px; - object-fit: cover; - border: none; - border-right: 2px groove #eeede0; -} -.sw5e.sheet .sheet-header .summary { - flex: 0 0 100%; - height: 40px; - margin: 0; - padding: 0; - list-style: none; - border-top: 2px groove #eeede0; - border-bottom: none; -} -.sw5e.sheet .sheet-header .summary li { - width: 33.33%; - float: left; - height: 34px; - margin: 2px 0; - padding: 0 3px; - border-right: 2px groove #eeede0; - line-height: 34px; - color: #4b4a44; -} -.sw5e.sheet .sheet-header .summary li:last-child { - border-right: none; -} -.sw5e.sheet .sheet-navigation { - flex: 0 0 30px; - margin-bottom: 5px; - font-family: "Russo One"; - font-size: 12px; -} -.sw5e.sheet .sheet-navigation .item { - height: 30px; - line-height: 32px; - margin: 0 24px; - border-bottom: 3px solid #b5b3a4; -} -.sw5e.sheet .sheet-navigation .item.active { - border-bottom: 3px solid #44191A; -} -.sw5e.sheet .sheet-body { - flex: 1; - overflow: hidden; - font-family: "Open Sans"; -} -.sw5e.sheet .sheet-body h1 { - font-family: "Russo One"; - font-size: 22px; - text-transform: uppercase; - color: #c40f0f; - border: 0px; -} -.sw5e.sheet .sheet-body h2 { - font-family: "Russo One"; - font-size: 18px; - text-transform: uppercase; - color: #c40f0f; -} -.sw5e.sheet .sheet-body th { - font-family: "Russo One"; - text-transform: uppercase; - color: #c40f0f; -} -.sw5e.sheet .sheet-body tr:nth-child(odd) { - background-color: #c9d6db; -} -.sw5e.sheet .sheet-body tr:nth-child(even) { - background-color: #bdc8cc; -} -.sw5e.sheet .sheet-body .smalltable table { - width: 200px; - border: 0px; - margin: 0.5em 0.5em; -} -.sw5e.sheet .sheet-body .smalltable td:nth-child(odd) { - width: 50px; - margin: 0.5em 0.5em; -} -.sw5e.sheet .sheet-body .smalltable td:nth-child(even) { - width: 150px; - margin: 0.5em 0.5em; - padding: 0px 10px 0px 10px; -} -.sw5e.sheet .sheet-body .smalltable thead { - border-bottom: 0px; -} -.sw5e.sheet .sheet-body .smalltable th { - color: #000000; - text-shadow: none; - border-bottom: 0px; - background-color: #bdc8cc; - text-transform: none; - font-weight: bold; - font-family: 'Open Sans'; -} -.sw5e.sheet .sheet-body .medtable table { - width: 500px; - border: 0px; - margin: 0.5em 0.5em; -} -.sw5e.sheet .sheet-body .medtable td:nth-child(odd) { - width: 50px; - margin: 0.5em 0.5em; -} -.sw5e.sheet .sheet-body .medtable td:nth-child(even) { - width: 450px; - margin: 0.5em 0.5em; - padding: 0px 10px 0px 10px; -} -.sw5e.sheet .sheet-body .medtable thead { - border-bottom: 0px; -} -.sw5e.sheet .sheet-body .medtable th { - color: #000000; - text-shadow: none; - border-bottom: 0px; - background-color: #bdc8cc; - text-transform: none; - font-weight: bold; - font-family: 'Open Sans'; -} -.sw5e.sheet .sheet-body .classtable blockquote { - border-left: 0px; - border-right: 0px; -} -.sw5e.sheet .sheet-body .classtable table { - width: 100%; - border-collapse: collapse; - background: rgba(0, 0, 0, 0.05); - border-left: 0px; - border-right: 0px; - border-top: 0; - border-bottom: 0; - margin: 0.5em 0; - font-style: normal; - font-weight: normal; - text-shadow: none; -} -.sw5e.sheet .sheet-body .classtable thead { - color: #000000; - text-shadow: none; - border-bottom: 0px; - background-color: #bdc8cc; - text-transform: none; - font-style: normal; - font-weight: normal; - font-family: 'Open Sans'; -} -.sw5e.sheet .sheet-body .classtable th { - color: #000000; - text-shadow: none; - border-bottom: 0px; - background-color: #bdc8cc; - text-transform: none; - font-style: normal; - font-weight: bold; - font-family: 'Open Sans'; -} -.sw5e.sheet .filter-list { - list-style: none; - margin: 0; - padding: 0; - line-height: 16px; -} -.sw5e.sheet .filter-list .filter-title { - flex: 3; -} -.sw5e.sheet .filter-list .filter-item { - text-align: center; - font-size: 12px; - margin: 0 6px; - border-bottom: 3px solid #b5b3a4; - white-space: nowrap; -} -.sw5e.sheet .filter-list .filter-item:hover { - text-shadow: 0 0 4px red; - border-bottom: 3px solid #7a7971; -} -.sw5e.sheet .filter-list .filter-item.active { - border-bottom: 3px solid #44191A; -} -.sw5e.sheet .trait-selector { - flex: 0 0 16px; - padding: 2px 0; - color: #999; - font-size: 10px; -} -.sw5e.sheet .traits-list { - line-height: 20px; - list-style: none; - margin: 0; - padding: 0; - text-align: right; -} -/* ----------------------------------------- */ -/* Trait Selector -/* ----------------------------------------- */ -#trait-selector .trait-list { - list-style: none; - margin: 0; - padding: 0; -} -#trait-selector input[type="text"] { - height: 24px; - margin: 2px; -} -.sw5e.sheet.actor { - /* ----------------------------------------- */ - /* Sheet Header */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* General Styles */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Attributes */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Ability Scores */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Skills */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Statuses */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Traits */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Inventory Lists */ - /* ----------------------------------------- */ - /* Inventory List Filters */ - /* ----------------------------------------- */ - /* Powerbook */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* TinyMCE */ - /* ----------------------------------------- */ -} -.sw5e.sheet.actor .sheet-header .charlevel { - flex: 0 0 160px; - height: 60px; - margin: 0; - padding: 5px; - text-align: right; -} -.sw5e.sheet.actor .sheet-header .charlevel .level { - width: 100%; - height: 30px; - font-size: 18px; - line-height: 30px; -} -.sw5e.sheet.actor .sheet-header .charlevel .level label { - display: inline; - font-size: 18px; - text-align: right; -} -.sw5e.sheet.actor .sheet-header .charlevel .level input { - display: inline; - width: 36px; - font-size: 18px; - text-align: center; -} -.sw5e.sheet.actor .sheet-header .charlevel .level.noxp { - margin-top: 10px; -} -.sw5e.sheet.actor .sheet-header .charlevel .level.noxp > label { - font-size: 32px; -} -.sw5e.sheet.actor .sheet-header .charlevel .level.noxp > input { - font-size: 18px; - flex: 0 0 40px; - height: 44px; -} -.sw5e.sheet.actor .sheet-header .charlevel .experience { - width: 100%; - height: 20px; - padding-right: 5px; - font-size: 16px; - color: #4b4a44; -} -.sw5e.sheet.actor .attributes input.temphp { - width: 48%; -} -.sw5e.sheet.actor h4.box-title { - line-height: 16px; - margin: 4px 8px 2px; - font-size: 14px; - border-bottom: 1px solid #b5b3a4; -} -.sw5e.sheet.actor ul.attributes { - list-style: none; - margin: 5px 0 0; - padding: 0; -} -.sw5e.sheet.actor ul.attributes li.attribute { - height: 70px; - margin: 0 5px; - border: 2px groove #eeede0; - border-radius: 4px; - font-family: "Russo One"; - font-size: 12px; - text-align: center; -} -.sw5e.sheet.actor ul.attributes li.attribute .attribute-name { - flex: 0 0 18px; -} -.sw5e.sheet.actor ul.attributes li.attribute .attribute-value { - height: 28px; - line-height: 28px; -} -.sw5e.sheet.actor ul.attributes li.attribute .attribute-value input { - display: inline; - max-width: 80%; - height: 28px; - margin: 0; - font-size: 14px; -} -.sw5e.sheet.actor ul.attributes li.attribute .attribute-value span.sep { - display: inline; - position: relative; - top: 2px; - font-size: 28px; - color: #7a7971; -} -.sw5e.sheet.actor ul.attributes li.attribute .attribute-value.multiple input { - max-width: 33%; -} -.sw5e.sheet.actor ul.attributes li.attribute .attribute-footer { - flex: 0 0 18px; - margin-top: -1px; - line-height: 18px; - font-family: "Signika", "Palatino Linotype", serif; - font-size: 12px; -} -.sw5e.sheet.actor .ability-scores { - flex: 0 0 100%; - list-style: none; - margin: 0; - padding: 0; - font-family: "Russo One"; - font-size: 8px; -} -.sw5e.sheet.actor .ability-scores .ability { - height: 70px; - margin: 0 5px; - text-align: center; - border: 2px groove #eeede0; - border-radius: 3px; - /* Hide modifier box on hover */ -} -.sw5e.sheet.actor .ability-scores .ability input.ability-score { - height: 30px; - width: 50px; - margin: 0 auto; - line-height: 32px; - font-size: 16px; -} -.sw5e.sheet.actor .ability-scores .ability .ability-modifiers { - height: 24px; - margin: -10px 0 0; -} -.sw5e.sheet.actor .ability-scores .ability .ability-modifiers span.ability-mod, -.sw5e.sheet.actor .ability-scores .ability .ability-modifiers span.ability-save { - flex: 0 0 24px; - height: 24px; - border-top: 2px groove #eeede0; -} -.sw5e.sheet.actor .ability-scores .ability .ability-modifiers span.ability-mod { - border-right: 2px groove #eeede0; -} -.sw5e.sheet.actor .ability-scores .ability .ability-modifiers .ability-proficiency { - line-height: 30px; -} -.sw5e.sheet.actor .ability-scores .ability .ability-modifiers span.ability-save { - border-left: 2px groove #eeede0; -} -.sw5e.sheet.actor .ability-scores .ability input.ability-score:hover + .ability-modifiers { - visibility: hidden; -} -.sw5e.sheet.actor .proficiency-toggle { - color: #b5b3a4; - font-size: 12px; -} -.sw5e.sheet.actor .proficient .proficiency-toggle { - color: #4b4a44; -} -.sw5e.sheet.actor .locked .proficiency-toggle { - color: #b5b3a4; - text-shadow: none; - cursor: default; -} -.sw5e.sheet.actor ul.skills-list { - flex: 0 0 192px; - list-style: none; - margin: 5px 5px 0; - padding: 2px 2px 0; - border: 2px groove #eeede0; - border-radius: 3px; -} -.sw5e.sheet.actor ul.skills-list li.skill { - height: 22px; - padding: 3px 0; -} -.sw5e.sheet.actor ul.skills-list li.skill h4 { - flex: 1px; - margin: 0; - font-size: 11px; - line-height: 18px; -} -.sw5e.sheet.actor ul.skills-list li.skill .skill-proficiency { - flex: 0 0 16px; - line-height: 18px; -} -.sw5e.sheet.actor ul.skills-list li.skill .skill-ability { - flex: 0 0 26px; -} -.sw5e.sheet.actor ul.skills-list li.skill .skill-mod { - flex: 0 0 20px; -} -.sw5e.sheet.actor ul.skills-list li.skill .skill-passive { - flex: 0 0 26px; - text-align: center; - color: #7a7971; -} -.sw5e.sheet.actor .counters { - flex: 0 0 100%; - border-bottom: 2px groove #eeede0; - margin-bottom: 5px; -} -.sw5e.sheet.actor .counters .counter { - padding: 0 3px; - line-height: 32px; -} -.sw5e.sheet.actor .counters .counter h4 { - flex: auto; - margin: 0; - font-family: "Russo One"; - font-size: 14px; - font-size: 10px; -} -.sw5e.sheet.actor .counters .counter .counter-value { - flex: 0 0 50px; - text-align: right; -} -.sw5e.sheet.actor .counters .counter .counter-value > * { - display: inline; -} -.sw5e.sheet.actor .counters .counter input[type="text"] { - height: 20px; - max-width: 20px; - margin: 0; - padding: 0; - text-align: center; -} -.sw5e.sheet.actor .counters .counter input[type="checkbox"] { - position: relative; - margin: 0; - top: 6px; -} -.sw5e.sheet.actor .counters .counter span.sep { - margin: 0 -2px; - font-size: 12px; -} -.sw5e.sheet.actor .traits { - margin: 0 5px; -} -.sw5e.sheet.actor .traits .form-group, -.sw5e.sheet.actor .traits .form-group-stacked { - margin: 0 0 4px 0; - justify-content: space-between; -} -.sw5e.sheet.actor .traits .configure-flags { - flex: 1; -} -.sw5e.sheet.actor .traits .actor-size { - flex: 0 0 150px; -} -.sw5e.sheet.actor .traits label { - flex: 0 0 150px; - line-height: 20px; - font-weight: bold; - margin: 0; -} -.sw5e.sheet.actor .traits input { - text-align: right; -} -.sw5e.sheet.actor .traits i.fas { - float: right; - margin-right: 3px; - text-align: right; - color: #999; -} -.sw5e.sheet.actor .traits i.fas:hover { - color: #111; - text-shadow: 0 0 10px red; -} -.sw5e.sheet.actor .traits .inactive { - color: #7a7971; -} -.sw5e.sheet.actor .tab.features, -.sw5e.sheet.actor .tab.inventory, -.sw5e.sheet.actor .tab.powerbook { - overflow-y: hidden; -} -.sw5e.sheet.actor .inventory-filters { - margin: 0 8px; - flex: 0 0 20px; -} -.sw5e.sheet.actor .inventory-filters h3, -.sw5e.sheet.actor .inventory-filters .filter-title { - font-family: "Russo One"; - font-size: 10px; - color: #4b4a44; - font-size: 12px; - margin: 0; -} -.sw5e.sheet.actor .inventory-filters.powerbook-filters { - flex: 0 0 40px; -} -.sw5e.sheet.actor .inventory-filters .currency { - list-style: none; - margin: 4px 0 8px; - padding: 0; - font-size: 12px; -} -.sw5e.sheet.actor .inventory-filters .currency label { - flex: 0; - margin-left: 8px; - text-align: right; - line-height: 20px; - color: #7a7971; -} -.sw5e.sheet.actor .inventory-filters .currency input[type="text"] { - flex: 0 0 48px; - text-align: center; - margin-left: 8px; - border-bottom: 2px groove #eeede0; -} -.sw5e.sheet.actor .inventory-list { - list-style: none; - margin: 0; - padding: 0 5px; - overflow-y: auto; -} -.sw5e.sheet.actor .inventory-list .item { - line-height: 30px; - padding: 0 2px; - border-bottom: 1px solid #c9c7b8; -} -.sw5e.sheet.actor .inventory-list .item:last-child { - border-bottom: none; -} -.sw5e.sheet.actor .inventory-list .item .item-name { - cursor: pointer; - max-height: 30px; - overflow: hidden; -} -.sw5e.sheet.actor .inventory-list .item .item-name .item-image { - flex: 0 0 30px; - background-size: 30px; - margin-right: 5px; -} -.sw5e.sheet.actor .inventory-list .item .item-name h4 { - margin: 0; - white-space: nowrap; - overflow-x: hidden; -} -.sw5e.sheet.actor .inventory-list .item .item-name.rollable .item-image:hover { - background-image: url("/icons/svg/d20-black.svg") !important; -} -.sw5e.sheet.actor .inventory-list .item .item-name.rollable:hover .item-image { - background-image: url("/icons/svg/d20-grey.svg") !important; -} -.sw5e.sheet.actor .inventory-list .item .item-name i.attuned { - color: #7a7971; -} -.sw5e.sheet.actor .inventory-list .item .item-uses input { - width: 24px; - text-align: center; -} -.sw5e.sheet.actor .inventory-list .item .item-properties { - margin-top: 3px; -} -.sw5e.sheet.actor .inventory-list .item .item-recharge { - flex: 0 0 80px; - text-align: right; - font-size: 11px; - color: #7a7971; -} -.sw5e.sheet.actor .inventory-list .inventory-header { - margin: 2px 0; - padding: 0; - background: rgba(0, 0, 0, 0.05); - border: 2px groove #eeede0; - font-weight: bold; - line-height: 24px; -} -.sw5e.sheet.actor .inventory-list .inventory-header h3 { - margin: 0 -5px 0 0; - padding-left: 5px; - font-size: 13px; - font-weight: bold; -} -.sw5e.sheet.actor .inventory-list .inventory-header .item-controls a.item-create { - flex: 0 0 100%; -} -.sw5e.sheet.actor .inventory-list .item-detail { - flex: 0 0 70px; - font-size: 12px; - color: #7a7971; - text-align: center; - border-right: 1px solid #c9c7b8; -} -.sw5e.sheet.actor .inventory-list .item-detail:last-child { - border-right: none; -} -.sw5e.sheet.actor .inventory-list .item-detail.item-action { - flex: 0 0 100px; -} -.sw5e.sheet.actor .inventory-list .item-weight { - flex: 0 0 60px; - border-left: 1px solid #c9c7b8; - border-right: 1px solid #c9c7b8; -} -.sw5e.sheet.actor .inventory-list .item-list { - list-style: none; - margin: 0; - padding: 0; -} -.sw5e.sheet.actor .inventory-list .item-controls { - flex: 0 0 44px; - display: flex; - flex-direction: row; - flex-wrap: wrap; - justify-content: flex-start; - justify-content: flex-end; -} -.sw5e.sheet.actor .inventory-list .item-controls > * { - flex: 1; -} -.sw5e.sheet.actor .inventory-list .item-controls .flex1 { - flex: 1; -} -.sw5e.sheet.actor .inventory-list .item-controls .flex2 { - flex: 2; -} -.sw5e.sheet.actor .inventory-list .item-controls .flex3 { - flex: 3; -} -.sw5e.sheet.actor .inventory-list .item-controls .flex4 { - flex: 4; -} -.sw5e.sheet.actor .inventory-list .item-controls a { - flex: 0 0 22px; - font-size: 12px; - text-align: center; - color: #7a7971; -} -.sw5e.sheet.actor .inventory-list .item-summary { - flex: 0 0 100%; - font-size: 12px; - line-height: 16px; - padding: 0.25em 0.5em; - border-top: 1px solid #c9c7b8; -} -.sw5e.sheet.actor .powercasting-ability h3, -.sw5e.sheet.actor .pact-slots h3 { - flex: none; - margin-right: 5px; -} -.sw5e.sheet.actor .powercasting-ability input, -.sw5e.sheet.actor .pact-slots input, -.sw5e.sheet.actor .powercasting-ability span, -.sw5e.sheet.actor .pact-slots span { - flex: 0 0 32px; - text-align: center; -} -.sw5e.sheet.actor .powercasting-ability select, -.sw5e.sheet.actor .pact-slots select { - margin: 0 5px; - flex: 0 0 150px; -} -.sw5e.sheet.actor .powercasting-ability h3.power-dc, -.sw5e.sheet.actor .pact-slots h3.power-dc { - flex: 1; - text-align: right; -} -.sw5e.sheet.actor .pact-slots { - align-items: center; -} -.sw5e.sheet.actor .power-slots, -.sw5e.sheet.actor .power-comps { - flex: 0 0 72px; - padding-right: 5px; - text-align: right; - font-size: 12px; - color: #7a7971; - border-right: 1px solid #c9c7b8; -} -.sw5e.sheet.actor .power-slots input, -.sw5e.sheet.actor .power-slots span.sep { - display: inline; - max-width: 20px; - text-align: center; -} -.sw5e.sheet.actor .power-uses { - padding-right: 8px; - text-align: right !important; -} -.sw5e.sheet.actor .power-school, -.sw5e.sheet.actor .power-action, -.sw5e.sheet.actor .power-target { - flex: 0 0 100px; - font-size: 12px; - color: #7a7971; - text-align: center; - border-right: 1px solid #c9c7b8; -} -.sw5e.sheet.actor .power-component { - line-height: 14px; -} -.sw5e.sheet.actor .power-component.C, -.sw5e.sheet.actor .power-component.R { - display: inline-block; - text-align: center; - padding-top: 1px; - width: 16px; - color: #c9c7b8; - background: rgba(0, 0, 0, 0.4); - border: 1px solid transparent; - border-radius: 8px; -} -.sw5e.sheet.actor .powerbook-empty .item-controls { - flex: 1; -} -.sw5e.sheet.actor .editor { - padding: 0 8px; -} -.sw5e.sheet.item { - min-height: 520px; - min-width: 700px; - /* ----------------------------------------- */ - /* Sheet Header */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Item Details Form */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Item Actions */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Item Actions */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Loot Sheet (No Tabs) */ - /* ----------------------------------------- */ -} -.sw5e.sheet.item .sheet-header img.profile { - border: 2px solid #000; -} -.sw5e.sheet.item .sheet-header .item-subtitle { - flex: 1 0 80px; - height: 60px; - margin: 0; - padding: 5px; - text-align: right; - color: #7a7971; -} -.sw5e.sheet.item .sheet-header .item-subtitle .item-type { - font-size: 16px; - line-height: 26px; - margin: 0; -} -.sw5e.sheet.item .sheet-header .item-subtitle .item-status { - font-size: 16px; - line-height: 24px; -} -.sw5e.sheet.item .sheet-navigation { - margin-bottom: 5px; -} -.sw5e.sheet.item .sheet-navigation .item { - font-size: 14px; -} -.sw5e.sheet.item .sheet-body { - overflow: hidden; - font-family: "Open Sans"; -} -.sw5e.sheet.item .sheet-body h2 { - font-family: "Russo One"; - font-size: 18px; - border-bottom: 2px solid #0d99cc; -} -.sw5e.sheet.item .sheet-body h3 { - font-family: "Russo One"; - color: #c40f0f; - text-transform: uppercase; -} -.sw5e.sheet.item .sheet-body .tab { - padding: 0 5px; - overflow: hidden auto; -} -.sw5e.sheet.item .sheet-body .item-properties { - flex: 0 0 120px; - margin: 5px 5px 5px 0; - padding-right: 5px; - border-right: 2px groove #eeede0; -} -.sw5e.sheet.item .sheet-body .item-properties .form-group { - margin: 0; -} -.sw5e.sheet.item .sheet-body .item-properties .form-group label { - line-height: 20px; -} -.sw5e.sheet.item .sheet-body .item-properties .form-group input { - text-align: right; -} -.sw5e.sheet.item .sheet-body .item-properties .properties-list { - list-style: none; - margin: 0; - padding: 0; -} -.sw5e.sheet.item .sheet-body .item-properties .properties-list li { - margin: 3px 0; - padding: 0 2px; - background: rgba(0, 0, 0, 0.05); - border: 2px groove #eeede0; - text-align: center; - font-size: 12px; - line-height: 18px; -} -.sw5e.sheet.item .details input[type="text"], -.sw5e.sheet.item .details select { - height: 24px; - border: 1px solid #7a7971; - background: rgba(0, 0, 0, 0.05); -} -.sw5e.sheet.item .details .form-group span { - text-align: center; - line-height: 24px; -} -.sw5e.sheet.item .details .form-group.input-select select { - flex: 1.8; -} -.sw5e.sheet.item .details .form-group.input-select-select select { - flex: 1.5; -} -.sw5e.sheet.item .details .form-group.uses-per input { - flex: 1; -} -.sw5e.sheet.item .details .form-group.uses-per span { - flex: 0 0 16px; -} -.sw5e.sheet.item .details .form-group.uses-per select { - flex: 3; -} -.sw5e.sheet.item .details span.sep { - flex: 0 0 8px; -} -.sw5e.sheet.item .details .prepared { - flex: 1.3 !important; - text-align: right; - padding-right: 10px; -} -.sw5e.sheet.item .details .power-materials { - flex: 0 0 100%; - margin: 0.25em 0; - justify-content: flex-end; -} -.sw5e.sheet.item .details .power-materials label { - flex: 0 0 64px; - text-align: right; - margin-right: 5px; - font-size: 12px; - line-height: 24px; -} -.sw5e.sheet.item .details .power-materials input[type="text"] { - flex: 0 0 48px; - margin-right: 10px; -} -.sw5e.sheet.item h4.damage-header { - margin: 0; - padding: 0; - font-weight: bold; - line-height: 24px; - color: #4b4a44; -} -.sw5e.sheet.item .damage-parts { - list-style: none; - margin: 0; - padding: 0; -} -.sw5e.sheet.item .damage-parts .damage-part { - flex: 0 0 100%; - padding: 0; -} -.sw5e.sheet.item .damage-parts .damage-part input { - flex: 3; -} -.sw5e.sheet.item .damage-parts .damage-part select { - margin-left: 5px; - flex: 1; -} -.sw5e.sheet.item .damage-control { - width: 18px; - flex: 0 0 18px; - line-height: 24px; - float: right; - text-align: right; - color: #7a7971; -} - -.sw5e.sheet.item h4.armorproperties-header { - margin: 0; - padding: 0; - font-weight: bold; - line-height: 24px; - color: #4b4a44; -} -.sw5e.sheet.item .armorproperties-parts { - list-style: none; - margin: 0; - padding: 0; -} -.sw5e.sheet.item .armorproperties-parts .armorproperties-part { - flex: 0 0 100%; - padding: 0; -} -.sw5e.sheet.item .armorproperties-parts .armorproperties-part input { - flex: 3; -} -.sw5e.sheet.item .armorproperties-parts .armorproperties-part select { - margin-left: 5px; - flex: 1; -} -.sw5e.sheet.item .armorproperties-control { - width: 18px; - flex: 0 0 18px; - line-height: 24px; - float: right; - text-align: right; - color: #7a7971; - -} - -.sw5e.sheet.item h4.weaponproperties-header { - margin: 0; - padding: 0; - font-weight: bold; - line-height: 24px; - color: #4b4a44; -} -.sw5e.sheet.item .weaponproperties-parts { - list-style: none; - margin: 0; - padding: 0; -} -.sw5e.sheet.item .weaponproperties-parts .weaponproperties-part { - flex: 0 0 100%; - padding: 0; -} -.sw5e.sheet.item .weaponproperties-parts .weaponproperties-part input { - flex: 3; -} -.sw5e.sheet.item .weaponproperties-parts .weaponproperties-part select { - margin-left: 5px; - flex: 1; -} -.sw5e.sheet.item .weaponproperties-control { - width: 18px; - flex: 0 0 18px; - line-height: 24px; - float: right; - text-align: right; - color: #7a7971; -} - -.sw5e.sheet.item .recharge span { - flex: 0 0 80px; -} -.sw5e.sheet.item .recharge label.checkbox { - flex: 0 0 80px; - text-align: right; -} -.sw5e.sheet.item .weapon-properties label.checkbox { - flex: 0 0 98px; -} -.sw5e.sheet.item .loot-header { - margin-bottom: 10px; -} -.sw5e.sheet.item blockquote { - box-sizing: border-box; - font-family: 'Open Sans'; - margin-bottom: 1em; - padding: 5px 10px; - background-color: #bdc8cc; - border: 0px solid #0d99cc; - border-spacing: 0em; - border-image: none; - box-shadow: 0px 0px 20px rgba(13, 153, 204, 0.5); - border-top: 0.1em solid #0d99cc; - border-bottom: 0.1em solid #0d99cc; - border-left: 0.1em solid #0d99cc; - border-right: 0.1em solid #0d99cc; - color: #000000; - font-size: 1em; -} - -.sw5e.sheet.item blockquote h3 { - font-family: 'Russo One'; - color: #000000 !important; -} -/* ----------------------------------------- */ -/* Chat Cards -/* ----------------------------------------- */ -.sw5e.chat-card { - font-style: normal; - font-size: 12px; -} -.sw5e.chat-card .card-header { - padding: 3px 0; - border-top: 2px groove #FFF; - border-bottom: 2px groove #FFF; -} -.sw5e.chat-card .card-header img { - flex: 0 0 36px; - margin-right: 5px; -} -.sw5e.chat-card .card-header h3 { - flex: 1; - margin: 0; - line-height: 36px; - font-family: "Russo One"; - font-size: 10px; - color: #4b4a44; -} -.sw5e.chat-card .card-header h3:hover { - color: #111; - text-shadow: 0 0 10px red; -} -.sw5e.chat-card .card-content { - margin: 5px 0; -} -.sw5e.chat-card .card-content h3 { - font-size: 12px; - margin: 0; - font-weight: bold; -} -.sw5e.chat-card .card-content > * { - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; -} -.sw5e.chat-card .card-buttons { - margin: 5px 0; -} -.sw5e.chat-card .card-buttons span { - display: block; - line-height: 28px; - text-align: center; - border: 1px solid #CCC; -} -.sw5e.chat-card .card-buttons button { - font-size: 12px; - height: 24px; - line-height: 20px; - margin: 2px 0; -} -.sw5e.chat-card .card-footer { - padding: 3px 0 0; - border-top: 2px groove #FFF; -} -.sw5e.chat-card .card-footer span { - border-right: 2px groove #FFF; - padding: 0 5px 0 0; - font-size: 10px; -} -.sw5e.chat-card .card-footer span:last-child { - border-right: none; - padding-right: 0; -} -.dice-roll .dice-total.success { - color: inherit; - background: #c7d0c0; - border: 1px solid #006c00; -} -.dice-roll .dice-total.failure { - color: inherit; - background: #ffdddd; - border: 1px solid #6e0000; -} -.dice-roll .dice-total.critical { - color: green; -} -.dice-roll .dice-total.fumble { - color: red; -} -/* ----------------------------------------- */ -/* Basic Structure */ -/* ----------------------------------------- */ -.sw5e.sheet.actor.character { - min-width: 680px; - min-height: 736px; - /* ----------------------------------------- */ - /* Sheet Header */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Sheet Body */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Inventory */ - /* ----------------------------------------- */ - /* Encumbrance Bar */ - /* ----------------------------------------- */ - /* Item Controls */ - /* ----------------------------------------- */ -} -.sw5e.sheet.actor.character .sheet-header img.profile { - flex: 0 0 180px; - max-width: 180px; - height: 180px; -} -.sw5e.sheet.actor.character .sheet-header .charlevel { - flex: 0 0 180px; - padding: 0 5px 2px; -} -.sw5e.sheet.actor.character .sheet-header .charlevel .level { - height: 28px; -} -.sw5e.sheet.actor.character .sheet-header .charlevel .experience input[type="text"] { - width: 100px; -} -.sw5e.sheet.actor.character .sheet-header .charlevel .xpbar { - width: 100%; - flex: 0 0 8px; - background: #666; - border: 1px solid #000; - border-radius: 3px; -} -.sw5e.sheet.actor.character .sheet-header .charlevel .xpbar .bar { - height: 4px; - margin: 1px; - display: block; - background: #afebff; - border: 1px solid #000; - border-radius: 2px; -} -.sw5e.sheet.actor.character .sheet-header .summary { - border-bottom: 2px groove #eeede0; -} -.sw5e.sheet.actor.character .sheet-header .attributes { - height: 80px; - margin: 0; -} -.sw5e.sheet.actor.character .sheet-header .attributes .attribute { - height: 80px; - margin: 0; - border: none; - border-right: 2px groove #eeede0; - border-radius: 0; -} -.sw5e.sheet.actor.character .sheet-header .attributes .attribute:last-child { - border-right: none; -} -.sw5e.sheet.actor.character .sheet-header .attributes .attribute .attribute-value { - margin: 5px 0 0; - height: 32px; - line-height: 32px; -} -.sw5e.sheet.actor.character .sheet-header .attributes .attribute .attribute-name { - margin-top: 6px; -} -.sw5e.sheet.actor.character .sheet-header .attributes .attribute .attribute-footer { - margin-bottom: 2px; -} -.sw5e.sheet.actor.character .sheet-header .attributes a.rest { - border: 1px solid #b5b3a4; - border-radius: 2px; - background: rgba(0, 0, 0, 0.05); - padding: 1px 3px; - margin: 0 6px; -} -.sw5e.sheet.actor.character .sheet-header .attributes .hit-dice { - font-size: 16px; -} -.sw5e.sheet.actor.character .attributes .resource .attribute-name { - margin: 0 8px; -} -.sw5e.sheet.actor.character .attributes .resource .attribute-name input[type="text"] { - height: 20px; - margin: 2px 0 -2px; - line-height: 24px; -} -.sw5e.sheet.actor.character .attributes .resource label.checkbox { - margin: 0 3px; -} -.sw5e.sheet.actor.character .attributes .resource label.checkbox input[type="checkbox"] { - transform: scale(1.2); -} -.sw5e.sheet.actor.character .attributes .initiative .attribute-footer input { - width: 32px; -} -.sw5e.sheet.actor.character ul.skills-list { - flex: 0 0 212px; -} -.sw5e.sheet.actor.character ul.skills-list li.skill { - padding: 3px; -} -.sw5e.sheet.actor.character ul.skills-list li.skill h4 { - flex: 1px; - margin: 0; - font-size: 13px; -} -.sw5e.sheet.actor.character .counters .death-saves { - flex: 2; -} -.sw5e.sheet.actor.character .counters .death-saves .counter-value { - flex: 0 0 90px; -} -.sw5e.sheet.actor.character .item-detail.player-class { - flex: 0 0 180px; - text-align: right; - padding-right: 10px; -} -.sw5e.sheet.actor.character .encumbrance { - flex: 0 0 12px; - background: #7a7971; - margin: 1px 15px 0 1px; - border: 1px solid #191813; - border-radius: 3px; - position: relative; -} -.sw5e.sheet.actor.character .encumbrance .encumbrance-bar { - position: absolute; - top: 1px; - left: 1px; - background: #6c8aa5; - height: 8px; - border: 1px solid #cde4ff; - border-radius: 2px; -} -.sw5e.sheet.actor.character .encumbrance .encumbrance-label { - height: 10px; - padding: 0 5px; - position: absolute; - top: 0; - right: 0; - font-size: 13px; - line-height: 12px; - text-align: right; - color: #EEE; - text-shadow: 0 0 5px #000; -} -.sw5e.sheet.actor.character .encumbrance .encumbrance-breakpoint { - display: block; - position: absolute; -} -.sw5e.sheet.actor.character .encumbrance .encumbrance-breakpoint.encumbrance-33 { - left: 33%; -} -.sw5e.sheet.actor.character .encumbrance .encumbrance-breakpoint.encumbrance-66 { - left: 66%; -} -.sw5e.sheet.actor.character .encumbrance .arrow-up { - bottom: 0; - width: 0; - height: 0; - border-left: 4px solid transparent; - border-right: 4px solid transparent; - border-bottom: 4px solid #666; -} -.sw5e.sheet.actor.character .encumbrance .arrow-down { - top: 0; - width: 0; - height: 0; - border-left: 4px solid transparent; - border-right: 4px solid transparent; - border-top: 4px solid #666; -} -.sw5e.sheet.actor.character .encumbrance.encumbered .arrow-up { - border-bottom: 4px solid #000; -} -.sw5e.sheet.actor.character .encumbrance.encumbered .arrow-down { - border-top: 4px solid #000; -} -.sw5e.sheet.actor.character .inventory .item-controls, -.sw5e.sheet.actor.character .powerbook .item-controls { - flex: 0 0 68px; -} -.sw5e.sheet.actor.character .inventory .item-controls .item-toggle, -.sw5e.sheet.actor.character .powerbook .item-controls .item-toggle { - color: #b5b3a4; -} -.sw5e.sheet.actor.character .inventory .item-controls .item-toggle.active, -.sw5e.sheet.actor.character .powerbook .item-controls .item-toggle.active { - color: #4b4a44; -} -.sw5e.sheet.actor.character .inventory .item-controls .item-toggle.fixed, -.sw5e.sheet.actor.character .powerbook .item-controls .item-toggle.fixed { - color: #44191A; -} -.sw5e.sheet.actor.character .inventory .item-controls .item-toggle.fixed:hover, -.sw5e.sheet.actor.character .powerbook .item-controls .item-toggle.fixed:hover { - text-shadow: none; -} -/* ----------------------------------------- */ -/* Basic Structure */ -/* ----------------------------------------- */ -.sw5e.sheet.actor.npc { - min-width: 800px; - min-height: 658px; -} -/* ----------------------------------------- */ -/* Journal Entry -/* ----------------------------------------- */ -.journal-sheet .window-content { - padding: 0; - background: url("ui/parchment.webp") repeat; -} -.journal-sheet form { - overflow: hidden; - padding: 5px; - font-family: "Open Sans"; - background: url("ui/parchment.webp") repeat; -} -.journal-sheet form h2 { - font-family: "Russo One"; - font-size: 18px; - text-transform: uppercase; - color: #c40f0f; -} - -.journal-sheet form input[name="name"] { - height: 36px; - font-family: "Russo One"; - font-size: 24px; - text-transform: uppercase; - color: #c40f0f; - line-height: 36px; -} -.journal-sheet form select { - width: 100%; - height: 30px; - margin: 5px 0; -} -.journal-sheet form .editor { - height: calc(100% - 115px); -} -.journal-sheet form button[type="submit"] { - margin-top: 5px; -} -.journal-sheet form img { - border: none -} -.journal-sheet form table { - border: none; - background-color: none; -} -/* ---------------------------------------- */ -/* Roll Table Sheet */ -/* ---------------------------------------- */ -.roll-table-config .window-content { - background: url("ui/parchment.webp") repeat; -} -.roll-table-config form { - background: url("ui/parchment.webp") repeat; -} -.roll-table-config h1.name input { - width: 100%; - height: 36px; - margin: 0 0 5px; - font-family: "Russo One"; - font-size: 24px; - text-transform: uppercase; - color: #c40f0f; -} -.roll-table-config textarea { - resize: none; - min-height: 44px; - font-family: "Open Sans"; - background: url("ui/parchment.webp") repeat; -} -.roll-table-config ol.table-results { - list-style: none; - margin: 0; - padding: 0; - max-height: 600px; - overflow-y: auto; -} -.roll-table-config ol.table-results .table-result { - padding: 2px 0; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; -} -.roll-table-config ol.table-results .table-result input[type="text"] { - width: 100%; - height: 28px; -} -.roll-table-config ol.table-results .table-result > div { - line-height: 36px; - margin-right: 5px; -} -.roll-table-config ol.table-results .table-result .result-image { - flex: 0 0 36px; - width: 36px; - height: 36px; - text-align: center; - margin: 0; -} -.roll-table-config ol.table-results .table-result .result-image img { - border: none; - object-fit: cover; - object-position: 50% 0; -} -.roll-table-config ol.table-results .table-result .result-type { - flex: 0 0 110px; -} -.roll-table-config ol.table-results .table-result .result-details { - flex: 1; -} -.roll-table-config ol.table-results .table-result .result-details select { - width: 40%; -} -.roll-table-config ol.table-results .table-result .result-details .result-target { - width: 58%; - margin-left: 3px; -} -.roll-table-config ol.table-results .table-result .result-weight { - flex: 0 0 50px; - text-align: center; -} -.roll-table-config ol.table-results .table-result .result-range { - flex: 0 0 92px; - text-align: center; -} -.roll-table-config ol.table-results .table-result .result-range input { - width: 36px; -} -.roll-table-config ol.table-results .table-result .result-controls { - flex: 0 0 40px; - margin: 0; - text-align: center; -} -.roll-table-config ol.table-results .table-result .result-controls a { - width: 20px; -} -.roll-table-config ol.table-results .table-result .result-controls .lock-result { - color: #b5b3a4; -} -.roll-table-config ol.table-results .table-result.roulette { - background: url("ui/parchment.webp") repeat; - border-top: 1px solid #000; - border-bottom: 1px solid #000; -} -.roll-table-config ol.table-results .table-result.drawn { - background: rgba(0, 0, 0, 0.15); -} -.roll-table-config ol.table-results .table-result.drawn .lock-result { - color: #111; -} -.roll-table-config ol.table-results .table-header { - background: url("ui/parchment.webp") repeat; - border: 1px solid #7a7971; - line-height: 24px; - font-weight: bold; -} -.icon:before { - display: inline-block; - font-style: normal; - font-variant: normal; - text-rendering: auto; - -webkit-font-smoothing: antialiased; -} -a.entity-link { - background: #DDD; - padding: 1px 4px; - border: 1px solid #4b4a44; - border-radius: 2px; - white-space: nowrap; - word-break: break-all; -} -a.entity-link i::before { - content: url("ui/jedi-order.svg") !important; - display: inline-block; - position: relative; - top: 2px; - height: 15px; - width: 15px; +/* Deprecated vars */ +/* ----------------------------------------- */ +/* Fonts */ +/* ----------------------------------------- */ +/* russo-one-regular - latin */ +@font-face { + font-family: 'Russo One'; + font-style: normal; + font-weight: 400; + src: url('./fonts/RussoOne.ttf'); +} +/* bungee-inline-regular - latin */ +@font-face { + font-family: 'Bungee Inline'; + font-style: normal; + font-weight: 400; + src: url('./fonts/BungeeInline.ttf'); +} +.bungeeInline { + font-family: 'Bungee Inline'; + font-size: 20px; + font-weight: 400; +} +/* open-sans-regular - latin */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: url('./fonts/OpenSans-Regular.ttf'); +} +.openSans { + font-family: 'Open Sans'; + font-size: 20px; + font-weight: 400; +} +/* ----------------------------------------- */ +/* Sheet Styles */ +/* ----------------------------------------- */ +/* ----------------------------------------- */ +/* Flexbox */ +/* ----------------------------------------- */ +.flexrow { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: flex-start; +} +.flexrow > * { + flex: 1; +} +.flexrow .flex1 { + flex: 1; +} +.flexrow .flex2 { + flex: 2; +} +.flexrow .flex3 { + flex: 3; +} +.flexrow .flex4 { + flex: 4; +} +.flexcol { + display: flex; + flex-direction: column; + flex-wrap: nowrap; +} +.flexcol > * { + flex: 1; +} +.flexcol .flex1 { + flex: 1; +} +.flexcol .flex2 { + flex: 2; +} +.flexcol .flex3 { + flex: 3; +} +.flexcol .flex4 { + flex: 4; +} +/* ----------------------------------------- */ +/* All DnD5e Apps */ +/* ----------------------------------------- */ +.sw5e { + /* ----------------------------------------- */ + /* Element Styles */ + /* ----------------------------------------- */ + /* Form Groups */ + /* Tags */ +} +.sw5e .window-content { + background: linear-gradient(90deg, #afc6d6 0%, #D6D6D6 30%, #D6D6D6 70%, #afc6d6); + font-size: 13px; + color: #191813; +} +.sw5e input[type="text"], +.sw5e input[type="number"], +.sw5e select { + height: calc(100% - 2px); + border: 1px solid #7a7971; + background: rgba(0, 0, 0, 0.05); + color: #191813; +} +.sw5e input[type="text"]:hover, +.sw5e input[type="number"]:hover, +.sw5e input[type="text"]:focus, +.sw5e input[type="number"]:focus { + border: 1px solid #111; + box-shadow: 0 0 8px red; +} +.sw5e input:disabled, +.sw5e select:disabled, +.sw5e textarea:disabled { + color: #4b4a44; +} +.sw5e input:disabled:hover, +.sw5e select:disabled:hover, +.sw5e textarea:disabled:hover, +.sw5e input:disabled:focus, +.sw5e select:disabled:focus, +.sw5e textarea:disabled:focus { + box-shadow: none !important; + border: 1px solid transparent !important; + outline: none !important; +} +.sw5e button { + background: rgba(0, 0, 0, 0.1); + border: 2px groove #eeede0; +} +.sw5e label.checkbox { + flex: auto; + padding: 0; + margin: 0; + height: 22px; + line-height: 22px; + font-size: 11px; +} +.sw5e label.checkbox > input[type="checkbox"] { + width: 16px; + height: 16px; + margin: 0 2px 0 0; + position: relative; + top: 4px; +} +.sw5e label.checkbox.right > input[type="checkbox"] { + margin: 0 0 0 2px; +} +.sw5e .form-group label { + flex: 2; + color: #4b4a44; + font-weight: bold; +} +.sw5e .form-group .form-fields { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: flex-start; +} +.sw5e .form-group .form-fields > * { + flex: 1; +} +.sw5e .form-group .form-fields .flex1 { + flex: 1; +} +.sw5e .form-group .form-fields .flex2 { + flex: 2; +} +.sw5e .form-group .form-fields .flex3 { + flex: 3; +} +.sw5e .form-group .form-fields .flex4 { + flex: 4; +} +.sw5e .form-group .form-fields > * { + margin: 0 3px 0 0; +} +.sw5e .form-group .form-fields > *:last-child { + margin-right: 0; +} +.sw5e .form-group.stacked label { + flex: 0 0 100%; + margin: 0; +} +.sw5e .form-group.stacked label.checkbox { + flex: auto; + text-align: left; +} +.sw5e .form-header { + margin: 0 0 0.25em 0; + padding: 2px 0; + border-top: 2px groove #eeede0; + border-bottom: 2px groove #eeede0; + font-family: 'Russo One'; + font-size: 20px; + font-weight: 400; +} +.sw5e .tag { + display: inline-block; + margin: 0 2px 0 0; + padding: 0 3px; + font-size: 10px; + line-height: 16px; + border: 1px solid #999; + border-radius: 3px; + background: rgba(0, 0, 0, 0.05); +} +/* ----------------------------------------- */ +/* Entity Sheets Specifically */ +/* ----------------------------------------- */ +.sw5e.sheet { + /* ----------------------------------------- */ + /* Element Styles */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* TinyMCE */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Sheet Header */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Sheet Navigation */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Sheet Body */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* List Filters */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Trait Lists */ + /* ----------------------------------------- */ +} +.sw5e.sheet .window-content { + overflow-y: hidden; + padding: 5px; + background: linear-gradient(90deg, #afc6d6 0%, #D6D6D6 30%, #D6D6D6 70%, #afc6d6); + font-size: 13px; + color: #191813; +} +.sw5e.sheet .window-content form { + height: 100%; + overflow: hidden; +} +.sw5e.sheet .window-content .tab { + height: 100%; + overflow-y: auto; + align-content: flex-start; +} +.sw5e.sheet input[type="text"], +.sw5e.sheet input[type="number"] { + background: none; + border: 1px solid transparent; +} +.sw5e.sheet input[type="text"]:hover, +.sw5e.sheet input[type="number"]:hover, +.sw5e.sheet input[type="text"]:focus, +.sw5e.sheet input[type="number"]:focus { + border: 1px solid #111; +} +.sw5e.sheet select { + flex: 1; + font-size: 12px; + height: 22px; + background: transparent; +} +.sw5e.sheet .editable .rollable:hover { + color: #000; + text-shadow: 0 0 10px red; + cursor: pointer; +} +.sw5e.sheet span.sep { + flex: none; + margin: 0 1px; + display: inline; + position: relative; + color: #7a7971; + font-weight: normal; +} +.sw5e.sheet .editor { + height: 100%; +} +.sw5e.sheet .editor .tox-toolbar-overlord, +.sw5e.sheet .editor .tox-toolbar__primary { + background: none; +} +.sw5e.sheet .sheet-header { + flex: 0 0 100px; + border-bottom: 2px groove #eeede0; + /* Character Name */ + /* Profile Image */ + /* Header Summary Details */ +} +.sw5e.sheet .sheet-header .header-details { + font-family: 'Russo One'; + font-size: 20px; + font-weight: 400; +} +.sw5e.sheet .sheet-header h1 { + flex: 1; + border-bottom: none; + height: 60px; + margin: 0; + padding: 5px; +} +.sw5e.sheet .sheet-header h1 input { + display: block; + height: 50px; + font-size: 32px; + margin: 0; +} +.sw5e.sheet .sheet-header img.profile { + flex: 0 0 100px; + max-width: 100px; + height: 100px; + object-fit: contain; + border: none; + border-right: 2px groove #eeede0; +} +.sw5e.sheet .sheet-header .summary { + flex: 0 0 100%; + height: 40px; + margin: 0; + padding: 0; + list-style: none; + border-top: 2px groove #eeede0; + border-bottom: none; +} +.sw5e.sheet .sheet-header .summary li { + height: calc(100% - 6px); + float: left; + margin: 2px 0; + padding: 0; + border-right: 2px groove #eeede0; + line-height: 34px; + color: #4b4a44; +} +.sw5e.sheet .sheet-header .summary li:last-child { + border-right: none; +} +.sw5e.sheet .sheet-navigation { + flex: 0 0 30px; + margin-bottom: 5px; + font-family: 'Russo One'; + font-size: 14px; + font-weight: 400; +} +.sw5e.sheet .sheet-navigation .item { + height: 30px; + line-height: 32px; + margin: 0 24px; + border-bottom: 3px solid #b5b3a4; +} +.sw5e.sheet .sheet-navigation .item.active { + border-bottom: 3px solid #44191A; +} +.sw5e.sheet .sheet-body { + flex: 1; + overflow: hidden; +} +.sw5e.sheet .filter-list { + list-style: none; + margin: 0; + padding: 0; + line-height: 16px; + max-width: 70%; +} +.sw5e.sheet .filter-list .filter-icon { + flex: none; + font-size: 14px; + color: #7a7971; +} +.sw5e.sheet .filter-list .filter-item { + text-align: center; + font-size: 12px; + margin: 0 6px 0 0; + border-bottom: 3px solid #b5b3a4; + white-space: nowrap; +} +.sw5e.sheet .filter-list .filter-item:last-child { + margin: 0; +} +.sw5e.sheet .filter-list .filter-item:hover { + text-shadow: 0 0 4px red; + border-bottom: 3px solid #7a7971; +} +.sw5e.sheet .filter-list .filter-item.active { + border-bottom: 3px solid #44191A; +} +.sw5e.sheet .traits { + margin: 5px 0 0; +} +.sw5e.sheet .traits .trait-selector { + flex: 0 0 16px; + padding: 2px 0; + color: #999; + font-size: 10px; +} +.sw5e.sheet .traits .traits-list { + flex: 0 0 100%; + line-height: 20px; + list-style: none; + margin: 0; + padding: 0; +} +/* ----------------------------------------- */ +/* Trait Selector +/* ----------------------------------------- */ +#trait-selector .trait-list { + list-style: none; + margin: 0; + padding: 0; +} +#trait-selector input[type="text"] { + height: 24px; + margin: 2px; +} +.sw5e.sheet.actor { + /* ----------------------------------------- */ + /* Sheet Header */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* General Styles */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Attributes */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Ability Scores */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Skills */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Statuses */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Traits */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Inventory Lists */ + /* ----------------------------------------- */ + /* Inventory List Filters */ + /* Encumbrance Bar */ + /* ----------------------------------------- */ + /* Powerbook */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Active Effects */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* TinyMCE */ + /* ----------------------------------------- */ +} +.sw5e.sheet.actor .sheet-header img.profile { + flex: 0 0 160px; + max-width: 160px; + height: 160px; +} +.sw5e.sheet.actor .sheet-header h1.charname { + flex: 1; + height: 60px; + padding: 0; +} +.sw5e.sheet.actor .sheet-header h1.charname input { + height: 40px; + margin: 10px 0; +} +.sw5e.sheet.actor .sheet-header .header-exp { + flex: 0 0 150px; + margin-right: 3px; + height: 60px; + justify-content: flex-end; + text-align: right; +} +.sw5e.sheet.actor .sheet-header .summary { + height: 30px; + border-bottom: 2px groove #eeede0; + font-size: 18px; +} +.sw5e.sheet.actor .sheet-header .summary input, +.sw5e.sheet.actor .sheet-header .summary span { + display: block; + height: 24px; + line-height: 24px; +} +.sw5e.sheet.actor .sheet-header .attributes { + flex: 0 0 100%; + margin: 0; +} +.sw5e.sheet.actor .sheet-header .attributes .attribute { + height: 70px; + margin: 0; + border: none; + border-right: 2px groove #eeede0; + border-radius: 0; +} +.sw5e.sheet.actor .sheet-header .attributes .attribute:last-child { + border-right: none; +} +.sw5e.sheet.actor .sheet-header .attributes .attribute .attribute-value { + height: 30px; + line-height: 30px; +} +.sw5e.sheet.actor .attributes input.temphp { + width: 48%; +} +.sw5e.sheet.actor h4.box-title { + height: 18px; + line-height: 16px; + margin: 4px 8px 2px; + font-family: 'Russo One'; + font-size: 14px; + font-weight: 400; + color: #4b4a44; + border-bottom: 1px solid #c9c7b8; +} +.sw5e.sheet.actor .tab.attributes { + overflow: hidden; +} +.sw5e.sheet.actor ul.attributes { + flex: 0 0 60px; + list-style: none; + margin: 0; + padding: 0; +} +.sw5e.sheet.actor ul.attributes li.attribute { + height: 60px; + margin: 0 5px 0 0; + border: 2px groove #eeede0; + border-radius: 4px; + text-align: center; +} +.sw5e.sheet.actor ul.attributes li.attribute:last-child { + margin: 0; +} +.sw5e.sheet.actor ul.attributes li.attribute .attribute-value { + display: flex; + justify-content: center; + align-items: center; + height: 28px; + line-height: 28px; + font-family: 'Russo One'; + font-size: 20px; + font-weight: 400; +} +.sw5e.sheet.actor ul.attributes li.attribute .attribute-value > * { + font-weight: 400; + font-size: 24px; +} +.sw5e.sheet.actor ul.attributes li.attribute .attribute-value.multiple input { + flex: 0 0 33%; +} +.sw5e.sheet.actor ul.attributes li.attribute .attribute-footer { + flex: 0 0 18px; + margin-top: -1px; + line-height: 18px; + font-family: "Signika", sans-serif; + font-size: 12px; + font-weight: 400; +} +.sw5e.sheet.actor .ability-scores { + flex: 0 0 100px; + height: 440px; + list-style: none; + margin: 0; + padding: 0; + font-family: 'Russo One'; + font-size: 20px; + font-weight: 400; + border: 2px groove #eeede0; + border-radius: 3px; +} +.sw5e.sheet.actor .ability-scores .ability { + height: 70px; + text-align: center; + border-bottom: 2px groove #eeede0; +} +.sw5e.sheet.actor .ability-scores .ability:last-child { + border-bottom: none; + margin-bottom: -3px; +} +.sw5e.sheet.actor .ability-scores .ability input.ability-score { + height: 30px; + width: 36px; + margin: 0 auto; + line-height: 32px; + font-size: 24px; +} +.sw5e.sheet.actor .ability-scores .ability .ability-modifiers { + height: 24px; + margin: -8px 0 0; +} +.sw5e.sheet.actor .ability-scores .ability .ability-modifiers span.ability-mod, +.sw5e.sheet.actor .ability-scores .ability .ability-modifiers span.ability-save { + flex: 0 0 24px; + height: 22px; + line-height: 22px; + font-size: 16px; + border-top: 2px groove #eeede0; +} +.sw5e.sheet.actor .ability-scores .ability .ability-modifiers span.ability-mod { + border-right: 2px groove #eeede0; +} +.sw5e.sheet.actor .ability-scores .ability .ability-modifiers .ability-proficiency { + line-height: 30px; +} +.sw5e.sheet.actor .ability-scores .ability .ability-modifiers span.ability-save { + border-left: 2px groove #eeede0; +} +.sw5e.sheet.actor .proficiency-toggle { + color: #b5b3a4; + font-size: 12px; +} +.sw5e.sheet.actor .proficient .proficiency-toggle { + color: #4b4a44; +} +.sw5e.sheet.actor .locked .proficiency-toggle { + color: #b5b3a4; + text-shadow: none; + cursor: default; +} +.sw5e.sheet.actor ul.skills-list { + flex: 0 0 180px; + height: 440px; + list-style: none; + margin: 0 5px 0; + padding: 3px 0 2px; + border: 2px groove #eeede0; + border-radius: 3px; +} +.sw5e.sheet.actor ul.skills-list li.skill { + height: 24px; + padding: 3px 2px; +} +.sw5e.sheet.actor ul.skills-list li.skill:nth-child(even) { + background: rgba(0, 0, 0, 0.05); +} +.sw5e.sheet.actor ul.skills-list li.skill h4 { + flex: 1px; + margin: 0; + font-size: 11px; + line-height: 18px; +} +.sw5e.sheet.actor ul.skills-list li.skill .skill-proficiency { + flex: 0 0 16px; + line-height: 18px; +} +.sw5e.sheet.actor ul.skills-list li.skill .skill-ability { + flex: 0 0 26px; + text-transform: capitalize; +} +.sw5e.sheet.actor ul.skills-list li.skill .skill-mod { + flex: 0 0 20px; +} +.sw5e.sheet.actor ul.skills-list li.skill .skill-passive { + flex: 0 0 26px; + text-align: center; + color: #7a7971; +} +.sw5e.sheet.actor .counters { + flex: none; + padding: 5px 0; + margin: 0; + border-bottom: 2px groove #eeede0; +} +.sw5e.sheet.actor .counters .counter { + height: 20px; + line-height: 20px; +} +.sw5e.sheet.actor .counters .counter h4 { + flex: auto; + margin: 0; + font-size: 13px; + font-weight: bold; + color: #4b4a44; +} +.sw5e.sheet.actor .counters .counter .counter-value { + flex: none; + text-align: right; +} +.sw5e.sheet.actor .counters .counter .counter-value > * { + display: inline; +} +.sw5e.sheet.actor .counters .counter input[type="text"], +.sw5e.sheet.actor .counters .counter input[type="number"] { + height: 20px; + max-width: 20px; + margin: 0; + padding: 0; + text-align: center; +} +.sw5e.sheet.actor .counters .counter input[type="checkbox"] { + position: relative; + width: 16px; + height: 16px; + margin: 0; + top: 4px; +} +.sw5e.sheet.actor .counters .counter span.sep { + font-size: 12px; +} +.sw5e.sheet.actor .center-pane { + height: 100%; + padding: 0 5px 0 3px; + overflow-y: auto; + scrollbar-width: thin; +} +.sw5e.sheet.actor .traits .form-group, +.sw5e.sheet.actor .traits .form-group-stacked { + margin: 0 0 3px 0; + justify-content: space-between; +} +.sw5e.sheet.actor .traits .configure-flags { + flex: 1; +} +.sw5e.sheet.actor .traits label { + flex: none; + line-height: 20px; + font-weight: bold; + margin: 0 10px 0 0; +} +.sw5e.sheet.actor .traits select { + max-width: 200px; +} +.sw5e.sheet.actor .traits input { + text-align: right; +} +.sw5e.sheet.actor .traits i.fas { + float: right; + margin-right: 3px; + text-align: right; + color: #999; +} +.sw5e.sheet.actor .traits i.fas:hover { + color: #111; + text-shadow: 0 0 10px red; +} +.sw5e.sheet.actor .traits .inactive { + color: #7a7971; +} +.sw5e.sheet.actor .tab.features, +.sw5e.sheet.actor .tab.inventory, +.sw5e.sheet.actor .tab.powerbook { + overflow-y: hidden; +} +.sw5e.sheet.actor .inventory-filters { + margin: 0 8px; + flex: 0 0 20px; + justify-content: flex-end; +} +.sw5e.sheet.actor .inventory-filters .currency { + flex: 0 0 100%; + list-style: none; + margin: 4px 0 8px; + padding: 0; + font-size: 12px; +} +.sw5e.sheet.actor .inventory-filters .currency label { + flex: 0; + margin-left: 8px; + text-align: right; + line-height: 20px; + color: #7a7971; +} +.sw5e.sheet.actor .inventory-filters .currency input[type="text"] { + flex: 0 0 48px; + text-align: center; + margin-left: 8px; + border-bottom: 2px groove #eeede0; +} +.sw5e.sheet.actor .inventory-list { + list-style: none; + margin: 0; + padding: 0 5px; + overflow-y: auto; + scrollbar-width: thin; + color: #7a7971; +} +.sw5e.sheet.actor .inventory-list .item { + line-height: 30px; + padding: 0 2px; + border-bottom: 1px solid #c9c7b8; +} +.sw5e.sheet.actor .inventory-list .item:last-child { + border-bottom: none; +} +.sw5e.sheet.actor .inventory-list .item .item-name { + cursor: pointer; + max-height: 30px; + overflow: hidden; +} +.sw5e.sheet.actor .inventory-list .item .item-name .item-image { + flex: 0 0 30px; + background-size: 30px; + margin-right: 5px; +} +.sw5e.sheet.actor .inventory-list .item .item-name h4 { + margin: 0; + white-space: nowrap; + overflow-x: hidden; +} +.sw5e.sheet.actor .inventory-list .item .item-name.rollable:hover .item-image { + background-image: url("../../icons/svg/d20-grey.svg") !important; +} +.sw5e.sheet.actor .inventory-list .item .item-name.rollable .item-image:hover { + background-image: url("../../icons/svg/d20-black.svg") !important; +} +.sw5e.sheet.actor .inventory-list .item .item-name i.attuned { + color: #7a7971; +} +.sw5e.sheet.actor .inventory-list .item .item-uses input { + width: 24px; + text-align: center; +} +.sw5e.sheet.actor .inventory-list .item .item-properties { + margin-top: 3px; +} +.sw5e.sheet.actor .inventory-list .item .item-recharge { + flex: 0 0 80px; + text-align: right; + font-size: 11px; + color: #7a7971; + white-space: nowrap; +} +.sw5e.sheet.actor .inventory-list .inventory-header { + margin: 2px 0; + padding: 0; + align-items: center; + background: rgba(0, 0, 0, 0.05); + border: 2px groove #eeede0; + font-weight: bold; + line-height: 24px; +} +.sw5e.sheet.actor .inventory-list .inventory-header h3 { + margin: 0 -5px 0 0; + padding-left: 5px; + font-family: 'Russo One'; + font-size: 20px; + font-weight: 400; + font-size: 16px; +} +.sw5e.sheet.actor .inventory-list .inventory-header .item-controls a.item-create { + flex: 0 0 100%; +} +.sw5e.sheet.actor .inventory-list .item-name { + color: #191813; +} +.sw5e.sheet.actor .inventory-list .item-detail { + flex: 0 0 70px; + font-size: 12px; + color: #7a7971; + text-align: center; + border-right: 1px solid #c9c7b8; + word-break: break-word; + white-space: nowrap; + overflow: hidden; +} +.sw5e.sheet.actor .inventory-list .item-detail:last-child { + border-right: none; +} +.sw5e.sheet.actor .inventory-list .item-detail.item-action { + flex: 0 0 100px; +} +.sw5e.sheet.actor .inventory-list .item-weight { + flex: 0 0 60px; + border-left: 1px solid #c9c7b8; + border-right: 1px solid #c9c7b8; +} +.sw5e.sheet.actor .inventory-list .item-list { + list-style: none; + margin: 0; + padding: 0; +} +.sw5e.sheet.actor .inventory-list .item-controls { + flex: 0 0 44px; + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: flex-start; + justify-content: flex-end; +} +.sw5e.sheet.actor .inventory-list .item-controls > * { + flex: 1; +} +.sw5e.sheet.actor .inventory-list .item-controls .flex1 { + flex: 1; +} +.sw5e.sheet.actor .inventory-list .item-controls .flex2 { + flex: 2; +} +.sw5e.sheet.actor .inventory-list .item-controls .flex3 { + flex: 3; +} +.sw5e.sheet.actor .inventory-list .item-controls .flex4 { + flex: 4; +} +.sw5e.sheet.actor .inventory-list .item-controls a { + flex: 0 0 22px; + font-size: 12px; + text-align: center; + color: #7a7971; +} +.sw5e.sheet.actor .inventory-list .item-summary { + flex: 0 0 100%; + font-size: 12px; + line-height: 16px; + padding: 0.25em 0.5em; + border-top: 1px solid #c9c7b8; +} +.sw5e.sheet.actor .encumbrance { + flex: 0 0 12px; + background: #7a7971; + margin: 1px 15px 0 1px; + border: 1px solid #191813; + border-radius: 3px; + position: relative; +} +.sw5e.sheet.actor .encumbrance .encumbrance-bar { + position: absolute; + top: 1px; + left: 1px; + background: #6c8aa5; + height: 8px; + border: 1px solid #cde4ff; + border-radius: 2px; +} +.sw5e.sheet.actor .encumbrance .encumbrance-label { + height: 10px; + padding: 0 5px; + position: absolute; + top: 0; + right: 0; + font-size: 13px; + line-height: 12px; + text-align: right; + color: #EEE; + text-shadow: 0 0 5px #000; +} +.sw5e.sheet.actor .encumbrance .encumbrance-breakpoint { + display: block; + position: absolute; +} +.sw5e.sheet.actor .encumbrance .encumbrance-breakpoint.encumbrance-33 { + left: 33%; +} +.sw5e.sheet.actor .encumbrance .encumbrance-breakpoint.encumbrance-66 { + left: 66%; +} +.sw5e.sheet.actor .encumbrance .arrow-up { + bottom: 0; + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-bottom: 4px solid #666; +} +.sw5e.sheet.actor .encumbrance .arrow-down { + top: 0; + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 4px solid #666; +} +.sw5e.sheet.actor .encumbrance.encumbered .arrow-up { + border-bottom: 4px solid #000; +} +.sw5e.sheet.actor .encumbrance.encumbered .arrow-down { + border-top: 4px solid #000; +} +.sw5e.sheet.actor .powercasting-ability { + flex: 0 0 240px; + margin: 0; +} +.sw5e.sheet.actor .powercasting-ability input, +.sw5e.sheet.actor .powercasting-ability span { + flex: 0 0 32px; + text-align: center; +} +.sw5e.sheet.actor .powercasting-ability select { + margin: 0 5px; + flex: 0 0 150px; +} +.sw5e.sheet.actor .powercasting-ability h3.power-dc { + flex: 1; + text-align: right; +} +.sw5e.sheet.actor .power-slots, +.sw5e.sheet.actor .power-comps { + flex: 0 0 75px; + padding-right: 5px; + text-align: right; + font-size: 12px; + color: #7a7971; + border-right: 1px solid #c9c7b8; +} +.sw5e.sheet.actor .power-slots input { + display: inline; + max-width: 20px; +} +.sw5e.sheet.actor .power-slots .sep { + font-size: 13px; + font-weight: normal; +} +.sw5e.sheet.actor .power-uses { + padding-right: 8px; + text-align: right !important; +} +.sw5e.sheet.actor .power-school, +.sw5e.sheet.actor .power-action, +.sw5e.sheet.actor .power-target { + flex: 0 0 100px; + font-size: 12px; + color: #7a7971; + text-align: center; + border-right: 1px solid #c9c7b8; +} +.sw5e.sheet.actor .power-component { + line-height: 14px; +} +.sw5e.sheet.actor .power-component.C, +.sw5e.sheet.actor .power-component.R { + display: inline-block; + text-align: center; + padding-top: 1px; + width: 16px; + color: #c9c7b8; + background: rgba(0, 0, 0, 0.4); + border: 1px solid transparent; + border-radius: 8px; +} +.sw5e.sheet.actor .powerbook-empty .item-controls { + flex: 1; +} +.sw5e.sheet.actor .effects .effect-name { + flex: 2; + align-items: center; + color: #191813; +} +.sw5e.sheet.actor .effects .effect-name h4 { + margin: 0; +} +.sw5e.sheet.actor .effects .effect-icon { + flex: 0 0 30px; + height: 30px; + margin-right: 5px; + border: none; +} +.sw5e.sheet.actor .effects .effect-source, +.sw5e.sheet.actor .effects .effect-duration { + text-align: center; + border-left: 1px solid #c9c7b8; + border-right: 1px solid #c9c7b8; +} +.sw5e.sheet.actor .effects .effect-controls { + flex: 0 0 60px; + text-align: right; +} +.sw5e.sheet.actor .effects .effect { + align-items: center; + border-bottom: 1px solid #c9c7b8; +} +.sw5e.sheet.actor .effects .effect:last-child { + border-bottom: none; +} +.sw5e.sheet.actor .editor { + padding: 0 8px; +} +.sw5e.sheet.item { + min-height: 420px; + /* ----------------------------------------- */ + /* Sheet Header */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Item Details Form */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Item Actions */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Item Actions */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Loot Sheet (No Tabs) */ + /* ----------------------------------------- */ +} +.sw5e.sheet.item .sheet-header img.profile { + border: 2px solid #000; +} +.sw5e.sheet.item .sheet-header .item-subtitle { + flex: 0 0 80px; + height: 60px; + margin: 0; + padding: 5px; + text-align: right; + color: #7a7971; +} +.sw5e.sheet.item .sheet-header .item-subtitle .item-type { + font-size: 24px; + line-height: 26px; + margin: 0; +} +.sw5e.sheet.item .sheet-header .item-subtitle .item-status { + font-size: 16px; + line-height: 24px; +} +.sw5e.sheet.item .sheet-navigation { + margin-bottom: 5px; +} +.sw5e.sheet.item .sheet-navigation .item { + font-size: 18px; +} +.sw5e.sheet.item .sheet-body { + overflow: hidden; +} +.sw5e.sheet.item .sheet-body .tab { + padding: 0 5px; + overflow: hidden auto; +} +.sw5e.sheet.item .sheet-body .item-properties { + flex: 0 0 120px; + margin: 5px 5px 5px 0; + padding-right: 5px; + border-right: 2px groove #eeede0; +} +.sw5e.sheet.item .sheet-body .item-properties .form-group { + margin: 0; +} +.sw5e.sheet.item .sheet-body .item-properties .form-group label { + line-height: 20px; +} +.sw5e.sheet.item .sheet-body .item-properties .form-group input { + text-align: right; +} +.sw5e.sheet.item .sheet-body .item-properties .properties-list { + list-style: none; + margin: 0; + padding: 0; +} +.sw5e.sheet.item .sheet-body .item-properties .properties-list li { + margin: 3px 0; + padding: 0 2px; + background: rgba(0, 0, 0, 0.05); + border: 2px groove #eeede0; + text-align: center; + font-size: 12px; + line-height: 18px; +} +.sw5e.sheet.item .details input[type="text"], +.sw5e.sheet.item .details input[type="number"], +.sw5e.sheet.item .details select { + height: 24px; + border: 1px solid #7a7971; + background: rgba(0, 0, 0, 0.05); +} +.sw5e.sheet.item .details .form-group span { + text-align: center; + line-height: 24px; +} +.sw5e.sheet.item .details .form-group.input-select select { + flex: 1.8; +} +.sw5e.sheet.item .details .form-group.input-select-select select { + flex: 1.5; +} +.sw5e.sheet.item .details .form-group.uses-per input { + flex: 1; +} +.sw5e.sheet.item .details .form-group.uses-per span { + flex: 0 0 16px; +} +.sw5e.sheet.item .details .form-group.uses-per select { + flex: 3; +} +.sw5e.sheet.item .details span.sep { + flex: 0 0 8px; +} +.sw5e.sheet.item .details .prepared { + flex: 1.3 !important; + text-align: right; + padding-right: 10px; +} +.sw5e.sheet.item .details .power-materials { + flex: 0 0 100%; + margin: 0.25em 0; + justify-content: flex-end; +} +.sw5e.sheet.item .details .power-materials label { + flex: 0 0 64px; + text-align: right; + margin-right: 5px; + font-size: 12px; + line-height: 24px; +} +.sw5e.sheet.item .details .power-materials input[type="text"] { + flex: 0 0 48px; + margin-right: 10px; +} +.sw5e.sheet.item h4.damage-header { + margin: 0; + padding: 0; + font-weight: bold; + line-height: 24px; + color: #4b4a44; +} +.sw5e.sheet.item .damage-parts { + list-style: none; + margin: 0; + padding: 0; +} +.sw5e.sheet.item .damage-parts .damage-part { + flex: 0 0 100%; + padding: 0; +} +.sw5e.sheet.item .damage-parts .damage-part input { + flex: 3; +} +.sw5e.sheet.item .damage-parts .damage-part select { + margin-left: 5px; + flex: 1; +} +.sw5e.sheet.item .damage-control { + width: 18px; + flex: 0 0 18px; + line-height: 24px; + float: right; + text-align: right; + color: #7a7971; +} +.sw5e.sheet.item .recharge.form-group span { + text-align: right; + padding-right: 3px; +} +.sw5e.sheet.item .recharge.form-group input[type="text"] { + flex: 0 0 32px; + text-align: center; +} +.sw5e.sheet.item .recharge.form-group label.checkbox { + flex: none; +} +.sw5e.sheet.item .recharge.form-group label.checkbox input { + width: 16px; + height: 16px; + top: 4px; +} +.sw5e.sheet.item .weapon-properties label.checkbox { + flex: 0 0 98px; +} +.sw5e.sheet.item .loot-header { + margin-bottom: 10px; +} +/* ----------------------------------------- */ +/* Chat Cards +/* ----------------------------------------- */ +.sw5e.chat-card { + font-style: normal; + font-size: 12px; +} +.sw5e.chat-card .card-header { + padding: 3px 0; + border-top: 2px groove #FFF; + border-bottom: 2px groove #FFF; +} +.sw5e.chat-card .card-header img { + flex: 0 0 36px; + margin-right: 5px; +} +.sw5e.chat-card .card-header h3 { + flex: 1; + margin: 0; + line-height: 36px; + font-family: 'Bungee Inline'; + font-size: 20px; + font-weight: 400; + color: #4b4a44; +} +.sw5e.chat-card .card-header h3:hover { + color: #111; + text-shadow: 0 0 10px red; +} +.sw5e.chat-card .card-content { + margin: 5px 0; +} +.sw5e.chat-card .card-content h3 { + font-size: 12px; + margin: 0; + font-weight: bold; +} +.sw5e.chat-card .card-content > * { + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; +} +.sw5e.chat-card .card-buttons { + margin: 5px 0; +} +.sw5e.chat-card .card-buttons span { + display: block; + line-height: 28px; + text-align: center; + border: 1px solid #CCC; +} +.sw5e.chat-card .card-buttons button { + font-size: 12px; + height: 24px; + line-height: 20px; + margin: 2px 0; +} +.sw5e.chat-card .card-footer { + padding: 3px 0 0; + border-top: 2px groove #FFF; +} +.sw5e.chat-card .card-footer span { + border-right: 2px groove #FFF; + padding: 0 5px 0 0; + font-size: 10px; +} +.sw5e.chat-card .card-footer span:last-child { + border-right: none; + padding-right: 0; +} +.dice-roll .dice-total.success { + color: inherit; + background: #c7d0c0; + border: 1px solid #006c00; +} +.dice-roll .dice-total.failure { + color: inherit; + background: #ffdddd; + border: 1px solid #6e0000; +} +.dice-roll .dice-total.critical { + color: green; +} +.dice-roll .dice-total.fumble { + color: red; +} +/* ----------------------------------------- */ +/* Basic Structure */ +/* ----------------------------------------- */ +.sw5e.sheet.actor.character { + min-width: 720px; + min-height: 680px; + /* ----------------------------------------- */ + /* Sheet Header */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Sheet Body */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Item Controls */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Biography */ + /* ----------------------------------------- */ +} +.sw5e.sheet.actor.character .sheet-header img.profile { + flex: 0 0 160px; + max-width: 160px; + height: 160px; +} +.sw5e.sheet.actor.character .sheet-header .charlevel { + flex: 0 0 20px; + height: 20px; + font-size: 18px; + color: #7a7971; + white-space: nowrap; +} +.sw5e.sheet.actor.character .sheet-header .experience { + flex: 0 0 32px; + margin-bottom: -5px; + align-items: center; + font-size: 18px; +} +.sw5e.sheet.actor.character .sheet-header .experience span.max { + color: #7a7971; + flex: none; + margin-left: 3px; +} +.sw5e.sheet.actor.character .sheet-header .xpbar { + flex: 0 0 8px; + width: 100%; + margin-bottom: 5px; + background: #7a7971; + border: 1px solid #000; + border-radius: 3px; +} +.sw5e.sheet.actor.character .sheet-header .xpbar .bar { + height: 4px; + margin: 1px; + display: block; + background: #afebff; + border: 1px solid #000; + border-radius: 2px; +} +.sw5e.sheet.actor.character .sheet-header .attributes a.rest { + border: 1px solid #b5b3a4; + border-radius: 2px; + background: rgba(0, 0, 0, 0.05); + padding: 0 3px; + margin: 0 3px; +} +.sw5e.sheet.actor.character .sheet-header .attributes .hit-dice { + font-size: 24px; +} +.sw5e.sheet.actor.character .sheet-header .attributes .initiative .attribute-footer input { + width: 32px; +} +.sw5e.sheet.actor.character .sheet-header .summary .proficiency { + text-align: right; + padding-right: 5px; +} +.sw5e.sheet.actor.character .resource .attribute-value input { + flex: 0 0 25%; +} +.sw5e.sheet.actor.character .resource .attribute-value label.recharge { + height: 32px; + position: relative; + font-family: "Signika", sans-serif; + font-size: 11px; + text-align: center; + color: #4b4a44; +} +.sw5e.sheet.actor.character .resource .attribute-value label.recharge input[type="checkbox"] { + height: 14px; + width: 14px; + margin: 0; + top: -6px; +} +.sw5e.sheet.actor.character ul.skills-list { + flex: 0 0 212px; +} +.sw5e.sheet.actor.character ul.skills-list li.skill { + padding: 3px; +} +.sw5e.sheet.actor.character ul.skills-list li.skill h4 { + flex: 1px; + margin: 0; + font-size: 13px; +} +.sw5e.sheet.actor.character .item-detail.player-class { + flex: 0 0 180px; + text-align: right; + padding-right: 10px; +} +.sw5e.sheet.actor.character .inventory .item-controls, +.sw5e.sheet.actor.character .powerbook .item-controls { + flex: 0 0 68px; +} +.sw5e.sheet.actor.character .inventory .item-controls .item-toggle, +.sw5e.sheet.actor.character .powerbook .item-controls .item-toggle { + color: #b5b3a4; +} +.sw5e.sheet.actor.character .inventory .item-controls .item-toggle.active, +.sw5e.sheet.actor.character .powerbook .item-controls .item-toggle.active { + color: #4b4a44; +} +.sw5e.sheet.actor.character .inventory .item-controls .item-toggle.fixed, +.sw5e.sheet.actor.character .powerbook .item-controls .item-toggle.fixed { + color: #44191A; +} +.sw5e.sheet.actor.character .inventory .item-controls .item-toggle.fixed:hover, +.sw5e.sheet.actor.character .powerbook .item-controls .item-toggle.fixed:hover { + text-shadow: none; +} +.sw5e.sheet.actor.character .characteristics { + flex: 0 0 180px; + height: 100%; + padding: 0 3px 3px; +} +.sw5e.sheet.actor.character .characteristics label { + flex: 0 0 20px; + font-family: 'Bungee Inline'; + font-size: 20px; + font-weight: 400; + font-size: 16px; + font-weight: normal; + line-height: 20px; + text-align: center; +} +.sw5e.sheet.actor.character .characteristics textarea { + font-family: 'Open Sans'; + font-size: 20px; + font-weight: 400; + border: 1px solid #c9c7b8; + resize: none; +} +.sw5e.sheet.actor.character .biography { + max-width: calc(100% - 180px); +} +/* ----------------------------------------- */ +/* Basic Structure */ +/* ----------------------------------------- */ +.sw5e.sheet.actor.npc { + min-width: 600px; + min-height: 680px; +} +.sw5e.sheet.actor.npc .header-exp { + flex: 0 0 80px; + justify-content: center; +} +.sw5e.sheet.actor.npc .header-exp .cr { + flex: 0 0 32px; + line-height: 28px; + margin-bottom: -5px; + font-size: 24px; +} +.sw5e.sheet.actor.npc .header-exp .cr input { + width: 32px; + padding: 0; + text-align: center; +} +.sw5e.sheet.actor.npc .header-exp .experience { + flex: 0 0 18px; + color: #7a7971; + font-size: 16px; +} +.sw5e.sheet.actor.npc .summary { + font-size: 18px; +} +.sw5e.sheet.actor.npc .powercasting-ability label { + flex: none; +} +.sw5e.sheet.actor.vehicle .features .item-controls { + flex: 0 0 68px; +} +.sw5e.sheet.actor.vehicle .features .item-controls .item-toggle { + color: #b5b3a4; +} +.sw5e.sheet.actor.vehicle .features .item-controls .item-toggle.active { + color: #4b4a44; +} +.sw5e.sheet.actor.vehicle .counters .counter.creature-cap .counter-value { + flex: 1; +} +.sw5e.sheet.actor.vehicle .counters .counter.creature-cap input { + max-width: none; + text-align: right; +} +.sw5e.sheet.actor.vehicle .counters .counter.cargo-cap input { + max-width: 40px; + text-align: right; +} +input[type="number"] { + width: calc(100% - 2px); + min-width: 20px; + height: 26px; + background: rgba(0, 0, 0, 0.05); + padding: 1px 3px; + margin: 0; + color: #191813; + font-family: inherit; + font-size: inherit; + text-align: inherit; + line-height: inherit; + border: 1px solid #7a7971; + border-radius: 3px; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + -moz-appearance: textfield; +} +input[type="number"]:focus { + box-shadow: 0 0 5px red; +} +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + -webkit-appearance: none; } diff --git a/sw5e.js b/sw5e.js index 0a04143a..64a16371 100644 --- a/sw5e.js +++ b/sw5e.js @@ -22,9 +22,10 @@ import Item5e from "./module/item/entity.js"; import AbilityTemplate from "./module/pixi/ability-template.js"; import AbilityUseDialog from "./module/apps/ability-use-dialog.js"; import ActorSheetFlags from "./module/apps/actor-flags.js"; -import ActorSheet5eCharacter from "./module/actor/sheets/character.js"; -import ActorSheet5eNPC from "./module/actor/sheets/npc.js"; -import ActorSheet5eVehicle from "./module/actor/sheets/vehicle.js"; +import ActorSheet5eCharacter from "./module/actor/sheets/oldSheets/character.js"; +import ActorSheet5eNPC from "./module/actor/sheets/oldSheets/npc.js"; +import ActorSheet5eVehicle from "./module/actor/sheets/oldSheets/vehicle.js"; +import ActorSheet5eCharacterNew from "./module/actor/sheets/newSheet/character.js"; import ItemSheet5e from "./module/item/sheet.js"; import ShortRestDialog from "./module/apps/short-rest.js"; import TraitSelector from "./module/apps/trait-selector.js"; @@ -48,6 +49,7 @@ Hooks.once("init", function() { AbilityUseDialog, ActorSheetFlags, ActorSheet5eCharacter, + ActorSheet5eCharacterNew, ActorSheet5eNPC, ActorSheet5eVehicle, ItemSheet5e, @@ -87,11 +89,16 @@ Hooks.once("init", function() { // Register sheet application classes Actors.unregisterSheet("core", ActorSheet); - Actors.registerSheet("sw5e", ActorSheet5eCharacter, { + Actors.registerSheet("sw5e", ActorSheet5eCharacterNew, { types: ["character"], makeDefault: true, label: "SW5E.SheetClassCharacter" }); + Actors.registerSheet("sw5e", ActorSheet5eCharacter, { + types: ["character"], + makeDefault: false, + label: "SW5E.SheetClassCharacterOld" + }); Actors.registerSheet("sw5e", ActorSheet5eNPC, { types: ["npc"], makeDefault: true, @@ -213,8 +220,33 @@ Hooks.on("getChatLogEntryContext", chat.addChatMessageContextOptions); Hooks.on("renderChatLog", (app, html, data) => Item5e.chatListeners(html)); Hooks.on("renderChatPopout", (app, html, data) => Item5e.chatListeners(html)); Hooks.on('getActorDirectoryEntryContext', Actor5e.addDirectoryContextOptions); - +Hooks.on("renderSceneDirectory", (app, html, data)=> { + //console.log(html.find("header.folder-header")); + setFolderBackground(html); +}); +Hooks.on("renderActorDirectory", (app, html, data)=> { + setFolderBackground(html); +}); +Hooks.on("renderItemDirectory", (app, html, data)=> { + setFolderBackground(html); +}); +Hooks.on("renderJournalDirectory", (app, html, data)=> { + setFolderBackground(html); +}); +Hooks.on("renderRollTableDirectory", (app, html, data)=> { + setFolderBackground(html); +}); // TODO I should remove this Handlebars.registerHelper('getProperty', function (data, property) { return getProperty(data, property); }); + + +function setFolderBackground(html) { + html.find("header.folder-header").each(function() { + let bgColor = $(this).css("background-color"); + if(bgColor == undefined) + bgColor = "rgb(255,255,255)"; + $(this).closest('li').css("background-color", bgColor); + }) +} \ No newline at end of file diff --git a/system.json b/system.json index 8b6dbc46..4c35a245 100644 --- a/system.json +++ b/system.json @@ -6,7 +6,7 @@ "author": "Dev Team", "scripts": [], "esmodules": ["sw5e.js"], - "styles": ["sw5e.css"], + "styles": ["sw5e.css", "sw5e-update.css"], "packs": [ { "name": "adventuringgear", diff --git a/templates/actors/newActor/character-sheet.html b/templates/actors/newActor/character-sheet.html new file mode 100644 index 00000000..34a99ee3 --- /dev/null +++ b/templates/actors/newActor/character-sheet.html @@ -0,0 +1,144 @@ +
+ {{!-- Sheet Header --}} +
+ +

+ +

+
+
+ {{ localize "SW5E.Level" }} {{data.details.level}} {{classLabels}} +
+ {{#unless disableExperience}} +
+ + / + {{data.details.xp.max}} +
+
+ +
+ {{/unless}} +
+
+ + + +
+ Proficiency {{numberFormat data.attributes.prof decimals=0 sign=true}} +
+
+ {{!-- Header Attributes --}} +
+ {{!-- ARMOR CLASS --}} +
+

{{ localize "SW5E.ArmorClass" }}

+
+ +
+
+ + {{!-- HIT POINTS --}} +
+

Hit Points

+
+ + / + +
+
+ + +
+
+ + {{!-- HIT DICE / SHORT & LONG REST BUTTONS --}} +
+

{{ localize "SW5E.HitDice" }}

+
+ {{data.attributes.hd}} + / + {{data.details.level}} +
+
+ + +
+
+ + {{!-- INITIATIVE --}} +
+

{{ localize "SW5E.Initiative" }}

+
+ {{numberFormat data.attributes.init.total decimals=0 sign=true}} +
+
+ {{ localize "SW5E.Modifier" }} + +
+
+ + {{!-- SPEED / MOVEMENT TYPES --}} +
+

{{ localize "SW5E.Speed" }}

+
+ +
+
+ +
+
+ + +
+ + +
+ {{!-- PC Sheet Navigation --}} + + {{!-- PC Sheet Body --}} +
+ {{!-- Core Tab --}} +
+ {{> "systems/sw5e/templates/actors/newActor/parts/swalt-core.html" sections=attributes}} +
+ {{!-- Inventory Tab --}} +
+ {{> "systems/sw5e/templates/actors/newActor/parts/swalt-inventory.html" sections=inventory}} +
+ {{!-- Features Tab --}} +
+ {{> "systems/sw5e/templates/actors/newActor/parts/swalt-features.html" sections=features}} +
+ {{!-- Powerbook Tab --}} +
+ {{> "systems/sw5e/templates/actors/newActor/parts/swalt-powerbook.html"}} +
+ {{!-- Biography Tab --}} +
+ {{> "systems/sw5e/templates/actors/newActor/parts/swalt-biography.html"}} +
+ {{!-- Notes Tab --}} +
+ {{> "systems/sw5e/templates/actors/newActor/parts/swalt-notes.html"}} +
+ \ No newline at end of file diff --git a/templates/actors/newActor/expanded-limited-sheet.html b/templates/actors/newActor/expanded-limited-sheet.html new file mode 100644 index 00000000..be0f84ab --- /dev/null +++ b/templates/actors/newActor/expanded-limited-sheet.html @@ -0,0 +1,137 @@ +
+ {{!-- Sheet Header --}} +
+ +

+ +

+
+
+ {{ localize "SW5E.Level" }} {{data.details.level}} {{classLabels}} +
+ {{#unless disableExperience}} +
+ + / + {{data.details.xp.max}} +
+
+ +
+ {{/unless}} +
+
+ + + +
+ Proficiency {{numberFormat data.attributes.prof decimals=0 sign=true}} +
+
+ {{!-- Header Attributes --}} +
+ {{!-- ARMOR CLASS --}} +
+

{{ localize "SW5E.ArmorClass" }}

+
+ +
+
+ + {{!-- HIT POINTS --}} +
+

Hit Points

+
+ + / + +
+
+ + +
+
+ + {{!-- HIT DICE / SHORT & LONG REST BUTTONS --}} +
+

{{ localize "SW5E.HitDice" }}

+
+ {{data.attributes.hd}} + / + {{data.details.level}} +
+
+ + +
+
+ + {{!-- INITIATIVE --}} +
+

{{ localize "SW5E.Initiative" }}

+
+ {{numberFormat data.attributes.init.total decimals=0 sign=true}} +
+
+ {{ localize "SW5E.Modifier" }} + +
+
+ + {{!-- SPEED / MOVEMENT TYPES --}} +
+

{{ localize "SW5E.Speed" }}

+
+ +
+
+ +
+
+ + +
+
+ {{!-- PC Sheet Navigation --}} + + {{!-- PC Sheet Body --}} +
+ {{!-- Core Tab --}} +
+ {{> "systems/sw5e/templates/actors/newActor/parts/swalt-core.html" sections=attributes}} +
+ {{!-- Inventory Tab --}} +
+ {{> "systems/sw5e/templates/actors/newActor/parts/swalt-inventory.html" sections=inventory}} +
+ {{!-- Features Tab --}} +
+ {{> "systems/sw5e/templates/actors/newActor/parts/swalt-features.html" sections=features}} +
+ {{!-- Powerbook Tab --}} +
+ {{> "systems/sw5e/templates/actors/newActor/parts/swalt-powerbook.html"}} +
+ {{!-- Biography Tab --}} +
+ {{> "systems/sw5e/templates/actors/newActor/parts/swalt-biography.html"}} +
+ \ No newline at end of file diff --git a/templates/actors/newActor/item.hbs b/templates/actors/newActor/item.hbs new file mode 100644 index 00000000..cdd84ff9 --- /dev/null +++ b/templates/actors/newActor/item.hbs @@ -0,0 +1,33 @@ +
  • +
    +
    +

    {{item.name}}

    +
    + +
    + {{#if item.data.uses.max }} + {{item.data.uses.value}} / {{item.data.uses.max}} + {{/if}} +
    + + +
    + {{#if item.data.quantity}} + {{item.data.quantity}} + {{/if}} +
    + + +
    + {{#if item.powerComps}} + {{item.powerComps}} + {{#if item.powerCon}}{{/if}} + {{#if item.powerRit}}{{/if}} + {{/if}} +
    + +
    + + +
    +
  • \ No newline at end of file diff --git a/templates/actors/newActor/limited-sheet.html b/templates/actors/newActor/limited-sheet.html new file mode 100644 index 00000000..69ae83eb --- /dev/null +++ b/templates/actors/newActor/limited-sheet.html @@ -0,0 +1,27 @@ +
    + +
    + +

    + {{actor.name}} +

    +
    + + +
    +
    +
    +
    +

    Description

    + {{editor content=data.details.description.value target="data.details.description.value" button=true owner=owner editable=editable}} +
    +
    +

    Background

    + {{editor content=data.details.biography.value target="data.details.biography.value" button=true owner=owner editable=editable}} +
    +
    + +
    +
    +
    + diff --git a/templates/actors/newActor/parts/swalt-biography.html b/templates/actors/newActor/parts/swalt-biography.html new file mode 100644 index 00000000..8546d812 --- /dev/null +++ b/templates/actors/newActor/parts/swalt-biography.html @@ -0,0 +1,22 @@ +
    +

    Personality Traits

    + {{editor content=data.details.trait target="data.details.trait" button=true owner=owner editable=editable}} +
    +

    Ideals

    + {{editor content=data.details.ideal target="data.details.ideal" button=true owner=owner editable=editable}} +
    +

    Bonds

    + {{editor content=data.details.bond target="data.details.bond" button=true owner=owner editable=editable}} +
    +

    Flaws

    + {{editor content=data.details.flaw target="data.details.flaw" button=true owner=owner editable=editable}} +
    +
    +
    +

    Description

    + {{editor content=data.details.description.value target="data.details.description.value" button=true owner=owner editable=editable}} +
    +

    Background

    + {{editor content=data.details.biography.value target="data.details.biography.value" button=true owner=owner editable=editable}} +
    +
    \ No newline at end of file diff --git a/templates/actors/newActor/parts/swalt-core.html b/templates/actors/newActor/parts/swalt-core.html new file mode 100644 index 00000000..fefcf69c --- /dev/null +++ b/templates/actors/newActor/parts/swalt-core.html @@ -0,0 +1,56 @@ +
    + {{!-- Ability Scores --}} +
    +

    Ability Scores

    +
      + {{#each data.abilities as |ability id|}} +
    1. +

      {{ability.label}}

      + +
      + {{numberFormat ability.mod decimals=0 sign=true}} + + + {{numberFormat ability.save decimals=0 sign=true}} +
      +
    2. + {{/each}} +
    +
    + {{!-- Skills --}} +
    +

    Skills

    +
      + {{#each data.skills as |skill s|}} +
    1. + + + {{skill.label}} + {{skill.ability}} + {{numberFormat skill.total decimals=0 sign=true}} + {{!-- --}} + {{!-- ({{skill.passive}}) --}} +
    2. + {{/each}} +
    +
    +
    +
    + +
    + {{> "systems/sw5e/templates/actors/newActor/parts/swalt-traits.html"}} +
    +
    + {{> "systems/sw5e/templates/actors/newActor/parts/swalt-resources.html"}} +
    +
    \ No newline at end of file diff --git a/templates/actors/newActor/parts/swalt-features.html b/templates/actors/newActor/parts/swalt-features.html new file mode 100644 index 00000000..52065bf1 --- /dev/null +++ b/templates/actors/newActor/parts/swalt-features.html @@ -0,0 +1,80 @@ +
    + + +
      +
    • {{localize "SW5E.Filter"}}
    • +
    • {{localize "SW5E.Action"}}
    • +
    • {{localize "SW5E.BonusAction"}}
    • +
    • {{localize "SW5E.Reaction"}}
    • +
    + + +
      + {{#each sections as |section sid|}} +
    1. +
      +
      + +

      {{localize section.label}}

      + {{#if ../owner}} + + {{localize "SW5E.Add"}} + + {{/if}} +
      + {{#if section.hasActions}} +
      {{localize "SW5E.Uses"}}
      +
      {{localize "SW5E.Usage"}}
      + {{/if}} + + +
      +
        + {{#each section.items as |item iid|}} +
      1. +
        +
        +

        {{item.name}}

        +
        + + {{#if section.hasActions}} +
        + {{#if item.isOnCooldown}} + {{item.labels.recharge}} + {{else if item.data.recharge.value}} + {{localize "SW5E.Charged"}} + + {{else if item.hasUses}} + /{{item.data.uses.max}} + {{/if}} +
        + +
        + {{#if item.data.activation.type }} + {{item.labels.activation}} + {{/if}} +
        + + {{else if section.isClass}} +
        + {{item.data.subclass}} +
        +
        + Level {{item.data.levels}} +
        + {{/if}} + + {{#if ../../owner}} +
        + + +
        + {{/if}} +
      2. + {{/each}} +
      +
    2. + {{/each}} +
    +
    \ No newline at end of file diff --git a/templates/actors/newActor/parts/swalt-inventory.html b/templates/actors/newActor/parts/swalt-inventory.html new file mode 100644 index 00000000..a7ff47a5 --- /dev/null +++ b/templates/actors/newActor/parts/swalt-inventory.html @@ -0,0 +1,112 @@ +
    + {{#if isCharacter }} +
    + + + {{#with data.attributes.encumbrance}} +
    +
    + + + + + + +
    + {{value}} / {{max}} +
    + {{/with}} +
    + {{/if}} + +
      +
    • {{localize "SW5E.Filter"}}
    • +
    • {{localize "SW5E.Action"}}
    • +
    • {{localize "SW5E.BonusAction"}}
    • +
    • {{localize "SW5E.Reaction"}}
    • +
    • {{localize "SW5E.Equipped"}}
    • +
    + +
    +
     
    + {{#if isCharacter}} +
    {{localize "SW5E.Weight"}}
    + {{/if}} + +
    {{localize "SW5E.Charges"}}
    +
    {{localize "SW5E.Usage"}}
    +
    +
    +
      + {{#each sections as |section sid|}} +
    1. +
      +

      {{localize section.label}}

      + + {{#if ../owner}} + + {{localize "SW5E.Add"}} + + {{/if}} +
      +
        + {{#each section.items as |item iid|}} +
      1. +
        +
        +

        + {{item.name~}} + {{~#if item.isStack}} ({{item.data.quantity}}){{/if}} + {{~#if item.data.attuned}} {{/if}} +

        +
        + + {{#if ../../isCharacter}} +
        + {{#if item.totalWeight}} + {{ item.totalWeight }} {{localize "SW5E.AbbreviationLbs"}} + {{/if}} +
        + {{/if}} + +
        + {{#if item.hasUses }} + + /{{item.data.uses.max}} + {{/if}} +
        + +
        + {{#if item.data.activation.type }} + {{item.labels.activation}} + {{/if}} +
        + + {{#if ../../owner}} +
        + + + + + +
        + {{/if}} +
      2. + {{/each}} +
      +
    2. + {{/each}} +
    + + + +
    \ No newline at end of file diff --git a/templates/actors/newActor/parts/swalt-notes.html b/templates/actors/newActor/parts/swalt-notes.html new file mode 100644 index 00000000..0ffe27df --- /dev/null +++ b/templates/actors/newActor/parts/swalt-notes.html @@ -0,0 +1,33 @@ +
    +
    + + + {{editor content=data.details.notes.value target="data.details.notes.value" button=true owner=owner editable=editable}} +
    +
    + + {{editor content=data.details.notes1.value target="data.details.notes1.value" button=true owner=owner editable=editable}} +
    + +
    + + {{editor content=data.details.notes2.value target="data.details.notes2.value" button=true owner=owner editable=editable}} +
    + +
    + + {{editor content=data.details.notes3.value target="data.details.notes3.value" button=true owner=owner editable=editable}} +
    + +
    + + {{editor content=data.details.notes4.value target="data.details.notes4.value" button=true owner=owner editable=editable}} +
    + +
    + \ No newline at end of file diff --git a/templates/actors/newActor/parts/swalt-powerbook.html b/templates/actors/newActor/parts/swalt-powerbook.html new file mode 100644 index 00000000..f0fd12cc --- /dev/null +++ b/templates/actors/newActor/parts/swalt-powerbook.html @@ -0,0 +1,135 @@ +
    +
    + + {{#if isNPC}} + + {{/if}} +

    {{localize "SW5E.PowerDC"}} {{data.attributes.powerdc}}

    +
    + +
      +
    • {{localize "SW5E.Filter"}}
    • +
    • {{localize "SW5E.Action"}}
    • +
    • {{localize "SW5E.BonusAction"}}
    • +
    • {{localize "SW5E.Reaction"}}
    • +
    • {{localize "SW5E.AbbreviationConc"}}
    • +
    • {{localize "SW5E.Ritual"}}
    • +
    • {{localize "SW5E.Prepared"}}{{#if preparedPowers}} + ({{preparedPowers}}){{/if}}
    • +
    + +
    +
    +
    +
    {{localize "SW5E.PowerSchool"}}
    +
    {{localize "SW5E.PowerUsage"}}
    +
    {{localize "SW5E.PowerTarget"}}
    + +
    +
      + {{#each powerbook as |section|}} +
    1. +
      +
      +

      {{section.label}}

      + {{#if section.canCreate}} + + {{localize "SW5E.Add"}} + + {{/if}} +
      + +
      + {{#if section.usesSlots}} + + / + + {{{section.slots}}} + {{#if ../editable}} + + + + {{/if}} + {{ else }} + {{{section.uses}}} / {{{section.slots}}} + {{/if}} +
      +
      +
        + {{#each section.powers as |item i|}} +
      1. +
        +
        +

        {{item.name}}

        +
        + +
        + {{#if item.data.uses.per }} + Uses {{item.data.uses.value}} / {{item.data.uses.max}} + {{/if}} +
        + + +
        {{labels.school}}
        +
        {{labels.activation}}
        +
        + {{#if labels.target}} + {{labels.target}} + {{else}}None + {{/if}} +
        + + + {{#if ../../owner}} +
        + {{#if section.canPrepare}} + + {{/if}} + + +
        + {{/if}} +
      2. + {{/each}} +
      +
    2. + {{else}} + {{#if owner}} + {{#if filters.powerbook.size}} +
    3. +

      {{localize "SW5E.FilterNoPowers"}}

      +
    4. + {{else}} +
    5. + +
    6. +
    7. +

      {{localize "SW5E.NoPowerLevels"}}

      +
    8. + {{/if}} + {{/if}} + {{/each}} +
    +
    \ No newline at end of file diff --git a/templates/actors/newActor/parts/swalt-resources.html b/templates/actors/newActor/parts/swalt-resources.html new file mode 100644 index 00000000..79bb24ff --- /dev/null +++ b/templates/actors/newActor/parts/swalt-resources.html @@ -0,0 +1,65 @@ +{{!-- Resources, Counters, & Favorites --}} +
    +
    + {{#each resources as |res|}} +
    +

    + +

    +
    + + / + +
    +
    + + +
    +
    + {{/each}} +
    +
    +
    +

    {{ localize "SW5E.DeathSave" }}

    +
    +
    + + +
    +
    + + +
    +
    +
    +
    +

    {{ localize "SW5E.Exhaustion" }}

    +
    + +
    +
    +
    +

    {{ localize "SW5E.Inspiration" }}

    +
    + +
    +
    +
    +
    +

    Favorites

    +
    +
    +
    \ No newline at end of file diff --git a/templates/actors/newActor/parts/swalt-traits.html b/templates/actors/newActor/parts/swalt-traits.html new file mode 100644 index 00000000..57edaf99 --- /dev/null +++ b/templates/actors/newActor/parts/swalt-traits.html @@ -0,0 +1,118 @@ +
    + + +
    + + + + +
      + {{#each data.traits.languages.selected as |v k|}} +
    • {{v}}
    • + {{/each}} +
    +
    +
    + + + + +
      + {{#each data.traits.di.selected as |v k|}} +
    • {{v}}
    • + {{/each}} +
    +
    +
    + + + + +
      + {{#each data.traits.dr.selected as |v k|}} +
    • {{v}}
    • + {{/each}} +
    +
    +
    + + + + +
      + {{#each data.traits.dv.selected as |v k|}} +
    • {{v}}
    • + {{/each}} +
    +
    + +
    + + + + +
      + {{#each data.traits.ci.selected as |v k|}} +
    • {{v}}
    • + {{/each}} +
    +
    {{#if isCharacter}} +
    + + + + +
      + {{#each data.traits.weaponProf.selected as |v k|}} +
    • {{v}}
    • + {{/each}} +
    +
    +
    + + + + +
      + {{#each data.traits.armorProf.selected as |v k|}} +
    • {{v}}
    • + {{/each}} +
    +
    + +
    + + + + +
      + {{#each data.traits.toolProf.selected as |v k|}} +
    • {{v}}
    • + {{/each}} +
    +
    + {{/if}} + + {{#unless isVehicle}} +
    + + +
    + {{/unless}} +
      +
      \ No newline at end of file diff --git a/templates/actors/newActor/template.hbs b/templates/actors/newActor/template.hbs new file mode 100644 index 00000000..f94c22c2 --- /dev/null +++ b/templates/actors/newActor/template.hbs @@ -0,0 +1,67 @@ +{{#if favItems}} +
        +
      1. +
        +

        Items

        +
        Charges
        +
        Qty
        +
        +
        +
        + +
          + {{#each favItems as |item id|}} + {{> "systems/sw5e/templates/actors/newActor/parts/item.hbs" item=item}} + {{/each}} +
        +
      2. + {{#if favFeats}} +
      3. +
        +

        Features & Feats

        +
        Uses
        +
        +
        +
        +
        + +
          + {{#each favFeats as |feat lvl|}} + {{> "systems/sw5e/templates/actors/newActor/parts/item.hbs" item=feat}} + {{/each}} +
        +
      4. + {{/if}} + {{#if favPowers}} + {{#each favPowers as |section lvl|}} + {{#if section.powers}} + {{#if lvl}} +
      5. +
        +

        + {{#if section.isCantrip}}At-Will Powers{{else}}Level {{lvl}} Powers{{/if}} +

        + +
        + {{#if section.isCantrip}}  + {{else}} + {{section.value}} + / + {{section.max}} + {{/if}} +
        +
        +
        +
        +
        +
          + {{#each section.powers as |power id|}} + {{> "systems/sw5e/templates/actors/newActor/parts/item.hbs" item=power}} + {{/each}} +
        +
      6. + {{/if}}{{/if}} + {{/each}} + {{/if}} +
      +{{/if}} \ No newline at end of file diff --git a/templates/actors/character-sheet.html b/templates/actors/oldActor/character-sheet.html similarity index 96% rename from templates/actors/character-sheet.html rename to templates/actors/oldActor/character-sheet.html index cc9003be..0997fe68 100644 --- a/templates/actors/character-sheet.html +++ b/templates/actors/oldActor/character-sheet.html @@ -210,28 +210,28 @@ {{!-- Traits --}} - {{> "systems/sw5e/templates/actors/parts/actor-traits.html"}} + {{> "systems/sw5e/templates/actors/oldActor/parts/actor-traits.html"}}
      {{!-- Inventory Tab --}}
      - {{> "systems/sw5e/templates/actors/parts/actor-inventory.html" sections=inventory}} + {{> "systems/sw5e/templates/actors/oldActor/parts/actor-inventory.html" sections=inventory}}
      {{!-- Features Tab --}}
      - {{> "systems/sw5e/templates/actors/parts/actor-features.html" sections=features}} + {{> "systems/sw5e/templates/actors/oldActor/parts/actor-features.html" sections=features}}
      {{!-- Powerbook Tab --}}
      - {{> "systems/sw5e/templates/actors/parts/actor-powerbook.html"}} + {{> "systems/sw5e/templates/actors/oldActor/parts/actor-powerbook.html"}}
      {{!-- Effects Tab --}}
      - {{> "systems/sw5e/templates/actors/parts/actor-effects.html"}} + {{> "systems/sw5e/templates/actors/oldActor/parts/actor-effects.html"}}
      {{!-- Biography Tab --}} diff --git a/templates/actors/limited-sheet.html b/templates/actors/oldActor/limited-sheet.html similarity index 100% rename from templates/actors/limited-sheet.html rename to templates/actors/oldActor/limited-sheet.html diff --git a/templates/actors/npc-sheet.html b/templates/actors/oldActor/npc-sheet.html similarity index 100% rename from templates/actors/npc-sheet.html rename to templates/actors/oldActor/npc-sheet.html diff --git a/templates/actors/parts/actor-effects.html b/templates/actors/oldActor/parts/actor-effects.html similarity index 100% rename from templates/actors/parts/actor-effects.html rename to templates/actors/oldActor/parts/actor-effects.html diff --git a/templates/actors/parts/actor-features.html b/templates/actors/oldActor/parts/actor-features.html similarity index 100% rename from templates/actors/parts/actor-features.html rename to templates/actors/oldActor/parts/actor-features.html diff --git a/templates/actors/parts/actor-inventory.html b/templates/actors/oldActor/parts/actor-inventory.html similarity index 100% rename from templates/actors/parts/actor-inventory.html rename to templates/actors/oldActor/parts/actor-inventory.html diff --git a/templates/actors/parts/actor-powerbook.html b/templates/actors/oldActor/parts/actor-powerbook.html similarity index 100% rename from templates/actors/parts/actor-powerbook.html rename to templates/actors/oldActor/parts/actor-powerbook.html diff --git a/templates/actors/parts/actor-traits.html b/templates/actors/oldActor/parts/actor-traits.html similarity index 100% rename from templates/actors/parts/actor-traits.html rename to templates/actors/oldActor/parts/actor-traits.html diff --git a/templates/actors/vehicle-sheet.html b/templates/actors/oldActor/vehicle-sheet.html similarity index 100% rename from templates/actors/vehicle-sheet.html rename to templates/actors/oldActor/vehicle-sheet.html diff --git a/templates/app-window.html b/templates/app-window.html new file mode 100644 index 00000000..23d749c4 --- /dev/null +++ b/templates/app-window.html @@ -0,0 +1,11 @@ +
      +
      +

      {{title}}

      + {{#each headerButtons}} + + {{/each}} +
      + +
      +
      +
      \ No newline at end of file