Merge pull request #128 from ellimist25/character-sheet-importer

sw5e.com character importer v1
This commit is contained in:
CK 2021-01-26 09:30:01 -05:00 committed by GitHub
commit 91fa36e19b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
22 changed files with 5850 additions and 5727 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

View file

@ -1,146 +1,146 @@
//override Primary Red //override Primary Red
@colorRed: #E81111; @colorRed: #E81111;
@colorDarkBg: #2b2b2b; @colorDarkBg: #2b2b2b;
//Background //Background
@primaryBackground: linear-gradient(90deg,#626262 0,#4d4d4d 30%,#4d4d4d 70%,#626262); @primaryBackground: linear-gradient(90deg,#626262 0,#4d4d4d 30%,#4d4d4d 70%,#626262);
//Typography //Typography
@headingColor: @colorRed; @headingColor: @colorRed;
@headerBorderColor: @colorBlue; @headerBorderColor: @colorBlue;
@bodyFontColor: white; @bodyFontColor: white;
@linkColor: @colorRed; @linkColor: @colorRed;
@linkSecondaryColor: @colorPaleGray; @linkSecondaryColor: @colorPaleGray;
@blockquoteBackground: @colorPaleRed; @blockquoteBackground: @colorPaleRed;
@blockquoteBorder: @colorRed; @blockquoteBorder: @colorRed;
@blockquoteShadow: 0 0 20px rgba(@colorRed, 0.8); @blockquoteShadow: 0 0 20px rgba(@colorRed, 0.8);
//forms //forms
@inputBackgroundColor: @colorDarkGray; @inputBackgroundColor: @colorDarkGray;
@inputBorderNormal: @colorLightGray; @inputBorderNormal: @colorLightGray;
@inputBorderHover: @colorGray; @inputBorderHover: @colorGray;
@inputBorderFocus: @colorRed; @inputBorderFocus: @colorRed;
@inputTextColor: white; @inputTextColor: white;
@buttonBackground: @colorRed; @buttonBackground: @colorRed;
@buttonTextColor: white; @buttonTextColor: white;
@buttonHoverBackground: lighten(@colorRed, 5); @buttonHoverBackground: lighten(@colorRed, 5);
@buttonSecondaryBackground: @colorLightGray; @buttonSecondaryBackground: @colorLightGray;
@buttonSecondaryTextColor: white; @buttonSecondaryTextColor: white;
@buttonSecondaryHoverBackground: lighten(@colorLightGray, 5); @buttonSecondaryHoverBackground: lighten(@colorLightGray, 5);
//other bits //other bits
@hrColor: @colorBlue; @hrColor: @colorBlue;
@tableTextColor: white; @tableTextColor: white;
@tableHeaderTextColor: @colorPaleGray; @tableHeaderTextColor: @colorPaleGray;
@tableBackground: @colorGray; @tableBackground: @colorGray;
@tableRowHoverBackground: lighten(@colorLightGray, 10); @tableRowHoverBackground: lighten(@colorLightGray, 10);
@tableRowBorderColor: @colorLightGray; @tableRowBorderColor: @colorLightGray;
//universalColors //universalColors
@windowHeaderBackground: @colorDarkBg; @windowHeaderBackground: @colorDarkBg;
@windowHeaderLinkColor: @colorRed; @windowHeaderLinkColor: @colorRed;
//Sidebar //Sidebar
@sidebarTabBackground: @windowHeaderBackground; @sidebarTabBackground: @windowHeaderBackground;
@sidebarTabLinkColor: @windowHeaderLinkColor; @sidebarTabLinkColor: @windowHeaderLinkColor;
@sidebarTabLinkUnderline: @colorRed; @sidebarTabLinkUnderline: @colorRed;
@chatBackground: @colorDarkGray; @chatBackground: @colorDarkGray;
@chatHeaderColor: @colorRed; @chatHeaderColor: @colorRed;
@chatHeaderBottomBorderColor: @colorBlue; @chatHeaderBottomBorderColor: @colorBlue;
@chatNotificationColor: @colorBlue; @chatNotificationColor: @colorBlue;
@cardButtonBorder: @colorLightGray; @cardButtonBorder: @colorLightGray;
@cardFooterBorder: @colorLightBlue; @cardFooterBorder: @colorLightBlue;
@cardFooterSeparator: @colorPaleGray; @cardFooterSeparator: @colorPaleGray;
@diceFormulaBackground: @colorGray; @diceFormulaBackground: @colorGray;
@diceFormualColor: white; @diceFormualColor: white;
@diceTotalBackground: @colorPaleRed; @diceTotalBackground: @colorPaleRed;
@diceTotalBorder: @colorRed; @diceTotalBorder: @colorRed;
@diceTotalShadow: @colorRed; @diceTotalShadow: @colorRed;
@diceSuccessColor: @colorGreen; @diceSuccessColor: @colorGreen;
@diceFailureColor: @colorRed; @diceFailureColor: @colorRed;
@diceCriticalBackground: @colorPaleGreen; @diceCriticalBackground: @colorPaleGreen;
@diceCriticalColor: @colorGreen; @diceCriticalColor: @colorGreen;
@diceFumbleBackground: @colorPaleRed; @diceFumbleBackground: @colorPaleRed;
@diceFumbleColor: @colorRed; @diceFumbleColor: @colorRed;
@altRowBackground: @colorGray; @altRowBackground: @colorGray;
@combatRoundColor: @colorRed; @combatRoundColor: @colorRed;
@combatRoundBorder: @colorBlue; @combatRoundBorder: @colorBlue;
@combatCombatantControlColor: @colorPaleGray; @combatCombatantControlColor: @colorPaleGray;
@combatCombatantControlColorActive: @colorRed; @combatCombatantControlColorActive: @colorRed;
@combatActiveCombatantColor: @colorBlue; @combatActiveCombatantColor: @colorBlue;
@combatTokenResourceColor: white; @combatTokenResourceColor: white;
@combatTokenResouceBorder: @colorLightGray; @combatTokenResouceBorder: @colorLightGray;
@combatControlsBorder: @colorBlue; @combatControlsBorder: @colorBlue;
@folderSearchIconColor: @colorBlue; @folderSearchIconColor: @colorBlue;
@folderSubdirectoryBackground: @colorDarkBg; @folderSubdirectoryBackground: @colorDarkBg;
@folderSubdirectoryBorder: @colorLightGray; @folderSubdirectoryBorder: @colorLightGray;
@directoryListItemBorder: @colorBlue; @directoryListItemBorder: @colorBlue;
@folderHeaderBackground: @colorDarkBg; @folderHeaderBackground: @colorDarkBg;
@folderHeaderColor: white; @folderHeaderColor: white;
@folderIconColor: @colorBlue; @folderIconColor: @colorBlue;
@entityBackgroundColor: @colorDarkBg; @entityBackgroundColor: @colorDarkBg;
@entityNameColor: @colorBlack; @entityNameColor: @colorBlack;
@sceneBorderColor: @colorBlue; @sceneBorderColor: @colorBlue;
@sceneBackgroundColor: @colorDarkBg; @sceneBackgroundColor: @colorDarkBg;
@playlistBackgroundColor: @colorDarkBg; @playlistBackgroundColor: @colorDarkBg;
@playlistHeaderBorder: @colorBlue; @playlistHeaderBorder: @colorBlue;
@playlistSoundColor: @colorBlack; @playlistSoundColor: @colorBlack;
@compendiumEntityBackground: @colorDarkBg; @compendiumEntityBackground: @colorDarkBg;
@compendiumStatusIcon: @colorLightGray; @compendiumStatusIcon: @colorLightGray;
@foundryNavBgColor: rgba(@colorLightBlue, 0.4); @foundryNavBgColor: rgba(@colorLightBlue, 0.4);
@foundryNavTextColor: white; @foundryNavTextColor: white;
@foundryNavBorderColor: @colorBlue; @foundryNavBorderColor: @colorBlue;
@foundryNavBgColorGM: @colorBlue; @foundryNavBgColorGM: @colorBlue;
@foundryNavBorderColorGM: @colorPaleBlue; @foundryNavBorderColorGM: @colorPaleBlue;
@foundryNavSceneLinkColor: white; @foundryNavSceneLinkColor: white;
@foundryNavActiveBgColor: rgba(@colorRed, 0.6); @foundryNavActiveBgColor: rgba(@colorRed, 0.6);
@foundryNavActiveBorderColor: lighten(@colorRed, 20); @foundryNavActiveBorderColor: lighten(@colorRed, 20);
@foundryNavActiveGlow: darken(@colorRed, 20); @foundryNavActiveGlow: darken(@colorRed, 20);
@foundryNavContextShadow: darken(@colorBlue, 20); @foundryNavContextShadow: darken(@colorBlue, 20);
@foundryNavContextBorderColor: @colorBlue; @foundryNavContextBorderColor: @colorBlue;
@foundryPlayersArrowColor: @colorLightGray; @foundryPlayersArrowColor: @colorLightGray;
@actorPanelBgColor: white; @actorPanelBgColor: white;
@actorNameColor: @colorRed; @actorNameColor: @colorRed;
@actorXPBarBorder: @colorGray; @actorXPBarBorder: @colorGray;
@actorXPBarBackground: @colorPaleBlue; @actorXPBarBackground: @colorPaleBlue;
@actorXPBarColor: @colorBlue; @actorXPBarColor: @colorBlue;
@actorProficiencyTextColor: @colorGray; @actorProficiencyTextColor: @colorGray;
@actorAttributeInputColor: @colorGray; @actorAttributeInputColor: @colorGray;
@actorSeparatorColor: @colorLightGray; @actorSeparatorColor: @colorLightGray;
@actorAttributeButtonBorder: @colorPaleGray; @actorAttributeButtonBorder: @colorPaleGray;
@actorAttributeButtonBorderHover: @colorRed; @actorAttributeButtonBorderHover: @colorRed;
@actorNavigationTabsColor: @colorGray; @actorNavigationTabsColor: @colorGray;
@actorNavigationTabsActiveColor: @colorRed; @actorNavigationTabsActiveColor: @colorRed;
@actorNavigationTabsHoverBgColor: rgba(@colorGray, 0.1); @actorNavigationTabsHoverBgColor: rgba(@colorGray, 0.1);
@actorNavigationTabsActiveHoverBgColor: rgba(@colorRed, 0.1); @actorNavigationTabsActiveHoverBgColor: rgba(@colorRed, 0.1);
@actorFilterBorderColor: @colorLightGray; @actorFilterBorderColor: @colorLightGray;
@actorFilterHoverColor: @colorRed; @actorFilterHoverColor: @colorRed;
@actorFilterActiveColor: @colorRed; @actorFilterActiveColor: @colorRed;
@actorGroupListHeaderBgColor: lighten(@colorPaleGray, 10); @actorGroupListHeaderBgColor: lighten(@colorPaleGray, 10);
@actorGroupListTitleBorderColor: @colorBlue; @actorGroupListTitleBorderColor: @colorBlue;
@actorGroupListColumnBorderColor: @colorPaleGray; @actorGroupListColumnBorderColor: @colorPaleGray;
@actorGroupListAltRowColor: lighten(@colorPaleGray, 10); @actorGroupListAltRowColor: lighten(@colorPaleGray, 10);
@actorItemRollableD20Color: @colorGray; @actorItemRollableD20Color: @colorGray;
@actorItemRollableD20HoverColor: @colorRed; @actorItemRollableD20HoverColor: @colorRed;
@actorItemControlToggleColor: @colorLightGray; @actorItemControlToggleColor: @colorLightGray;
@actorAbilityScoreColor: @colorGray; @actorAbilityScoreColor: @colorGray;
@actorAbilityBorderColor: @colorPaleGray; @actorAbilityBorderColor: @colorPaleGray;
@actorSkillsAltRowColor: lighten(@colorPaleGray, 10); @actorSkillsAltRowColor: lighten(@colorPaleGray, 10);
@actorEncumbranceLabelBackground: @colorPaleGray; @actorEncumbranceLabelBackground: @colorPaleGray;
@actorEncumbranceTextColor: @colorBlack; @actorEncumbranceTextColor: @colorBlack;
@actorEncumbranceBorderColor: @colorBlack; @actorEncumbranceBorderColor: @colorBlack;
@actorEncumbranceBarBgColor: @colorPaleBlue; @actorEncumbranceBarBgColor: @colorPaleBlue;
@actorEncumbranceBarColor: @colorBlue; @actorEncumbranceBarColor: @colorBlue;

View file

@ -1,143 +1,143 @@
//Background //Background
@primaryBackground: linear-gradient(90deg,#afc6d6 0,#d6d6d6 30%,#d6d6d6 70%,#afc6d6);// linear-gradient(90deg, @colorPaleBlue 0%, @colorPaleGray 30%, @colorPaleGray 70%, @colorPaleBlue); @primaryBackground: linear-gradient(90deg,#afc6d6 0,#d6d6d6 30%,#d6d6d6 70%,#afc6d6);// linear-gradient(90deg, @colorPaleBlue 0%, @colorPaleGray 30%, @colorPaleGray 70%, @colorPaleBlue);
//Typography //Typography
@headingColor: @colorRed; @headingColor: @colorRed;
@headerBorderColor: @colorBlue; @headerBorderColor: @colorBlue;
@bodyFontColor: @colorBlack; @bodyFontColor: @colorBlack;
@linkColor: @colorRed; @linkColor: @colorRed;
@linkSecondaryColor: @colorGray; @linkSecondaryColor: @colorGray;
@blockquoteBackground: @colorPaleBlue; @blockquoteBackground: @colorPaleBlue;
@blockquoteBorder: @colorBlue; @blockquoteBorder: @colorBlue;
@blockquoteShadow: 0 0 20px rgba(@colorBlue, 0.8); @blockquoteShadow: 0 0 20px rgba(@colorBlue, 0.8);
//forms //forms
@inputBackgroundColor: @colorGray; @inputBackgroundColor: @colorGray;
@inputBorderNormal: @colorLightGray; @inputBorderNormal: @colorLightGray;
@inputBorderHover: @colorGray; @inputBorderHover: @colorGray;
@inputBorderFocus: @colorRed; @inputBorderFocus: @colorRed;
@inputTextColor: @colorBlack; @inputTextColor: @colorBlack;
@buttonBackground: @colorRed; @buttonBackground: @colorRed;
@buttonTextColor: white; @buttonTextColor: white;
@buttonHoverBackground: lighten(@colorRed, 5); @buttonHoverBackground: lighten(@colorRed, 5);
@buttonSecondaryBackground: @colorPaleGray; @buttonSecondaryBackground: @colorPaleGray;
@buttonSecondaryTextColor: @colorBlack; @buttonSecondaryTextColor: @colorBlack;
@buttonSecondaryHoverBackground: lighten(@colorPaleGray, 5); @buttonSecondaryHoverBackground: lighten(@colorPaleGray, 5);
//other bits //other bits
@hrColor: @colorBlue; @hrColor: @colorBlue;
@tableTextColor: @colorBlack; @tableTextColor: @colorBlack;
@tableHeaderTextColor: @colorLightGray; @tableHeaderTextColor: @colorLightGray;
@tableBackground: white; @tableBackground: white;
@tableRowHoverBackground: lighten(@colorPaleGray, 10); @tableRowHoverBackground: lighten(@colorPaleGray, 10);
@tableRowBorderColor: @colorPaleGray; @tableRowBorderColor: @colorPaleGray;
//universalColors //universalColors
@windowHeaderBackground: white; @windowHeaderBackground: white;
@windowHeaderLinkColor: @colorRed; @windowHeaderLinkColor: @colorRed;
//Sidebar //Sidebar
@sidebarTabBackground: @windowHeaderBackground; @sidebarTabBackground: @windowHeaderBackground;
@sidebarTabLinkColor: @windowHeaderLinkColor; @sidebarTabLinkColor: @windowHeaderLinkColor;
@sidebarTabLinkUnderline: @colorRed; @sidebarTabLinkUnderline: @colorRed;
@chatBackground: white; @chatBackground: white;
@chatHeaderColor: @colorRed; @chatHeaderColor: @colorRed;
@chatHeaderBottomBorderColor: @colorBlue; @chatHeaderBottomBorderColor: @colorBlue;
@chatNotificationColor: @colorBlue; @chatNotificationColor: @colorBlue;
@cardButtonBorder: @colorLightGray; @cardButtonBorder: @colorLightGray;
@cardFooterBorder: @colorLightBlue; @cardFooterBorder: @colorLightBlue;
@cardFooterSeparator: @colorPaleGray; @cardFooterSeparator: @colorPaleGray;
@diceFormulaBackground: @colorPaleGray; @diceFormulaBackground: @colorPaleGray;
@diceFormualColor: @colorBlack; @diceFormualColor: @colorBlack;
@diceTotalBackground: @colorPaleBlue; @diceTotalBackground: @colorPaleBlue;
@diceTotalBorder: @colorBlue; @diceTotalBorder: @colorBlue;
@diceTotalShadow: @colorBlue; @diceTotalShadow: @colorBlue;
@diceSuccessColor: @colorGreen; @diceSuccessColor: @colorGreen;
@diceFailureColor: @colorRed; @diceFailureColor: @colorRed;
@diceCriticalBackground: @colorPaleGreen; @diceCriticalBackground: @colorPaleGreen;
@diceCriticalColor: @colorGreen; @diceCriticalColor: @colorGreen;
@diceFumbleBackground: @colorPaleRed; @diceFumbleBackground: @colorPaleRed;
@diceFumbleColor: @colorRed; @diceFumbleColor: @colorRed;
@altRowBackground: @colorPaleBlue; @altRowBackground: @colorPaleBlue;
@combatRoundColor: @colorRed; @combatRoundColor: @colorRed;
@combatRoundBorder: @colorBlue; @combatRoundBorder: @colorBlue;
@combatCombatantControlColor: @colorLightGray; @combatCombatantControlColor: @colorLightGray;
@combatCombatantControlColorActive: @colorDarkGray; @combatCombatantControlColorActive: @colorDarkGray;
@combatActiveCombatantColor: @colorBlue; @combatActiveCombatantColor: @colorBlue;
@combatTokenResourceColor: @colorGray; @combatTokenResourceColor: @colorGray;
@combatTokenResouceBorder: @colorLightGray; @combatTokenResouceBorder: @colorLightGray;
@combatControlsBorder: @colorBlue; @combatControlsBorder: @colorBlue;
@folderSearchIconColor: @colorBlue; @folderSearchIconColor: @colorBlue;
@folderSubdirectoryBackground: white; @folderSubdirectoryBackground: white;
@folderSubdirectoryBorder: @colorBlack; @folderSubdirectoryBorder: @colorBlack;
@directoryListItemBorder: @colorBlue; @directoryListItemBorder: @colorBlue;
@folderHeaderBackground: white; @folderHeaderBackground: white;
@folderHeaderColor: @colorBlack; @folderHeaderColor: @colorBlack;
@folderIconColor: @colorBlue; @folderIconColor: @colorBlue;
@entityBackgroundColor: white; @entityBackgroundColor: white;
@entityNameColor: @colorBlack; @entityNameColor: @colorBlack;
@sceneBorderColor: @colorBlue; @sceneBorderColor: @colorBlue;
@sceneBackgroundColor: white; @sceneBackgroundColor: white;
@playlistBackgroundColor: white; @playlistBackgroundColor: white;
@playlistHeaderBorder: @colorBlue; @playlistHeaderBorder: @colorBlue;
@playlistSoundColor: @colorBlack; @playlistSoundColor: @colorBlack;
@compendiumEntityBackground: white; @compendiumEntityBackground: white;
@compendiumStatusIcon: @colorLightGray; @compendiumStatusIcon: @colorLightGray;
@foundryNavBgColor: rgba(@colorLightBlue, 0.4); @foundryNavBgColor: rgba(@colorLightBlue, 0.4);
@foundryNavTextColor: white; @foundryNavTextColor: white;
@foundryNavBorderColor: @colorBlue; @foundryNavBorderColor: @colorBlue;
@foundryNavBgColorGM: @colorBlue; @foundryNavBgColorGM: @colorBlue;
@foundryNavBorderColorGM: @colorPaleBlue; @foundryNavBorderColorGM: @colorPaleBlue;
@foundryNavSceneLinkColor: white; @foundryNavSceneLinkColor: white;
@foundryNavActiveBgColor: rgba(@colorRed, 0.6); @foundryNavActiveBgColor: rgba(@colorRed, 0.6);
@foundryNavActiveBorderColor: lighten(@colorRed, 20); @foundryNavActiveBorderColor: lighten(@colorRed, 20);
@foundryNavActiveGlow: darken(@colorRed, 20); @foundryNavActiveGlow: darken(@colorRed, 20);
@foundryNavContextShadow: darken(@colorBlue, 20); @foundryNavContextShadow: darken(@colorBlue, 20);
@foundryNavContextBorderColor: @colorBlue; @foundryNavContextBorderColor: @colorBlue;
@foundryPlayersArrowColor: @colorLightGray; @foundryPlayersArrowColor: @colorLightGray;
@actorPanelBgColor: white; @actorPanelBgColor: white;
@actorNameColor: @colorRed; @actorNameColor: @colorRed;
@actorXPBarBorder: @colorGray; @actorXPBarBorder: @colorGray;
@actorXPBarBackground: @colorPaleBlue; @actorXPBarBackground: @colorPaleBlue;
@actorXPBarColor: @colorBlue; @actorXPBarColor: @colorBlue;
@actorProficiencyTextColor: @colorGray; @actorProficiencyTextColor: @colorGray;
@actorAttributeInputColor: @colorGray; @actorAttributeInputColor: @colorGray;
@actorSeparatorColor: @colorLightGray; @actorSeparatorColor: @colorLightGray;
@actorAttributeButtonBorder: @colorPaleGray; @actorAttributeButtonBorder: @colorPaleGray;
@actorAttributeButtonBorderHover: @colorRed; @actorAttributeButtonBorderHover: @colorRed;
@actorNavigationTabsColor: @colorGray; @actorNavigationTabsColor: @colorGray;
@actorNavigationTabsActiveColor: @colorRed; @actorNavigationTabsActiveColor: @colorRed;
@actorNavigationTabsHoverBgColor: rgba(@colorGray, 0.1); @actorNavigationTabsHoverBgColor: rgba(@colorGray, 0.1);
@actorNavigationTabsActiveHoverBgColor: rgba(@colorRed, 0.1); @actorNavigationTabsActiveHoverBgColor: rgba(@colorRed, 0.1);
@actorFilterBorderColor: @colorLightGray; @actorFilterBorderColor: @colorLightGray;
@actorFilterHoverColor: @colorRed; @actorFilterHoverColor: @colorRed;
@actorFilterActiveColor: @colorRed; @actorFilterActiveColor: @colorRed;
@actorGroupListHeaderBgColor: lighten(@colorPaleGray, 10); @actorGroupListHeaderBgColor: lighten(@colorPaleGray, 10);
@actorGroupListTitleBorderColor: @colorBlue; @actorGroupListTitleBorderColor: @colorBlue;
@actorGroupListColumnBorderColor: @colorPaleGray; @actorGroupListColumnBorderColor: @colorPaleGray;
@actorGroupListAltRowColor: lighten(@colorPaleGray, 10); @actorGroupListAltRowColor: lighten(@colorPaleGray, 10);
@actorItemRollableD20Color: @colorGray; @actorItemRollableD20Color: @colorGray;
@actorItemRollableD20HoverColor: @colorRed; @actorItemRollableD20HoverColor: @colorRed;
@actorItemControlToggleColor: @colorLightGray; @actorItemControlToggleColor: @colorLightGray;
@actorAbilityScoreColor: @colorGray; @actorAbilityScoreColor: @colorGray;
@actorAbilityBorderColor: @colorPaleGray; @actorAbilityBorderColor: @colorPaleGray;
@actorSkillsAltRowColor: lighten(@colorPaleGray, 10); @actorSkillsAltRowColor: lighten(@colorPaleGray, 10);
@actorEncumbranceLabelBackground: @colorPaleGray; @actorEncumbranceLabelBackground: @colorPaleGray;
@actorEncumbranceTextColor: @colorBlack; @actorEncumbranceTextColor: @colorBlack;
@actorEncumbranceBorderColor: @colorBlack; @actorEncumbranceBorderColor: @colorBlack;
@actorEncumbranceBarBgColor: @colorPaleBlue; @actorEncumbranceBarBgColor: @colorPaleBlue;
@actorEncumbranceBarColor: @colorBlue; @actorEncumbranceBarColor: @colorBlue;

File diff suppressed because it is too large Load diff

View file

@ -1,416 +1,416 @@
.panel { .panel {
background: @actorPanelBgColor; background: @actorPanelBgColor;
} }
.sw5e.sheet .window-content { .sw5e.sheet .window-content {
color: @colorBlack; color: @colorBlack;
background: linear-gradient(90deg,#afc6d6 0,#d6d6d6 30%,#d6d6d6 70%,#afc6d6); background: linear-gradient(90deg,#afc6d6 0,#d6d6d6 30%,#d6d6d6 70%,#afc6d6);
input, input,
select { select {
color: @colorBlack; color: @colorBlack;
&:hover { &:hover {
border-color: @inputBorderHover; border-color: @inputBorderHover;
} }
&:focus { &:focus {
border-color: @inputBorderFocus; border-color: @inputBorderFocus;
} }
} }
button { button {
&:hover, &:hover,
&:focus { &:focus {
border-color: @inputBorderFocus; border-color: @inputBorderFocus;
} }
} }
} }
.sw5e.sheet.actor { .sw5e.sheet.actor {
color: @colorBlack; color: @colorBlack;
input, select, textarea { input, select, textarea {
&:hover { &:hover {
border-color: @inputBorderFocus; border-color: @inputBorderFocus;
} }
&:focus { &:focus {
border-color: @inputBorderFocus; border-color: @inputBorderFocus;
} }
} }
.swalt-sheet { .swalt-sheet {
section>h1 { section>h1 {
border-bottom: 2px solid @colorBlue; border-bottom: 2px solid @colorBlue;
} }
header { header {
h1.character-name { h1.character-name {
color: @actorNameColor; color: @actorNameColor;
input[type="text"] { input[type="text"] {
color: @actorNameColor; color: @actorNameColor;
} }
} }
.level-experience { .level-experience {
.xpbar { .xpbar {
border: 1px solid @actorXPBarBorder; border: 1px solid @actorXPBarBorder;
background-color: @actorXPBarBackground; background-color: @actorXPBarBackground;
.bar { .bar {
background-color: @actorXPBarColor; background-color: @actorXPBarColor;
} }
} }
} }
.summary { .summary {
input, input,
.proficiency { .proficiency {
color: @actorProficiencyTextColor; color: @actorProficiencyTextColor;
} }
} }
.attributes { .attributes {
.attribute-value, .attribute-value,
.attribute-value input { .attribute-value input {
color: @actorAttributeInputColor; color: @actorAttributeInputColor;
} }
.attribute-value { .attribute-value {
.value-separator { .value-separator {
color: @actorSeparatorColor; color: @actorSeparatorColor;
} }
} }
footer { footer {
button { button {
border: 1px solid @actorAttributeButtonBorder; border: 1px solid @actorAttributeButtonBorder;
&:hover { &:hover {
color: @actorAttributeButtonBorderHover; color: @actorAttributeButtonBorderHover;
} }
} }
&.hit-points, &.hit-points,
&.hit-dice, &.hit-dice,
&.initiative { &.initiative {
button { button {
border: 1px solid @actorAttributeButtonBorder; border: 1px solid @actorAttributeButtonBorder;
color: @colorRed; color: @colorRed;
&:hover { &:hover {
border-color: @actorAttributeButtonBorderHover; border-color: @actorAttributeButtonBorderHover;
} }
} }
} }
} }
} }
} }
nav.sheet-navigation { nav.sheet-navigation {
.item { .item {
color: @actorNavigationTabsColor; color: @actorNavigationTabsColor;
&.active { &.active {
color: @actorNavigationTabsActiveColor; color: @actorNavigationTabsActiveColor;
border-bottom-color: @actorNavigationTabsActiveColor; border-bottom-color: @actorNavigationTabsActiveColor;
&:hover { &:hover {
background: @actorNavigationTabsHoverBgColor; background: @actorNavigationTabsHoverBgColor;
} }
} }
&:hover { &:hover {
background: @actorNavigationTabsHoverBgColor; background: @actorNavigationTabsHoverBgColor;
} }
} }
} }
.tab { .tab {
.filter-list { .filter-list {
.filter-item { .filter-item {
border-bottom: 2px solid @actorFilterBorderColor; border-bottom: 2px solid @actorFilterBorderColor;
&:hover { &:hover {
color: @actorFilterHoverColor; color: @actorFilterHoverColor;
} }
&.active { &.active {
color: @actorFilterActiveColor; color: @actorFilterActiveColor;
border-bottom-color: @actorFilterActiveColor; border-bottom-color: @actorFilterActiveColor;
} }
} }
} }
.group-list-header { .group-list-header {
background: @actorGroupListHeaderBgColor; background: @actorGroupListHeaderBgColor;
} }
.group-list-title { .group-list-title {
border-bottom: 1px solid @actorGroupListTitleBorderColor; border-bottom: 1px solid @actorGroupListTitleBorderColor;
} }
.group-list-header, .group-list-header,
.group-list { .group-list {
.item-detail { .item-detail {
border-left: 1px solid @actorGroupListColumnBorderColor; border-left: 1px solid @actorGroupListColumnBorderColor;
} }
} }
.group-list, .group-list,
.group-list ol { .group-list ol {
li.item { li.item {
&:nth-child(even) { &:nth-child(even) {
background-color: @actorGroupListAltRowColor; background-color: @actorGroupListAltRowColor;
} }
h4 { h4 {
color: @colorBlack; color: @colorBlack;
} }
.item-name { .item-name {
.item-image { .item-image {
&::before { &::before {
color: @actorItemRollableD20Color; color: @actorItemRollableD20Color;
} }
} }
&.rollable:hover { &.rollable:hover {
.item-image { .item-image {
&:hover { &:hover {
&::before { &::before {
color: @actorItemRollableD20HoverColor; color: @actorItemRollableD20HoverColor;
} }
} }
} }
} }
} }
.item-control { .item-control {
&:hover { &:hover {
color: @linkColor !important; color: @linkColor !important;
} }
&.item-toggle { &.item-toggle {
color: @actorItemControlToggleColor; color: @actorItemControlToggleColor;
&.active { &.active {
color: @colorBlack; color: @colorBlack;
} }
} }
} }
} }
} }
} }
.tab.attributes { .tab.attributes {
.abilities { .abilities {
.scores { .scores {
li { li {
border: 1px solid @actorAbilityBorderColor; border: 1px solid @actorAbilityBorderColor;
h2 { h2 {
&:hover { &:hover {
color: @linkColor; color: @linkColor;
} }
} }
.ability-score { .ability-score {
color: @actorAbilityScoreColor; color: @actorAbilityScoreColor;
} }
.ability-modifiers { .ability-modifiers {
.ability-mod, .ability-mod,
.ability-save { .ability-save {
border-color: @actorAbilityBorderColor; border-color: @actorAbilityBorderColor;
} }
} }
} }
} }
.skills { .skills {
li { li {
&:nth-child(even) { &:nth-child(even) {
background-color: @actorSkillsAltRowColor; background-color: @actorSkillsAltRowColor;
} }
.proficiency-toggle { .proficiency-toggle {
color: @colorBlack; color: @colorBlack;
} }
.skill-name { .skill-name {
&:hover { &:hover {
color: @linkColor; color: @linkColor;
} }
} }
} }
} }
} }
.traits-resources { .traits-resources {
nav { nav {
button { button {
color: @actorNavigationTabsColor; color: @actorNavigationTabsColor;
&.active { &.active {
color: @actorNavigationTabsActiveColor; color: @actorNavigationTabsActiveColor;
border-bottom-color: @actorNavigationTabsActiveColor; border-bottom-color: @actorNavigationTabsActiveColor;
&:hover { &:hover {
background: @actorNavigationTabsActiveHoverBgColor; background: @actorNavigationTabsActiveHoverBgColor;
} }
} }
&:hover { &:hover {
background: @actorNavigationTabsHoverBgColor; background: @actorNavigationTabsHoverBgColor;
} }
} }
} }
section.traits { section.traits {
.trait-selector { .trait-selector {
i.fas { i.fas {
color: @linkColor; color: @linkColor;
} }
} }
.languages { .languages {
label { label {
&:hover { &:hover {
color: @linkColor; color: @linkColor;
} }
} }
} }
} }
section.resources { section.resources {
.resource-items { .resource-items {
.resource { .resource {
h1 { h1 {
input { input {
color: @headingColor; color: @headingColor;
border-bottom: 2px solid @headerBorderColor; border-bottom: 2px solid @headerBorderColor;
} }
} }
.attribute-value, .attribute-value,
.attribute-value input { .attribute-value input {
color: @actorAttributeInputColor; color: @actorAttributeInputColor;
} }
.attribute-value { .attribute-value {
.value-separator { .value-separator {
color: @actorSeparatorColor; color: @actorSeparatorColor;
} }
} }
} }
} }
.counters { .counters {
.counter { .counter {
h4 { h4 {
&.rollable { &.rollable {
&:hover { &:hover {
color: @linkColor; color: @linkColor;
} }
} }
} }
.death-success { .death-success {
i { i {
color: @colorGreen; color: @colorGreen;
} }
} }
.death-fail { .death-fail {
i { i {
color: @colorRed; color: @colorRed;
} }
} }
} }
} }
} }
} }
} }
.tab.inventory { .tab.inventory {
.currency { .currency {
color: @headingColor; color: @headingColor;
} }
.encumbrance-wrapper { .encumbrance-wrapper {
.encumbrance-label { .encumbrance-label {
background: @actorEncumbranceLabelBackground; background: @actorEncumbranceLabelBackground;
color: @actorEncumbranceTextColor; color: @actorEncumbranceTextColor;
border: 1px solid @actorEncumbranceBorderColor; border: 1px solid @actorEncumbranceBorderColor;
} }
.encumbrance { .encumbrance {
background: @actorEncumbranceBarBgColor; background: @actorEncumbranceBarBgColor;
.encumbrance-bar { .encumbrance-bar {
background: @actorEncumbranceBarColor; background: @actorEncumbranceBarColor;
} }
} }
} }
} }
.tab.powerbook { .tab.powerbook {
.powercasting-ability { .powercasting-ability {
label, label,
h3 { h3 {
color: @headingColor; color: @headingColor;
span { span {
color: @colorBlack; color: @colorBlack;
} }
} }
} }
} }
.tab.notes { .tab.notes {
section { section {
&>input { &>input {
color: @headingColor; color: @headingColor;
border-bottom: 2px solid @headerBorderColor; border-bottom: 2px solid @headerBorderColor;
} }
} }
} }
} }
&.npc { &.npc {
.swalt-sheet { .swalt-sheet {
header { header {
.experience { .experience {
color: @actorProficiencyTextColor; color: @actorProficiencyTextColor;
} }
} }
} }
} }
} }

View file

@ -1,105 +1,105 @@
input[type="text"], input[type="number"], input[type="password"], input[type="date"], input[type="time"], select, textarea { input[type="text"], input[type="number"], input[type="password"], input[type="date"], input[type="time"], select, textarea {
border-radius: 4px; border-radius: 4px;
transition: all 0.3s; transition: all 0.3s;
&:hover { &:hover {
box-shadow: none; box-shadow: none;
} }
&:focus { &:focus {
box-shadow: none; box-shadow: none;
} }
} }
input[type=range] { input[type=range] {
-webkit-appearance: none; /* Hides the slider so that custom slider can be made */ -webkit-appearance: none; /* Hides the slider so that custom slider can be made */
width: 100%; /* Specific width is required for Firefox. */ width: 100%; /* Specific width is required for Firefox. */
background: transparent; /* Otherwise white in Chrome */ background: transparent; /* Otherwise white in Chrome */
} }
input[type=range]::-webkit-slider-thumb{ input[type=range]::-webkit-slider-thumb{
-webkit-appearance: none; -webkit-appearance: none;
background: @colorRed; background: @colorRed;
width: 12px; width: 12px;
height: 12px; height: 12px;
border-radius: 32px; border-radius: 32px;
cursor: pointer; cursor: pointer;
box-shadow: none; box-shadow: none;
} }
input[type=range]::-moz-range-thumb{ input[type=range]::-moz-range-thumb{
-webkit-appearance: none; -webkit-appearance: none;
background: @colorRed; background: @colorRed;
width: 12px; width: 12px;
height: 12px; height: 12px;
border-radius: 32px; border-radius: 32px;
cursor: pointer; cursor: pointer;
box-shadow: none; box-shadow: none;
} }
input[type=range]::-ms-thumb { input[type=range]::-ms-thumb {
-webkit-appearance: none; -webkit-appearance: none;
background: @colorRed; background: @colorRed;
width: 12px; width: 12px;
height: 12px; height: 12px;
border-radius: 32px; border-radius: 32px;
cursor: pointer; cursor: pointer;
box-shadow: none; box-shadow: none;
} }
input[type=range]::-webkit-slider-runnable-track { input[type=range]::-webkit-slider-runnable-track {
width: 100%; width: 100%;
height: 6px; height: 6px;
cursor: pointer; cursor: pointer;
background: @colorLightBlue; background: @colorLightBlue;
border-radius: 4px; border-radius: 4px;
border: 1px solid @colorBlue; border: 1px solid @colorBlue;
box-shadow: none; box-shadow: none;
} }
input[type=range]:focus::-webkit-slider-runnable-track { input[type=range]:focus::-webkit-slider-runnable-track {
background: @colorBlue; background: @colorBlue;
} }
input[type=range]::-moz-range-track { input[type=range]::-moz-range-track {
width: 100%; width: 100%;
height: 6px; height: 6px;
cursor: pointer; cursor: pointer;
background: @colorLightBlue; background: @colorLightBlue;
border-radius: 4px; border-radius: 4px;
border: 1px solid @colorBlue; border: 1px solid @colorBlue;
box-shadow: none; box-shadow: none;
} }
input[type=range]::-ms-track { input[type=range]::-ms-track {
width: 100%; width: 100%;
height: 6px; height: 6px;
cursor: pointer; cursor: pointer;
background: @colorLightBlue; background: @colorLightBlue;
border-radius: 4px; border-radius: 4px;
border: 1px solid @colorBlue; border: 1px solid @colorBlue;
box-shadow: none; box-shadow: none;
} }
input[type=range]:focus { input[type=range]:focus {
outline: none; /* Removes the blue border. You should probably do some kind of focus styling for accessibility reasons though. */ outline: none; /* Removes the blue border. You should probably do some kind of focus styling for accessibility reasons though. */
} }
input[type=range]::-ms-track { input[type=range]::-ms-track {
width: 100%; width: 100%;
cursor: pointer; cursor: pointer;
/* Hides the slider so custom styles can be added */ /* Hides the slider so custom styles can be added */
background: transparent; background: transparent;
border-color: transparent; border-color: transparent;
color: transparent; color: transparent;
} }
button, input[type="button"], input[type="submit"], input[type="reset"] { button, input[type="button"], input[type="submit"], input[type="reset"] {
.openSans(13px, 700); .openSans(13px, 700);
text-align: center; text-align: center;
border: none; border: none;
border-radius: 4px; border-radius: 4px;
cursor: pointer; cursor: pointer;
transition: all 0.3s; transition: all 0.3s;
&:hover, &:focus { &:hover, &:focus {
box-shadow: none; box-shadow: none;
} }
&:disabled { &:disabled {
opacity: 0.6; opacity: 0.6;
cursor: default; cursor: default;
} }
} }

View file

@ -1,53 +1,53 @@
input[type="text"], input[type="number"], input[type="password"], input[type="date"], input[type="time"], select, textarea { input[type="text"], input[type="number"], input[type="password"], input[type="date"], input[type="time"], select, textarea {
border: 1px solid @inputBorderNormal; border: 1px solid @inputBorderNormal;
color: @inputTextColor; color: @inputTextColor;
&:hover { &:hover {
border-color: @inputBorderHover; border-color: @inputBorderHover;
} }
&:focus { &:focus {
border-color: @inputBorderFocus; border-color: @inputBorderFocus;
} }
&::placeholder { &::placeholder {
color: @inputTextColor; color: @inputTextColor;
opacity: 0.5; opacity: 0.5;
} }
::-ms-input-placeholder { /* Microsoft Edge */ ::-ms-input-placeholder { /* Microsoft Edge */
color: @inputTextColor; color: @inputTextColor;
opacity: 0.5; opacity: 0.5;
} }
} }
button, input[type="button"], input[type="submit"], input[type="reset"] { button, input[type="button"], input[type="submit"], input[type="reset"] {
background: @buttonBackground; background: @buttonBackground;
color: @buttonTextColor; color: @buttonTextColor;
&:hover, &:focus { &:hover, &:focus {
background: @buttonHoverBackground; background: @buttonHoverBackground;
} }
&:disabled { &:disabled {
&:hover, &:focus { &:hover, &:focus {
background: @buttonBackground; background: @buttonBackground;
} }
} }
} }
input[type="reset"], button.secondary, button[type="reset"], input[type="button"].secondary, input[type="submit"].secondary { input[type="reset"], button.secondary, button[type="reset"], input[type="button"].secondary, input[type="submit"].secondary {
background: @buttonSecondaryBackground; background: @buttonSecondaryBackground;
color: @buttonSecondaryTextColor; color: @buttonSecondaryTextColor;
&:hover { &:hover {
background: @buttonSecondaryHoverBackground; background: @buttonSecondaryHoverBackground;
} }
&:disabled { &:disabled {
&:hover, &:focus { &:hover, &:focus {
background: @buttonSecondaryBackground; background: @buttonSecondaryBackground;
} }
} }
} }
form { form {
button { button {
border: none; border: none;
} }
.notes, .hint { .notes, .hint {
color: rgba(@bodyFontColor, 0.8); color: rgba(@bodyFontColor, 0.8);
} }
} }

View file

@ -1,76 +1,76 @@
.window-app { .window-app {
border-radius: 4px; border-radius: 4px;
border: none; border: none;
.dropShadow2(); .dropShadow2();
& > header { & > header {
background: @windowHeaderBackground; background: @windowHeaderBackground;
border-radius: 4px 4px 0 0; border-radius: 4px 4px 0 0;
border: none; border: none;
.dropShadow1(); .dropShadow1();
margin-bottom: 4px; margin-bottom: 4px;
} }
.window-content { .window-content {
background: @primaryBackground; background: @primaryBackground;
color: @bodyFontColor; color: @bodyFontColor;
footer { footer {
margin-top: 8px; margin-top: 8px;
} }
} }
&.minimized { &.minimized {
& > header, & > .window-header { & > header, & > .window-header {
border: none; border: none;
border-radius: 4px; border-radius: 4px;
margin: 0; margin: 0;
} }
} }
} }
#client-settings { #client-settings {
nav.tabs { nav.tabs {
border: none; border: none;
font-size: 17px; font-size: 17px;
line-height: 1.6; line-height: 1.6;
a.item { a.item {
border-bottom: 3px solid transparent; border-bottom: 3px solid transparent;
color: @bodyFontColor; color: @bodyFontColor;
&:hover { &:hover {
text-decoration: none; text-decoration: none;
} }
&.active { &.active {
text-shadow: none; text-shadow: none;
border-bottom-color: @sidebarTabLinkUnderline; border-bottom-color: @sidebarTabLinkUnderline;
} }
} }
} }
section.content { section.content {
border: none; border: none;
margin-top: 4px; margin-top: 4px;
} }
} }
.dialog-buttons { .dialog-buttons {
margin-top: 8px; margin-top: 8px;
button:last-child { button:last-child {
margin-right: 0; margin-right: 0;
} }
button:not(.default) { button:not(.default) {
border: 1px solid @buttonBackground; border: 1px solid @buttonBackground;
margin-right: 4px; margin-right: 4px;
background: @buttonSecondaryBackground; background: @buttonSecondaryBackground;
color: @buttonSecondaryTextColor; color: @buttonSecondaryTextColor;
&:hover { &:hover {
background: @buttonSecondaryHoverBackground; background: @buttonSecondaryHoverBackground;
} }
} }
button.normal.default { button.normal.default {
border: none; border: none;
background: @buttonBackground; background: @buttonBackground;
color: @buttonTextColor; color: @buttonTextColor;
&:hover { &:hover {
background: @buttonHoverBackground; background: @buttonHoverBackground;
} }
} }
} }

View file

@ -1,84 +1,84 @@
#navigation { #navigation {
#nav-toggle { #nav-toggle {
background: @foundryNavBgColor; background: @foundryNavBgColor;
color: @foundryNavTextColor; color: @foundryNavTextColor;
transform: rotate(-90deg); transform: rotate(-90deg);
} }
.nav-item { .nav-item {
border: 1px solid @foundryNavBorderColor; border: 1px solid @foundryNavBorderColor;
} }
#scene-list { #scene-list {
.scene { .scene {
border: 1px solid @foundryNavBorderColor; border: 1px solid @foundryNavBorderColor;
background: rgba(@foundryNavBgColor, 0.4); background: rgba(@foundryNavBgColor, 0.4);
a { a {
color: @foundryNavSceneLinkColor; color: @foundryNavSceneLinkColor;
} }
&.gm { &.gm {
border: 1px solid @foundryNavBorderColorGM; border: 1px solid @foundryNavBorderColorGM;
background: rgba(@foundryNavBgColorGM, 0.4); background: rgba(@foundryNavBgColorGM, 0.4);
} }
&.view, &.context { &.view, &.context {
box-shadow: 0 0 8px @foundryNavContextShadow; box-shadow: 0 0 8px @foundryNavContextShadow;
border-color: @foundryNavContextBorderColor; border-color: @foundryNavContextBorderColor;
} }
&.active { &.active {
border-color: @foundryNavActiveBorderColor; border-color: @foundryNavActiveBorderColor;
background: @foundryNavActiveBgColor; background: @foundryNavActiveBgColor;
box-shadow: 0 0 8px @foundryNavActiveGlow; box-shadow: 0 0 8px @foundryNavActiveGlow;
} }
} }
} }
} }
#controls { #controls {
.scene-control, .control-tool { .scene-control, .control-tool {
background: @foundryNavBgColor; background: @foundryNavBgColor;
color: @foundryNavTextColor; color: @foundryNavTextColor;
border: 1px solid @foundryNavBorderColor; border: 1px solid @foundryNavBorderColor;
box-shadow: none; box-shadow: none;
&:hover { &:hover {
background: @foundryNavBgColor; background: @foundryNavBgColor;
box-shadow: 0 0 8px @foundryNavContextShadow; box-shadow: 0 0 8px @foundryNavContextShadow;
} }
&.active { &.active {
border-color: @foundryNavActiveBorderColor; border-color: @foundryNavActiveBorderColor;
background: @foundryNavActiveBgColor; background: @foundryNavActiveBgColor;
box-shadow: 0 0 8px @foundryNavActiveGlow; box-shadow: 0 0 8px @foundryNavActiveGlow;
} }
} }
} }
#players { #players {
border: none; border: none;
border-radius: 4px; border-radius: 4px;
h3 { h3 {
background: @sidebarTabBackground; background: @sidebarTabBackground;
border: none; border: none;
margin: 0; margin: 0;
padding: 0 8px; padding: 0 8px;
font-size: 17px; font-size: 17px;
line-height: 30px; line-height: 30px;
.dropShadow1(); .dropShadow1();
border-radius: 4px 4px 0 0; border-radius: 4px 4px 0 0;
.players-mode { .players-mode {
color: @foundryPlayersArrowColor; color: @foundryPlayersArrowColor;
} }
} }
ol { ol {
margin: 4px 0; margin: 4px 0;
.player-name.self { .player-name.self {
color: inherit; color: inherit;
font-weight: 700; font-weight: 700;
} }
.player { .player {
color: @bodyFontColor; color: @bodyFontColor;
} }
.player-active { .player-active {
margin-top: 7px; margin-top: 7px;
&.active { &.active {
box-shadow: none; box-shadow: none;
} }
} }
} }
} }

