UNPKG

@decidables/discountable-elements

Version:

discountable-elements: Web Components for visualizing Hyperbolic Temporal Discounting

203 lines (150 loc) 3.48 kB
import {css} from 'lit'; import DiscountableElement from '../discountable-element'; /* HTDEquation Base Class - Not intended for instantiation! <cpt-equation> */ export default class HTDEquation extends DiscountableElement { static get properties() { return { numeric: { attribute: 'numeric', type: Boolean, reflect: true, }, }; } constructor() { super(); this.numeric = false; } static get styles() { return [ super.styles, css` :host { display: block; margin: 1rem; } /* Containing <div> */ .holder { display: flex; flex-direction: row; justify-content: left; } /* Overall <table> */ .equation { text-align: center; white-space: nowrap; border-collapse: collapse; border: 0; } /* Modifies <td> */ .underline { border-bottom: 1px solid var(---color-text); } /* Basic <span> and <var> w/modifiers */ span, var { padding: 0 0.25rem; font-style: normal; } var { border-radius: var(---border-radius); } .tight { padding: 0; } .paren { font-size: 150%; } .bracket { font-size: 175%; } .brace { font-size: 200%; } .addend { position: relative; display: inline-block; } .comparison { position: relative; display: inline-block; font-size: 125%; font-weight: 600; } .function { display: inline-block; border-radius: var(---border-radius); } :host([numeric]) .function { padding: 0.25rem; } .exp { display: inline-block; font-size: 0.75rem; } .subscript { display: inline-block; font-size: 66.667%; } .summation { display: flex; flex-direction: column; line-height: 0.8; } .sigma { display: inline-block; font-size: 200%; } /* Input wrapping <label> */ decidables-spinner { --decidables-spinner-input-width: 4rem; display: inline-block; padding: 0.125rem 0.375rem 0.375rem; line-height: 1.5; vertical-align: middle; border-radius: var(---border-radius); } .n { --decidables-spinner-input-width: 2rem; } .left { text-align: left; } .right { text-align: right; } .bottom { vertical-align: bottom; } .top { vertical-align: top; } /* Color scheme */ /* .win { background: var(---color-better); } .loss { background: var(---color-worse); } .sure { background: var(---color-even); } */ .a { background: var(---color-a-light); } .d { background: var(---color-d-light); } .k { background: var(---color-k-light); } .v { background: var(---color-v-light); } `, ]; } }