372 lines
7.8 KiB
CSS
372 lines
7.8 KiB
CSS
/* Base Variables */
|
|
:root {
|
|
--light-bg: #f9f9f9;
|
|
--light-border: #e0e0e0;
|
|
--light-text: #333;
|
|
--light-hover-border: #c1c1c1;
|
|
--light-scrollbar-track: #f1f1f1;
|
|
--light-scrollbar-thumb: #c1c1c1;
|
|
--light-scrollbar-thumb-hover: #a8a8a8;
|
|
|
|
--dark-bg: #1d1f21;
|
|
--dark-border: #2d2d2d;
|
|
--dark-text: #c5c8c6;
|
|
--dark-scrollbar-track: #25282c;
|
|
--dark-scrollbar-thumb: #4a4d51;
|
|
--dark-scrollbar-thumb-hover: #5a5d61;
|
|
|
|
--primary-color: #0550ae;
|
|
--primary-color-alpha: rgba(5, 80, 174, 0.1);
|
|
--primary-color-alpha-dark: rgba(121, 192, 255, 0.1);
|
|
--selection-color: rgba(39, 95, 255, 0.3);
|
|
}
|
|
|
|
/* Common Scrollbar Styles */
|
|
::-webkit-scrollbar {
|
|
width: 8px;
|
|
height: 8px;
|
|
}
|
|
|
|
::-webkit-scrollbar-track {
|
|
border-radius: 4px;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb {
|
|
border-radius: 4px;
|
|
}
|
|
|
|
/* Base Light Theme Scrollbars */
|
|
::-webkit-scrollbar-track {
|
|
background: var(--light-scrollbar-track);
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb {
|
|
background: var(--light-scrollbar-thumb);
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb:hover {
|
|
background: var(--light-scrollbar-thumb-hover);
|
|
}
|
|
|
|
/* Dropdown Styling */
|
|
.custom-select {
|
|
position: relative;
|
|
display: inline-block;
|
|
}
|
|
|
|
#language-select {
|
|
background-color: var(--light-bg);
|
|
border: 1px solid var(--light-border);
|
|
border-radius: 4px;
|
|
padding: 4px 24px 4px 8px;
|
|
font-size: 14px;
|
|
color: var(--light-text);
|
|
cursor: pointer;
|
|
min-width: 120px;
|
|
appearance: none;
|
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
|
|
background-repeat: no-repeat;
|
|
background-position: right 8px center;
|
|
}
|
|
|
|
.select-button {
|
|
background-color: var(--light-bg);
|
|
border: 1px solid var(--light-border);
|
|
border-radius: 4px;
|
|
padding: 4px 8px;
|
|
font-size: 14px;
|
|
color: var(--light-text);
|
|
cursor: pointer;
|
|
min-width: 120px;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
#language-select:hover,
|
|
.select-button:hover {
|
|
border-color: var(--light-hover-border);
|
|
}
|
|
|
|
#language-select:focus,
|
|
.select-button:focus {
|
|
outline: none;
|
|
border-color: var(--primary-color);
|
|
box-shadow: 0 0 0 2px var(--primary-color-alpha);
|
|
}
|
|
|
|
/* Custom Checkbox Styling */
|
|
input[type="checkbox"] {
|
|
appearance: none;
|
|
width: 16px;
|
|
height: 16px;
|
|
border: 1px solid var(--light-border);
|
|
border-radius: 3px;
|
|
margin-right: 6px;
|
|
position: relative;
|
|
cursor: pointer;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
input[type="checkbox"]:checked {
|
|
background-color: var(--primary-color);
|
|
border-color: var(--primary-color);
|
|
}
|
|
|
|
input[type="checkbox"]:checked::after {
|
|
content: '';
|
|
position: absolute;
|
|
left: 5px;
|
|
top: 2px;
|
|
width: 4px;
|
|
height: 8px;
|
|
border: solid white;
|
|
border-width: 0 2px 2px 0;
|
|
transform: rotate(45deg);
|
|
}
|
|
|
|
input[type="checkbox"]:hover {
|
|
border-color: var(--light-hover-border);
|
|
}
|
|
|
|
input[type="checkbox"]:focus {
|
|
outline: none;
|
|
border-color: var(--primary-color);
|
|
box-shadow: 0 0 0 2px var(--primary-color-alpha);
|
|
}
|
|
|
|
/* Select Dropdown */
|
|
.select-dropdown {
|
|
position: absolute;
|
|
top: 100%;
|
|
left: 0;
|
|
right: 0;
|
|
background-color: var(--light-bg);
|
|
border: 1px solid var(--light-border);
|
|
border-radius: 4px;
|
|
margin-top: 4px;
|
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
|
display: none;
|
|
z-index: 1000;
|
|
max-height: 300px;
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.select-dropdown.show {
|
|
display: block;
|
|
}
|
|
|
|
.option {
|
|
padding: 8px 12px;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.option:hover {
|
|
background-color: var(--primary-color-alpha);
|
|
}
|
|
|
|
.option.selected {
|
|
background-color: var(--primary-color-alpha);
|
|
}
|
|
|
|
/* CodeMirror Base Styles */
|
|
.ts-playground .CodeMirror {
|
|
border-radius: 6px;
|
|
background-color: var(--light-bg) !important;
|
|
color: #080808 !important;
|
|
}
|
|
|
|
.ts-playground .CodeMirror-scroll {
|
|
padding: 8px;
|
|
border: 1px solid var(--light-border);
|
|
border-radius: 6px;
|
|
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.ayu .ts-playground .CodeMirror-scroll,
|
|
.coal .ts-playground .CodeMirror-scroll,
|
|
.navy .ts-playground .CodeMirror-scroll {
|
|
border-color: var(--dark-border);
|
|
}
|
|
|
|
.ts-playground .CodeMirror-gutters {
|
|
background: #ebebeb !important;
|
|
border-right: 1px solid #e8e8e8 !important;
|
|
}
|
|
|
|
.ts-playground .CodeMirror-cursor {
|
|
border-left: 2px solid #000 !important;
|
|
}
|
|
|
|
.ts-playground .CodeMirror-selected {
|
|
background: var(--selection-color) !important;
|
|
}
|
|
|
|
.ts-playground .CodeMirror-activeline-background {
|
|
background: rgba(36, 99, 180, 0.12) !important;
|
|
}
|
|
|
|
/* Output Container Styles */
|
|
#output-container {
|
|
color: #080808;
|
|
background-color: var(--light-bg);
|
|
margin: 0;
|
|
white-space: pre;
|
|
font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
|
|
}
|
|
|
|
#output-container-scroll {
|
|
max-height: 400px;
|
|
overflow: auto;
|
|
padding: 8px;
|
|
border: 1px solid var(--light-border);
|
|
border-radius: 6px;
|
|
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
|
|
background-color: var(--light-bg);
|
|
}
|
|
|
|
#output-container a {
|
|
color: var(--primary-color);
|
|
text-decoration: none;
|
|
}
|
|
|
|
#output-container a.node-link.anonymous {
|
|
color: #116329;
|
|
}
|
|
|
|
#output-container a.node-link.anonymous:before {
|
|
content: '"';
|
|
}
|
|
|
|
#output-container a.node-link.anonymous:after {
|
|
content: '"';
|
|
}
|
|
|
|
#output-container a.node-link.error {
|
|
color: #cf222e;
|
|
}
|
|
|
|
#output-container a.highlighted {
|
|
background-color: var(--selection-color);
|
|
}
|
|
|
|
/* Dark Theme Overrides */
|
|
.ayu, .coal, .navy {
|
|
& #language-select,
|
|
& .select-button {
|
|
background-color: var(--dark-bg);
|
|
border-color: var(--dark-border);
|
|
color: var(--dark-text);
|
|
}
|
|
|
|
& input[type="checkbox"] {
|
|
border-color: var(--dark-border);
|
|
background-color: var(--dark-bg);
|
|
}
|
|
|
|
& input[type="checkbox"]:checked {
|
|
background-color: #79c0ff;
|
|
border-color: #79c0ff;
|
|
}
|
|
|
|
& label {
|
|
color: var(--dark-text);
|
|
}
|
|
|
|
& .select-dropdown {
|
|
background-color: var(--dark-bg);
|
|
border-color: var(--dark-border);
|
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
|
|
}
|
|
|
|
& .option:hover {
|
|
background-color: var(--primary-color-alpha-dark);
|
|
}
|
|
|
|
& .option.selected {
|
|
background-color: var(--primary-color-alpha-dark);
|
|
}
|
|
|
|
& .ts-playground .CodeMirror {
|
|
background-color: var(--dark-bg) !important;
|
|
color: var(--dark-text) !important;
|
|
}
|
|
|
|
& .ts-playground .CodeMirror-gutters {
|
|
background: var(--dark-scrollbar-track) !important;
|
|
border-right-color: var(--dark-border) !important;
|
|
}
|
|
|
|
& .ts-playground .CodeMirror-cursor {
|
|
border-left-color: #aeafad !important;
|
|
}
|
|
|
|
& .ts-playground .CodeMirror-selected {
|
|
background: #373b41 !important;
|
|
}
|
|
|
|
& .ts-playground .CodeMirror-activeline-background {
|
|
background: #282a2e !important;
|
|
}
|
|
|
|
& #output-container {
|
|
color: var(--dark-text);
|
|
background-color: var(--dark-bg);
|
|
}
|
|
|
|
& #output-container-scroll {
|
|
background-color: var(--dark-bg);
|
|
border-color: var(--dark-border);
|
|
}
|
|
|
|
& #output-container a {
|
|
color: #79c0ff;
|
|
}
|
|
|
|
& #output-container a.node-link.anonymous {
|
|
color: #7ee787;
|
|
}
|
|
|
|
& #output-container a.node-link.error {
|
|
color: #ff7b72;
|
|
}
|
|
|
|
& #output-container a.highlighted {
|
|
background-color: #373b41;
|
|
}
|
|
|
|
/* Dark Theme Scrollbars */
|
|
& ::-webkit-scrollbar-track {
|
|
background: var(--dark-scrollbar-track) !important;
|
|
}
|
|
|
|
& ::-webkit-scrollbar-thumb {
|
|
background: var(--dark-scrollbar-thumb) !important;
|
|
}
|
|
|
|
& ::-webkit-scrollbar-thumb:hover {
|
|
background: var(--dark-scrollbar-thumb-hover) !important;
|
|
}
|
|
|
|
& * {
|
|
scrollbar-width: thin !important;
|
|
scrollbar-color: var(--dark-scrollbar-thumb) var(--dark-scrollbar-track) !important;
|
|
}
|
|
}
|
|
|
|
/* Spacing Utilities */
|
|
#language-select,
|
|
input[type="checkbox"],
|
|
label {
|
|
margin: 0 4px;
|
|
}
|
|
|
|
#language-select {
|
|
margin-right: 16px;
|
|
}
|
|
|
|
label {
|
|
font-size: 14px;
|
|
margin-right: 16px;
|
|
cursor: pointer;
|
|
}
|