View file

@ -1,382 +1,382 @@
#sidebar { #sidebar {
border: none; //1px solid @colorBlue; border: none; //1px solid @colorBlue;
&.collapsed { &.collapsed {
#sidebar-tabs { #sidebar-tabs {
min-height: 370px; min-height: 370px;
justify-content: center; justify-content: center;
& > .item.active { & > .item.active {
border: none; border: none;
} }
} }
} }
} }
#sidebar-tabs { #sidebar-tabs {
border: none; border: none;
box-shadow: none; box-shadow: none;
justify-content: space-between; justify-content: space-between;
.dropShadow1(); .dropShadow1();
.item { .item {
font-size: 16px; font-size: 16px;
} }
.item.active { .item.active {
border: none; border: none;
box-shadow: none; box-shadow: none;
background: none; background: none;
text-shadow: none; text-shadow: none;
} }
} }
/*----------- /*-----------
** Chat Tab ** Chat Tab
-----------*/ -----------*/
#chat-log { #chat-log {
.chat-message { .chat-message {
border: none; border: none;
border-radius: 4px; border-radius: 4px;
margin-bottom: 8px; margin-bottom: 8px;
.dropShadow1(); .dropShadow1();
& > header { & > header {
color: @colorRed; color: @colorRed;
border-bottom: 2px solid @colorBlue; border-bottom: 2px solid @colorBlue;
margin-bottom: 4px; margin-bottom: 4px;
span { span {
color: @colorBlack; color: @colorBlack;
} }
} }
} }
} }
.notification-pip { .notification-pip {
color: @colorBlue; color: @colorBlue;
} }
.sw5e.chat-card, .sw5e.chat-card,
.midi-qol-item-card { .midi-qol-item-card {
.card-header { .card-header {
padding: 0; padding: 0;
border: none; border: none;
img { img {
flex: 0 0 36px; flex: 0 0 36px;
margin-right: 4px; margin-right: 4px;
} }
h3 { h3 {
flex: 1; flex: 1;
margin: 0; margin: 0;
line-height: 36px; line-height: 36px;
.russoOne(17px); .russoOne(17px);
border-bottom: none; border-bottom: none;
&:hover { &:hover {
text-shadow: none; text-shadow: none;
} }
} }
} }
.card-content { .card-content {
margin: 4px 0; margin: 4px 0;
h3 { h3 {
font-size: 12px; font-size: 12px;
margin: 0; margin: 0;
font-weight: bold; font-weight: bold;
} }
> * { > * {
-webkit-user-select: text; -webkit-user-select: text;
-moz-user-select: text; -moz-user-select: text;
-ms-user-select: text; -ms-user-select: text;
user-select: text; user-select: text;
} }
} }
.card-buttons { .card-buttons {
margin: 4px 0; margin: 4px 0;
span { span {
display: block; display: block;
line-height: 28px; line-height: 28px;
text-align: center; text-align: center;
} }
button { button {
.openSans(13px, 700); .openSans(13px, 700);
padding: 4px 0; padding: 4px 0;
height: auto; height: auto;
line-height: 1.6; line-height: 1.6;
margin: 4px 0; margin: 4px 0;
border: none; border: none;
border-radius: 4px; border-radius: 4px;
&:hover, &:focus { &:hover, &:focus {
box-shadow: none; box-shadow: none;
} }
} }
} }
.card-footer { .card-footer {
padding: 4px 0 0; padding: 4px 0 0;
span { span {
padding: 0 4px 0 0; padding: 0 4px 0 0;
font-size: 10px; font-size: 10px;
&:last-child { &:last-child {
border-right: none; border-right: none;
padding-right: 0; padding-right: 0;
} }
} }
} }
} }
.dice-roll { .dice-roll {
.dice-formula { .dice-formula {
border: none; border: none;
box-shadow: none; box-shadow: none;
border-radius: 4px; border-radius: 4px;
} }
.dice-total { .dice-total {
border-radius: 0; border-radius: 0;
padding: 4px 0; padding: 4px 0;
} }
} }
#chat-controls { #chat-controls {
padding-top: 4px; padding-top: 4px;
} }
#chat-form textarea { #chat-form textarea {
&:focus { &:focus {
box-shadow: none; box-shadow: none;
outline: none; outline: none;
} }
} }
/*----------- /*-----------
** Combat Tab ** Combat Tab
-----------*/ -----------*/
#combat { #combat {
h3 { h3 {
border: none; border: none;
} }
#combat-tracker { #combat-tracker {
li.combatant { li.combatant {
padding: 4px 0; padding: 4px 0;
background: none; background: none;
.token-name { .token-name {
text-shadow: none; text-shadow: none;
} }
h4 { h4 {
color: @colorBlack; color: @colorBlack;
} }
.roll { .roll {
background: none; background: none;
&::before { &::before {
content: "\f6cf"; content: "\f6cf";
.fontAwesome(); .fontAwesome();
font-size: 28px; font-size: 28px;
} }
} }
.initiative { .initiative {
text-shadow: none; text-shadow: none;
} }
&.hidden { &.hidden {
opacity: 0.5; opacity: 0.5;
} }
} }
} }
#combat-controls { #combat-controls {
padding-top: 0; padding-top: 0;
} }
} }
/* /*
** Folders ** Folders
*/ */
.sidebar-tab { .sidebar-tab {
.directory-header { .directory-header {
margin-bottom: 4px; margin-bottom: 4px;
.header-search { .header-search {
position: relative; position: relative;
i.fa-search { i.fa-search {
position: absolute; position: absolute;
left: 8px; left: 8px;
} }
input { input {
text-align: left; text-align: left;
padding-left: 22px; padding-left: 22px;
&:focus { &:focus {
box-shadow: none; box-shadow: none;
} }
} }
} }
} }
.subdirectory { .subdirectory {
border: none; border: none;
margin-left: 8px; margin-left: 8px;
min-height: 8px; min-height: 8px;
} }
.directory-list { .directory-list {
padding-bottom: 4px; padding-bottom: 4px;
.folder { .folder {
& > .folder-header { & > .folder-header {
line-height: default; line-height: default;
padding: 0 0 0 8px; padding: 0 0 0 8px;
position: relative; position: relative;
border: none; border: none;
h3 { h3 {
padding: 8px 4px; padding: 8px 4px;
.openSans(13px, 700); .openSans(13px, 700);
line-height: 1.6; line-height: 1.6;
& > i { & > i {
margin-right: 4px; margin-right: 4px;
} }
} }
a { a {
position: absolute; position: absolute;
top: 0; top: 0;
right: 4px; right: 4px;
height: 100%; height: 100%;
padding: 0 4px; padding: 0 4px;
i { i {
margin-top: 12px; margin-top: 12px;
} }
&.create-folder { &.create-folder {
right: 28px; right: 28px;
} }
} }
} }
} }
.directory-item img { .directory-item img {
flex: 0 0 32px; flex: 0 0 32px;
height: 32px; height: 32px;
width: 32px; width: 32px;
align-self: center; align-self: center;
} }
.actor, .item, .journal, .table { .actor, .item, .journal, .table {
border: none; border: none;
.entity-name { .entity-name {
.openSans(13px, 700); .openSans(13px, 700);
} }
} }
} }
} }
#scenes { #scenes {
.subdirectory { .subdirectory {
border-left: none; border-left: none;
} }
.scene { .scene {
border: none; border: none;
box-shadow: none; box-shadow: none;
position: relative; position: relative;
height: 128px; height: 128px;
& + .scene { & + .scene {
margin-top: 4px; margin-top: 4px;
} }
&::after { &::after {
content: ''; content: '';
display: block; display: block;
width: 100%; width: 100%;
height: 99px; height: 99px;
position: absolute; position: absolute;
top: 28px; top: 28px;
left: 0; left: 0;
} }
h3 { h3 {
.openSans(13px, 700); .openSans(13px, 700);
text-align: left; text-align: left;
text-shadow: none; text-shadow: none;
padding: 4px 4px 4px 12px; padding: 4px 4px 4px 12px;
line-height: 1.6; line-height: 1.6;
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;
width: 100%; width: 100%;
} }
} }
} }
#playlists { #playlists {
.directory-list { .directory-list {
padding: 0 8px; padding: 0 8px;
li.playlist { li.playlist {
padding: 8px; padding: 8px;
border-radius: 4px; border-radius: 4px;
margin-bottom: 8px; margin-bottom: 8px;
border-top: inherit; border-top: inherit;
.dropShadow1(); .dropShadow1();
.playlist-header { .playlist-header {
text-decoration: none; text-decoration: none;
} }
li.sound { li.sound {
border: none; border: none;
h4 { h4 {
.openSans(13px, 400); .openSans(13px, 400);
} }
} }
} }
} }
} }
#compendium { #compendium {
.compendium-entity { .compendium-entity {
margin: 0 4px; margin: 0 4px;
padding: 8px; padding: 8px;
.dropShadow1(); .dropShadow1();
border-radius: 4px; border-radius: 4px;
border: none; border: none;
&+ .compendium-entity { &+ .compendium-entity {
margin-top: 4px; margin-top: 4px;
} }
h3 { h3 {
background: none; background: none;
border: none; border: none;
.russoOne(17px); .russoOne(17px);
padding: 0; padding: 0;
margin-bottom: 4px; margin-bottom: 4px;
} }
ol.compendium-list { ol.compendium-list {
li.compendium-pack { li.compendium-pack {
margin: 0; margin: 0;
padding: 4px; padding: 4px;
border: none; border: none;
.pack-title { .pack-title {
margin: 0; margin: 0;
position: relative; position: relative;
a { a {
.openSans(13px, 700); .openSans(13px, 700);
i { i {
display: none; display: none;
} }
} }
.status-icons { .status-icons {
top: 4px; top: 4px;
font-size: 13px; font-size: 13px;
} }
} }
} }
} }
} }
} }
#settings { #settings {
h2 { h2 {
border: none; border: none;
margin: 0 8px; margin: 0 8px;
padding: 0; padding: 0;
background: none; background: none;
} }
#game-details, #settings-game, #settings-documentation, #settings-access { #game-details, #settings-game, #settings-documentation, #settings-access {
padding: 0 8px; padding: 0 8px;
margin: 0 0 8px; margin: 0 0 8px;
} }
} }

