Initial commit: Fresh start with current state

This commit is contained in:
Claude Code
2025-11-06 14:04:48 +01:00
commit 15355c35ea
20152 changed files with 1191077 additions and 0 deletions

View File

@@ -0,0 +1,787 @@
.pf1.sheet.actor {
min-width: 672px;
min-height: 736px;
/* ----------------------------------------- */
/* Sheet Header */
/* ----------------------------------------- */
.charactermancer {
&.warning {
flex: 0;
background-color: var(--pf1-warning-bg);
border: 1px solid var(--pf1-warning-border);
border-radius: 2px;
padding: 0.2em 0.5em;
}
}
.tab {
footer {
flex: 0;
}
/* ----------------------------------------- */
/* Summary Tab */
/* ----------------------------------------- */
&.summary {
.summary-header {
display: flex;
flex-flow: row nowrap;
flex: 0;
border-bottom: var(--pf1-border-groove);
display: flex;
flex-flow: row nowrap;
gap: 2px;
.basic-info {
flex: 4;
border-left: var(--pf1-border-groove);
padding: 0 0 0 0.3em;
}
.name-xp {
flex: 0;
gap: 3px;
h1.char-name {
flex: 3 0 300px;
line-height: 1.5em;
margin: 0;
input {
height: 100%;
padding: 0;
}
}
}
.character-summary {
flex: 0;
& > div {
flex: 0 0 33%;
//height: 32px;
line-height: 2;
border-right: var(--pf1-border-groove);
border-bottom: var(--pf1-border-groove);
align-content: center;
&:nth-child(3n + 0) {
border-right: none;
}
&.alignment {
padding: 1px 3px;
}
}
}
}
.pseudo-table {
background: var(--pf1-bg-dark-0);
border-top: 1px solid #7a7971;
border-bottom: 1px solid #7a7971;
ul {
margin: 0;
padding: 0;
}
.header,
.sub-header {
margin: 0;
color: #f0f0e0;
text-shadow: 1px 1px #000;
}
.header,
.sub-header,
.value {
width: 100%;
text-align: center;
line-height: 1.5;
flex: 0;
}
.value {
flex: 1;
line-height: 2;
padding: 0;
margin: 0;
}
.header {
font-weight: bold;
background: var(--pf1-bg-dark-4);
}
.sub-header {
background: var(--pf1-bg-dark-3);
}
}
.attributes > .attribute {
margin: 0;
border-left: none;
border-bottom: none;
border-top: var(--pf1-border-groove);
border-right: var(--pf1-border-groove);
border-radius: 0;
height: auto;
}
img.profile {
flex: 0 0 160px;
width: 160px;
height: 160px;
padding: 0 3px;
object-fit: contain;
border: none;
}
.misc-header-items {
flex: 0.5;
.actor-quick-actions {
display: flex;
justify-content: space-evenly;
flex-flow: row wrap;
button {
min-height: 24px;
line-height: 1.5;
}
}
}
.attributes {
display: flex;
flex-flow: row;
gap: 3px;
flex: 0;
.wounds-vigor {
display: flex;
flex-flow: row;
gap: 3px;
}
.health-details {
flex: 4;
.wounds {
flex: 2;
}
.vigor {
flex: 3;
}
.speed-details {
flex: 3.5;
}
}
.speed-details {
flex: 5;
.fly-details {
flex: 3;
.maneuverability-details {
flex: 2;
}
}
}
.health-details {
&.wounds-vigor {
flex: 5;
}
}
li {
padding: 0;
border-top: var(--pf1-border-groove);
&:not(:last-child) {
border-right: var(--pf1-border-groove);
}
}
}
.subdetails-body {
.quick-info {
h3 {
// Override Foundry bottom margin (0.5rem)
margin-bottom: 0.2rem;
}
}
}
.quick-info {
.generic-defenses {
h3 {
margin: 0;
border: unset;
}
}
}
// Note: Only used by alignment selection
.controls {
.control {
flex: 0;
visibility: hidden;
margin-right: 4px;
}
&:hover {
.control {
visibility: visible;
}
}
}
}
.alignment {
color: black;
}
/* ----------------------------------------- */
/* General Styles */
/* ----------------------------------------- */
// Box Headers
h4.box-title {
line-height: 16px;
margin: 4px 8px 2px;
font-size: var(--font-size-20);
border-bottom: 1px solid var(--color-border-light-secondary);
}
/* ----------------------------------------- */
/* Attributes */
/* ----------------------------------------- */
&.attributes {
.traits {
overflow: hidden auto;
.scrollbar();
> * {
flex: 0 0 24px;
.itemBackground();
}
}
table {
margin: 0;
}
}
ul.attributes.misc-base,
ul.attributes.misc-defenses {
.attribute-footer input {
width: 100%;
}
}
.attributes-root {
flex: 0 0 30%;
}
ul.attributes {
list-style: none;
margin: 0;
padding: 0;
flex: 0;
h3 {
margin: 0;
}
table {
span.text-box,
input[type="text"] {
height: 20px;
padding: 1px 3px;
}
}
}
/* ----------------------------------------- */
/* Defenses */
/* ----------------------------------------- */
.defenses {
.attributes {
flex: 0;
}
.attribute .attribute-footer input {
width: 32px;
}
}
/* ----------------------------------------- */
/* Ability Scores */
/* ----------------------------------------- */
&.attributes {
.ability-scores {
flex: 0;
display: flex;
flex-flow: column nowrap;
gap: 2px;
}
}
.bottom {
overflow-y: auto;
.scrollbar();
}
/* ----------------------------------------- */
/* Buffs & Conditions */
/* ----------------------------------------- */
.condition {
flex: 0;
margin: 2px;
flex-basis: calc(20% - 4px);
display: flex;
align-items: center;
> a {
font-size: var(--font-size-12);
flex: 1;
}
> .compendium-entry {
display: none;
flex: 0;
}
&:hover {
> .compendium-entry {
display: inline;
}
}
}
/* ----------------------------------------- */
/* Traits */
/* ----------------------------------------- */
.traits {
overflow-x: hidden;
overflow-y: hidden;
margin: 0 5px;
.form-group,
.form-group-stacked {
margin: 0;
justify-content: space-between;
}
.trait-selector,
.senses-selector,
.resistance-selector {
flex: 0 0 16px;
padding: 2px 0;
color: var(--pf1-control-color);
font-size: var(--font-size-14);
}
.configure-flags {
flex: 1;
}
.checkbox {
text-align: right;
justify-content: end;
}
.traits-list {
list-style: none;
margin: 0;
padding: 0;
text-align: right;
justify-content: end;
align-items: center;
}
select {
flex: 0 0 180px;
}
label {
flex: 0 0 150px;
line-height: 20px;
font-weight: bold;
margin: 0;
text-align: right;
}
input {
text-align: right;
}
i.fas {
margin-right: 3px;
text-align: right;
&:hover {
text-shadow: 0 0 10px red;
}
}
.inactive {
color: var(--pf1-tan);
}
}
/* ----------------------------------------- */
/* Inventory Lists */
/* ----------------------------------------- */
/* Encumbrance Bar */
.encumbrance {
height: 12px;
background: var(--pf1-tan);
margin: 1px 15px 0 1px;
border: 1px solid var(--color-border-dark-2);
border-radius: 3px;
position: relative;
.encumbrance-bar {
position: absolute;
top: 1px;
left: 1px;
background: #6c8aa5;
height: 8px;
border: 1px solid #cde4ff;
border-radius: 2px;
}
.encumbrance-label {
height: 10px;
padding: 0 5px;
position: absolute;
top: 0;
right: 0;
font-size: var(--font-size-12);
line-height: 1;
text-align: right;
color: #eee;
text-shadow: 0 0 5px #000;
}
&.encumbered {
.encumbrance-bar {
background: #a80d0d;
border-color: #e14949;
}
}
.encumbrance-breakpoint {
position: absolute;
left: 66%;
}
.arrow-up {
bottom: 0;
width: 0;
height: 0;
border-left: 4px solid transparent;
border-right: 4px solid transparent;
border-bottom: 4px solid var(--color-border-dark-5);
}
.arrow-down {
top: 0;
width: 0;
height: 0;
border-left: 4px solid transparent;
border-right: 4px solid transparent;
border-top: 4px solid var(--color-border-dark-5);
}
&.encumbered {
.arrow-up {
border-bottom: 4px solid #000;
}
.arrow-down {
border-top: 4px solid #000;
}
}
}
footer {
.tag {
flex: 0 1 auto;
}
}
label.checkbox {
flex: 1;
text-align: left;
}
&.buffs {
.condition {
border: 1px transparent;
border-radius: 10px;
a.checkbox {
display: flex;
flex-flow: row nowrap;
gap: 4px;
align-items: center;
color: var(--color-text-dark-primary);
> img {
border: none;
&[src*=".png"] {
filter: invert(88%) sepia(11%) saturate(158%) hue-rotate(13deg) brightness(98%) contrast(93%);
}
&[src*=".svg"] {
filter: invert(1);
}
}
> .details {
display: flex;
flex-flow: row wrap;
> .sources {
text-shadow: none;
font-weight: normal;
font-size: var(--font-size-11);
&::before {
content: "(";
}
&::after {
content: ")";
}
}
}
.name {
flex: 1 100%;
}
}
&.immune {
a.checkbox {
> img {
opacity: 0.3;
}
.details {
opacity: 0.6;
}
}
}
&:hover {
background-color: rgba(0, 0, 0, 0.05);
}
&.active {
font-weight: 600;
background-color: rgba(0, 0, 0, 0.1);
text-shadow: 0 0 8px red;
&:hover {
background-color: rgba(0, 0, 0, 0.15);
}
}
&.active a.checkbox > img {
filter: unset;
&[src*=".svg"] {
background: black;
}
}
}
}
.buffs-conditions {
flex: 0;
}
.inventory-group {
height: 100%;
overflow: hidden;
}
.item-list {
input[type="checkbox"] {
height: 18px;
}
}
div.attributes-traits {
align-items: flex-start;
margin: 0;
overflow-y: hidden;
}
/* Inventory List Filters */
.inventory-filters {
flex: 0;
h3,
.filter-title {
.modesto();
color: var(--pf1-olive);
font-size: var(--font-size-24);
margin: 0;
}
}
&.inventory {
footer {
display: flex;
flex-flow: row wrap;
gap: 3px;
.inventory-tags,
.carry-bonus {
flex: 1;
align-self: center;
}
.inventory-tags {
justify-content: flex-end;
}
.carry-capacity,
.lift {
flex: 1 100%;
}
}
}
.carry-label {
flex: 0 0 24px;
}
.carry-bonus {
label {
flex: 0;
margin-left: 8px;
text-align: right;
line-height: 20px;
color: var(--pf1-tan);
white-space: nowrap;
}
input[type="text"],
span.text-box {
height: 20px;
flex: 0 0 48px;
text-align: center;
margin-left: 8px;
border-bottom: var(--pf1-border-groove);
}
}
/* ----------------------------------------- */
/* Features */
/* ----------------------------------------- */
section.feats-body {
overflow-y: auto;
.scrollbar();
.feats-group {
.item-detail.item-type {
flex: 0 0 40px;
}
}
}
/* ----------------------------------------- */
/* Spellbook */
/* ----------------------------------------- */
a.rollable {
display: inline-flex;
gap: 2px;
}
/* ----------------------------------------- */
/* TinyMCE */
/* ----------------------------------------- */
.editor {
padding: 0 8px;
}
/* ----------------------------------------- */
/* Misc */
/* ----------------------------------------- */
hr {
margin: 2px 0;
flex: 0;
}
&.actor-notes {
overflow: hidden scroll;
.scrollbar();
.primary-content {
flex: 1 0 320px;
display: flex;
.editor {
flex: 1;
}
}
}
table {
table-layout: fixed;
overflow: hidden;
&.ability-table {
input[type="text"] {
height: 20px;
}
}
td {
img {
vertical-align: middle;
margin-right: 2px;
}
}
}
.skill-lock-button {
flex: 0;
&:before {
font-family: "Font Awesome 5 Free";
font-weight: 900;
content: "\f023";
margin-right: 0.5em;
}
&.unlocked:before {
content: "\f3c1";
}
}
}
}
.locked {
img.sheet-profile {
max-height: 360px;
max-width: 240px;
}
}

View File

@@ -0,0 +1,8 @@
@keyframes dice-spin {
from {
transform: rotate(0) scale(1.2);
}
to {
transform: rotate(1turn) scale(1.2);
}
}

View File

