diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 00000000..eecafbf4 Binary files /dev/null and b/.DS_Store differ diff --git a/CONTRIBUTIONS.md b/CONTRIBUTIONS.md new file mode 100644 index 00000000..1c6c32bc --- /dev/null +++ b/CONTRIBUTIONS.md @@ -0,0 +1,8 @@ +Rick Fisto +- [Fisto's Codex](https://www.gmbinder.com/share/-M-qA_FYgTwJjU8yFjjx) + +Heresy +- [Heritic's Guide to the Galaxy](https://www.gmbinder.com/share/-M815p5BfQ0wbdKY7zqN) + +Erikstormtrooper +- [Englibesh Font](http://www.erikstormtrooper.com/englibesh.htm) diff --git a/README.md b/README.md index 7edd985d..855c0e08 100644 --- a/README.md +++ b/README.md @@ -27,3 +27,10 @@ may do this by cloning the repository or downloading a zip archive from the Code and content contributions are accepted. Please feel free to submit issues to the issue tracker or submit merge requests for code changes. Approval for such requests involves code and (if necessary) design review by The Dev Team. Please reach out on the SW5E Foundry Dev Discord with any questions. + +## Compatible Modules and Optimum Settings + +- DAE (Dynamic Active Effects) is needed for many automatic features. + -**Please enable: "Include active effects in special traits display" in "Configure Game Settings> Module Settings> Dynamic Active Effects".** +- Midi QoL is compatible with great features +- Token Action Hud has compatibility diff --git a/less/original/chat.less b/less/original/chat.less index 7bf83c2a..6aca1df4 100644 --- a/less/original/chat.less +++ b/less/original/chat.less @@ -23,7 +23,7 @@ flex: 1; margin: 0; line-height: 36px; - .bungeeInline(); + .engli-Besh(); color: @colorOlive; &:hover { color: #111; diff --git a/less/update/_variables-dark.less b/less/update/_variables-dark.less index 97cbfd1c..7a96aea3 100644 --- a/less/update/_variables-dark.less +++ b/less/update/_variables-dark.less @@ -1,146 +1,146 @@ -//override Primary Red -@colorRed: #E81111; -@colorDarkBg: #2b2b2b; -//Background -@primaryBackground: linear-gradient(90deg,#626262 0,#4d4d4d 30%,#4d4d4d 70%,#626262); - -//Typography -@headingColor: @colorRed; -@headerBorderColor: @colorBlue; -@bodyFontColor: white; -@linkColor: @colorRed; -@linkSecondaryColor: @colorPaleGray; - -@blockquoteBackground: @colorPaleRed; -@blockquoteBorder: @colorRed; -@blockquoteShadow: 0 0 20px rgba(@colorRed, 0.8); - -//forms -@inputBackgroundColor: @colorDarkGray; -@inputBorderNormal: @colorLightGray; -@inputBorderHover: @colorGray; -@inputBorderFocus: @colorRed; -@inputTextColor: white; - -@buttonBackground: @colorRed; -@buttonTextColor: white; -@buttonHoverBackground: lighten(@colorRed, 5); -@buttonSecondaryBackground: @colorLightGray; -@buttonSecondaryTextColor: white; -@buttonSecondaryHoverBackground: lighten(@colorLightGray, 5); - -//other bits -@hrColor: @colorBlue; -@tableTextColor: white; -@tableHeaderTextColor: @colorPaleGray; -@tableBackground: @colorGray; -@tableRowHoverBackground: lighten(@colorLightGray, 10); -@tableRowBorderColor: @colorLightGray; - -//universalColors -@windowHeaderBackground: @colorDarkBg; -@windowHeaderLinkColor: @colorRed; - -//Sidebar -@sidebarTabBackground: @windowHeaderBackground; -@sidebarTabLinkColor: @windowHeaderLinkColor; -@sidebarTabLinkUnderline: @colorRed; - -@chatBackground: @colorDarkGray; -@chatHeaderColor: @colorRed; -@chatHeaderBottomBorderColor: @colorBlue; -@chatNotificationColor: @colorBlue; -@cardButtonBorder: @colorLightGray; -@cardFooterBorder: @colorLightBlue; -@cardFooterSeparator: @colorPaleGray; - -@diceFormulaBackground: @colorGray; -@diceFormualColor: white; -@diceTotalBackground: @colorPaleRed; -@diceTotalBorder: @colorRed; -@diceTotalShadow: @colorRed; -@diceSuccessColor: @colorGreen; -@diceFailureColor: @colorRed; -@diceCriticalBackground: @colorPaleGreen; -@diceCriticalColor: @colorGreen; -@diceFumbleBackground: @colorPaleRed; -@diceFumbleColor: @colorRed; - -@altRowBackground: @colorGray; - -@combatRoundColor: @colorRed; -@combatRoundBorder: @colorBlue; -@combatCombatantControlColor: @colorPaleGray; -@combatCombatantControlColorActive: @colorRed; -@combatActiveCombatantColor: @colorBlue; -@combatTokenResourceColor: white; -@combatTokenResouceBorder: @colorLightGray; -@combatControlsBorder: @colorBlue; - -@folderSearchIconColor: @colorBlue; -@folderSubdirectoryBackground: @colorDarkBg; -@folderSubdirectoryBorder: @colorLightGray; -@directoryListItemBorder: @colorBlue; -@folderHeaderBackground: @colorDarkBg; -@folderHeaderColor: white; -@folderIconColor: @colorBlue; - -@entityBackgroundColor: @colorDarkBg; -@entityNameColor: @colorBlack; - -@sceneBorderColor: @colorBlue; -@sceneBackgroundColor: @colorDarkBg; - -@playlistBackgroundColor: @colorDarkBg; -@playlistHeaderBorder: @colorBlue; -@playlistSoundColor: @colorBlack; - -@compendiumEntityBackground: @colorDarkBg; -@compendiumStatusIcon: @colorLightGray; - -@foundryNavBgColor: rgba(@colorLightBlue, 0.4); -@foundryNavTextColor: white; -@foundryNavBorderColor: @colorBlue; -@foundryNavBgColorGM: @colorBlue; -@foundryNavBorderColorGM: @colorPaleBlue; -@foundryNavSceneLinkColor: white; -@foundryNavActiveBgColor: rgba(@colorRed, 0.6); -@foundryNavActiveBorderColor: lighten(@colorRed, 20); -@foundryNavActiveGlow: darken(@colorRed, 20); -@foundryNavContextShadow: darken(@colorBlue, 20); -@foundryNavContextBorderColor: @colorBlue; - -@foundryPlayersArrowColor: @colorLightGray; - -@actorPanelBgColor: white; -@actorNameColor: @colorRed; -@actorXPBarBorder: @colorGray; -@actorXPBarBackground: @colorPaleBlue; -@actorXPBarColor: @colorBlue; -@actorProficiencyTextColor: @colorGray; -@actorAttributeInputColor: @colorGray; -@actorSeparatorColor: @colorLightGray; -@actorAttributeButtonBorder: @colorPaleGray; -@actorAttributeButtonBorderHover: @colorRed; -@actorNavigationTabsColor: @colorGray; -@actorNavigationTabsActiveColor: @colorRed; -@actorNavigationTabsHoverBgColor: rgba(@colorGray, 0.1); -@actorNavigationTabsActiveHoverBgColor: rgba(@colorRed, 0.1); -@actorFilterBorderColor: @colorLightGray; -@actorFilterHoverColor: @colorRed; -@actorFilterActiveColor: @colorRed; -@actorGroupListHeaderBgColor: lighten(@colorPaleGray, 10); -@actorGroupListTitleBorderColor: @colorBlue; -@actorGroupListColumnBorderColor: @colorPaleGray; -@actorGroupListAltRowColor: lighten(@colorPaleGray, 10); -@actorItemRollableD20Color: @colorGray; -@actorItemRollableD20HoverColor: @colorRed; -@actorItemControlToggleColor: @colorLightGray; -@actorAbilityScoreColor: @colorGray; -@actorAbilityBorderColor: @colorPaleGray; -@actorSkillsAltRowColor: lighten(@colorPaleGray, 10); -@actorEncumbranceLabelBackground: @colorPaleGray; -@actorEncumbranceTextColor: @colorBlack; -@actorEncumbranceBorderColor: @colorBlack; -@actorEncumbranceBarBgColor: @colorPaleBlue; +//override Primary Red +@colorRed: #E81111; +@colorDarkBg: #2b2b2b; +//Background +@primaryBackground: linear-gradient(90deg,#626262 0,#4d4d4d 30%,#4d4d4d 70%,#626262); + +//Typography +@headingColor: @colorRed; +@headerBorderColor: @colorBlue; +@bodyFontColor: white; +@linkColor: @colorRed; +@linkSecondaryColor: @colorPaleGray; + +@blockquoteBackground: @colorPaleRed; +@blockquoteBorder: @colorRed; +@blockquoteShadow: 0 0 20px rgba(@colorRed, 0.8); + +//forms +@inputBackgroundColor: @colorDarkGray; +@inputBorderNormal: @colorLightGray; +@inputBorderHover: @colorGray; +@inputBorderFocus: @colorRed; +@inputTextColor: white; + +@buttonBackground: @colorRed; +@buttonTextColor: white; +@buttonHoverBackground: lighten(@colorRed, 5); +@buttonSecondaryBackground: @colorLightGray; +@buttonSecondaryTextColor: white; +@buttonSecondaryHoverBackground: lighten(@colorLightGray, 5); + +//other bits +@hrColor: @colorBlue; +@tableTextColor: white; +@tableHeaderTextColor: @colorPaleGray; +@tableBackground: @colorGray; +@tableRowHoverBackground: lighten(@colorLightGray, 10); +@tableRowBorderColor: @colorLightGray; + +//universalColors +@windowHeaderBackground: @colorDarkBg; +@windowHeaderLinkColor: @colorRed; + +//Sidebar +@sidebarTabBackground: @windowHeaderBackground; +@sidebarTabLinkColor: @windowHeaderLinkColor; +@sidebarTabLinkUnderline: @colorRed; + +@chatBackground: @colorDarkGray; +@chatHeaderColor: @colorRed; +@chatHeaderBottomBorderColor: @colorBlue; +@chatNotificationColor: @colorBlue; +@cardButtonBorder: @colorLightGray; +@cardFooterBorder: @colorLightBlue; +@cardFooterSeparator: @colorPaleGray; + +@diceFormulaBackground: @colorGray; +@diceFormualColor: white; +@diceTotalBackground: @colorPaleRed; +@diceTotalBorder: @colorRed; +@diceTotalShadow: @colorRed; +@diceSuccessColor: @colorGreen; +@diceFailureColor: @colorRed; +@diceCriticalBackground: @colorPaleGreen; +@diceCriticalColor: @colorGreen; +@diceFumbleBackground: @colorPaleRed; +@diceFumbleColor: @colorRed; + +@altRowBackground: @colorGray; + +@combatRoundColor: @colorRed; +@combatRoundBorder: @colorBlue; +@combatCombatantControlColor: @colorPaleGray; +@combatCombatantControlColorActive: @colorRed; +@combatActiveCombatantColor: @colorBlue; +@combatTokenResourceColor: white; +@combatTokenResouceBorder: @colorLightGray; +@combatControlsBorder: @colorBlue; + +@folderSearchIconColor: @colorBlue; +@folderSubdirectoryBackground: @colorDarkBg; +@folderSubdirectoryBorder: @colorLightGray; +@directoryListItemBorder: @colorBlue; +@folderHeaderBackground: @colorDarkBg; +@folderHeaderColor: white; +@folderIconColor: @colorBlue; + +@entityBackgroundColor: @colorDarkBg; +@entityNameColor: @colorBlack; + +@sceneBorderColor: @colorBlue; +@sceneBackgroundColor: @colorDarkBg; + +@playlistBackgroundColor: @colorDarkBg; +@playlistHeaderBorder: @colorBlue; +@playlistSoundColor: @colorBlack; + +@compendiumEntityBackground: @colorDarkBg; +@compendiumStatusIcon: @colorLightGray; + +@foundryNavBgColor: rgba(@colorLightBlue, 0.4); +@foundryNavTextColor: white; +@foundryNavBorderColor: @colorBlue; +@foundryNavBgColorGM: @colorBlue; +@foundryNavBorderColorGM: @colorPaleBlue; +@foundryNavSceneLinkColor: white; +@foundryNavActiveBgColor: rgba(@colorRed, 0.6); +@foundryNavActiveBorderColor: lighten(@colorRed, 20); +@foundryNavActiveGlow: darken(@colorRed, 20); +@foundryNavContextShadow: darken(@colorBlue, 20); +@foundryNavContextBorderColor: @colorBlue; + +@foundryPlayersArrowColor: @colorLightGray; + +@actorPanelBgColor: white; +@actorNameColor: @colorRed; +@actorXPBarBorder: @colorGray; +@actorXPBarBackground: @colorPaleBlue; +@actorXPBarColor: @colorBlue; +@actorProficiencyTextColor: @colorGray; +@actorAttributeInputColor: @colorGray; +@actorSeparatorColor: @colorLightGray; +@actorAttributeButtonBorder: @colorPaleGray; +@actorAttributeButtonBorderHover: @colorRed; +@actorNavigationTabsColor: @colorGray; +@actorNavigationTabsActiveColor: @colorRed; +@actorNavigationTabsHoverBgColor: rgba(@colorGray, 0.1); +@actorNavigationTabsActiveHoverBgColor: rgba(@colorRed, 0.1); +@actorFilterBorderColor: @colorLightGray; +@actorFilterHoverColor: @colorRed; +@actorFilterActiveColor: @colorRed; +@actorGroupListHeaderBgColor: lighten(@colorPaleGray, 10); +@actorGroupListTitleBorderColor: @colorBlue; +@actorGroupListColumnBorderColor: @colorPaleGray; +@actorGroupListAltRowColor: lighten(@colorPaleGray, 10); +@actorItemRollableD20Color: @colorGray; +@actorItemRollableD20HoverColor: @colorRed; +@actorItemControlToggleColor: @colorLightGray; +@actorAbilityScoreColor: @colorGray; +@actorAbilityBorderColor: @colorPaleGray; +@actorSkillsAltRowColor: lighten(@colorPaleGray, 10); +@actorEncumbranceLabelBackground: @colorPaleGray; +@actorEncumbranceTextColor: @colorBlack; +@actorEncumbranceBorderColor: @colorBlack; +@actorEncumbranceBarBgColor: @colorPaleBlue; @actorEncumbranceBarColor: @colorBlue; \ No newline at end of file diff --git a/less/update/_variables-light.less b/less/update/_variables-light.less index 12f86a38..b52a863b 100644 --- a/less/update/_variables-light.less +++ b/less/update/_variables-light.less @@ -1,143 +1,143 @@ -//Background -@primaryBackground: linear-gradient(90deg,#afc6d6 0,#d6d6d6 30%,#d6d6d6 70%,#afc6d6);// linear-gradient(90deg, @colorPaleBlue 0%, @colorPaleGray 30%, @colorPaleGray 70%, @colorPaleBlue); - -//Typography -@headingColor: @colorRed; -@headerBorderColor: @colorBlue; -@bodyFontColor: @colorBlack; -@linkColor: @colorRed; -@linkSecondaryColor: @colorGray; - -@blockquoteBackground: @colorPaleBlue; -@blockquoteBorder: @colorBlue; -@blockquoteShadow: 0 0 20px rgba(@colorBlue, 0.8); - -//forms -@inputBackgroundColor: @colorGray; -@inputBorderNormal: @colorLightGray; -@inputBorderHover: @colorGray; -@inputBorderFocus: @colorRed; -@inputTextColor: @colorBlack; - -@buttonBackground: @colorRed; -@buttonTextColor: white; -@buttonHoverBackground: lighten(@colorRed, 5); -@buttonSecondaryBackground: @colorPaleGray; -@buttonSecondaryTextColor: @colorBlack; -@buttonSecondaryHoverBackground: lighten(@colorPaleGray, 5); - -//other bits -@hrColor: @colorBlue; -@tableTextColor: @colorBlack; -@tableHeaderTextColor: @colorLightGray; -@tableBackground: white; -@tableRowHoverBackground: lighten(@colorPaleGray, 10); -@tableRowBorderColor: @colorPaleGray; - -//universalColors -@windowHeaderBackground: white; -@windowHeaderLinkColor: @colorRed; - -//Sidebar -@sidebarTabBackground: @windowHeaderBackground; -@sidebarTabLinkColor: @windowHeaderLinkColor; -@sidebarTabLinkUnderline: @colorRed; - -@chatBackground: white; -@chatHeaderColor: @colorRed; -@chatHeaderBottomBorderColor: @colorBlue; -@chatNotificationColor: @colorBlue; -@cardButtonBorder: @colorLightGray; -@cardFooterBorder: @colorLightBlue; -@cardFooterSeparator: @colorPaleGray; - -@diceFormulaBackground: @colorPaleGray; -@diceFormualColor: @colorBlack; -@diceTotalBackground: @colorPaleBlue; -@diceTotalBorder: @colorBlue; -@diceTotalShadow: @colorBlue; -@diceSuccessColor: @colorGreen; -@diceFailureColor: @colorRed; -@diceCriticalBackground: @colorPaleGreen; -@diceCriticalColor: @colorGreen; -@diceFumbleBackground: @colorPaleRed; -@diceFumbleColor: @colorRed; - -@altRowBackground: @colorPaleBlue; - -@combatRoundColor: @colorRed; -@combatRoundBorder: @colorBlue; -@combatCombatantControlColor: @colorLightGray; -@combatCombatantControlColorActive: @colorDarkGray; -@combatActiveCombatantColor: @colorBlue; -@combatTokenResourceColor: @colorGray; -@combatTokenResouceBorder: @colorLightGray; -@combatControlsBorder: @colorBlue; - -@folderSearchIconColor: @colorBlue; -@folderSubdirectoryBackground: white; -@folderSubdirectoryBorder: @colorBlack; -@directoryListItemBorder: @colorBlue; -@folderHeaderBackground: white; -@folderHeaderColor: @colorBlack; -@folderIconColor: @colorBlue; - -@entityBackgroundColor: white; -@entityNameColor: @colorBlack; - -@sceneBorderColor: @colorBlue; -@sceneBackgroundColor: white; - -@playlistBackgroundColor: white; -@playlistHeaderBorder: @colorBlue; -@playlistSoundColor: @colorBlack; - -@compendiumEntityBackground: white; -@compendiumStatusIcon: @colorLightGray; - -@foundryNavBgColor: rgba(@colorLightBlue, 0.4); -@foundryNavTextColor: white; -@foundryNavBorderColor: @colorBlue; -@foundryNavBgColorGM: @colorBlue; -@foundryNavBorderColorGM: @colorPaleBlue; -@foundryNavSceneLinkColor: white; -@foundryNavActiveBgColor: rgba(@colorRed, 0.6); -@foundryNavActiveBorderColor: lighten(@colorRed, 20); -@foundryNavActiveGlow: darken(@colorRed, 20); -@foundryNavContextShadow: darken(@colorBlue, 20); -@foundryNavContextBorderColor: @colorBlue; - -@foundryPlayersArrowColor: @colorLightGray; - -@actorPanelBgColor: white; -@actorNameColor: @colorRed; -@actorXPBarBorder: @colorGray; -@actorXPBarBackground: @colorPaleBlue; -@actorXPBarColor: @colorBlue; -@actorProficiencyTextColor: @colorGray; -@actorAttributeInputColor: @colorGray; -@actorSeparatorColor: @colorLightGray; -@actorAttributeButtonBorder: @colorPaleGray; -@actorAttributeButtonBorderHover: @colorRed; -@actorNavigationTabsColor: @colorGray; -@actorNavigationTabsActiveColor: @colorRed; -@actorNavigationTabsHoverBgColor: rgba(@colorGray, 0.1); -@actorNavigationTabsActiveHoverBgColor: rgba(@colorRed, 0.1); -@actorFilterBorderColor: @colorLightGray; -@actorFilterHoverColor: @colorRed; -@actorFilterActiveColor: @colorRed; -@actorGroupListHeaderBgColor: lighten(@colorPaleGray, 10); -@actorGroupListTitleBorderColor: @colorBlue; -@actorGroupListColumnBorderColor: @colorPaleGray; -@actorGroupListAltRowColor: lighten(@colorPaleGray, 10); -@actorItemRollableD20Color: @colorGray; -@actorItemRollableD20HoverColor: @colorRed; -@actorItemControlToggleColor: @colorLightGray; -@actorAbilityScoreColor: @colorGray; -@actorAbilityBorderColor: @colorPaleGray; -@actorSkillsAltRowColor: lighten(@colorPaleGray, 10); -@actorEncumbranceLabelBackground: @colorPaleGray; -@actorEncumbranceTextColor: @colorBlack; -@actorEncumbranceBorderColor: @colorBlack; -@actorEncumbranceBarBgColor: @colorPaleBlue; +//Background +@primaryBackground: linear-gradient(90deg,#afc6d6 0,#d6d6d6 30%,#d6d6d6 70%,#afc6d6);// linear-gradient(90deg, @colorPaleBlue 0%, @colorPaleGray 30%, @colorPaleGray 70%, @colorPaleBlue); + +//Typography +@headingColor: @colorRed; +@headerBorderColor: @colorBlue; +@bodyFontColor: @colorBlack; +@linkColor: @colorRed; +@linkSecondaryColor: @colorGray; + +@blockquoteBackground: @colorPaleBlue; +@blockquoteBorder: @colorBlue; +@blockquoteShadow: 0 0 20px rgba(@colorBlue, 0.8); + +//forms +@inputBackgroundColor: @colorGray; +@inputBorderNormal: @colorLightGray; +@inputBorderHover: @colorGray; +@inputBorderFocus: @colorRed; +@inputTextColor: @colorBlack; + +@buttonBackground: @colorRed; +@buttonTextColor: white; +@buttonHoverBackground: lighten(@colorRed, 5); +@buttonSecondaryBackground: @colorPaleGray; +@buttonSecondaryTextColor: @colorBlack; +@buttonSecondaryHoverBackground: lighten(@colorPaleGray, 5); + +//other bits +@hrColor: @colorBlue; +@tableTextColor: @colorBlack; +@tableHeaderTextColor: @colorLightGray; +@tableBackground: white; +@tableRowHoverBackground: lighten(@colorPaleGray, 10); +@tableRowBorderColor: @colorPaleGray; + +//universalColors +@windowHeaderBackground: white; +@windowHeaderLinkColor: @colorRed; + +//Sidebar +@sidebarTabBackground: @windowHeaderBackground; +@sidebarTabLinkColor: @windowHeaderLinkColor; +@sidebarTabLinkUnderline: @colorRed; + +@chatBackground: white; +@chatHeaderColor: @colorRed; +@chatHeaderBottomBorderColor: @colorBlue; +@chatNotificationColor: @colorBlue; +@cardButtonBorder: @colorLightGray; +@cardFooterBorder: @colorLightBlue; +@cardFooterSeparator: @colorPaleGray; + +@diceFormulaBackground: @colorPaleGray; +@diceFormualColor: @colorBlack; +@diceTotalBackground: @colorPaleBlue; +@diceTotalBorder: @colorBlue; +@diceTotalShadow: @colorBlue; +@diceSuccessColor: @colorGreen; +@diceFailureColor: @colorRed; +@diceCriticalBackground: @colorPaleGreen; +@diceCriticalColor: @colorGreen; +@diceFumbleBackground: @colorPaleRed; +@diceFumbleColor: @colorRed; + +@altRowBackground: @colorPaleBlue; + +@combatRoundColor: @colorRed; +@combatRoundBorder: @colorBlue; +@combatCombatantControlColor: @colorLightGray; +@combatCombatantControlColorActive: @colorDarkGray; +@combatActiveCombatantColor: @colorBlue; +@combatTokenResourceColor: @colorGray; +@combatTokenResouceBorder: @colorLightGray; +@combatControlsBorder: @colorBlue; + +@folderSearchIconColor: @colorBlue; +@folderSubdirectoryBackground: white; +@folderSubdirectoryBorder: @colorBlack; +@directoryListItemBorder: @colorBlue; +@folderHeaderBackground: white; +@folderHeaderColor: @colorBlack; +@folderIconColor: @colorBlue; + +@entityBackgroundColor: white; +@entityNameColor: @colorBlack; + +@sceneBorderColor: @colorBlue; +@sceneBackgroundColor: white; + +@playlistBackgroundColor: white; +@playlistHeaderBorder: @colorBlue; +@playlistSoundColor: @colorBlack; + +@compendiumEntityBackground: white; +@compendiumStatusIcon: @colorLightGray; + +@foundryNavBgColor: rgba(@colorLightBlue, 0.4); +@foundryNavTextColor: white; +@foundryNavBorderColor: @colorBlue; +@foundryNavBgColorGM: @colorBlue; +@foundryNavBorderColorGM: @colorPaleBlue; +@foundryNavSceneLinkColor: white; +@foundryNavActiveBgColor: rgba(@colorRed, 0.6); +@foundryNavActiveBorderColor: lighten(@colorRed, 20); +@foundryNavActiveGlow: darken(@colorRed, 20); +@foundryNavContextShadow: darken(@colorBlue, 20); +@foundryNavContextBorderColor: @colorBlue; + +@foundryPlayersArrowColor: @colorLightGray; + +@actorPanelBgColor: white; +@actorNameColor: @colorRed; +@actorXPBarBorder: @colorGray; +@actorXPBarBackground: @colorPaleBlue; +@actorXPBarColor: @colorBlue; +@actorProficiencyTextColor: @colorGray; +@actorAttributeInputColor: @colorGray; +@actorSeparatorColor: @colorLightGray; +@actorAttributeButtonBorder: @colorPaleGray; +@actorAttributeButtonBorderHover: @colorRed; +@actorNavigationTabsColor: @colorGray; +@actorNavigationTabsActiveColor: @colorRed; +@actorNavigationTabsHoverBgColor: rgba(@colorGray, 0.1); +@actorNavigationTabsActiveHoverBgColor: rgba(@colorRed, 0.1); +@actorFilterBorderColor: @colorLightGray; +@actorFilterHoverColor: @colorRed; +@actorFilterActiveColor: @colorRed; +@actorGroupListHeaderBgColor: lighten(@colorPaleGray, 10); +@actorGroupListTitleBorderColor: @colorBlue; +@actorGroupListColumnBorderColor: @colorPaleGray; +@actorGroupListAltRowColor: lighten(@colorPaleGray, 10); +@actorItemRollableD20Color: @colorGray; +@actorItemRollableD20HoverColor: @colorRed; +@actorItemControlToggleColor: @colorLightGray; +@actorAbilityScoreColor: @colorGray; +@actorAbilityBorderColor: @colorPaleGray; +@actorSkillsAltRowColor: lighten(@colorPaleGray, 10); +@actorEncumbranceLabelBackground: @colorPaleGray; +@actorEncumbranceTextColor: @colorBlack; +@actorEncumbranceBorderColor: @colorBlack; +@actorEncumbranceBarBgColor: @colorPaleBlue; @actorEncumbranceBarColor: @colorBlue; \ No newline at end of file diff --git a/less/update/components/actor-global.less b/less/update/components/actor-global.less index 62cdfe71..c958e26f 100644 --- a/less/update/components/actor-global.less +++ b/less/update/components/actor-global.less @@ -1,1059 +1,1059 @@ - -.panel { - padding: 8px; - border-radius: 4px; - .dropShadow1(); -} -.sw5e.sheet.actor.character { - min-width: 850px; - min-height: 720px; -} -.sw5e.sheet .window-content { - .openSans(12px); - - input, - select { - height: 24px; - line-height: 20px; - padding: 1px 4px; - &:hover { - box-shadow: none; - } - &:focus { - box-shadow: none; - } - } - - button { - cursor: pointer; - &:hover, - &:focus { - box-shadow: none; - } - } -} - -.sw5e.sheet.actor { - input, select, textarea { - border-color: transparent; - background: none; - - } - .swalt-sheet { - display: grid; - grid-template-rows: 182px 36px auto; - - section>h1 { - .russoOne(17px); - text-align: left; - margin-bottom: 4px; - } - - header { - display: grid; - grid-template-rows: 1fr 26px auto; - grid-template-columns: 128px 1fr; - column-gap: 8px; - grid-row-gap: 8px; - - img { - grid-column-start: 1; - grid-row-start: 1; - grid-row-end: 4; - box-sizing: border-box; - border: none; - border-radius: 0; - max-width: 100%; - max-height: 100%; - } - - h1.character-name { - grid-row: 1; - grid-column: 2; - margin: 0; - border: none; - align-self: center; - height: auto; - - .russoOne(32px); - text-transform: uppercase; - height: auto; - - input[type="text"] { - .russoOne(32px); - text-transform: uppercase; - height: auto; - border: none; - background: none; - &:focus { - text-transform: none; - } - } - } - - .level-experience { - grid-row: 1; - grid-column: 3; - - .charlevel { - .russoOne(17px); - text-align: right; - input { - display: inline-block; - width: 42px; - height: auto; - } - } - - .experience { - .russoOne(17px); - text-align: right; - line-height: 26px; - input { - display: inline-block; - width: 120px; - text-align: right; - } - } - - .xpbar { - height: 8px; - - .bar { - display: block; - height: 100%; - } - } - } - - .summary { - grid-column-start: 2; - grid-row-start: 2; - grid-column-end: 4; - display: grid; - grid-template-rows: 1fr; - grid-template-columns: repeat(4, 1fr); - - input, - .proficiency { - display: inline; - height: auto; - .russoOne(17px); - line-height: 24px; - } - - .proficiency { - line-height: 26px; - } - } - - .attributes { - grid-column-start: 2; - grid-row-start: 3; - grid-column-end: 4; - display: grid; - grid-template-columns: repeat(5, 1fr); - column-gap: 12px; - - h1 { - text-align: center; - } - - .attribute-value, - .attribute-value input { - .russoOne(22px); - text-align: center; - line-height: 1; - - } - - .attribute-value { - - &.multiple { - display: grid; - grid-template-columns: auto 14px auto; - - input { - width: 100%; - } - } - - input { - display: inline-block; - } - - .value-number { - display: inline-block; - text-align: right; - - padding: 0px 3px; - - &:last-child { - text-align: left; - } - } - - span.value-number { - padding: 1px 4px; - } - - .initiative { - padding: 1px 4px; - display: block; - } - } - - footer { - - - button { - background: none; - padding: 1px 3px; - font-size: inherit; - line-height: inherit; - display: inline-block; - width: auto; - - &:hover { - font-weight: 400; - } - } - - &.hit-points, - &.hit-dice, - &.initiative { - display: grid; - grid-template-columns: 1fr 1fr; - column-gap: 8px; - margin-top: 0; - input, - button { - //border: 1px solid @colorPaleGray; - width: 100%; - text-align: center; - } - - button { - - font-weight: 400; - margin-top: 2px; - - } - - span { - display: block; - padding: 3px 4px; - } - } - - &.speed { - margin-top: 0; - input { - text-align: center; - } - } - } - } - } - - nav.sheet-navigation { - display: grid; - grid-template-columns: repeat(6, 1fr); - column-gap: 16px; - margin: 4px 0; - - .item { - background: none; - border: none; - border-bottom: 3px solid transparent; - border-radius: 0; - margin: 0; - padding: 3px 0 0; - line-height: 1; - .russoOne(16px); - } - } - .editor { - position: static; - min-height: 32px; - padding: 0; - .editor-edit { - display: block; - font-size: 12px; - background: none; - border: none; - padding: 0; - box-shadow: none; - top: 0; - right: 0; - &:hover { - text-shadow: none; - } - } - .tox.tox-tinymce { - height: 250px !important; - } - } - .tab { - display: none; - - &.active { - display: block; - } - - .filter-list { - list-style: none; - margin: 0; - padding: 0 0 8px; - display: flex; - flex-direction: row; - justify-content: flex-end; - max-width: 100%; - - .filter-title { - display: none; - font-weight: bold; - width: 50px; - } - - .filter-item { - width: 100px; - text-align: center; - - &+.filter-item { - margin-left: 12px; - } - - &:hover { - text-shadow: none; - } - - } - } - - .group-list-header { - display: grid; - padding-right: 6px; - } - - .group-list-title { - h3 { - .russoOne(17px); - margin: 4px 0 0; - padding: 0 4px; - display: inline; - border: none; - } - - .item-create { - font-size: 12px; - i { - font-size: 10px; - } - &:hover { - text-shadow: none; - } - } - - } - - .group-list-header, - .group-list { - .item-detail { - text-align: left; - padding: 4px; - } - } - - .group-list { - height: 100%; - overflow-y: scroll; - & > li:first-child { - padding-top: 8px; - } - } - - .group-list, - .group-list ol { - list-style: none; - margin: 0 0 8px; - padding: 0; - - .item-uses { - input { - display: inline-block; - width: 32px; - margin-right: 0; - text-align: right; - } - span { - padding-left: 8px; - } - .slot-max-override { - margin-left: 5px; - &:hover { - text-shadow: none; - } - } - } - li.item { - display: grid; - - h4 { - .openSans(13px, 700); - letter-spacing: 0; - } - .item-name, - .item-detail { - padding: 4px; - line-height: 30px; - } - - .item-name { - display: flex; - - .item-image { - width: 30px; - height: 30px; - position: relative; - background-size: contain; - &::before { - font-family: "Font Awesome 5 Free"; - font-weight: 900; - content: '\f6cf'; - opacity: 0; - position: absolute; - top: 0; - left: 2px; - font-size: 26px; - } - - } - - h4 { - line-height: 30px; - display: inline-block; - height: 30px; - padding-left: 8px; - margin: 0; - } - - &.rollable:hover { - text-shadow: none; - - .item-image { - background-image: none !important; - - &::before { - opacity: 1; - } - - &:hover { - background-image: none !important; - - &::before { - opacity: 1; - } - } - } - } - } - - .item-summary { - grid-column-start: 1; - grid-column-end: -1; - padding: 4px 4px 4px 38px; - } - - .item-controls { - display: flex; - flex-direction: row; - justify-content: space-evenly; - } - - .item-control { - &:hover { - text-shadow: none; - } - - } - - } - } - - .group-grid-inventory { - grid-template-columns: auto 60px 100px 100px 100px; - - &.group-list-title { - .item-controls { - grid-column-start: 5; - } - } - } - .group-grid-features { - grid-template-columns: auto 100px 100px 100px; - &.group-list-title { - display: grid; - } - .item-controls { - grid-column-start: 4; - } - - } - .group-grid-powers { - grid-template-columns: auto repeat(5, 100px); - &.group-list-title { - display: grid; - align-items: end; - .item-detail { - padding: 0 4px; - } - } - - - } - .group-grid-fav-items { - grid-template-columns: auto 60px 30px 30px 50px; - &.group-list-title { - display: grid; - align-items: end; - .item-detail { - padding: 0 4px; - } - } - } - - } - - .tab > .panel { - height: 100%; - overflow: hidden; - display: grid; - } - - .tab.attributes { - &.active { - display: grid; - } - - grid-template-columns: 350px auto; - grid-template-rows: auto; - column-gap: 16px; - - .abilities { - display: grid; - grid-template-columns: 128px auto; - grid-template-rows: auto; - column-gap: 12px; - - ol { - list-style: none; - margin: 0; - padding: 0; - } - - .scores { - li { - border-radius: 0; - padding: 4px; - &+li { - border-top: 0 !important; - } - &:first-child { - border-radius: 4px 4px 0 0; - } - - &:last-child { - border-bottom-width: 1px; - border-radius: 0 0 4px 4px; - } - - h2 { - .russoOne(14px); - border: none; - text-align: center; - margin: 0; - - &:hover { - text-shadow: none; - } - } - - .ability-score { - .russoOne(22px); - text-align: center; - width: 48px; - margin: 0 auto; - height: 24px; - display: block; - } - - .ability-modifiers { - margin: 0 -4px -4px; - display: grid; - grid-template-columns: 28px auto 28px; - - .ability-mod, - .ability-save { - padding: 2px 4px; - display: block; - font-weight: bold; - font-size: 13px; - text-align: center; - border-style: solid; - } - - .ability-mod { - border-width: 1px 1px 0 0; - border-radius: 0 4px 0 0; - } - - .ability-save { - border-width: 1px 0 0 1px; - border-radius: 4px 0 0 0; - } - - .proficiency-toggle { - border: none; - background: none; - line-height: 1; - } - } - - } - } - - .skills { - li { - display: grid; - grid-template-columns: 28px auto 18px 28px; - align-items: center; - - - .proficiency-toggle { - border: none; - background: none; - height: 23px; - line-height: 23px; - padding: 0 4px; - } - - .skill-name { - &:hover { - text-shadow: none; - } - } - - .skill-ability { - text-transform: capitalize; - } - - .skill-mod { - text-align: right; - padding-right: 4px; - } - } - } - } - - .traits-resources { - grid-template-rows: 32px auto; - nav { - margin-bottom: 4px; - - button { - display: inline-block; - width: auto; - background: none; - border: none; - border-bottom: 3px solid transparent; - border-radius: 0; - margin: 0; - padding: 0 4px; - line-height: 1.6; - .russoOne(14px); - - &+button { - margin-left: 8px; - } - } - } - - section.traits { - display: grid; - grid-template-columns: 1fr 1fr; - grid-gap: 16px; - grid-row-gap: 8px; - - input, - select { - display: block; - width: 100%; - text-align: left; - } - - label { - font-size: 13px; - } - - .trait-selector { - background: none; - border: none; - display: inline; - width: auto; - &:hover { - text-shadow: none; - } - i.fas { - float: none; - &:hover { - text-shadow: none; - } - - } - - } - - .languages { - grid-column-end: span 1; - label { - &:hover { - cursor: pointer; - } - } - } - - .traits-list { - li { - display: inline; - - &::after { - content: ','; - } - - &:last-child::after { - content: ''; - } - } - } - - ul.passives { - grid-column-end: span 2; - list-style: none; - padding: 0; - margin: 0; - display: grid; - grid-template-columns: 1fr 1fr; - grid-gap: 4px; - grid-row-gap: 4px; - - strong { - font-size: 13px; - - } - } - } - - section.resources { - .resource-items { - display: grid; - grid-template-columns: repeat(3, 1fr); - column-gap: 12px; - - .resource { - - h1 { - border: none; - margin: 0; - - input { - font-family: 'Russo One'; - font-size: 16px; - font-weight: 400; - text-align: center; - margin-bottom: 4px; - border-radius: 0; - } - } - - .attribute-value, - .attribute-value input { - .russoOne(22px); - text-align: center; - line-height: 1; - } - - .attribute-value { - display: grid; - grid-template-columns: auto 14px auto; - - input { - display: block; - width: 100%; - } - - .value-number { - display: block; - width: 100%; - text-align: right; - padding: 0px 3px; - &:last-child { - text-align: left; - } - } - - span.value-number { - padding: 1px 4px; - } - - } - - .attribute-footer { - margin: 0; - display: grid; - grid-template-columns: 1fr 1fr; - - label { - text-align: center; - } - - } - } - } - - .counters { - border: none; - margin: 16px 0; - display: grid; - grid-template-columns: repeat(3, 1fr); - - .counter { - height: auto; - border: none; - text-align: center; - - h4 { - font-size: 13px; - margin: 0; - //display: inline; - &.rollable { - &:hover { - text-shadow: none; - } - } - } - - .counter-value { - display: inline; - text-align: left; - } - - input[type="text"] { - display: inline-block; - width: 10px; - } - - input[type="checkbox"] { - display: inline-block; - } - - .death-success, - .death-fail { - display: inline-block; - - } - - .death-success { - margin-right: 8px; - - } - - } - } - } - } - } - - .tab.inventory { - &>.panel { - grid-template-rows: 32px 32px 24px auto; - } - - .currency-encumbrance { - display: grid; - grid-template-columns: 200px auto; - margin-bottom: 8px; - align-items: center; - } - - .currency { - .russoOne(14px); - - input { - display: inline-block; - width: 128px; - .openSans(13px); - } - } - - .encumbrance-wrapper { - display: grid; - grid-template-columns: 400px 100px; - width: 500px; - justify-self: end; - - .encumbrance-label { - font-size: 12px; - line-height: 14px; - width: 100%; - text-shadow: none; - padding: 0; - margin: 0; - height: auto; - text-align: center; - margin-left: -2px; - border-radius: 0 4px 4px 0; - } - - .encumbrance { - position: relative; - border-radius: 4px; - height: 16px; - margin: 0; - width: 100%; - - .encumbrance-bar { - position: absolute; - top: 0; - left: 0; - height: 100%; - border-radius: 4px; - border: none; - } - } - } - } - .tab.features { - &>.panel { - grid-template-rows: 24px auto; - } - } - .tab.powerbook { - &>.panel { - grid-template-rows: 32px 24px 24px auto; - } - h3.power-dc { - line-height: 24px; - } - .powercasting-ability { - display: grid; - grid-template-columns: 2fr 1fr 1fr; - label, h3 { - .russoOne(13px); - border-bottom: none; - } - .power-dc { - grid-column-start: 3; - } - } - } - .tab.biography { - grid-template-columns: 1fr 2fr; - grid-template-rows: 100%; - column-gap: 16px; - padding-bottom: 8px; - max-width: 100%; - &.active { - display: grid; - } - &>.panel { - display: block; - overflow-y: auto; - } - section { - position: relative; - } - - } - .tab.notes { - &>.panel { - display: block; - overflow-y: auto; - } - section { - position: relative; - &>input { - .russoOne(16px); - text-align: left; - margin-bottom: 4px; - } - .editor .editor-edit { - top: 3px; - } - } - } - &.limited { - grid-template-rows: 144px auto; - grid-row-gap: 8px; - header { - grid-template-rows: 1fr; - } - - .tab.biography { - grid-template-columns: 100%; - } - } - } - &.npc { - .swalt-sheet { - header { - h1.character-name { - align-self: auto; - } - .npc-size { - .russoOne(18px); - line-height: 28px; - } - .attributes { - grid-template-columns: repeat(3, 1fr); - footer { - &.proficiency { - margin-top: 0; - line-height: 24px; - text-align: center; - } - &.hit-points { - display: block; - } - } - } - } - nav.sheet-navigation { - grid-template-columns: repeat(4, 1fr); - } - .tab.attributes { - .traits-resources { - display: block; - - .counter { - display: flex; - .counter-value { - margin-left: auto; - } - } - // section.traits { - // display:block; - // } - } - } - .tab.powerbook { - input.powercasting-level { - width: 48px; - } - } - .tab.biography.active { - display: block; - } - } - } -} \ No newline at end of file + +.panel { + padding: 8px; + border-radius: 4px; + .dropShadow1(); +} +.sw5e.sheet.actor.character { + min-width: 850px; + min-height: 720px; +} +.sw5e.sheet .window-content { + .openSans(12px); + + input, + select { + height: 24px; + line-height: 20px; + padding: 1px 4px; + &:hover { + box-shadow: none; + } + &:focus { + box-shadow: none; + } + } + + button { + cursor: pointer; + &:hover, + &:focus { + box-shadow: none; + } + } +} + +.sw5e.sheet.actor { + input, select, textarea { + border-color: transparent; + background: none; + + } + .swalt-sheet { + display: grid; + grid-template-rows: 182px 36px auto; + + section>h1 { + .russoOne(17px); + text-align: left; + margin-bottom: 4px; + } + + header { + display: grid; + grid-template-rows: 1fr 26px auto; + grid-template-columns: 128px 1fr; + column-gap: 8px; + grid-row-gap: 8px; + + img { + grid-column-start: 1; + grid-row-start: 1; + grid-row-end: 4; + box-sizing: border-box; + border: none; + border-radius: 0; + max-width: 100%; + max-height: 100%; + } + + h1.character-name { + grid-row: 1; + grid-column: 2; + margin: 0; + border: none; + align-self: center; + height: auto; + + .russoOne(32px); + text-transform: uppercase; + height: auto; + + input[type="text"] { + .russoOne(32px); + text-transform: uppercase; + height: auto; + border: none; + background: none; + &:focus { + text-transform: none; + } + } + } + + .level-experience { + grid-row: 1; + grid-column: 3; + + .charlevel { + .russoOne(17px); + text-align: right; + input { + display: inline-block; + width: 42px; + height: auto; + } + } + + .experience { + .russoOne(17px); + text-align: right; + line-height: 26px; + input { + display: inline-block; + width: 120px; + text-align: right; + } + } + + .xpbar { + height: 8px; + + .bar { + display: block; + height: 100%; + } + } + } + + .summary { + grid-column-start: 2; + grid-row-start: 2; + grid-column-end: 4; + display: grid; + grid-template-rows: 1fr; + grid-template-columns: repeat(4, 1fr); + + input, + .proficiency { + display: inline; + height: auto; + .russoOne(17px); + line-height: 24px; + } + + .proficiency { + line-height: 26px; + } + } + + .attributes { + grid-column-start: 2; + grid-row-start: 3; + grid-column-end: 4; + display: grid; + grid-template-columns: repeat(5, 1fr); + column-gap: 12px; + + h1 { + text-align: center; + } + + .attribute-value, + .attribute-value input { + .russoOne(22px); + text-align: center; + line-height: 1; + + } + + .attribute-value { + + &.multiple { + display: grid; + grid-template-columns: auto 14px auto; + + input { + width: 100%; + } + } + + input { + display: inline-block; + } + + .value-number { + display: inline-block; + text-align: right; + + padding: 0px 3px; + + &:last-child { + text-align: left; + } + } + + span.value-number { + padding: 1px 4px; + } + + .initiative { + padding: 1px 4px; + display: block; + } + } + + footer { + + + button { + background: none; + padding: 1px 3px; + font-size: inherit; + line-height: inherit; + display: inline-block; + width: auto; + + &:hover { + font-weight: 400; + } + } + + &.hit-points, + &.hit-dice, + &.initiative { + display: grid; + grid-template-columns: 1fr 1fr; + column-gap: 8px; + margin-top: 0; + input, + button { + //border: 1px solid @colorPaleGray; + width: 100%; + text-align: center; + } + + button { + + font-weight: 400; + margin-top: 2px; + + } + + span { + display: block; + padding: 3px 4px; + } + } + + &.speed { + margin-top: 0; + input { + text-align: center; + } + } + } + } + } + + nav.sheet-navigation { + display: grid; + grid-template-columns: repeat(6, 1fr); + column-gap: 16px; + margin: 4px 0; + + .item { + background: none; + border: none; + border-bottom: 3px solid transparent; + border-radius: 0; + margin: 0; + padding: 3px 0 0; + line-height: 1; + .russoOne(16px); + } + } + .editor { + position: static; + min-height: 32px; + padding: 0; + .editor-edit { + display: block; + font-size: 12px; + background: none; + border: none; + padding: 0; + box-shadow: none; + top: 0; + right: 0; + &:hover { + text-shadow: none; + } + } + .tox.tox-tinymce { + height: 250px !important; + } + } + .tab { + display: none; + + &.active { + display: block; + } + + .filter-list { + list-style: none; + margin: 0; + padding: 0 0 8px; + display: flex; + flex-direction: row; + justify-content: flex-end; + max-width: 100%; + + .filter-title { + display: none; + font-weight: bold; + width: 50px; + } + + .filter-item { + width: 100px; + text-align: center; + + &+.filter-item { + margin-left: 12px; + } + + &:hover { + text-shadow: none; + } + + } + } + + .group-list-header { + display: grid; + padding-right: 6px; + } + + .group-list-title { + h3 { + .russoOne(17px); + margin: 4px 0 0; + padding: 0 4px; + display: inline; + border: none; + } + + .item-create { + font-size: 12px; + i { + font-size: 10px; + } + &:hover { + text-shadow: none; + } + } + + } + + .group-list-header, + .group-list { + .item-detail { + text-align: left; + padding: 4px; + } + } + + .group-list { + height: 100%; + overflow-y: scroll; + & > li:first-child { + padding-top: 8px; + } + } + + .group-list, + .group-list ol { + list-style: none; + margin: 0 0 8px; + padding: 0; + + .item-uses { + input { + display: inline-block; + width: 32px; + margin-right: 0; + text-align: right; + } + span { + padding-left: 8px; + } + .slot-max-override { + margin-left: 5px; + &:hover { + text-shadow: none; + } + } + } + li.item { + display: grid; + + h4 { + .openSans(13px, 700); + letter-spacing: 0; + } + .item-name, + .item-detail { + padding: 4px; + line-height: 30px; + } + + .item-name { + display: flex; + + .item-image { + width: 30px; + height: 30px; + position: relative; + background-size: contain; + &::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: '\f6cf'; + opacity: 0; + position: absolute; + top: 0; + left: 2px; + font-size: 26px; + } + + } + + h4 { + line-height: 30px; + display: inline-block; + height: 30px; + padding-left: 8px; + margin: 0; + } + + &.rollable:hover { + text-shadow: none; + + .item-image { + background-image: none !important; + + &::before { + opacity: 1; + } + + &:hover { + background-image: none !important; + + &::before { + opacity: 1; + } + } + } + } + } + + .item-summary { + grid-column-start: 1; + grid-column-end: -1; + padding: 4px 4px 4px 38px; + } + + .item-controls { + display: flex; + flex-direction: row; + justify-content: space-evenly; + } + + .item-control { + &:hover { + text-shadow: none; + } + + } + + } + } + + .group-grid-inventory { + grid-template-columns: auto 60px 100px 100px 100px; + + &.group-list-title { + .item-controls { + grid-column-start: 5; + } + } + } + .group-grid-features { + grid-template-columns: auto 100px 100px 100px; + &.group-list-title { + display: grid; + } + .item-controls { + grid-column-start: 4; + } + + } + .group-grid-powers { + grid-template-columns: auto repeat(5, 100px); + &.group-list-title { + display: grid; + align-items: end; + .item-detail { + padding: 0 4px; + } + } + + + } + .group-grid-fav-items { + grid-template-columns: auto 60px 30px 30px 50px; + &.group-list-title { + display: grid; + align-items: end; + .item-detail { + padding: 0 4px; + } + } + } + + } + + .tab > .panel { + height: 100%; + overflow: hidden; + display: grid; + } + + .tab.attributes { + &.active { + display: grid; + } + + grid-template-columns: 350px auto; + grid-template-rows: auto; + column-gap: 16px; + + .abilities { + display: grid; + grid-template-columns: 128px auto; + grid-template-rows: auto; + column-gap: 12px; + + ol { + list-style: none; + margin: 0; + padding: 0; + } + + .scores { + li { + border-radius: 0; + padding: 4px; + &+li { + border-top: 0 !important; + } + &:first-child { + border-radius: 4px 4px 0 0; + } + + &:last-child { + border-bottom-width: 1px; + border-radius: 0 0 4px 4px; + } + + h2 { + .russoOne(14px); + border: none; + text-align: center; + margin: 0; + + &:hover { + text-shadow: none; + } + } + + .ability-score { + .russoOne(22px); + text-align: center; + width: 48px; + margin: 0 auto; + height: 24px; + display: block; + } + + .ability-modifiers { + margin: 0 -4px -4px; + display: grid; + grid-template-columns: 28px auto 28px; + + .ability-mod, + .ability-save { + padding: 2px 4px; + display: block; + font-weight: bold; + font-size: 13px; + text-align: center; + border-style: solid; + } + + .ability-mod { + border-width: 1px 1px 0 0; + border-radius: 0 4px 0 0; + } + + .ability-save { + border-width: 1px 0 0 1px; + border-radius: 4px 0 0 0; + } + + .proficiency-toggle { + border: none; + background: none; + line-height: 1; + } + } + + } + } + + .skills { + li { + display: grid; + grid-template-columns: 28px auto 18px 28px; + align-items: center; + + + .proficiency-toggle { + border: none; + background: none; + height: 23px; + line-height: 23px; + padding: 0 4px; + } + + .skill-name { + &:hover { + text-shadow: none; + } + } + + .skill-ability { + text-transform: capitalize; + } + + .skill-mod { + text-align: right; + padding-right: 4px; + } + } + } + } + + .traits-resources { + grid-template-rows: 32px auto; + nav { + margin-bottom: 4px; + + button { + display: inline-block; + width: auto; + background: none; + border: none; + border-bottom: 3px solid transparent; + border-radius: 0; + margin: 0; + padding: 0 4px; + line-height: 1.6; + .russoOne(14px); + + &+button { + margin-left: 8px; + } + } + } + + section.traits { + display: grid; + grid-template-columns: 1fr 1fr; + grid-gap: 16px; + grid-row-gap: 8px; + + input, + select { + display: block; + width: 100%; + text-align: left; + } + + label { + font-size: 13px; + } + + .trait-selector { + background: none; + border: none; + display: inline; + width: auto; + &:hover { + text-shadow: none; + } + i.fas { + float: none; + &:hover { + text-shadow: none; + } + + } + + } + + .languages { + grid-column-end: span 1; + label { + &:hover { + cursor: pointer; + } + } + } + + .traits-list { + li { + display: inline; + + &::after { + content: ','; + } + + &:last-child::after { + content: ''; + } + } + } + + ul.passives { + grid-column-end: span 2; + list-style: none; + padding: 0; + margin: 0; + display: grid; + grid-template-columns: 1fr 1fr; + grid-gap: 4px; + grid-row-gap: 4px; + + strong { + font-size: 13px; + + } + } + } + + section.resources { + .resource-items { + display: grid; + grid-template-columns: repeat(3, 1fr); + column-gap: 12px; + + .resource { + + h1 { + border: none; + margin: 0; + + input { + font-family: 'Russo One'; + font-size: 16px; + font-weight: 400; + text-align: center; + margin-bottom: 4px; + border-radius: 0; + } + } + + .attribute-value, + .attribute-value input { + .russoOne(22px); + text-align: center; + line-height: 1; + } + + .attribute-value { + display: grid; + grid-template-columns: auto 14px auto; + + input { + display: block; + width: 100%; + } + + .value-number { + display: block; + width: 100%; + text-align: right; + padding: 0px 3px; + &:last-child { + text-align: left; + } + } + + span.value-number { + padding: 1px 4px; + } + + } + + .attribute-footer { + margin: 0; + display: grid; + grid-template-columns: 1fr 1fr; + + label { + text-align: center; + } + + } + } + } + + .counters { + border: none; + margin: 16px 0; + display: grid; + grid-template-columns: repeat(3, 1fr); + + .counter { + height: auto; + border: none; + text-align: center; + + h4 { + font-size: 13px; + margin: 0; + //display: inline; + &.rollable { + &:hover { + text-shadow: none; + } + } + } + + .counter-value { + display: inline; + text-align: left; + } + + input[type="text"] { + display: inline-block; + width: 10px; + } + + input[type="checkbox"] { + display: inline-block; + } + + .death-success, + .death-fail { + display: inline-block; + + } + + .death-success { + margin-right: 8px; + + } + + } + } + } + } + } + + .tab.inventory { + &>.panel { + grid-template-rows: 32px 32px 24px auto; + } + + .currency-encumbrance { + display: grid; + grid-template-columns: 200px auto; + margin-bottom: 8px; + align-items: center; + } + + .currency { + .russoOne(14px); + + input { + display: inline-block; + width: 128px; + .openSans(13px); + } + } + + .encumbrance-wrapper { + display: grid; + grid-template-columns: 400px 100px; + width: 500px; + justify-self: end; + + .encumbrance-label { + font-size: 12px; + line-height: 14px; + width: 100%; + text-shadow: none; + padding: 0; + margin: 0; + height: auto; + text-align: center; + margin-left: -2px; + border-radius: 0 4px 4px 0; + } + + .encumbrance { + position: relative; + border-radius: 4px; + height: 16px; + margin: 0; + width: 100%; + + .encumbrance-bar { + position: absolute; + top: 0; + left: 0; + height: 100%; + border-radius: 4px; + border: none; + } + } + } + } + .tab.features { + &>.panel { + grid-template-rows: 24px auto; + } + } + .tab.powerbook { + &>.panel { + grid-template-rows: 32px 24px 24px auto; + } + h3.power-dc { + line-height: 24px; + } + .powercasting-ability { + display: grid; + grid-template-columns: 2fr 1fr 1fr; + label, h3 { + .russoOne(13px); + border-bottom: none; + } + .power-dc { + grid-column-start: 3; + } + } + } + .tab.biography { + grid-template-columns: 1fr 2fr; + grid-template-rows: 100%; + column-gap: 16px; + padding-bottom: 8px; + max-width: 100%; + &.active { + display: grid; + } + &>.panel { + display: block; + overflow-y: auto; + } + section { + position: relative; + } + + } + .tab.notes { + &>.panel { + display: block; + overflow-y: auto; + } + section { + position: relative; + &>input { + .russoOne(16px); + text-align: left; + margin-bottom: 4px; + } + .editor .editor-edit { + top: 3px; + } + } + } + &.limited { + grid-template-rows: 144px auto; + grid-row-gap: 8px; + header { + grid-template-rows: 1fr; + } + + .tab.biography { + grid-template-columns: 100%; + } + } + } + &.npc { + .swalt-sheet { + header { + h1.character-name { + align-self: auto; + } + .npc-size { + .russoOne(18px); + line-height: 28px; + } + .attributes { + grid-template-columns: repeat(3, 1fr); + footer { + &.proficiency { + margin-top: 0; + line-height: 24px; + text-align: center; + } + &.hit-points { + display: block; + } + } + } + } + nav.sheet-navigation { + grid-template-columns: repeat(4, 1fr); + } + .tab.attributes { + .traits-resources { + display: block; + + .counter { + display: flex; + .counter-value { + margin-left: auto; + } + } + // section.traits { + // display:block; + // } + } + } + .tab.powerbook { + input.powercasting-level { + width: 48px; + } + } + .tab.biography.active { + display: block; + } + } + } +} diff --git a/less/update/components/actor-themes.less b/less/update/components/actor-themes.less index 6e2a5f44..45ca2d1c 100644 --- a/less/update/components/actor-themes.less +++ b/less/update/components/actor-themes.less @@ -1,416 +1,416 @@ -.panel { - background: @actorPanelBgColor; -} - -.sw5e.sheet .window-content { - color: @colorBlack; - background: linear-gradient(90deg,#afc6d6 0,#d6d6d6 30%,#d6d6d6 70%,#afc6d6); - input, - select { - color: @colorBlack; - &:hover { - border-color: @inputBorderHover; - } - - &:focus { - border-color: @inputBorderFocus; - } - } - - button { - - &:hover, - &:focus { - border-color: @inputBorderFocus; - } - } -} - -.sw5e.sheet.actor { - color: @colorBlack; - input, select, textarea { - &:hover { - border-color: @inputBorderFocus; - } - &:focus { - border-color: @inputBorderFocus; - } - } - .swalt-sheet { - section>h1 { - border-bottom: 2px solid @colorBlue; - } - - header { - - h1.character-name { - color: @actorNameColor; - - input[type="text"] { - color: @actorNameColor; - } - } - - .level-experience { - - .xpbar { - border: 1px solid @actorXPBarBorder; - background-color: @actorXPBarBackground; - - .bar { - background-color: @actorXPBarColor; - } - } - } - - .summary { - - input, - .proficiency { - color: @actorProficiencyTextColor; - } - } - - .attributes { - - .attribute-value, - .attribute-value input { - color: @actorAttributeInputColor; - } - - .attribute-value { - - .value-separator { - color: @actorSeparatorColor; - } - } - - footer { - button { - border: 1px solid @actorAttributeButtonBorder; - - &:hover { - color: @actorAttributeButtonBorderHover; - } - } - - &.hit-points, - &.hit-dice, - &.initiative { - button { - border: 1px solid @actorAttributeButtonBorder; - color: @colorRed; - - &:hover { - border-color: @actorAttributeButtonBorderHover; - } - } - - } - - } - } - } - - nav.sheet-navigation { - .item { - color: @actorNavigationTabsColor; - - &.active { - color: @actorNavigationTabsActiveColor; - border-bottom-color: @actorNavigationTabsActiveColor; - - &:hover { - background: @actorNavigationTabsHoverBgColor; - } - } - - &:hover { - background: @actorNavigationTabsHoverBgColor; - } - } - } - - .tab { - - .filter-list { - - .filter-item { - border-bottom: 2px solid @actorFilterBorderColor; - - &:hover { - color: @actorFilterHoverColor; - } - - &.active { - color: @actorFilterActiveColor; - border-bottom-color: @actorFilterActiveColor; - } - } - } - - .group-list-header { - background: @actorGroupListHeaderBgColor; - } - - .group-list-title { - border-bottom: 1px solid @actorGroupListTitleBorderColor; - } - - .group-list-header, - .group-list { - .item-detail { - border-left: 1px solid @actorGroupListColumnBorderColor; - } - } - - .group-list, - .group-list ol { - li.item { - &:nth-child(even) { - background-color: @actorGroupListAltRowColor; - } - - h4 { - color: @colorBlack; - } - - - .item-name { - - .item-image { - - &::before { - color: @actorItemRollableD20Color; - } - - } - - - &.rollable:hover { - - .item-image { - &:hover { - &::before { - color: @actorItemRollableD20HoverColor; - } - } - } - } - } - - .item-control { - &:hover { - color: @linkColor !important; - } - - &.item-toggle { - color: @actorItemControlToggleColor; - - &.active { - color: @colorBlack; - } - } - } - - } - } - - - - } - - - .tab.attributes { - .abilities { - - .scores { - li { - border: 1px solid @actorAbilityBorderColor; - - h2 { - &:hover { - color: @linkColor; - } - } - - .ability-score { - color: @actorAbilityScoreColor; - } - - .ability-modifiers { - - .ability-mod, - .ability-save { - border-color: @actorAbilityBorderColor; - } - - } - - } - } - - .skills { - li { - &:nth-child(even) { - background-color: @actorSkillsAltRowColor; - } - .proficiency-toggle { - color: @colorBlack; - } - - .skill-name { - &:hover { - color: @linkColor; - } - } - } - } - } - - .traits-resources { - nav { - button { - color: @actorNavigationTabsColor; - - &.active { - color: @actorNavigationTabsActiveColor; - border-bottom-color: @actorNavigationTabsActiveColor; - - &:hover { - background: @actorNavigationTabsActiveHoverBgColor; - } - } - - &:hover { - background: @actorNavigationTabsHoverBgColor; - } - - } - } - - section.traits { - .trait-selector { - i.fas { - color: @linkColor; - } - } - - .languages { - label { - &:hover { - color: @linkColor; - } - } - } - - - } - - section.resources { - .resource-items { - .resource { - h1 { - - input { - color: @headingColor; - border-bottom: 2px solid @headerBorderColor; - } - } - - .attribute-value, - .attribute-value input { - color: @actorAttributeInputColor; - } - - .attribute-value { - .value-separator { - color: @actorSeparatorColor; - } - - } - } - } - - .counters { - .counter { - h4 { - &.rollable { - &:hover { - color: @linkColor; - } - } - } - - - .death-success { - i { - color: @colorGreen; - } - } - - .death-fail { - i { - color: @colorRed; - } - } - } - } - } - } - } - - .tab.inventory { - .currency { - color: @headingColor; - } - - .encumbrance-wrapper { - .encumbrance-label { - background: @actorEncumbranceLabelBackground; - color: @actorEncumbranceTextColor; - border: 1px solid @actorEncumbranceBorderColor; - } - - .encumbrance { - background: @actorEncumbranceBarBgColor; - .encumbrance-bar { - background: @actorEncumbranceBarColor; - } - } - } - } - - - .tab.powerbook { - .powercasting-ability { - label, - h3 { - color: @headingColor; - - span { - color: @colorBlack; - } - } - } - } - - .tab.notes { - section { - &>input { - color: @headingColor; - border-bottom: 2px solid @headerBorderColor; - } - } - } - } - &.npc { - .swalt-sheet { - header { - .experience { - color: @actorProficiencyTextColor; - } - } - } - } +.panel { + background: @actorPanelBgColor; +} + +.sw5e.sheet .window-content { + color: @colorBlack; + background: linear-gradient(90deg,#afc6d6 0,#d6d6d6 30%,#d6d6d6 70%,#afc6d6); + input, + select { + color: @colorBlack; + &:hover { + border-color: @inputBorderHover; + } + + &:focus { + border-color: @inputBorderFocus; + } + } + + button { + + &:hover, + &:focus { + border-color: @inputBorderFocus; + } + } +} + +.sw5e.sheet.actor { + color: @colorBlack; + input, select, textarea { + &:hover { + border-color: @inputBorderFocus; + } + &:focus { + border-color: @inputBorderFocus; + } + } + .swalt-sheet { + section>h1 { + border-bottom: 2px solid @colorBlue; + } + + header { + + h1.character-name { + color: @actorNameColor; + + input[type="text"] { + color: @actorNameColor; + } + } + + .level-experience { + + .xpbar { + border: 1px solid @actorXPBarBorder; + background-color: @actorXPBarBackground; + + .bar { + background-color: @actorXPBarColor; + } + } + } + + .summary { + + input, + .proficiency { + color: @actorProficiencyTextColor; + } + } + + .attributes { + + .attribute-value, + .attribute-value input { + color: @actorAttributeInputColor; + } + + .attribute-value { + + .value-separator { + color: @actorSeparatorColor; + } + } + + footer { + button { + border: 1px solid @actorAttributeButtonBorder; + + &:hover { + color: @actorAttributeButtonBorderHover; + } + } + + &.hit-points, + &.hit-dice, + &.initiative { + button { + border: 1px solid @actorAttributeButtonBorder; + color: @colorRed; + + &:hover { + border-color: @actorAttributeButtonBorderHover; + } + } + + } + + } + } + } + + nav.sheet-navigation { + .item { + color: @actorNavigationTabsColor; + + &.active { + color: @actorNavigationTabsActiveColor; + border-bottom-color: @actorNavigationTabsActiveColor; + + &:hover { + background: @actorNavigationTabsHoverBgColor; + } + } + + &:hover { + background: @actorNavigationTabsHoverBgColor; + } + } + } + + .tab { + + .filter-list { + + .filter-item { + border-bottom: 2px solid @actorFilterBorderColor; + + &:hover { + color: @actorFilterHoverColor; + } + + &.active { + color: @actorFilterActiveColor; + border-bottom-color: @actorFilterActiveColor; + } + } + } + + .group-list-header { + background: @actorGroupListHeaderBgColor; + } + + .group-list-title { + border-bottom: 1px solid @actorGroupListTitleBorderColor; + } + + .group-list-header, + .group-list { + .item-detail { + border-left: 1px solid @actorGroupListColumnBorderColor; + } + } + + .group-list, + .group-list ol { + li.item { + &:nth-child(even) { + background-color: @actorGroupListAltRowColor; + } + + h4 { + color: @colorBlack; + } + + + .item-name { + + .item-image { + + &::before { + color: @actorItemRollableD20Color; + } + + } + + + &.rollable:hover { + + .item-image { + &:hover { + &::before { + color: @actorItemRollableD20HoverColor; + } + } + } + } + } + + .item-control { + &:hover { + color: @linkColor !important; + } + + &.item-toggle { + color: @actorItemControlToggleColor; + + &.active { + color: @colorBlack; + } + } + } + + } + } + + + + } + + + .tab.attributes { + .abilities { + + .scores { + li { + border: 1px solid @actorAbilityBorderColor; + + h2 { + &:hover { + color: @linkColor; + } + } + + .ability-score { + color: @actorAbilityScoreColor; + } + + .ability-modifiers { + + .ability-mod, + .ability-save { + border-color: @actorAbilityBorderColor; + } + + } + + } + } + + .skills { + li { + &:nth-child(even) { + background-color: @actorSkillsAltRowColor; + } + .proficiency-toggle { + color: @colorBlack; + } + + .skill-name { + &:hover { + color: @linkColor; + } + } + } + } + } + + .traits-resources { + nav { + button { + color: @actorNavigationTabsColor; + + &.active { + color: @actorNavigationTabsActiveColor; + border-bottom-color: @actorNavigationTabsActiveColor; + + &:hover { + background: @actorNavigationTabsActiveHoverBgColor; + } + } + + &:hover { + background: @actorNavigationTabsHoverBgColor; + } + + } + } + + section.traits { + .trait-selector { + i.fas { + color: @linkColor; + } + } + + .languages { + label { + &:hover { + color: @linkColor; + } + } + } + + + } + + section.resources { + .resource-items { + .resource { + h1 { + + input { + color: @headingColor; + border-bottom: 2px solid @headerBorderColor; + } + } + + .attribute-value, + .attribute-value input { + color: @actorAttributeInputColor; + } + + .attribute-value { + .value-separator { + color: @actorSeparatorColor; + } + + } + } + } + + .counters { + .counter { + h4 { + &.rollable { + &:hover { + color: @linkColor; + } + } + } + + + .death-success { + i { + color: @colorGreen; + } + } + + .death-fail { + i { + color: @colorRed; + } + } + } + } + } + } + } + + .tab.inventory { + .currency { + color: @headingColor; + } + + .encumbrance-wrapper { + .encumbrance-label { + background: @actorEncumbranceLabelBackground; + color: @actorEncumbranceTextColor; + border: 1px solid @actorEncumbranceBorderColor; + } + + .encumbrance { + background: @actorEncumbranceBarBgColor; + .encumbrance-bar { + background: @actorEncumbranceBarColor; + } + } + } + } + + + .tab.powerbook { + .powercasting-ability { + label, + h3 { + color: @headingColor; + + span { + color: @colorBlack; + } + } + } + } + + .tab.notes { + section { + &>input { + color: @headingColor; + border-bottom: 2px solid @headerBorderColor; + } + } + } + } + &.npc { + .swalt-sheet { + header { + .experience { + color: @actorProficiencyTextColor; + } + } + } + } } \ No newline at end of file diff --git a/less/update/components/forms-global.less b/less/update/components/forms-global.less index 9dc02f30..f5c1aee6 100644 --- a/less/update/components/forms-global.less +++ b/less/update/components/forms-global.less @@ -1,105 +1,105 @@ -input[type="text"], input[type="number"], input[type="password"], input[type="date"], input[type="time"], select, textarea { - border-radius: 4px; - transition: all 0.3s; - &:hover { - box-shadow: none; - } - &:focus { - 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, input[type="button"], input[type="submit"], input[type="reset"] { - .openSans(13px, 700); - text-align: center; - border: none; - border-radius: 4px; - cursor: pointer; - transition: all 0.3s; - &:hover, &:focus { - box-shadow: none; - } - &:disabled { - opacity: 0.6; - cursor: default; - - } - -} +input[type="text"], input[type="number"], input[type="password"], input[type="date"], input[type="time"], select, textarea { + border-radius: 4px; + transition: all 0.3s; + &:hover { + box-shadow: none; + } + &:focus { + 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, input[type="button"], input[type="submit"], input[type="reset"] { + .openSans(13px, 700); + text-align: center; + border: none; + border-radius: 4px; + cursor: pointer; + transition: all 0.3s; + &:hover, &:focus { + box-shadow: none; + } + &:disabled { + opacity: 0.6; + cursor: default; + + } + +} diff --git a/less/update/components/forms-themes.less b/less/update/components/forms-themes.less index 45ca5f2d..583f73c1 100644 --- a/less/update/components/forms-themes.less +++ b/less/update/components/forms-themes.less @@ -1,53 +1,53 @@ -input[type="text"], input[type="number"], input[type="password"], input[type="date"], input[type="time"], select, textarea { - border: 1px solid @inputBorderNormal; - color: @inputTextColor; - &:hover { - border-color: @inputBorderHover; - } - &:focus { - border-color: @inputBorderFocus; - } - &::placeholder { - color: @inputTextColor; - opacity: 0.5; - } - ::-ms-input-placeholder { /* Microsoft Edge */ - color: @inputTextColor; - opacity: 0.5; - } -} - -button, input[type="button"], input[type="submit"], input[type="reset"] { - background: @buttonBackground; - color: @buttonTextColor; - &:hover, &:focus { - background: @buttonHoverBackground; - } - &:disabled { - &:hover, &:focus { - background: @buttonBackground; - } - } - -} -input[type="reset"], button.secondary, button[type="reset"], input[type="button"].secondary, input[type="submit"].secondary { - background: @buttonSecondaryBackground; - color: @buttonSecondaryTextColor; - &:hover { - background: @buttonSecondaryHoverBackground; - } - &:disabled { - &:hover, &:focus { - background: @buttonSecondaryBackground; - } - } -} - -form { - button { - border: none; - } - .notes, .hint { - color: rgba(@bodyFontColor, 0.8); - } +input[type="text"], input[type="number"], input[type="password"], input[type="date"], input[type="time"], select, textarea { + border: 1px solid @inputBorderNormal; + color: @inputTextColor; + &:hover { + border-color: @inputBorderHover; + } + &:focus { + border-color: @inputBorderFocus; + } + &::placeholder { + color: @inputTextColor; + opacity: 0.5; + } + ::-ms-input-placeholder { /* Microsoft Edge */ + color: @inputTextColor; + opacity: 0.5; + } +} + +button, input[type="button"], input[type="submit"], input[type="reset"] { + background: @buttonBackground; + color: @buttonTextColor; + &:hover, &:focus { + background: @buttonHoverBackground; + } + &:disabled { + &:hover, &:focus { + background: @buttonBackground; + } + } + +} +input[type="reset"], button.secondary, button[type="reset"], input[type="button"].secondary, input[type="submit"].secondary { + background: @buttonSecondaryBackground; + color: @buttonSecondaryTextColor; + &:hover { + background: @buttonSecondaryHoverBackground; + } + &:disabled { + &:hover, &:focus { + background: @buttonSecondaryBackground; + } + } +} + +form { + button { + border: none; + } + .notes, .hint { + color: rgba(@bodyFontColor, 0.8); + } } \ No newline at end of file diff --git a/less/update/components/foundry-app-window-themes.less b/less/update/components/foundry-app-window-themes.less index df745c7e..d16c88cf 100644 --- a/less/update/components/foundry-app-window-themes.less +++ b/less/update/components/foundry-app-window-themes.less @@ -1,76 +1,76 @@ -.window-app { - border-radius: 4px; - border: none; - .dropShadow2(); - & > header { - background: @windowHeaderBackground; - border-radius: 4px 4px 0 0; - border: none; - .dropShadow1(); - margin-bottom: 4px; - } - .window-content { - background: @primaryBackground; - color: @bodyFontColor; - footer { - margin-top: 8px; - } - } - &.minimized { - & > header, & > .window-header { - border: none; - border-radius: 4px; - margin: 0; - } - } -} - -#client-settings { - nav.tabs { - border: none; - font-size: 17px; - line-height: 1.6; - a.item { - border-bottom: 3px solid transparent; - color: @bodyFontColor; - &:hover { - text-decoration: none; - } - &.active { - text-shadow: none; - border-bottom-color: @sidebarTabLinkUnderline; - } - } - } - section.content { - border: none; - margin-top: 4px; - } -} - -.dialog-buttons { - margin-top: 8px; - button:last-child { - margin-right: 0; - } - button:not(.default) { - border: 1px solid @buttonBackground; - margin-right: 4px; - background: @buttonSecondaryBackground; - color: @buttonSecondaryTextColor; - &:hover { - background: @buttonSecondaryHoverBackground; - } - - } - button.normal.default { - border: none; - background: @buttonBackground; - color: @buttonTextColor; - &:hover { - background: @buttonHoverBackground; - } - } - - +.window-app { + border-radius: 4px; + border: none; + .dropShadow2(); + & > header { + background: @windowHeaderBackground; + border-radius: 4px 4px 0 0; + border: none; + .dropShadow1(); + margin-bottom: 4px; + } + .window-content { + background: @primaryBackground; + color: @bodyFontColor; + footer { + margin-top: 8px; + } + } + &.minimized { + & > header, & > .window-header { + border: none; + border-radius: 4px; + margin: 0; + } + } +} + +#client-settings { + nav.tabs { + border: none; + font-size: 17px; + line-height: 1.6; + a.item { + border-bottom: 3px solid transparent; + color: @bodyFontColor; + &:hover { + text-decoration: none; + } + &.active { + text-shadow: none; + border-bottom-color: @sidebarTabLinkUnderline; + } + } + } + section.content { + border: none; + margin-top: 4px; + } +} + +.dialog-buttons { + margin-top: 8px; + button:last-child { + margin-right: 0; + } + button:not(.default) { + border: 1px solid @buttonBackground; + margin-right: 4px; + background: @buttonSecondaryBackground; + color: @buttonSecondaryTextColor; + &:hover { + background: @buttonSecondaryHoverBackground; + } + + } + button.normal.default { + border: none; + background: @buttonBackground; + color: @buttonTextColor; + &:hover { + background: @buttonHoverBackground; + } + } + + } \ No newline at end of file diff --git a/less/update/components/foundry-nav-themes.less b/less/update/components/foundry-nav-themes.less index 890e1a26..fd4af78c 100644 --- a/less/update/components/foundry-nav-themes.less +++ b/less/update/components/foundry-nav-themes.less @@ -1,84 +1,84 @@ -#navigation { - #nav-toggle { - background: @foundryNavBgColor; - color: @foundryNavTextColor; - - transform: rotate(-90deg); - - } - .nav-item { - border: 1px solid @foundryNavBorderColor; - } - #scene-list { - .scene { - border: 1px solid @foundryNavBorderColor; - background: rgba(@foundryNavBgColor, 0.4); - a { - color: @foundryNavSceneLinkColor; - } - &.gm { - border: 1px solid @foundryNavBorderColorGM; - background: rgba(@foundryNavBgColorGM, 0.4); - } - &.view, &.context { - box-shadow: 0 0 8px @foundryNavContextShadow; - border-color: @foundryNavContextBorderColor; - } - &.active { - border-color: @foundryNavActiveBorderColor; - background: @foundryNavActiveBgColor; - box-shadow: 0 0 8px @foundryNavActiveGlow; - } - } - } -} -#controls { - .scene-control, .control-tool { - background: @foundryNavBgColor; - color: @foundryNavTextColor; - border: 1px solid @foundryNavBorderColor; - box-shadow: none; - &:hover { - background: @foundryNavBgColor; - box-shadow: 0 0 8px @foundryNavContextShadow; - } - &.active { - border-color: @foundryNavActiveBorderColor; - background: @foundryNavActiveBgColor; - box-shadow: 0 0 8px @foundryNavActiveGlow; - } - } -} -#players { - border: none; - border-radius: 4px; - h3 { - background: @sidebarTabBackground; - border: none; - margin: 0; - padding: 0 8px; - font-size: 17px; - line-height: 30px; - .dropShadow1(); - border-radius: 4px 4px 0 0; - .players-mode { - color: @foundryPlayersArrowColor; - } - } - ol { - margin: 4px 0; - .player-name.self { - color: inherit; - font-weight: 700; - } - .player { - color: @bodyFontColor; - } - .player-active { - margin-top: 7px; - &.active { - box-shadow: none; - } - } - } +#navigation { + #nav-toggle { + background: @foundryNavBgColor; + color: @foundryNavTextColor; + + transform: rotate(-90deg); + + } + .nav-item { + border: 1px solid @foundryNavBorderColor; + } + #scene-list { + .scene { + border: 1px solid @foundryNavBorderColor; + background: rgba(@foundryNavBgColor, 0.4); + a { + color: @foundryNavSceneLinkColor; + } + &.gm { + border: 1px solid @foundryNavBorderColorGM; + background: rgba(@foundryNavBgColorGM, 0.4); + } + &.view, &.context { + box-shadow: 0 0 8px @foundryNavContextShadow; + border-color: @foundryNavContextBorderColor; + } + &.active { + border-color: @foundryNavActiveBorderColor; + background: @foundryNavActiveBgColor; + box-shadow: 0 0 8px @foundryNavActiveGlow; + } + } + } +} +#controls { + .scene-control, .control-tool { + background: @foundryNavBgColor; + color: @foundryNavTextColor; + border: 1px solid @foundryNavBorderColor; + box-shadow: none; + &:hover { + background: @foundryNavBgColor; + box-shadow: 0 0 8px @foundryNavContextShadow; + } + &.active { + border-color: @foundryNavActiveBorderColor; + background: @foundryNavActiveBgColor; + box-shadow: 0 0 8px @foundryNavActiveGlow; + } + } +} +#players { + border: none; + border-radius: 4px; + h3 { + background: @sidebarTabBackground; + border: none; + margin: 0; + padding: 0 8px; + font-size: 17px; + line-height: 30px; + .dropShadow1(); + border-radius: 4px 4px 0 0; + .players-mode { + color: @foundryPlayersArrowColor; + } + } + ol { + margin: 4px 0; + .player-name.self { + color: inherit; + font-weight: 700; + } + .player { + color: @bodyFontColor; + } + .player-active { + margin-top: 7px; + &.active { + box-shadow: none; + } + } + } } \ No newline at end of file diff --git a/less/update/components/sidebar-global.less b/less/update/components/sidebar-global.less index 2f69aae7..9c5acbed 100644 --- a/less/update/components/sidebar-global.less +++ b/less/update/components/sidebar-global.less @@ -1,382 +1,382 @@ -#sidebar { - border: none; //1px solid @colorBlue; - &.collapsed { - #sidebar-tabs { - min-height: 370px; - justify-content: center; - & > .item.active { - border: none; - } - } - } -} - -#sidebar-tabs { - border: none; - box-shadow: none; - justify-content: space-between; - .dropShadow1(); - - .item { - font-size: 16px; - } - .item.active { - border: none; - box-shadow: none; - background: none; - text-shadow: none; - } - -} - -/*----------- -** Chat Tab ------------*/ - -#chat-log { - .chat-message { - 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; -} - -.sw5e.chat-card, -.midi-qol-item-card { - .card-header { - padding: 0; - border: none; - img { - flex: 0 0 36px; - margin-right: 4px; - } - - h3 { - flex: 1; - margin: 0; - line-height: 36px; - .russoOne(17px); - border-bottom: none; - &:hover { - 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; - } - - button { - .openSans(13px, 700); - padding: 4px 0; - height: auto; - line-height: 1.6; - margin: 4px 0; - border: none; - border-radius: 4px; - &:hover, &:focus { - box-shadow: none; - } - } - } - - .card-footer { - padding: 4px 0 0; - - span { - padding: 0 4px 0 0; - font-size: 10px; - - &:last-child { - border-right: none; - padding-right: 0; - } - } - } -} -.dice-roll { - .dice-formula { - border: none; - box-shadow: none; - border-radius: 4px; - } - .dice-total { - border-radius: 0; - padding: 4px 0; - } -} -#chat-controls { - padding-top: 4px; -} -#chat-form textarea { - &:focus { - box-shadow: none; - outline: none; - } -} - -/*----------- -** Combat Tab ------------*/ -#combat { - h3 { - border: none; - } - - #combat-tracker { - li.combatant { - padding: 4px 0; - background: none; - .token-name { - text-shadow: none; - } - h4 { - color: @colorBlack; - } - .roll { - background: none; - &::before { - content: "\f6cf"; - .fontAwesome(); - font-size: 28px; - } - - } - - - .initiative { - text-shadow: none; - } - - &.hidden { - opacity: 0.5; - } - } - } - #combat-controls { - padding-top: 0; - } - } - -/* -** Folders -*/ -.sidebar-tab { -.directory-header { - margin-bottom: 4px; - .header-search { - position: relative; - i.fa-search { - position: absolute; - left: 8px; - } - input { - text-align: left; - padding-left: 22px; - &:focus { - box-shadow: none; - } - } - } -} -.subdirectory { - border: none; - margin-left: 8px; - min-height: 8px; - -} -.directory-list { - padding-bottom: 4px; - .folder { - & > .folder-header { - line-height: default; - padding: 0 0 0 8px; - position: relative; - border: none; - h3 { - padding: 8px 4px; - .openSans(13px, 700); - line-height: 1.6; - & > i { - margin-right: 4px; - } - } - a { - position: absolute; - top: 0; - right: 4px; - height: 100%; - padding: 0 4px; - i { - margin-top: 12px; - } - - &.create-folder { - right: 28px; - } - } - } - } - .directory-item img { - flex: 0 0 32px; - height: 32px; - width: 32px; - align-self: center; - } - .actor, .item, .journal, .table { - border: none; - .entity-name { - .openSans(13px, 700); - } - - } -} -} -#scenes { - .subdirectory { - border-left: none; - } - .scene { - border: none; - box-shadow: none; - position: relative; - height: 128px; - & + .scene { - margin-top: 4px; - } - &::after { - content: ''; - display: block; - width: 100%; - height: 99px; - position: absolute; - top: 28px; - left: 0; - } - h3 { - .openSans(13px, 700); - text-align: left; - text-shadow: none; - padding: 4px 4px 4px 12px; - 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; - margin-bottom: 8px; - border-top: inherit; - .dropShadow1(); - .playlist-header { - text-decoration: none; - } - li.sound { - border: none; - h4 { - .openSans(13px, 400); - } - - } - } - } - -} -#compendium { - .compendium-entity { - margin: 0 4px; - padding: 8px; - .dropShadow1(); - border-radius: 4px; - border: none; - &+ .compendium-entity { - margin-top: 4px; - } - h3 { - background: none; - border: none; - .russoOne(17px); - padding: 0; - margin-bottom: 4px; - } - ol.compendium-list { - li.compendium-pack { - margin: 0; - padding: 4px; - border: none; - .pack-title { - margin: 0; - position: relative; - a { - .openSans(13px, 700); - i { - display: none; - } - } - .status-icons { - top: 4px; - font-size: 13px; - } - } - - } - } - } -} - -#settings { - h2 { - border: none; - margin: 0 8px; - padding: 0; - background: none; - } - #game-details, #settings-game, #settings-documentation, #settings-access { - padding: 0 8px; - margin: 0 0 8px; - } +#sidebar { + border: none; //1px solid @colorBlue; + &.collapsed { + #sidebar-tabs { + min-height: 370px; + justify-content: center; + & > .item.active { + border: none; + } + } + } +} + +#sidebar-tabs { + border: none; + box-shadow: none; + justify-content: space-between; + .dropShadow1(); + + .item { + font-size: 16px; + } + .item.active { + border: none; + box-shadow: none; + background: none; + text-shadow: none; + } + +} + +/*----------- +** Chat Tab +-----------*/ + +#chat-log { + .chat-message { + 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; +} + +.sw5e.chat-card, +.midi-qol-item-card { + .card-header { + padding: 0; + border: none; + img { + flex: 0 0 36px; + margin-right: 4px; + } + + h3 { + flex: 1; + margin: 0; + line-height: 36px; + .russoOne(17px); + border-bottom: none; + &:hover { + 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; + } + + button { + .openSans(13px, 700); + padding: 4px 0; + height: auto; + line-height: 1.6; + margin: 4px 0; + border: none; + border-radius: 4px; + &:hover, &:focus { + box-shadow: none; + } + } + } + + .card-footer { + padding: 4px 0 0; + + span { + padding: 0 4px 0 0; + font-size: 10px; + + &:last-child { + border-right: none; + padding-right: 0; + } + } + } +} +.dice-roll { + .dice-formula { + border: none; + box-shadow: none; + border-radius: 4px; + } + .dice-total { + border-radius: 0; + padding: 4px 0; + } +} +#chat-controls { + padding-top: 4px; +} +#chat-form textarea { + &:focus { + box-shadow: none; + outline: none; + } +} + +/*----------- +** Combat Tab +-----------*/ +#combat { + h3 { + border: none; + } + + #combat-tracker { + li.combatant { + padding: 4px 0; + background: none; + .token-name { + text-shadow: none; + } + h4 { + color: @colorBlack; + } + .roll { + background: none; + &::before { + content: "\f6cf"; + .fontAwesome(); + font-size: 28px; + } + + } + + + .initiative { + text-shadow: none; + } + + &.hidden { + opacity: 0.5; + } + } + } + #combat-controls { + padding-top: 0; + } + } + +/* +** Folders +*/ +.sidebar-tab { +.directory-header { + margin-bottom: 4px; + .header-search { + position: relative; + i.fa-search { + position: absolute; + left: 8px; + } + input { + text-align: left; + padding-left: 22px; + &:focus { + box-shadow: none; + } + } + } +} +.subdirectory { + border: none; + margin-left: 8px; + min-height: 8px; + +} +.directory-list { + padding-bottom: 4px; + .folder { + & > .folder-header { + line-height: default; + padding: 0 0 0 8px; + position: relative; + border: none; + h3 { + padding: 8px 4px; + .openSans(13px, 700); + line-height: 1.6; + & > i { + margin-right: 4px; + } + } + a { + position: absolute; + top: 0; + right: 4px; + height: 100%; + padding: 0 4px; + i { + margin-top: 12px; + } + + &.create-folder { + right: 28px; + } + } + } + } + .directory-item img { + flex: 0 0 32px; + height: 32px; + width: 32px; + align-self: center; + } + .actor, .item, .journal, .table { + border: none; + .entity-name { + .openSans(13px, 700); + } + + } +} +} +#scenes { + .subdirectory { + border-left: none; + } + .scene { + border: none; + box-shadow: none; + position: relative; + height: 128px; + & + .scene { + margin-top: 4px; + } + &::after { + content: ''; + display: block; + width: 100%; + height: 99px; + position: absolute; + top: 28px; + left: 0; + } + h3 { + .openSans(13px, 700); + text-align: left; + text-shadow: none; + padding: 4px 4px 4px 12px; + 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; + margin-bottom: 8px; + border-top: inherit; + .dropShadow1(); + .playlist-header { + text-decoration: none; + } + li.sound { + border: none; + h4 { + .openSans(13px, 400); + } + + } + } + } + +} +#compendium { + .compendium-entity { + margin: 0 4px; + padding: 8px; + .dropShadow1(); + border-radius: 4px; + border: none; + &+ .compendium-entity { + margin-top: 4px; + } + h3 { + background: none; + border: none; + .russoOne(17px); + padding: 0; + margin-bottom: 4px; + } + ol.compendium-list { + li.compendium-pack { + margin: 0; + padding: 4px; + border: none; + .pack-title { + margin: 0; + position: relative; + a { + .openSans(13px, 700); + i { + display: none; + } + } + .status-icons { + top: 4px; + font-size: 13px; + } + } + + } + } + } +} + +#settings { + h2 { + border: none; + margin: 0 8px; + padding: 0; + background: none; + } + #game-details, #settings-game, #settings-documentation, #settings-access { + padding: 0 8px; + margin: 0 0 8px; + } } \ No newline at end of file diff --git a/less/update/components/sidebar-themes.less b/less/update/components/sidebar-themes.less index 02ab20fe..e36d3f35 100644 --- a/less/update/components/sidebar-themes.less +++ b/less/update/components/sidebar-themes.less @@ -1,297 +1,297 @@ -#sidebar-tabs { - background: @sidebarTabBackground; - & > .collapse { - color: @sidebarTabLinkColor; - } - .item.active { - color: @sidebarTabLinkColor; - border-bottom: 3px solid @sidebarTabLinkUnderline; - } -} - -/*----------- -** Chat Tab ------------*/ - -#chat-log { - .chat-message { - background: @chatBackground; - color: @bodyFontColor; - & > header { - color: @chatHeaderColor; - border-bottom: 2px solid @chatHeaderBottomBorderColor; - span { - color: @bodyFontColor; - } - } - - } -} -.notification-pip { - color: @chatNotificationColor; -} - -.sw5e.chat-card, -.midi-qol-item-card { - - .card-header { - h3 { - color: @bodyFontColor; - &:hover { - color: @bodyFontColor; - } - } - } - - - .card-buttons { - span { - border: 1px solid @cardButtonBorder; - } - - } - - .card-footer { - border-top: 1px solid @cardFooterBorder; - - span { - border-right: 1px solid @cardFooterSeparator; - &:last-child { - border-right: none; - } - } - } -} -.dice-roll { - - .dice-formula { - background: @diceFormulaBackground; - color: @diceFormualColor; - box-shadow: none; - border-radius: 4px; - } - -.dice-total { - background: @diceTotalBackground; - border: 1px solid @diceTotalBorder; - box-shadow: 0 0 12px rgba(@diceTotalShadow,.8); - &.success { - color: @diceSuccessColor; - } - &.failure { - color: @diceFailureColor; - } - &.critical { - color: @diceCriticalColor; - background: @diceCriticalBackground; - box-shadow: 0 0 12px rgba(@diceCriticalColor,.5); - } - &.fumble { - color: @diceFumbleColor; - background: @diceFumbleBackground; - box-shadow: 0 0 12px rgba(@diceFumbleColor,.5); - } -} -} -#chat-controls { - .roll-type-select { - background: #4f4f4f; - color: #FFFFFF; - } - label { - color: @bodyFontColor; - } - -} -#chat-form textarea { - background: #4f4f4f; - -} - -/*----------- -** Combat Tab ------------*/ -#combat { -#combat-round { - color: @combatRoundColor; - border-bottom: 2px solid @combatRoundColor; - .encounters { - h4 { - color: @combatRoundColor; - } - a { - color: @linkSecondaryColor; - &:hover { - color: @linkColor; - } - } - } -} - #combat-tracker { - //padding-top: 4px; - li.combatant { - color: @bodyFontColor; - &:nth-child(even) { - background: rgba(@altRowBackground, 0.5); - } - h4 { - color: @bodyFontColor - } - .roll { - color: @linkSecondaryColor; - &:hover { - color: @linkColor; - } - } - .combatant-control { - color: @combatCombatantControlColor; - &.active { - color: @combatCombatantControlColorActive; - } - } - .token-resource { - color: @combatTokenResourceColor; - border-right: 1px solid @combatTokenResouceBorder; - } - &.active { - color: @combatActiveCombatantColor; - .initiative, h4 { - color: @combatActiveCombatantColor; - } - } - &.hidden { - color: @bodyFontColor; - } - } - } - #combat-controls { - border-top: 1px solid @combatControlsBorder; - } -} - -/* -** Folders -*/ -.sidebar-tab { -.directory-header { - .header-search { - i.fa-search { - color: @folderSearchIconColor; - } - input { - background: @inputBackgroundColor; - } - } -} -.subdirectory { - background: @folderSubdirectoryBackground; - .folder { - border-left: 2px solid rgba(@folderSubdirectoryBorder, 0.4); - } -} -.directory-list { - li + li { - border-top: 1px solid @directoryListItemBorder; - } - .folder { - & > .folder-header { - background: @folderHeaderBackground; - h3 { - background: @folderHeaderBackground; - color: @folderHeaderColor; - & > i { - color: @folderIconColor; - } - } - a { - color: @linkSecondaryColor; - &:hover { - color: @linkColor; - } - } - } - &.collapsed > .folder-header { - background: @folderHeaderBackground; - } - & + .entity { - border-top: 1px solid @directoryListItemBorder; - } - } - - .actor, .item, .journal, .table { - background: @entityBackgroundColor; - .entity-name { - color: @entityNameColor; - } - &:nth-child(even) { - background: rgba(@altRowBackground, 0.3); - } - } -} -} -#scenes { - .scene { - border-top: 1px solid @sceneBorderColor; - border-left: 4px solid @sceneBorderColor; - &::after { - box-shadow: 0 0 20px @sceneBorderColor inset; - } - h3 { - background: @sceneBackgroundColor; - } - } -} - -#playlists { - .directory-list { - li.playlist { - background: @playlistBackgroundColor; - .playlist-header { - background: @playlistBackgroundColor; - color: @colorRed; - border-bottom: 2px solid @playlistHeaderBorder; - } - li.sound { - color: @playlistSoundColor; - - } - a.sound-control { - color: @linkColor; - } - } - } - -} -#compendium { - .compendium-entity { - background: @compendiumEntityBackground !important; - h3 { - border-bottom: 2px solid @headerBorderColor; - } - ol.compendium-list { - li.compendium-pack { - &:nth-child(even) { - background: rgba(@altRowBackground, 0.3); - } - .pack-title { - .status-icons { - color: @compendiumStatusIcon; - } - } - footer.compendium-footer { - color: @bodyFontColor; - } - } - } - } -} - -#settings { - h2 { - color: @headingColor; - border-bottom: 2px solid @headerBorderColor; - } - #game-details, #settings-game, #settings-documentation, #settings-access { - color: @bodyFontColor; - } +#sidebar-tabs { + background: @sidebarTabBackground; + & > .collapse { + color: @sidebarTabLinkColor; + } + .item.active { + color: @sidebarTabLinkColor; + border-bottom: 3px solid @sidebarTabLinkUnderline; + } +} + +/*----------- +** Chat Tab +-----------*/ + +#chat-log { + .chat-message { + background: @chatBackground; + color: @bodyFontColor; + & > header { + color: @chatHeaderColor; + border-bottom: 2px solid @chatHeaderBottomBorderColor; + span { + color: @bodyFontColor; + } + } + + } +} +.notification-pip { + color: @chatNotificationColor; +} + +.sw5e.chat-card, +.midi-qol-item-card { + + .card-header { + h3 { + color: @bodyFontColor; + &:hover { + color: @bodyFontColor; + } + } + } + + + .card-buttons { + span { + border: 1px solid @cardButtonBorder; + } + + } + + .card-footer { + border-top: 1px solid @cardFooterBorder; + + span { + border-right: 1px solid @cardFooterSeparator; + &:last-child { + border-right: none; + } + } + } +} +.dice-roll { + + .dice-formula { + background: @diceFormulaBackground; + color: @diceFormualColor; + box-shadow: none; + border-radius: 4px; + } + +.dice-total { + background: @diceTotalBackground; + border: 1px solid @diceTotalBorder; + box-shadow: 0 0 12px rgba(@diceTotalShadow,.8); + &.success { + color: @diceSuccessColor; + } + &.failure { + color: @diceFailureColor; + } + &.critical { + color: @diceCriticalColor; + background: @diceCriticalBackground; + box-shadow: 0 0 12px rgba(@diceCriticalColor,.5); + } + &.fumble { + color: @diceFumbleColor; + background: @diceFumbleBackground; + box-shadow: 0 0 12px rgba(@diceFumbleColor,.5); + } +} +} +#chat-controls { + .roll-type-select { + background: #4f4f4f; + color: #FFFFFF; + } + label { + color: @bodyFontColor; + } + +} +#chat-form textarea { + background: #4f4f4f; + +} + +/*----------- +** Combat Tab +-----------*/ +#combat { +#combat-round { + color: @combatRoundColor; + border-bottom: 2px solid @combatRoundColor; + .encounters { + h4 { + color: @combatRoundColor; + } + a { + color: @linkSecondaryColor; + &:hover { + color: @linkColor; + } + } + } +} + #combat-tracker { + //padding-top: 4px; + li.combatant { + color: @bodyFontColor; + &:nth-child(even) { + background: rgba(@altRowBackground, 0.5); + } + h4 { + color: @bodyFontColor + } + .roll { + color: @linkSecondaryColor; + &:hover { + color: @linkColor; + } + } + .combatant-control { + color: @combatCombatantControlColor; + &.active { + color: @combatCombatantControlColorActive; + } + } + .token-resource { + color: @combatTokenResourceColor; + border-right: 1px solid @combatTokenResouceBorder; + } + &.active { + color: @combatActiveCombatantColor; + .initiative, h4 { + color: @combatActiveCombatantColor; + } + } + &.hidden { + color: @bodyFontColor; + } + } + } + #combat-controls { + border-top: 1px solid @combatControlsBorder; + } +} + +/* +** Folders +*/ +.sidebar-tab { +.directory-header { + .header-search { + i.fa-search { + color: @folderSearchIconColor; + } + input { + background: @inputBackgroundColor; + } + } +} +.subdirectory { + background: @folderSubdirectoryBackground; + .folder { + border-left: 2px solid rgba(@folderSubdirectoryBorder, 0.4); + } +} +.directory-list { + li + li { + border-top: 1px solid @directoryListItemBorder; + } + .folder { + & > .folder-header { + background: @folderHeaderBackground; + h3 { + background: @folderHeaderBackground; + color: @folderHeaderColor; + & > i { + color: @folderIconColor; + } + } + a { + color: @linkSecondaryColor; + &:hover { + color: @linkColor; + } + } + } + &.collapsed > .folder-header { + background: @folderHeaderBackground; + } + & + .entity { + border-top: 1px solid @directoryListItemBorder; + } + } + + .actor, .item, .journal, .table { + background: @entityBackgroundColor; + .entity-name { + color: @entityNameColor; + } + &:nth-child(even) { + background: rgba(@altRowBackground, 0.3); + } + } +} +} +#scenes { + .scene { + border-top: 1px solid @sceneBorderColor; + border-left: 4px solid @sceneBorderColor; + &::after { + box-shadow: 0 0 20px @sceneBorderColor inset; + } + h3 { + background: @sceneBackgroundColor; + } + } +} + +#playlists { + .directory-list { + li.playlist { + background: @playlistBackgroundColor; + .playlist-header { + background: @playlistBackgroundColor; + color: @colorRed; + border-bottom: 2px solid @playlistHeaderBorder; + } + li.sound { + color: @playlistSoundColor; + + } + a.sound-control { + color: @linkColor; + } + } + } + +} +#compendium { + .compendium-entity { + background: @compendiumEntityBackground !important; + h3 { + border-bottom: 2px solid @headerBorderColor; + } + ol.compendium-list { + li.compendium-pack { + &:nth-child(even) { + background: rgba(@altRowBackground, 0.3); + } + .pack-title { + .status-icons { + color: @compendiumStatusIcon; + } + } + footer.compendium-footer { + color: @bodyFontColor; + } + } + } + } +} + +#settings { + h2 { + color: @headingColor; + border-bottom: 2px solid @headerBorderColor; + } + #game-details, #settings-game, #settings-documentation, #settings-access { + color: @bodyFontColor; + } } \ No newline at end of file diff --git a/less/update/components/sidebar.less b/less/update/components/sidebar.less index 67dc2b9b..aa8b2905 100644 --- a/less/update/components/sidebar.less +++ b/less/update/components/sidebar.less @@ -1,500 +1,500 @@ -#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, -.midi-qol-item-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 { - &.roll-type-select { - background: #4f4f4f; - color: #FFFFFF; - } - padding-top: 4px; - label { - color: @colorBlack; - } - -} -#chat-form textarea { - background: #4f4f4f; - &: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; - } +#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, +.midi-qol-item-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 { + &.roll-type-select { + background: #4f4f4f; + color: #FFFFFF; + } + padding-top: 4px; + label { + color: @colorBlack; + } + +} +#chat-form textarea { + background: #4f4f4f; + &: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-dark.less b/less/update/sw5e-dark.less index aef08059..18bd9af7 100644 --- a/less/update/sw5e-dark.less +++ b/less/update/sw5e-dark.less @@ -1,47 +1,47 @@ -@import "_variables.less"; -@import "_variables-dark.less"; - -body.dark-theme { - .app { - background: @primaryBackground; - } - h1, - h2, - h3, - h4, - h5, - h6 { - color: @headingColor; - } - h3 { - border-bottom: 2px solid @headerBorderColor; - } - - a { - color: @linkColor; - text-decoration: none; - - &:hover, - &:active { - text-shadow: none; - text-decoration: underline; - } - } - - blockquote { - padding: 4px 8px; - background-color: @blockquoteBackground; - border: 1px solid @blockquoteBorder; - box-shadow: @blockquoteShadow; - } - - hr { - border-width: 0 0 1px 0; - border-bottom: 1px solid @hrColor; - } - @import "components/forms-themes.less"; - @import "components/sidebar-themes.less"; - @import "components/foundry-nav-themes.less"; - @import "components/foundry-app-window-themes.less"; - @import "components/actor-themes.less"; +@import "_variables.less"; +@import "_variables-dark.less"; + +body.dark-theme { + .app { + background: @primaryBackground; + } + h1, + h2, + h3, + h4, + h5, + h6 { + color: @headingColor; + } + h3 { + border-bottom: 2px solid @headerBorderColor; + } + + a { + color: @linkColor; + text-decoration: none; + + &:hover, + &:active { + text-shadow: none; + text-decoration: underline; + } + } + + blockquote { + padding: 4px 8px; + background-color: @blockquoteBackground; + border: 1px solid @blockquoteBorder; + box-shadow: @blockquoteShadow; + } + + hr { + border-width: 0 0 1px 0; + border-bottom: 1px solid @hrColor; + } + @import "components/forms-themes.less"; + @import "components/sidebar-themes.less"; + @import "components/foundry-nav-themes.less"; + @import "components/foundry-app-window-themes.less"; + @import "components/actor-themes.less"; } \ No newline at end of file diff --git a/less/update/sw5e-global.less b/less/update/sw5e-global.less index 66173163..d1fcd618 100644 --- a/less/update/sw5e-global.less +++ b/less/update/sw5e-global.less @@ -1,194 +1,194 @@ -/* 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'); -} -/* 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'); -} -@font-face { - font-family: 'Aurebesh'; - font-style: normal; - font-weight: 400; - src: url('./fonts/Aurebesh.ttf'); -} -@font-face { - font-family: 'Engli-Besh'; - font-style: normal; - font-weight: 400; - src: url('./fonts/EngliBesh-KG3W.ttf'); -} -@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); - background-image: url('./ui/SW5e-logo.svg'); - background-repeat: no-repeat; - background-size: cover; -} - -h1 { - .russoOne(34px); -} -h2 { - .russoOne(27px); -} -h3 { - .russoOne(21px); -} -h4 { - .russoOne(17px); -} -h5, h6 { - .russoOne(13px); -} - -a { - text-decoration: none; - &:hover, &:active { - text-shadow: none; - text-decoration: underline; - } -} - -.app { - border: none;// 1px solid @colorBlue; - .dropShadow1(); -} -#pause { - img {display: none;} - background: none; - height: 128px; - &::before { - content: ''; - position: absolute; - top: 0; - margin-left: -64px; - left: 50%; - width: 128px; - height: 128px; - background: url("ui/pause-inner.svg") no-repeat 50% 50%; - animation-name: pause-spin; - animation-duration: 10000ms; - animation-iteration-count: infinite; - animation-timing-function: linear; - } - &::after { - content: ''; - position: absolute; - top: 0; - margin-left: -64px; - left: 50%; - width: 128px; - height: 128px; - background: url("ui/pause-outer.svg") no-repeat 50% 50%; - animation-name: pause-spin; - animation-duration: 5000ms; - animation-iteration-count: infinite; - animation-timing-function: linear; - animation-direction: reverse; - } - h3 { - border-bottom: 0; - line-height: 1; - position: absolute; - top: 50%; - left: 50%; - width: 256px; - margin-left: -128px; - margin-top: -13px; - text-shadow: 0 0 24px @colorBlue; - &::before, &::after { - position: absolute; - font-family: "Aurebesh", sans-serif; - font-size: 13px; - color: @colorGray; - animation: none; - opacity: 0.8; - text-shadow: 0 0 8px @colorBlue; - } - &::before { - content: "GAME"; - top: -13px; - left: 42px; - } - &::after { - content: "PAUSED"; - bottom: -13px; - right: 42px; - } - } -} -@import "components/forms-global.less"; -@import "components/sidebar-global.less"; -@import "components/actor-global.less"; - -@keyframes pause-spin { - from { - transform:rotate(0deg); - } - to { - transform: rotate(360deg); - } +/* 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'); +} +/* 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'); +} +@font-face { + font-family: 'Aurebesh'; + font-style: normal; + font-weight: 400; + src: url('./fonts/Aurebesh.ttf'); +} +@font-face { + font-family: 'Engli-Besh'; + font-style: normal; + font-weight: 400; + src: url('./fonts/EngliBesh-KG3W.ttf'); +} +@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); + background-image: url('./ui/SW5e-logo.svg'); + background-repeat: no-repeat; + background-size: cover; +} + +h1 { + .russoOne(34px); +} +h2 { + .russoOne(27px); +} +h3 { + .russoOne(21px); +} +h4 { + .russoOne(17px); +} +h5, h6 { + .russoOne(13px); +} + +a { + text-decoration: none; + &:hover, &:active { + text-shadow: none; + text-decoration: underline; + } +} + +.app { + border: none;// 1px solid @colorBlue; + .dropShadow1(); +} +#pause { + img {display: none;} + background: none; + height: 128px; + &::before { + content: ''; + position: absolute; + top: 0; + margin-left: -64px; + left: 50%; + width: 128px; + height: 128px; + background: url("ui/pause-inner.svg") no-repeat 50% 50%; + animation-name: pause-spin; + animation-duration: 10000ms; + animation-iteration-count: infinite; + animation-timing-function: linear; + } + &::after { + content: ''; + position: absolute; + top: 0; + margin-left: -64px; + left: 50%; + width: 128px; + height: 128px; + background: url("ui/pause-outer.svg") no-repeat 50% 50%; + animation-name: pause-spin; + animation-duration: 5000ms; + animation-iteration-count: infinite; + animation-timing-function: linear; + animation-direction: reverse; + } + h3 { + border-bottom: 0; + line-height: 1; + position: absolute; + top: 50%; + left: 50%; + width: 256px; + margin-left: -128px; + margin-top: -13px; + text-shadow: 0 0 24px @colorBlue; + &::before, &::after { + position: absolute; + font-family: "Aurebesh", sans-serif; + font-size: 13px; + color: @colorGray; + animation: none; + opacity: 0.8; + text-shadow: 0 0 8px @colorBlue; + } + &::before { + content: "GAME"; + top: -13px; + left: 42px; + } + &::after { + content: "PAUSED"; + bottom: -13px; + right: 42px; + } + } +} +@import "components/forms-global.less"; +@import "components/sidebar-global.less"; +@import "components/actor-global.less"; + +@keyframes pause-spin { + from { + transform:rotate(0deg); + } + to { + transform: rotate(360deg); + } } \ No newline at end of file diff --git a/less/update/sw5e-light.less b/less/update/sw5e-light.less index 7e36b236..0f898c80 100644 --- a/less/update/sw5e-light.less +++ b/less/update/sw5e-light.less @@ -1,47 +1,47 @@ -@import "_variables.less"; -@import "_variables-light.less"; - -body.light-theme { - .app { - background: @primaryBackground; - } - h1, - h2, - h3, - h4, - h5, - h6 { - color: @headingColor; - } - h3 { - border-bottom: 2px solid @headerBorderColor; - } - - a { - color: @linkColor; - text-decoration: none; - - &:hover, - &:active { - text-shadow: none; - text-decoration: underline; - } - } - - blockquote { - padding: 4px 8px; - background-color: @blockquoteBackground; - border: 1px solid @blockquoteBorder; - box-shadow: @blockquoteShadow; - } - - hr { - border-width: 0 0 1px 0; - border-bottom: 1px solid @hrColor; - } - @import "components/forms-themes.less"; - @import "components/sidebar-themes.less"; - @import "components/foundry-nav-themes.less"; - @import "components/foundry-app-window-themes.less"; - @import "components/actor-themes.less"; +@import "_variables.less"; +@import "_variables-light.less"; + +body.light-theme { + .app { + background: @primaryBackground; + } + h1, + h2, + h3, + h4, + h5, + h6 { + color: @headingColor; + } + h3 { + border-bottom: 2px solid @headerBorderColor; + } + + a { + color: @linkColor; + text-decoration: none; + + &:hover, + &:active { + text-shadow: none; + text-decoration: underline; + } + } + + blockquote { + padding: 4px 8px; + background-color: @blockquoteBackground; + border: 1px solid @blockquoteBorder; + box-shadow: @blockquoteShadow; + } + + hr { + border-width: 0 0 1px 0; + border-bottom: 1px solid @hrColor; + } + @import "components/forms-themes.less"; + @import "components/sidebar-themes.less"; + @import "components/foundry-nav-themes.less"; + @import "components/foundry-app-window-themes.less"; + @import "components/actor-themes.less"; } \ No newline at end of file diff --git a/less/update/sw5e-update.less b/less/update/sw5e-update.less index 15b7badd..77d6d480 100644 --- a/less/update/sw5e-update.less +++ b/less/update/sw5e-update.less @@ -1,61 +1,61 @@ -@import "variables.less"; - - - -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 "variables.less"; + + + +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/module/actor/entity.js b/module/actor/entity.js index a25fd738..127a0d05 100644 --- a/module/actor/entity.js +++ b/module/actor/entity.js @@ -458,8 +458,8 @@ export default class Actor5e extends Actor { return weight + (q * w); }, 0); - // [Optional] add Currency Weight - if ( game.settings.get("sw5e", "currencyWeight") ) { + // [Optional] add Currency Weight (for non-transformed actors) + if ( game.settings.get("sw5e", "currencyWeight") && actorData.data.currency ) { const currency = actorData.data.currency; const numCoins = Object.values(currency).reduce((val, denom) => val += Math.max(denom, 0), 0); weight += numCoins / CONFIG.SW5E.encumbrance.currencyPerWeight; @@ -553,43 +553,56 @@ export default class Actor5e extends Actor { const isNPC = this.data.type === 'npc'; let initial = {}; switch ( itemData.type ) { + case "weapon": - initial["data.equipped"] = isNPC; // NPCs automatically equip weapons - let hasWeaponProf = isNPC; // NPCs automatically have weapon proficiency - if ( !isNPC ) { - const weaponProf = { - "natural": true, - "simpleVW": "sim", - "simpleB": "sim", - "simpleLW": "sim", - "martialVW": "mar", - "martialB": "mar", - "martialLW": "mar" - }[itemData.data?.weaponType]; - const actorWeaponProfs = this.data.data.traits?.weaponProf?.value || []; - hasWeaponProf = (weaponProf === true) || actorWeaponProfs.includes(weaponProf); + if ( getProperty(itemData, "data.equipped") === undefined ) { + initial["data.equipped"] = isNPC; // NPCs automatically equip weapons + } + if ( getProperty(itemData, "data.proficient") === undefined ) { + if ( isNPC ) { + initial["data.proficient"] = true; // NPCs automatically have equipment proficiency + } else { + const weaponProf = { + "natural": true, + "simpleVW": "sim", + "simpleB": "sim", + "simpleLW": "sim", + "martialVW": "mar", + "martialB": "mar", + "martialLW": "mar" + }[itemData.data?.weaponType]; // Player characters check proficiency + const actorWeaponProfs = this.data.data.traits?.weaponProf?.value || []; + const hasWeaponProf = (weaponProf === true) || actorWeaponProfs.includes(weaponProf); + initial["data.proficient"] = hasWeaponProf; + } } - initial["data.proficient"] = hasWeaponProf; break; + case "equipment": - initial["data.equipped"] = isNPC; // NPCs automatically equip equipment - let hasEquipmentProf = isNPC; // NPCs automatically have equipment proficiency - if ( !isNPC ) { - const armorProf = { - "natural": true, - "clothing": true, - "light": "lgt", - "medium": "med", - "heavy": "hvy", - "shield": "shl" - }[itemData.data?.armor?.type]; - const actorArmorProfs = this.data.data.traits?.armorProf?.value || []; - hasEquipmentProf = (armorProf === true) || actorArmorProfs.includes(armorProf); + if ( getProperty(itemData, "data.equipped") === undefined ) { + initial["data.equipped"] = isNPC; // NPCs automatically equip equipment + } + if ( getProperty(itemData, "data.proficient") === undefined ) { + if ( isNPC ) { + initial["data.proficient"] = true; // NPCs automatically have equipment proficiency + } else { + const armorProf = { + "natural": true, + "clothing": true, + "light": "lgt", + "medium": "med", + "heavy": "hvy", + "shield": "shl" + }[itemData.data?.armor?.type]; // Player characters check proficiency + const actorArmorProfs = this.data.data.traits?.armorProf?.value || []; + const hasEquipmentProf = (armorProf === true) || actorArmorProfs.includes(armorProf); + initial["data.proficient"] = hasEquipmentProf; + } } - initial["data.proficient"] = hasEquipmentProf; break; + case "power": - initial["data.prepared"] = true; // NPCs automatically prepare powers + initial["data.prepared"] = true; // automatically prepare powers for everyone break; } mergeObject(itemData, initial); @@ -1103,7 +1116,7 @@ export default class Actor5e extends Actor { // Recover power slots for ( let [k, v] of Object.entries(data.powers) ) { - updateData[`data.powers.${k}.value`] = !Number.isNaN(v.override) ? v.override : (v.max ?? 0); + updateData[`data.powers.${k}.value`] = Number.isNumeric(v.override) ? v.override : (v.max ?? 0); } // Recover pact slots. @@ -1210,10 +1223,10 @@ export default class Actor5e extends Actor { } // Get the original Actor data and the new source data - const o = this.toJSON(); + const o = duplicate(this.toJSON()); o.flags.sw5e = o.flags.sw5e || {}; o.flags.sw5e.transformOptions = {mergeSkills, mergeSaves}; - const source = target.toJSON(); + const source = duplicate(target.toJSON()); // Prepare new data to merge from the source const d = { @@ -1244,7 +1257,7 @@ export default class Actor5e extends Actor { // Handle wildcard if ( source.token.randomImg ) { const images = await target.getTokenImages(); - d.token.img = images[0]; + d.token.img = images[Math.floor(Math.random() * images.length)]; } // Keep Token configurations @@ -1328,7 +1341,7 @@ export default class Actor5e extends Actor { newTokenData.actorId = newActor.id; return newTokenData; }); - return canvas.scene.updateEmbeddedEntity("Token", updates); + return canvas.scene?.updateEmbeddedEntity("Token", updates); } /* -------------------------------------------- */ diff --git a/module/actor/sheets/newSheet/base.js b/module/actor/sheets/newSheet/base.js index 4638cd21..475f5a6d 100644 --- a/module/actor/sheets/newSheet/base.js +++ b/module/actor/sheets/newSheet/base.js @@ -33,10 +33,10 @@ export default class ActorSheet5e extends ActorSheet { static get defaultOptions() { return mergeObject(super.defaultOptions, { scrollY: [ - ".inventory .inventory-list", - ".features .inventory-list", - ".powerbook .inventory-list", - ".effects .inventory-list" + ".inventory .group-list", + ".features .group-list", + ".powerbook .group-list", + ".effects .effects-list" ], tabs: [{navSelector: ".tabs", contentSelector: ".sheet-body", initial: "description"}] }); @@ -619,6 +619,11 @@ export default class ActorSheet5e extends ActorSheet { itemData = scroll.data; } + // Ignore certain statuses + if ( itemData.data ) { + ["attunement", "equipped", "proficient", "prepared"].forEach(k => delete itemData.data[k]); + } + // Create the owned item as normal return super._onDropItemCreate(itemData); } diff --git a/module/actor/sheets/oldSheets/base.js b/module/actor/sheets/oldSheets/base.js index 485a78b7..c97dd95a 100644 --- a/module/actor/sheets/oldSheets/base.js +++ b/module/actor/sheets/oldSheets/base.js @@ -619,6 +619,11 @@ export default class ActorSheet5e extends ActorSheet { itemData = scroll.data; } + // Ignore certain statuses + if ( itemData.data ) { + ["attunement", "equipped", "proficient", "prepared"].forEach(k => delete itemData.data[k]); + } + // Create the owned item as normal return super._onDropItemCreate(itemData); } diff --git a/module/apps/ability-use-dialog.js b/module/apps/ability-use-dialog.js index a0f8b716..cc277f9b 100644 --- a/module/apps/ability-use-dialog.js +++ b/module/apps/ability-use-dialog.js @@ -168,6 +168,8 @@ export default class AbilityUseDialog extends Dialog { type: item.data.consumableType, value: uses.value, quantity: item.data.quantity, + max: uses.max, + per: CONFIG.SW5E.limitedUsePeriods[uses.per] }); } diff --git a/module/characterImporter.js b/module/characterImporter.js new file mode 100644 index 00000000..e5af2c18 --- /dev/null +++ b/module/characterImporter.js @@ -0,0 +1,121 @@ +export default class CharacterImporter { + + // transform JSON from sw5e.com to Foundry friendly format + // and insert new actor + static async transform(rawCharacter){ + const sourceCharacter = JSON.parse(rawCharacter); //source character + + const details = { + species: sourceCharacter.attribs.find(e => e.name == "race").current, + background: sourceCharacter.attribs.find(e => e.name == "background").current, + alignment: sourceCharacter.attribs.find(e => e.name == "alignment").current + } + + const hp = { + value: sourceCharacter.attribs.find(e => e.name == "hp").current, + min: 0, + max: sourceCharacter.attribs.find(e => e.name == "hp").current, + temp: sourceCharacter.attribs.find(e => e.name == "hp_temp").current + }; + + const ac = { + value: sourceCharacter.attribs.find(e => e.name == "ac").current + }; + + const abilities = { + str: { + value: sourceCharacter.attribs.find(e => e.name == "strength").current, + proficient: sourceCharacter.attribs.find(e => e.name == 'strength_save_prof').current ? 1 : 0 + }, + dex: { + value: sourceCharacter.attribs.find(e => e.name == "dexterity").current, + proficient: sourceCharacter.attribs.find(e => e.name == 'dexterity_save_prof').current ? 1 : 0 + }, + con: { + value: sourceCharacter.attribs.find(e => e.name == "constitution").current, + proficient: sourceCharacter.attribs.find(e => e.name == 'constitution_save_prof').current ? 1 : 0 + }, + int: { + value: sourceCharacter.attribs.find(e => e.name == "intelligence").current, + proficient: sourceCharacter.attribs.find(e => e.name == 'intelligence_save_prof').current ? 1 : 0 + }, + wis: { + value: sourceCharacter.attribs.find(e => e.name == "wisdom").current, + proficient: sourceCharacter.attribs.find(e => e.name == 'wisdom_save_prof').current ? 1 : 0 + }, + cha: { + value: sourceCharacter.attribs.find(e => e.name == "charisma").current, + proficient: sourceCharacter.attribs.find(e => e.name == 'charisma_save_prof').current ? 1 : 0 + }, + }; + + const targetCharacter = { + name: sourceCharacter.name, + type: "character", + data: { + abilities: abilities, + details: details, + attributes: { + ac: ac, + hp: hp + } + } + }; + + let actor = await Actor.create(targetCharacter); + + const profession = sourceCharacter.attribs.find(e => e.name == "class").current; + let professionLevel = sourceCharacter.attribs.find(e => e.name == "class_display").current; + professionLevel = parseInt( professionLevel.replace(/[^0-9]/g,'') ); //remove a-z, leaving only integers + CharacterImporter.addClasses(profession, professionLevel, actor); + } + + static async addClasses(profession, level, actor){ + let classes = await game.packs.get('sw5e.classes').getContent(); + let assignedClass = classes.find( c => c.name === profession ); + assignedClass.data.data.levels = level; + await actor.createEmbeddedEntity("OwnedItem", assignedClass.data, { displaySheet: false }); + } + + static addImportButton(html){ + const header = $("#actors").find("header.directory-header"); + const search = $("#actors").children().find("div.header-search"); + const newImportButtonDiv = $("#actors").children().find("div.header-actions").clone(); + const newSearch = search.clone(); + search.remove(); + newImportButtonDiv.attr('id', 'character-sheet-import'); + header.append(newImportButtonDiv); + newImportButtonDiv.children("button").remove(); + newImportButtonDiv.append(""); + newSearch.appendTo(header); + + let characterImportButton = $("#cs-import-button"); + characterImportButton.click(ev => { + let content = '