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/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 1029c588..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(5, 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; - } - } - } -} + +.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/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 = '

Saved Character JSON Import

' + + ' ' + + '
' + + ''; + let importDialog = new Dialog({ + title: "Import Character from SW5e.com", + content: content, + buttons: { + "Import": { + icon: '', + label: "Import Character", + callback: (e) => { + let characterData = $('#character-json').val(); + console.log('Parsing Character JSON'); + CharacterImporter.transform(characterData); + } + }, + "Cancel": { + icon: '', + label: "Cancel", + callback: () => {}, + } + } + }) + importDialog.render(true); + }); + } +} \ No newline at end of file diff --git a/sw5e copy.css b/sw5e copy.css index 237bb2cc..c19de745 100644 --- a/sw5e copy.css +++ b/sw5e copy.css @@ -1,1791 +1,1791 @@ -/* Deprecated vars */ -/* ----------------------------------------- */ -/* Fonts */ -/* ----------------------------------------- */ - -/* russo-one-regular - latin */ -@font-face { - font-family: 'Russo One'; - font-style: normal; - font-weight: 400; - src: url('./fonts/RussoOne.ttf'); -} -@font-face { - font-family: 'Engli-Besh'; - font-style: normal; - font-weight: 400; - src: url('./fonts/EngliBesh-KG3W.ttf'); -} -.engli-Besh { - font-family: 'Engli-Besh'; - font-size: 20px; - font-weight: 400; -} -/* open-sans-regular - latin */ -@font-face { - font-family: 'Open Sans'; - font-style: normal; - font-weight: 400; - src: url('./fonts/OpenSans-Regular.ttf'); -} -body { - width: 100vw; - height: 100vh; - margin: 0; - overflow: hidden; - background-image: url('./ui/SW5e-logo.svg'); - background-repeat: no-repeat; - background-size: cover; - font-family: 'Open Sans'; - font-size: 14px; - box-shadow: 0 0 50vw #000 inset; -} -/* ----------------------------------------- */ -/* Sheet Styles */ -/* ----------------------------------------- */ -/* ----------------------------------------- */ -/* Flexbox */ -/* ----------------------------------------- */ -.flexrow { - display: flex; - flex-direction: row; - flex-wrap: wrap; - justify-content: flex-start; -} -.flexrow > * { - flex: 1; -} -.flexrow .flex1 { - flex: 1; -} -.flexrow .flex2 { - flex: 2; -} -.flexrow .flex3 { - flex: 3; -} -.flexrow .flex4 { - flex: 4; -} -.flexcol { - display: flex; - flex-direction: column; - flex-wrap: nowrap; -} -.flexcol > * { - flex: 1; -} -.flexcol .flex1 { - flex: 1; -} -.flexcol .flex2 { - flex: 2; -} -.flexcol .flex3 { - flex: 3; -} -.flexcol .flex4 { - flex: 4; -} -/* ----------------------------------------- */ -/* All SW5e Apps */ -/* ----------------------------------------- */ -.sw5e { - /* ----------------------------------------- */ - /* Element Styles */ - /* ----------------------------------------- */ - /* Form Groups */ - /* Tags */ -} -.sw5e .window-content { - background: url("ui/parchment.webp") repeat; - font-size: 13px; - color: #191813; -} -.sw5e input[type="text"] -.sw5e select { - height: calc(100% - 2px); - border: 1px solid #7a7971; - background: rgba(0, 0, 0, 0.05); - color: #191813; -} -.sw5e input[type="text"]:hover, -.sw5e input[type="text"]:focus { - border: 1px solid #111; - box-shadow: 0 0 8px red; -} -.sw5e input:disabled, -.sw5e select:disabled, -.sw5e textarea:disabled { - color: #4b4a44; -} -.sw5e input:disabled:hover, -.sw5e select:disabled:hover, -.sw5e textarea:disabled:hover, -.sw5e input:disabled:focus, -.sw5e select:disabled:focus, -.sw5e textarea:disabled:focus { - box-shadow: none !important; - border: 1px solid transparent !important; - outline: none !important; -} -.sw5e button { - background: rgba(0, 0, 0, 0.1); - border: 2px groove #eeede0; -} -.sw5e label.checkbox { - flex: auto; - margin: 0; - line-height: 20px; - font-size: 10px; - text-align: right; -} -.sw5e label.checkbox input[type="checkbox"] { - height: auto; - margin: 0 5px 0; - position: relative; - top: 3px; -} -.sw5e .form-group label { - flex: 2; - color: #4b4a44; - font-weight: bold; -} -.sw5e .form-group .form-fields { - display: flex; - flex-direction: row; - flex-wrap: wrap; - justify-content: flex-start; -} -.sw5e .form-group .form-fields > * { - flex: 1; -} -.sw5e .form-group .form-fields .flex1 { - flex: 1; -} -.sw5e .form-group .form-fields .flex2 { - flex: 2; -} -.sw5e .form-group .form-fields .flex3 { - flex: 3; -} -.sw5e .form-group .form-fields .flex4 { - flex: 4; -} -.sw5e .form-group .form-fields > * { - margin: 0 3px 0 0; -} -.sw5e .form-group .form-fields > *:last-child { - margin-right: 0; -} -.sw5e .form-group.stacked label { - flex: 0 0 100%; - margin: 0; -} -.sw5e .form-group.stacked label.checkbox { - flex: auto; - text-align: left; -} -.sw5e .form-header { - margin: 0 0 0.25em 0; - padding: 0 2px; - font-family: "Russo One"; - font-size: 8px; - font-size: 12px; - border-top: 2px groove #eeede0; - border-bottom: 2px groove #eeede0; -} -.sw5e .tag { - display: inline-block; - margin: 0 2px 0 0; - padding: 0 3px; - font-size: 10px; - line-height: 16px; - border: 1px solid #999; - border-radius: 3px; - background: rgba(0, 0, 0, 0.05); -} -/* ----------------------------------------- */ -/* Entity Sheets Specifically */ -/* ----------------------------------------- */ -.sw5e.sheet { - /* ----------------------------------------- */ - /* Element Styles */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* TinyMCE */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Sheet Header */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Sheet Navigation */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Sheet Body */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* List Filters */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Trait Lists */ - /* ----------------------------------------- */ -} -.sw5e.sheet .window-content { - overflow-y: hidden; - padding: 5px; - background: url("ui/parchment.webp") repeat; - font-size: 13px; - color: #191813; -} -.sw5e.sheet .window-content form { - height: 100%; - overflow: hidden; -} -.sw5e.sheet .window-content .tab { - height: 100%; - overflow-y: auto; - align-content: flex-start; -} -.sw5e.sheet input[type="text"] { - background: none; - border: 1px solid transparent; -} -.sw5e.sheet input[type="text"]:hover, -.sw5e.sheet input[type="text"]:focus { - border: 1px solid #111; -} -.sw5e.sheet select { - flex: 1; - font-size: 12px; - height: 22px; - background: transparent; -} -.sw5e.sheet .editable .rollable:hover { - color: #000; - text-shadow: 0 0 10px red; - cursor: pointer; -} -.sw5e.sheet .editor { - height: 100%; -} -.sw5e.sheet .editor .tox-toolbar-overlord, -.sw5e.sheet .editor .tox-toolbar__primary { - background: none; -} -.sw5e.sheet .sheet-header { - flex: 0 0 100px; - border-bottom: 2px groove #eeede0; - font-family: "Russo One"; - font-size: 14px; - /* Character Name */ - /* Profile Image */ - /* Header Summary Details */ -} -.sw5e.sheet .sheet-header h1 { - flex: 2; - border-bottom: none; - height: 60px; - margin: 0; - padding: 5px; -} -.sw5e.sheet .sheet-header h1 input { - height: 50px; - font-size: 22px; - text-transform: uppercase; -} -.sw5e.sheet .sheet-header img.profile { - flex: 0 0 100px; - max-width: 100px; - height: 100px; - object-fit: cover; - border: none; - border-right: 2px groove #eeede0; -} -.sw5e.sheet .sheet-header .summary { - flex: 0 0 100%; - height: 40px; - margin: 0; - padding: 0; - list-style: none; - border-top: 2px groove #eeede0; - border-bottom: none; -} -.sw5e.sheet .sheet-header .summary li { - width: 33.33%; - float: left; - height: 34px; - margin: 2px 0; - padding: 0 3px; - border-right: 2px groove #eeede0; - line-height: 34px; - color: #4b4a44; -} -.sw5e.sheet .sheet-header .summary li:last-child { - border-right: none; -} -.sw5e.sheet .sheet-navigation { - flex: 0 0 30px; - margin-bottom: 5px; - font-family: "Russo One"; - font-size: 12px; -} -.sw5e.sheet .sheet-navigation .item { - height: 30px; - line-height: 32px; - margin: 0 24px; - border-bottom: 3px solid #b5b3a4; -} -.sw5e.sheet .sheet-navigation .item.active { - border-bottom: 3px solid #44191A; -} -.sw5e.sheet .sheet-body { - flex: 1; - overflow: hidden; - font-family: "Open Sans"; -} -.sw5e.sheet .sheet-body h1 { - font-family: "Russo One"; - font-size: 22px; - text-transform: uppercase; - color: #c40f0f; - border: 0px; -} -.sw5e.sheet .sheet-body h2 { - font-family: "Russo One"; - font-size: 18px; - text-transform: uppercase; - color: #c40f0f; -} -.sw5e.sheet .sheet-body th { - font-family: "Russo One"; - text-transform: uppercase; - color: #c40f0f; -} -.sw5e.sheet .sheet-body tr:nth-child(odd) { - background-color: #c9d6db; -} -.sw5e.sheet .sheet-body tr:nth-child(even) { - background-color: #bdc8cc; -} -.sw5e.sheet .sheet-body .smalltable table { - width: 200px; - border: 0px; - margin: 0.5em 0.5em; -} -.sw5e.sheet .sheet-body .smalltable td:nth-child(odd) { - width: 50px; - margin: 0.5em 0.5em; -} -.sw5e.sheet .sheet-body .smalltable td:nth-child(even) { - width: 150px; - margin: 0.5em 0.5em; - padding: 0px 10px 0px 10px; -} -.sw5e.sheet .sheet-body .smalltable thead { - border-bottom: 0px; -} -.sw5e.sheet .sheet-body .smalltable th { - color: #000000; - text-shadow: none; - border-bottom: 0px; - background-color: #bdc8cc; - text-transform: none; - font-weight: bold; - font-family: 'Open Sans'; -} -.sw5e.sheet .sheet-body .medtable table { - width: 500px; - border: 0px; - margin: 0.5em 0.5em; -} -.sw5e.sheet .sheet-body .medtable td:nth-child(odd) { - width: 50px; - margin: 0.5em 0.5em; -} -.sw5e.sheet .sheet-body .medtable td:nth-child(even) { - width: 450px; - margin: 0.5em 0.5em; - padding: 0px 10px 0px 10px; -} -.sw5e.sheet .sheet-body .medtable thead { - border-bottom: 0px; -} -.sw5e.sheet .sheet-body .medtable th { - color: #000000; - text-shadow: none; - border-bottom: 0px; - background-color: #bdc8cc; - text-transform: none; - font-weight: bold; - font-family: 'Open Sans'; -} -.sw5e.sheet .sheet-body .classtable blockquote { - border-left: 0px; - border-right: 0px; -} -.sw5e.sheet .sheet-body .classtable table { - width: 100%; - border-collapse: collapse; - background: rgba(0, 0, 0, 0.05); - border-left: 0px; - border-right: 0px; - border-top: 0; - border-bottom: 0; - margin: 0.5em 0; - font-style: normal; - font-weight: normal; - text-shadow: none; -} -.sw5e.sheet .sheet-body .classtable thead { - color: #000000; - text-shadow: none; - border-bottom: 0px; - background-color: #bdc8cc; - text-transform: none; - font-style: normal; - font-weight: normal; - font-family: 'Open Sans'; -} -.sw5e.sheet .sheet-body .classtable th { - color: #000000; - text-shadow: none; - border-bottom: 0px; - background-color: #bdc8cc; - text-transform: none; - font-style: normal; - font-weight: bold; - font-family: 'Open Sans'; -} -.sw5e.sheet .filter-list { - list-style: none; - margin: 0; - padding: 0; - line-height: 16px; -} -.sw5e.sheet .filter-list .filter-title { - flex: 3; -} -.sw5e.sheet .filter-list .filter-item { - text-align: center; - font-size: 12px; - margin: 0 6px; - border-bottom: 3px solid #b5b3a4; - white-space: nowrap; -} -.sw5e.sheet .filter-list .filter-item:hover { - text-shadow: 0 0 4px red; - border-bottom: 3px solid #7a7971; -} -.sw5e.sheet .filter-list .filter-item.active { - border-bottom: 3px solid #44191A; -} -.sw5e.sheet .trait-selector { - flex: 0 0 16px; - padding: 2px 0; - color: #999; - font-size: 10px; -} -.sw5e.sheet .traits-list { - line-height: 20px; - list-style: none; - margin: 0; - padding: 0; - text-align: right; -} -/* ----------------------------------------- */ -/* Trait Selector -/* ----------------------------------------- */ -#trait-selector .trait-list { - list-style: none; - margin: 0; - padding: 0; -} -#trait-selector input[type="text"] { - height: 24px; - margin: 2px; -} -.sw5e.sheet.actor { - /* ----------------------------------------- */ - /* Sheet Header */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* General Styles */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Attributes */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Ability Scores */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Skills */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Statuses */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Traits */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Inventory Lists */ - /* ----------------------------------------- */ - /* Inventory List Filters */ - /* ----------------------------------------- */ - /* Powerbook */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* TinyMCE */ - /* ----------------------------------------- */ -} -.sw5e.sheet.actor .sheet-header .charlevel { - flex: 0 0 160px; - height: 60px; - margin: 0; - padding: 5px; - text-align: right; -} -.sw5e.sheet.actor .sheet-header .charlevel .level { - width: 100%; - height: 30px; - font-size: 18px; - line-height: 30px; -} -.sw5e.sheet.actor .sheet-header .charlevel .level label { - display: inline; - font-size: 18px; - text-align: right; -} -.sw5e.sheet.actor .sheet-header .charlevel .level input { - display: inline; - width: 36px; - font-size: 18px; - text-align: center; -} -.sw5e.sheet.actor .sheet-header .charlevel .level.noxp { - margin-top: 10px; -} -.sw5e.sheet.actor .sheet-header .charlevel .level.noxp > label { - font-size: 32px; -} -.sw5e.sheet.actor .sheet-header .charlevel .level.noxp > input { - font-size: 18px; - flex: 0 0 40px; - height: 44px; -} -.sw5e.sheet.actor .sheet-header .charlevel .experience { - width: 100%; - height: 20px; - padding-right: 5px; - font-size: 16px; - color: #4b4a44; -} -.sw5e.sheet.actor .attributes input.temphp { - width: 48%; -} -.sw5e.sheet.actor h4.box-title { - line-height: 16px; - margin: 4px 8px 2px; - font-size: 14px; - border-bottom: 1px solid #b5b3a4; -} -.sw5e.sheet.actor ul.attributes { - list-style: none; - margin: 5px 0 0; - padding: 0; -} -.sw5e.sheet.actor ul.attributes li.attribute { - height: 70px; - margin: 0 5px; - border: 2px groove #eeede0; - border-radius: 4px; - font-family: "Russo One"; - font-size: 12px; - text-align: center; -} -.sw5e.sheet.actor ul.attributes li.attribute .attribute-name { - flex: 0 0 18px; -} -.sw5e.sheet.actor ul.attributes li.attribute .attribute-value { - height: 28px; - line-height: 28px; -} -.sw5e.sheet.actor ul.attributes li.attribute .attribute-value input { - display: inline; - max-width: 80%; - height: 28px; - margin: 0; - font-size: 14px; -} -.sw5e.sheet.actor ul.attributes li.attribute .attribute-value span.sep { - display: inline; - position: relative; - top: 2px; - font-size: 28px; - color: #7a7971; -} -.sw5e.sheet.actor ul.attributes li.attribute .attribute-value.multiple input { - max-width: 33%; -} -.sw5e.sheet.actor ul.attributes li.attribute .attribute-footer { - flex: 0 0 18px; - margin-top: -1px; - line-height: 18px; - font-family: "Signika", "Palatino Linotype", serif; - font-size: 12px; -} -.sw5e.sheet.actor .ability-scores { - flex: 0 0 100%; - list-style: none; - margin: 0; - padding: 0; - font-family: "Russo One"; - font-size: 8px; -} -.sw5e.sheet.actor .ability-scores .ability { - height: 70px; - margin: 0 5px; - text-align: center; - border: 2px groove #eeede0; - border-radius: 3px; - /* Hide modifier box on hover */ -} -.sw5e.sheet.actor .ability-scores .ability input.ability-score { - height: 30px; - width: 50px; - margin: 0 auto; - line-height: 32px; - font-size: 16px; -} -.sw5e.sheet.actor .ability-scores .ability .ability-modifiers { - height: 24px; - margin: -10px 0 0; -} -.sw5e.sheet.actor .ability-scores .ability .ability-modifiers span.ability-mod, -.sw5e.sheet.actor .ability-scores .ability .ability-modifiers span.ability-save { - flex: 0 0 24px; - height: 24px; - border-top: 2px groove #eeede0; -} -.sw5e.sheet.actor .ability-scores .ability .ability-modifiers span.ability-mod { - border-right: 2px groove #eeede0; -} -.sw5e.sheet.actor .ability-scores .ability .ability-modifiers .ability-proficiency { - line-height: 30px; -} -.sw5e.sheet.actor .ability-scores .ability .ability-modifiers span.ability-save { - border-left: 2px groove #eeede0; -} -.sw5e.sheet.actor .ability-scores .ability input.ability-score:hover + .ability-modifiers { - visibility: hidden; -} -.sw5e.sheet.actor .proficiency-toggle { - color: #b5b3a4; - font-size: 12px; -} -.sw5e.sheet.actor .proficient .proficiency-toggle { - color: #4b4a44; -} -.sw5e.sheet.actor .locked .proficiency-toggle { - color: #b5b3a4; - text-shadow: none; - cursor: default; -} -.sw5e.sheet.actor ul.skills-list { - flex: 0 0 192px; - list-style: none; - margin: 5px 5px 0; - padding: 2px 2px 0; - border: 2px groove #eeede0; - border-radius: 3px; -} -.sw5e.sheet.actor ul.skills-list li.skill { - height: 22px; - padding: 3px 0; -} -.sw5e.sheet.actor ul.skills-list li.skill h4 { - flex: 1px; - margin: 0; - font-size: 11px; - line-height: 18px; -} -.sw5e.sheet.actor ul.skills-list li.skill .skill-proficiency { - flex: 0 0 16px; - line-height: 18px; -} -.sw5e.sheet.actor ul.skills-list li.skill .skill-ability { - flex: 0 0 26px; -} -.sw5e.sheet.actor ul.skills-list li.skill .skill-mod { - flex: 0 0 20px; -} -.sw5e.sheet.actor ul.skills-list li.skill .skill-passive { - flex: 0 0 26px; - text-align: center; - color: #7a7971; -} -.sw5e.sheet.actor .counters { - flex: 0 0 100%; - border-bottom: 2px groove #eeede0; - margin-bottom: 5px; -} -.sw5e.sheet.actor .counters .counter { - padding: 0 3px; - line-height: 32px; -} -.sw5e.sheet.actor .counters .counter h4 { - flex: auto; - margin: 0; - font-family: "Russo One"; - font-size: 14px; - font-size: 10px; -} -.sw5e.sheet.actor .counters .counter .counter-value { - flex: 0 0 50px; - text-align: right; -} -.sw5e.sheet.actor .counters .counter .counter-value > * { - display: inline; -} -.sw5e.sheet.actor .counters .counter input[type="text"] { - height: 20px; - max-width: 20px; - margin: 0; - padding: 0; - text-align: center; -} -.sw5e.sheet.actor .counters .counter input[type="checkbox"] { - position: relative; - margin: 0; - top: 6px; -} -.sw5e.sheet.actor .counters .counter span.sep { - margin: 0 -2px; - font-size: 12px; -} -.sw5e.sheet.actor .traits { - margin: 0 5px; -} -.sw5e.sheet.actor .traits .form-group, -.sw5e.sheet.actor .traits .form-group-stacked { - margin: 0 0 4px 0; - justify-content: space-between; -} -.sw5e.sheet.actor .traits .configure-flags { - flex: 1; -} -.sw5e.sheet.actor .traits .actor-size { - flex: 0 0 150px; -} -.sw5e.sheet.actor .traits label { - flex: 0 0 150px; - line-height: 20px; - font-weight: bold; - margin: 0; -} -.sw5e.sheet.actor .traits input { - text-align: right; -} -.sw5e.sheet.actor .traits i.fas { - float: right; - margin-right: 3px; - text-align: right; - color: #999; -} -.sw5e.sheet.actor .traits i.fas:hover { - color: #111; - text-shadow: 0 0 10px red; -} -.sw5e.sheet.actor .traits .inactive { - color: #7a7971; -} -.sw5e.sheet.actor .tab.features, -.sw5e.sheet.actor .tab.inventory, -.sw5e.sheet.actor .tab.powerbook { - overflow-y: hidden; -} -.sw5e.sheet.actor .inventory-filters { - margin: 0 8px; - flex: 0 0 20px; -} -.sw5e.sheet.actor .inventory-filters h3, -.sw5e.sheet.actor .inventory-filters .filter-title { - font-family: "Russo One"; - font-size: 10px; - color: #4b4a44; - font-size: 12px; - margin: 0; -} -.sw5e.sheet.actor .inventory-filters.powerbook-filters { - flex: 0 0 40px; -} -.sw5e.sheet.actor .inventory-filters .currency { - list-style: none; - margin: 4px 0 8px; - padding: 0; - font-size: 12px; -} -.sw5e.sheet.actor .inventory-filters .currency label { - flex: 0; - margin-left: 8px; - text-align: right; - line-height: 20px; - color: #7a7971; -} -.sw5e.sheet.actor .inventory-filters .currency input[type="text"] { - flex: 0 0 48px; - text-align: center; - margin-left: 8px; - border-bottom: 2px groove #eeede0; -} -.sw5e.sheet.actor .inventory-list { - list-style: none; - margin: 0; - padding: 0 5px; - overflow-y: auto; -} -.sw5e.sheet.actor .inventory-list .item { - line-height: 30px; - padding: 0 2px; - border-bottom: 1px solid #c9c7b8; -} -.sw5e.sheet.actor .inventory-list .item:last-child { - border-bottom: none; -} -.sw5e.sheet.actor .inventory-list .item .item-name { - cursor: pointer; - max-height: 30px; - overflow: hidden; -} -.sw5e.sheet.actor .inventory-list .item .item-name .item-image { - flex: 0 0 30px; - background-size: 30px; - margin-right: 5px; -} -.sw5e.sheet.actor .inventory-list .item .item-name h4 { - margin: 0; - white-space: nowrap; - overflow-x: hidden; -} -.sw5e.sheet.actor .inventory-list .item .item-name.rollable .item-image:hover { - background-image: url("/icons/svg/d20-black.svg") !important; -} -.sw5e.sheet.actor .inventory-list .item .item-name.rollable:hover .item-image { - background-image: url("/icons/svg/d20-grey.svg") !important; -} -.sw5e.sheet.actor .inventory-list .item .item-name i.attuned { - color: #7a7971; -} -.sw5e.sheet.actor .inventory-list .item .item-uses input { - width: 24px; - text-align: center; -} -.sw5e.sheet.actor .inventory-list .item .item-properties { - margin-top: 3px; -} -.sw5e.sheet.actor .inventory-list .item .item-recharge { - flex: 0 0 80px; - text-align: right; - font-size: 11px; - color: #7a7971; -} -.sw5e.sheet.actor .inventory-list .inventory-header { - margin: 2px 0; - padding: 0; - background: rgba(0, 0, 0, 0.05); - border: 2px groove #eeede0; - font-weight: bold; - line-height: 24px; -} -.sw5e.sheet.actor .inventory-list .inventory-header h3 { - margin: 0 -5px 0 0; - padding-left: 5px; - font-size: 13px; - font-weight: bold; -} -.sw5e.sheet.actor .inventory-list .inventory-header .item-controls a.item-create { - flex: 0 0 100%; -} -.sw5e.sheet.actor .inventory-list .item-detail { - flex: 0 0 70px; - font-size: 12px; - color: #7a7971; - text-align: center; - border-right: 1px solid #c9c7b8; -} -.sw5e.sheet.actor .inventory-list .item-detail:last-child { - border-right: none; -} -.sw5e.sheet.actor .inventory-list .item-detail.item-action { - flex: 0 0 100px; -} -.sw5e.sheet.actor .inventory-list .item-weight { - flex: 0 0 60px; - border-left: 1px solid #c9c7b8; - border-right: 1px solid #c9c7b8; -} -.sw5e.sheet.actor .inventory-list .item-list { - list-style: none; - margin: 0; - padding: 0; -} -.sw5e.sheet.actor .inventory-list .item-controls { - flex: 0 0 44px; - display: flex; - flex-direction: row; - flex-wrap: wrap; - justify-content: flex-start; - justify-content: flex-end; -} -.sw5e.sheet.actor .inventory-list .item-controls > * { - flex: 1; -} -.sw5e.sheet.actor .inventory-list .item-controls .flex1 { - flex: 1; -} -.sw5e.sheet.actor .inventory-list .item-controls .flex2 { - flex: 2; -} -.sw5e.sheet.actor .inventory-list .item-controls .flex3 { - flex: 3; -} -.sw5e.sheet.actor .inventory-list .item-controls .flex4 { - flex: 4; -} -.sw5e.sheet.actor .inventory-list .item-controls a { - flex: 0 0 22px; - font-size: 12px; - text-align: center; - color: #7a7971; -} -.sw5e.sheet.actor .inventory-list .item-summary { - flex: 0 0 100%; - font-size: 12px; - line-height: 16px; - padding: 0.25em 0.5em; - border-top: 1px solid #c9c7b8; -} -.sw5e.sheet.actor .powercasting-ability h3, -.sw5e.sheet.actor .pact-slots h3 { - flex: none; - margin-right: 5px; -} -.sw5e.sheet.actor .powercasting-ability input, -.sw5e.sheet.actor .pact-slots input, -.sw5e.sheet.actor .powercasting-ability span, -.sw5e.sheet.actor .pact-slots span { - flex: 0 0 32px; - text-align: center; -} -.sw5e.sheet.actor .powercasting-ability select, -.sw5e.sheet.actor .pact-slots select { - margin: 0 5px; - flex: 0 0 150px; -} -.sw5e.sheet.actor .powercasting-ability h3.power-dc, -.sw5e.sheet.actor .pact-slots h3.power-dc { - flex: 1; - text-align: right; -} -.sw5e.sheet.actor .pact-slots { - align-items: center; -} -.sw5e.sheet.actor .power-slots, -.sw5e.sheet.actor .power-comps { - flex: 0 0 72px; - padding-right: 5px; - text-align: right; - font-size: 12px; - color: #7a7971; - border-right: 1px solid #c9c7b8; -} -.sw5e.sheet.actor .power-slots input, -.sw5e.sheet.actor .power-slots span.sep { - display: inline; - max-width: 20px; - text-align: center; -} -.sw5e.sheet.actor .power-uses { - padding-right: 8px; - text-align: right !important; -} -.sw5e.sheet.actor .power-school, -.sw5e.sheet.actor .power-action, -.sw5e.sheet.actor .power-target { - flex: 0 0 100px; - font-size: 12px; - color: #7a7971; - text-align: center; - border-right: 1px solid #c9c7b8; -} -.sw5e.sheet.actor .power-component { - line-height: 14px; -} -.sw5e.sheet.actor .power-component.C, -.sw5e.sheet.actor .power-component.R { - display: inline-block; - text-align: center; - padding-top: 1px; - width: 16px; - color: #c9c7b8; - background: rgba(0, 0, 0, 0.4); - border: 1px solid transparent; - border-radius: 8px; -} -.sw5e.sheet.actor .powerbook-empty .item-controls { - flex: 1; -} -.sw5e.sheet.actor .editor { - padding: 0 8px; -} -.sw5e.sheet.item { - min-height: 520px; - min-width: 700px; - /* ----------------------------------------- */ - /* Sheet Header */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Item Details Form */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Item Actions */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Item Actions */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Loot Sheet (No Tabs) */ - /* ----------------------------------------- */ -} -.sw5e.sheet.item .sheet-header img.profile { - border: 2px solid #000; -} -.sw5e.sheet.item .sheet-header .item-subtitle { - flex: 1 0 80px; - height: 60px; - margin: 0; - padding: 5px; - text-align: right; - color: #7a7971; -} -.sw5e.sheet.item .sheet-header .item-subtitle .item-type { - font-size: 16px; - line-height: 26px; - margin: 0; -} -.sw5e.sheet.item .sheet-header .item-subtitle .item-status { - font-size: 16px; - line-height: 24px; -} -.sw5e.sheet.item .sheet-navigation { - margin-bottom: 5px; -} -.sw5e.sheet.item .sheet-navigation .item { - font-size: 14px; -} -.sw5e.sheet.item .sheet-body { - overflow: hidden; - font-family: "Open Sans"; -} -.sw5e.sheet.item .sheet-body h2 { - font-family: "Russo One"; - font-size: 18px; - border-bottom: 2px solid #0d99cc; -} -.sw5e.sheet.item .sheet-body h3 { - font-family: "Russo One"; - color: #c40f0f; - text-transform: uppercase; -} -.sw5e.sheet.item .sheet-body .tab { - padding: 0 5px; - overflow: hidden auto; -} -.sw5e.sheet.item .sheet-body .item-properties { - flex: 0 0 120px; - margin: 5px 5px 5px 0; - padding-right: 5px; - border-right: 2px groove #eeede0; -} -.sw5e.sheet.item .sheet-body .item-properties .form-group { - margin: 0; -} -.sw5e.sheet.item .sheet-body .item-properties .form-group label { - line-height: 20px; -} -.sw5e.sheet.item .sheet-body .item-properties .form-group input { - text-align: right; -} -.sw5e.sheet.item .sheet-body .item-properties .properties-list { - list-style: none; - margin: 0; - padding: 0; -} -.sw5e.sheet.item .sheet-body .item-properties .properties-list li { - margin: 3px 0; - padding: 0 2px; - background: rgba(0, 0, 0, 0.05); - border: 2px groove #eeede0; - text-align: center; - font-size: 12px; - line-height: 18px; -} -.sw5e.sheet.item .details input[type="text"], -.sw5e.sheet.item .details select { - height: 24px; - border: 1px solid #7a7971; - background: rgba(0, 0, 0, 0.05); -} -.sw5e.sheet.item .details .form-group span { - text-align: center; - line-height: 24px; -} -.sw5e.sheet.item .details .form-group.input-select select { - flex: 1.8; -} -.sw5e.sheet.item .details .form-group.input-select-select select { - flex: 1.5; -} -.sw5e.sheet.item .details .form-group.uses-per input { - flex: 1; -} -.sw5e.sheet.item .details .form-group.uses-per span { - flex: 0 0 16px; -} -.sw5e.sheet.item .details .form-group.uses-per select { - flex: 3; -} -.sw5e.sheet.item .details span.sep { - flex: 0 0 8px; -} -.sw5e.sheet.item .details .prepared { - flex: 1.3 !important; - text-align: right; - padding-right: 10px; -} -.sw5e.sheet.item .details .power-materials { - flex: 0 0 100%; - margin: 0.25em 0; - justify-content: flex-end; -} -.sw5e.sheet.item .details .power-materials label { - flex: 0 0 64px; - text-align: right; - margin-right: 5px; - font-size: 12px; - line-height: 24px; -} -.sw5e.sheet.item .details .power-materials input[type="text"] { - flex: 0 0 48px; - margin-right: 10px; -} -.sw5e.sheet.item h4.damage-header { - margin: 0; - padding: 0; - font-weight: bold; - line-height: 24px; - color: #4b4a44; -} -.sw5e.sheet.item .damage-parts { - list-style: none; - margin: 0; - padding: 0; -} -.sw5e.sheet.item .damage-parts .damage-part { - flex: 0 0 100%; - padding: 0; -} -.sw5e.sheet.item .damage-parts .damage-part input { - flex: 3; -} -.sw5e.sheet.item .damage-parts .damage-part select { - margin-left: 5px; - flex: 1; -} -.sw5e.sheet.item .damage-control { - width: 18px; - flex: 0 0 18px; - line-height: 24px; - float: right; - text-align: right; - color: #7a7971; -} - -.sw5e.sheet.item h4.armorproperties-header { - margin: 0; - padding: 0; - font-weight: bold; - line-height: 24px; - color: #4b4a44; -} -.sw5e.sheet.item .armorproperties-parts { - list-style: none; - margin: 0; - padding: 0; -} -.sw5e.sheet.item .armorproperties-parts .armorproperties-part { - flex: 0 0 100%; - padding: 0; -} -.sw5e.sheet.item .armorproperties-parts .armorproperties-part input { - flex: 3; -} -.sw5e.sheet.item .armorproperties-parts .armorproperties-part select { - margin-left: 5px; - flex: 1; -} -.sw5e.sheet.item .armorproperties-control { - width: 18px; - flex: 0 0 18px; - line-height: 24px; - float: right; - text-align: right; - color: #7a7971; - -} - -.sw5e.sheet.item h4.weaponproperties-header { - margin: 0; - padding: 0; - font-weight: bold; - line-height: 24px; - color: #4b4a44; -} -.sw5e.sheet.item .weaponproperties-parts { - list-style: none; - margin: 0; - padding: 0; -} -.sw5e.sheet.item .weaponproperties-parts .weaponproperties-part { - flex: 0 0 100%; - padding: 0; -} -.sw5e.sheet.item .weaponproperties-parts .weaponproperties-part input { - flex: 3; -} -.sw5e.sheet.item .weaponproperties-parts .weaponproperties-part select { - margin-left: 5px; - flex: 1; -} -.sw5e.sheet.item .weaponproperties-control { - width: 18px; - flex: 0 0 18px; - line-height: 24px; - float: right; - text-align: right; - color: #7a7971; -} - -.sw5e.sheet.item .recharge span { - flex: 0 0 80px; -} -.sw5e.sheet.item .recharge label.checkbox { - flex: 0 0 80px; - text-align: right; -} -.sw5e.sheet.item .weapon-properties label.checkbox { - flex: 0 0 98px; -} -.sw5e.sheet.item .loot-header { - margin-bottom: 10px; -} -.sw5e.sheet.item blockquote { - box-sizing: border-box; - font-family: 'Open Sans'; - margin-bottom: 1em; - padding: 5px 10px; - background-color: #bdc8cc; - border: 0px solid #0d99cc; - border-spacing: 0em; - border-image: none; - box-shadow: 0px 0px 20px rgba(13, 153, 204, 0.5); - border-top: 0.1em solid #0d99cc; - border-bottom: 0.1em solid #0d99cc; - border-left: 0.1em solid #0d99cc; - border-right: 0.1em solid #0d99cc; - color: #000000; - font-size: 1em; -} - -.sw5e.sheet.item blockquote h3 { - font-family: 'Russo One'; - color: #000000 !important; -} -/* ----------------------------------------- */ -/* Chat Cards -/* ----------------------------------------- */ -.sw5e.chat-card { - font-style: normal; - font-size: 12px; -} -.sw5e.chat-card .card-header { - padding: 3px 0; - border-top: 2px groove #FFF; - border-bottom: 2px groove #FFF; -} -.sw5e.chat-card .card-header img { - flex: 0 0 36px; - margin-right: 5px; -} -.sw5e.chat-card .card-header h3 { - flex: 1; - margin: 0; - line-height: 36px; - font-family: "Russo One"; - font-size: 10px; - color: #4b4a44; -} -.sw5e.chat-card .card-header h3:hover { - color: #111; - text-shadow: 0 0 10px red; -} -.sw5e.chat-card .card-content { - margin: 5px 0; -} -.sw5e.chat-card .card-content h3 { - font-size: 12px; - margin: 0; - font-weight: bold; -} -.sw5e.chat-card .card-content > * { - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; -} -.sw5e.chat-card .card-buttons { - margin: 5px 0; -} -.sw5e.chat-card .card-buttons span { - display: block; - line-height: 28px; - text-align: center; - border: 1px solid #CCC; -} -.sw5e.chat-card .card-buttons button { - font-size: 12px; - height: 24px; - line-height: 20px; - margin: 2px 0; -} -.sw5e.chat-card .card-footer { - padding: 3px 0 0; - border-top: 2px groove #FFF; -} -.sw5e.chat-card .card-footer span { - border-right: 2px groove #FFF; - padding: 0 3px 0 0; - font-size: 10px; -} -.sw5e.chat-card .card-footer span:last-child { - border-right: none; - padding-right: 0; -} -.dice-roll .dice-total.success { - color: inherit; - background: #c7d0c0; - border: 1px solid #006c00; -} -.dice-roll .dice-total.failure { - color: inherit; - background: #ffdddd; - border: 1px solid #6e0000; -} -.dice-roll .dice-total.critical { - color: green; -} -.dice-roll .dice-total.fumble { - color: red; -} -/* ----------------------------------------- */ -/* Basic Structure */ -/* ----------------------------------------- */ -.sw5e.sheet.actor.character { - min-width: 680px; - min-height: 736px; - /* ----------------------------------------- */ - /* Sheet Header */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Sheet Body */ - /* ----------------------------------------- */ - /* ----------------------------------------- */ - /* Inventory */ - /* ----------------------------------------- */ - /* Encumbrance Bar */ - /* ----------------------------------------- */ - /* Item Controls */ - /* ----------------------------------------- */ -} -.sw5e.sheet.actor.character .sheet-header img.profile { - flex: 0 0 180px; - max-width: 180px; - height: 180px; -} -.sw5e.sheet.actor.character .sheet-header .charlevel { - flex: 0 0 180px; - padding: 0 5px 2px; -} -.sw5e.sheet.actor.character .sheet-header .charlevel .level { - height: 28px; -} -.sw5e.sheet.actor.character .sheet-header .charlevel .experience input[type="text"] { - width: 100px; -} -.sw5e.sheet.actor.character .sheet-header .charlevel .xpbar { - width: 100%; - flex: 0 0 8px; - background: #666; - border: 1px solid #000; - border-radius: 3px; -} -.sw5e.sheet.actor.character .sheet-header .charlevel .xpbar .bar { - height: 4px; - margin: 1px; - display: block; - background: #afebff; - border: 1px solid #000; - border-radius: 2px; -} -.sw5e.sheet.actor.character .sheet-header .summary { - border-bottom: 2px groove #eeede0; -} -.sw5e.sheet.actor.character .sheet-header .attributes { - height: 80px; - margin: 0; -} -.sw5e.sheet.actor.character .sheet-header .attributes .attribute { - height: 80px; - margin: 0; - border: none; - border-right: 2px groove #eeede0; - border-radius: 0; -} -.sw5e.sheet.actor.character .sheet-header .attributes .attribute:last-child { - border-right: none; -} -.sw5e.sheet.actor.character .sheet-header .attributes .attribute .attribute-value { - margin: 5px 0 0; - height: 32px; - line-height: 32px; -} -.sw5e.sheet.actor.character .sheet-header .attributes .attribute .attribute-name { - margin-top: 6px; -} -.sw5e.sheet.actor.character .sheet-header .attributes .attribute .attribute-footer { - margin-bottom: 2px; -} -.sw5e.sheet.actor.character .sheet-header .attributes a.rest { - border: 1px solid #b5b3a4; - border-radius: 2px; - background: rgba(0, 0, 0, 0.05); - padding: 1px 3px; - margin: 0 6px; -} -.sw5e.sheet.actor.character .sheet-header .attributes .hit-dice { - font-size: 16px; -} -.sw5e.sheet.actor.character .attributes .resource .attribute-name { - margin: 0 8px; -} -.sw5e.sheet.actor.character .attributes .resource .attribute-name input[type="text"] { - height: 20px; - margin: 2px 0 -2px; - line-height: 24px; -} -.sw5e.sheet.actor.character .attributes .resource label.checkbox { - margin: 0 3px; -} -.sw5e.sheet.actor.character .attributes .resource label.checkbox input[type="checkbox"] { - transform: scale(1.2); -} -.sw5e.sheet.actor.character .attributes .initiative .attribute-footer input { - width: 32px; -} -.sw5e.sheet.actor.character ul.skills-list { - flex: 0 0 212px; -} -.sw5e.sheet.actor.character ul.skills-list li.skill { - padding: 3px; -} -.sw5e.sheet.actor.character ul.skills-list li.skill h4 { - flex: 1px; - margin: 0; - font-size: 13px; -} -.sw5e.sheet.actor.character .counters .death-saves { - flex: 2; -} -.sw5e.sheet.actor.character .counters .death-saves .counter-value { - flex: 0 0 90px; -} -.sw5e.sheet.actor.character .item-detail.player-class { - flex: 0 0 180px; - text-align: right; - padding-right: 10px; -} -.sw5e.sheet.actor.character .encumbrance { - flex: 0 0 12px; - background: #7a7971; - margin: 1px 15px 0 1px; - border: 1px solid #191813; - border-radius: 3px; - position: relative; -} -.sw5e.sheet.actor.character .encumbrance .encumbrance-bar { - position: absolute; - top: 1px; - left: 1px; - background: #6c8aa5; - height: 8px; - border: 1px solid #cde4ff; - border-radius: 2px; -} -.sw5e.sheet.actor.character .encumbrance .encumbrance-label { - height: 10px; - padding: 0 5px; - position: absolute; - top: 0; - right: 0; - font-size: 13px; - line-height: 12px; - text-align: right; - color: #EEE; - text-shadow: 0 0 5px #000; -} -.sw5e.sheet.actor.character .encumbrance .encumbrance-breakpoint { - display: block; - position: absolute; -} -.sw5e.sheet.actor.character .encumbrance .encumbrance-breakpoint.encumbrance-33 { - left: 33%; -} -.sw5e.sheet.actor.character .encumbrance .encumbrance-breakpoint.encumbrance-66 { - left: 66%; -} -.sw5e.sheet.actor.character .encumbrance .arrow-up { - bottom: 0; - width: 0; - height: 0; - border-left: 4px solid transparent; - border-right: 4px solid transparent; - border-bottom: 4px solid #666; -} -.sw5e.sheet.actor.character .encumbrance .arrow-down { - top: 0; - width: 0; - height: 0; - border-left: 4px solid transparent; - border-right: 4px solid transparent; - border-top: 4px solid #666; -} -.sw5e.sheet.actor.character .encumbrance.encumbered .arrow-up { - border-bottom: 4px solid #000; -} -.sw5e.sheet.actor.character .encumbrance.encumbered .arrow-down { - border-top: 4px solid #000; -} -.sw5e.sheet.actor.character .inventory .item-controls, -.sw5e.sheet.actor.character .powerbook .item-controls { - flex: 0 0 68px; -} -.sw5e.sheet.actor.character .inventory .item-controls .item-toggle, -.sw5e.sheet.actor.character .powerbook .item-controls .item-toggle { - color: #b5b3a4; -} -.sw5e.sheet.actor.character .inventory .item-controls .item-toggle.active, -.sw5e.sheet.actor.character .powerbook .item-controls .item-toggle.active { - color: #4b4a44; -} -.sw5e.sheet.actor.character .inventory .item-controls .item-toggle.fixed, -.sw5e.sheet.actor.character .powerbook .item-controls .item-toggle.fixed { - color: #44191A; -} -.sw5e.sheet.actor.character .inventory .item-controls .item-toggle.fixed:hover, -.sw5e.sheet.actor.character .powerbook .item-controls .item-toggle.fixed:hover { - text-shadow: none; -} -/* ----------------------------------------- */ -/* Basic Structure */ -/* ----------------------------------------- */ -.sw5e.sheet.actor.npc { - min-width: 800px; - min-height: 658px; -} -/* ----------------------------------------- */ -/* Journal Entry -/* ----------------------------------------- */ -.journal-sheet .window-content { - padding: 0; - background: url("ui/parchment.webp") repeat; -} -.journal-sheet form { - overflow: hidden; - padding: 5px; - font-family: "Open Sans"; - background: url("ui/parchment.webp") repeat; -} -.journal-sheet form h2 { - font-family: "Russo One"; - font-size: 18px; - text-transform: uppercase; - color: #c40f0f; -} - -.journal-sheet form input[name="name"] { - height: 36px; - font-family: "Russo One"; - font-size: 24px; - text-transform: uppercase; - color: #c40f0f; - line-height: 36px; -} -.journal-sheet form select { - width: 100%; - height: 30px; - margin: 5px 0; -} -.journal-sheet form .editor { - height: calc(100% - 115px); -} -.journal-sheet form button[type="submit"] { - margin-top: 5px; -} -.journal-sheet form img { - border: none -} -.journal-sheet form table { - border: none; - background-color: none; -} -/* ---------------------------------------- */ -/* Roll Table Sheet */ -/* ---------------------------------------- */ -.roll-table-config .window-content { - background: url("ui/parchment.webp") repeat; -} -.roll-table-config form { - background: url("ui/parchment.webp") repeat; -} -.roll-table-config h1.name input { - width: 100%; - height: 36px; - margin: 0 0 5px; - font-family: "Russo One"; - font-size: 24px; - text-transform: uppercase; - color: #c40f0f; -} -.roll-table-config textarea { - resize: none; - min-height: 44px; - font-family: "Open Sans"; - background: url("ui/parchment.webp") repeat; -} -.roll-table-config ol.table-results { - list-style: none; - margin: 0; - padding: 0; - max-height: 600px; - overflow-y: auto; -} -.roll-table-config ol.table-results .table-result { - padding: 2px 0; - border-top: 1px solid transparent; - border-bottom: 1px solid transparent; -} -.roll-table-config ol.table-results .table-result input[type="text"] { - width: 100%; - height: 28px; -} -.roll-table-config ol.table-results .table-result > div { - line-height: 36px; - margin-right: 5px; -} -.roll-table-config ol.table-results .table-result .result-image { - flex: 0 0 36px; - width: 36px; - height: 36px; - text-align: center; - margin: 0; -} -.roll-table-config ol.table-results .table-result .result-image img { - border: none; - object-fit: cover; - object-position: 50% 0; -} -.roll-table-config ol.table-results .table-result .result-type { - flex: 0 0 110px; -} -.roll-table-config ol.table-results .table-result .result-details { - flex: 1; -} -.roll-table-config ol.table-results .table-result .result-details select { - width: 40%; -} -.roll-table-config ol.table-results .table-result .result-details .result-target { - width: 58%; - margin-left: 3px; -} -.roll-table-config ol.table-results .table-result .result-weight { - flex: 0 0 50px; - text-align: center; -} -.roll-table-config ol.table-results .table-result .result-range { - flex: 0 0 92px; - text-align: center; -} -.roll-table-config ol.table-results .table-result .result-range input { - width: 36px; -} -.roll-table-config ol.table-results .table-result .result-controls { - flex: 0 0 40px; - margin: 0; - text-align: center; -} -.roll-table-config ol.table-results .table-result .result-controls a { - width: 20px; -} -.roll-table-config ol.table-results .table-result .result-controls .lock-result { - color: #b5b3a4; -} -.roll-table-config ol.table-results .table-result.roulette { - background: url("ui/parchment.webp") repeat; - border-top: 1px solid #000; - border-bottom: 1px solid #000; -} -.roll-table-config ol.table-results .table-result.drawn { - background: rgba(0, 0, 0, 0.15); -} -.roll-table-config ol.table-results .table-result.drawn .lock-result { - color: #111; -} -.roll-table-config ol.table-results .table-header { - background: url("ui/parchment.webp") repeat; - border: 1px solid #7a7971; - line-height: 24px; - font-weight: bold; -} -.icon:before { - display: inline-block; - font-style: normal; - font-variant: normal; - text-rendering: auto; - -webkit-font-smoothing: antialiased; -} -a.entity-link { - background: #DDD; - padding: 1px 4px; - border: 1px solid #4b4a44; - border-radius: 2px; - white-space: nowrap; - word-break: break-all; -} -a.entity-link i::before { - content: url("ui/jedi-order.svg") !important; - display: inline-block; - position: relative; - top: 2px; - height: 15px; - width: 15px; -} +/* Deprecated vars */ +/* ----------------------------------------- */ +/* Fonts */ +/* ----------------------------------------- */ + +/* russo-one-regular - latin */ +@font-face { + font-family: 'Russo One'; + font-style: normal; + font-weight: 400; + src: url('./fonts/RussoOne.ttf'); +} +@font-face { + font-family: 'Engli-Besh'; + font-style: normal; + font-weight: 400; + src: url('./fonts/EngliBesh-KG3W.ttf'); +} +.engli-Besh { + font-family: 'Engli-Besh'; + font-size: 20px; + font-weight: 400; +} +/* open-sans-regular - latin */ +@font-face { + font-family: 'Open Sans'; + font-style: normal; + font-weight: 400; + src: url('./fonts/OpenSans-Regular.ttf'); +} +body { + width: 100vw; + height: 100vh; + margin: 0; + overflow: hidden; + background-image: url('./ui/SW5e-logo.svg'); + background-repeat: no-repeat; + background-size: cover; + font-family: 'Open Sans'; + font-size: 14px; + box-shadow: 0 0 50vw #000 inset; +} +/* ----------------------------------------- */ +/* Sheet Styles */ +/* ----------------------------------------- */ +/* ----------------------------------------- */ +/* Flexbox */ +/* ----------------------------------------- */ +.flexrow { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: flex-start; +} +.flexrow > * { + flex: 1; +} +.flexrow .flex1 { + flex: 1; +} +.flexrow .flex2 { + flex: 2; +} +.flexrow .flex3 { + flex: 3; +} +.flexrow .flex4 { + flex: 4; +} +.flexcol { + display: flex; + flex-direction: column; + flex-wrap: nowrap; +} +.flexcol > * { + flex: 1; +} +.flexcol .flex1 { + flex: 1; +} +.flexcol .flex2 { + flex: 2; +} +.flexcol .flex3 { + flex: 3; +} +.flexcol .flex4 { + flex: 4; +} +/* ----------------------------------------- */ +/* All SW5e Apps */ +/* ----------------------------------------- */ +.sw5e { + /* ----------------------------------------- */ + /* Element Styles */ + /* ----------------------------------------- */ + /* Form Groups */ + /* Tags */ +} +.sw5e .window-content { + background: url("ui/parchment.webp") repeat; + font-size: 13px; + color: #191813; +} +.sw5e input[type="text"] +.sw5e select { + height: calc(100% - 2px); + border: 1px solid #7a7971; + background: rgba(0, 0, 0, 0.05); + color: #191813; +} +.sw5e input[type="text"]:hover, +.sw5e input[type="text"]:focus { + border: 1px solid #111; + box-shadow: 0 0 8px red; +} +.sw5e input:disabled, +.sw5e select:disabled, +.sw5e textarea:disabled { + color: #4b4a44; +} +.sw5e input:disabled:hover, +.sw5e select:disabled:hover, +.sw5e textarea:disabled:hover, +.sw5e input:disabled:focus, +.sw5e select:disabled:focus, +.sw5e textarea:disabled:focus { + box-shadow: none !important; + border: 1px solid transparent !important; + outline: none !important; +} +.sw5e button { + background: rgba(0, 0, 0, 0.1); + border: 2px groove #eeede0; +} +.sw5e label.checkbox { + flex: auto; + margin: 0; + line-height: 20px; + font-size: 10px; + text-align: right; +} +.sw5e label.checkbox input[type="checkbox"] { + height: auto; + margin: 0 5px 0; + position: relative; + top: 3px; +} +.sw5e .form-group label { + flex: 2; + color: #4b4a44; + font-weight: bold; +} +.sw5e .form-group .form-fields { + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: flex-start; +} +.sw5e .form-group .form-fields > * { + flex: 1; +} +.sw5e .form-group .form-fields .flex1 { + flex: 1; +} +.sw5e .form-group .form-fields .flex2 { + flex: 2; +} +.sw5e .form-group .form-fields .flex3 { + flex: 3; +} +.sw5e .form-group .form-fields .flex4 { + flex: 4; +} +.sw5e .form-group .form-fields > * { + margin: 0 3px 0 0; +} +.sw5e .form-group .form-fields > *:last-child { + margin-right: 0; +} +.sw5e .form-group.stacked label { + flex: 0 0 100%; + margin: 0; +} +.sw5e .form-group.stacked label.checkbox { + flex: auto; + text-align: left; +} +.sw5e .form-header { + margin: 0 0 0.25em 0; + padding: 0 2px; + font-family: "Russo One"; + font-size: 8px; + font-size: 12px; + border-top: 2px groove #eeede0; + border-bottom: 2px groove #eeede0; +} +.sw5e .tag { + display: inline-block; + margin: 0 2px 0 0; + padding: 0 3px; + font-size: 10px; + line-height: 16px; + border: 1px solid #999; + border-radius: 3px; + background: rgba(0, 0, 0, 0.05); +} +/* ----------------------------------------- */ +/* Entity Sheets Specifically */ +/* ----------------------------------------- */ +.sw5e.sheet { + /* ----------------------------------------- */ + /* Element Styles */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* TinyMCE */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Sheet Header */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Sheet Navigation */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Sheet Body */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* List Filters */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Trait Lists */ + /* ----------------------------------------- */ +} +.sw5e.sheet .window-content { + overflow-y: hidden; + padding: 5px; + background: url("ui/parchment.webp") repeat; + font-size: 13px; + color: #191813; +} +.sw5e.sheet .window-content form { + height: 100%; + overflow: hidden; +} +.sw5e.sheet .window-content .tab { + height: 100%; + overflow-y: auto; + align-content: flex-start; +} +.sw5e.sheet input[type="text"] { + background: none; + border: 1px solid transparent; +} +.sw5e.sheet input[type="text"]:hover, +.sw5e.sheet input[type="text"]:focus { + border: 1px solid #111; +} +.sw5e.sheet select { + flex: 1; + font-size: 12px; + height: 22px; + background: transparent; +} +.sw5e.sheet .editable .rollable:hover { + color: #000; + text-shadow: 0 0 10px red; + cursor: pointer; +} +.sw5e.sheet .editor { + height: 100%; +} +.sw5e.sheet .editor .tox-toolbar-overlord, +.sw5e.sheet .editor .tox-toolbar__primary { + background: none; +} +.sw5e.sheet .sheet-header { + flex: 0 0 100px; + border-bottom: 2px groove #eeede0; + font-family: "Russo One"; + font-size: 14px; + /* Character Name */ + /* Profile Image */ + /* Header Summary Details */ +} +.sw5e.sheet .sheet-header h1 { + flex: 2; + border-bottom: none; + height: 60px; + margin: 0; + padding: 5px; +} +.sw5e.sheet .sheet-header h1 input { + height: 50px; + font-size: 22px; + text-transform: uppercase; +} +.sw5e.sheet .sheet-header img.profile { + flex: 0 0 100px; + max-width: 100px; + height: 100px; + object-fit: cover; + border: none; + border-right: 2px groove #eeede0; +} +.sw5e.sheet .sheet-header .summary { + flex: 0 0 100%; + height: 40px; + margin: 0; + padding: 0; + list-style: none; + border-top: 2px groove #eeede0; + border-bottom: none; +} +.sw5e.sheet .sheet-header .summary li { + width: 33.33%; + float: left; + height: 34px; + margin: 2px 0; + padding: 0 3px; + border-right: 2px groove #eeede0; + line-height: 34px; + color: #4b4a44; +} +.sw5e.sheet .sheet-header .summary li:last-child { + border-right: none; +} +.sw5e.sheet .sheet-navigation { + flex: 0 0 30px; + margin-bottom: 5px; + font-family: "Russo One"; + font-size: 12px; +} +.sw5e.sheet .sheet-navigation .item { + height: 30px; + line-height: 32px; + margin: 0 24px; + border-bottom: 3px solid #b5b3a4; +} +.sw5e.sheet .sheet-navigation .item.active { + border-bottom: 3px solid #44191A; +} +.sw5e.sheet .sheet-body { + flex: 1; + overflow: hidden; + font-family: "Open Sans"; +} +.sw5e.sheet .sheet-body h1 { + font-family: "Russo One"; + font-size: 22px; + text-transform: uppercase; + color: #c40f0f; + border: 0px; +} +.sw5e.sheet .sheet-body h2 { + font-family: "Russo One"; + font-size: 18px; + text-transform: uppercase; + color: #c40f0f; +} +.sw5e.sheet .sheet-body th { + font-family: "Russo One"; + text-transform: uppercase; + color: #c40f0f; +} +.sw5e.sheet .sheet-body tr:nth-child(odd) { + background-color: #c9d6db; +} +.sw5e.sheet .sheet-body tr:nth-child(even) { + background-color: #bdc8cc; +} +.sw5e.sheet .sheet-body .smalltable table { + width: 200px; + border: 0px; + margin: 0.5em 0.5em; +} +.sw5e.sheet .sheet-body .smalltable td:nth-child(odd) { + width: 50px; + margin: 0.5em 0.5em; +} +.sw5e.sheet .sheet-body .smalltable td:nth-child(even) { + width: 150px; + margin: 0.5em 0.5em; + padding: 0px 10px 0px 10px; +} +.sw5e.sheet .sheet-body .smalltable thead { + border-bottom: 0px; +} +.sw5e.sheet .sheet-body .smalltable th { + color: #000000; + text-shadow: none; + border-bottom: 0px; + background-color: #bdc8cc; + text-transform: none; + font-weight: bold; + font-family: 'Open Sans'; +} +.sw5e.sheet .sheet-body .medtable table { + width: 500px; + border: 0px; + margin: 0.5em 0.5em; +} +.sw5e.sheet .sheet-body .medtable td:nth-child(odd) { + width: 50px; + margin: 0.5em 0.5em; +} +.sw5e.sheet .sheet-body .medtable td:nth-child(even) { + width: 450px; + margin: 0.5em 0.5em; + padding: 0px 10px 0px 10px; +} +.sw5e.sheet .sheet-body .medtable thead { + border-bottom: 0px; +} +.sw5e.sheet .sheet-body .medtable th { + color: #000000; + text-shadow: none; + border-bottom: 0px; + background-color: #bdc8cc; + text-transform: none; + font-weight: bold; + font-family: 'Open Sans'; +} +.sw5e.sheet .sheet-body .classtable blockquote { + border-left: 0px; + border-right: 0px; +} +.sw5e.sheet .sheet-body .classtable table { + width: 100%; + border-collapse: collapse; + background: rgba(0, 0, 0, 0.05); + border-left: 0px; + border-right: 0px; + border-top: 0; + border-bottom: 0; + margin: 0.5em 0; + font-style: normal; + font-weight: normal; + text-shadow: none; +} +.sw5e.sheet .sheet-body .classtable thead { + color: #000000; + text-shadow: none; + border-bottom: 0px; + background-color: #bdc8cc; + text-transform: none; + font-style: normal; + font-weight: normal; + font-family: 'Open Sans'; +} +.sw5e.sheet .sheet-body .classtable th { + color: #000000; + text-shadow: none; + border-bottom: 0px; + background-color: #bdc8cc; + text-transform: none; + font-style: normal; + font-weight: bold; + font-family: 'Open Sans'; +} +.sw5e.sheet .filter-list { + list-style: none; + margin: 0; + padding: 0; + line-height: 16px; +} +.sw5e.sheet .filter-list .filter-title { + flex: 3; +} +.sw5e.sheet .filter-list .filter-item { + text-align: center; + font-size: 12px; + margin: 0 6px; + border-bottom: 3px solid #b5b3a4; + white-space: nowrap; +} +.sw5e.sheet .filter-list .filter-item:hover { + text-shadow: 0 0 4px red; + border-bottom: 3px solid #7a7971; +} +.sw5e.sheet .filter-list .filter-item.active { + border-bottom: 3px solid #44191A; +} +.sw5e.sheet .trait-selector { + flex: 0 0 16px; + padding: 2px 0; + color: #999; + font-size: 10px; +} +.sw5e.sheet .traits-list { + line-height: 20px; + list-style: none; + margin: 0; + padding: 0; + text-align: right; +} +/* ----------------------------------------- */ +/* Trait Selector +/* ----------------------------------------- */ +#trait-selector .trait-list { + list-style: none; + margin: 0; + padding: 0; +} +#trait-selector input[type="text"] { + height: 24px; + margin: 2px; +} +.sw5e.sheet.actor { + /* ----------------------------------------- */ + /* Sheet Header */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* General Styles */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Attributes */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Ability Scores */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Skills */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Statuses */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Traits */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Inventory Lists */ + /* ----------------------------------------- */ + /* Inventory List Filters */ + /* ----------------------------------------- */ + /* Powerbook */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* TinyMCE */ + /* ----------------------------------------- */ +} +.sw5e.sheet.actor .sheet-header .charlevel { + flex: 0 0 160px; + height: 60px; + margin: 0; + padding: 5px; + text-align: right; +} +.sw5e.sheet.actor .sheet-header .charlevel .level { + width: 100%; + height: 30px; + font-size: 18px; + line-height: 30px; +} +.sw5e.sheet.actor .sheet-header .charlevel .level label { + display: inline; + font-size: 18px; + text-align: right; +} +.sw5e.sheet.actor .sheet-header .charlevel .level input { + display: inline; + width: 36px; + font-size: 18px; + text-align: center; +} +.sw5e.sheet.actor .sheet-header .charlevel .level.noxp { + margin-top: 10px; +} +.sw5e.sheet.actor .sheet-header .charlevel .level.noxp > label { + font-size: 32px; +} +.sw5e.sheet.actor .sheet-header .charlevel .level.noxp > input { + font-size: 18px; + flex: 0 0 40px; + height: 44px; +} +.sw5e.sheet.actor .sheet-header .charlevel .experience { + width: 100%; + height: 20px; + padding-right: 5px; + font-size: 16px; + color: #4b4a44; +} +.sw5e.sheet.actor .attributes input.temphp { + width: 48%; +} +.sw5e.sheet.actor h4.box-title { + line-height: 16px; + margin: 4px 8px 2px; + font-size: 14px; + border-bottom: 1px solid #b5b3a4; +} +.sw5e.sheet.actor ul.attributes { + list-style: none; + margin: 5px 0 0; + padding: 0; +} +.sw5e.sheet.actor ul.attributes li.attribute { + height: 70px; + margin: 0 5px; + border: 2px groove #eeede0; + border-radius: 4px; + font-family: "Russo One"; + font-size: 12px; + text-align: center; +} +.sw5e.sheet.actor ul.attributes li.attribute .attribute-name { + flex: 0 0 18px; +} +.sw5e.sheet.actor ul.attributes li.attribute .attribute-value { + height: 28px; + line-height: 28px; +} +.sw5e.sheet.actor ul.attributes li.attribute .attribute-value input { + display: inline; + max-width: 80%; + height: 28px; + margin: 0; + font-size: 14px; +} +.sw5e.sheet.actor ul.attributes li.attribute .attribute-value span.sep { + display: inline; + position: relative; + top: 2px; + font-size: 28px; + color: #7a7971; +} +.sw5e.sheet.actor ul.attributes li.attribute .attribute-value.multiple input { + max-width: 33%; +} +.sw5e.sheet.actor ul.attributes li.attribute .attribute-footer { + flex: 0 0 18px; + margin-top: -1px; + line-height: 18px; + font-family: "Signika", "Palatino Linotype", serif; + font-size: 12px; +} +.sw5e.sheet.actor .ability-scores { + flex: 0 0 100%; + list-style: none; + margin: 0; + padding: 0; + font-family: "Russo One"; + font-size: 8px; +} +.sw5e.sheet.actor .ability-scores .ability { + height: 70px; + margin: 0 5px; + text-align: center; + border: 2px groove #eeede0; + border-radius: 3px; + /* Hide modifier box on hover */ +} +.sw5e.sheet.actor .ability-scores .ability input.ability-score { + height: 30px; + width: 50px; + margin: 0 auto; + line-height: 32px; + font-size: 16px; +} +.sw5e.sheet.actor .ability-scores .ability .ability-modifiers { + height: 24px; + margin: -10px 0 0; +} +.sw5e.sheet.actor .ability-scores .ability .ability-modifiers span.ability-mod, +.sw5e.sheet.actor .ability-scores .ability .ability-modifiers span.ability-save { + flex: 0 0 24px; + height: 24px; + border-top: 2px groove #eeede0; +} +.sw5e.sheet.actor .ability-scores .ability .ability-modifiers span.ability-mod { + border-right: 2px groove #eeede0; +} +.sw5e.sheet.actor .ability-scores .ability .ability-modifiers .ability-proficiency { + line-height: 30px; +} +.sw5e.sheet.actor .ability-scores .ability .ability-modifiers span.ability-save { + border-left: 2px groove #eeede0; +} +.sw5e.sheet.actor .ability-scores .ability input.ability-score:hover + .ability-modifiers { + visibility: hidden; +} +.sw5e.sheet.actor .proficiency-toggle { + color: #b5b3a4; + font-size: 12px; +} +.sw5e.sheet.actor .proficient .proficiency-toggle { + color: #4b4a44; +} +.sw5e.sheet.actor .locked .proficiency-toggle { + color: #b5b3a4; + text-shadow: none; + cursor: default; +} +.sw5e.sheet.actor ul.skills-list { + flex: 0 0 192px; + list-style: none; + margin: 5px 5px 0; + padding: 2px 2px 0; + border: 2px groove #eeede0; + border-radius: 3px; +} +.sw5e.sheet.actor ul.skills-list li.skill { + height: 22px; + padding: 3px 0; +} +.sw5e.sheet.actor ul.skills-list li.skill h4 { + flex: 1px; + margin: 0; + font-size: 11px; + line-height: 18px; +} +.sw5e.sheet.actor ul.skills-list li.skill .skill-proficiency { + flex: 0 0 16px; + line-height: 18px; +} +.sw5e.sheet.actor ul.skills-list li.skill .skill-ability { + flex: 0 0 26px; +} +.sw5e.sheet.actor ul.skills-list li.skill .skill-mod { + flex: 0 0 20px; +} +.sw5e.sheet.actor ul.skills-list li.skill .skill-passive { + flex: 0 0 26px; + text-align: center; + color: #7a7971; +} +.sw5e.sheet.actor .counters { + flex: 0 0 100%; + border-bottom: 2px groove #eeede0; + margin-bottom: 5px; +} +.sw5e.sheet.actor .counters .counter { + padding: 0 3px; + line-height: 32px; +} +.sw5e.sheet.actor .counters .counter h4 { + flex: auto; + margin: 0; + font-family: "Russo One"; + font-size: 14px; + font-size: 10px; +} +.sw5e.sheet.actor .counters .counter .counter-value { + flex: 0 0 50px; + text-align: right; +} +.sw5e.sheet.actor .counters .counter .counter-value > * { + display: inline; +} +.sw5e.sheet.actor .counters .counter input[type="text"] { + height: 20px; + max-width: 20px; + margin: 0; + padding: 0; + text-align: center; +} +.sw5e.sheet.actor .counters .counter input[type="checkbox"] { + position: relative; + margin: 0; + top: 6px; +} +.sw5e.sheet.actor .counters .counter span.sep { + margin: 0 -2px; + font-size: 12px; +} +.sw5e.sheet.actor .traits { + margin: 0 5px; +} +.sw5e.sheet.actor .traits .form-group, +.sw5e.sheet.actor .traits .form-group-stacked { + margin: 0 0 4px 0; + justify-content: space-between; +} +.sw5e.sheet.actor .traits .configure-flags { + flex: 1; +} +.sw5e.sheet.actor .traits .actor-size { + flex: 0 0 150px; +} +.sw5e.sheet.actor .traits label { + flex: 0 0 150px; + line-height: 20px; + font-weight: bold; + margin: 0; +} +.sw5e.sheet.actor .traits input { + text-align: right; +} +.sw5e.sheet.actor .traits i.fas { + float: right; + margin-right: 3px; + text-align: right; + color: #999; +} +.sw5e.sheet.actor .traits i.fas:hover { + color: #111; + text-shadow: 0 0 10px red; +} +.sw5e.sheet.actor .traits .inactive { + color: #7a7971; +} +.sw5e.sheet.actor .tab.features, +.sw5e.sheet.actor .tab.inventory, +.sw5e.sheet.actor .tab.powerbook { + overflow-y: hidden; +} +.sw5e.sheet.actor .inventory-filters { + margin: 0 8px; + flex: 0 0 20px; +} +.sw5e.sheet.actor .inventory-filters h3, +.sw5e.sheet.actor .inventory-filters .filter-title { + font-family: "Russo One"; + font-size: 10px; + color: #4b4a44; + font-size: 12px; + margin: 0; +} +.sw5e.sheet.actor .inventory-filters.powerbook-filters { + flex: 0 0 40px; +} +.sw5e.sheet.actor .inventory-filters .currency { + list-style: none; + margin: 4px 0 8px; + padding: 0; + font-size: 12px; +} +.sw5e.sheet.actor .inventory-filters .currency label { + flex: 0; + margin-left: 8px; + text-align: right; + line-height: 20px; + color: #7a7971; +} +.sw5e.sheet.actor .inventory-filters .currency input[type="text"] { + flex: 0 0 48px; + text-align: center; + margin-left: 8px; + border-bottom: 2px groove #eeede0; +} +.sw5e.sheet.actor .inventory-list { + list-style: none; + margin: 0; + padding: 0 5px; + overflow-y: auto; +} +.sw5e.sheet.actor .inventory-list .item { + line-height: 30px; + padding: 0 2px; + border-bottom: 1px solid #c9c7b8; +} +.sw5e.sheet.actor .inventory-list .item:last-child { + border-bottom: none; +} +.sw5e.sheet.actor .inventory-list .item .item-name { + cursor: pointer; + max-height: 30px; + overflow: hidden; +} +.sw5e.sheet.actor .inventory-list .item .item-name .item-image { + flex: 0 0 30px; + background-size: 30px; + margin-right: 5px; +} +.sw5e.sheet.actor .inventory-list .item .item-name h4 { + margin: 0; + white-space: nowrap; + overflow-x: hidden; +} +.sw5e.sheet.actor .inventory-list .item .item-name.rollable .item-image:hover { + background-image: url("/icons/svg/d20-black.svg") !important; +} +.sw5e.sheet.actor .inventory-list .item .item-name.rollable:hover .item-image { + background-image: url("/icons/svg/d20-grey.svg") !important; +} +.sw5e.sheet.actor .inventory-list .item .item-name i.attuned { + color: #7a7971; +} +.sw5e.sheet.actor .inventory-list .item .item-uses input { + width: 24px; + text-align: center; +} +.sw5e.sheet.actor .inventory-list .item .item-properties { + margin-top: 3px; +} +.sw5e.sheet.actor .inventory-list .item .item-recharge { + flex: 0 0 80px; + text-align: right; + font-size: 11px; + color: #7a7971; +} +.sw5e.sheet.actor .inventory-list .inventory-header { + margin: 2px 0; + padding: 0; + background: rgba(0, 0, 0, 0.05); + border: 2px groove #eeede0; + font-weight: bold; + line-height: 24px; +} +.sw5e.sheet.actor .inventory-list .inventory-header h3 { + margin: 0 -5px 0 0; + padding-left: 5px; + font-size: 13px; + font-weight: bold; +} +.sw5e.sheet.actor .inventory-list .inventory-header .item-controls a.item-create { + flex: 0 0 100%; +} +.sw5e.sheet.actor .inventory-list .item-detail { + flex: 0 0 70px; + font-size: 12px; + color: #7a7971; + text-align: center; + border-right: 1px solid #c9c7b8; +} +.sw5e.sheet.actor .inventory-list .item-detail:last-child { + border-right: none; +} +.sw5e.sheet.actor .inventory-list .item-detail.item-action { + flex: 0 0 100px; +} +.sw5e.sheet.actor .inventory-list .item-weight { + flex: 0 0 60px; + border-left: 1px solid #c9c7b8; + border-right: 1px solid #c9c7b8; +} +.sw5e.sheet.actor .inventory-list .item-list { + list-style: none; + margin: 0; + padding: 0; +} +.sw5e.sheet.actor .inventory-list .item-controls { + flex: 0 0 44px; + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: flex-start; + justify-content: flex-end; +} +.sw5e.sheet.actor .inventory-list .item-controls > * { + flex: 1; +} +.sw5e.sheet.actor .inventory-list .item-controls .flex1 { + flex: 1; +} +.sw5e.sheet.actor .inventory-list .item-controls .flex2 { + flex: 2; +} +.sw5e.sheet.actor .inventory-list .item-controls .flex3 { + flex: 3; +} +.sw5e.sheet.actor .inventory-list .item-controls .flex4 { + flex: 4; +} +.sw5e.sheet.actor .inventory-list .item-controls a { + flex: 0 0 22px; + font-size: 12px; + text-align: center; + color: #7a7971; +} +.sw5e.sheet.actor .inventory-list .item-summary { + flex: 0 0 100%; + font-size: 12px; + line-height: 16px; + padding: 0.25em 0.5em; + border-top: 1px solid #c9c7b8; +} +.sw5e.sheet.actor .powercasting-ability h3, +.sw5e.sheet.actor .pact-slots h3 { + flex: none; + margin-right: 5px; +} +.sw5e.sheet.actor .powercasting-ability input, +.sw5e.sheet.actor .pact-slots input, +.sw5e.sheet.actor .powercasting-ability span, +.sw5e.sheet.actor .pact-slots span { + flex: 0 0 32px; + text-align: center; +} +.sw5e.sheet.actor .powercasting-ability select, +.sw5e.sheet.actor .pact-slots select { + margin: 0 5px; + flex: 0 0 150px; +} +.sw5e.sheet.actor .powercasting-ability h3.power-dc, +.sw5e.sheet.actor .pact-slots h3.power-dc { + flex: 1; + text-align: right; +} +.sw5e.sheet.actor .pact-slots { + align-items: center; +} +.sw5e.sheet.actor .power-slots, +.sw5e.sheet.actor .power-comps { + flex: 0 0 72px; + padding-right: 5px; + text-align: right; + font-size: 12px; + color: #7a7971; + border-right: 1px solid #c9c7b8; +} +.sw5e.sheet.actor .power-slots input, +.sw5e.sheet.actor .power-slots span.sep { + display: inline; + max-width: 20px; + text-align: center; +} +.sw5e.sheet.actor .power-uses { + padding-right: 8px; + text-align: right !important; +} +.sw5e.sheet.actor .power-school, +.sw5e.sheet.actor .power-action, +.sw5e.sheet.actor .power-target { + flex: 0 0 100px; + font-size: 12px; + color: #7a7971; + text-align: center; + border-right: 1px solid #c9c7b8; +} +.sw5e.sheet.actor .power-component { + line-height: 14px; +} +.sw5e.sheet.actor .power-component.C, +.sw5e.sheet.actor .power-component.R { + display: inline-block; + text-align: center; + padding-top: 1px; + width: 16px; + color: #c9c7b8; + background: rgba(0, 0, 0, 0.4); + border: 1px solid transparent; + border-radius: 8px; +} +.sw5e.sheet.actor .powerbook-empty .item-controls { + flex: 1; +} +.sw5e.sheet.actor .editor { + padding: 0 8px; +} +.sw5e.sheet.item { + min-height: 520px; + min-width: 700px; + /* ----------------------------------------- */ + /* Sheet Header */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Item Details Form */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Item Actions */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Item Actions */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Loot Sheet (No Tabs) */ + /* ----------------------------------------- */ +} +.sw5e.sheet.item .sheet-header img.profile { + border: 2px solid #000; +} +.sw5e.sheet.item .sheet-header .item-subtitle { + flex: 1 0 80px; + height: 60px; + margin: 0; + padding: 5px; + text-align: right; + color: #7a7971; +} +.sw5e.sheet.item .sheet-header .item-subtitle .item-type { + font-size: 16px; + line-height: 26px; + margin: 0; +} +.sw5e.sheet.item .sheet-header .item-subtitle .item-status { + font-size: 16px; + line-height: 24px; +} +.sw5e.sheet.item .sheet-navigation { + margin-bottom: 5px; +} +.sw5e.sheet.item .sheet-navigation .item { + font-size: 14px; +} +.sw5e.sheet.item .sheet-body { + overflow: hidden; + font-family: "Open Sans"; +} +.sw5e.sheet.item .sheet-body h2 { + font-family: "Russo One"; + font-size: 18px; + border-bottom: 2px solid #0d99cc; +} +.sw5e.sheet.item .sheet-body h3 { + font-family: "Russo One"; + color: #c40f0f; + text-transform: uppercase; +} +.sw5e.sheet.item .sheet-body .tab { + padding: 0 5px; + overflow: hidden auto; +} +.sw5e.sheet.item .sheet-body .item-properties { + flex: 0 0 120px; + margin: 5px 5px 5px 0; + padding-right: 5px; + border-right: 2px groove #eeede0; +} +.sw5e.sheet.item .sheet-body .item-properties .form-group { + margin: 0; +} +.sw5e.sheet.item .sheet-body .item-properties .form-group label { + line-height: 20px; +} +.sw5e.sheet.item .sheet-body .item-properties .form-group input { + text-align: right; +} +.sw5e.sheet.item .sheet-body .item-properties .properties-list { + list-style: none; + margin: 0; + padding: 0; +} +.sw5e.sheet.item .sheet-body .item-properties .properties-list li { + margin: 3px 0; + padding: 0 2px; + background: rgba(0, 0, 0, 0.05); + border: 2px groove #eeede0; + text-align: center; + font-size: 12px; + line-height: 18px; +} +.sw5e.sheet.item .details input[type="text"], +.sw5e.sheet.item .details select { + height: 24px; + border: 1px solid #7a7971; + background: rgba(0, 0, 0, 0.05); +} +.sw5e.sheet.item .details .form-group span { + text-align: center; + line-height: 24px; +} +.sw5e.sheet.item .details .form-group.input-select select { + flex: 1.8; +} +.sw5e.sheet.item .details .form-group.input-select-select select { + flex: 1.5; +} +.sw5e.sheet.item .details .form-group.uses-per input { + flex: 1; +} +.sw5e.sheet.item .details .form-group.uses-per span { + flex: 0 0 16px; +} +.sw5e.sheet.item .details .form-group.uses-per select { + flex: 3; +} +.sw5e.sheet.item .details span.sep { + flex: 0 0 8px; +} +.sw5e.sheet.item .details .prepared { + flex: 1.3 !important; + text-align: right; + padding-right: 10px; +} +.sw5e.sheet.item .details .power-materials { + flex: 0 0 100%; + margin: 0.25em 0; + justify-content: flex-end; +} +.sw5e.sheet.item .details .power-materials label { + flex: 0 0 64px; + text-align: right; + margin-right: 5px; + font-size: 12px; + line-height: 24px; +} +.sw5e.sheet.item .details .power-materials input[type="text"] { + flex: 0 0 48px; + margin-right: 10px; +} +.sw5e.sheet.item h4.damage-header { + margin: 0; + padding: 0; + font-weight: bold; + line-height: 24px; + color: #4b4a44; +} +.sw5e.sheet.item .damage-parts { + list-style: none; + margin: 0; + padding: 0; +} +.sw5e.sheet.item .damage-parts .damage-part { + flex: 0 0 100%; + padding: 0; +} +.sw5e.sheet.item .damage-parts .damage-part input { + flex: 3; +} +.sw5e.sheet.item .damage-parts .damage-part select { + margin-left: 5px; + flex: 1; +} +.sw5e.sheet.item .damage-control { + width: 18px; + flex: 0 0 18px; + line-height: 24px; + float: right; + text-align: right; + color: #7a7971; +} + +.sw5e.sheet.item h4.armorproperties-header { + margin: 0; + padding: 0; + font-weight: bold; + line-height: 24px; + color: #4b4a44; +} +.sw5e.sheet.item .armorproperties-parts { + list-style: none; + margin: 0; + padding: 0; +} +.sw5e.sheet.item .armorproperties-parts .armorproperties-part { + flex: 0 0 100%; + padding: 0; +} +.sw5e.sheet.item .armorproperties-parts .armorproperties-part input { + flex: 3; +} +.sw5e.sheet.item .armorproperties-parts .armorproperties-part select { + margin-left: 5px; + flex: 1; +} +.sw5e.sheet.item .armorproperties-control { + width: 18px; + flex: 0 0 18px; + line-height: 24px; + float: right; + text-align: right; + color: #7a7971; + +} + +.sw5e.sheet.item h4.weaponproperties-header { + margin: 0; + padding: 0; + font-weight: bold; + line-height: 24px; + color: #4b4a44; +} +.sw5e.sheet.item .weaponproperties-parts { + list-style: none; + margin: 0; + padding: 0; +} +.sw5e.sheet.item .weaponproperties-parts .weaponproperties-part { + flex: 0 0 100%; + padding: 0; +} +.sw5e.sheet.item .weaponproperties-parts .weaponproperties-part input { + flex: 3; +} +.sw5e.sheet.item .weaponproperties-parts .weaponproperties-part select { + margin-left: 5px; + flex: 1; +} +.sw5e.sheet.item .weaponproperties-control { + width: 18px; + flex: 0 0 18px; + line-height: 24px; + float: right; + text-align: right; + color: #7a7971; +} + +.sw5e.sheet.item .recharge span { + flex: 0 0 80px; +} +.sw5e.sheet.item .recharge label.checkbox { + flex: 0 0 80px; + text-align: right; +} +.sw5e.sheet.item .weapon-properties label.checkbox { + flex: 0 0 98px; +} +.sw5e.sheet.item .loot-header { + margin-bottom: 10px; +} +.sw5e.sheet.item blockquote { + box-sizing: border-box; + font-family: 'Open Sans'; + margin-bottom: 1em; + padding: 5px 10px; + background-color: #bdc8cc; + border: 0px solid #0d99cc; + border-spacing: 0em; + border-image: none; + box-shadow: 0px 0px 20px rgba(13, 153, 204, 0.5); + border-top: 0.1em solid #0d99cc; + border-bottom: 0.1em solid #0d99cc; + border-left: 0.1em solid #0d99cc; + border-right: 0.1em solid #0d99cc; + color: #000000; + font-size: 1em; +} + +.sw5e.sheet.item blockquote h3 { + font-family: 'Russo One'; + color: #000000 !important; +} +/* ----------------------------------------- */ +/* Chat Cards +/* ----------------------------------------- */ +.sw5e.chat-card { + font-style: normal; + font-size: 12px; +} +.sw5e.chat-card .card-header { + padding: 3px 0; + border-top: 2px groove #FFF; + border-bottom: 2px groove #FFF; +} +.sw5e.chat-card .card-header img { + flex: 0 0 36px; + margin-right: 5px; +} +.sw5e.chat-card .card-header h3 { + flex: 1; + margin: 0; + line-height: 36px; + font-family: "Russo One"; + font-size: 10px; + color: #4b4a44; +} +.sw5e.chat-card .card-header h3:hover { + color: #111; + text-shadow: 0 0 10px red; +} +.sw5e.chat-card .card-content { + margin: 5px 0; +} +.sw5e.chat-card .card-content h3 { + font-size: 12px; + margin: 0; + font-weight: bold; +} +.sw5e.chat-card .card-content > * { + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; +} +.sw5e.chat-card .card-buttons { + margin: 5px 0; +} +.sw5e.chat-card .card-buttons span { + display: block; + line-height: 28px; + text-align: center; + border: 1px solid #CCC; +} +.sw5e.chat-card .card-buttons button { + font-size: 12px; + height: 24px; + line-height: 20px; + margin: 2px 0; +} +.sw5e.chat-card .card-footer { + padding: 3px 0 0; + border-top: 2px groove #FFF; +} +.sw5e.chat-card .card-footer span { + border-right: 2px groove #FFF; + padding: 0 3px 0 0; + font-size: 10px; +} +.sw5e.chat-card .card-footer span:last-child { + border-right: none; + padding-right: 0; +} +.dice-roll .dice-total.success { + color: inherit; + background: #c7d0c0; + border: 1px solid #006c00; +} +.dice-roll .dice-total.failure { + color: inherit; + background: #ffdddd; + border: 1px solid #6e0000; +} +.dice-roll .dice-total.critical { + color: green; +} +.dice-roll .dice-total.fumble { + color: red; +} +/* ----------------------------------------- */ +/* Basic Structure */ +/* ----------------------------------------- */ +.sw5e.sheet.actor.character { + min-width: 680px; + min-height: 736px; + /* ----------------------------------------- */ + /* Sheet Header */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Sheet Body */ + /* ----------------------------------------- */ + /* ----------------------------------------- */ + /* Inventory */ + /* ----------------------------------------- */ + /* Encumbrance Bar */ + /* ----------------------------------------- */ + /* Item Controls */ + /* ----------------------------------------- */ +} +.sw5e.sheet.actor.character .sheet-header img.profile { + flex: 0 0 180px; + max-width: 180px; + height: 180px; +} +.sw5e.sheet.actor.character .sheet-header .charlevel { + flex: 0 0 180px; + padding: 0 5px 2px; +} +.sw5e.sheet.actor.character .sheet-header .charlevel .level { + height: 28px; +} +.sw5e.sheet.actor.character .sheet-header .charlevel .experience input[type="text"] { + width: 100px; +} +.sw5e.sheet.actor.character .sheet-header .charlevel .xpbar { + width: 100%; + flex: 0 0 8px; + background: #666; + border: 1px solid #000; + border-radius: 3px; +} +.sw5e.sheet.actor.character .sheet-header .charlevel .xpbar .bar { + height: 4px; + margin: 1px; + display: block; + background: #afebff; + border: 1px solid #000; + border-radius: 2px; +} +.sw5e.sheet.actor.character .sheet-header .summary { + border-bottom: 2px groove #eeede0; +} +.sw5e.sheet.actor.character .sheet-header .attributes { + height: 80px; + margin: 0; +} +.sw5e.sheet.actor.character .sheet-header .attributes .attribute { + height: 80px; + margin: 0; + border: none; + border-right: 2px groove #eeede0; + border-radius: 0; +} +.sw5e.sheet.actor.character .sheet-header .attributes .attribute:last-child { + border-right: none; +} +.sw5e.sheet.actor.character .sheet-header .attributes .attribute .attribute-value { + margin: 5px 0 0; + height: 32px; + line-height: 32px; +} +.sw5e.sheet.actor.character .sheet-header .attributes .attribute .attribute-name { + margin-top: 6px; +} +.sw5e.sheet.actor.character .sheet-header .attributes .attribute .attribute-footer { + margin-bottom: 2px; +} +.sw5e.sheet.actor.character .sheet-header .attributes a.rest { + border: 1px solid #b5b3a4; + border-radius: 2px; + background: rgba(0, 0, 0, 0.05); + padding: 1px 3px; + margin: 0 6px; +} +.sw5e.sheet.actor.character .sheet-header .attributes .hit-dice { + font-size: 16px; +} +.sw5e.sheet.actor.character .attributes .resource .attribute-name { + margin: 0 8px; +} +.sw5e.sheet.actor.character .attributes .resource .attribute-name input[type="text"] { + height: 20px; + margin: 2px 0 -2px; + line-height: 24px; +} +.sw5e.sheet.actor.character .attributes .resource label.checkbox { + margin: 0 3px; +} +.sw5e.sheet.actor.character .attributes .resource label.checkbox input[type="checkbox"] { + transform: scale(1.2); +} +.sw5e.sheet.actor.character .attributes .initiative .attribute-footer input { + width: 32px; +} +.sw5e.sheet.actor.character ul.skills-list { + flex: 0 0 212px; +} +.sw5e.sheet.actor.character ul.skills-list li.skill { + padding: 3px; +} +.sw5e.sheet.actor.character ul.skills-list li.skill h4 { + flex: 1px; + margin: 0; + font-size: 13px; +} +.sw5e.sheet.actor.character .counters .death-saves { + flex: 2; +} +.sw5e.sheet.actor.character .counters .death-saves .counter-value { + flex: 0 0 90px; +} +.sw5e.sheet.actor.character .item-detail.player-class { + flex: 0 0 180px; + text-align: right; + padding-right: 10px; +} +.sw5e.sheet.actor.character .encumbrance { + flex: 0 0 12px; + background: #7a7971; + margin: 1px 15px 0 1px; + border: 1px solid #191813; + border-radius: 3px; + position: relative; +} +.sw5e.sheet.actor.character .encumbrance .encumbrance-bar { + position: absolute; + top: 1px; + left: 1px; + background: #6c8aa5; + height: 8px; + border: 1px solid #cde4ff; + border-radius: 2px; +} +.sw5e.sheet.actor.character .encumbrance .encumbrance-label { + height: 10px; + padding: 0 5px; + position: absolute; + top: 0; + right: 0; + font-size: 13px; + line-height: 12px; + text-align: right; + color: #EEE; + text-shadow: 0 0 5px #000; +} +.sw5e.sheet.actor.character .encumbrance .encumbrance-breakpoint { + display: block; + position: absolute; +} +.sw5e.sheet.actor.character .encumbrance .encumbrance-breakpoint.encumbrance-33 { + left: 33%; +} +.sw5e.sheet.actor.character .encumbrance .encumbrance-breakpoint.encumbrance-66 { + left: 66%; +} +.sw5e.sheet.actor.character .encumbrance .arrow-up { + bottom: 0; + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-bottom: 4px solid #666; +} +.sw5e.sheet.actor.character .encumbrance .arrow-down { + top: 0; + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 4px solid #666; +} +.sw5e.sheet.actor.character .encumbrance.encumbered .arrow-up { + border-bottom: 4px solid #000; +} +.sw5e.sheet.actor.character .encumbrance.encumbered .arrow-down { + border-top: 4px solid #000; +} +.sw5e.sheet.actor.character .inventory .item-controls, +.sw5e.sheet.actor.character .powerbook .item-controls { + flex: 0 0 68px; +} +.sw5e.sheet.actor.character .inventory .item-controls .item-toggle, +.sw5e.sheet.actor.character .powerbook .item-controls .item-toggle { + color: #b5b3a4; +} +.sw5e.sheet.actor.character .inventory .item-controls .item-toggle.active, +.sw5e.sheet.actor.character .powerbook .item-controls .item-toggle.active { + color: #4b4a44; +} +.sw5e.sheet.actor.character .inventory .item-controls .item-toggle.fixed, +.sw5e.sheet.actor.character .powerbook .item-controls .item-toggle.fixed { + color: #44191A; +} +.sw5e.sheet.actor.character .inventory .item-controls .item-toggle.fixed:hover, +.sw5e.sheet.actor.character .powerbook .item-controls .item-toggle.fixed:hover { + text-shadow: none; +} +/* ----------------------------------------- */ +/* Basic Structure */ +/* ----------------------------------------- */ +.sw5e.sheet.actor.npc { + min-width: 800px; + min-height: 658px; +} +/* ----------------------------------------- */ +/* Journal Entry +/* ----------------------------------------- */ +.journal-sheet .window-content { + padding: 0; + background: url("ui/parchment.webp") repeat; +} +.journal-sheet form { + overflow: hidden; + padding: 5px; + font-family: "Open Sans"; + background: url("ui/parchment.webp") repeat; +} +.journal-sheet form h2 { + font-family: "Russo One"; + font-size: 18px; + text-transform: uppercase; + color: #c40f0f; +} + +.journal-sheet form input[name="name"] { + height: 36px; + font-family: "Russo One"; + font-size: 24px; + text-transform: uppercase; + color: #c40f0f; + line-height: 36px; +} +.journal-sheet form select { + width: 100%; + height: 30px; + margin: 5px 0; +} +.journal-sheet form .editor { + height: calc(100% - 115px); +} +.journal-sheet form button[type="submit"] { + margin-top: 5px; +} +.journal-sheet form img { + border: none +} +.journal-sheet form table { + border: none; + background-color: none; +} +/* ---------------------------------------- */ +/* Roll Table Sheet */ +/* ---------------------------------------- */ +.roll-table-config .window-content { + background: url("ui/parchment.webp") repeat; +} +.roll-table-config form { + background: url("ui/parchment.webp") repeat; +} +.roll-table-config h1.name input { + width: 100%; + height: 36px; + margin: 0 0 5px; + font-family: "Russo One"; + font-size: 24px; + text-transform: uppercase; + color: #c40f0f; +} +.roll-table-config textarea { + resize: none; + min-height: 44px; + font-family: "Open Sans"; + background: url("ui/parchment.webp") repeat; +} +.roll-table-config ol.table-results { + list-style: none; + margin: 0; + padding: 0; + max-height: 600px; + overflow-y: auto; +} +.roll-table-config ol.table-results .table-result { + padding: 2px 0; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; +} +.roll-table-config ol.table-results .table-result input[type="text"] { + width: 100%; + height: 28px; +} +.roll-table-config ol.table-results .table-result > div { + line-height: 36px; + margin-right: 5px; +} +.roll-table-config ol.table-results .table-result .result-image { + flex: 0 0 36px; + width: 36px; + height: 36px; + text-align: center; + margin: 0; +} +.roll-table-config ol.table-results .table-result .result-image img { + border: none; + object-fit: cover; + object-position: 50% 0; +} +.roll-table-config ol.table-results .table-result .result-type { + flex: 0 0 110px; +} +.roll-table-config ol.table-results .table-result .result-details { + flex: 1; +} +.roll-table-config ol.table-results .table-result .result-details select { + width: 40%; +} +.roll-table-config ol.table-results .table-result .result-details .result-target { + width: 58%; + margin-left: 3px; +} +.roll-table-config ol.table-results .table-result .result-weight { + flex: 0 0 50px; + text-align: center; +} +.roll-table-config ol.table-results .table-result .result-range { + flex: 0 0 92px; + text-align: center; +} +.roll-table-config ol.table-results .table-result .result-range input { + width: 36px; +} +.roll-table-config ol.table-results .table-result .result-controls { + flex: 0 0 40px; + margin: 0; + text-align: center; +} +.roll-table-config ol.table-results .table-result .result-controls a { + width: 20px; +} +.roll-table-config ol.table-results .table-result .result-controls .lock-result { + color: #b5b3a4; +} +.roll-table-config ol.table-results .table-result.roulette { + background: url("ui/parchment.webp") repeat; + border-top: 1px solid #000; + border-bottom: 1px solid #000; +} +.roll-table-config ol.table-results .table-result.drawn { + background: rgba(0, 0, 0, 0.15); +} +.roll-table-config ol.table-results .table-result.drawn .lock-result { + color: #111; +} +.roll-table-config ol.table-results .table-header { + background: url("ui/parchment.webp") repeat; + border: 1px solid #7a7971; + line-height: 24px; + font-weight: bold; +} +.icon:before { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + -webkit-font-smoothing: antialiased; +} +a.entity-link { + background: #DDD; + padding: 1px 4px; + border: 1px solid #4b4a44; + border-radius: 2px; + white-space: nowrap; + word-break: break-all; +} +a.entity-link i::before { + content: url("ui/jedi-order.svg") !important; + display: inline-block; + position: relative; + top: 2px; + height: 15px; + width: 15px; +} diff --git a/sw5e.js b/sw5e.js index 7c110d31..a8abd476 100644 --- a/sw5e.js +++ b/sw5e.js @@ -1,277 +1,279 @@ -/** - * The Star Wars 5th Edition game system for Foundry Virtual Tabletop - * Author: Kakeman89 - * Software License: GNU GPLv3 - * Content License: https://media.wizards.com/2016/downloads/SW5E/SRD-OGL_V5.1.pdf - * Repository: https://gitlab.com/foundrynet/sw5e - * Issue Tracker: https://gitlab.com/foundrynet/sw5e/issues - */ - -// Import Modules -import { SW5E } from "./module/config.js"; -import { registerSystemSettings } from "./module/settings.js"; -import { preloadHandlebarsTemplates } from "./module/templates.js"; -import { _getInitiativeFormula } from "./module/combat.js"; -import { measureDistances, getBarAttribute } from "./module/canvas.js"; - -// Import Entities -import Actor5e from "./module/actor/entity.js"; -import Item5e from "./module/item/entity.js"; - -// Import Applications -import AbilityTemplate from "./module/pixi/ability-template.js"; -import AbilityUseDialog from "./module/apps/ability-use-dialog.js"; -import ActorSheetFlags from "./module/apps/actor-flags.js"; -import ActorSheet5eCharacter from "./module/actor/sheets/oldSheets/character.js"; -import ActorSheet5eNPC from "./module/actor/sheets/oldSheets/npc.js"; -import ActorSheet5eVehicle from "./module/actor/sheets/oldSheets/vehicle.js"; -import ActorSheet5eCharacterNew from "./module/actor/sheets/newSheet/character.js"; -import ActorSheet5eNPCNew from "./module/actor/sheets/newSheet/npc.js"; -import ItemSheet5e from "./module/item/sheet.js"; -import ShortRestDialog from "./module/apps/short-rest.js"; -import TraitSelector from "./module/apps/trait-selector.js"; -import ActorMovementConfig from "./module/apps/movement-config.js"; -import ActorSensesConfig from "./module/apps/senses-config.js"; - -// Import Helpers -import * as chat from "./module/chat.js"; -import * as dice from "./module/dice.js"; -import * as macros from "./module/macros.js"; -import * as migrations from "./module/migration.js"; - -/* -------------------------------------------- */ -/* Foundry VTT Initialization */ -/* -------------------------------------------- */ - -Hooks.once("init", function() { - console.log(`SW5e | Initializing SW5E System\n${SW5E.ASCII}`); - - // Create a SW5E namespace within the game global - game.sw5e = { - applications: { - AbilityUseDialog, - ActorSheetFlags, - ActorSheet5eCharacter, - ActorSheet5eCharacterNew, - ActorSheet5eNPC, - ActorSheet5eNPCNew, - ActorSheet5eVehicle, - ItemSheet5e, - ShortRestDialog, - TraitSelector, - ActorMovementConfig - }, - canvas: { - AbilityTemplate - }, - config: SW5E, - dice: dice, - entities: { - Actor5e, - Item5e, - }, - macros: macros, - migrations: migrations, - rollItemMacro: macros.rollItemMacro - }; - - // Record Configuration Values - CONFIG.SW5E = SW5E; - CONFIG.Actor.entityClass = Actor5e; - CONFIG.Item.entityClass = Item5e; - CONFIG.time.roundTime = 6; - CONFIG.fontFamilies = [ - "Engli-Besh", - "Open Sans", - "Russo One" - ]; - - // 5e cone RAW should be 53.13 degrees - CONFIG.MeasuredTemplate.defaults.angle = 53.13; - - // Add DND5e namespace for module compatability - game.dnd5e = game.sw5e; - CONFIG.DND5E = CONFIG.SW5E; - - // Register System Settings - registerSystemSettings(); - - // Patch Core Functions - CONFIG.Combat.initiative.formula = "1d20 + @attributes.init.mod + @attributes.init.prof + @attributes.init.bonus"; - Combat.prototype._getInitiativeFormula = _getInitiativeFormula; - - // Register sheet application classes - Actors.unregisterSheet("core", ActorSheet); - Actors.registerSheet("sw5e", ActorSheet5eCharacterNew, { - types: ["character"], - makeDefault: true, - label: "SW5E.SheetClassCharacter" - }); - Actors.registerSheet("sw5e", ActorSheet5eCharacter, { - types: ["character"], - makeDefault: false, - label: "SW5E.SheetClassCharacterOld" - }); - Actors.registerSheet("sw5e", ActorSheet5eNPCNew, { - types: ["npc"], - makeDefault: true, - label: "SW5E.SheetClassNPC" - }); - Actors.registerSheet("sw5e", ActorSheet5eNPC, { - types: ["npc"], - makeDefault: false, - label: "SW5E.SheetClassNPCOld" - }); - Actors.registerSheet('sw5e', ActorSheet5eVehicle, { - types: ['vehicle'], - makeDefault: true, - label: "SW5E.SheetClassVehicle" - }); - Items.unregisterSheet("core", ItemSheet); - Items.registerSheet("sw5e", ItemSheet5e, { - types: ['weapon', 'equipment', 'consumable', 'tool', 'loot', 'class', 'power', 'feat', 'species', 'backpack', 'archetype', 'classfeature', 'background', 'fightingmastery', 'fightingstyle', 'lightsaberform'], - makeDefault: true, - label: "SW5E.SheetClassItem" - }); - - // Preload Handlebars Templates - preloadHandlebarsTemplates(); -}); - - -/* -------------------------------------------- */ -/* Foundry VTT Setup */ -/* -------------------------------------------- */ - -/** - * This function runs after game data has been requested and loaded from the servers, so entities exist - */ -Hooks.once("setup", function() { - - // Localize CONFIG objects once up-front - const toLocalize = [ - "abilities", "abilityAbbreviations", "abilityActivationTypes", "abilityConsumptionTypes", "actorSizes", "alignments", - "armorProficiencies", "armorPropertiesTypes", "conditionTypes", "consumableTypes", "cover", "currencies", "damageResistanceTypes", - "damageTypes", "distanceUnits", "equipmentTypes", "healingTypes", "itemActionTypes", "languages", - "limitedUsePeriods", "movementTypes", "movementUnits", "polymorphSettings", "proficiencyLevels", "senses", "skills", - "powerComponents", "powerLevels", "powerPreparationModes", "powerScalingModes", "powerSchools", "targetTypes", - "timePeriods", "toolProficiencies", "weaponProficiencies", "weaponProperties", "weaponTypes" - ]; - - // Exclude some from sorting where the default order matters - const noSort = [ - "abilities", "alignments", "currencies", "distanceUnits", "movementUnits", "itemActionTypes", "proficiencyLevels", - "limitedUsePeriods", "powerComponents", "powerLevels", "powerPreparationModes", "weaponTypes" - ]; - - // Localize and sort CONFIG objects - for ( let o of toLocalize ) { - const localized = Object.entries(CONFIG.SW5E[o]).map(e => { - return [e[0], game.i18n.localize(e[1])]; - }); - if ( !noSort.includes(o) ) localized.sort((a, b) => a[1].localeCompare(b[1])); - CONFIG.SW5E[o] = localized.reduce((obj, e) => { - obj[e[0]] = e[1]; - return obj; - }, {}); - } - // add DND5E translation for module compatability - game.i18n.translations.DND5E = game.i18n.translations.SW5E; - // console.log(game.settings.get("sw5e", "colorTheme")); - let theme = game.settings.get("sw5e", "colorTheme") + '-theme'; - document.body.classList.add(theme); -}); - -/* -------------------------------------------- */ - -/** - * Once the entire VTT framework is initialized, check to see if we should perform a data migration - */ -Hooks.once("ready", function() { - - // Wait to register hotbar drop hook on ready so that modules could register earlier if they want to - Hooks.on("hotbarDrop", (bar, data, slot) => macros.create5eMacro(data, slot)); - - // Determine whether a system migration is required and feasible - if ( !game.user.isGM ) return; - const currentVersion = game.settings.get("sw5e", "systemMigrationVersion"); - const NEEDS_MIGRATION_VERSION = "1.2.1"; - const COMPATIBLE_MIGRATION_VERSION = 0.80; - const needsMigration = currentVersion && isNewerVersion(NEEDS_MIGRATION_VERSION, currentVersion); - if ( !needsMigration ) return; - - // Perform the migration - if ( currentVersion && isNewerVersion(COMPATIBLE_MIGRATION_VERSION, currentVersion) ) { - const warning = `Your SW5e system data is from too old a Foundry version and cannot be reliably migrated to the latest version. The process will be attempted, but errors may occur.`; - ui.notifications.error(warning, {permanent: true}); - } - migrations.migrateWorld(); -}); - -/* -------------------------------------------- */ -/* Canvas Initialization */ -/* -------------------------------------------- */ - -Hooks.on("canvasInit", function() { - - // Extend Diagonal Measurement - canvas.grid.diagonalRule = game.settings.get("sw5e", "diagonalMovement"); - SquareGrid.prototype.measureDistances = measureDistances; - - // Extend Token Resource Bars - Token.prototype.getBarAttribute = getBarAttribute; -}); - - -/* -------------------------------------------- */ -/* Other Hooks */ -/* -------------------------------------------- */ - -Hooks.on("renderChatMessage", (app, html, data) => { - - // Display action buttons - chat.displayChatActionButtons(app, html, data); - - // Highlight critical success or failure die - chat.highlightCriticalSuccessFailure(app, html, data); - - // Optionally collapse the content - if (game.settings.get("sw5e", "autoCollapseItemCards")) html.find(".card-content").hide(); -}); -Hooks.on("getChatLogEntryContext", chat.addChatMessageContextOptions); -Hooks.on("renderChatLog", (app, html, data) => Item5e.chatListeners(html)); -Hooks.on("renderChatPopout", (app, html, data) => Item5e.chatListeners(html)); -Hooks.on('getActorDirectoryEntryContext', Actor5e.addDirectoryContextOptions); -Hooks.on("renderSceneDirectory", (app, html, data)=> { - //console.log(html.find("header.folder-header")); - setFolderBackground(html); -}); -Hooks.on("renderActorDirectory", (app, html, data)=> { - setFolderBackground(html); -}); -Hooks.on("renderItemDirectory", (app, html, data)=> { - setFolderBackground(html); -}); -Hooks.on("renderJournalDirectory", (app, html, data)=> { - setFolderBackground(html); -}); -Hooks.on("renderRollTableDirectory", (app, html, data)=> { - setFolderBackground(html); -}); -Hooks.on("ActorSheet5eCharacterNew", (app, html, data) => { - console.log("renderSwaltSheet"); -}); -// TODO I should remove this -Handlebars.registerHelper('getProperty', function (data, property) { - return getProperty(data, property); -}); - - -function setFolderBackground(html) { - html.find("header.folder-header").each(function() { - let bgColor = $(this).css("background-color"); - if(bgColor == undefined) - bgColor = "rgb(255,255,255)"; - $(this).closest('li').css("background-color", bgColor); - }) +/** + * The Star Wars 5th Edition game system for Foundry Virtual Tabletop + * Author: Kakeman89 + * Software License: GNU GPLv3 + * Content License: https://media.wizards.com/2016/downloads/SW5E/SRD-OGL_V5.1.pdf + * Repository: https://gitlab.com/foundrynet/sw5e + * Issue Tracker: https://gitlab.com/foundrynet/sw5e/issues + */ + +// Import Modules +import { SW5E } from "./module/config.js"; +import { registerSystemSettings } from "./module/settings.js"; +import { preloadHandlebarsTemplates } from "./module/templates.js"; +import { _getInitiativeFormula } from "./module/combat.js"; +import { measureDistances, getBarAttribute } from "./module/canvas.js"; + +// Import Entities +import Actor5e from "./module/actor/entity.js"; +import Item5e from "./module/item/entity.js"; +import CharacterImporter from "./module/characterImporter.js"; + +// Import Applications +import AbilityTemplate from "./module/pixi/ability-template.js"; +import AbilityUseDialog from "./module/apps/ability-use-dialog.js"; +import ActorSheetFlags from "./module/apps/actor-flags.js"; +import ActorSheet5eCharacter from "./module/actor/sheets/oldSheets/character.js"; +import ActorSheet5eNPC from "./module/actor/sheets/oldSheets/npc.js"; +import ActorSheet5eVehicle from "./module/actor/sheets/oldSheets/vehicle.js"; +import ActorSheet5eCharacterNew from "./module/actor/sheets/newSheet/character.js"; +import ActorSheet5eNPCNew from "./module/actor/sheets/newSheet/npc.js"; +import ItemSheet5e from "./module/item/sheet.js"; +import ShortRestDialog from "./module/apps/short-rest.js"; +import TraitSelector from "./module/apps/trait-selector.js"; +import ActorMovementConfig from "./module/apps/movement-config.js"; +import ActorSensesConfig from "./module/apps/senses-config.js"; + +// Import Helpers +import * as chat from "./module/chat.js"; +import * as dice from "./module/dice.js"; +import * as macros from "./module/macros.js"; +import * as migrations from "./module/migration.js"; + +/* -------------------------------------------- */ +/* Foundry VTT Initialization */ +/* -------------------------------------------- */ + +Hooks.once("init", function() { + console.log(`SW5e | Initializing SW5E System\n${SW5E.ASCII}`); + + // Create a SW5E namespace within the game global + game.sw5e = { + applications: { + AbilityUseDialog, + ActorSheetFlags, + ActorSheet5eCharacter, + ActorSheet5eCharacterNew, + ActorSheet5eNPC, + ActorSheet5eNPCNew, + ActorSheet5eVehicle, + ItemSheet5e, + ShortRestDialog, + TraitSelector, + ActorMovementConfig + }, + canvas: { + AbilityTemplate + }, + config: SW5E, + dice: dice, + entities: { + Actor5e, + Item5e, + }, + macros: macros, + migrations: migrations, + rollItemMacro: macros.rollItemMacro + }; + + // Record Configuration Values + CONFIG.SW5E = SW5E; + CONFIG.Actor.entityClass = Actor5e; + CONFIG.Item.entityClass = Item5e; + CONFIG.time.roundTime = 6; + CONFIG.fontFamilies = [ + "Engli-Besh", + "Open Sans", + "Russo One" + ]; + + // 5e cone RAW should be 53.13 degrees + CONFIG.MeasuredTemplate.defaults.angle = 53.13; + + // Add DND5e namespace for module compatability + game.dnd5e = game.sw5e; + CONFIG.DND5E = CONFIG.SW5E; + + // Register System Settings + registerSystemSettings(); + + // Patch Core Functions + CONFIG.Combat.initiative.formula = "1d20 + @attributes.init.mod + @attributes.init.prof + @attributes.init.bonus"; + Combat.prototype._getInitiativeFormula = _getInitiativeFormula; + + // Register sheet application classes + Actors.unregisterSheet("core", ActorSheet); + Actors.registerSheet("sw5e", ActorSheet5eCharacterNew, { + types: ["character"], + makeDefault: true, + label: "SW5E.SheetClassCharacter" + }); + Actors.registerSheet("sw5e", ActorSheet5eCharacter, { + types: ["character"], + makeDefault: false, + label: "SW5E.SheetClassCharacterOld" + }); + Actors.registerSheet("sw5e", ActorSheet5eNPCNew, { + types: ["npc"], + makeDefault: true, + label: "SW5E.SheetClassNPC" + }); + Actors.registerSheet("sw5e", ActorSheet5eNPC, { + types: ["npc"], + makeDefault: false, + label: "SW5E.SheetClassNPCOld" + }); + Actors.registerSheet('sw5e', ActorSheet5eVehicle, { + types: ['vehicle'], + makeDefault: true, + label: "SW5E.SheetClassVehicle" + }); + Items.unregisterSheet("core", ItemSheet); + Items.registerSheet("sw5e", ItemSheet5e, { + types: ['weapon', 'equipment', 'consumable', 'tool', 'loot', 'class', 'power', 'feat', 'species', 'backpack', 'archetype', 'classfeature', 'background', 'fightingmastery', 'fightingstyle', 'lightsaberform'], + makeDefault: true, + label: "SW5E.SheetClassItem" + }); + + // Preload Handlebars Templates + preloadHandlebarsTemplates(); +}); + + +/* -------------------------------------------- */ +/* Foundry VTT Setup */ +/* -------------------------------------------- */ + +/** + * This function runs after game data has been requested and loaded from the servers, so entities exist + */ +Hooks.once("setup", function() { + + // Localize CONFIG objects once up-front + const toLocalize = [ + "abilities", "abilityAbbreviations", "abilityActivationTypes", "abilityConsumptionTypes", "actorSizes", "alignments", + "armorProficiencies", "armorPropertiesTypes", "conditionTypes", "consumableTypes", "cover", "currencies", "damageResistanceTypes", + "damageTypes", "distanceUnits", "equipmentTypes", "healingTypes", "itemActionTypes", "languages", + "limitedUsePeriods", "movementTypes", "movementUnits", "polymorphSettings", "proficiencyLevels", "senses", "skills", + "powerComponents", "powerLevels", "powerPreparationModes", "powerScalingModes", "powerSchools", "targetTypes", + "timePeriods", "toolProficiencies", "weaponProficiencies", "weaponProperties", "weaponTypes" + ]; + + // Exclude some from sorting where the default order matters + const noSort = [ + "abilities", "alignments", "currencies", "distanceUnits", "movementUnits", "itemActionTypes", "proficiencyLevels", + "limitedUsePeriods", "powerComponents", "powerLevels", "powerPreparationModes", "weaponTypes" + ]; + + // Localize and sort CONFIG objects + for ( let o of toLocalize ) { + const localized = Object.entries(CONFIG.SW5E[o]).map(e => { + return [e[0], game.i18n.localize(e[1])]; + }); + if ( !noSort.includes(o) ) localized.sort((a, b) => a[1].localeCompare(b[1])); + CONFIG.SW5E[o] = localized.reduce((obj, e) => { + obj[e[0]] = e[1]; + return obj; + }, {}); + } + // add DND5E translation for module compatability + game.i18n.translations.DND5E = game.i18n.translations.SW5E; + // console.log(game.settings.get("sw5e", "colorTheme")); + let theme = game.settings.get("sw5e", "colorTheme") + '-theme'; + document.body.classList.add(theme); +}); + +/* -------------------------------------------- */ + +/** + * Once the entire VTT framework is initialized, check to see if we should perform a data migration + */ +Hooks.once("ready", function() { + + // Wait to register hotbar drop hook on ready so that modules could register earlier if they want to + Hooks.on("hotbarDrop", (bar, data, slot) => macros.create5eMacro(data, slot)); + + // Determine whether a system migration is required and feasible + if ( !game.user.isGM ) return; + const currentVersion = game.settings.get("sw5e", "systemMigrationVersion"); + const NEEDS_MIGRATION_VERSION = "1.2.1"; + const COMPATIBLE_MIGRATION_VERSION = 0.80; + const needsMigration = currentVersion && isNewerVersion(NEEDS_MIGRATION_VERSION, currentVersion); + if ( !needsMigration ) return; + + // Perform the migration + if ( currentVersion && isNewerVersion(COMPATIBLE_MIGRATION_VERSION, currentVersion) ) { + const warning = `Your SW5e system data is from too old a Foundry version and cannot be reliably migrated to the latest version. The process will be attempted, but errors may occur.`; + ui.notifications.error(warning, {permanent: true}); + } + migrations.migrateWorld(); +}); + +/* -------------------------------------------- */ +/* Canvas Initialization */ +/* -------------------------------------------- */ + +Hooks.on("canvasInit", function() { + + // Extend Diagonal Measurement + canvas.grid.diagonalRule = game.settings.get("sw5e", "diagonalMovement"); + SquareGrid.prototype.measureDistances = measureDistances; + + // Extend Token Resource Bars + Token.prototype.getBarAttribute = getBarAttribute; +}); + + +/* -------------------------------------------- */ +/* Other Hooks */ +/* -------------------------------------------- */ + +Hooks.on("renderChatMessage", (app, html, data) => { + + // Display action buttons + chat.displayChatActionButtons(app, html, data); + + // Highlight critical success or failure die + chat.highlightCriticalSuccessFailure(app, html, data); + + // Optionally collapse the content + if (game.settings.get("sw5e", "autoCollapseItemCards")) html.find(".card-content").hide(); +}); +Hooks.on("getChatLogEntryContext", chat.addChatMessageContextOptions); +Hooks.on("renderChatLog", (app, html, data) => Item5e.chatListeners(html)); +Hooks.on("renderChatPopout", (app, html, data) => Item5e.chatListeners(html)); +Hooks.on('getActorDirectoryEntryContext', Actor5e.addDirectoryContextOptions); +Hooks.on("renderSceneDirectory", (app, html, data)=> { + //console.log(html.find("header.folder-header")); + setFolderBackground(html); +}); +Hooks.on("renderActorDirectory", (app, html, data)=> { + setFolderBackground(html); + CharacterImporter.addImportButton(html); +}); +Hooks.on("renderItemDirectory", (app, html, data)=> { + setFolderBackground(html); +}); +Hooks.on("renderJournalDirectory", (app, html, data)=> { + setFolderBackground(html); +}); +Hooks.on("renderRollTableDirectory", (app, html, data)=> { + setFolderBackground(html); +}); +Hooks.on("ActorSheet5eCharacterNew", (app, html, data) => { + console.log("renderSwaltSheet"); +}); +// TODO I should remove this +Handlebars.registerHelper('getProperty', function (data, property) { + return getProperty(data, property); +}); + + +function setFolderBackground(html) { + html.find("header.folder-header").each(function() { + let bgColor = $(this).css("background-color"); + if(bgColor == undefined) + bgColor = "rgb(255,255,255)"; + $(this).closest('li').css("background-color", bgColor); + }) } \ No newline at end of file diff --git a/templates/actors/newActor/parts/swalt-biography.html b/templates/actors/newActor/parts/swalt-biography.html index 8546d812..4330cc7e 100644 --- a/templates/actors/newActor/parts/swalt-biography.html +++ b/templates/actors/newActor/parts/swalt-biography.html @@ -1,22 +1,22 @@ -
-