@@ -0,0 +1,946 @@
@navHeight: 30px;
@headerHeight: 100px;
/* ----------------------------------------- */
/* All PF1 Apps */
/* ----------------------------------------- */
.pf1 {
header {
flex: 0;
}
.footnote {
color: var(--pf1-tan);
}
div.group-container {
position: relative;
border: 1px solid var(--color-border-dark-2);
border-radius: 4px;
padding: 4px;
margin: 2px;
margin-top: 20px;
& > .group-title {
position: absolute;
top: -50%;
}
}
a.inline-action {
position: relative;
margin-left: 4px;
i.absolute {
position: absolute;
left: -2px;
top: -2px;
font-size: var(--font-size-12);
background: black;
color: var(--color-text-light-highlight);
padding: 1px;
border-radius: 4px;
height: 10px;
line-height: 8px;
}
&[data-action="recoverAmmo"],
&[data-action="forceRecoverAmmo"] {
&.recovered {
color: #00aa00;
}
&.recovery-failed {
color: #aa0000;
}
}
}
input[type="number"]::placeholder,
input[type="text"]::placeholder,
.placeholder {
color: var(--pf1-tan);
}
input[type="text"]:disabled,
input[type="text"][disabled] {
color: var(--pf1-tan);
}
.align-left {
text-align: start;
}
.align-center {
text-align: center;
}
.align-right {
text-align: end;
}
li {
align-items: center;
}
.window-content {
background: var(--pf1-sheet-background);
font-size: var(--font-size-13);
color: var(--color-text-dark-primary);
overflow: hidden;
}
/* ----------------------------------------- */
/* Element Styles */
/* ----------------------------------------- */
// Item Sheet form fields
:is(input[type="text"], input[type="number"], select) {
border: 1px solid var(--pf1-tan);
background: var(--pf1-bg-dark-0);
color: var(--color-text-dark-primary);
}
form.editable {
// Hovered Fields
input:is([type="text"], [type="number"]) {
&:is(:hover, :focus) {
&:not(:disabled, [disabled], :read-only) {
border: 1px solid #111;
box-shadow: 0 0 8px red;
}
}
}
:is(select, input[type="checkbox"]) {
&:is(:hover, :focus) {
&:not(:disabled, [disabled]) {
border: 1px solid #111;
box-shadow: 0 0 8px red;
}
}
}
}
// Disabled Fields
// <select> misbehaves with :read-only
:is(input, textarea, select):is(:disabled, [disabled]),
// :read-only is only supported by text and number
input:is([type="text"], [type="number"]):read-only {
color: var(--pf1-olive);
opacity: 0.7;
}
// Checkbox Labels
label.checkbox {
white-space: nowrap;
flex: auto;
margin: 0;
line-height: 1.5;
font-size: var(--font-size-12);
input[type="checkbox"] {
height: auto;
position: relative;
top: 3px;
}
}
/* Form Groups */
.form-group {
gap: 0 3px;
label {
&:first-child,
&.checkbox,
&.header {
text-align: left;
font-weight: bold;
white-space: nowrap;
color: var(--pf1-olive);
}
}
.buff-flags {
display: flex;
flex-wrap: wrap;
min-width: 100%;
max-height: 76px;
overflow-y: auto;
.scrollbar();
label.checkbox {
flex: 0 0 50%;
text-align: left;
}
}
.form-fields {
gap: 3px;
}
.group {
flex: 1 1 96px;
label {
flex: 1;
font-weight: normal;
}
a {
flex: 0 0 16px;
}
}
}
// Stacked Groups
.form-group.stacked {
label {
flex: 0 0 100%;
&.checkbox {
text-align: left;
}
}
.data-selector {
flex: 1;
label {
font-weight: normal;
flex: 1;
}
.entry-selector {
flex: 0 0 16px;
}
}
}
// Form Headers
.form-header {
margin: 0;
padding: 0 2px;
.modesto();
font-size: var(--font-size-24);
border-top: var(--pf1-border-groove);
border-bottom: var(--pf1-border-groove);
}
h4.form-header {
font-size: var(--font-size-20);
}
.tag-list {
display: flex;
row-gap: 1px;
column-gap: 2px;
flex-wrap: wrap;
list-style: none;
margin: 0;
padding: 0;
.tag {
height: min-content;
white-space: nowrap;
}
}
/* Tags */
.tag {
display: inline-block;
flex: 0;
padding: 0 3px;
font-size: var(--font-size-11);
line-height: 1.2;
border: 1px solid #999;
border-radius: 3px;
background: var(--pf1-bg-dark-0);
&.type1 {
background: rgba(255, 0, 0, 0.1);
}
&.type2 {
background: rgba(0, 255, 0, 0.1);
}
&.type3 {
background: rgba(0, 0, 255, 0.1);
}
}
.help-icon {
flex: 0;
}
.help-text {
background-color: rgba(10, 0, 0, 0.05);
border: dotted var(--pf1-bg-dark-1);
flex: 0 0 24px;
padding: 3px;
margin-bottom: 3px;
}
.item-links {
flex: 0 0 24px;
}
.fake-inline-roll {
background: #ddd;
padding: 1px 4px;
border: 1px solid #4b4a44;
border-radius: 2px;
white-space: nowrap;
word-break: break-all;
}
}
/* ----------------------------------------- */
/* Resistance Selectors Specifically */
/* ----------------------------------------- */
.pf1.resistance-selector {
form {
max-height: 720px;
height: 100%;
}
ol li {
display: grid;
grid-template-columns: 25% 75%;
grid-template-rows: fit-content 2em 2em;
}
}
/* ----------------------------------------- */
/* Doc Sheets Specifically */
/* ----------------------------------------- */
.pf1.sheet {
.window-content {
overflow: hidden;
padding: 5px;
background: var(--pf1-sheet-background);
font-size: var(--font-size-13);
color: var(--color-text-dark-primary);
form {
height: 100%;
overflow: hidden;
display: flex;
flex-flow: column nowrap;
gap: 2px;
}
.tab {
height: 100%;
gap: 2px;
&.active {
display: flex;
flex-flow: column nowrap;
.editor {
flex: 1;
}
}
section {
height: 100%;
overflow: hidden;
// Summary tab subdetails fix
&.subdetails-body {
overflow: hidden auto;
.scrollbar();
}
&.secret {
height: unset;
overflow: unset;
}
}
}
}
// Item sheets do not use <section>
&.item {
.window-content {
.tab {
overflow: hidden scroll;
.scrollbar();
// Links, description and changes tabs use different scrolling
&[data-group="description"],
&[data-tab="links"] {
overflow: hidden;
}
// Fix editor size being odd for item sheet descriptions
section.description-body {
height: unset;
}
}
}
}
// Overflow long names
.char-name input,
.item-name input,
.item-name h4 {
text-overflow: ellipsis;
overflow: hidden;
}
/* ----------------------------------------- */
/* TinyMCE */
/* ----------------------------------------- */
.notImp {
text-decoration: firebrick dotted underline;
text-decoration-skip-ink: none;
&::after {
color: firebrick;
font-family: "Font Awesome 5 Free";
font-weight: 900;
content: "\f071";
text-shadow: 0 0 4px white;
}
}
.needSteps {
text-decoration: goldenrod double underline;
&::after {
color: goldenrod;
font-family: "Font Awesome 5 Free";
font-weight: 900;
content: "\f14a";
text-shadow: 0 0 4px black;
}
}
/* ----------------------------------------- */
/* Sheet Header */
/* ----------------------------------------- */
.sheet-header {
flex: 0 0 @headerHeight;
border-bottom: var(--pf1-border-groove);
align-items: center;
:is(h1, h2, h3, h4, h5) {
.modesto();
}
/* Item Name */
h1 {
flex: 1;
border-bottom: none;
margin: 0;
padding: 0;
input {
font-size: calc(var(--font-size-28) * 1.2);
font-variant-caps: small-caps;
margin: 0;
}
}
/* Profile Image */
img.profile {
flex: 0 0 @headerHeight;
width: @headerHeight;
height: @headerHeight;
object-fit: contain;
border: none;
border-right: var(--pf1-border-groove);
}
/* Header Summary Details */
.summary {
display: flex;
flex: 0 100%;
margin: 0;
padding: 0;
list-style: none;
border-top: var(--pf1-border-groove);
li {
display: inline-flex;
width: 33.33%;
padding: 0 3px;
border-right: var(--pf1-border-groove);
border-bottom: var(--pf1-border-groove);
color: var(--pf1-olive);
height: 1.7em;
input {
vertical-align: top;
}
> label {
display: inline-flex;
align-items: center;
white-space: nowrap;
input.value {
text-align: center;
}
}
}
}
.header-details {
.summary {
input[type="checkbox"] {
margin: 0;
height: 16px;
}
}
}
}
/* ----------------------------------------- */
/* Sheet Navigation */
/* ----------------------------------------- */
.sheet-navigation {
flex: 0;
.modesto();
background: rgba(155, 155, 155, 0.3);
border: 1px solid transparent;
border-radius: 12px 12px 0 0;
font-size: var(--font-size-20);
column-gap: 2px;
.item {
line-height: var(--pf1-nav-height);
height: var(--pf1-nav-height);
margin: 0;
white-space: nowrap;
border: 1px solid transparent;
border-radius: 12px 12px 0 0;
flex: 1;
&.active {
background: rgba(155, 155, 155, 0.5);
}
&:hover {
background: rgba(155, 155, 155, 0.2);
}
}
&.tabs {
border-bottom: var(--pf1-border-groove);
}
}
/* ----------------------------------------- */
/* Sheet Body */
/* ----------------------------------------- */
.primary-body {
flex: 1;
overflow: hidden;
.tab {
&.spellbook {
.spellbooks-body {
overflow: hidden;
}
}
}
}
/* ----------------------------------------- */
/* List Filters */
/* ----------------------------------------- */
.filter-list {
list-style: none;
margin: 0;
padding: 0;
align-items: center;
align-self: end;
column-gap: 6px;
.filter-title {
flex: 3;
}
.filter-item {
text-align: center;
font-size: var(--font-size-12);
border-bottom: 3px solid var(--color-border-light-secondary);
white-space: nowrap;
&:hover {
text-shadow: 0 0 4px red;
border-bottom: 3px solid var(--pf1-tan);
}
&.active {
border-bottom: 3px solid var(--pf1-crimson);
}
}
}
// Clickable SVG icons
a > .icon-pf {
&:hover {
opacity: 0.5;
}
}
div.info {
text-align: center;
justify-content: center;
span {
color: var(--pf1-tan);
flex: 0;
a {
color: #7e78dc;
}
}
}
}
/* ----------------------------------------- */
/* Trait Selector
/* ----------------------------------------- */
.resistance-selector {
.trait-list {
list-style: none;
margin: 0;
padding: 0;
overflow: auto;
.scrollbar();
}
a.resistance-control.add-entry {
margin: 0.5em 0 0.7em 1em;
display: block;
}
}
.pf1.resistance {
table {
border: 1px solid rgb(136, 136, 136);
font-weight: normal;
table-layout: fixed;
thead {
background-color: #3c6d98;
}
tbody {
tr {
background-color: white;
}
tr:nth-child(even) {
background-color: #f3f3f3;
}
}
th.resistance-control,
td.resistance-control {
width: 16px;
}
tr {
height: 16px;
}
}
}
.pf1.entry,
.notes {
table {
border: 1px solid rgb(136, 136, 136);
font-weight: normal;
table-layout: fixed;
th.entry-control,
td.entry-control {
width: 16px;
}
tr {
height: 16px;
}
}
a.entry-control.add-entry {
margin: 0.5em 0 0.7em 1em;
display: block;
}
}
.pf1.entry {
thead {
background-color: #3c6d98;
}
tbody {
tr {
background-color: white;
}
tr:nth-child(even) {
background-color: #f3f3f3;
}
}
}
.config .config-icon {
opacity: 0;
}
.config:hover .config-icon {
color: rgb(136, 136, 136);
opacity: 1;
}
.pf1 .currency-transfer {
.form-group:nth-child(5) {
background-color: rgba(170, 170, 170, 0.3);
border-top: 1px dashed #aaa;
}
.form-group > label {
flex: 0 0 150px;
}
.form-fields {
input,
span {
flex: 2;
font-weight: bold;
&.text-box {
line-height: 22px;
border: 1px dotted #777;
color: #333;
}
&:not(.text-box) {
color: black;
border: initial;
border-bottom: 2px groove #eeede0;
}
}
button > i:only-child {
margin: 0;
}
}
.form-group.currency-total .form-fields {
label:nth-child(1) {
text-align: right;
}
label:nth-child(2) {
flex: initial;
}
label:nth-child(3) {
text-align: left;
flex: 1;
}
}
}
/* ----------------------------------------- */
/* Script Editor
/* ----------------------------------------- */
.pf1.script-editor {
.form-group.command {
flex: 1;
flex-direction: column;
align-items: unset;
label {
flex: 0;
}
textarea {
flex: 1;
}
}
footer {
flex: 0 0 32px;
}
}
/* ----------------------------------------- */
/* Damage Type Selector
/* ----------------------------------------- */
.pf1.damage-type-selector {
display: flex;
flex-direction: column;
height: 100%;
.damage-type-container {
flex: 0 0 calc(100% - 72px);
height: calc(100% - 72px);
.damage-type-categories {
border-right: 1px dashed black;
flex: 2;
overflow-y: auto;
.scrollbar();
height: 100%;
}
.damage-types,
.damage-modifiers {
label {
display: inline-block;
width: 100%;
text-align: center;
font-weight: bold;
font-size: var(--font-size-24);
}
.icon-pf {
font-size: var(--pf1-damage-icon-size);
text-shadow: 0 0 4px black;
background: none;
width: 64px;
height: 64px;
}
}
.damage-modifiers {
overflow-y: auto;
.scrollbar();
height: 100%;
}
}
.misc-container {
div.custom {
flex: 1;
}
}
.icon-row {
display: grid;
flex-flow: row wrap;
grid-template-columns: repeat(auto-fit, 80px);
grid-gap: 0.2rem;
padding: 0.2rem;
.damage-type {
cursor: pointer;
width: 80px;
padding: 4px;
align-items: center;
border-radius: 4px;
display: grid;
justify-items: center;
grid-row-gap: 2px;
input[type="checkbox"] {
cursor: pointer;
}
img {
height: 72px;
width: 72px;
object-fit: cover;
object-position: 50% 0;
border: none;
}
span {
overflow: hidden;
text-align: center;
text-overflow: ellipsis;
display: -webkit-inline-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
&:hover {
background: rgba(155, 155, 155, 0.2);
span.name {
text-shadow: 0 0 10px red;
}
}
&.toggled {
background: rgba(155, 155, 155, 0.5);
span.name {
text-shadow: 0 0 10px red;
}
}
}
}
}
.damage-type-visual {
display: flex;
flex-flow: row nowrap;
flex-direction: row;
justify-content: center;
align-content: center;
border: 1px solid var(--pf1-tan);
border-radius: 3px;
background-color: var(--pf1-bg-dark-0);
vertical-align: middle;
line-height: 1.7;
white-space: nowrap;
overflow: hidden;
&.empty {
display: flex;
white-space: nowrap;
}
&:hover:not(.disabled) {
cursor: pointer;
box-shadow: 0 0 8px red;
}
& > span {
text-align: center;
word-break: keep-all;
}
.damage-type {
display: flex;
flex-flow: row nowrap;
align-items: center;
.icon-pf {
background: none;
border: none;
font-size: var(--font-size-16);
text-shadow: 0 0 1px black;
width: 16px;
height: 16px;
}
}
}
.pf1.custom-skill {
.compendium-controls {
flex: 0;
}
.compendium-page {
overflow-x: hidden;
}
}
.app.pf1.skill-editor {
input:invalid {
background-color: rgba(255, 0, 0, 0.1);
}
}

View File

@@ -0,0 +1,20 @@
@import "common-app.less";
@import "action-selector.less";
@import "troubleshooter.less";
@import "compendium-browser.less";
@import "point-buy-calculator.less";
@import "trait-selector.less";
@import "attack-dialog.less";
@import "level-up.less";
@import "xp-distributor.less";
@import "content-source.less";
@import "speed-editor.less";
@import "migration.less";
@import "migration-issues.less";
@import "item-selector.less";
@import "get-number.less";
@import "actor-selector.less";
@import "help-browser.less";
@import "change-editor.less";
@import "split-stack.less";
@import "changelog.less";

View File

@@ -0,0 +1,33 @@
.pf1.action-selector {
.actions {
display: flex;
flex-flow: row wrap;
gap: 0.4em;
.action {
padding: 0.2em;
cursor: pointer;
display: flex;
flex-direction: column;
align-items: center;
&:hover {
background: rgba(155, 155, 155, 0.2);
span.name {
text-shadow: 0 0 10px red;
}
}
img {
width: 96px;
height: 96px;
object-fit: cover;
}
span {
text-align: center;
width: 80px;
}
}
}
}

View File

@@ -0,0 +1,87 @@
.app.pf1.actor-selector {
min-width: 300px;
form {
display: flex;
flex-flow: column;
overflow: hidden;
.actor-list {
max-height: 600px;
overflow: hidden scroll;
.scrollbar();
list-style: none;
margin: 0;
padding: 0;
display: flex;
flex: 1;
flex-flow: column nowrap;
gap: 1px;
> .actor {
> label {
display: flex;
flex-flow: row nowrap;
align-items: center;
gap: 0.3em;
}
&.selected {
background-color: rgba(0, 0, 0, 0.1);
}
h3 {
margin: 0;
padding: 0;
}
.image {
flex: 0 0 64px;
max-width: 64px;
max-height: 64px;
object-fit: contain;
}
.details {
flex: 1;
display: flex;
flex-flow: column nowrap;
overflow: hidden;
.actor-name {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
}
input {
display: none;
&:checked ~ .details .actor-name {
font-weight: bold;
}
}
&:hover {
border-color: #3030ff;
}
&.disabled {
color: gray;
img {
filter: grayscale(100%);
}
&:hover {
border-color: transparent;
}
}
}
}
}
}

View File

@@ -0,0 +1,166 @@
/* ----------------------------------------- */
/* Attack Roll Dialog
/* ----------------------------------------- */
.pf1.attack-dialog {
.attacks {
//padding: 2px;
border: 1px solid var(--color-border-light-tertiary);
border-radius: 4px;
display: flex;
flex-flow: column nowrap;
gap: 1px;
background-color: var(--pf1-bg-dark-0);
:is(.attack, .attack-header) {
display: flex;
gap: 2px;
align-items: center;
padding: 0 3px;
h3 {
margin: 0;
padding: 0;
font-weight: bold;
}
.name {
flex: 1;
}
.bonus {
flex: 0 0 64px;
}
.ammo {
flex: 0 0 160px;
}
}
.attack-header {
background-color: var(--pf1-bg-dark-1);
}
.attack {
display: flex;
height: 26px; // Match ammo select size
&:nth-child(odd) {
background-color: var(--pf1-bg-dark-0);
}
&.disabled {
opacity: 0.4;
}
// Ammo select
.ammo-select {
background: var(--pf1-bg-dark-0);
border: 1px solid var(--pf1-tan);
border-radius: 3px;
text-overflow: ellipsis;
width: 120px;
height: 26px;
&.focus {
box-shadow: 0 0 5px red;
outline: none;
}
img {
flex: 0 0 24px;
width: 24px;
height: 24px;
}
span {
vertical-align: middle;
line-height: 26px;
&.no-ammo-selected {
> i {
color: darkred;
}
}
}
div {
span {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
display: inline-block;
padding: 0 3px;
}
i {
flex: 0 0 12px;
text-align: center;
line-height: 2;
font-size: var(--font-size-12);
}
}
ul {
display: none;
background: var(--pf1-sheet-background);
overflow-y: auto;
.scrollbar();
max-height: 250px;
position: absolute;
margin: 0;
padding: 0;
list-style: none;
width: 200px;
border: 1px solid var(--color-border-light-tertiary);
&.open {
display: block;
}
li {
display: flex;
flex-flow: row nowrap;
cursor: pointer;
min-height: 25px;
width: 100%;
overflow-x: hidden;
white-space: nowrap;
text-overflow: ellipsis;
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
gap: 3px;
&.default {
color: blue;
}
&:hover {
background-color: var(--pf1-item-list-hover-bg);
.controls {
display: flex;
}
}
.controls {
display: none;
color: black;
width: 100%;
flex-flow: row nowrap;
position: absolute;
justify-content: flex-end;
a {
flex: 0 0 16px;
&.active {
text-shadow: 0 0 5px blue;
}
}
}
}
}
}
}
}
}

View File

@@ -0,0 +1,120 @@
.pf1.sheet.change-editor {
min-height: 160px;
//min-width: 620px;
form {
input {
flex: 3;
border: 1px solid var(--pf1-tan);
background: var(--pf1-bg-dark-0);
height: 24px;
}
select {
background: var(--pf1-bg-dark-0);
text-align: center;
}
input[type="text"]:invalid {
border: var(--pf1-invalid-input-border);
background: url(icons/misc/hazard-sign.svg) no-repeat 95% 50% var(--pf1-bg-dark-0);
background-size: contain;
}
select:invalid {
border: var(--pf1-invalid-input-border);
background: url(icons/misc/hazard-sign.svg) no-repeat 75% 50% var(--pf1-bg-dark-0);
background-size: contain;
}
.formula-type {
display: flex;
flex-flow: row nowrap;
}
.radio {
flex: 0;
gap: 0.5em;
display: flex;
flex-flow: row nowrap;
> label {
display: inline-flex;
flex-flow: row nowrap;
gap: 0 0.3em;
line-height: 1.5;
font-weight: normal;
&.disabled {
color: var(--pf1-olive);
opacity: 0.8;
}
> input {
flex: 0 16px;
height: 16px;
flex: unset;
top: unset;
margin: unset;
}
}
}
.change-priority {
text-align: center;
}
.change-target {
border: 1px solid var(--pf1-tan);
background: var(--pf1-bg-dark-0);
white-space: nowrap;
overflow: hidden;
height: 24px;
line-height: 24px;
border-radius: 4px;
text-align: center;
cursor: pointer;
font-size: var(--font-size-12);
&:hover {
box-shadow: 0 0 8px var(--pf1-red);
}
&.invalid {
border: var(--pf1-invalid-input-border);
background: url(icons/misc/hazard-sign.svg) no-repeat 95% 50% var(--pf1-bg-dark-0);
}
}
.formula {
h3 {
all: inherit;
font-weight: bold;
color: var(--pf1-olive);
}
}
.priority {
input {
text-align: center;
}
}
.buttons {
display: flex;
flex-flow: row nowrap;
}
.instructions {
text-align: center;
}
.target {
.value.invalid {
color: var(--pf1-color-text-error);
border: var(--pf1-invalid-input-border);
background: url(icons/misc/hazard-sign.svg) no-repeat 99% 50% var(--pf1-bg-dark-0);
}
}
}
}

View File

@@ -0,0 +1,73 @@
.app.pf1.changelog form {
display: flex;
flex-flow: column nowrap;
overflow: hidden;
gap: 0.5em;
header {
text-align: center;
}
nav {
display: flex;
flex-flow: row nowrap;
gap: 0 3px;
border-bottom: var(--pf1-border-groove);
background: rgba(155, 155, 155, 0.3);
border-radius: 12px 12px 0 0;
font-size: var(--font-size-18);
> .item {
line-height: var(--pf1-nav-height);
height: var(--pf1-nav-height);
margin: 0;
white-space: nowrap;
border: 1px solid transparent;
border-radius: 12px 12px 0 0;
flex: 1;
&:hover {
background: rgba(155, 155, 155, 0.2);
}
&.active {
background: rgba(155, 155, 155, 0.5);
}
}
}
footer {
border-top: var(--pf1-border-groove);
}
.content {
display: flex;
flex-flow: column nowrap;
overflow: hidden;
flex: 1;
> .tab {
li {
user-select: text;
}
code {
background-color: var(--pf1-bg-dark-0);
padding: 0 3px;
border-radius: 7px;
}
overflow-y: scroll;
.scrollbar();
li > ul {
margin: 0;
}
&.error {
text-align: center;
}
}
}
}

View File

@@ -0,0 +1,9 @@
/**
* Stylings common to all PF1 apps, be they sheets, widgets, dialogs, or anything else.
*/
.app.pf1 {
button h3,
.item-name h3 {
border: unset;
}
}

View File

@@ -0,0 +1,208 @@
.app.pf1.compendium-browser {
.window-content > div {
max-height: 100%;
.search-form {
position: relative;
input {
position: relative;
padding-left: 17px;
background: rgba(255, 255, 245, 0.8);
}
i {
position: absolute;
left: 4px;
}
}
aside.sidebar {
flex: 0 0 300px;
height: 100%;
padding: 0.7rem;
border-right: var(--pf1-border-groove);
font-size: var(--font-size-12);
.entry-filter {
flex: 0;
margin: 0 1rem 1rem 0;
justify-content: center;
align-items: center;
}
.filter-container {
overflow: hidden scroll;
.scrollbar();
max-height: calc(100% - 96px);
margin-bottom: 1rem;
justify-content: flex-start;
> .filter {
position: relative;
margin-top: 8px;
margin-right: 0.5rem;
border: 1px solid var(--color-border-dark-5);
border-radius: 4px;
padding: 0 4px 4px 4px;
&:first-child {
margin-top: 0;
}
&:nth-last-child(1) {
margin-bottom: 2px;
}
h3 {
text-align: center;
margin: 4px 0;
border: unset;
&:hover {
color: var(--color-text-dark-primary);
text-shadow: 0 0 10px red;
cursor: pointer;
}
}
.filter-content {
&.collapsed {
display: none;
}
.hidden {
display: none;
}
.filter-controls {
justify-content: flex-end;
margin-bottom: 1em;
.control {
line-height: unset;
font-size: var(--font-size-12);
min-width: fit-content;
max-width: 30%;
}
button {
background: rgba(255, 255, 240, 0.8);
border: 1px solid var(--color-border-light-tertiary);
}
.choice-filter {
margin: auto;
align-items: center;
position: relative;
}
}
ul.filter-choices {
display: grid;
grid-template-columns: 1fr 1fr;
margin: 0;
padding: 0;
list-style: none;
}
.no-choices {
text-align: center;
margin: 0.5em 0;
font-style: italic;
}
}
.filter-count {
position: absolute;
right: 0;
margin: 0 0.3em;
}
}
}
> .buttons {
flex: 0;
margin-right: 0.5rem;
}
}
.directory-container {
flex: 1;
max-height: 100%;
.top {
flex: 0;
span {
flex: 1;
text-align: center;
}
span:not(:last-child) {
border-right: var(--pf1-border-groove);
}
}
.directory-list {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
grid-auto-rows: max-content;
overflow: hidden auto;
.scrollbar();
padding: 0;
.compendium-loading {
display: flex;
line-height: 100px;
font-size: var(--font-size-28);
position: sticky;
top: calc(50% - 64px);
}
.directory-bottom {
visibility: hidden;
}
.directory-item {
list-style: none;
align-items: center;
border-bottom: 1px solid var(--pf1-compendium-item-border);
border-right: 1px solid var(--pf1-compendium-item-border);
&:hover {
background-color: var(--pf1-bg-dark-0);
.entry-name {
text-shadow: 0 0 8px var(--color-shadow-primary);
}
}
img {
flex: 0;
width: 48px;
height: 48px;
margin: 2px;
border: none; // Undo Foundry styling
}
.entry-name {
margin-left: 4px;
margin-bottom: 0;
border: unset; // Disable generic h4 style
}
.entry-source {
font-size: var(--font-size-11);
color: rgba(0, 0, 0, 0.5);
flex: 1 0 0;
margin-left: 4px;
}
}
}
}
}
transition: opacity 200ms ease-in-out;
&.active-drag {
opacity: 0.3;
pointer-events: none;
}
}

View File

@@ -0,0 +1,92 @@
.pf1.sheet.content-source-editor {
min-width: 320px;
form {
header {
display: flex;
flex-flow: row nowrap;
gap: 0.3em;
nav {
flex: 1;
display: flex;
flex-flow: row wrap;
gap: 3px;
cursor: pointer;
.nav-entry {
flex: 1;
white-space: nowrap;
padding: 0 0.3em;
font-size: var(--font-size-16);
line-height: 1.5;
border-radius: 0.5em 0.5em 0 0;
&.source {
background-color: var(--pf1-bg-dark-0);
text-align: center;
font-weight: bold;
&.active {
background-color: var(--pf1-bg-dark-1);
}
}
> a {
> i {
pointer-events: none;
}
&.control {
flex: 0 fit-content;
}
}
}
}
a.control {
&.disabled {
opacity: 0.6;
}
&[data-action="add"] {
flex: 0;
font-size: var(--font-size-16);
line-height: 1.5;
white-space: nowrap;
}
}
}
section {
> .tab.source {
width: 100%;
}
}
:is(input, select) {
border: 1px solid var(--pf1-tan);
background: rgba(0, 0, 0, 0.05);
color: var(--color-text-dark-primary);
&:read-only {
border: 1px solid var(--color-border-light-secondary);
}
}
.abbr {
flex: 0 3em;
}
}
}
// Tooltip
#tooltip.pf1.source {
p:last-child {
margin-bottom: 0;
}
}

View File

@@ -0,0 +1,26 @@
.app.dialog.pf1.get-number {
input {
font-size: var(--font-size-24);
}
input,
.hint,
.label {
text-align: center;
}
.hint,
.label {
margin: 0;
}
.dialog-content {
display: flex;
flex-flow: column nowrap;
gap: 0.3rem;
}
.window-content {
gap: 0.5rem;
}
}

View File

@@ -0,0 +1,96 @@
.pf1.help-browser {
min-height: 420px;
min-width: 540px;
section.window-content {
padding: 0;
a {
color: var(--color-text-hyperlink);
text-decoration: underline;
}
[data-url="helphome"] ul {
list-style: none;
display: grid;
grid-template-columns: repeat(2, 1fr);
line-height: 1.5rem;
column-gap: 1rem;
padding: 0;
> li {
margin: 0;
}
}
.top-bar {
padding: 6px;
flex: 0 0 39px;
border-bottom: var(--pf1-border-groove);
> * {
margin-right: 8px;
}
i {
font-size: var(--font-size-24);
}
i.gray {
color: gray;
}
}
.primary {
height: calc(100% - 39px);
}
.content {
height: 100%;
overflow: auto;
.scrollbar();
padding-bottom: 32px;
padding-left: 0.4em;
padding-right: 0.4em;
* {
user-select: text;
}
code {
padding: 0 3px;
background: var(--pf1-bg-light-1);
color: var(--color-text-dark-1);
border: 1px solid var(--color-border-light-secondary);
border-radius: 3px;
}
table {
width: unset;
border: 1px solid var(--color-border-light-tertiary);
th {
code {
// Fix Foundry's styling on header code blocks
text-shadow: 1px 1px var(--color-text-light-2);
}
}
:is(th, td) {
padding: 0.3em 0.3em;
}
}
img {
margin-left: 8px;
}
h2,
h3,
h4,
h5 {
margin-top: 1em;
}
}
}
}

View File

@@ -0,0 +1,69 @@
.app.pf1.item-selector {
min-width: 300px;
form {
display: flex;
flex-flow: column;
overflow: hidden;
.item-list {
max-height: 600px;
overflow: hidden scroll;
.scrollbar();
list-style: none;
margin: 0;
padding: 0;
display: flex;
flex-flow: column nowrap;
gap: 1px;
> .item {
> label {
display: flex;
flex-flow: row nowrap;
align-items: center;
gap: 0.3em;
}
&.selected {
background-color: rgba(0, 0, 0, 0.1);
}
h3 {
margin: 0;
padding: 0;
}
.image {
flex: 0 64px;
width: 64px;
height: 64px;
}
.details {
flex: 1;
display: flex;
flex-flow: column nowrap;
overflow: hidden;
.item-name {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
}
input {
display: none;
&:checked ~ .details .item-name {
font-weight: bold;
}
}
}
}
}
}

View File

@@ -0,0 +1,332 @@
/* ----------------------------------------- */
/* Level Up Dialog
/* ----------------------------------------- */
.pf1.level-up {
min-width: 820px;
min-height: 440px;
form {
display: grid;
grid-template-columns: 16em 2fr;
grid-template-rows: min-content 1fr min-content;
grid-template-areas:
"sidebar nav"
"sidebar main"
"footer footer";
gap: 3px;
overflow: hidden;
> nav {
gap: 1px;
grid-area: nav;
> .item {
flex: 1;
font-family: "Modesto Condensed Bold", "Signika", "Palatino Linotype", serif;
font-variant: small-caps;
font-size: var(--font-size-24);
justify-content: center;
text-align: center;
padding: 0 3px;
background: rgba(155, 155, 155, 0.3);
border-radius: 0.5em 0.5em 0 0;
&.active {
background-color: rgba(155, 155, 155, 0.5);
}
}
}
> footer {
grid-area: footer;
}
> .summary {
grid-area: sidebar;
display: flex;
flex-flow: column nowrap;
gap: 0.3em;
h3 {
margin: 0 0 3px;
}
.disabled {
opacity: 0.6;
}
.value {
color: darkgreen;
}
h4 {
margin: 0;
}
}
h2 {
font-family: "Modesto Condensed Bold", "Signika", "Palatino Linotype", serif;
font-variant: small-caps;
font-size: var(--font-size-24);
margin: 0 0 3px;
padding: 0 0.2em;
background-color: var(--pf1-bg-dark-1);
}
ul.choices {
flex: 1;
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-flow: row wrap;
gap: 1px;
li {
flex: 1;
padding: 0.2em 0.5em;
border: 1px solid transparent;
input[type="radio"] {
display: none;
}
border: 1px solid transparent;
border-radius: 0.3em;
&.choice {
> label {
display: block;
cursor: pointer;
height: 100%;
}
.form-group {
label {
pointer-events: none;
}
}
flex: 1 calc(50% - 1px);
h3 {
display: flex;
gap: 0.3em;
}
img {
flex: 0 24px;
width: 24px;
height: 24px;
}
&:hover {
border: 1px solid gray;
background: rgba(155, 155, 155, 0.1);
}
}
h3 {
font-size: var(--font-size-16);
line-height: 1.5;
position: relative;
.value {
position: absolute;
right: 0;
color: green;
}
}
&:has(input:checked) {
background: rgba(155, 155, 155, 0.2);
border: 1px dashed var(--color-border-light-tertiary);
h3::after {
content: " ✔";
color: green;
}
}
&:has(input:disabled) {
opacity: 0.6;
}
}
}
.item-list {
list-style: none;
margin: 0;
padding: 0;
flex: 1 100%;
display: flex;
flex-flow: column nowrap;
gap: 1px;
> .item {
display: flex;
flex-flow: row nowrap;
gap: 3px;
cursor: pointer;
> img {
flex: 0 24px;
width: 24px;
height: 24px;
}
}
}
> section {
display: flex;
flex-flow: column nowrap;
gap: 3px;
overflow: hidden auto;
.scrollbar();
h2,
h3 {
flex: 1 100%;
}
.summary label {
font-weight: bold;
}
.segment {
&.ability-score {
ul {
list-style: none;
margin: 0;
padding: 0;
display: flex;
flex-flow: row wrap;
gap: 1px;
.ability-score {
display: flex;
flex-flow: row nowrap;
flex: 1 33%;
gap: 0.5em;
align-items: center;
.name {
flex: 1;
text-align: right;
}
.value {
display: flex;
flex-flow: row nowrap;
flex: 0 1em;
text-align: center;
font-weight: bold;
&.disabled {
color: var(--pf1-beige);
}
}
.name,
.value {
font-size: var(--font-size-16);
}
.controls {
display: flex;
flex-flow: column nowrap;
gap: 0;
.operator {
flex: 0;
&.disabled {
pointer-events: none;
}
}
}
&.enhanced {
span {
color: steelblue;
}
}
}
}
footer {
display: flex;
flex-direction: column;
border-top: 1px solid var(--pf1-crimson);
align-items: center;
.points-left {
font-size: var(--font-size-16);
line-height: 1.5;
> .ready {
color: green;
}
}
}
}
&.fcb {
.notes {
border: 1px dashed var(--color-border-light-tertiary);
border-radius: 0.5em;
padding: 0 0.3em;
}
}
}
}
> footer {
display: flex;
flex-flow: row nowrap;
flex: 0 3em;
gap: 0.3em;
justify-content: center;
padding: 0.4em;
border-top: var(--pf1-border-groove);
&.buttons {
> .padding {
flex: 1;
}
> button {
flex: 1;
&:disabled {
opacity: 0.6;
}
}
> select {
flex: 0;
}
> select,
> button {
line-height: 2;
height: unset; // Undo Foundry's styling
}
}
}
}
}

View File

@@ -0,0 +1,76 @@
.pf1.dialog.migration-issues {
max-height: 560px;
.dialog-content {
display: flex;
flex-flow: column nowrap;
gap: 0.3em;
overflow: hidden;
h3 {
margin: 0;
flex: 0;
&.center {
text-align: center;
}
}
ul {
flex: 1;
list-style: none;
margin: 0;
padding: 0;
overflow: hidden scroll;
.scrollbar();
display: grid;
grid-template-columns: 4em 5fr;
&.errors {
grid-template-columns: 4em 3fr 5fr;
}
grid-auto-rows: min-content;
gap: 3px;
h3 {
border: none;
background-color: #c6c6bc;
border-bottom: 2px solid #dcddd1;
}
li {
display: contents;
> * {
padding: 0 0.2em;
}
}
.header {
> h3 {
top: 0;
position: sticky;
}
}
.issue {
:is(.id, .uuid) {
justify-self: center;
> a > i {
pointer-events: none;
}
}
:is(.name, .message) {
user-select: all;
}
}
}
}
.dialog-buttons {
flex: 0;
}
}

View File

@@ -0,0 +1,95 @@
.app.pf1.migration {
min-width: 360px;
.window-content {
display: flex;
flex-flow: column nowrap;
gap: 0.7em;
.categories {
display: grid;
grid-template-columns: 5fr 2em 1em 2em 2em 2em 2em 2em;
grid-auto-rows: min-content;
gap: 3px 0.5em;
.category {
display: contents;
h3 {
grid-column: 1 / -1;
display: flex;
justify-content: space-between;
.current {
font-size: var(--font-size-11);
align-self: flex-end;
}
}
.empty {
grid-column: span 6;
}
.value {
text-align: right;
&.has-details {
cursor: pointer;
}
}
.delimiter {
text-align: center;
}
.status {
text-align: center;
&.completed {
color: darkgreen;
}
}
&.item {
.processed {
color: darkgreen;
font-weight: bold;
}
.errors,
.invalid {
&.found {
color: darkred;
font-weight: bold;
}
}
}
}
}
> .status {
text-align: center;
border: none;
margin: 0;
&.completed {
> i {
color: darkgreen;
}
}
}
> :is(.migration-info, .error-info) {
text-align: center;
}
> .error-info {
text-shadow: 0 0 3px rgba(255, 0, 0, 0.3);
.detail:not(:last-of-type) {
&:after {
content: ", ";
}
}
}
}
}

View File

@@ -0,0 +1,44 @@
.pf1.pointbuy-calculator {
.info {
.usage {
text-align: center;
}
.categories {
.closest {
font-weight: bold;
}
}
}
ol.ability-list {
margin: 0;
padding: 0;
li {
height: 2em;
background-color: rgba(155, 155, 155, 0.3);
&:nth-child(odd) {
background-color: rgba(210, 210, 210, 0.3);
}
}
h4 {
margin: 0;
}
.name {
padding: 0 3px;
}
.ability {
gap: 1px;
.controls,
.value {
flex: 0 0 32px;
text-align: center;
}
}
}
}

View File

@@ -0,0 +1,5 @@
.pf1.speed-editor {
.form-fields {
flex: 1;
}
}

View File

@@ -0,0 +1,25 @@
.pf1.dialog.split-stack {
.window-content {
.dialog-content {
display: flex;
flex-flow: column nowrap;
gap: 0.5em;
> div {
display: flex;
flex-flow: row nowrap;
gap: 0.5em;
.stack-size {
flex: 1 4em;
text-align: center;
}
.stack-drag {
flex: 4 12em;
align-self: end;
}
}
}
}
}

View File

@@ -0,0 +1,80 @@
.app.pf1.trait-selector {
max-height: 720px;
form {
height: 100%;
display: flex;
flex-flow: column nowrap;
.trait-list {
flex: 1;
list-style: none;
margin: 0;
padding: 0;
overflow: auto;
.scrollbar();
li.search-mismatch {
display: none;
}
}
.custom-tags {
display: flex;
flex-flow: row wrap;
gap: 0.5em;
> h3 {
margin: 0;
}
.custom-tag-list {
list-style: none;
margin: 0;
padding: 0;
display: flex;
flex-flow: row wrap;
gap: 1px 3px;
> .custom-tag {
line-height: 1.5;
font-size: var(--font-size-12);
> a {
display: inline-flex;
align-items: center;
gap: 0.3em;
> span {
background-color: rgba(0, 0, 0, 0.05);
border-radius: 5px;
padding: 0 5px;
}
> i {
opacity: 0.4;
}
&:hover {
> i {
opacity: 1;
}
}
}
&.pre-delete {
> a {
text-shadow: 0 0 5px red;
> span {
background-color: rgba(255, 0, 0, 0.3);
}
> i {
opacity: 1;
}
}
}
}
}
}
}
}

View File

@@ -0,0 +1,85 @@
.app.pf1.troubleshooter {
form {
&.migrating {
> * {
pointer-events: none;
}
}
h3 {
margin: 0;
}
a {
color: var(--color-text-hyperlink);
}
li > ul {
// Reduce Foundry's margin
margin-top: 0.2em;
}
button {
display: flex;
flex-flow: row nowrap;
gap: 0.3rem;
align-items: center;
justify-content: center;
> * {
// Prevent click handlers for button children
pointer-events: none;
}
.progress {
visibility: hidden;
flex: 0 24px;
&.spinner {
color: gray;
@keyframes pf1-constant-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
animation: pf1-constant-spin 2.5s infinite linear;
}
}
&.finished .progress {
&.spinner {
visibility: hidden;
}
&.check {
visibility: visible;
color: darkgreen;
}
}
}
.hint {
padding: 0 10%;
}
.options {
label.checkbox {
// Undo generic styling
white-space: unset;
}
}
&.migrating {
button {
.progress.spinner {
visibility: visible;
}
}
}
}
}

View File

@@ -0,0 +1,93 @@
.pf1.xp-distributor {
form {
display: flex;
flex-flow: column nowrap;
overflow: hidden;
.selectors {
overflow-y: auto;
.scrollbar();
flex: 1;
.character-selector .actor {
grid-template-rows: 96px 36px 18px;
}
.npc-selector .actor {
grid-template-rows: 96px 36px 16px 18px;
}
.character-selector,
.npc-selector {
display: grid;
flex-flow: row wrap;
grid-template-columns: repeat(auto-fit, 96px);
grid-gap: 0.4rem;
.actor {
cursor: pointer;
width: 96px;
padding: 4px;
align-items: center;
border-radius: 4px;
display: grid;
justify-items: center;
grid-row-gap: 2px;
input[type="checkbox"] {
cursor: pointer;
}
img.portrait {
height: 88px;
width: 88px;
object-fit: cover;
object-position: 50% 0;
}
span {
overflow: hidden;
text-align: center;
text-overflow: ellipsis;
display: -webkit-inline-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
&.toggled {
background: rgba(155, 155, 155, 0.5);
span.name {
text-shadow: 0 0 10px red;
}
}
&:hover {
background: rgba(155, 155, 155, 0.2);
span.name {
text-shadow: 0 0 10px red;
}
}
}
}
}
.footer {
flex: 0;
line-height: 24px;
margin-bottom: 5px;
display: flex;
flex-flow: column;
gap: 3px;
}
fieldset {
padding: 0 0.5em 0.3em 0.3em;
legend {
font-size: 1.5em;
}
}
}
}

View File

@@ -0,0 +1 @@
@import "token-hud.less";

View File

@@ -0,0 +1,22 @@
#hud .actions .control-icon {
border: 2px solid var(--pf1-quick-action-default-border);
&.type-feat {
border-color: var(--pf1-quick-action-feat-border);
}
&.type-attack {
border-color: var(--pf1-quick-action-attack-border);
}
&.type-weapon {
border-color: var(--pf1-quick-action-weapon-border);
}
&.type-equipment {
border-color: var(--pf1-quick-action-equipment-border);
}
&.type-consumable {
border-color: var(--pf1-quick-action-consumable-border);
}
&.type-spell {
border-color: var(--pf1-quick-action-spell-border);
}
}

View File

@@ -0,0 +1,7 @@
@import "common-chat.less";
@import "type-colors.less";
@import "dice.less";
@import "context-menu.less";
@import "enriched-text.less";
@import "cards/_index.less";

View File

@@ -0,0 +1,2 @@
@import "attack-card.less";
@import "defense-card.less";

View File

@@ -0,0 +1,7 @@
.chat-message .pf1 {
table {
td {
padding: 0;
}
}
}

View File

@@ -0,0 +1,26 @@
.chat-message {
.pf1.chat-card {
&.defense-card {
display: flex;
flex-flow: column;
gap: 1px;
.defense {
display: flex;
flex-flow: row;
gap: 3px;
h5 {
flex: 1;
}
.value {
flex: 0;
}
> .cmd {
flex: 2;
}
}
}
}
}

View File

@@ -0,0 +1,497 @@
/* ----------------------------------------- */
/* Chat Cards
/* ----------------------------------------- */
.pf1.chat-card {
font-style: normal;
font-size: var(--font-size-12);
.card-header {
padding: 3px;
border-top: 2px groove #fff;
border-bottom: 2px groove #fff;
gap: 0 3px;
img {
flex: 0 0 36px;
border: unset; // Undo Foundry's styling
}
.item-name {
display: flex;
flex-flow: row wrap;
align-content: center;
}
h3 {
flex: 1;
margin: 0;
border: unset;
.modesto();
}
}
.card-content {
margin: 5px 0;
hr {
border-top: none;
border-bottom: var(--pf1-border-thin-light);
}
.item-name,
.action-name {
.modesto();
align-self: center;
margin: 0;
font-weight: bold;
}
.description-metadata {
flex: 0 1;
text-align: right;
color: var(--pf1-olive);
font-size: var(--font-size-20);
}
.item-description *,
.action-description * {
-webkit-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
user-select: text;
}
.item-description,
.action-description {
p:empty {
// Undo Foundry's insistence <p> must have minimum size
min-height: unset;
}
}
.item-description {
max-height: 600px;
overflow: hidden auto;
.scrollbar();
}
.identified-info {
background: var(--pf1-bg-dark-0);
border-radius: 3px;
border: var(--pf1-border-thin-light);
padding: 2px;
margin-bottom: 0.75em;
}
}
.card-range {
display: block;
margin: 0 2px 1px 0;
padding: 1px 3px;
font-size: var(--font-size-12);
line-height: 1.5;
border: 1px solid #999;
border-radius: 3px;
background: var(--pf1-bg-dark-0);
flex: 0 1 auto;
text-align: center;
&:hover {
border-color: blue;
}
}
.card-buttons {
margin: 2px 0;
&.spell-buttons,
.card-button-group {
label {
text-align: center;
}
button {
font-size: var(--font-size-12);
height: 20px;
line-height: 1.3;
margin: 2px 0;
}
}
}
.card-footer {
padding: 3px 0 0;
border-top: 2px groove #fff;
.spell-failure {
padding: 4px;
margin-bottom: 4px;
border: 1px solid #999;
border-radius: 3px;
h3 {
color: #4c6d9f;
font-size: var(--font-size-14);
text-align: center;
}
.dice-roll,
.dice-total {
padding: 0;
}
}
}
.attack-row,
.damage-row {
align-items: baseline;
a.inline-result {
border-radius: 2px;
}
h1 {
margin-bottom: 4px;
font-size: var(--font-size-14);
font-weight: bold;
border-bottom: unset;
box-shadow: inset 0px -2px 0px 0px #782e22;
}
h2 {
font-size: var(--font-size-12);
margin-bottom: 4px;
margin-top: 4px;
}
}
.fake-inline-roll {
padding: 1px 4px 0 4px;
color: black;
i {
color: #7a7971;
}
text-shadow: none;
font-weight: normal;
cursor: initial;
}
.inline-roll,
.fake-inline-roll {
flex: 0;
height: 100%;
&.critical-threat {
background-color: var(--pf1-roll-critical);
}
&.success {
background-color: var(--pf1-roll-success);
}
&.failure {
background-color: var(--pf1-roll-failure);
}
}
.damage-type-visual {
border: unset;
background: none;
&.empty {
display: flex;
white-space: nowrap;
}
& > span {
text-align: center;
word-break: keep-all;
}
&:hover:not(.disabled) {
cursor: initial;
box-shadow: unset;
}
}
}
.message {
.attack-targets {
h2 {
flex: 1 100%;
margin: 0.2rem 0;
}
margin-bottom: 4px;
display: flex;
flex-flow: row wrap;
gap: 3px;
justify-content: center;
.target {
display: flex;
flex-flow: row nowrap;
flex: 0 0 content;
outline: 1px solid black; // Outline doesn't use space unlike border
padding: 2px 0;
align-items: center;
.icon-pf {
height: 16px;
}
.saving-throws {
display: flex;
flex-flow: column nowrap;
justify-content: space-evenly;
min-width: 40px;
> div {
display: flex;
justify-content: space-evenly;
text-align: center;
align-items: center;
&.click {
&:hover {
box-shadow: 0 0 10px red;
cursor: pointer;
}
}
> * {
flex: 0 0 16px;
}
.value {
&.success {
color: var(--pf1-success);
font-weight: bold;
}
&.failure {
color: var(--pf1-failure);
font-weight: bold;
}
}
}
}
img.target-image {
width: 48px;
height: 48px;
object-fit: cover;
object-position: 50% 0;
border: none;
margin: 0;
}
.ac {
display: flex;
flex-flow: column nowrap;
justify-content: space-evenly;
min-width: 40px;
&:hover {
box-shadow: 0 0 10px red;
cursor: pointer;
}
> div {
display: flex;
justify-content: space-evenly;
text-align: center;
align-items: center;
> * {
flex: 0 0 16px;
}
}
}
}
}
.chat-attack {
margin-bottom: 2px;
td.roll {
white-space: nowrap;
}
.attack-flavor {
i.fas {
color: red;
}
}
.dice-roll {
overflow: hidden;
.dice-flavor {
color: #4c6d9f;
font-size: var(--font-size-11);
text-align: center;
white-space: nowrap;
}
.dice-total {
font-size: var(--font-size-14);
line-height: 1.3;
}
}
table {
td.roll {
width: 0;
padding: 2px;
}
a.inline-action {
opacity: 0;
}
&:hover a.inline-action {
opacity: 100%;
}
}
}
.ammo {
display: flex;
flex-flow: row nowrap;
img {
width: 24px;
height: 24px;
margin-right: 4px;
}
span,
i {
vertical-align: middle;
line-height: 24px;
}
a {
opacity: 0;
}
&:hover a {
opacity: 100%;
}
}
.property-group {
flex: 0 0 24px;
/* Tags */
.tag {
display: inline-block;
padding: 1px 3px;
font-size: var(--font-size-11);
line-height: 1.2;
border: 1px solid #999;
border-radius: 3px;
background: var(--pf1-bg-dark-0);
flex: 0 1 auto;
white-space: initial;
}
input[type="text"] {
height: 24px;
margin: 2px;
}
label {
flex: 2;
color: var(--pf1-olive);
font-weight: bold;
}
}
.extra-text {
margin-top: 8px;
flex: 0 0 100%;
label {
flex: 2;
color: var(--pf1-olive);
font-weight: bold;
}
}
.extra-effect:not(:last-child),
.extra-misc:not(:last-child) {
margin-bottom: 5px;
}
.extra-effect {
position: relative;
margin: 0;
line-height: 20px;
text-align: center;
background: rgba(0, 0, 0, 0.1);
border: 1px solid #999;
border-radius: 3px;
box-shadow: 0 0 2px #fff inset;
}
.extra-misc {
position: relative;
margin: 0;
line-height: 20px;
text-align: center;
background: rgba(0, 0, 0, 0.05);
border: 1px solid #999;
border-radius: 3px;
box-shadow: 0 0 2px #fff inset;
}
.extra-roll-label {
font-weight: bold;
font-size: var(--font-size-12);
}
div.defense {
table {
font-size: var(--font-size-12);
width: 100%;
table-layout: fixed;
td,
th {
text-align: center;
}
}
}
.level-up {
.item {
margin-bottom: 4px;
img {
vertical-align: middle;
}
}
.level-change {
margin-bottom: 4px;
}
div.part {
margin-bottom: 4px;
}
}
}
.pf1.chat-card.defense-card {
.saving-throws {
margin-top: 4px;
}
.tag-list {
margin-bottom: 2px;
}
}
.chat-message .property-group .tag-list {
gap: 1px;
}

View File

@@ -0,0 +1,17 @@
.chat-message {
#context-menu {
.context-item {
.pf1 {
&.context-icon {
&.concentration {
color: darkorange;
}
&.caster-level {
color: darkorange;
}
}
}
}
}
}

View File

@@ -0,0 +1,33 @@
.chat-message {
.dice-roll {
.roll {
&.die,
&.fatedie,
&.coin {
color: var(--pf1-roll-normal);
}
&.die.success,
&.die.max,
&.fatedie.success,
&.coin.heads {
color: var(--pf1-roll-success-alt);
filter: sepia(0.5) hue-rotate(60deg);
}
&.die.failure,
&.fatedie.failure,
&.coin.tails {
color: var(--pf1-roll-failure-alt);
filter: sepia(0.5) hue-rotate(-60deg);
}
}
}
// Take X and formula replacement
.flavor-text {
i.fas.abnormal {
color: maroon;
}
}
}

View File

@@ -0,0 +1,33 @@
// Enriched link
a.pf1-link {
white-space: nowrap;
word-break: break-all;
&.content,
&.button {
border: 1px solid var(--color-border-light-tertiary);
border-radius: 5px;
padding: 1px 4px;
background: #ddd;
}
&.broken {
background: #ecc;
border: unset;
color: var(--color-level-error);
cursor: initial;
}
}
// Enriched data
a.pf1-info {
white-space: nowrap;
word-break: break-all;
background-color: var(--pf1-bg-dark-0);
padding: 0 3px;
border-radius: 0.5em;
outline: 0 0 3px black;
cursor: initial;
}

View File

@@ -0,0 +1,64 @@
.pf1 .type-color {
--primary: #fff;
--secondary: #c1c1c1;
--foreground: black;
&.type-buff {
--primary: #fdf767;
--secondary: #fdf203;
--foreground: black;
}
&.type-feat {
--primary: #8900ea;
--secondary: #5f00a3;
--foreground: white;
}
&.type-spell {
--primary: #5c37ff;
--secondary: #4026b2;
--foreground: white;
}
&.type-class {
--primary: #85b1d2;
--secondary: #6a8da8;
--foreground: black;
}
&.type-race {
--primary: #00bd29;
--secondary: #00841c;
--foreground: black;
}
&.type-attack {
--primary: #f21b1b;
--secondary: #a91212;
--foreground: white;
}
// Physical items
&.type-weapon,
&.type-equipment,
&.type-consumable,
&.type-loot {
--primary: #e5e5e5;
--secondary: #b7b7b7;
--foreground: black;
}
&.defenses {
--foreground: black;
}
&.card-header {
color: var(--foreground);
background-image: linear-gradient(to right, var(--primary), var(--secondary));
.item-name {
color: var(--foreground);
}
}
}

View File

@@ -0,0 +1,5 @@
// Overrides for Foundry's color variables
:root {
--color-border-light-secondary: var(--pf1-beige);
}

View File

@@ -0,0 +1,6 @@
@import "inputs.less";
@import "button.less";
@import "info-box.less";
@import "notification-box.less";
@import "forms.less";
@import "basic.less";

View File

@@ -0,0 +1,8 @@
.pf1 {
.scrollbar();
h4 {
// Make h4 distinct like h1-h3 headers
border-bottom: 1px solid var(--pf1-header-underline);
}
}

View File

@@ -0,0 +1,9 @@
.pf1 {
// Buttons
button {
border: var(--pf1-border-groove);
}
button:active {
background: var(--pf1-bg-dark-2);
}
}

View File

@@ -0,0 +1,7 @@
.pf1 {
select {
option:checked {
font-weight: bold;
}
}
}

View File

@@ -0,0 +1,110 @@
.pf1 {
.info-box {
flex: 1;
display: flex;
flex-flow: column;
border: 1px solid var(--color-border-dark-3);
border-radius: 0.3em;
> h5 {
flex: 0;
margin: 0;
text-align: center;
padding: 0.2em 0.3em;
white-space: nowrap;
font-size: var(--font-size-13);
color: var(--color-text-light-highlight);
text-shadow: 1px 1px var(--color-shadow-dark);
background-color: var(--pf1-bg-dark-3);
}
.value {
flex: 1;
display: flex;
flex-flow: column;
align-items: center;
justify-content: center;
padding: 1px 3px;
> select {
width: 100%;
}
> input {
text-align: center;
padding: unset;
background-color: var(--pf1-bg-dark-0);
&:hover {
border: unset;
}
}
line-height: 1.5;
}
input {
line-height: 1.5;
height: unset;
&:is([type="text"], [type="number"]) {
border: 1px solid transparent;
}
}
}
.info-box-joined {
display: flex;
flex-flow: row nowrap;
flex: 1;
> .info-box {
border-radius: unset;
flex: 1;
border-right-style: unset;
&:first-of-type {
border-radius: 0.3em 0 0 0.3em;
}
&:last-of-type {
border-radius: 0 0.3em 0.3em 0;
border-right-style: solid;
}
// In joined box alone
&:only-of-type {
border-radius: 0.3em;
}
}
}
.info-box-header {
display: flex;
flex-flow: row wrap;
gap: 1px 3px;
> h3 {
flex: 1 100%;
margin: 0;
padding: 0;
border: unset;
color: var(--color-text-light-highlight);
text-shadow: 1px 1px var(--color-shadow-dark);
font-weight: bold;
line-height: 1.5;
background-color: var(--pf1-bg-dark-4);
border: 1px solid var(--color-border-dark-3);
border-width: 1px 1px 0 1px;
text-align: center;
border-radius: 0.3em 0.3em 0 0;
}
}
}

View File

@@ -0,0 +1,36 @@
.pf1 {
:is(h1,h3) input[type="text"],
:is(input[type="text"],input[type="number"]).blended {
background: none;
border: 1px solid transparent;
&:hover,
&:focus {
border: 1px solid #111;
}
}
input {
&.small {
flex: 0 3em;
width: 3em;
}
}
textarea {
font-family: sans-serif;
padding: 1px 5px;
resize: none;
border: 1px solid var(--pf1-tan);
background: var(--pf1-bg-dark-0);
&:hover {
border: 1px solid #111;
}
}
select {
flex: 1;
font-size: var(--font-size-12);
line-height: 1;
background: transparent;
}
}

View File

@@ -0,0 +1,33 @@
.pf1 {
.notification-box {
display: inline-flex;
flex: 0;
border: 1px solid black;
border-radius: 3px;
font-size: var(--font-size-12);
> h5 {
margin: 0;
padding: 0;
background-color: rgba(0,0,0,0.6);
color: var(--color-text-light-highlight);
font-weight: normal;
}
> :is(h5,span) {
white-space: nowrap;
padding: 0 3px;
font-size: inherit;
}
> .value {
background-color: rgba(255,255,255,0.2);
}
&.warning > .value {
background-color: rgba(255,0,0,0.2);
}
}
}

View File

@@ -0,0 +1,81 @@
:root {
--pf1-bg-dark-0: rgba(0, 0, 0, 0.05);
--pf1-bg-dark-05: rgba(0, 0, 0, 0.1);
--pf1-bg-dark-1: rgba(0, 0, 0, 0.2);
--pf1-bg-dark-2: rgba(0, 0, 0, 0.3);
--pf1-bg-dark-3: rgba(0, 0, 0, 0.35);
--pf1-bg-dark-4: rgba(0, 0, 0, 0.5);
--pf1-bg-dark-5: rgba(0, 0, 0, 0.7);
--pf1-bg-light-1: #c9c7b8;
--pf1-bg-gray-4: rgba(127, 127, 127, 0.5);
--pf1-color-text-hover: #aa0200;
--pf1-color-text-error: #770200;
--pf1-success: #18520b;
--pf1-failure: #aa0200;
// TODO: Make these colors more meaningful
// in terms of what they're for rather than what color they are
--pf1-red: #da0000;
--pf1-crimson: #44191a;
--pf1-rust: #782e22;
--pf1-olive: #4b4a44;
--pf1-tan: #7a7971;
--pf1-beige: #b5b3a4;
--pf1-faint: #c9c7b8;
--pf1-roll-critical: #d8e9ba;
--pf1-roll-success: hsl(201deg 66% 74%);
--pf1-roll-success-alt: hsl(174deg 100% 8%); // for hue rotated blocks
--pf1-roll-failure: hsl(0deg 49% 75%);
--pf1-roll-failure-alt: hsl(53deg 100% 17%); // for hue rotated blocks
--pf1-roll-normal: hsl(0deg 0% 20%);
--pf1-quick-action-default-border: gray;
--pf1-quick-action-attack-border: crimson;
--pf1-quick-action-weapon-border: silver;
--pf1-quick-action-equipment-border: violet;
--pf1-quick-action-consumable-border: limegreen;
--pf1-quick-action-feat-border: darkorange;
--pf1-quick-action-spell-border: blueviolet;
--pf1-item-hover-text: var(--color-text-dark-primary);
--pf1-item-hover-shadow: 0 0 10px red;
--pf1-item-list-hover-bg: rgba(140, 130, 110, 0.25);
--pf1-item-list-hover-text: var(--color-text-dark-primary);
--pf1-item-list-bg: rgba(175, 175, 175, 0.3);
--pf1-item-list-bg-alt: rgba(210, 210, 210, 0.3);
--pf1-compendium-item-border: #ccc;
--pf1-warning-bg: #cece00;
--pf1-warning-border: #909000;
--pf1-dim-bg: #92918b;
--pf1-dark-bg: #191813;
--pf1-header-background: rgb(116, 116, 116);
--pf1-header-text: white;
--pf1-header-shadow: 1px 1px black;
--pf1-header-bg-dark-0: rgba(0, 0, 0, 0.5);
--pf1-input-bg-shade: var(--pf1-bg-dark-0);
--pf1-scrollbar-handle: darkred;
--pf1-scrollbar-background: transparent;
--pf1-invalid-input-border: 2px solid var(--pf1-rust);
--pf1-invalid-input-bg: rgba(255, 0, 0, 0.05);
--pf1-border-thin-light: 1px solid var(--color-border-light-2, #999);
--pf1-header-underline: var(--color-underline-header);
--pf1-control-color: var(--pf1-olive);
}

View File

@@ -0,0 +1,13 @@
/**
* Corrective stylings across the board for all Font Awesome icons used by the system.
*/
.pf1 {
.fa-solid,
.fas {
&.fa-fw {
// Fixed width icons should not flex.
flex: 0 1.25em; // 1.25em is fa-fw width
}
}
}

View File

@@ -0,0 +1,3 @@
@import "token-config.less";
@import "roll-tooltip.less";
@import "chat-log.less";

View File

@@ -0,0 +1,5 @@
#chat-log {
// HACK: Fixes scrollbar styling and width in Chrome (to show like it does in Electron)
scrollbar-width: thin;
scrollbar-color: #782e22 #111; // Colors used by Foundry v11
}

View File

@@ -0,0 +1,35 @@
.inline-roll {
.dice-tooltip {
.tooltip-part {
.part-header {
flex-flow: row nowrap;
.part-formula {
text-align: left;
flex: 1;
&:empty {
flex: 0;
}
}
.part-flavor {
text-align: right;
flex: 2 min-content;
white-space: normal;
word-break: normal;
}
.part-total {
border: unset;
background: unset;
flex: 0 2em;
text-align: right;
.part-prefix {
color: var(--color-text-dark-inactive);
}
}
}
}
}
}

View File

@@ -0,0 +1,33 @@
.app.sheet.token-sheet {
.tab {
&[data-tab="detection"] {
&.disabled {
// Detection modes tab buttons
.action-button {
visibility: hidden;
pointer-events: none;
}
}
}
fieldset.pf1 {
padding: 0 0.2em;
> legend {
font-size: var(--font-size-11);
}
label {
// Undo PF1 generic styling
font-weight: unset;
// Undo Foundry styling
line-height: unset;
}
input {
// Undo Foundry styling
margin: 0;
}
}
}
}

View File

@@ -0,0 +1,102 @@
.icon-pf {
background-color: black;
mask-repeat: no-repeat;
-webkit-mask-repeat: no-repeat;
mask-position: center;
-webkit-mask-position: center;
mask-size: cover;
-webkit-mask-size: cover;
width: 24px;
height: 24px;
&.gladius {
background-image: url(icons/actions/gladius.svg), none;
}
&.all-for-one {
background-image: url(icons/actions/all-for-one.svg), none;
}
&.punch-blast {
background-image: url(icons/actions/punch-blast.svg), none;
}
&.icon-gears {
mask-image: url(icons/actions/gears.svg);
-webkit-mask-image: url(icons/actions/gears.svg);
}
&.icon-inventory-slot {
mask-image: url(icons/actions/inventory-slot.svg);
-webkit-mask-image: url(icons/actions/inventory-slot.svg);
}
&.icon-coins {
mask-image: url(icons/actions/coins.svg);
-webkit-mask-image: url(icons/actions/coins.svg);
}
&.icon-weight {
mask-image: url(icons/actions/weight.svg);
-webkit-mask-image: url(icons/actions/weight.svg);
}
&.icon-quill-ink {
mask-image: url(icons/actions/quill-ink.svg);
-webkit-mask-image: url(icons/actions/quill-ink.svg);
}
&.icon-wheelbarrow {
mask-image: url(icons/actions/wheelbarrow.svg);
-webkit-mask-image: url(icons/actions/wheelbarrow.svg);
}
&.icon-battle-gear {
mask-image: url(icons/actions/battle-gear.svg);
-webkit-mask-image: url(icons/actions/battle-gear.svg);
}
&.icon-battery-pack {
mask-image: url(icons/actions/battery-pack.svg);
-webkit-mask-image: url(icons/actions/battery-pack.svg);
}
&.icon-magic-palm {
mask-image: url(icons/actions/magic-palm.svg);
-webkit-mask-image: url(icons/actions/magic-palm.svg);
}
&.icon-hand {
mask-image: url(icons/actions/hand.svg);
-webkit-mask-image: url(icons/actions/hand.svg);
}
&.icon-upgrade {
mask-image: url(icons/actions/upgrade.svg);
-webkit-mask-image: url(icons/actions/upgrade.svg);
}
&.icon-expense {
mask-image: url(icons/actions/expense.svg);
-webkit-mask-image: url(icons/actions/expense.svg);
}
&.icon-spell-book {
mask-image: url(icons/actions/spell-book.svg);
-webkit-mask-image: url(icons/actions/spell-book.svg);
}
&.icon-brain {
mask-image: url(icons/actions/brain.svg);
-webkit-mask-image: url(icons/actions/brain.svg);
}
&.icon-heart-plus {
mask-image: url(icons/actions/heart-plus.svg);
-webkit-mask-image: url(icons/actions/heart-plus.svg);
}
&.icon-divert {
mask-image: url(icons/actions/divert.svg);
-webkit-mask-image: url(icons/actions/divert.svg);
}
}

View File

@@ -0,0 +1,471 @@
.pf1.sheet.item {
min-width: 580px;
min-height: 620px;
max-height: calc(100% - 24px);
form {
/* ----------------------------------------- */
/* Sheet Header */
/* ----------------------------------------- */
.sheet-header {
img.profile {
border: none;
}
.item-subtitle {
flex: 0 0 auto;
height: 60px;
margin: 0;
padding: 5px;
text-align: right;
color: var(--pf1-tan);
.item-type {
font-size: var(--font-size-20);
line-height: 1.1;
margin: 0;
}
.item-status {
font-size: var(--font-size-14);
line-height: 1.1;
}
}
}
.primary-body {
.tab {
padding: 0 5px;
}
.item-properties {
flex: 0 0 120px;
margin: 5px 5px 5px 0;
padding-right: 5px;
border-right: var(--pf1-border-groove);
.form-group {
margin: 0;
justify-content: space-between;
label {
line-height: 20px;
flex: 0;
}
input {
text-align: right;
}
}
.properties-list {
list-style: none;
margin: 0;
padding: 0;
li {
margin: 3px 0;
padding: 0 2px;
background: var(--pf1-bg-dark-0);
border: var(--pf1-border-groove);
text-align: center;
font-size: var(--font-size-12);
line-height: 1.5;
}
}
}
}
// General
.entry-selector,
.speed-editor,
.trait-selector,
.item-selector {
flex: 0 0 16px;
color: var(--pf1-control-color);
font-size: var(--font-size-12);
}
/* ----------------------------------------- */
/* Item Details Form */
/* ----------------------------------------- */
.details {
// Item Sheet form fields
input[type="text"],
input[type="number"],
select {
border: 1px solid var(--pf1-tan);
background: var(--pf1-bg-dark-0);
}
.traits-list {
list-style: none;
margin: 0;
padding: 0;
text-align: right;
}
.form-group.input-select {
&.activation-cost {
select {
flex: 1.8;
}
}
&.duration {
select {
flex: 1;
}
}
}
.form-group.input-select-select {
select {
flex: 1.5;
}
}
.form-group.uses-per {
input {
flex: 1;
}
span {
text-align: center;
flex: 0 0 16px;
line-height: 24px;
}
select {
flex: 3;
}
}
.item-link {
.image {
flex: 0 24px;
}
.item-name {
flex: 1;
text-align: left;
padding: 0; // Override Foundry padding
}
[data-item-id]:hover {
.item-name {
color: var(--pf1-item-hover-text);
text-shadow: var(--pf1-item-hover-shadow);
cursor: pointer;
}
}
}
span.sep {
flex: 0 0 8px;
line-height: 24px;
text-align: center;
}
.prepared {
flex: 1.3 !important;
text-align: right;
padding-right: 10px;
}
// Spell Materials
.spell-materials {
flex: 0 0 100%;
margin: 0.25em 0;
justify-content: flex-end;
label {
flex: 0 0 64px;
text-align: right;
margin-right: 5px;
font-size: var(--font-size-12);
line-height: 2;
}
input[type="text"] {
flex: 0 0 48px;
margin-right: 10px;
}
}
.item-list {
.item {
line-height: 24px;
border-bottom: 1px solid var(--pf1-faint);
&:last-child {
border-bottom: none;
}
.checkbox {
flex: 0;
}
.skill-cs {
height: 24px;
}
}
}
}
.tab {
// Item list header
.item-list-header {
margin: 2px 0;
padding: 0;
background: var(--pf1-bg-dark-0);
border: var(--pf1-border-groove);
font-weight: bold;
line-height: 24px;
h3 {
padding-left: 5px;
font-size: var(--font-size-12);
font-weight: bold;
}
// .item-controls a.item-create {
// flex: 0 0 100%;
// }
}
.item-weight {
flex: 0 0 60px;
border-left: 1px solid var(--pf1-faint);
border-right: 1px solid var(--pf1-faint);
}
.item-list {
list-style: none;
margin: 0;
padding: 0;
}
// Item Dropdown Summary in containers
.item-summary {
flex: 0 0 100%;
font-size: var(--font-size-12);
line-height: 1.3;
padding: 0.25em 0.5em;
border-top: 1px solid var(--pf1-faint);
}
}
/* ----------------------------------------- */
/* Item Actions */
/* ----------------------------------------- */
h4 {
&:is(.damage-header, .change-header, .context-notes-header, .attack-header, .conditional-header) {
margin: 0;
padding: 0;
font-weight: bold;
line-height: 24px;
color: var(--pf1-olive);
border: unset;
}
}
.damage-parts,
.attack-parts {
list-style: none;
margin: 0;
padding: 0;
.damage-part,
.attack-part {
flex: 0 0 100%;
padding: 2px;
input {
flex: 3;
margin-right: 3px;
}
input:not(:first-child) {
margin-left: 5px;
}
select {
margin-left: 5px;
flex: 1;
}
}
}
.tab.changes {
.context-notes {
list-style: none;
margin: 0;
padding: 0;
display: block;
.context-note {
flex: 0 0 100%;
padding: 1px;
.context-note-target {
border: 1px solid var(--pf1-tan);
background: var(--pf1-bg-dark-0);
white-space: nowrap;
overflow: hidden;
height: 24px;
line-height: 24px;
border-radius: 4px;
text-align: center;
cursor: pointer;
font-size: var(--font-size-12);
&:hover {
box-shadow: 0 0 8px var(--pf1-red);
}
&.invalid {
border: var(--pf1-invalid-input-border);
background: url(icons/misc/hazard-sign.svg) no-repeat 95% 50% var(--pf1-bg-dark-0);
background-size: contain;
}
}
}
}
}
.conditionals {
.conditional,
.conditional-modifier {
padding: 1px;
select {
max-width: max-content;
min-width: 80px;
flex: 1;
border: 1px solid var(--pf1-tan);
background: var(--pf1-bg-dark-0);
}
select:not(:first-child) {
margin-left: 5px;
}
select:invalid {
border: var(--pf1-invalid-input-border);
background: url(icons/misc/hazard-sign.svg) no-repeat 80% 50% var(--pf1-bg-dark-0);
background-size: contain;
}
input[type="text"] {
height: 24px;
border: 1px solid var(--pf1-tan);
background: var(--pf1-bg-dark-0);
}
input[type="text"]:invalid {
border: var(--pf1-invalid-input-border);
background: url(icons/misc/hazard-sign.svg) no-repeat 100% 50% var(--pf1-bg-dark-0);
background-size: contain;
}
input[type="text"]:not(:first-child) {
margin-left: 5px;
}
input[class*="conditional-name"]:not(:first-child) {
margin-left: 0;
}
.conditional-name,
.conditional-formula {
min-width: 140px;
}
.conditional-damage-type {
min-width: 90px;
max-width: 200px;
}
.form-group {
padding-left: 30px;
}
}
}
.controls {
a {
flex: 0;
display: inline-flex;
flex-flow: row nowrap;
align-items: center;
gap: 0.3em;
color: var(--pf1-control-color);
border: unset; // Undo general style
&.disabled {
color: var(--color-text-dark-inactive);
}
}
}
.recharge {
span {
line-height: 24px;
flex: 0 0 80px;
}
label.checkbox {
flex: 0 0 80px;
text-align: right;
}
}
.formula,
.text-input {
flex: 10 0 80px;
.result {
.small {
flex: 0 10 20px;
}
}
}
.weapon-properties label.checkbox {
flex: 0 0 98px;
}
/* ----------------------------------------- */
/* Loot Sheet
/* ----------------------------------------- */
div[data-tab="description"][data-group="primary"] {
nav {
flex: 0;
}
.description-container {
flex: 1;
height: 100%;
}
}
footer {
flex: 0;
}
.tab[data-tab="advanced"] {
.tags {
.form-group {
align-items: flex-start;
}
}
}
}
}

View File

@@ -0,0 +1,3 @@
// Styles for supporting legacy content (mainly in chat)
@import "./chat.less";

View File

@@ -0,0 +1,15 @@
.chat-message .pf1.chat-card {
// Support chat cards created prior to .icon-pf rename
.icon {
width: 16px;
height: 16px;
}
&.item-card {
header {
.item-name {
cursor: pointer;
}
}
}
}

View File

@@ -0,0 +1,168 @@
.pf1 {
form {
.form-group.stacked {
label {
flex: 0 0 100%;
}
label.checkbox {
flex: auto;
text-align: left;
font-size: var(--font-size-11);
height: unset; // Removes Foundry's insistent 22px sizing
input[type="checkbox"] {
height: unset;
margin: unset;
}
}
}
}
}
/* Unrolled inline roll; copy normal inline roll format */
.inline-preroll.inline-formula {
background: #ddd;
padding: 1px 4px;
border: 1px solid var(--color-text-dark-inactive);
border-radius: 2px;
white-space: nowrap;
word-break: break-all;
&:hover {
text-shadow: none;
cursor: default;
}
> i {
color: var(--color-text-dark-inactive);
}
}
.pf1 {
span.text-box {
display: inline-block;
text-align: center;
border: 1px solid transparent;
border-radius: 3px;
color: black;
min-width: 20px;
width: calc(100% - 2px);
//padding: 1px 3px;
cursor: text;
min-height: 1em;
line-height: 1.5;
&.readonly {
cursor: initial;
}
&:hover {
box-shadow: 0 0 8px red;
border-color: black;
}
&.readonly {
box-shadow: none;
border-color: transparent;
}
&:empty:before {
content: "\a0";
}
}
input.text-box {
text-align: center;
}
a.disabled {
* {
color: var(--pf1-beige);
}
text-shadow: 0 0 transparent;
cursor: auto;
}
table {
margin: 0;
thead {
.icon-pf {
background-color: white;
}
border-color: var(--color-border-dark-5);
}
tbody {
th {
background: var(--pf1-bg-gray-4);
color: white;
text-shadow: 1px 1px black;
}
}
tr {
:is(td, th):not(.nocenter) {
text-align: center;
}
}
td:not(:last-child) {
border-right: 1px solid var(--color-border-dark-tertiary);
}
th:not(:last-child) {
border-right: 1px solid var(--color-border-dark-5);
}
}
.item-list-search,
.actor-list-search {
display: flex;
flex-wrap: nowrap;
flex: 0;
& ~ .currency {
margin-left: 1em;
}
.search-input {
border: 1px solid var(--pf1-tan);
background-color: rgba(255, 255, 255, 0.6);
// Clear Foundry's styling
height: unset;
}
}
.item-list-search {
flex: 0 12em;
}
}
#settings #pf1-details > ul {
padding: 3px 8px;
margin: 0;
}
.compendium-sidebar[data-tab="compendium"] footer.action-buttons {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: min-content;
gap: 3px;
padding: 0.5rem; // For v10 to have comparable styling to v11
button {
// Overide Foundry's style
margin: 0;
width: unset;
white-space: break-spaces;
min-width: unset;
height: unset;
line-height: 1.5;
min-height: 2em;
}
.colspan-2 {
grid-column: span 2;
}
}

