summaryrefslogtreecommitdiff
path: root/frontend
diff options
context:
space:
mode:
authorTyler Hoang <tyler@tylerhoang.xyz>2026-05-19 00:04:50 -0700
committerTyler Hoang <tyler@tylerhoang.xyz>2026-05-19 00:04:50 -0700
commitdae44d7b01d57d8bf9a7e260f991c0054370a7b1 (patch)
tree039c1a5cb99ae87e112a7ca0a25ade59210f08b5 /frontend
parentcf3e3f5c65752b373a283141b21d38f7eb12c729 (diff)
feat: add DCF slider CSS to prism-shell
Diffstat (limited to 'frontend')
-rw-r--r--frontend/app/prism-shell.css156
1 files changed, 151 insertions, 5 deletions
diff --git a/frontend/app/prism-shell.css b/frontend/app/prism-shell.css
index 4e65ced..ab2d452 100644
--- a/frontend/app/prism-shell.css
+++ b/frontend/app/prism-shell.css
@@ -1377,11 +1377,6 @@
border-left: 2px solid var(--warning);
}
-.psm-val-dcf-body {
- display: grid;
- grid-template-columns: 1fr 1fr;
- gap: var(--sp-5);
-}
.psm-val-kv-list {
display: flex;
@@ -1497,6 +1492,157 @@
text-align: right;
}
+/* DCF sliders — side-by-side layout */
+
+.psm-val-dcf-body {
+ display: grid;
+ grid-template-columns: 1fr 1px 1fr;
+ gap: 0;
+ align-items: start;
+}
+
+.psm-val-dcf-divider {
+ background: var(--line-1);
+ align-self: stretch;
+}
+
+.psm-val-dcf-assumptions {
+ padding-right: var(--sp-5);
+ display: flex;
+ flex-direction: column;
+ gap: var(--sp-4);
+}
+
+.psm-val-dcf-results {
+ padding-left: var(--sp-5);
+ display: flex;
+ flex-direction: column;
+ gap: var(--sp-3);
+}
+
+.psm-val-dcf-col-label {
+ font-family: var(--font-sans);
+ font-size: var(--fs-11);
+ font-weight: 600;
+ letter-spacing: var(--tr-wider);
+ text-transform: uppercase;
+ color: var(--fg-4);
+ margin-bottom: var(--sp-1);
+}
+
+.psm-val-slider-row {
+ display: flex;
+ flex-direction: column;
+ gap: var(--sp-1);
+}
+
+.psm-val-slider-header {
+ display: flex;
+ justify-content: space-between;
+ align-items: baseline;
+}
+
+.psm-val-slider-label {
+ font-family: var(--font-sans);
+ font-size: var(--fs-12);
+ color: var(--fg-3);
+}
+
+.psm-val-slider-value {
+ font-family: var(--font-mono);
+ font-size: var(--fs-12);
+ color: var(--brass);
+ font-variant-numeric: tabular-nums;
+ font-weight: 600;
+}
+
+.psm-val-range {
+ -webkit-appearance: none;
+ appearance: none;
+ width: 100%;
+ height: 3px;
+ background: var(--ink-3);
+ border-radius: var(--r-1);
+ outline: none;
+ cursor: pointer;
+}
+
+.psm-val-range::-webkit-slider-thumb {
+ -webkit-appearance: none;
+ appearance: none;
+ width: 12px;
+ height: 12px;
+ border-radius: 50%;
+ background: var(--brass);
+ border: 2px solid var(--ink-0);
+ cursor: pointer;
+ transition: background 150ms ease;
+}
+
+.psm-val-range::-moz-range-thumb {
+ width: 12px;
+ height: 12px;
+ border-radius: 50%;
+ background: var(--brass);
+ border: 2px solid var(--ink-0);
+ cursor: pointer;
+ transition: background 150ms ease;
+}
+
+.psm-val-range:focus-visible::-webkit-slider-thumb {
+ outline: 2px solid var(--brass);
+ outline-offset: 2px;
+}
+
+.psm-val-slider-ticks {
+ display: flex;
+ justify-content: space-between;
+}
+
+.psm-val-slider-tick {
+ font-family: var(--font-mono);
+ font-size: var(--fs-10);
+ color: var(--fg-4);
+ font-variant-numeric: tabular-nums;
+}
+
+.psm-val-dcf-section-head {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+}
+
+.psm-val-reset-btn {
+ background: none;
+ border: 1px solid var(--line-1);
+ color: var(--fg-4);
+ font-family: var(--font-sans);
+ font-size: var(--fs-11);
+ font-weight: 600;
+ letter-spacing: var(--tr-wider);
+ text-transform: uppercase;
+ padding: var(--sp-1) var(--sp-3);
+ border-radius: var(--r-1);
+ cursor: pointer;
+ transition: border-color 150ms ease, color 150ms ease;
+}
+
+.psm-val-reset-btn:hover {
+ border-color: var(--brass);
+ color: var(--brass);
+}
+
+.psm-val-chip-dot {
+ width: 5px;
+ height: 5px;
+ border-radius: 50%;
+ background: var(--brass);
+ display: inline-block;
+ margin-left: var(--sp-1);
+ vertical-align: middle;
+ opacity: 0.8;
+}
+
/* ── Key ratios tab ─────────────────────────────── */
.psm-ratio-card {