View file

@ -1,297 +1,297 @@
#sidebar-tabs { #sidebar-tabs {
background: @sidebarTabBackground; background: @sidebarTabBackground;
& > .collapse { & > .collapse {
color: @sidebarTabLinkColor; color: @sidebarTabLinkColor;
} }
.item.active { .item.active {
color: @sidebarTabLinkColor; color: @sidebarTabLinkColor;
border-bottom: 3px solid @sidebarTabLinkUnderline; border-bottom: 3px solid @sidebarTabLinkUnderline;
} }
} }
/*----------- /*-----------
** Chat Tab ** Chat Tab
-----------*/ -----------*/
#chat-log { #chat-log {
.chat-message { .chat-message {
background: @chatBackground; background: @chatBackground;
color: @bodyFontColor; color: @bodyFontColor;
& > header { & > header {
color: @chatHeaderColor; color: @chatHeaderColor;
border-bottom: 2px solid @chatHeaderBottomBorderColor; border-bottom: 2px solid @chatHeaderBottomBorderColor;
span { span {
color: @bodyFontColor; color: @bodyFontColor;
} }
} }
} }
} }
.notification-pip { .notification-pip {
color: @chatNotificationColor; color: @chatNotificationColor;
} }
.sw5e.chat-card, .sw5e.chat-card,
.midi-qol-item-card { .midi-qol-item-card {
.card-header { .card-header {
h3 { h3 {
color: @bodyFontColor; color: @bodyFontColor;
&:hover { &:hover {
color: @bodyFontColor; color: @bodyFontColor;
} }
} }
} }
.card-buttons { .card-buttons {
span { span {
border: 1px solid @cardButtonBorder; border: 1px solid @cardButtonBorder;
} }
} }
.card-footer { .card-footer {
border-top: 1px solid @cardFooterBorder; border-top: 1px solid @cardFooterBorder;
span { span {
border-right: 1px solid @cardFooterSeparator; border-right: 1px solid @cardFooterSeparator;
&:last-child { &:last-child {
border-right: none; border-right: none;
} }
} }
} }
} }
.dice-roll { .dice-roll {
.dice-formula { .dice-formula {
background: @diceFormulaBackground; background: @diceFormulaBackground;
color: @diceFormualColor; color: @diceFormualColor;
box-shadow: none; box-shadow: none;
border-radius: 4px; border-radius: 4px;
} }
.dice-total { .dice-total {
background: @diceTotalBackground; background: @diceTotalBackground;
border: 1px solid @diceTotalBorder; border: 1px solid @diceTotalBorder;
box-shadow: 0 0 12px rgba(@diceTotalShadow,.8); box-shadow: 0 0 12px rgba(@diceTotalShadow,.8);
&.success { &.success {
color: @diceSuccessColor; color: @diceSuccessColor;
} }
&.failure { &.failure {
color: @diceFailureColor; color: @diceFailureColor;
} }
&.critical { &.critical {
color: @diceCriticalColor; color: @diceCriticalColor;
background: @diceCriticalBackground; background: @diceCriticalBackground;
box-shadow: 0 0 12px rgba(@diceCriticalColor,.5); box-shadow: 0 0 12px rgba(@diceCriticalColor,.5);
} }
&.fumble { &.fumble {
color: @diceFumbleColor; color: @diceFumbleColor;
background: @diceFumbleBackground; background: @diceFumbleBackground;
box-shadow: 0 0 12px rgba(@diceFumbleColor,.5); box-shadow: 0 0 12px rgba(@diceFumbleColor,.5);
} }
} }
} }
#chat-controls { #chat-controls {
.roll-type-select { .roll-type-select {
background: #4f4f4f; background: #4f4f4f;
color: #FFFFFF; color: #FFFFFF;
} }
label { label {
color: @bodyFontColor; color: @bodyFontColor;
} }
} }
#chat-form textarea { #chat-form textarea {
background: #4f4f4f; background: #4f4f4f;
} }
/*----------- /*-----------
** Combat Tab ** Combat Tab
-----------*/ -----------*/
#combat { #combat {
#combat-round { #combat-round {
color: @combatRoundColor; color: @combatRoundColor;
border-bottom: 2px solid @combatRoundColor; border-bottom: 2px solid @combatRoundColor;
.encounters { .encounters {
h4 { h4 {
color: @combatRoundColor; color: @combatRoundColor;
} }
a { a {
color: @linkSecondaryColor; color: @linkSecondaryColor;
&:hover { &:hover {
color: @linkColor; color: @linkColor;
} }
} }
} }
} }
#combat-tracker { #combat-tracker {
//padding-top: 4px; //padding-top: 4px;
li.combatant { li.combatant {
color: @bodyFontColor; color: @bodyFontColor;
&:nth-child(even) { &:nth-child(even) {
background: rgba(@altRowBackground, 0.5); background: rgba(@altRowBackground, 0.5);
} }
h4 { h4 {
color: @bodyFontColor color: @bodyFontColor
} }
.roll { .roll {
color: @linkSecondaryColor; color: @linkSecondaryColor;
&:hover { &:hover {
color: @linkColor; color: @linkColor;
} }
} }
.combatant-control { .combatant-control {
color: @combatCombatantControlColor; color: @combatCombatantControlColor;
&.active { &.active {
color: @combatCombatantControlColorActive; color: @combatCombatantControlColorActive;
} }
} }
.token-resource { .token-resource {
color: @combatTokenResourceColor; color: @combatTokenResourceColor;
border-right: 1px solid @combatTokenResouceBorder; border-right: 1px solid @combatTokenResouceBorder;
} }
&.active { &.active {
color: @combatActiveCombatantColor; color: @combatActiveCombatantColor;
.initiative, h4 { .initiative, h4 {
color: @combatActiveCombatantColor; color: @combatActiveCombatantColor;
} }
} }
&.hidden { &.hidden {
color: @bodyFontColor; color: @bodyFontColor;
} }
} }
} }
#combat-controls { #combat-controls {
border-top: 1px solid @combatControlsBorder; border-top: 1px solid @combatControlsBorder;
} }
} }
/* /*
** Folders ** Folders
*/ */
.sidebar-tab { .sidebar-tab {
.directory-header { .directory-header {
.header-search { .header-search {
i.fa-search { i.fa-search {
color: @folderSearchIconColor; color: @folderSearchIconColor;
} }
input { input {
background: @inputBackgroundColor; background: @inputBackgroundColor;
} }
} }
} }
.subdirectory { .subdirectory {
background: @folderSubdirectoryBackground; background: @folderSubdirectoryBackground;
.folder { .folder {
border-left: 2px solid rgba(@folderSubdirectoryBorder, 0.4); border-left: 2px solid rgba(@folderSubdirectoryBorder, 0.4);
} }
} }
.directory-list { .directory-list {
li + li { li + li {
border-top: 1px solid @directoryListItemBorder; border-top: 1px solid @directoryListItemBorder;
} }
.folder { .folder {
& > .folder-header { & > .folder-header {
background: @folderHeaderBackground; background: @folderHeaderBackground;
h3 { h3 {
background: @folderHeaderBackground; background: @folderHeaderBackground;
color: @folderHeaderColor; color: @folderHeaderColor;
& > i { & > i {
color: @folderIconColor; color: @folderIconColor;
} }
} }
a { a {
color: @linkSecondaryColor; color: @linkSecondaryColor;
&:hover { &:hover {
color: @linkColor; color: @linkColor;
} }
} }
} }
&.collapsed > .folder-header { &.collapsed > .folder-header {
background: @folderHeaderBackground; background: @folderHeaderBackground;
} }
& + .entity { & + .entity {
border-top: 1px solid @directoryListItemBorder; border-top: 1px solid @directoryListItemBorder;
} }
} }
.actor, .item, .journal, .table { .actor, .item, .journal, .table {
background: @entityBackgroundColor; background: @entityBackgroundColor;
.entity-name { .entity-name {
color: @entityNameColor; color: @entityNameColor;
} }
&:nth-child(even) { &:nth-child(even) {
background: rgba(@altRowBackground, 0.3); background: rgba(@altRowBackground, 0.3);
} }
} }
} }
} }
#scenes { #scenes {
.scene { .scene {
border-top: 1px solid @sceneBorderColor; border-top: 1px solid @sceneBorderColor;
border-left: 4px solid @sceneBorderColor; border-left: 4px solid @sceneBorderColor;
&::after { &::after {
box-shadow: 0 0 20px @sceneBorderColor inset; box-shadow: 0 0 20px @sceneBorderColor inset;
} }
h3 { h3 {
background: @sceneBackgroundColor; background: @sceneBackgroundColor;
} }
} }
} }
#playlists { #playlists {
.directory-list { .directory-list {
li.playlist { li.playlist {
background: @playlistBackgroundColor; background: @playlistBackgroundColor;
.playlist-header { .playlist-header {
background: @playlistBackgroundColor; background: @playlistBackgroundColor;
color: @colorRed; color: @colorRed;
border-bottom: 2px solid @playlistHeaderBorder; border-bottom: 2px solid @playlistHeaderBorder;
} }
li.sound { li.sound {
color: @playlistSoundColor; color: @playlistSoundColor;
} }
a.sound-control { a.sound-control {
color: @linkColor; color: @linkColor;
} }
} }
} }
} }
#compendium { #compendium {
.compendium-entity { .compendium-entity {
background: @compendiumEntityBackground !important; background: @compendiumEntityBackground !important;
h3 { h3 {
border-bottom: 2px solid @headerBorderColor; border-bottom: 2px solid @headerBorderColor;
} }
ol.compendium-list { ol.compendium-list {
li.compendium-pack { li.compendium-pack {
&:nth-child(even) { &:nth-child(even) {
background: rgba(@altRowBackground, 0.3); background: rgba(@altRowBackground, 0.3);
} }
.pack-title { .pack-title {
.status-icons { .status-icons {
color: @compendiumStatusIcon; color: @compendiumStatusIcon;
} }
} }
footer.compendium-footer { footer.compendium-footer {
color: @bodyFontColor; color: @bodyFontColor;
} }
} }
} }
} }
} }
#settings { #settings {
h2 { h2 {
color: @headingColor; color: @headingColor;
border-bottom: 2px solid @headerBorderColor; border-bottom: 2px solid @headerBorderColor;
} }
#game-details, #settings-game, #settings-documentation, #settings-access { #game-details, #settings-game, #settings-documentation, #settings-access {
color: @bodyFontColor; color: @bodyFontColor;
} }
} }