View File

@@ -0,0 +1,33 @@
@import "variables.less";
@import "animations.less";
@import "color-overrides.less";
@import "custom-colors.less";
@import "common/_index.less";
@import "apps.less";
@import "apps/_index.less";
@import "sheets/_index.less";
@import "actors.less";
@import "items.less";
@import "sheets/_index.less";
@import "canvas/_index.less";
@import "chat/_index.less";
@import "icons.less";
@import "misc.less";
@import "token-actions.less";
@import "settings/_index.less";
@import "widgets.less";
@import "widgets/_index.less";
@import "foundry/_index.less";
@import "tooltips.less";
@import "font-awesome.less";
@import "apps/_index.less";
@import "rpg-awesome.less";
@import "legacy/_index.less";

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,4 @@
@import "health-config.less";
@import "integration-config.less";
@import "performance-config.less";
@import "experience-config.less";

View File

@@ -0,0 +1,9 @@
.app.pf1.experience-config form {
code {
background-color: var(--pf1-bg-dark-0);
border-radius: 0.3em;
padding: 1px 3px;
user-select: text;
}
}

View File

@@ -0,0 +1,81 @@
.app.pf1.health-config form {
nav.tabs {
font-size: var(--font-size-14);
line-height: 32px;
border-bottom: 1px solid var(--color-border-dark-primary);
}
.hitdice-table {
display: grid;
grid-template: 32px 1fr 1fr 1fr e("/") 1fr 1fr 1fr 1fr;
text-align: center;
vertical-align: middle;
padding: 5px 0;
align-items: center;
> * {
display: inline-flex;
align-items: center;
height: 100%;
padding: 5px;
border-bottom: 1px solid var(--color-border-dark-primary);
}
> span {
justify-content: center;
}
.table-header {
color: var(--color-text-light-highlight);
background: var(--pf1-dim-bg);
font-weight: bold;
text-shadow: 1px 1px black;
justify-content: center;
&.index {
justify-content: left;
}
}
.switch > label {
flex: 1;
}
.switch-check {
display: none;
}
.switch-label > span {
display: block;
border: 1px solid var(--color-border-dark-primary);
border-radius: 4px;
cursor: pointer;
margin: auto;
padding: 2px;
width: calc(100% - 2px);
}
.switch-label > span.switch-auto {
background-color: var(--pf1-dim-bg);
color: var(--color-text-light-highlight);
}
.switch-check:not(:checked) + .switch-label .switch-auto {
display: none;
}
.switch-check:checked + .switch-label .switch-manual {
display: none;
}
.switch-label > span {
display: block;
border: 1px solid var(--color-border-dark-primary);
border-radius: 4px;
cursor: pointer;
margin: auto;
padding: 2px;
width: calc(100% - 2px);
text-align: center;
}
}
}

