:root { --aq-bg: white; --aq-fg: black; --aq-read-color: #ff9500; --aq-write-color: #0c7bdc; --aq-own-color: #dc0055; --aq-flow-color: #5ed100; --aq-read-rgb-color: 255, 149, 0; --aq-write-rgb-color: 12, 123, 220; --aq-own-rgb-color: 220, 0, 85; --aq-perm-gain-color: #333; --aq-perm-loss-color: #666; --aq-error: red; --aq-error-text: white; --aq-button-border: gray; --aq-button-text: gray; --aq-button-background: lightgray; --aq-button-border-hover: black; --aq-button-text-hover: black; --aq-button-background-hover: white; --aq-step-widget-text: #ccc; --aq-step-table-text: black; --aq-step-table-border: gainsboro; --aq-step-table-background: whitesmoke; --aq-step-table-background-alternate: transparent; } .perm { font-family: "Verdana"; font-weight: bold; } .perm.missing { color: transparent !important; -webkit-text-stroke-width: 1px; } .perm.read { color: var(--aq-read-color); -webkit-text-stroke-color: var(--aq-read-color); } .perm.write { color: var(--aq-write-color); -webkit-text-stroke-color: var(--aq-write-color); } .perm.own { color: var(--aq-own-color); -webkit-text-stroke-color: var(--aq-own-color); } .perm.flow { color: var(--aq-flow-color); -webkit-text-stroke-color: var(--aq-flow-color); } /* Permission Boundaries */ .permission-stack { display: inline-flex; flex-direction: column; position: relative; margin-left: 2px; margin-right: 2px; transition: margin-top 0.5s ease-in-out, margin-bottom 0.5s ease-in-out, bottom 0.5s ease-in-out; cursor: default; } .permission-stack .animating { filter: url('data:image/svg+xml, #threshold'); } .permission-stack.before-whitespace { margin-left: -3px; } .permission-stack.stack-size-1 { top: 1px; } .permission-stack.stack-size-2 { bottom: 4px; margin-top: 5px; } .permission-stack.stack-size-3 { bottom: 8px; margin-top: 6px; } .permission-stack .perm { font-size: 14px; text-align: right; display: grid; grid-template-columns: 1fr; } .permission-stack .perm > div { transition: filter 0.5s ease-in-out, opacity 0.5s ease-in-out, width 0.5s ease-in-out, height 0.5s ease-in-out; grid-row-start: 1; grid-column-start: 1; text-align: center; } .permission-stack .perm > .small { filter: blur(0px); width: 10px; height: 10px; } .permission-stack .perm > .big { opacity: 0; font-weight: bold; filter: blur(3px); width: 10px; height: 10px; } .permission-stack .perm.missing > .small { -webkit-text-stroke-width: 1.5px; } .permission-stack .perm.missing > .big { -webkit-text-stroke-width: 1px; } .permission-stack:not(.expanded):hover.stack-size-2, .permission-stack.expanded.stack-size-2 { margin-top: 7px; margin-bottom: -3px; bottom: 6px; } .permission-stack:not(.expanded):hover.stack-size-3, .permission-stack.expanded.stack-size-3 { margin-top: 7px; bottom: 10px; } .permission-stack:not(.expanded):hover .perm > .small, .permission-stack.expanded .perm > .small { opacity: 0; filter: blur(3px); width: 0; height: 0; } .permission-stack:not(.expanded):hover .perm > .big, .permission-stack.expanded .perm > .big { opacity: 1; filter: blur(0px); height: 14px; } .permission-stack:not(.expanded):hover .perm.write > .big, .permission-stack.expanded .perm.write > .big { width: 14px; } .permission-stack:not(.expanded):hover .perm:not(.write) > .big, .permission-stack.expanded .perm:not(.write) > .big { width: 12px; } .perm-diff-sub-container { position: relative; width: min-content; display: inline-block; } .perm-diff-sub { position: absolute; left: calc((100% - 14px) / 2); top: calc((100% - 14px) / 2); width: 14px; height: 14px; background: linear-gradient(to top left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) calc(50% - 1px), var(--aq-perm-loss-color) calc(50% - 0.75px), var(--aq-perm-loss-color) calc(50% + 0.75px), rgba(0, 0, 0, 0) calc(50% + 1px), rgba(0, 0, 0, 0) 100%); } .perm-diff-add { color: var(--aq-perm-gain-color); margin-right: -2px; position: relative; bottom: 1px; font-size: 80%; } .aquascope { position: relative; height: 100%; width: 100%; /* Loan Highlighting */ /* Permission Steps */ } .aquascope .aquascope-stderr { padding: 15px; background-color: #f9ffff; font-family: "Source Code Pro", monospace; font-size: 0.9em; overflow: scroll; } .aquascope span.cm-region-end { font-family: "Verdana", sans-serif, bold; text-align: center; vertical-align: bottom; padding: 0; display: inline-block; width: 0; overflow: hidden; transition: 1s background-color; } .aquascope .top-right { z-index: 10; position: absolute; top: 8px; right: 2px; } .aquascope .cm-button { background-color: var(--aq-button-background); color: var(--aq-button-text); opacity: 0; font-size: 14px; border: 1px solid var(--aq-button-border); border-radius: 4px; padding: 3px 5px; margin: 0px 5px; transition: 100ms; transition-property: color, border-color, background-color, opacity; cursor: pointer; } .aquascope .cm-button:hover { background-color: var(--aq-button-background-hover); color: var(--aq-button-text-hover); border-color: var(--aq-button-border-hover); } .aquascope:hover .cm-button { opacity: 1; } .aquascope cm-tooltip-cursor { font-size: 0.8em; background-color: whitesmoke; border-color: gainsboro; border: 2px; padding: 2px 7px 2px 2px; border-radius: 4px; } .aquascope cm-tooltip-cursor.cm-tooltip-arrow ::before { border-top-color: whitesmoke; } .aquascope cm-tooltip-cursor .cm-tooltip-arrow ::after { border-top-color: transparent; } .aquascope .cm-scroller { overflow: auto; } .aquascope .cm-line.hidden-line { display: none; } .aquascope .show-hidden .cm-line.hidden-line { display: block; opacity: 0.6; } .aquascope .aquascope-loan { text-decoration: underline 3px rgba(0, 0, 0, 0); transition: 1s text-decoration; } .aquascope .aquascope-loan.show-hidden.read { text-decoration: underline 3px var(--aq-read-color) !important; } .aquascope .aquascope-loan.show-hidden.write { text-decoration: underline 3px var(--aq-write-color) !important; } .aquascope .aquascope-loan.show-hidden.own { text-decoration: underline 3px var(--aq-own-color) !important; } .aquascope .aquascope-live-region { background-color: rgba(0, 0, 0, 0); border-radius: 5px; transition: 1s background-color; } .aquascope .aquascope-live-region.show-hidden.read { background-color: rgba(var(--aq-read-rgb-color), 0.4) !important; } .aquascope .aquascope-live-region.show-hidden.write { background-color: rgba(var(--aq-write-rgb-color), 0.4) !important; } .aquascope .aquascope-live-region.show-hidden.own { background-color: rgba(var(--aq-own-rgb-color), 0.4) !important; } .aquascope .hidden-width { display: none !important; } .aquascope .hidden-height { height: 0px; } .aquascope .step-widget-toggle { cursor: pointer; } .aquascope .step-widget-toggle:hover { color: var(--aq-fg); } .aquascope .perm-step-widget { display: inline-block; color: var(--aq-step-widget-text); position: relative; top: 0.75em; margin-bottom: 0.75em; } @media (max-width: 800px) { .aquascope .perm-step-widget { display: block; top: 0; margin-bottom: -0.5em; margin-left: 10px; } .aquascope .perm-step-widget .step-widget-spacer { max-width: 20px; } } .aquascope .step-widget-container { overflow: hidden; display: inline-flex; justify-content: start; } .aquascope .step-table-dropdown { font-size: 0.7em; max-height: 15px; text-align: center; width: 100%; cursor: pointer; color: var(--aq-step-widget-text); } .aquascope .step-table-container { overflow: hidden; flex-direction: column; align-items: flex-start; display: inline-flex; margin-bottom: 5px; background-color: var(--aq-step-table-background); border: 2px solid var(--aq-step-table-border); border-radius: 4px; position: relative; z-index: 100; } .aquascope .perm-step-table, .aquascope .step-table-container { color: var(--aq-step-table-text); } .aquascope .perm-step-table td, .aquascope .step-table-container td { padding: 1px 4px; } .aquascope .perm-step-table td.perm-step-event, .aquascope .step-table-container td.perm-step-event { text-align: center; } .aquascope table.perm-step-table { vertical-align: top; border-collapse: collapse; } .aquascope table.perm-step-table tr:nth-child(2n) { background-color: var(--aq-step-table-background-alternate); } .aquascope .perm-step-table tr td { border: 1px dotted; border-color: var(--aq-step-table-border); } .aquascope .contains-hidden .perm-step-table tr td:first-child { border-left: none; } .aquascope .contains-hidden .perm-step-table tr td:last-child { border-right: none; } .aquascope .perm-char { position: relative; font: bold 14px "Verdana"; text-align: center; cursor: default; border-left: none !important; border-right: none !important; padding: 1px 2px !important; } .aquascope .aquascope-action-indicator { font-size: 0.9em; } .step-marker { display: inline-block; border-radius: 4px; padding: 0 2px; background: var(--aq-bg); border: 1px solid var(--aq-fg); } .cm-editor .step-marker { margin: 2px 6px 0; } .step-marker > span { font-size: 0.8em; color: var(--aq-fg); vertical-align: middle; position: relative; bottom: 1px; font-weight: bold; } .step-marker.fail { background: var(--aq-error); } .step-marker.fail > span { color: var(--aq-error-text); } .interpreter { background: var(--aq-bg); padding: 1rem; display: flex; column-gap: 50px; row-gap: 30px; flex-wrap: wrap; overflow-x: auto; position: relative; font-size: 15px; } .interpreter .concrete-types { position: absolute; top: 1rem; right: 1rem; background-color: var(--aq-button-background); color: var(--aq-button-text); opacity: 0; font-size: 14px; border: 1px solid var(--aq-button-border); border-radius: 4px; padding: 3px 5px; margin: 0px 5px; transition: 100ms; transition-property: color, border-color, background-color, opacity; cursor: pointer; } .interpreter .concrete-types:hover { background-color: var(--aq-button-background-hover); color: var(--aq-button-text-hover); border-color: var(--aq-button-border-hover); } .interpreter .concrete-types.active { border-color: var(--aq-fg); background-color: var(--aq-bg); color: var(--aq-fg); } .interpreter .step .header { position: relative; } .interpreter .step .header .header-text { position: relative; z-index: 12; } .interpreter .step .header .header-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 11; background: var(--aq-bg); opacity: 0.8; } .interpreter .step .step-header { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 5px; } .interpreter .step .step-header .step-marker { font-size: 1.1em; font-family: "Source Code Pro", monospace; } .interpreter .step .step-header .undefined-behavior { color: var(--aq-error); max-width: 250px; } .interpreter .step .memory-header { margin-bottom: 5px; font-weight: bold; } .interpreter .step .memory-container { position: relative; } .interpreter .step .memory-container .memory-container-flex { display: flex; flex-direction: row; gap: 60px; padding-left: 10px; } .interpreter .step .memory-container .memory { border: 1px dashed var(--aq-step-table-border); padding: 0.7rem; height: max-content; } .interpreter .step .memory-container .memory .frames { display: flex; flex-direction: column; gap: 10px; } .interpreter .step .memory-container .memory .frames .frame-header { display: inline-block; font-family: "Source Code Pro", monospace; } .interpreter .step .memory-container .memory .frames .empty-frame { font-size: 0.9em; } .interpreter .step h2 { margin-top: 0; font-size: 1.1em; font-weight: bold; } .interpreter .step code { font-size: 0.9em; } .interpreter .step table.locals, .interpreter .step .heap > table { border: 2px solid var(--aq-step-table-border); } .interpreter .step table.locals tr.moved, .interpreter .step .heap > table tr.moved { opacity: 0.3; background: repeating-linear-gradient(45deg, var(--aq-step-table-border), var(--aq-step-table-border) 3px, var(--aq-bg) 3px, var(--aq-bg) 10px); } .interpreter .step table.locals > tbody > tr > td, .interpreter .step .heap > table > tbody > tr > td { border-width: 2px; padding: 2px 4px; } .interpreter .step table.locals > tbody > tr > td:nth-child(1), .interpreter .step .heap > table > tbody > tr > td:nth-child(1) { border-right-width: 1.5px; } .interpreter .step table.locals > tbody > tr > td:nth-child(2), .interpreter .step .heap > table > tbody > tr > td:nth-child(2) { border-left-width: 1.5px; } .interpreter .step table { border: 1px solid var(--aq-step-table-border); border-collapse: collapse; font-family: "Source Code Pro", monospace; } .interpreter .step table.array { border: none; } .interpreter .step table.array td { border-top: none; border-bottom: none; padding: 0 2px; } .interpreter .step table.array td:first-child { border-left: none; } .interpreter .step table.array td:last-child { border-right: none; } .interpreter .step table td { border: 1px solid var(--aq-step-table-border); transition: width 1s, height 1s; } .interpreter .step .unallocated.error { display: inline-block; width: 1.2em; color: var(--aq-error); border: 1px dashed var(--aq-error); border-radius: 50%; text-align: center; } .leader-line { z-index: 10; }:root { --aq-bg: white; --aq-fg: black; --aq-read-color: #ff9500; --aq-write-color: #0c7bdc; --aq-own-color: #dc0055; --aq-flow-color: #5ed100; --aq-read-rgb-color: 255, 149, 0; --aq-write-rgb-color: 12, 123, 220; --aq-own-rgb-color: 220, 0, 85; --aq-perm-gain-color: #333; --aq-perm-loss-color: #666; --aq-error: red; --aq-error-text: white; --aq-button-border: gray; --aq-button-text: gray; --aq-button-background: lightgray; --aq-button-border-hover: black; --aq-button-text-hover: black; --aq-button-background-hover: white; --aq-step-widget-text: #ccc; --aq-step-table-text: black; --aq-step-table-border: gainsboro; --aq-step-table-background: whitesmoke; --aq-step-table-background-alternate: transparent; } .perm { font-family: "Verdana"; font-weight: bold; } .perm.missing { color: transparent !important; -webkit-text-stroke-width: 1px; } .perm.read { color: var(--aq-read-color); -webkit-text-stroke-color: var(--aq-read-color); } .perm.write { color: var(--aq-write-color); -webkit-text-stroke-color: var(--aq-write-color); } .perm.own { color: var(--aq-own-color); -webkit-text-stroke-color: var(--aq-own-color); } .perm.flow { color: var(--aq-flow-color); -webkit-text-stroke-color: var(--aq-flow-color); } /* Permission Boundaries */ .permission-stack { display: inline-flex; flex-direction: column; position: relative; margin-left: 2px; margin-right: 2px; transition: margin-top 0.5s ease-in-out, margin-bottom 0.5s ease-in-out, bottom 0.5s ease-in-out; cursor: default; } .permission-stack .animating { filter: url('data:image/svg+xml, #threshold'); } .permission-stack.before-whitespace { margin-left: -3px; } .permission-stack.stack-size-1 { top: 1px; } .permission-stack.stack-size-2 { bottom: 4px; margin-top: 5px; } .permission-stack.stack-size-3 { bottom: 8px; margin-top: 6px; } .permission-stack .perm { font-size: 14px; text-align: right; display: grid; grid-template-columns: 1fr; } .permission-stack .perm > div { transition: filter 0.5s ease-in-out, opacity 0.5s ease-in-out, width 0.5s ease-in-out, height 0.5s ease-in-out; grid-row-start: 1; grid-column-start: 1; text-align: center; } .permission-stack .perm > .small { filter: blur(0px); width: 10px; height: 10px; } .permission-stack .perm > .big { opacity: 0; font-weight: bold; filter: blur(3px); width: 10px; height: 10px; } .permission-stack .perm.missing > .small { -webkit-text-stroke-width: 1.5px; } .permission-stack .perm.missing > .big { -webkit-text-stroke-width: 1px; } .permission-stack:not(.expanded):hover.stack-size-2, .permission-stack.expanded.stack-size-2 { margin-top: 7px; margin-bottom: -3px; bottom: 6px; } .permission-stack:not(.expanded):hover.stack-size-3, .permission-stack.expanded.stack-size-3 { margin-top: 7px; bottom: 10px; } .permission-stack:not(.expanded):hover .perm > .small, .permission-stack.expanded .perm > .small { opacity: 0; filter: blur(3px); width: 0; height: 0; } .permission-stack:not(.expanded):hover .perm > .big, .permission-stack.expanded .perm > .big { opacity: 1; filter: blur(0px); height: 14px; } .permission-stack:not(.expanded):hover .perm.write > .big, .permission-stack.expanded .perm.write > .big { width: 14px; } .permission-stack:not(.expanded):hover .perm:not(.write) > .big, .permission-stack.expanded .perm:not(.write) > .big { width: 12px; } .perm-diff-sub-container { position: relative; width: min-content; display: inline-block; } .perm-diff-sub { position: absolute; left: calc((100% - 14px) / 2); top: calc((100% - 14px) / 2); width: 14px; height: 14px; background: linear-gradient(to top left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) calc(50% - 1px), var(--aq-perm-loss-color) calc(50% - 0.75px), var(--aq-perm-loss-color) calc(50% + 0.75px), rgba(0, 0, 0, 0) calc(50% + 1px), rgba(0, 0, 0, 0) 100%); } .perm-diff-add { color: var(--aq-perm-gain-color); margin-right: -2px; position: relative; bottom: 1px; font-size: 80%; } .aquascope { position: relative; height: 100%; width: 100%; /* Loan Highlighting */ /* Permission Steps */ } .aquascope .aquascope-stderr { padding: 15px; background-color: #f9ffff; font-family: "Source Code Pro", monospace; font-size: 0.9em; overflow: scroll; } .aquascope span.cm-region-end { font-family: "Verdana", sans-serif, bold; text-align: center; vertical-align: bottom; padding: 0; display: inline-block; width: 0; overflow: hidden; transition: 1s background-color; } .aquascope .top-right { z-index: 10; position: absolute; top: 8px; right: 2px; } .aquascope .cm-button { background-color: var(--aq-button-background); color: var(--aq-button-text); opacity: 0; font-size: 14px; border: 1px solid var(--aq-button-border); border-radius: 4px; padding: 3px 5px; margin: 0px 5px; transition: 100ms; transition-property: color, border-color, background-color, opacity; cursor: pointer; } .aquascope .cm-button:hover { background-color: var(--aq-button-background-hover); color: var(--aq-button-text-hover); border-color: var(--aq-button-border-hover); } .aquascope:hover .cm-button { opacity: 1; } .aquascope cm-tooltip-cursor { font-size: 0.8em; background-color: whitesmoke; border-color: gainsboro; border: 2px; padding: 2px 7px 2px 2px; border-radius: 4px; } .aquascope cm-tooltip-cursor.cm-tooltip-arrow ::before { border-top-color: whitesmoke; } .aquascope cm-tooltip-cursor .cm-tooltip-arrow ::after { border-top-color: transparent; } .aquascope .cm-scroller { overflow: auto; } .aquascope .cm-line.hidden-line { display: none; } .aquascope .show-hidden .cm-line.hidden-line { display: block; opacity: 0.6; } .aquascope .aquascope-loan { text-decoration: underline 3px rgba(0, 0, 0, 0); transition: 1s text-decoration; } .aquascope .aquascope-loan.show-hidden.read { text-decoration: underline 3px var(--aq-read-color) !important; } .aquascope .aquascope-loan.show-hidden.write { text-decoration: underline 3px var(--aq-write-color) !important; } .aquascope .aquascope-loan.show-hidden.own { text-decoration: underline 3px var(--aq-own-color) !important; } .aquascope .aquascope-live-region { background-color: rgba(0, 0, 0, 0); border-radius: 5px; transition: 1s background-color; } .aquascope .aquascope-live-region.show-hidden.read { background-color: rgba(var(--aq-read-rgb-color), 0.4) !important; } .aquascope .aquascope-live-region.show-hidden.write { background-color: rgba(var(--aq-write-rgb-color), 0.4) !important; } .aquascope .aquascope-live-region.show-hidden.own { background-color: rgba(var(--aq-own-rgb-color), 0.4) !important; } .aquascope .hidden-width { display: none !important; } .aquascope .hidden-height { height: 0px; } .aquascope .step-widget-toggle { cursor: pointer; } .aquascope .step-widget-toggle:hover { color: var(--aq-fg); } .aquascope .perm-step-widget { display: inline-block; color: var(--aq-step-widget-text); position: relative; top: 0.75em; margin-bottom: 0.75em; } @media (max-width: 800px) { .aquascope .perm-step-widget { display: block; top: 0; margin-bottom: -0.5em; margin-left: 10px; } .aquascope .perm-step-widget .step-widget-spacer { max-width: 20px; } } .aquascope .step-widget-container { overflow: hidden; display: inline-flex; justify-content: start; } .aquascope .step-table-dropdown { font-size: 0.7em; max-height: 15px; text-align: center; width: 100%; cursor: pointer; color: var(--aq-step-widget-text); } .aquascope .step-table-container { overflow: hidden; flex-direction: column; align-items: flex-start; display: inline-flex; margin-bottom: 5px; background-color: var(--aq-step-table-background); border: 2px solid var(--aq-step-table-border); border-radius: 4px; position: relative; z-index: 100; } .aquascope .perm-step-table, .aquascope .step-table-container { color: var(--aq-step-table-text); } .aquascope .perm-step-table td, .aquascope .step-table-container td { padding: 1px 4px; } .aquascope .perm-step-table td.perm-step-event, .aquascope .step-table-container td.perm-step-event { text-align: center; } .aquascope table.perm-step-table { vertical-align: top; border-collapse: collapse; } .aquascope table.perm-step-table tr:nth-child(2n) { background-color: var(--aq-step-table-background-alternate); } .aquascope .perm-step-table tr td { border: 1px dotted; border-color: var(--aq-step-table-border); } .aquascope .contains-hidden .perm-step-table tr td:first-child { border-left: none; } .aquascope .contains-hidden .perm-step-table tr td:last-child { border-right: none; } .aquascope .perm-char { position: relative; font: bold 14px "Verdana"; text-align: center; cursor: default; border-left: none !important; border-right: none !important; padding: 1px 2px !important; } .aquascope .aquascope-action-indicator { font-size: 0.9em; } .step-marker { display: inline-block; border-radius: 4px; padding: 0 2px; background: var(--aq-bg); border: 1px solid var(--aq-fg); } .cm-editor .step-marker { margin: 2px 6px 0; } .step-marker > span { font-size: 0.8em; color: var(--aq-fg); vertical-align: middle; position: relative; bottom: 1px; font-weight: bold; } .step-marker.fail { background: var(--aq-error); } .step-marker.fail > span { color: var(--aq-error-text); } .interpreter { background: var(--aq-bg); padding: 1rem; display: flex; column-gap: 50px; row-gap: 30px; flex-wrap: wrap; overflow-x: auto; position: relative; font-size: 15px; } .interpreter .concrete-types { position: absolute; top: 1rem; right: 1rem; background-color: var(--aq-button-background); color: var(--aq-button-text); opacity: 0; font-size: 14px; border: 1px solid var(--aq-button-border); border-radius: 4px; padding: 3px 5px; margin: 0px 5px; transition: 100ms; transition-property: color, border-color, background-color, opacity; cursor: pointer; } .interpreter .concrete-types:hover { background-color: var(--aq-button-background-hover); color: var(--aq-button-text-hover); border-color: var(--aq-button-border-hover); } .interpreter .concrete-types.active { border-color: var(--aq-fg); background-color: var(--aq-bg); color: var(--aq-fg); } .interpreter .step .header { position: relative; } .interpreter .step .header .header-text { position: relative; z-index: 12; } .interpreter .step .header .header-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 11; background: var(--aq-bg); opacity: 0.8; } .interpreter .step .step-header { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 5px; } .interpreter .step .step-header .step-marker { font-size: 1.1em; font-family: "Source Code Pro", monospace; } .interpreter .step .step-header .undefined-behavior { color: var(--aq-error); max-width: 250px; } .interpreter .step .memory-header { margin-bottom: 5px; font-weight: bold; } .interpreter .step .memory-container { position: relative; } .interpreter .step .memory-container .memory-container-flex { display: flex; flex-direction: row; gap: 60px; padding-left: 10px; } .interpreter .step .memory-container .memory { border: 1px dashed var(--aq-step-table-border); padding: 0.7rem; height: max-content; } .interpreter .step .memory-container .memory .frames { display: flex; flex-direction: column; gap: 10px; } .interpreter .step .memory-container .memory .frames .frame-header { display: inline-block; font-family: "Source Code Pro", monospace; } .interpreter .step .memory-container .memory .frames .empty-frame { font-size: 0.9em; } .interpreter .step h2 { margin-top: 0; font-size: 1.1em; font-weight: bold; } .interpreter .step code { font-size: 0.9em; } .interpreter .step table.locals, .interpreter .step .heap > table { border: 2px solid var(--aq-step-table-border); } .interpreter .step table.locals tr.moved, .interpreter .step .heap > table tr.moved { opacity: 0.3; background: repeating-linear-gradient(45deg, var(--aq-step-table-border), var(--aq-step-table-border) 3px, var(--aq-bg) 3px, var(--aq-bg) 10px); } .interpreter .step table.locals > tbody > tr > td, .interpreter .step .heap > table > tbody > tr > td { border-width: 2px; padding: 2px 4px; } .interpreter .step table.locals > tbody > tr > td:nth-child(1), .interpreter .step .heap > table > tbody > tr > td:nth-child(1) { border-right-width: 1.5px; } .interpreter .step table.locals > tbody > tr > td:nth-child(2), .interpreter .step .heap > table > tbody > tr > td:nth-child(2) { border-left-width: 1.5px; } .interpreter .step table { border: 1px solid var(--aq-step-table-border); border-collapse: collapse; font-family: "Source Code Pro", monospace; } .interpreter .step table.array { border: none; } .interpreter .step table.array td { border-top: none; border-bottom: none; padding: 0 2px; } .interpreter .step table.array td:first-child { border-left: none; } .interpreter .step table.array td:last-child { border-right: none; } .interpreter .step table td { border: 1px solid var(--aq-step-table-border); transition: width 1s, height 1s; } .interpreter .step .unallocated.error { display: inline-block; width: 1.2em; color: var(--aq-error); border: 1px dashed var(--aq-error); border-radius: 50%; text-align: center; } .leader-line { z-index: 10; } .light, .rust { --code-bg: #f6f7f6; } .coal, .navy { --code-bg: #1d1f21; } .ayu { --code-bg: #191f26; } :root { --aq-fg: var(--fg); --aq-bg: var(--bg); --aq-button-border: var(--icons); --aq-button-text: var(--icons); --aq-button-background: var(--theme-popup-bg); --aq-button-border-hover: var(--icons-hover); --aq-button-text-hover: var(--sidebar-active); --aq-button-background-hover: var(--theme-hover); --aq-step-widget-text: var(--searchresults-header-fg); --aq-step-table-text: var(--sidebar-fg); --aq-step-table-border: var(--table-header-bg); --aq-step-table-background: var(--sidebar-bg); } .rust { --aq-step-table-background-alternate: var(--sidebar-non-existant); } .coal, .navy, .ayu, .rust { --aq-perm-gain-color: #eee; --aq-perm-loss-color: #ccc; } .coal, .navy, .ayu { --aq-error: #ff5151; --aq-write-color: #399cf2; --aq-step-widget-text: #aaa; } .aquascope { border: 2px dashed var(--theme-popup-border); } .aquascope .cm-editor { background-color: var(--code-bg); } .aquascope .cm-scroller { line-height: inherit; } .aquascope .cm-content { padding: 1rem; font-family: "Source Code Pro", Consolas, "Ubuntu Mono", Menlo, "DejaVu Sans Mono", monospace, monospace; font-size: 0.875em; } .aquascope .cm-line { padding: 0; } .interpreter table { margin: 0; } .interpreter table tbody tr:nth-child(2n) { background: inherit; } .interpreter table td { padding: 2px 4px; } .aquascope { margin-top: 2em; } .extra-info { display: flex; position: absolute; right: 0; top: -2em; width: max-content; gap: 8px; } .context-provider button { filter: grayscale(50%); border: 0; cursor: pointer; border: 1px solid var(--aq-button-border); background-color: var(--aq-button-background); border-radius: 4px; } .context-provider button:hover { background-color: var(--aq-button-background-hover); color: var(--aq-button-text-hover); border-color: var(--aq-button-border-hover); } .context-provider .popup-context { background: var(--bg); border: 2px solid var(--theme-popup-border); padding: 0.5em; text-align: left; border-radius: 4px; box-shadow: 1px 1px 4px var(--theme-popup-border); z-index: 1000; width: min(400px, 70vw); } .context-provider .popup-context h3 { margin-top: 0; margin-bottom: 1em; } .context-provider .popup-context p:last-child { margin-bottom: 0; } .context-provider .popup-context textarea { width: 100%; min-height: 4.5em; font-family: "Open Sans", sans-serif; } .context-provider .popup-context .close { position: absolute; top: 5px; right: 5px; color: var(--fg); }