Files
sovereign_browser/www/json-viewer/json-viewer.css
T

213 lines
4.6 KiB
CSS

:root {
color-scheme: light dark;
--jv-bg: #ffffff;
--jv-fg: #24292f;
--jv-muted: #6e7781;
--jv-border: #d0d7de;
--jv-guide: #d8dee4;
--jv-hover: #f3f4f6;
--jv-control-bg: #f6f8fa;
--jv-control-hover: #eaeef2;
--jv-string: #16803a;
--jv-number: #0969da;
--jv-boolean: #bc4c00;
--jv-null: #6e7781;
--jv-key: #8250df;
--jv-match: #fff3a3;
}
* { box-sizing: border-box; }
html,
body {
margin: 0;
min-height: 100%;
background: var(--jv-bg);
color: var(--jv-fg);
}
body.json-viewer-page {
font-family: Menlo, Consolas, "Liberation Mono", monospace;
font-size: 14px;
line-height: 1.55;
}
.json-viewer { min-height: 100vh; }
.json-viewer__toolbar {
position: sticky;
z-index: 10;
top: 0;
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 8px;
padding: 10px 14px;
border-bottom: 1px solid var(--jv-border);
background: color-mix(in srgb, var(--jv-bg) 94%, transparent);
box-shadow: 0 1px 4px rgb(0 0 0 / 8%);
}
.json-viewer__title {
margin-right: auto;
font-weight: 700;
}
.json-viewer__button,
.json-viewer__search {
min-height: 32px;
border: 1px solid var(--jv-border);
border-radius: 6px;
background: var(--jv-control-bg);
color: var(--jv-fg);
font: inherit;
}
.json-viewer__button {
padding: 4px 10px;
cursor: pointer;
}
.json-viewer__button:hover { background: var(--jv-control-hover); }
.json-viewer__button:focus-visible,
.json-viewer__search:focus-visible {
outline: 2px solid var(--jv-number);
outline-offset: 1px;
}
.json-viewer__helper-apps {
display: flex;
align-items: center;
gap: 6px;
}
.json-viewer__helper-label {
color: var(--jv-muted);
font-size: 12px;
}
.json-viewer__helper-link {
display: inline-flex;
align-items: center;
text-decoration: none;
}
.json-viewer__search {
width: min(280px, 50vw);
padding: 5px 10px;
}
.json-viewer__status {
min-width: 9em;
color: var(--jv-muted);
font-size: 12px;
}
.json-viewer__tree {
overflow-x: auto;
overflow-y: visible;
padding: 14px 16px 40px;
}
.json-viewer__node { min-width: 0; }
.json-viewer__children {
margin-left: 8px;
padding-left: 17px;
border-left: 1px solid var(--jv-guide);
}
.json-viewer__node.is-collapsed > .json-viewer__children { display: none; }
.json-viewer__row {
display: flex;
align-items: baseline;
min-height: 23px;
padding: 1px 7px 1px 2px;
border-radius: 4px;
white-space: pre;
}
.json-viewer__row:hover { background: var(--jv-hover); }
.json-viewer__node.is-filtered-out { display: none; }
.json-viewer__node.is-match > .json-viewer__row { background: var(--jv-match); }
.json-viewer__toggle {
width: 18px;
flex: 0 0 18px;
padding: 0;
border: 0;
background: transparent;
color: var(--jv-muted);
cursor: pointer;
font: inherit;
line-height: 1;
}
.json-viewer__toggle::before { content: "▼"; }
.json-viewer__node.is-collapsed > .json-viewer__row > .json-viewer__toggle::before { content: "▶"; }
.json-viewer__toggle--empty { cursor: default; }
.json-viewer__toggle--empty::before { content: ""; }
.json-viewer__key { color: var(--jv-key); }
.json-viewer__key::after { content: ":"; color: var(--jv-fg); }
.json-viewer__punctuation { color: var(--jv-fg); }
.json-viewer__string {
min-width: 0;
color: var(--jv-string);
white-space: pre-wrap;
word-wrap: break-word;
overflow-wrap: break-word;
word-break: break-all;
}
.json-viewer__number { color: var(--jv-number); }
.json-viewer__boolean { color: var(--jv-boolean); font-weight: 600; }
.json-viewer__null { color: var(--jv-null); font-style: italic; }
.json-viewer__badge {
display: none;
margin-left: 7px;
padding: 0 6px;
border: 1px solid var(--jv-border);
border-radius: 999px;
color: var(--jv-muted);
font-size: 11px;
line-height: 17px;
}
.json-viewer__node.is-collapsed > .json-viewer__row > .json-viewer__badge { display: inline; }
.json-viewer__preview {
display: none;
margin-left: 7px;
color: var(--jv-muted);
}
.json-viewer__node.is-collapsed > .json-viewer__row > .json-viewer__preview { display: inline; }
@media (prefers-color-scheme: dark) {
:root {
--jv-bg: #1e1e1e;
--jv-fg: #d4d4d4;
--jv-muted: #9b9b9b;
--jv-border: #454545;
--jv-guide: #3f3f46;
--jv-hover: #2a2d2e;
--jv-control-bg: #2d2d30;
--jv-control-hover: #3a3d41;
--jv-string: #6a9955;
--jv-number: #569cd6;
--jv-boolean: #ce9178;
--jv-null: #9b9b9b;
--jv-key: #9cdcfe;
--jv-match: #514b20;
}
}
@media (max-width: 700px) {
.json-viewer__title { width: 100%; }
.json-viewer__search { order: 2; width: 100%; }
.json-viewer__status { order: 3; }
.json-viewer__helper-apps { width: 100%; flex-wrap: wrap; }
}