View File

@@ -0,0 +1,24 @@
.pf1.app.integration-config form {
display: flex;
flex-flow: column nowrap;
gap: 0.5em;
.module {
&.disabled {
opacity: 0.8;
}
&:hover {
background-color: rgba(0, 0, 0, 0.1);
}
label {
font-weight: bold;
}
.info {
flex: 1 100%;
margin: 0 0 0 2em;
}
}
}

View File

@@ -0,0 +1,20 @@
.pf1.app.performance-config form {
span.value {
flex: 0 3em;
border: 1px solid var(--color-border-light-secondary);
border-radius: 0.3em;
padding: 0 0.3em;
text-align: center;
}
.info {
flex: 1 100%;
margin: 0 0 0 2em;
}
.buttons {
display: flex;
flex-flow: row nowrap;
gap: 3px;
}
}

View File

@@ -0,0 +1,7 @@
@import "common-sheet.less";
@import "common/_index.less";
@import "actors/_index.less";
@import "items/_index.less";
@import "parts/_index.less";
@import "actions/_index.less";

View File

@@ -0,0 +1 @@
@import "action-sheet.less";

View File

@@ -0,0 +1,235 @@
.pf1.sheet.action {
min-width: 520px;
min-height: 520px;
form {
> header {
img.profile {
border: 1px solid black;
flex: 0 0 80px;
width: 80px;
height: 80px;
object-fit: contain;
}
}
.primary-body {
> .tab {
overflow: hidden auto;
input[type="text"],
select {
border: 1px solid var(--pf1-tan);
background: var(--pf1-bg-dark-0);
}
}
}
input.max-ability {
flex: 0 3em;
}
// Conditionals
.conditionals {
list-style: none;
margin: 0;
padding: 0;
display: block;
.change,
.context-note {
flex: 0 0 100%;
padding: 1px;
input {
flex: 3;
border: 1px solid var(--pf1-tan);
background: var(--pf1-bg-dark-0);
height: 24px;
}
input[type="text"]:invalid {
border: var(--pf1-invalid-input-border);
background: url(icons/misc/hazard-sign.svg) no-repeat 95% 50% var(--pf1-bg-dark-0);
background-size: contain;
}
select {
background: var(--pf1-bg-dark-0);
}
select:invalid {
border: var(--pf1-invalid-input-border);
background: url(icons/misc/hazard-sign.svg) no-repeat 75% 50% var(--pf1-bg-dark-0);
background-size: contain;
}
input[type="text"]:not(:first-child),
select:not(:first-child),
span:not(:first-child),
button:not(:first-child) {
margin-left: 5px;
}
button.edit-change-contents {
height: 24px;
line-height: 24px;
}
.change-priority {
flex: 0 0 24px;
}
.change-operator {
flex: 0 0 24px;
}
.change-target,
.context-note-target {
border: 1px solid var(--pf1-tan);
background: var(--pf1-bg-dark-0);
white-space: nowrap;
overflow: hidden;
height: 24px;
line-height: 24px;
border-radius: 4px;
text-align: center;
cursor: pointer;
font-size: var(--font-size-12);
&:hover {
box-shadow: 0 0 8px var(--pf1-red);
}
&.invalid {
border: var(--pf1-invalid-input-border);
background: url(icons/misc/hazard-sign.svg) no-repeat 95% 50% var(--pf1-bg-dark-0);
}
}
.conditional-default {
flex: 0 0 18px;
}
.conditional-modifier {
display: flex;
}
}
}
.conditionals {
.conditional,
.conditional-modifier {
padding: 1px;
select {
max-width: max-content;
min-width: 80px;
flex: 1;
border: 1px solid var(--pf1-tan);
background: var(--pf1-bg-dark-0);
}
select:not(:first-child) {
margin-left: 5px;
}
select:invalid {
border: var(--pf1-invalid-input-border);
background: url(icons/misc/hazard-sign.svg) no-repeat 80% 50% var(--pf1-bg-dark-0);
}
input[type="text"] {
height: 24px;
border: 1px solid var(--pf1-tan);
background: var(--pf1-bg-dark-0);
}
input[type="text"]:invalid {
border: var(--pf1-invalid-input-border);
background: url(icons/misc/hazard-sign.svg) no-repeat 100% 50% var(--pf1-bg-dark-0);
}
input[type="text"]:not(:first-child) {
margin-left: 5px;
}
input[class*="conditional-name"]:not(:first-child) {
margin-left: 0;
}
.conditional-name,
.conditional-formula {
min-width: 140px;
}
.conditional-damage-type {
min-width: 90px;
max-width: 200px;
}
.form-group {
padding-left: 30px;
}
}
}
h4.damage-header,
h4.attack-header,
h4.conditional-header {
margin: 0;
padding: 0;
font-weight: bold;
line-height: 24px;
color: var(--pf1-olive);
border: unset;
}
h4.attack-header {
margin-left: 4px;
}
.delete-damage,
.crit-damage-control,
.delete-attack,
.delete-note,
.delete-conditional,
.delete-conditional-modifier {
width: 18px;
flex: 0 0 18px;
line-height: 24px;
text-align: right;
color: var(--pf1-tan);
}
.add-attack,
.add-damage,
.add-note,
.add-conditional,
.add-conditional-modifier {
flex: 0 0 auto;
line-height: 24px;
color: var(--pf1-tan);
margin-left: 2px;
}
.damage-parts,
.attack-parts {
list-style: none;
margin: 0;
padding: 0;
.damage-part,
.attack-part {
flex: 0 0 100%;
padding: 2px;
input {
flex: 3;
}
input:not(:first-child) {
margin-left: 5px;
}
select {
margin-left: 5px;
flex: 1;
}
}
}
hr {
margin: 0 0.5em;
}
select {
&[name="ability.damageMult"] {
flex: 0 6em;
}
&[name="save.type"] {
flex: 0 8em;
}
}
}
}