Personality Traits

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

Ideals

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

Bonds

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

Flaws

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

Description

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

Background

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

Personality Traits

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

Ideals

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

Bonds

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

Flaws

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

Description

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

Background

+ {{editor content=data.details.biography.value target="data.details.biography.value" button=true owner=owner editable=editable}} +
\ No newline at end of file diff --git a/templates/actors/newActor/parts/swalt-notes.html b/templates/actors/newActor/parts/swalt-notes.html index 0ffe27df..1ba8f7af 100644 --- a/templates/actors/newActor/parts/swalt-notes.html +++ b/templates/actors/newActor/parts/swalt-notes.html @@ -1,33 +1,33 @@ -
-
- - - {{editor content=data.details.notes.value target="data.details.notes.value" button=true owner=owner editable=editable}} -
-
- - {{editor content=data.details.notes1.value target="data.details.notes1.value" button=true owner=owner editable=editable}} -
- -
- - {{editor content=data.details.notes2.value target="data.details.notes2.value" button=true owner=owner editable=editable}} -
- -
- - {{editor content=data.details.notes3.value target="data.details.notes3.value" button=true owner=owner editable=editable}} -
- -
- - {{editor content=data.details.notes4.value target="data.details.notes4.value" button=true owner=owner editable=editable}} -
- - +
+
+ + + {{editor content=data.details.notes.value target="data.details.notes.value" button=true owner=owner editable=editable}} +
+
+ + {{editor content=data.details.notes1.value target="data.details.notes1.value" button=true owner=owner editable=editable}} +
+ +
+ + {{editor content=data.details.notes2.value target="data.details.notes2.value" button=true owner=owner editable=editable}} +
+ +
+ + {{editor content=data.details.notes3.value target="data.details.notes3.value" button=true owner=owner editable=editable}} +
+ +
+ + {{editor content=data.details.notes4.value target="data.details.notes4.value" button=true owner=owner editable=editable}} +
+ +
\ No newline at end of file diff --git a/templates/app-window.html b/templates/app-window.html index 23d749c4..c7cff7a8 100644 --- a/templates/app-window.html +++ b/templates/app-window.html @@ -1,11 +1,11 @@ -
-
-

{{title}}

- {{#each headerButtons}} - - {{/each}} -
- -
-
+
+
+

{{title}}

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