Files
modeling-app/src/index.css

339 lines
7.0 KiB
CSS

@import './colors.css';
@tailwind base;
@tailwind components;
@tailwind utilities;
button,
input,
select,
textarea,
a {
/* Make all interactive elements not act as handles
* to drag the electron app window by default,
* per the electron docs: https://www.electronjs.org/docs/latest/tutorial/window-customization#set-custom-draggable-region
*/
-webkit-app-region: no-drag;
}
body {
margin: 0;
@apply font-sans;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
@apply text-chalkboard-110;
overflow: hidden;
scrollbar-width: thin;
scrollbar-color: var(--color-chalkboard-20) var(--color-chalkboard-40);
}
h1,
h2,
h3,
h4,
h5,
h6 {
@apply font-display;
}
.body-bg {
@apply bg-chalkboard-10;
}
.body-bg.dark,
.dark .body-bg {
@apply bg-chalkboard-100;
}
body.dark {
scrollbar-color: var(--color-chalkboard-70) var(--color-chalkboard-90);
@apply text-chalkboard-10;
}
select {
@apply bg-chalkboard-20;
}
.dark select {
@apply bg-chalkboard-90;
}
/* We hide the cursor if the user has turned off the textEditor.blinkingCursor setting
* any elements that could present a blinking cursor to the user
*/
input,
textarea,
*[contenteditable] {
caret-color: var(--cursor-color, auto);
}
::-webkit-scrollbar {
@apply w-2 h-2 rounded-sm;
@apply bg-chalkboard-20;
}
::-webkit-scrollbar-thumb {
@apply bg-chalkboard-40 rounded-sm;
}
.dark ::-webkit-scrollbar {
@apply bg-chalkboard-90;
}
.dark ::-webkit-scrollbar-thumb {
@apply bg-chalkboard-70;
}
button {
@apply border border-chalkboard-30 m-0.5 px-3 rounded text-xs;
@apply focus-visible:outline-chalkboard-100;
}
button:hover {
@apply border-chalkboard-40 bg-primary/5;
}
.dark button {
@apply border-chalkboard-70 focus-visible:outline-chalkboard-10;
}
.dark button:hover {
@apply border-chalkboard-60;
}
button:disabled {
@apply cursor-not-allowed bg-chalkboard-20/50 text-chalkboard-60 border-chalkboard-20;
}
.dark button:disabled {
@apply bg-chalkboard-90 text-chalkboard-40 border-chalkboard-70;
}
a {
@apply text-primary hover:hue-rotate-15;
}
.dark a {
@apply hover:brightness-110 hover:hue-rotate-0;
}
a.action-button,
.dark a.action-button {
@apply text-inherit no-underline hover:hue-rotate-0;
}
input {
@apply selection:bg-primary/50;
}
.dark input {
@apply selection:bg-primary/40;
}
.mono {
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
monospace;
}
code {
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
monospace;
}
/*
* The first descendent of the CodeMirror wrapper is the theme,
* but its identifying class can change depending on the theme.
*/
#code-mirror-override > div,
#code-mirror-override .cm-editor {
@apply bg-transparent h-full;
@apply select-auto;
}
#code-mirror-override .cm-scroller {
overflow: auto;
}
#code-mirror-override .cm-gutter {
@apply select-none;
}
#code-mirror-override .cm-activeLine,
#code-mirror-override .cm-activeLineGutter {
@apply bg-primary/5;
}
.dark #code-mirror-override .cm-activeLine,
.dark #code-mirror-override .cm-activeLineGutter {
@apply bg-chalkboard-70/20;
mix-blend-mode: lighten;
}
#code-mirror-override .cm-focused .cm-activeLine,
#code-mirror-override .cm-focused .cm-activeLineGutter {
@apply bg-primary/10;
}
.dark #code-mirror-override .cm-focused .cm-activeLine,
.dark #code-mirror-override .cm-focused .cm-activeLineGutter {
@apply bg-chalkboard-70/40;
}
#code-mirror-override .cm-matchingBracket {
@apply bg-primary/20;
}
.dark #code-mirror-override .cm-matchingBracket {
@apply bg-chalkboard-70/60;
}
#code-mirror-override .cm-gutters {
@apply bg-chalkboard-10/30;
}
.dark #code-mirror-override .cm-gutters {
@apply bg-chalkboard-110/50;
}
#code-mirror-override .cm-content {
@apply caret-primary;
}
.dark #code-mirror-override .cm-content {
@apply caret-chalkboard-10;
}
#code-mirror-override .cm-focused {
outline: none;
}
@keyframes blink {
0%,
100% {
opacity: 0;
}
10% {
opacity: 1;
}
}
.react-json-view {
@apply bg-transparent !important;
}
#code-mirror-override .cm-tooltip {
@apply text-xs shadow-md;
@apply bg-chalkboard-10 text-chalkboard-80;
@apply rounded-sm border-solid border border-chalkboard-40/30 border-l-liquid-10;
}
.dark #code-mirror-override .cm-tooltip {
@apply bg-chalkboard-110 text-chalkboard-40;
@apply border-chalkboard-70/20 border-l-liquid-70;
}
#code-mirror-override .cm-tooltip-hover {
@apply py-1 px-2 w-max max-w-md;
}
#code-mirror-override .cm-completionInfo {
@apply px-4 rounded-l-none;
@apply bg-chalkboard-10 text-liquid-90;
@apply border-liquid-40/30;
}
.dark #code-mirror-override .cm-completionInfo {
@apply bg-liquid-120 text-liquid-50;
@apply border-liquid-90/60;
}
#code-mirror-override .cm-tooltip-autocomplete li {
@apply px-2 py-1;
}
#code-mirror-override .cm-tooltip-autocomplete li[aria-selected='true'] {
@apply bg-liquid-10 text-liquid-110;
}
.dark #code-mirror-override .cm-tooltip-autocomplete li[aria-selected='true'] {
@apply bg-liquid-100 text-liquid-20;
}
#code-mirror-override .cm-content {
white-space: pre-wrap;
word-break: normal;
word-wrap: break-word;
}
.cm-ghostText,
.cm-ghostText * {
color: rgb(120, 120, 120, 0.8) !important;
}
.segment-length-label-text {
transform: translate(var(--x, 0), var(--y, 0)) rotate(var(--degree, 0));
@apply font-mono body-bg px-2 pt-0.5 rounded-sm border border-chalkboard-110 dark:border-chalkboard-10;
}
@layer components {
kbd.hotkey {
@apply font-mono text-xs inline-block px-0.5 py-[2px] rounded;
/* This is the only place in our code where layout is impacted by theme.
* We may not want that later, if hotkeys are possibly visible
* while switching theme, but more padding feels better in dark mode.
*/
@apply dark:px-1;
@apply text-chalkboard-70 dark:text-chalkboard-40;
@apply bg-chalkboard-20 dark:bg-chalkboard-90;
@apply border border-t-0 border-b-2 border-chalkboard-30 dark:border-chalkboard-80;
}
}
@layer utilities {
/*
This is where your own custom Tailwind utility classes can go,
which lets you use them with @apply in your CSS, and get
autocomplete in classNames in your JSX.
*/
.parsed-markdown ul,
.parsed-markdown ol {
@apply list-outside pl-4 lg:pl-8 my-2;
}
.parsed-markdown ul li {
@apply list-disc;
}
.parsed-markdown li p {
@apply inline;
}
.parsed-markdown code {
@apply px-1 py-0.5 rounded-sm;
@apply bg-chalkboard-20 text-chalkboard-80;
@apply dark:bg-chalkboard-80 dark:text-chalkboard-30;
}
button.reset {
@apply bg-transparent border-transparent m-0 p-0 rounded-none text-base;
}
button.reset:hover {
@apply bg-transparent border-transparent;
}
/* Add an outline that matches the app foreground (or text) color */
.outline-appForeground {
@apply outline-chalkboard-100 dark:outline-chalkboard-10;
}
}
#code-mirror-override .cm-scroller,
#code-mirror-override .cm-editor {
height: 100% !important;
}
/* Can't use #code-mirror-override here as we're outside of this div */
.body-bg .cm-diagnosticAction {
@apply bg-primary;
}