View File

@@ -0,0 +1,9 @@
@import "character.less";
@import "npc.less";
@import "npc-lite.less";
@import "haunt.less";
@import "trap.less";
@import "vehicle.less";
@import "loot.less";
@import "parts/_index.less";

View File

@@ -0,0 +1,18 @@
/* ----------------------------------------- */
/* Basic Structure */
/* ----------------------------------------- */
.pf1.sheet.actor.character {
/* ----------------------------------------- */
/* Sheet Body */
/* ----------------------------------------- */
/* ----------------------------------------- */
/* Spellbook */
/* ----------------------------------------- */
.spellbook {
.item-controls {
flex: 0 0 68px;
}
}
}

View File

@@ -0,0 +1,85 @@
.pf1.sheet.actor.haunt {
min-width: 440px;
min-height: 200px;
form {
.tab.summary {
overflow: hidden scroll;
.scrollbar();
.details {
display: flex;
flex-flow: row wrap;
gap: 3px;
h3 {
flex: 1 100%;
}
}
.notice {
input {
text-align: center;
border: 1px solid #7a7971;
background: var(--pf1-bg-dark-0);
}
}
.health {
gap: unset;
row-gap: 1px;
flex: 2;
}
.extra-details {
flex: 3;
}
}
.sheet-header {
img.profile {
flex: 0 0 100px;
max-width: 100px;
min-height: 100px;
max-height: 100px;
}
.header-top {
max-height: 40px;
.charname {
padding: 0;
margin: 0;
input[type="text"] {
padding: 0;
margin: 0;
font-size: var(--font-size-24);
}
}
.charlevel {
flex: 0 0 128px;
}
}
.attribute.health {
border-right: 0;
}
}
table {
input[type="text"] {
padding: 0;
margin: 0;
height: 20px;
}
}
.item-detail.item-type {
flex: 0 0 100px;
}
}
}