View file

@ -1,500 +1,500 @@
#sidebar { #sidebar {
border: none; //1px solid @colorBlue; border: none; //1px solid @colorBlue;
} }
#sidebar-tabs { #sidebar-tabs {
border: none; border: none;
box-shadow: none; box-shadow: none;
background: white; background: white;
.dropShadow1(); .dropShadow1();
& > .collapse { & > .collapse {
color: @colorRed; color: @colorRed;
} }
.item { .item {
font-size: 16px; font-size: 16px;
} }
.item.active { .item.active {
color: @colorRed; color: @colorRed;
border: none; border: none;
border-bottom: 3px solid @colorRed; border-bottom: 3px solid @colorRed;
box-shadow: none; box-shadow: none;
background: none; background: none;
text-shadow: none; text-shadow: none;
} }
} }
/*----------- /*-----------
** Chat Tab ** Chat Tab
-----------*/ -----------*/
#chat-log { #chat-log {
.chat-message { .chat-message {
background: white; background: white;
border: none; border: none;
border-radius: 4px; border-radius: 4px;
margin-bottom: 8px; margin-bottom: 8px;
.dropShadow1(); .dropShadow1();
& > header { & > header {
color: @colorRed; color: @colorRed;
border-bottom: 2px solid @colorBlue; border-bottom: 2px solid @colorBlue;
margin-bottom: 4px; margin-bottom: 4px;
span { span {
color: @colorBlack; color: @colorBlack;
} }
} }
} }
} }
.notification-pip { .notification-pip {
color: @colorBlue; color: @colorBlue;
text-shadow: none; text-shadow: none;
} }
.sw5e.chat-card, .sw5e.chat-card,
.midi-qol-item-card { .midi-qol-item-card {
font-size: 13px; font-size: 13px;
.card-header { .card-header {
padding: 0; padding: 0;
border: none; border: none;
img { img {
flex: 0 0 36px; flex: 0 0 36px;
margin-right: 4px; margin-right: 4px;
} }
h3 { h3 {
flex: 1; flex: 1;
margin: 0; margin: 0;
line-height: 36px; line-height: 36px;
.russoOne(17px); .russoOne(17px);
color: @colorBlack; color: @colorBlack;
&:hover { &:hover {
color: @colorBlack; color: @colorBlack;
text-shadow: none; text-shadow: none;
} }
} }
} }
.card-content { .card-content {
margin: 4px 0; margin: 4px 0;
h3 { h3 {
font-size: 12px; font-size: 12px;
margin: 0; margin: 0;
font-weight: bold; font-weight: bold;
} }
> * { > * {
-webkit-user-select: text; -webkit-user-select: text;
-moz-user-select: text; -moz-user-select: text;
-ms-user-select: text; -ms-user-select: text;
user-select: text; user-select: text;
} }
} }
.card-buttons { .card-buttons {
margin: 4px 0; margin: 4px 0;
span { span {
display: block; display: block;
line-height: 28px; line-height: 28px;
text-align: center; text-align: center;
border: 1px solid @colorLightGray; border: 1px solid @colorLightGray;
} }
button { button {
.openSans(13px, 700); .openSans(13px, 700);
padding: 4px 0; padding: 4px 0;
height: auto; height: auto;
line-height: 1.6; line-height: 1.6;
margin: 4px 0; margin: 4px 0;
background: @colorRed; background: @colorRed;
border: none; border: none;
border-radius: 4px; border-radius: 4px;
&:hover, &:focus { &:hover, &:focus {
background-color: lighten(@colorRed, 5); background-color: lighten(@colorRed, 5);
box-shadow: none; box-shadow: none;
} }
} }
} }
.card-footer { .card-footer {
padding: 4px 0 0; padding: 4px 0 0;
border-top: 1px solid @colorLightBlue; border-top: 1px solid @colorLightBlue;
span { span {
border-right: 2px groove #FFF; border-right: 2px groove #FFF;
padding: 0 4px 0 0; padding: 0 4px 0 0;
font-size: 10px; font-size: 10px;
&:last-child { &:last-child {
border-right: none; border-right: none;
padding-right: 0; padding-right: 0;
} }
} }
} }
} }
.dice-roll { .dice-roll {
.dice-formula { .dice-formula {
background: none; background: none;
border: none; border: none;
} }
.dice-total { .dice-total {
background: @colorPaleBlue; background: @colorPaleBlue;
border: 1px solid @colorBlue; border: 1px solid @colorBlue;
border-radius: 0; border-radius: 0;
padding: 4px 0; padding: 4px 0;
box-shadow: 0 0 12px rgba(@colorBlue,.5); box-shadow: 0 0 12px rgba(@colorBlue,.5);
&.success { &.success {
color: inherit; color: inherit;
background: #c7d0c0; background: #c7d0c0;
border: 1px solid #006c00; border: 1px solid #006c00;
} }
&.failure { &.failure {
color: inherit; color: inherit;
background: #ffdddd; background: #ffdddd;
border: 1px solid #6e0000; border: 1px solid #6e0000;
} }
&.critical { &.critical {
color: @colorGreen; color: @colorGreen;
background: @colorPaleGreen; background: @colorPaleGreen;
box-shadow: 0 0 12px rgba(@colorGreen,.5); box-shadow: 0 0 12px rgba(@colorGreen,.5);
} }
&.fumble { &.fumble {
color: red; color: red;
} }
} }
} }
#chat-controls { #chat-controls {
&.roll-type-select { &.roll-type-select {
background: #4f4f4f; background: #4f4f4f;
color: #FFFFFF; color: #FFFFFF;
} }
padding-top: 4px; padding-top: 4px;
label { label {
color: @colorBlack; color: @colorBlack;
} }
} }
#chat-form textarea { #chat-form textarea {
background: #4f4f4f; background: #4f4f4f;
&:focus { &:focus {
box-shadow: none; box-shadow: none;
outline: none; outline: none;
} }
} }
/*----------- /*-----------
** Combat Tab ** Combat Tab
-----------*/ -----------*/
#combat { #combat {
#combat-round { #combat-round {
color: @colorRed; color: @colorRed;
border-bottom: 2px solid @colorBlue; border-bottom: 2px solid @colorBlue;
.encounters { .encounters {
h4 { h4 {
color: @colorRed; color: @colorRed;
} }
a { a {
color: @colorGray; color: @colorGray;
&:hover { &:hover {
color: @colorRed; color: @colorRed;
} }
} }
} }
} }
#combat-tracker { #combat-tracker {
//padding-top: 4px; //padding-top: 4px;
li.combatant { li.combatant {
padding: 4px 0; padding: 4px 0;
color: @colorBlack; color: @colorBlack;
background: none; background: none;
&:nth-child(even) { &:nth-child(even) {
background: rgba(@colorPaleBlue, 0.5); background: rgba(@colorPaleBlue, 0.5);
} }
h4 { h4 {
color: @colorBlack; color: @colorBlack;
text-shadow: none; text-shadow: none;
} }
.roll { .roll {
background: none; background: none;
color: @colorGray; color: @colorGray;
&::before { &::before {
content: "\f6cf"; content: "\f6cf";
.fontAwesome(); .fontAwesome();
font-size: 28px; font-size: 28px;
} }
&:hover { &:hover {
color: @colorRed; color: @colorRed;
} }
} }
.combatant-control { .combatant-control {
color: @colorLightGray; color: @colorLightGray;
text-shadow: none; text-shadow: none;
&.active { &.active {
color: @colorDarkGray; color: @colorDarkGray;
} }
} }
.token-resource { .token-resource {
color: @colorGray; color: @colorGray;
border-right: 1px solid @colorLightGray; border-right: 1px solid @colorLightGray;
} }
.initiative { .initiative {
text-shadow: none; text-shadow: none;
} }
&.active { &.active {
color: @colorBlue; color: @colorBlue;
.initiative, h4 { .initiative, h4 {
color: @colorBlue; color: @colorBlue;
} }
} }
&.hidden { &.hidden {
opacity: 0.5; opacity: 0.5;
color: @colorBlack; color: @colorBlack;
} }
} }
} }
#combat-controls { #combat-controls {
padding-top: 0; padding-top: 0;
border-top: 1px solid @colorBlue; border-top: 1px solid @colorBlue;
} }
} }
/* /*
** Folders ** Folders
*/ */
.sidebar-tab { .sidebar-tab {
.directory-header { .directory-header {
margin-bottom: 4px; margin-bottom: 4px;
.header-search { .header-search {
position: relative; position: relative;
i.fa-search { i.fa-search {
position: absolute; position: absolute;
left: 8px; left: 8px;
color: @colorBlue; color: @colorBlue;
} }
input { input {
text-align: left; text-align: left;
padding-left: 22px; padding-left: 22px;
background: white; background: white;
&:focus { &:focus {
box-shadow: none; box-shadow: none;
} }
} }
} }
} }
.subdirectory { .subdirectory {
border: none; border: none;
margin-left: 8px; margin-left: 8px;
background: white; background: white;
min-height: 8px; min-height: 8px;
.folder { .folder {
border-left: 2px solid rgba(@colorBlack, 0.4); border-left: 2px solid rgba(@colorBlack, 0.4);
} }
} }
.directory-list { .directory-list {
padding-bottom: 4px; padding-bottom: 4px;
li + li { li + li {
border-top: 1px solid @colorBlue; border-top: 1px solid @colorBlue;
} }
.folder { .folder {
& > .folder-header { & > .folder-header {
line-height: default; line-height: default;
padding: 0 0 0 8px; padding: 0 0 0 8px;
position: relative; position: relative;
border: none; border: none;
background: white; background: white;
h3 { h3 {
padding: 8px 4px; padding: 8px 4px;
background: white; background: white;
color: @colorBlack; color: @colorBlack;
.openSans(13px, 700); .openSans(13px, 700);
line-height: 1.6; line-height: 1.6;
& > i { & > i {
margin-right: 4px; margin-right: 4px;
color: @colorBlue; color: @colorBlue;
} }
} }
a { a {
position: absolute; position: absolute;
top: 0; top: 0;
right: 4px; right: 4px;
height: 100%; height: 100%;
padding: 0 4px; padding: 0 4px;
color: @colorLightGray; color: @colorLightGray;
&:hover { &:hover {
color: @colorRed; color: @colorRed;
} }
i { i {
margin-top: 12px; margin-top: 12px;
} }
&.create-folder { &.create-folder {
right: 28px; right: 28px;
} }
} }
} }
&.collapsed > .folder-header { &.collapsed > .folder-header {
background: white; background: white;
} }
& + .entity { & + .entity {
border-top: 1px solid @colorBlue; border-top: 1px solid @colorBlue;
} }
} }
.directory-item img { .directory-item img {
flex: 0 0 32px; flex: 0 0 32px;
height: 32px; height: 32px;
width: 32px; width: 32px;
align-self: center; align-self: center;
} }
.actor, .item, .journal, .table { .actor, .item, .journal, .table {
background: white; background: white;
border: none; border: none;
.entity-name { .entity-name {
.openSans(13px, 700); .openSans(13px, 700);
color: @colorBlack; color: @colorBlack;
} }
&:nth-child(even) { &:nth-child(even) {
background: rgba(@colorPaleBlue, 0.3); background: rgba(@colorPaleBlue, 0.3);
} }
} }
} }
} }
#scenes { #scenes {
.subdirectory { .subdirectory {
border-left: none; border-left: none;
} }
.scene { .scene {
border: none; border: none;
border-top: 1px solid @colorBlue; border-top: 1px solid @colorBlue;
border-left: 4px solid @colorBlue; border-left: 4px solid @colorBlue;
box-shadow: none; box-shadow: none;
position: relative; position: relative;
height: 128px; height: 128px;
//margin-bottom: 4px; //margin-bottom: 4px;
& + .scene { & + .scene {
margin-top: 4px; margin-top: 4px;
} }
&::after { &::after {
content: ''; content: '';
display: block; display: block;
width: 100%; width: 100%;
height: 99px; height: 99px;
position: absolute; position: absolute;
top: 28px; top: 28px;
left: 0; left: 0;
box-shadow: 0 0 20px @colorBlue inset; box-shadow: 0 0 20px @colorBlue inset;
} }
h3 { h3 {
.openSans(13px, 700); .openSans(13px, 700);
text-align: left; text-align: left;
text-shadow: none; text-shadow: none;
padding: 4px 4px 4px 12px; padding: 4px 4px 4px 12px;
background: white; background: white;
line-height: 1.6; line-height: 1.6;
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;
width: 100%; width: 100%;
} }
} }
} }
#playlists { #playlists {
.directory-list { .directory-list {
padding: 0 8px; padding: 0 8px;
li.playlist { li.playlist {
padding: 8px; padding: 8px;
border-radius: 4px; border-radius: 4px;
background: white; background: white;
margin-bottom: 8px; margin-bottom: 8px;
border-top: inherit; border-top: inherit;
.dropShadow1(); .dropShadow1();
.playlist-header { .playlist-header {
background: white; background: white;
color: @colorRed; color: @colorRed;
text-decoration: none; text-decoration: none;
border-bottom: 2px solid @colorBlue; border-bottom: 2px solid @colorBlue;
} }
li.sound { li.sound {
border: none; border: none;
color: @colorBlack; color: @colorBlack;
h4 { h4 {
.openSans(13px, 400); .openSans(13px, 400);
} }
} }
a.sound-control { a.sound-control {
color: @colorRed; color: @colorRed;
} }
} }
} }
} }
#compendium { #compendium {
.compendium-entity { .compendium-entity {
margin: 0 4px; margin: 0 4px;
padding: 8px; padding: 8px;
background: white !important; background: white !important;
.dropShadow1(); .dropShadow1();
border-radius: 4px; border-radius: 4px;
border: none; border: none;
&+ .compendium-entity { &+ .compendium-entity {
margin-top: 4px; margin-top: 4px;
} }
h3 { h3 {
border: none; border: none;
color: @colorRed; color: @colorRed;
border-bottom: 2px solid @colorBlue; border-bottom: 2px solid @colorBlue;
.russoOne(17px); .russoOne(17px);
padding: 0; padding: 0;
margin-bottom: 4px; margin-bottom: 4px;
} }
ol.compendium-list { ol.compendium-list {
li.compendium-pack { li.compendium-pack {
margin: 0; margin: 0;
padding: 4px; padding: 4px;
border: none; border: none;
&:nth-child(even) { &:nth-child(even) {
background: rgba(@colorPaleBlue, 0.3); background: rgba(@colorPaleBlue, 0.3);
} }
.pack-title { .pack-title {
margin: 0; margin: 0;
position: relative; position: relative;
a { a {
.openSans(13px, 700); .openSans(13px, 700);
i { i {
display: none; display: none;
} }
} }
.status-icons { .status-icons {
top: 4px; top: 4px;
color: @colorLightGray; color: @colorLightGray;
font-size: 13px; font-size: 13px;
} }
} }
footer.compendium-footer { footer.compendium-footer {
color: @colorBlack; color: @colorBlack;
} }
} }
} }
} }
} }
#settings { #settings {
h2 { h2 {
color: @colorRed; color: @colorRed;
border: none; border: none;
border-bottom: 2px solid @colorBlue; border-bottom: 2px solid @colorBlue;
margin: 0 8px; margin: 0 8px;
padding: 0; padding: 0;
} }
#game-details, #settings-game, #settings-documentation, #settings-access { #game-details, #settings-game, #settings-documentation, #settings-access {
padding: 0 8px; padding: 0 8px;
margin: 0 0 8px; margin: 0 0 8px;
color: @colorBlack; color: @colorBlack;
} }
} }

