summaryrefslogtreecommitdiff
path: root/frontend/app
diff options
context:
space:
mode:
authorTyler Hoang <tyler@tylerhoang.xyz>2026-05-18 22:45:59 -0700
committerTyler Hoang <tyler@tylerhoang.xyz>2026-05-18 22:45:59 -0700
commit66cfb26ebd8fa44b24e37b4ffc796ab29dcbd704 (patch)
tree4d98b268502c6aa7c8988957d6e41dffd319534d /frontend/app
parent7fc2f0177518d70114aa75b7874a0ef59bdaec61 (diff)
parent52635efd7d435b091b4f13897511ca8e2c48f0b9 (diff)
Merge branch 'feat/key-ratios-tab'
Diffstat (limited to 'frontend/app')
-rw-r--r--frontend/app/prism-shell.css193
1 files changed, 193 insertions, 0 deletions
diff --git a/frontend/app/prism-shell.css b/frontend/app/prism-shell.css
index 9a37bdd..4e65ced 100644
--- a/frontend/app/prism-shell.css
+++ b/frontend/app/prism-shell.css
@@ -1116,6 +1116,11 @@
overflow: hidden;
}
+.psm-fin-tab-bar {
+ border-bottom: 1px solid var(--line-1);
+ margin-bottom: 0;
+}
+
.psm-fin-header {
display: flex;
align-items: stretch;
@@ -1156,6 +1161,7 @@
display: flex;
align-items: center;
gap: var(--sp-1);
+ margin-left: auto;
}
.psm-fin-period-btn {
@@ -1490,3 +1496,190 @@
font-variant-numeric: tabular-nums;
text-align: right;
}
+
+/* ── Key ratios tab ─────────────────────────────── */
+
+.psm-ratio-card {
+ display: flex;
+ flex-direction: column;
+ gap: var(--sp-5);
+}
+
+.psm-ratio-heroes {
+ display: grid;
+ grid-template-columns: repeat(4, minmax(0, 1fr));
+ gap: var(--sp-3);
+}
+
+.psm-ratio-hero {
+ display: flex;
+ flex-direction: column;
+ gap: var(--sp-3);
+ min-width: 0;
+ padding: var(--sp-4);
+ background: var(--ink-2);
+ border: 1px solid var(--line-1);
+ border-radius: var(--r-2);
+}
+
+.psm-ratio-hero-head {
+ display: flex;
+ align-items: baseline;
+ justify-content: space-between;
+ gap: var(--sp-3);
+}
+
+.psm-ratio-hero-label {
+ color: var(--fg-3);
+ font-size: var(--fs-12);
+ font-weight: 600;
+ letter-spacing: var(--tr-wider);
+ text-transform: uppercase;
+}
+
+.psm-ratio-hero-sector {
+ color: var(--fg-4);
+ font-family: var(--font-mono);
+ font-size: var(--fs-12);
+ font-variant-numeric: tabular-nums;
+ text-align: right;
+}
+
+.psm-ratio-hero-value {
+ font-family: var(--font-mono);
+ font-size: var(--fs-32);
+ line-height: 1;
+ font-variant-numeric: tabular-nums;
+}
+
+.psm-ratio-hero-spark {
+ width: 100%;
+ height: 52px;
+}
+
+.psm-ratio-detail {
+ display: flex;
+ flex-direction: column;
+ gap: var(--sp-5);
+}
+
+.psm-ratio-group-label {
+ display: grid;
+ grid-template-columns: minmax(0, 1fr) 96px 96px 88px;
+ gap: var(--sp-3);
+ align-items: center;
+ padding-bottom: var(--sp-2);
+ border-bottom: 1px solid var(--line-1);
+ color: var(--fg-4);
+ font-size: var(--fs-12);
+ font-weight: 600;
+ letter-spacing: var(--tr-wider);
+ text-transform: uppercase;
+}
+
+.psm-ratio-group-label span:nth-child(2),
+.psm-ratio-group-label span:nth-child(3) {
+ text-align: right;
+}
+
+.psm-ratio-group-label span:last-child {
+ text-align: center;
+}
+
+.psm-ratio-row {
+ display: grid;
+ grid-template-columns: minmax(0, 1fr) 96px 96px 88px;
+ gap: var(--sp-3);
+ align-items: center;
+ padding: var(--sp-3) 0;
+ border-bottom: 1px solid var(--ink-2);
+}
+
+.psm-ratio-row-label {
+ color: var(--fg-2);
+ font-size: var(--fs-13);
+}
+
+.psm-ratio-row-value,
+.psm-ratio-row-sector {
+ color: var(--fg-1);
+ font-family: var(--font-mono);
+ font-size: var(--fs-13);
+ font-variant-numeric: tabular-nums;
+ text-align: right;
+ white-space: nowrap;
+}
+
+.psm-ratio-row-sector {
+ color: var(--fg-4);
+}
+
+.psm-ratio-mini-spark {
+ width: 88px;
+ height: 24px;
+}
+
+.psm-ratio-mini-spark,
+.psm-ratio-hero-spark {
+ display: block;
+}
+
+.psm-ratio-spark-empty {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ width: 88px;
+ height: 24px;
+ color: var(--fg-4);
+ font-family: var(--font-mono);
+ font-size: var(--fs-12);
+ font-variant-numeric: tabular-nums;
+}
+
+.psm-ratio-hero .psm-ratio-spark-empty {
+ width: 100%;
+ height: 52px;
+ justify-content: flex-start;
+}
+
+@media (max-width: 980px) {
+ .psm-ratio-group-label,
+ .psm-ratio-row {
+ grid-template-columns: minmax(0, 1fr) 88px 88px 72px;
+ }
+
+ .psm-ratio-mini-spark,
+ .psm-ratio-spark-empty {
+ width: 72px;
+ }
+}
+
+@media (max-width: 680px) {
+ .psm-ratio-heroes {
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ }
+
+ .psm-ratio-group-label {
+ grid-template-columns: minmax(0, 1fr) 84px 84px 64px;
+ gap: var(--sp-2);
+ }
+
+ .psm-ratio-row {
+ grid-template-columns: minmax(0, 1fr) 84px 84px 64px;
+ gap: var(--sp-2);
+ }
+
+ .psm-ratio-hero-head {
+ flex-direction: column;
+ align-items: flex-start;
+ }
+
+ .psm-ratio-hero-sector {
+ text-align: left;
+ }
+
+ .psm-ratio-mini-spark,
+ .psm-ratio-spark-empty {
+ width: 64px;
+ }
+}