View File

@@ -0,0 +1,4 @@
.pf1.sheet.actor.loot {
min-height: 560px;
min-width: 630px;
}

View File

@@ -0,0 +1,101 @@
.pf1.sheet.actor.npc.lite {
min-width: 440px;
min-height: 200px;
.tab {
&.summary {
overflow: hidden scroll;
.scrollbar();
}
}
.sheet-header {
img.profile {
flex: 0 0 100px;
max-width: 100px;
min-height: 100px;
max-height: 100px;
}
.header-top {
max-height: 40px;
.char-name {
padding: 0;
margin: 0;
input[type="text"] {
padding: 0;
margin: 0;
font-size: var(--font-size-24);
}
}
.charlevel {
flex: 0 0 128px;
}
}
.attribute.health {
border-right: 0;
}
}
table {
input[type="text"] {
padding: 0;
margin: 0;
height: 20px;
}
}
.tab.summary {
.defenses {
display: flex;
flex-flow: row nowrap;
gap: 3px;
.saves {
flex: 3;
}
}
.health,
.miscellaneous,
.health {
display: flex;
flex-flow: row wrap;
gap: 1px 3px;
}
.health {
h3 {
flex: 1 100%;
margin: 0;
text-align: center;
border: none;
}
.vigor,
.current-max {
flex: 3;
}
.wounds {
flex: 2;
}
}
.info-box {
span.direct.text-box {
display: inline-flex;
justify-content: center;
align-items: center;
flex: 2em;
}
select {
flex: 2em;
}
}
}
}