View file

@ -1,47 +1,47 @@
@import "_variables.less"; @import "_variables.less";
@import "_variables-dark.less"; @import "_variables-dark.less";
body.dark-theme { body.dark-theme {
.app { .app {
background: @primaryBackground; background: @primaryBackground;
} }
h1, h1,
h2, h2,
h3, h3,
h4, h4,
h5, h5,
h6 { h6 {
color: @headingColor; color: @headingColor;
} }
h3 { h3 {
border-bottom: 2px solid @headerBorderColor; border-bottom: 2px solid @headerBorderColor;
} }
a { a {
color: @linkColor; color: @linkColor;
text-decoration: none; text-decoration: none;
&:hover, &:hover,
&:active { &:active {
text-shadow: none; text-shadow: none;
text-decoration: underline; text-decoration: underline;
} }
} }
blockquote { blockquote {
padding: 4px 8px; padding: 4px 8px;
background-color: @blockquoteBackground; background-color: @blockquoteBackground;
border: 1px solid @blockquoteBorder; border: 1px solid @blockquoteBorder;
box-shadow: @blockquoteShadow; box-shadow: @blockquoteShadow;
} }
hr { hr {
border-width: 0 0 1px 0; border-width: 0 0 1px 0;
border-bottom: 1px solid @hrColor; border-bottom: 1px solid @hrColor;
} }
@import "components/forms-themes.less"; @import "components/forms-themes.less";
@import "components/sidebar-themes.less"; @import "components/sidebar-themes.less";
@import "components/foundry-nav-themes.less"; @import "components/foundry-nav-themes.less";
@import "components/foundry-app-window-themes.less"; @import "components/foundry-app-window-themes.less";
@import "components/actor-themes.less"; @import "components/actor-themes.less";
} }

