phlam / static /circular /circular-view.css
noisemarseille
ui
1dbe522
Raw History Blame Contribute Delete
4.41 kB
/* PHLAM circular genome viewer — scoped variables + tooltip.
Prefixed --phlam-* custom properties avoid clashing with the host
Gradio page's own theme variables (this file is loaded inside the
viewer's own iframe document, but kept prefixed regardless). */
:root {
--phlam-bg: #FCFBF9;
--phlam-surface: #F2F0EC;
--phlam-muted: #5C584F;
--phlam-accent: oklch(0.48 0.11 195);
--phlam-fwd: oklch(0.48 0.11 195);
--phlam-rev: oklch(0.5 0.13 25);
--phlam-warn: oklch(0.55 0.13 75);
--phlam-pass: oklch(0.48 0.11 195);
--phlam-text: #191A19;
--phlam-border: #D6D0C4;
}
[data-phlam-theme="dark"] {
--phlam-bg: #12151a;
--phlam-surface: #1c2129;
--phlam-muted: #7d8794;
--phlam-accent: #5ec8f8;
--phlam-fwd: #55c58a;
--phlam-rev: #e0736b;
--phlam-warn: #e0b04b;
--phlam-pass: #55c58a;
--phlam-text: #e7ebf0;
--phlam-border: #2c333d;
}
.phlam-gv-outer {
display: flex;
align-items: flex-start;
gap: 12px;
}
.phlam-gv-wrap {
display: flex;
justify-content: center;
background: var(--phlam-bg);
border: 1px solid var(--phlam-border);
border-radius: 8px;
padding: 8px;
flex: 1 1 auto;
min-width: 0; /* allow the flex item to shrink below the SVG's intrinsic width */
}
.phlam-gv-wrap svg {
max-width: 100%;
height: auto;
}
/* Tooltip -- a permanent in-flow side panel next to the chart, at a fixed
spot (not position:fixed, not following the mouse). Its content swaps on
hover/pin; it never disappears or resizes the layout. */
.gv-tooltip {
flex: 0 0 320px;
width: 320px;
align-self: flex-start;
padding: 12px 14px;
background: var(--phlam-surface);
border: 1px solid var(--phlam-border);
border-radius: 8px;
color: var(--phlam-text);
font-family: "Azeret Mono", ui-monospace, monospace;
font-size: 13.5px;
line-height: 1.55;
box-sizing: border-box;
}
.gv-tooltip--pinned {
border-color: var(--phlam-accent);
border-width: 1.5px;
}
.gv-tt-placeholder {
color: var(--phlam-muted);
font-size: 13px;
}
.gv-tt-title {
font-weight: 700;
font-size: 15px;
margin-bottom: 5px;
word-break: break-all;
}
.gv-tt-loc {
color: var(--phlam-muted);
margin-bottom: 6px;
}
.gv-tt-annot-axis {
padding: 6px 6px 2px;
margin-bottom: 8px;
border: 1px solid var(--phlam-accent);
border-radius: 6px;
/* One tier lighter than .gv-tt-annot-item's own --phlam-bg, so the
category/annotation item boxes still stand out inside this axis box
instead of blending into it. */
background: var(--phlam-surface);
}
.gv-tt-annot-axis:last-child {
margin-bottom: 0;
}
.gv-tt-annot-axis-label {
display: flex;
justify-content: space-between;
align-items: baseline;
gap: 6px;
margin: 0 0 4px;
font-size: 11.5px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.03em;
color: var(--phlam-accent);
}
.gv-tt-annot-axis-meta {
font-weight: 500;
text-transform: none;
letter-spacing: normal;
color: var(--phlam-muted);
font-size: 11px;
}
.gv-tt-annot-conf {
font-weight: 600;
}
.gv-tt-annot-conf-high {
color: var(--phlam-pass);
}
.gv-tt-annot-conf-mid {
color: var(--phlam-warn);
}
.gv-tt-annot-conf-low {
color: var(--phlam-rev);
}
.gv-tt-annot-group {
margin-bottom: 8px;
}
.gv-tt-annot-item {
padding: 4px 7px;
margin-bottom: 4px;
background: var(--phlam-bg);
border: 1px solid var(--phlam-border);
border-radius: 5px;
}
.gv-tt-annot-item:last-child {
margin-bottom: 0;
}
.gv-tt-annot-item.gv-tt-annot-unresolved {
opacity: 0.55;
}
.gv-tt-annot-item.gv-tt-annot-unresolved .gv-tt-annot-text {
font-style: italic;
}
.gv-tt-annot-level {
font-size: 11px;
text-transform: uppercase;
letter-spacing: 0.03em;
color: var(--phlam-muted);
margin-bottom: 2px;
}
.gv-tt-annot-level a {
color: var(--phlam-accent);
}
.gv-tt-annot-text {
display: flex;
justify-content: space-between;
align-items: baseline;
gap: 8px;
font-size: 13.5px;
}
.gv-tt-annot-sim {
flex: 0 0 auto;
color: var(--phlam-muted);
font-size: 11.5px;
}
.gv-tt-row {
display: flex;
justify-content: space-between;
gap: 10px;
color: var(--phlam-text);
}
.gv-tt-row span:first-child {
color: var(--phlam-muted);
}
.gv-tt-pin {
margin-top: 8px;
padding-top: 6px;
border-top: 1px dashed var(--phlam-border);
color: var(--phlam-muted);
font-size: 11.5px;
}