View File

@@ -0,0 +1,16 @@
@import "level.less";
@import "quick-actions.less";
@import "summary-tab.less";
@import "attributes-tab.less";
@import "spells-tab.less";
@import "combat-tab.less";
@import "inventory-tab.less";
@import "buffs-tab.less";
@import "magic-items.less";
@import "actor-settings.less";
@import "currency.less";
@import "skills.less";
@import "features.less";
@import "defenses.less";

View File

@@ -0,0 +1,81 @@
.pf1.sheet.actor {
.tab.settings {
overflow: hidden scroll;
.scrollbar();
gap: 0.5em;
h2,
h3 {
margin: 0;
flex: 0;
}
> div {
flex: 0;
}
.base-setup {
display: grid;
grid-template-columns: 5fr 2fr;
gap: 0.3em;
h2 {
grid-column: 1 / -1;
}
.flexcol {
gap: 0.3em;
}
}
// Ability Score Links
.ability-scores {
display: flex;
flex-flow: column nowrap;
gap: 0.3em;
> .links {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: min-content;
gap: 3px;
> div {
display: grid;
grid-template-columns: 3fr 2fr;
grid-template-rows: min-content;
gap: 1px;
h3 {
grid-column: span 2;
margin: 0;
color: #f0f0e0;
text-shadow: rgb(0, 0, 0) 1px 1px 0;
background: var(--pf1-bg-dark-2);
}
label {
color: #4b4a44;
font-weight: bold;
height: 2em;
display: inline-flex;
align-items: center;
&:nth-of-type(even) {
background: var(--pf1-bg-dark-0);
}
}
h3,
label {
padding: 0 0.3rem;
}
}
}
}
}
}

View File

@@ -0,0 +1,19 @@
.pf1.sheet.actor {
form {
.tab.attributes {
.armor-attributes {
flex: 0;
display: flex;
flex-flow: row nowrap;
gap: 3px;
}
.traits {
input {
border: unset;
background: unset;
}
}
}
}
}

View File

@@ -0,0 +1,7 @@
.pf1.sheet form {
.tab.buffs {
.item-controls {
flex: 0 0 68px;
}
}
}

View File

@@ -0,0 +1,44 @@
.pf1.sheet.actor {
.tab.combat {
header {
flex: 0;
display: flex;
flex-flow: nowrap;
gap: 3px;
.generic-attacks {
flex: 2;
}
}
.combat-attacks {
flex: 1 1 320px;
overflow-y: auto;
.scrollbar();
}
.combat-defenses {
display: flex;
flex-flow: column nowrap;
gap: 2px;
> .attributes {
gap: 0 0.5em;
}
h3 {
border-bottom: unset;
}
table {
margin-bottom: 4px;
}
}
}
.combat-attacks {
.item-controls {
flex: 0 0 68px;
}
}
}

View File

@@ -0,0 +1,26 @@
.pf1.sheet.actor {
header .currencies {
flex: 100%;
h3 {
.modesto();
color: var(--pf1-olive);
font-size: var(--font-size-24);
margin: 0;
}
.currency {
> .denomination {
&::before {
content: "\f58e";
font-weight: 900;
font-family: "Font Awesome 5 Free";
visibility: hidden;
}
&:hover::before {
visibility: visible;
}
}
}
}
}

View File

@@ -0,0 +1,26 @@
.pf1.sheet.actor {
.defenses {
display: flex;
flex-flow: column nowrap;
gap: 3px;
.ac-cmd,
.saves-sr {
display: flex;
flex-flow: row nowrap;
gap: 3px;
> .ac-tac-ffac {
flex: 3;
}
> .cmd-ff {
flex: 2;
}
> .saves {
flex: 3;
}
}
}
}

View File

@@ -0,0 +1,32 @@
.pf1.actor.sheet {
.tab.features {
.feat-notifications {
display: flex;
flex-flow: row wrap;
justify-content: center;
gap: 3px;
flex: 0;
margin: 2px;
}
.item-controls {
flex: 0 0 68px;
}
footer {
.feat-counts {
display: flex;
flex-flow: row nowrap;
gap: 3px;
.stats {
flex: 4;
}
.issues {
flex: var(--issues);
}
}
}
}
}

View File

@@ -0,0 +1,23 @@
.pf1.sheet {
form {
.tab.inventory {
footer {
.carry-bonus {
display: flex;
flex-flow: row nowrap;
label {
display: inline-flex;
align-items: center;
gap: 0.3em;
input {
text-align: center;
width: 3em;
}
}
}
}
}
}
}

View File

@@ -0,0 +1,85 @@
.pf1.actor.sheet {
// Default sheets
.hd-level {
flex: 2 0 200px;
}
// Trap & Haunt don't have HD level in a header
&.npc:is(.trap, .haunt) .hd-level {
flex: 0;
}
// Shared layout
.hd-level {
gap: 3px;
.flexrow,
.flexcol {
flex: 1;
}
.info-box-joined.level {
flex: 2;
}
.info-box {
&.experience {
flex: 2;
> .value {
flex-flow: nowrap;
> input {
width: unset;
flex: 2;
}
> span {
flex: 1 fit-content;
&.separator {
flex: 0 fit-content;
}
}
.reward {
text-align: center;
}
}
}
}
> .inputs {
display: flex;
flex-flow: row nowrap;
gap: 1px;
flex: 0;
}
.xpbar {
flex: 0;
width: 100%;
height: 8px;
background: var(--pf1-tan);
border: 1px solid var(--color-border-dark-2);
border-radius: 4px;
span.bar {
background: #63ff00;
border: 1px solid #d0ffb2;
border-radius: 2px;
height: 6px;
display: block;
}
}
}
// NPC Lite Sheet overrides
&.npc.lite {
.hd-level {
flex: 0;
.level {
flex: 1;
}
}
}
}

View File

@@ -0,0 +1,43 @@
.pf1.actor.sheet {
.magic-items {
display: flex;
flex-flow: column nowrap;
gap: 3px;
h2 {
margin: 0;
}
.magic-items-table {
td,
th {
padding: 1px 0 1px 0; // Undo Foundry's styling
}
.item-name {
width: auto;
white-space: nowrap;
display: flex;
align-items: center;
gap: 0.3em;
.name {
overflow: hidden;
text-overflow: ellipsis;
}
}
.aura {
width: 20%;
}
.cl {
width: 15%;
}
.identify-dc {
width: 15%;
}
.identify {
width: 40px;
}
}
}
}

View File

@@ -0,0 +1,69 @@
.pf1.sheet.actor {
.quick-actions {
display: flex;
flex-wrap: wrap;
flex-direction: row;
padding: 0;
margin: 0;
li {
cursor: pointer;
flex: 0 0 52px;
border-width: 2px;
border-style: solid;
border-radius: 4px;
display: flex;
margin: 2px;
overflow: hidden;
&:hover {
filter: brightness(150%);
}
img {
border: none;
width: 48px;
height: 48px;
}
}
.item {
border: 2px solid var(--pf1-quick-action-default-border);
&[data-type="feat"] {
border-color: var(--pf1-quick-action-feat-border);
}
&[data-type="attack"] {
border-color: var(--pf1-quick-action-attack-border);
}
&[data-type="weapon"] {
border-color: var(--pf1-quick-action-weapon-border);
}
&[data-type="equipment"] {
border-color: var(--pf1-quick-action-equipment-border);
}
&[data-type="consumable"] {
border-color: var(--pf1-quick-action-consumable-border);
}
&[data-type="spell"] {
border-color: var(--pf1-quick-action-spell-border);
}
}
charges {
position: sticky;
display: inline-flex;
align-self: flex-end;
color: white;
right: 0;
border-top-left-radius: 5px;
background-color: var(--pf1-bg-dark-5);
border: 1px solid rgba(255, 255, 255, 0.5);
border-bottom: unset;
border-right: unset;
padding-left: 0.3em;
padding-top: 0.05em;
padding-right: 0.1em;
}
}
}

View File

@@ -0,0 +1,36 @@
.pf1.actor.sheet {
.tab.skills {
header {
flex: 0;
display: flex;
flex-flow: column nowrap;
gap: 1px;
.skill-rank-formula {
gap: 1em;
label {
flex: 0;
}
}
.skill-ranks {
flex: 0;
display: flex;
flex-flow: row nowrap;
gap: 3px;
.transferred {
flex: 1;
h5 {
white-space: nowrap;
}
}
:is(.adventure, .background) {
flex: 2;
}
}
}
}
}

View File

@@ -0,0 +1,262 @@
.pf1.sheet.actor {
.tab.spellbook {
.summary {
display: flex;
flex-flow: row nowrap;
gap: 3px;
.ranges {
flex: 3;
}
}
.spell-notifications {
display: flex;
flex-flow: row wrap;
justify-content: center;
gap: 3px;
flex: 0;
margin: 2px;
}
.spellbook-configuration {
display: flex;
flex-flow: column nowrap;
gap: 2px;
.form-group {
margin: 0; // Overrie Foundry's style
}
.spellbook-info {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 3px;
h3 {
border-bottom: unset;
}
.spell-settings {
display: flex;
flex-flow: column nowrap;
gap: 1px;
.stacked {
> label {
flex: 1;
}
}
}
.spell-level-mod-container {
gap: 1px 0.3em;
display: grid;
grid-auto-rows: auto;
grid-template-columns: min-content 1fr;
flex: 0 fit-content;
> h3 {
white-space: nowrap;
}
.spell-mod-formulas {
display: flex;
flex-direction: row;
gap: 3px;
.ppdoffset,
.cpdoffset {
overflow: none;
width: 50%;
}
}
&.hide-cpd {
.ppdoffset {
width: 100%;
}
.cpdoffset {
display: none;
}
}
}
}
}
.spellbook-group {
label {
margin: 0;
flex: 0;
}
.spell-points-current {
flex: 0;
display: flex;
flex-flow: row nowrap;
align-items: center;
h3 {
.modesto();
font-size: var(--font-size-24);
flex: 0 0 160px;
margin: 0;
}
:is(.value, .max) {
display: inline-flex;
justify-content: center;
flex: 0 0 3em;
}
.sep {
flex: 0;
}
}
.radios {
display: flex;
justify-content: space-evenly;
label {
white-space: nowrap;
}
input {
margin-inline-end: 4px;
}
*:not(:last-child) {
margin-inline-end: 4px;
}
}
.spell-uses {
white-space: nowrap;
overflow: hidden;
flex: 0 0 96px;
font-size: var(--font-size-12);
text-align: center;
color: var(--pf1-tan);
display: flex;
align-items: center;
justify-content: center;
input[type="number"] {
width: calc(100% - 2px);
min-width: 40px;
height: 24px;
padding: 1px 3px;
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
border-radius: 3px;
-webkit-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
user-select: text;
}
.spell-input-readonly {
color: black;
}
input[type="text"].base,
input[type="number"].base {
flex: 1;
}
input,
span.sep {
text-align: center;
}
span.sep {
flex: 0 0 8px;
}
}
.spell-uses {
display: flex;
.spell-slots,
.spell-max {
flex: 1;
}
input {
flex: 0 0 24px;
}
}
:is(.spell-school, .spell-activation, .spell-components) {
white-space: nowrap;
overflow: hidden;
font-size: var(--font-size-12);
color: var(--pf1-tan);
text-align: center;
}
.spell-school {
flex: 0 0 96px;
}
.spell-activation {
flex: 0 0 120px;
}
.spell-components {
flex: 0 0 80px;
}
// Empty spellbook controls
.spellbook-empty .item-controls {
flex: 1;
}
.alt-name,
.spell-failure {
input[type="text"] {
flex: 1;
}
}
.spell-level-message {
font-style: italic;
font-weight: bold;
text-align: center;
}
.spellcasting-summary {
flex: 2;
margin-right: 1px;
border-right: 1px solid black;
}
.spellcasting-config {
flex: 0;
margin-left: 3px;
}
.spell-range {
flex: 2;
border-right: 1px solid black;
label {
flex: 1 1 48px;
text-align: right;
margin-right: 8px;
white-space: nowrap;
}
input[type="text"] {
flex: 1 1 48px;
}
table {
margin-bottom: 4px;
}
}
}
}
}

View File