View file

@ -1,194 +1,194 @@
/* open-sans-regular - latin */ /* open-sans-regular - latin */
@font-face { @font-face {
font-family: 'Open Sans'; font-family: 'Open Sans';
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
src: url('./fonts/OpenSans-Regular.ttf'); src: url('./fonts/OpenSans-Regular.ttf');
} }
@font-face { @font-face {
font-family: 'Open Sans'; font-family: 'Open Sans';
font-style: italic; font-style: italic;
font-weight: 400; font-weight: 400;
src: url('./fonts/OpenSans-Italic.ttf'); src: url('./fonts/OpenSans-Italic.ttf');
} }
@font-face { @font-face {
font-family: 'Open Sans'; font-family: 'Open Sans';
font-style: normal; font-style: normal;
font-weight: 700; font-weight: 700;
src: url('./fonts/OpenSans-Bold.ttf'); src: url('./fonts/OpenSans-Bold.ttf');
} }
@font-face { @font-face {
font-family: 'Open Sans'; font-family: 'Open Sans';
font-style: italic; font-style: italic;
font-weight: 700; font-weight: 700;
src: url('./fonts/OpenSans-BoldItalic.ttf'); src: url('./fonts/OpenSans-BoldItalic.ttf');
} }
/* russo-one-regular - latin */ /* russo-one-regular - latin */
@font-face { @font-face {
font-family: 'Russo One'; font-family: 'Russo One';
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
src: url('./fonts/RussoOne.ttf'); src: url('./fonts/RussoOne.ttf');
} }
@font-face { @font-face {
font-family: 'Russo One'; font-family: 'Russo One';
font-style: italic; font-style: italic;
font-weight: 400; font-weight: 400;
src: url('./fonts/RussoOne.ttf'); src: url('./fonts/RussoOne.ttf');
} }
@font-face { @font-face {
font-family: 'Russo One'; font-family: 'Russo One';
font-style: normal; font-style: normal;
font-weight: 700; font-weight: 700;
src: url('./fonts/RussoOne.ttf'); src: url('./fonts/RussoOne.ttf');
} }
@font-face { @font-face {
font-family: 'Aurebesh'; font-family: 'Aurebesh';
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
src: url('./fonts/Aurebesh.ttf'); src: url('./fonts/Aurebesh.ttf');
} }
@font-face { @font-face {
font-family: 'Engli-Besh'; font-family: 'Engli-Besh';
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
src: url('./fonts/EngliBesh-KG3W.ttf'); src: url('./fonts/EngliBesh-KG3W.ttf');
} }
@import "_variables.less"; @import "_variables.less";
html { html {
box-sizing: border-box; box-sizing: border-box;
} }
*, *:before, *:after { *, *:before, *:after {
box-sizing: inherit; box-sizing: inherit;
} }
// ::-webkit-scrollbar { // ::-webkit-scrollbar {
// width: 6px; // width: 6px;
// height: 6px; // height: 6px;
// } // }
::-webkit-scrollbar-track { ::-webkit-scrollbar-track {
border: 1px solid @colorBlue; border: 1px solid @colorBlue;
border-radius: 4px; border-radius: 4px;
} }
::-webkit-scrollbar-thumb { ::-webkit-scrollbar-thumb {
outline: none; outline: none;
border-radius: 4px; border-radius: 4px;
background: @colorBlue; background: @colorBlue;
border: none; border: none;
} }
:root { :root {
scrollbar-width: thin; scrollbar-width: thin;
scrollbar-color: @colorBlue @colorPaleBlue; scrollbar-color: @colorBlue @colorPaleBlue;
} }
body { body {
.openSans(13px, 400); .openSans(13px, 400);
background-image: url('./ui/SW5e-logo.svg'); background-image: url('./ui/SW5e-logo.svg');
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: cover; background-size: cover;
} }
h1 { h1 {
.russoOne(34px); .russoOne(34px);
} }
h2 { h2 {
.russoOne(27px); .russoOne(27px);
} }
h3 { h3 {
.russoOne(21px); .russoOne(21px);
} }
h4 { h4 {
.russoOne(17px); .russoOne(17px);
} }
h5, h6 { h5, h6 {
.russoOne(13px); .russoOne(13px);
} }
a { a {
text-decoration: none; text-decoration: none;
&:hover, &:active { &:hover, &:active {
text-shadow: none; text-shadow: none;
text-decoration: underline; text-decoration: underline;
} }
} }
.app { .app {
border: none;// 1px solid @colorBlue; border: none;// 1px solid @colorBlue;
.dropShadow1(); .dropShadow1();
} }
#pause { #pause {
img {display: none;} img {display: none;}
background: none; background: none;
height: 128px; height: 128px;
&::before { &::before {
content: ''; content: '';
position: absolute; position: absolute;
top: 0; top: 0;
margin-left: -64px; margin-left: -64px;
left: 50%; left: 50%;
width: 128px; width: 128px;
height: 128px; height: 128px;
background: url("ui/pause-inner.svg") no-repeat 50% 50%; background: url("ui/pause-inner.svg") no-repeat 50% 50%;
animation-name: pause-spin; animation-name: pause-spin;
animation-duration: 10000ms; animation-duration: 10000ms;
animation-iteration-count: infinite; animation-iteration-count: infinite;
animation-timing-function: linear; animation-timing-function: linear;
} }
&::after { &::after {
content: ''; content: '';
position: absolute; position: absolute;
top: 0; top: 0;
margin-left: -64px; margin-left: -64px;
left: 50%; left: 50%;
width: 128px; width: 128px;
height: 128px; height: 128px;
background: url("ui/pause-outer.svg") no-repeat 50% 50%; background: url("ui/pause-outer.svg") no-repeat 50% 50%;
animation-name: pause-spin; animation-name: pause-spin;
animation-duration: 5000ms; animation-duration: 5000ms;
animation-iteration-count: infinite; animation-iteration-count: infinite;
animation-timing-function: linear; animation-timing-function: linear;
animation-direction: reverse; animation-direction: reverse;
} }
h3 { h3 {
border-bottom: 0; border-bottom: 0;
line-height: 1; line-height: 1;
position: absolute; position: absolute;
top: 50%; top: 50%;
left: 50%; left: 50%;
width: 256px; width: 256px;
margin-left: -128px; margin-left: -128px;
margin-top: -13px; margin-top: -13px;
text-shadow: 0 0 24px @colorBlue; text-shadow: 0 0 24px @colorBlue;
&::before, &::after { &::before, &::after {
position: absolute; position: absolute;
font-family: "Aurebesh", sans-serif; font-family: "Aurebesh", sans-serif;
font-size: 13px; font-size: 13px;
color: @colorGray; color: @colorGray;
animation: none; animation: none;
opacity: 0.8; opacity: 0.8;
text-shadow: 0 0 8px @colorBlue; text-shadow: 0 0 8px @colorBlue;
} }
&::before { &::before {
content: "GAME"; content: "GAME";
top: -13px; top: -13px;
left: 42px; left: 42px;
} }
&::after { &::after {
content: "PAUSED"; content: "PAUSED";
bottom: -13px; bottom: -13px;
right: 42px; right: 42px;
} }
} }
} }
@import "components/forms-global.less"; @import "components/forms-global.less";
@import "components/sidebar-global.less"; @import "components/sidebar-global.less";
@import "components/actor-global.less"; @import "components/actor-global.less";
@keyframes pause-spin { @keyframes pause-spin {
from { from {
transform:rotate(0deg); transform:rotate(0deg);
} }
to { to {
transform: rotate(360deg); transform: rotate(360deg);
} }
} }

View file

@ -1,47 +1,47 @@
@import "_variables.less"; @import "_variables.less";
@import "_variables-light.less"; @import "_variables-light.less";
body.light-theme { body.light-theme {
.app { .app {
background: @primaryBackground; background: @primaryBackground;
} }
h1, h1,
h2, h2,
h3, h3,
h4, h4,
h5, h5,
h6 { h6 {
color: @headingColor; color: @headingColor;
} }
h3 { h3 {
border-bottom: 2px solid @headerBorderColor; border-bottom: 2px solid @headerBorderColor;
} }
a { a {
color: @linkColor; color: @linkColor;
text-decoration: none; text-decoration: none;
&:hover, &:hover,
&:active { &:active {
text-shadow: none; text-shadow: none;
text-decoration: underline; text-decoration: underline;
} }
} }
blockquote { blockquote {
padding: 4px 8px; padding: 4px 8px;
background-color: @blockquoteBackground; background-color: @blockquoteBackground;
border: 1px solid @blockquoteBorder; border: 1px solid @blockquoteBorder;
box-shadow: @blockquoteShadow; box-shadow: @blockquoteShadow;
} }
hr { hr {
border-width: 0 0 1px 0; border-width: 0 0 1px 0;
border-bottom: 1px solid @hrColor; border-bottom: 1px solid @hrColor;
} }
@import "components/forms-themes.less"; @import "components/forms-themes.less";
@import "components/sidebar-themes.less"; @import "components/sidebar-themes.less";
@import "components/foundry-nav-themes.less"; @import "components/foundry-nav-themes.less";
@import "components/foundry-app-window-themes.less"; @import "components/foundry-app-window-themes.less";
@import "components/actor-themes.less"; @import "components/actor-themes.less";
} }

View file

@ -1,61 +1,61 @@
@import "variables.less"; @import "variables.less";
a { a {
color: @colorRed; color: @colorRed;
text-decoration: none; text-decoration: none;
&:hover, &:active { &:hover, &:active {
text-shadow: none; text-shadow: none;
text-decoration: underline; text-decoration: underline;
} }
} }
.app { .app {
background: @sheetBackground; background: @sheetBackground;
border: none;// 1px solid @colorBlue; border: none;// 1px solid @colorBlue;
.dropShadow1(); .dropShadow1();
} }
#context-menu { #context-menu {
background: none; background: none;
border: none; border: none;
border-radius: 0; border-radius: 0;
color: @colorBlack; color: @colorBlack;
padding: 0 8px; padding: 0 8px;
ol.context-items { ol.context-items {
background: white; background: white;
border-radius: 4px; border-radius: 4px;
border: 1px solid @colorLightGray; border: 1px solid @colorLightGray;
.dropShadow2(); .dropShadow2();
li.context-item { li.context-item {
&:first-child { &:first-child {
border-top-left-radius: 4px; border-top-left-radius: 4px;
border-top-right-radius: 4px; border-top-right-radius: 4px;
} }
&:last-child { &:last-child {
border-bottom-left-radius: 4px; border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px; border-bottom-right-radius: 4px;
} }
i { i {
color: @colorBlue; color: @colorBlue;
} }
&:hover { &:hover {
background: @colorRed; background: @colorRed;
color: white; color: white;
text-shadow: none; text-shadow: none;
cursor: pointer; cursor: pointer;
i { i {
color: white; color: white;
} }
} }
& + li { & + li {
border-top: 1px solid @colorPaleGray; border-top: 1px solid @colorPaleGray;
} }
} }
} }
} }
@import "components/forms.less"; @import "components/forms.less";
@import "components/sidebar.less"; @import "components/sidebar.less";

121
module/characterImporter.js Normal file
View file

@ -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("<button class='create-entity' id='cs-import-button'><i class='fas fa-upload'></i> Import Character</button>");
newSearch.appendTo(header);
let characterImportButton = $("#cs-import-button");
characterImportButton.click(ev => {
let content = '<h1>Saved Character JSON Import</h1> '
+ '<label for="character-json">Paste character JSON here:</label> '
+ '</br>'
+ '<textarea id="character-json" name="character-json" rows="10" cols="50"></textarea>';
let importDialog = new Dialog({
title: "Import Character from SW5e.com",
content: content,
buttons: {
"Import": {
icon: '<i class="fas fa-file-import"></i>',
label: "Import Character",
callback: (e) => {
let characterData = $('#character-json').val();
console.log('Parsing Character JSON');
CharacterImporter.transform(characterData);
}
},
"Cancel": {
icon: '<i class="fas fa-times-circle"></i>',
label: "Cancel",
callback: () => {},
}
}
})
importDialog.render(true);
});
}
}

File diff suppressed because it is too large Load diff

554
sw5e.js
View file