@@ -0,0 +1,90 @@
.pf1.actor.sheet {
form {
.tab.summary {
.summary-header {
.character-summary {
input {
border: unset;
background: unset;
&:focus {
background: var(--pf1-bg-dark-0);
}
}
}
.race {
flex: 1;
margin: 3px 0;
display: flex;
gap: 4px;
.item-controls {
flex: 0 1.5em;
flex-flow: column nowrap;
a {
flex: 0 0 12px;
font-size: var(--font-size-12);
text-align: center;
color: var(--pf1-control-color);
}
}
.item-image {
flex: 0 0 32px;
background: no-repeat center;
background-size: contain;
line-height: 32px;
text-align: center;
vertical-align: baseline;
height: 32px;
color: var(--pf1-tan);
&.rollable:hover {
background-image: url(icons/misc/info.svg) !important;
background-size: contain;
}
}
.info {
text-align: left;
h4 {
margin: 0 0 2px 0;
padding: 0;
border-bottom: 1px solid var(--pf1-header-underline);
}
.tag-list {
justify-content: flex-start;
}
// Undo generic .info span style
span {
color: inherit;
}
}
}
}
.combat-stats {
display: flex;
flex-flow: row nowrap;
gap: 3px;
}
.quick-info {
> div {
gap: 2px;
}
}
}
.classes-body {
.item-controls {
flex: 0 0 68px;
}
}
}
}

View File

@@ -0,0 +1,68 @@
@import "../../variables.less";
.pf1.sheet.actor.trap {
min-width: 440px;
min-height: 200px;
form {
.tab.summary {
overflow: hidden scroll;
.scrollbar();
.details {
display: flex;
flex-flow: row;
gap: 3px;
}
.effect {
display: contents;
}
.effects {
.effect-details {
flex: 1;
display: flex;
flex-flow: row;
gap: 3px;
}
}
}
.sheet-header {
img.profile {
flex: 0 0 100px;
max-width: 100px;
min-height: 100px;
max-height: 100px;
}
.header-top {
max-height: 40px;
.charname {
padding: 0;
margin: 0;
input[type="text"] {
padding: 0;
margin: 0;
font-size: var(--font-size-24);
}
}
.charlevel {
flex: 0 0 128px;
}
}
.attribute.health {
border-right: 0;
}
}
.item-detail.item-type {
flex: 0 0 100px;
}
}
}

View File

@@ -0,0 +1,78 @@
.pf1.sheet.actor.vehicle {
min-width: 600px;
min-height: 650px;
form {
.tab.summary {
overflow: hidden scroll;
.scrollbar();
.defenses,
.capacity,
.driving,
.combat,
.health {
display: flex;
flex-flow: row wrap;
h3 {
flex: 1 100%;
}
}
.capacity,
.driving,
.combat {
gap: 3px;
}
.health,
.defenses {
gap: 1px 3px;
}
}
> header {
display: flex;
flex-flow: row;
img.profile {
flex: 0 0 100px;
max-width: 100px;
min-height: 100px;
max-height: 100px;
}
.header-top {
max-height: 40px;
.charname {
padding: 0;
margin: 0;
input[type="text"] {
padding: 0;
margin: 0;
font-size: var(--font-size-24);
}
}
}
.summary {
li {
height: 30px;
white-space: nowrap;
gap: 3px;
}
}
.attribute.health {
border-right: 0;
}
}
.item-detail.item-type {
flex: 0 0 100px;
}
}
}

View File

@@ -0,0 +1,24 @@
/**
* Styles common to all sheets.
*/
.pf1.sheet {
.lockable {
&.hide-contents {
> * {
display: none;
}
}
}
.temporary {
.hint {
text-align: center;
}
}
// Prevent font awesome icons eating pointer events in actions
a > i {
pointer-events: none;
}
}

View File

@@ -0,0 +1,5 @@
@import "action-icon.less";
@import "item-list.less";
@import "skill-list.less";
@import "currency.less";
@import "tooltip.less";

View File

@@ -0,0 +1,17 @@
.pf1.sheet {
.action.roll {
justify-self: center;
display: inline-flex;
color: var(--color-text-dark-primary);
> i {
font-size: var(--font-size-16);
}
&:hover > i {
animation: dice-spin 1s cubic-bezier(0.6, -0.28, 0.735, 0.045) infinite;
transform: scale(1.2);
}
}
}

View File

@@ -0,0 +1,54 @@
// Shared by actor and container sheets
.pf1.sheet {
header {
.currency {
display: flex;
flex-flow: nowrap;
gap: 0.5em;
list-style: none;
margin: 0;
padding: 0;
font-size: var(--font-size-14);
align-items: center;
h3 {
.modesto();
color: var(--pf1-olive);
font-size: var(--font-size-24);
margin: 0;
border: none;
flex: 0 0 160px;
}
> .denomination {
display: flex;
flex-flow: row nowrap;
gap: 0.3em;
text-align: right;
color: var(--pf1-tan);
cursor: grab;
}
input[type="text"],
span.text-box {
flex: 1;
text-align: center;
border:unset;
border-bottom: var(--pf1-border-groove);
margin: 0;
padding: 0;
height: unset;
}
input:invalid {
background-color: var(--pf1-invalid-input-bg);
}
.convert-currency {
flex: 0;
}
}
}
}

View File

@@ -0,0 +1,381 @@
.pf1.sheet {
.item-groups-list {
overflow: hidden scroll;
.scrollbar();
height: 100%;
}
.item-groups-list,
.item-list {
list-style: none;
margin: 0;
padding: 0 0;
}
.item-list {
overflow: hidden;
}
// Item List Header
.item-list-header {
margin: 0 0 2px 0;
padding: 0;
background: var(--pf1-bg-dark-0);
border: var(--pf1-border-groove);
line-height: 24px;
flex: 0 0 24px;
font-size: var(--font-size-12, 9pt);
h3 {
margin: 0;
padding-left: 5px;
font-size: var(--font-size-12);
font-weight: bold;
border: unset;
}
.item-controls {
justify-content: space-evenly;
}
}
.item-list-header,
.item {
> *:not(:last-child) {
border-right: 1px solid var(--color-border-light-secondary);
}
> .item-detail {
justify-content: center;
&.item-uses {
justify-content: space-evenly;
}
}
> .item-controls {
justify-content: space-evenly;
}
.fas {
text-align: center;
}
.item-name {
.quantity {
font-size: var(--font-size-11);
//vertical-align: super; // Does nothing in flex
align-self: flex-start;
&::before {
content: "(";
}
&::after {
content: ")";
}
}
.change-formula {
margin: 0 2px;
}
> textarea {
margin: 0 2px;
}
.item-info {
flex: 0 0 16px;
margin-right: 4px;
}
}
.item-enabled {
flex: 0 0 48px;
justify-content: center;
}
.item-operator {
flex: 0 0 56px;
}
.item-target {
flex: 0 0 160px;
.change-target,
.context-note-target {
flex: 0 0 156px;
width: 156px;
}
}
.item-type {
flex: 0 0 112px;
.change-type {
flex: 0 0 108px;
width: 108px;
}
}
.item-priority {
flex: 0 0 32px;
}
&.flexcol {
height: 100%;
}
&:is(.disabled,.empty,.destroyed) {
.item-name {
h4 {
text-decoration: line-through;
color: var(--pf1-tan);
}
}
}
&.broken {
.item-name {
h4 {
color: var(--pf1-rust);
}
}
}
// Item Header Name
.item-name {
cursor: pointer;
white-space: nowrap;
overflow: hidden;
align-items: center;
display: inline-flex;
gap: 0.3rem;
&.flag-name {
cursor: initial;
}
.item-image {
height: 24px;
flex: 0 0 24px;
background-size: 24px;
background: no-repeat center;
background-size: contain;
&:hover:not(.no-hover) {
background-image: url(../../icons/misc/info.svg) !important;
background-size: contain;
}
}
h4 {
margin: 0;
border: unset;
}
}
input[type="checkbox"] {
height: auto;
}
// Item Dropdown Properties
.item-properties {
margin-top: 3px;
}
// Charged
.item-recharge {
flex: 0 0 80px;
text-align: right;
font-size: var(--font-size-12);
color: var(--pf1-tan);
}
// Item Detail Sections
.item-detail {
height: 24px;
flex: 0 0 80px;
font-size: var(--font-size-12);
color: var(--pf1-control-color);
text-align: center;
overflow: hidden;
white-space: nowrap;
display: flex;
flex-flow: row nowrap;
align-items: center;
.icon-pf {
background-color: var(--pf1-tan);
}
// Do not apply padding to formula fields to squeeze out two pixels
&[class^="item-"]:not([class~="item-damage"], [class~="item-attacks"]) {
padding: 0 1px 0 1px;
}
&.item-actions {
flex: 0 0 32px;
justify-content: center;
& > div {
flex: 0 0 16px;
}
.item-action {
display: inline-flex;
}
}
&.item-slot {
flex: 0 0 64px;
> span {
text-overflow: ellipsis;
overflow: hidden;
}
}
&.item-usage {
flex: 0 0 80px;
}
&.item-type {
flex: 0 0 42px;
}
&.item-value {
flex: 0 0 72px;
}
&.item-weight {
flex: 0 0 56px;
}
&.item-hidden {
flex: 0 0 32px;
}
&.item-identified {
flex: 0 0 32px;
}
&.item-carried {
flex: 0 0 32px;
}
&.item-equipped {
flex: 0 0 32px;
}
&.item-uses {
flex: 0 0 64px;
.sep {
flex: 0;
}
}
&.item-attacks {
flex: 0 0 80px;
}
&.item-damage {
flex: 0 0 100px;
> .resolved-formula {
text-overflow: ellipsis;
overflow: hidden;
}
}
&.item-range {
flex: 0 1 56px;
}
&.item-button {
flex: 0 0 64px;
button {
height: 24px;
font-size: var(--font-size-12);
padding: 0;
line-height: 2;
}
}
}
a.item-control {
display: inline-flex;
justify-content: center;
align-items: center;
&.item-toggle-prepared {
color: rgba(75, 75, 75, 0.3);
&.enabled {
color: rgba(75, 75, 75, 1);
}
}
}
.item-level {
flex: 0 0 40px;
}
.item-subtype {
flex: 0 0 120px;
}
.item-feat-level {
flex: 0 0 60px;
}
.item-active {
flex: 0 0 60px;
}
// Item Control Buttons
.item-controls {
flex: 0 0 120px;
display: flex;
flex-flow: row nowrap;
overflow-x: hidden;
white-space: nowrap;
a {
flex: 0 0 16px;
font-size: var(--font-size-12);
text-align: center;
color: var(--pf1-control-color);
}
&.basic {
flex: 0 0 48px;
}
}
// Item Dropdown Summary
.item-summary {
flex: 0 0 100%;
font-size: var(--font-size-12);
line-height: 1.5;
padding: 0.25em 0.5em;
border-top: 1px solid var(--pf1-faint);
}
}
.item-list-header .item-name {
cursor: initial;
}
.item-list {
.item {
// To align with header
padding: 0 2px;
border-bottom: 1px solid var(--pf1-faint);
&:last-child {
border-bottom: none;
}
.itemBackground();
}
}
}

View File

@@ -0,0 +1,135 @@
.pf1.sheet {
ul.skills-list {
.scrollbar();
overflow-x: hidden;
list-style: none;
margin: 0;
padding: 0;
border: var(--pf1-border-groove);
border-radius: 3px;
.skill {
padding-left: 0.3em;
&.sub-skill {
padding-left: 2em;
}
}
li {
&.skill {
display: grid;
grid-template-columns: auto 24px 3em repeat(5, 4em) 40px;
height: 2em;
.itemBackground();
.controls {
display: inline-flex;
gap: 0 0.3em;
// Custom skill controls
&.custom {
margin-left: 0.3em;
}
}
&.untrained {
.skill-name {
color: rgba(0, 0, 0, 0.6);
}
.action.roll {
>i {
opacity: 60%;
&:hover {
animation: 0;
}
}
}
}
.skill-name {
display: inline-flex;
font-size: var(--font-size-13);
align-items: center;
gap: 0.3em;
h4,
input[type="text"] {
display: inline-block;
margin: 0;
white-space: nowrap;
overflow: hidden;
}
h4 {
flex: 1;
// Remove inherited borders
border: unset;
}
.compendium-icon {
visibility: hidden;
flex: 0 0 16px;
}
}
&.compendium:hover {
.compendium-icon {
visibility: visible;
}
}
.checkbox {
font-size: var(--font-size-12);
}
.skill-ability {}
.skill-mod {
line-height: 1.5;
font-weight: bold;
text-align: center;
border: 1px dotted #111;
cursor: initial;
}
.skill-rank {
border-bottom: var(--pf1-border-groove);
&.placeholder {
opacity: 0.6;
}
}
input[type="text"] {
height: auto;
}
}
// Special case
.control.skill-create {
width: 1.5em;
text-align: center;
}
}
> .controls {
// Mimic skill line stylings
display: flex;
height: 2em;
padding-left: 0.3em;
}
.controls {
align-items: center;
.fas {
width: 1.25em;
}
}
}
}

View File

@@ -0,0 +1,102 @@
.pf1 {
&.sheet {
// Rollable Links
.editable {
.rollable:hover,
.action.roll:hover {
color: var(--pf1-item-hover-text);
text-shadow: var(--pf1-item-hover-shadow);
cursor: pointer;
.tooltipcontent {
text-shadow: none;
}
}
}
}
.tooltip {
/* Tooltip text */
.tooltipcontent {
pointer-events: none;
font-family: sans-serif;
font-size: var(--font-size-11);
font-weight: normal;
visibility: hidden;
background-color: var(--pf1-bg-dark-5);
color: var(--color-text-light-0);
text-align: center;
padding: 5px;
border-radius: 6px;
line-height: 13px;
min-width: 128px;
white-space: normal;
/* Position the tooltip text */
position: fixed;
z-index: 1;
// Faster tooltips
transform: translateZ(0);
/* Fade in tooltip */
opacity: 0;
transition: opacity 0.3s;
/* Setup tooltips as a grid */
display: grid;
grid-template-columns: min-content 1fr min-content;
grid-auto-rows: min-content;
gap: 1px 3px;
align-items: center;
.span1 {
white-space: nowrap;
}
.span2 {
grid-column: span 2;
white-space: nowrap;
}
.span3 {
grid-column-start: 1;
grid-column-end: span 3;
}
.tooltipcontent-context {
grid-column: span 3;
}
.align-right {
text-align: right;
}
.align-rightspaced {
text-align: right;
padding-inline: 15px 15px;
}
.align-left {
text-align: left;
}
.entity-link.content-link,
.inline-preroll.inline-formula {
background-color: rgba(255, 255, 255, 0.1);
color: white;
i.fa-dice-d20 {
color: #a0a099;
}
}
.inline-roll {
border-color: var(--color-border-dark-5);
background: none;
}
}
/* Show the tooltip text when you mouse over the tooltip container */
&:hover {
.tooltipcontent {
visibility: visible;
opacity: 1;
}
}
}
}

View File

@@ -0,0 +1,11 @@
@import "parts/_index.less";
@import "common-item.less";
@import "container-sheet.less";
@import "details-tab.less";
@import "changes-tab.less";
@import "race-sheet.less";
@import "class-sheet.less";
@import "item-sidebar.less";

View File

@@ -0,0 +1,6 @@
.pf1.sheet.item form {
.item-groups-list {
overflow: visible;
height: unset;
}
}

View File

@@ -0,0 +1,9 @@
.pf1.sheet.item {
&.type-class {
.tab.details {
.formula + .average {
white-space: nowrap;
}
}
}
}

View File

@@ -0,0 +1,35 @@
.pf1.sheet.item {
form {
display: grid;
grid-template-columns: 2fr 6fr;
grid-template-rows: min-content min-content 1fr;
> header {
grid-column: span 2;
.item-name {
:is(h1, h3) {
padding: 0;
margin: 0;
&:first-of-type {
margin: 0.3em 0 0 0;
}
}
}
.reference {
padding: 0 3px;
line-height: 1.5;
}
.header-details {
align-self: flex-start;
}
}
:is(select, input):invalid {
border: var(--pf1-invalid-input-border);
}
}
}

View File

@@ -0,0 +1,17 @@
.pf1.item.sheet {
.window-content {
.tab {
// Container contents
&.contents {
// Remove excess scrolling
overflow: hidden;
// Scroll actual contents
> section {
overflow: hidden scroll;
.scrollbar();
}
}
}
}
}

View File

@@ -0,0 +1,32 @@
.pf1.item.sheet {
section .tab.details {
.ammunition {
img {
flex: 0 24px;
width: 24px;
height: 24px;
}
.item-name {
flex: 1;
}
i,
a {
flex: 0 1em;
}
}
.misfire {
.misfire-radius {
flex: 0 3em;
}
}
.material-addons {
label.checkbox {
flex: 0 0 12em;
}
}
}
}

Some files were not shown because too many files have changed in this diff Show More