@ -1,277 +1,279 @@
/** /**
* The Star Wars 5th Edition game system for Foundry Virtual Tabletop * The Star Wars 5th Edition game system for Foundry Virtual Tabletop
* Author: Kakeman89 * Author: Kakeman89
* Software License: GNU GPLv3 * Software License: GNU GPLv3
* Content License: https://media.wizards.com/2016/downloads/SW5E/SRD-OGL_V5.1.pdf * Content License: https://media.wizards.com/2016/downloads/SW5E/SRD-OGL_V5.1.pdf
* Repository: https://gitlab.com/foundrynet/sw5e * Repository: https://gitlab.com/foundrynet/sw5e
* Issue Tracker: https://gitlab.com/foundrynet/sw5e/issues * Issue Tracker: https://gitlab.com/foundrynet/sw5e/issues
*/ */
// Import Modules // Import Modules
import { SW5E } from "./module/config.js"; import { SW5E } from "./module/config.js";
import { registerSystemSettings } from "./module/settings.js"; import { registerSystemSettings } from "./module/settings.js";
import { preloadHandlebarsTemplates } from "./module/templates.js"; import { preloadHandlebarsTemplates } from "./module/templates.js";
import { _getInitiativeFormula } from "./module/combat.js"; import { _getInitiativeFormula } from "./module/combat.js";
import { measureDistances, getBarAttribute } from "./module/canvas.js"; import { measureDistances, getBarAttribute } from "./module/canvas.js";
// Import Entities // Import Entities
import Actor5e from "./module/actor/entity.js"; import Actor5e from "./module/actor/entity.js";
import Item5e from "./module/item/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 Applications
import AbilityUseDialog from "./module/apps/ability-use-dialog.js"; import AbilityTemplate from "./module/pixi/ability-template.js";
import ActorSheetFlags from "./module/apps/actor-flags.js"; import AbilityUseDialog from "./module/apps/ability-use-dialog.js";
import ActorSheet5eCharacter from "./module/actor/sheets/oldSheets/character.js"; import ActorSheetFlags from "./module/apps/actor-flags.js";
import ActorSheet5eNPC from "./module/actor/sheets/oldSheets/npc.js"; import ActorSheet5eCharacter from "./module/actor/sheets/oldSheets/character.js";
import ActorSheet5eVehicle from "./module/actor/sheets/oldSheets/vehicle.js"; import ActorSheet5eNPC from "./module/actor/sheets/oldSheets/npc.js";
import ActorSheet5eCharacterNew from "./module/actor/sheets/newSheet/character.js"; import ActorSheet5eVehicle from "./module/actor/sheets/oldSheets/vehicle.js";
import ActorSheet5eNPCNew from "./module/actor/sheets/newSheet/npc.js"; import ActorSheet5eCharacterNew from "./module/actor/sheets/newSheet/character.js";
import ItemSheet5e from "./module/item/sheet.js"; import ActorSheet5eNPCNew from "./module/actor/sheets/newSheet/npc.js";
import ShortRestDialog from "./module/apps/short-rest.js"; import ItemSheet5e from "./module/item/sheet.js";
import TraitSelector from "./module/apps/trait-selector.js"; import ShortRestDialog from "./module/apps/short-rest.js";
import ActorMovementConfig from "./module/apps/movement-config.js"; import TraitSelector from "./module/apps/trait-selector.js";
import ActorSensesConfig from "./module/apps/senses-config.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 Helpers
import * as dice from "./module/dice.js"; import * as chat from "./module/chat.js";
import * as macros from "./module/macros.js"; import * as dice from "./module/dice.js";
import * as migrations from "./module/migration.js"; import * as macros from "./module/macros.js";
import * as migrations from "./module/migration.js";
/* -------------------------------------------- */
/* Foundry VTT Initialization */ /* -------------------------------------------- */
/* -------------------------------------------- */ /* Foundry VTT Initialization */
/* -------------------------------------------- */
Hooks.once("init", function() {
console.log(`SW5e | Initializing SW5E System\n${SW5E.ASCII}`); Hooks.once("init", function() {
console.log(`SW5e | Initializing SW5E System\n${SW5E.ASCII}`);
// Create a SW5E namespace within the game global
game.sw5e = { // Create a SW5E namespace within the game global
applications: { game.sw5e = {
AbilityUseDialog, applications: {
ActorSheetFlags, AbilityUseDialog,
ActorSheet5eCharacter, ActorSheetFlags,
ActorSheet5eCharacterNew, ActorSheet5eCharacter,
ActorSheet5eNPC, ActorSheet5eCharacterNew,
ActorSheet5eNPCNew, ActorSheet5eNPC,
ActorSheet5eVehicle, ActorSheet5eNPCNew,
ItemSheet5e, ActorSheet5eVehicle,
ShortRestDialog, ItemSheet5e,
TraitSelector, ShortRestDialog,
ActorMovementConfig TraitSelector,
}, ActorMovementConfig
canvas: { },
AbilityTemplate canvas: {
}, AbilityTemplate
config: SW5E, },
dice: dice, config: SW5E,
entities: { dice: dice,
Actor5e, entities: {
Item5e, Actor5e,
}, Item5e,
macros: macros, },
migrations: migrations, macros: macros,
rollItemMacro: macros.rollItemMacro migrations: migrations,
}; rollItemMacro: macros.rollItemMacro
};
// Record Configuration Values
CONFIG.SW5E = SW5E; // Record Configuration Values
CONFIG.Actor.entityClass = Actor5e; CONFIG.SW5E = SW5E;
CONFIG.Item.entityClass = Item5e; CONFIG.Actor.entityClass = Actor5e;
CONFIG.time.roundTime = 6; CONFIG.Item.entityClass = Item5e;
CONFIG.fontFamilies = [ CONFIG.time.roundTime = 6;
"Engli-Besh", CONFIG.fontFamilies = [
"Open Sans", "Engli-Besh",
"Russo One" "Open Sans",
]; "Russo One"
];
// 5e cone RAW should be 53.13 degrees
CONFIG.MeasuredTemplate.defaults.angle = 53.13; // 5e cone RAW should be 53.13 degrees
CONFIG.MeasuredTemplate.defaults.angle = 53.13;
// Add DND5e namespace for module compatability
game.dnd5e = game.sw5e; // Add DND5e namespace for module compatability
CONFIG.DND5E = CONFIG.SW5E; game.dnd5e = game.sw5e;
CONFIG.DND5E = CONFIG.SW5E;
// Register System Settings
registerSystemSettings(); // Register System Settings
registerSystemSettings();
// Patch Core Functions
CONFIG.Combat.initiative.formula = "1d20 + @attributes.init.mod + @attributes.init.prof + @attributes.init.bonus"; // Patch Core Functions
Combat.prototype._getInitiativeFormula = _getInitiativeFormula; 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); // Register sheet application classes
Actors.registerSheet("sw5e", ActorSheet5eCharacterNew, { Actors.unregisterSheet("core", ActorSheet);
types: ["character"], Actors.registerSheet("sw5e", ActorSheet5eCharacterNew, {
makeDefault: true, types: ["character"],
label: "SW5E.SheetClassCharacter" makeDefault: true,
}); label: "SW5E.SheetClassCharacter"
Actors.registerSheet("sw5e", ActorSheet5eCharacter, { });
types: ["character"], Actors.registerSheet("sw5e", ActorSheet5eCharacter, {
makeDefault: false, types: ["character"],
label: "SW5E.SheetClassCharacterOld" makeDefault: false,
}); label: "SW5E.SheetClassCharacterOld"
Actors.registerSheet("sw5e", ActorSheet5eNPCNew, { });
types: ["npc"], Actors.registerSheet("sw5e", ActorSheet5eNPCNew, {
makeDefault: true, types: ["npc"],
label: "SW5E.SheetClassNPC" makeDefault: true,
}); label: "SW5E.SheetClassNPC"
Actors.registerSheet("sw5e", ActorSheet5eNPC, { });
types: ["npc"], Actors.registerSheet("sw5e", ActorSheet5eNPC, {
makeDefault: false, types: ["npc"],
label: "SW5E.SheetClassNPCOld" makeDefault: false,
}); label: "SW5E.SheetClassNPCOld"
Actors.registerSheet('sw5e', ActorSheet5eVehicle, { });
types: ['vehicle'], Actors.registerSheet('sw5e', ActorSheet5eVehicle, {
makeDefault: true, types: ['vehicle'],
label: "SW5E.SheetClassVehicle" makeDefault: true,
}); label: "SW5E.SheetClassVehicle"
Items.unregisterSheet("core", ItemSheet); });
Items.registerSheet("sw5e", ItemSheet5e, { Items.unregisterSheet("core", ItemSheet);
types: ['weapon', 'equipment', 'consumable', 'tool', 'loot', 'class', 'power', 'feat', 'species', 'backpack', 'archetype', 'classfeature', 'background', 'fightingmastery', 'fightingstyle', 'lightsaberform'], Items.registerSheet("sw5e", ItemSheet5e, {
makeDefault: true, types: ['weapon', 'equipment', 'consumable', 'tool', 'loot', 'class', 'power', 'feat', 'species', 'backpack', 'archetype', 'classfeature', 'background', 'fightingmastery', 'fightingstyle', 'lightsaberform'],
label: "SW5E.SheetClassItem" makeDefault: true,
}); label: "SW5E.SheetClassItem"
});
// Preload Handlebars Templates
preloadHandlebarsTemplates(); // Preload Handlebars Templates
}); preloadHandlebarsTemplates();
});
/* -------------------------------------------- */
/* Foundry VTT Setup */ /* -------------------------------------------- */
/* -------------------------------------------- */ /* Foundry VTT Setup */
/* -------------------------------------------- */
/**
* This function runs after game data has been requested and loaded from the servers, so entities exist /**
*/ * This function runs after game data has been requested and loaded from the servers, so entities exist
Hooks.once("setup", function() { */
Hooks.once("setup", function() {
// Localize CONFIG objects once up-front
const toLocalize = [ // Localize CONFIG objects once up-front
"abilities", "abilityAbbreviations", "abilityActivationTypes", "abilityConsumptionTypes", "actorSizes", "alignments", const toLocalize = [
"armorProficiencies", "armorPropertiesTypes", "conditionTypes", "consumableTypes", "cover", "currencies", "damageResistanceTypes", "abilities", "abilityAbbreviations", "abilityActivationTypes", "abilityConsumptionTypes", "actorSizes", "alignments",
"damageTypes", "distanceUnits", "equipmentTypes", "healingTypes", "itemActionTypes", "languages", "armorProficiencies", "armorPropertiesTypes", "conditionTypes", "consumableTypes", "cover", "currencies", "damageResistanceTypes",
"limitedUsePeriods", "movementTypes", "movementUnits", "polymorphSettings", "proficiencyLevels", "senses", "skills", "damageTypes", "distanceUnits", "equipmentTypes", "healingTypes", "itemActionTypes", "languages",
"powerComponents", "powerLevels", "powerPreparationModes", "powerScalingModes", "powerSchools", "targetTypes", "limitedUsePeriods", "movementTypes", "movementUnits", "polymorphSettings", "proficiencyLevels", "senses", "skills",
"timePeriods", "toolProficiencies", "weaponProficiencies", "weaponProperties", "weaponTypes" "powerComponents", "powerLevels", "powerPreparationModes", "powerScalingModes", "powerSchools", "targetTypes",
]; "timePeriods", "toolProficiencies", "weaponProficiencies", "weaponProperties", "weaponTypes"
];
// Exclude some from sorting where the default order matters
const noSort = [ // Exclude some from sorting where the default order matters
"abilities", "alignments", "currencies", "distanceUnits", "movementUnits", "itemActionTypes", "proficiencyLevels", const noSort = [
"limitedUsePeriods", "powerComponents", "powerLevels", "powerPreparationModes", "weaponTypes" "abilities", "alignments", "currencies", "distanceUnits", "movementUnits", "itemActionTypes", "proficiencyLevels",
]; "limitedUsePeriods", "powerComponents", "powerLevels", "powerPreparationModes", "weaponTypes"
];
// Localize and sort CONFIG objects
for ( let o of toLocalize ) { // Localize and sort CONFIG objects
const localized = Object.entries(CONFIG.SW5E[o]).map(e => { for ( let o of toLocalize ) {
return [e[0], game.i18n.localize(e[1])]; 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) => { if ( !noSort.includes(o) ) localized.sort((a, b) => a[1].localeCompare(b[1]));
obj[e[0]] = e[1]; CONFIG.SW5E[o] = localized.reduce((obj, e) => {
return obj; obj[e[0]] = e[1];
}, {}); return obj;
} }, {});
// add DND5E translation for module compatability }
game.i18n.translations.DND5E = game.i18n.translations.SW5E; // add DND5E translation for module compatability
// console.log(game.settings.get("sw5e", "colorTheme")); game.i18n.translations.DND5E = game.i18n.translations.SW5E;
let theme = game.settings.get("sw5e", "colorTheme") + '-theme'; // console.log(game.settings.get("sw5e", "colorTheme"));
document.body.classList.add(theme); 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 /**
*/ * Once the entire VTT framework is initialized, check to see if we should perform a data migration
Hooks.once("ready", function() { */
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)); // 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; // Determine whether a system migration is required and feasible
const currentVersion = game.settings.get("sw5e", "systemMigrationVersion"); if ( !game.user.isGM ) return;
const NEEDS_MIGRATION_VERSION = "1.2.1"; const currentVersion = game.settings.get("sw5e", "systemMigrationVersion");
const COMPATIBLE_MIGRATION_VERSION = 0.80; const NEEDS_MIGRATION_VERSION = "1.2.1";
const needsMigration = currentVersion && isNewerVersion(NEEDS_MIGRATION_VERSION, currentVersion); const COMPATIBLE_MIGRATION_VERSION = 0.80;
if ( !needsMigration ) return; const needsMigration = currentVersion && isNewerVersion(NEEDS_MIGRATION_VERSION, currentVersion);
if ( !needsMigration ) return;
// Perform the migration
if ( currentVersion && isNewerVersion(COMPATIBLE_MIGRATION_VERSION, currentVersion) ) { // Perform the migration
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.`; if ( currentVersion && isNewerVersion(COMPATIBLE_MIGRATION_VERSION, currentVersion) ) {
ui.notifications.error(warning, {permanent: true}); 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(); }
}); migrations.migrateWorld();
});
/* -------------------------------------------- */
/* Canvas Initialization */ /* -------------------------------------------- */
/* -------------------------------------------- */ /* Canvas Initialization */
/* -------------------------------------------- */
Hooks.on("canvasInit", function() {
Hooks.on("canvasInit", function() {
// Extend Diagonal Measurement
canvas.grid.diagonalRule = game.settings.get("sw5e", "diagonalMovement"); // Extend Diagonal Measurement
SquareGrid.prototype.measureDistances = measureDistances; canvas.grid.diagonalRule = game.settings.get("sw5e", "diagonalMovement");
SquareGrid.prototype.measureDistances = measureDistances;
// Extend Token Resource Bars
Token.prototype.getBarAttribute = getBarAttribute; // Extend Token Resource Bars
}); Token.prototype.getBarAttribute = getBarAttribute;
});
/* -------------------------------------------- */
/* Other Hooks */ /* -------------------------------------------- */
/* -------------------------------------------- */ /* Other Hooks */
/* -------------------------------------------- */
Hooks.on("renderChatMessage", (app, html, data) => {
Hooks.on("renderChatMessage", (app, html, data) => {
// Display action buttons
chat.displayChatActionButtons(app, html, data); // Display action buttons
chat.displayChatActionButtons(app, html, data);
// Highlight critical success or failure die
chat.highlightCriticalSuccessFailure(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(); // 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("getChatLogEntryContext", chat.addChatMessageContextOptions);
Hooks.on("renderChatPopout", (app, html, data) => Item5e.chatListeners(html)); Hooks.on("renderChatLog", (app, html, data) => Item5e.chatListeners(html));
Hooks.on('getActorDirectoryEntryContext', Actor5e.addDirectoryContextOptions); Hooks.on("renderChatPopout", (app, html, data) => Item5e.chatListeners(html));
Hooks.on("renderSceneDirectory", (app, html, data)=> { Hooks.on('getActorDirectoryEntryContext', Actor5e.addDirectoryContextOptions);
//console.log(html.find("header.folder-header")); Hooks.on("renderSceneDirectory", (app, html, data)=> {
setFolderBackground(html); //console.log(html.find("header.folder-header"));
}); setFolderBackground(html);
Hooks.on("renderActorDirectory", (app, html, data)=> { });
setFolderBackground(html); Hooks.on("renderActorDirectory", (app, html, data)=> {
}); setFolderBackground(html);
Hooks.on("renderItemDirectory", (app, html, data)=> { CharacterImporter.addImportButton(html);
setFolderBackground(html); });
}); Hooks.on("renderItemDirectory", (app, html, data)=> {
Hooks.on("renderJournalDirectory", (app, html, data)=> { setFolderBackground(html);
setFolderBackground(html); });
}); Hooks.on("renderJournalDirectory", (app, html, data)=> {
Hooks.on("renderRollTableDirectory", (app, html, data)=> { setFolderBackground(html);
setFolderBackground(html); });
}); Hooks.on("renderRollTableDirectory", (app, html, data)=> {
Hooks.on("ActorSheet5eCharacterNew", (app, html, data) => { setFolderBackground(html);
console.log("renderSwaltSheet"); });
}); Hooks.on("ActorSheet5eCharacterNew", (app, html, data) => {
// TODO I should remove this console.log("renderSwaltSheet");
Handlebars.registerHelper('getProperty', function (data, property) { });
return getProperty(data, property); // 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"); function setFolderBackground(html) {
if(bgColor == undefined) html.find("header.folder-header").each(function() {
bgColor = "rgb(255,255,255)"; let bgColor = $(this).css("background-color");
$(this).closest('li').css("background-color", bgColor); if(bgColor == undefined)
}) bgColor = "rgb(255,255,255)";
$(this).closest('li').css("background-color", bgColor);
})
} }

View file

@ -1,22 +1,22 @@
<div class="panel additional-info"> <div class="panel additional-info">
<section><h1 class="section-titles biopage">Personality Traits</h1> <section><h1 class="section-titles biopage">Personality Traits</h1>
{{editor content=data.details.trait target="data.details.trait" button=true owner=owner editable=editable}} {{editor content=data.details.trait target="data.details.trait" button=true owner=owner editable=editable}}
</section> </section>
<section><h1 class="section-titles biopage">Ideals</h1> <section><h1 class="section-titles biopage">Ideals</h1>
{{editor content=data.details.ideal target="data.details.ideal" button=true owner=owner editable=editable}} {{editor content=data.details.ideal target="data.details.ideal" button=true owner=owner editable=editable}}
</section> </section>
<section><h1 class="section-titles biopage">Bonds</h1> <section><h1 class="section-titles biopage">Bonds</h1>
{{editor content=data.details.bond target="data.details.bond" button=true owner=owner editable=editable}} {{editor content=data.details.bond target="data.details.bond" button=true owner=owner editable=editable}}
</section> </section>
<section><h1 class="section-titles biopage">Flaws</h1> <section><h1 class="section-titles biopage">Flaws</h1>
{{editor content=data.details.flaw target="data.details.flaw" button=true owner=owner editable=editable}} {{editor content=data.details.flaw target="data.details.flaw" button=true owner=owner editable=editable}}
</section> </section>
</div> </div>
<div class="panel background"> <div class="panel background">
<section><h1 class="section-titles biopage">Description</h1> <section><h1 class="section-titles biopage">Description</h1>
{{editor content=data.details.description.value target="data.details.description.value" button=true owner=owner editable=editable}} {{editor content=data.details.description.value target="data.details.description.value" button=true owner=owner editable=editable}}
</section> </section>
<section><h1 class="section-titles">Background</h1> <section><h1 class="section-titles">Background</h1>
{{editor content=data.details.biography.value target="data.details.biography.value" button=true owner=owner editable=editable}} {{editor content=data.details.biography.value target="data.details.biography.value" button=true owner=owner editable=editable}}
</section> </section>
</div> </div>

View file

@ -1,33 +1,33 @@
<div class="panel"> <div class="panel">
<section class="background"> <section class="background">
<input type="text" name="data.details.notesname" value="{{data.details.notesname}}" <input type="text" name="data.details.notesname" value="{{data.details.notesname}}"
placeholder="Personal Journal" /> placeholder="Personal Journal" />
{{editor content=data.details.notes.value target="data.details.notes.value" button=true owner=owner editable=editable}} {{editor content=data.details.notes.value target="data.details.notes.value" button=true owner=owner editable=editable}}
</section> </section>
<section> <section>
<input type="text" name="data.details.notes1name" value="{{data.details.notes1name}}" <input type="text" name="data.details.notes1name" value="{{data.details.notes1name}}"
placeholder="Additional Notes" /> placeholder="Additional Notes" />
{{editor content=data.details.notes1.value target="data.details.notes1.value" button=true owner=owner editable=editable}} {{editor content=data.details.notes1.value target="data.details.notes1.value" button=true owner=owner editable=editable}}
</section> </section>
<section> <section>
<input type="text" name="data.details.notes2name" value="{{data.details.notes2name}}" <input type="text" name="data.details.notes2name" value="{{data.details.notes2name}}"
placeholder="Additional Notes" /> placeholder="Additional Notes" />
{{editor content=data.details.notes2.value target="data.details.notes2.value" button=true owner=owner editable=editable}} {{editor content=data.details.notes2.value target="data.details.notes2.value" button=true owner=owner editable=editable}}
</section> </section>
<section> <section>
<input type="text" name="data.details.notes3name" value="{{data.details.notes3name}}" <input type="text" name="data.details.notes3name" value="{{data.details.notes3name}}"
placeholder="Additional Notes" /> placeholder="Additional Notes" />
{{editor content=data.details.notes3.value target="data.details.notes3.value" button=true owner=owner editable=editable}} {{editor content=data.details.notes3.value target="data.details.notes3.value" button=true owner=owner editable=editable}}
</section> </section>
<section> <section>
<input type="text" name="data.details.notes4name" value="{{data.details.notes4name}}" <input type="text" name="data.details.notes4name" value="{{data.details.notes4name}}"
placeholder="Additional Notes" /> placeholder="Additional Notes" />
{{editor content=data.details.notes4.value target="data.details.notes4.value" button=true owner=owner editable=editable}} {{editor content=data.details.notes4.value target="data.details.notes4.value" button=true owner=owner editable=editable}}
</section> </section>
</section> </section>
</div> </div>

View file

@ -1,11 +1,11 @@
<div id="{{id}}" class="app window-app {{classes}} this-is-my-custom-window" data-appid="{{appId}}"> <div id="{{id}}" class="app window-app {{classes}} this-is-my-custom-window" data-appid="{{appId}}">
<header class="window-header flexrow"> <header class="window-header flexrow">
<h4 class="window-title">{{title}}</h4> <h4 class="window-title">{{title}}</h4>
{{#each headerButtons}} {{#each headerButtons}}
<a class="header-button {{this.class}}"><i class="{{this.icon}}"></i></a> <a class="header-button {{this.class}}"><i class="{{this.icon}}"></i></a>
{{/each}} {{/each}}
</header> </header>
<section class="window-content"> <section class="window-content">
</section> </section>
</div> </div>