Skip to content

Instantly share code, notes, and snippets.

@hypackel
Last active July 17, 2025 23:21
Show Gist options
  • Save hypackel/fa95244f9dd57bf73a146b286042503f to your computer and use it in GitHub Desktop.
Save hypackel/fa95244f9dd57bf73a146b286042503f to your computer and use it in GitHub Desktop.
WIP Jetbrains/Trae Vscode theme
:root {
--border-radius: 7px;
--spacing: 3px;
--spacing-color: color-mix(in srgb, var(--vscode-editor-background) 100%, black);
--immersive: 0;
/* macOS: add extra top margin for sidebars below the system menu bar */
--mac-titlebar-offset: 7px;
}
.monaco-workbench {
background-color: var(--spacing-color) !important;
}
/* #region-------rounded corners and spacing-------*/
.part.activitybar {
&.bordered.left {
border-top-right-radius: var(--border-radius) !important;
border-bottom-right-radius: var(--border-radius) !important;
border: 0px solid transparent !important;
/* margin-left: calc(var(--spacing) * 2) !important; */
}
&.bordered.right {
border-top-left-radius: var(--border-radius) !important;
border-bottom-left-radius: var(--border-radius) !important;
border: 0px solid transparent !important;
/* margin-right: calc(var(--spacing) * 2) !important; */
}
}
.part.sidebar,
.part.auxiliarybar {
border-radius: var(--border-radius) !important;
display: flex;
flex-direction: column;
padding: 5px 5px !important;
&.left {
/* On macOS, add extra top and bottom margin for the menu bar and dock */
margin-top: calc(var(--mac-titlebar-offset) + var(--spacing) * 0) !important;
margin-bottom: calc(var(--mac-titlebar-offset) + var(--spacing) * 0) !important;
margin-right: calc(var(--spacing) * 1) !important;
margin-left: calc(var(--spacing) * 2) !important;
width: calc(100% - var(--spacing) * 3) !important;
/* Set height to avoid stretching to window edge and ensure visible rounding */
height: calc(100% - 2 * var(--mac-titlebar-offset)) !important;
border-bottom-left-radius: var(--border-radius) !important;
border-bottom-right-radius: var(--border-radius) !important;
}
&.right {
/* On macOS, add extra top and bottom margin for the menu bar and dock */
margin-top: calc(var(--mac-titlebar-offset) + var(--spacing) * 0) !important;
margin-bottom: calc(var(--mac-titlebar-offset) + var(--spacing) * 0) !important;
margin-right: calc(var(--spacing) * 2) !important;
margin-left: calc(var(--spacing) * 1) !important;
width: calc(100% - var(--spacing) * 3) !important;
/* Set height to avoid stretching to window edge and ensure visible rounding */
height: calc(100% - 2 * var(--mac-titlebar-offset)) !important;
border-bottom-left-radius: var(--border-radius) !important;
border-bottom-right-radius: var(--border-radius) !important;
}
/* -----some adjustments----- */
/* Apply max-width: 100% to all sidebar content except the Cursor AI pane and its children */
/* *:not(.aislash-editor-input):not(.aislash-editor-input *):not(.aislash-editor-placeholder) {
max-width: 100%;
} */
.search-view .search-widgets-container,
.search-view .search-widget .replace-container {
width: calc(100% - var(--spacing) * 3 - 10px) !important;
}
.monaco-button-dropdown .monaco-button-dropdown-separator {
display: none !important;
}
/* Add gap between monaco button dropdown buttons */
.monaco-button-dropdown .monaco-button {
margin-right: 4px !important;
}
.monaco-button-dropdown .monaco-button:last-child {
margin-right: 0 !important;
}
}
.part.editor {
/* On macOS, add extra top and bottom margin for the menu bar and dock */
margin-top: calc(var(--mac-titlebar-offset) + var(--spacing) * 0) !important;
margin-bottom: calc(var(--mac-titlebar-offset) + var(--spacing) * 0) !important;
margin-right: calc(var(--spacing) * 1) !important;
margin-left: calc(var(--spacing) * 1) !important;
width: calc(100% - var(--spacing) * 2) !important;
min-height: calc(100% - 2 * var(--mac-titlebar-offset)) !important;
border-radius: var(--border-radius) !important;
/* -----some adjustments----- */
>.content .editor-group-container>.title {
width: calc(100% - var(--spacing) * 2) !important;
.editor-actions {
position: unset !important;
top: 0 !important;
}
}
.scrollbar.vertical {
margin-right: var(--spacing);
}
}
.part.panel {
/* Lower the height of the Cursor AI pane and all panels to match the sidebars and editor */
height: calc(100% - 2 * var(--mac-titlebar-offset)) !important;
border-radius: var(--border-radius) !important;
display: flex;
flex-direction: column;
padding: 0px 5px !important;
&.bottom {
margin-top: calc(var(--spacing) * 0.5) !important;
margin-bottom: 20px !important;
margin-right: calc(var(--spacing) * 1) !important;
margin-left: calc(var(--spacing) * 1) !important;
width: calc(100% - var(--spacing) * 2) !important;
height: calc(100% - var(--spacing) * 2 - 10px) !important;
}
&.top {
margin-top: calc(var(--spacing) * 0) !important;
margin-bottom: calc(var(--spacing) * 2) !important;
margin-right: calc(var(--spacing) * 1) !important;
margin-left: calc(var(--spacing) * 1) !important;
width: calc(100% - var(--spacing) * 2) !important;
height: calc(100% - var(--spacing) * 2) !important;
}
/* -----some adjustments----- */
.monaco-list-row {
max-width: 97% !important;
}
.integrated-terminal .tabs-container {
width: calc(100% - var(--spacing) * 2 - 10px) !important;
}
.repl:has(div.repl-tree.monaco-mouse-cursor-text.word-wrap) {
display: flex;
flex-direction: column-reverse;
.repl-input-wrapper {
position: absolute;
}
}
}
/* #endregion-------rounded corners and spacing-------*/
/* Fix tab bar positioning in all views */
.part.editor .tabs-container {
position: relative !important;
top: 0 !important;
z-index: 10 !important;
}
/* Ensure editor content area doesn't interfere with tabs */
.part.editor .content {
position: relative !important;
top: 0 !important;
}
/* Fix editor area height and margin consistency across all views */
.part.editor {
margin-top: calc(var(--mac-titlebar-offset) + var(--spacing) * 0) !important;
}
/* Ensure consistent spacing for non-file views */
.part.editor:not(.has-editor) {
margin-top: calc(var(--mac-titlebar-offset) + var(--spacing) * 0) !important;
}
/* Force consistent top margin for all editor states */
.part.editor[data-view-id],
.part.editor[data-view-id] .content {
margin-top: calc(var(--mac-titlebar-offset) + var(--spacing) * 0) !important;
}
/* Fix tab bar positioning - ensure it stays at the top */
.part.editor .title.tabs {
position: relative !important;
top: 0 !important;
margin-top: 0 !important;
padding-top: 0 !important;
}
/* Ensure tabs container stays properly positioned */
.part.editor .tabs-container {
position: relative !important;
top: 0 !important;
margin-top: 0 !important;
}
/* #region-------rounded corners for lists and inputs-------*/
.monaco-list-row,
.monaco-list-row.selected,
.monaco-list-row.focused,
.monaco-list.mouse-support,
.part.sidebar .pane-header,
.part.auxiliarybar .pane-header,
.monaco-menu .action-item a.focused,
.monaco-menu .action-item a:hover,
.monaco-button,
.notifications-center,
.notification-toast,
.notification-fade-in-done,
.monaco-inputbox,
.monaco-hover,
.suggest-details,
.suggest-widget,
.monaco-editor .find-widget,
.suggest-input-container,
.editor-widget.suggest-widget.visible,
.suggest-details,
.notificatin .editor-widget.parameter-hints-widget.visible {
border-radius: 6px !important;
/* margin-right: 4px !important; */
/* max-width: calc(100% - 4px) !important; */
}
/* #endregion-------rounded corners for lists and inputs-------*/
/* #region-------active tab highlight------*/
.part.editor .tabs-container {
padding: 7px 0px;
>* {
border-radius: 7px !important;
border: 1px solid transparent !important;
margin: 0px 7px !important;
}
.tab.selected {
border-radius: 7px !important;
box-shadow: rgba(0, 0, 0, 0.20) 0px 20px 25px -5px,
rgba(0, 0, 0, 0.25) 0px 10px 10px -5px !important;
}
.tab-border-top-container,
.tab-border-bottom-container {
display: none !important;
}
}
.part.editor .tabs-container .tab {
max-width: 100% !important;
min-height: 30px !important;
align-items: center !important;
display: flex !important;
}
.part.editor .tabs-container .tab .tab-label,
.part.editor .tabs-container .tab .monaco-icon-label {
max-width: 100% !important;
}
/* .part.activitybar ul[role=tablist] .action-item:hover .action-label::after, */
.part.activitybar ul[role=tablist] .action-item.checked .action-label::after {
width: 80%;
height: 80%;
position: absolute;
border-radius: 6px;
content: '';
box-shadow: rgba(0, 0, 0, 0.20) 0px 20px 25px -5px,
rgba(0, 0, 0, 0.25) 0px 10px 10px -5px !important;
}
.part.auxiliarybar ul[role=tablist] .action-item,
.part.sidebar ul[role=tablist] .action-item {
/* &.action-item:hover .action-label::after, */
&.action-item.checked .action-label::after {
content: '';
width: 110%;
height: 75%;
position: absolute;
left: 1px !important;
border-radius: 6px;
box-shadow: rgba(0, 0, 0, 0.20) 0px 20px 25px -5px,
rgba(0, 0, 0, 0.25) 0px 10px 10px -5px !important;
}
.active-item-indicator {
display: none;
}
.action-label.codicon {
font-size: 20px;
}
.action-label:not(.codicon) {
font-size: 13px;
}
}
.part.sidebar .pane-header.expanded,
.part.auxiliarybar .pane-header.expanded {
border-radius: 6px !important;
border: 2px solid var(--vscode-sideBar-background) !important;
box-shadow: rgba(0, 0, 0, 0.20) 0px 20px 25px -5px,
rgba(0, 0, 0, 0.25) 0px 10px 10px -5px !important;
}
.part.panel .action-item.checked {
height: 60%;
border-radius: 7px !important;
box-shadow: rgba(0, 0, 0, 0.20) 0px 20px 25px -5px,
rgba(0, 0, 0, 0.25) 0px 10px 10px -5px !important;
.active-item-indicator {
display: none !important;
}
}
/* #endregion-------tabs------*/
/* #region-------scrollbar sliders and minimap-------*/
.scrollbar.vertical .slider {
width: 4px !important;
border-radius: 2px !important;
cursor: grab !important;
&:hover {
width: 6px !important;
border-radius: 3px !important;
}
&:active {
cursor: grabbing !important;
}
}
.scrollbar.horizontal .slider {
height: 4px !important;
border-radius: 2px !important;
cursor: grab !important;
&:hover {
height: 6px !important;
border-radius: 3px !important;
}
&:active {
cursor: grabbing !important;
}
}
.minimap-slider {
border-radius: 4px !important;
cursor: grab !important;
box-shadow: rgba(0, 0, 0, 0.20) 0px 20px 25px -5px,
rgba(0, 0, 0, 0.25) 0px 10px 10px -5px !important;
&:active {
cursor: grabbing !important;
}
}
/* #endregion-------scrollbar sliders-------*/
/* #region-------miscellaneous tweaks-------*/
/* center activity bar top */
.part.sidebar .composite-bar-container,
.part.auxiliarybar .composite-bar-container {
.composite-bar {
width: 100%;
}
.actions-container {
justify-content: flex-start !important;
}
}
.part.auxiliarybar>.composite.title {
display: flex !important;
flex-direction: row !important;
justify-content: flex-start !important;
align-items: center !important;
width: 100%;
}
.part.auxiliarybar>.composite.title>.title-label {
flex-grow: 1;
}
.part.auxiliarybar>.composite.title>.title-actions,
.part.auxiliarybar>.composite.title>.global-actions {
flex-shrink: 0;
}
/* gutter current line highlight */
.monaco-editor .margin-view-overlays .current-line-exact-margin {
box-shadow: rgba(0, 0, 0, 0.20) 0px 20px 25px -5px,
rgba(0, 0, 0, 0.25) 0px 10px 10px -5px !important;
border-radius: 7px !important;
margin-left: 7px !important;
/* max-width: 77% !important; */
/* max-height: 95% !important; */
}
/* Sidebar bigger title */
.monaco-workbench .part.sidebar>.title>.title-label h2,
.monaco-workbench .part.auxiliarybar>.title>.title-label h2 {
color: var(--vscode-sideBarTitle-foreground) !important;
text-transform: none !important;
font-size: 15px;
font-weight: 800;
}
/* Command palette bigger text input*/
.quick-input-filter .monaco-inputbox {
border-radius: 8px !important;
padding: 4px !important;
background-color: var(--vscode-editor-background) !important;
font-size: 14px !important;
margin-bottom: 16px !important;
}
/* tweak editor find widget */
.monaco-editor .find-widget {
top: 10px !important;
border-radius: 6px !important;
border: 1px solid var(--vscode-editorWidget-border) !important;
}
/* Remove tips from home page. */
.editor-group-watermark .shortcuts {
display: none !important;
}
/* Remove vscode icon in the titlebar */
.part.titlebar .window-appicon {
display: none;
}
/* colorpicker */
.colorpicker-color-decoration {
border: none !important;
border-radius: 30% !important;
}
/* colored icons in statusbar */
.part.statusbar {
.codicon-error {
color: #ff3377 !important;
}
.codicon-warning {
color: #cccc00 !important;
}
.codicon-git-branch {
color: #9988ff !important
}
.codicon-sync {
color: #11cc99 !important;
}
.codicon-bell,
.codicon-bell-dot {
color: #0e80c0 !important;
}
}
/* immersive: hide titlebar and statusbar content */
.part.titlebar .titlebar-center,
.part.titlebar .titlebar-right,
.part.titlebar .menubar,
.part.statusbar .items-container {
opacity: calc(1 - var(--immersive)) !important;
}
/* #endregion-------little tweaks-------*/
/* #region-------animations-------*/
/* settings icon animation in the activity bar */
/* .codicon-settings-view-bar-icon {
transition: transform 250ms cubic-bezier(1, 1, 1, 1);
&.codicon-settings-view-bar-icon:hover {
transform: rotate(90deg);
background-color: transparent !important;
}
} */
/* gutter active line number animation */
/* .line-numbers.active-line-number {
transform: scale(1.25) translateX(-3px);
animation: .2s ease-out scaleSize;
}
@keyframes scaleSize {
0% {
transform: scale(.75)
}
100% {
transform: scale(1.35) translateX(-3px);
}
} */
/* #endregion-------animations-------*/
/* Fleet-like right panel content constraints */
.part.sidebar.right .split-view-view,
.part.auxiliarybar.right .split-view-view {
max-height: 100%;
overflow: auto;
box-sizing: border-box;
margin-top: 10px;
/* adjust as needed for Fleet-like spacing */
}
.part.sidebar.right .pane-body {
max-height: calc(100% - 20px);
/* account for margins/padding */
overflow-y: auto;
}
/* Ensure Cursor AI input box fills full width in right panel */
.part.sidebar.right input,
.part.auxiliarybar.right input,
.part.sidebar.right textarea,
.part.auxiliarybar.right textarea {
width: 100% !important;
box-sizing: border-box !important;
flex: 1 1 auto !important;
min-width: 0 !important;
}
.aislash-editor-input,
.aislash-editor-placeholder {
/* min-width: 100% !important; */
max-width: none !important;
}
/* Fix for AI cursor input width and placeholder overlay */
.aislash-editor-input-grid,
/* use the actual class if different */
.aislash-editor-input-parent {
width: 100% !important;
position: relative !important;
display: grid !important;
grid-template-columns: 1fr !important;
}
.aislash-editor-placeholder {
position: absolute !important;
left: 0 !important;
top: 0 !important;
width: 100% !important;
pointer-events: none !important;
z-index: 1;
}
.aislash-editor-input {
position: relative !important;
z-index: 2;
}
.part.sidebar.left * {
max-width: 100% !important;
}
.full-input-box {
width: calc(100% - 10px) !important;
}
.composer-bar {
margin-left: -10.5px;
height: calc(100% - 4px) !important;
width: calc(100% - 5px) !important;
}
*:not(.full-input-box, *):not(.full-input-box) {
max-width: 100% !important;
caret-color: #ffffff !important;
}
/* Ensure caret is visible in left sidebar inputs */
.part.sidebar.left input,
.part.sidebar.left textarea {
caret-color: #fff !important;
}
/* --- Fix for invisible input cursor in Monaco SCM input --- */
.monaco-editor .cursor {
visibility: visible !important;
display: block !important;
}
.monaco-editor .editor-input,
.monaco-editor input,
.monaco-editor textarea,
.monaco-mouse-cursor-text,
.view-lines,
.view-line {
caret-color: #fff !important;
/* Adjust to a color you prefer */
}
.monaco-editor .git-message-input .cursor {
visibility: visible !important;
display: block !important;
}
/* Global fallback for ALL editable text inputs */
textarea,
input,
.monaco-editor textarea {
caret-color: #ffffff !important;
color: #ffffff !important;
/* adjust if text is also invisible */
}
/* Specifically for SCM commit box */
.monaco-workbench .scm-view .monaco-editor textarea {
caret-color: #ffffff !important;
}
.aiFullFilePromptBarWidget {
margin-bottom: 15px !important;
}
div[style*="background: var(--vscode-input-background)"][style*="display: flex"][style*="border-top-left-radius: 6px"][style*="border-top-right-radius: 6px"][style*="padding: 0px 6px"] {
width: calc(100% - 7px) !important;
}
/* Fix for invisible caret in git commit input in left sidebar */
.part.sidebar.left .scm-view .monaco-editor textarea,
.part.sidebar.left .scm-view .monaco-editor .inputarea,
.part.sidebar.left .scm-view .monaco-editor .cursor {
caret-color: #fff !important;
color: #fff !important;
background: #222 !important;
border: none !important;
visibility: visible !important;
display: block !important;
z-index: 9999 !important;
opacity: 1 !important;
}
.part.sidebar.left .scm-view .monaco-editor textarea::selection {
background: #444 !important;
color: #fff !important;
}
.part.sidebar.left .scm-view .monaco-editor .cursor::after {
content: '';
display: block;
width: 2px;
height: 1.2em;
background: #fff !important;
position: absolute;
left: 0;
top: 0;
opacity: 1 !important;
z-index: 10000 !important;
}
.prompt-bar-hint {
z-index: 10000 !important;
}
/* FORCE window-title to the left side of the titlebar */
.part.titlebar {
display: flex !important;
flex-direction: row !important;
justify-content: flex-start !important;
align-items: center !important;
position: relative !important;
}
.part.titlebar .window-title {
position: absolute !important;
left: 63px !important;
/* leave space for traffic lights */
margin-left: 0 !important;
z-index: 10000 !important;
text-align: left !important;
justify-content: flex-start !important;
align-items: center !important;
width: auto !important;
max-width: 50vw !important;
pointer-events: auto !important;
}
.window-title-initial {
position: absolute;
left: 30px;
/* just after the traffic lights */
top: 50%;
transform: translateY(-50%);
width: 28px;
height: 28px;
background: #888;
color: #fff;
font-weight: bold;
font-size: 18px;
border-radius: 6px;
display: flex;
align-items: center;
justify-content: center;
z-index: 10001;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
user-select: none;
pointer-events: none;
}
.interactive-session {
max-height: calc(100% - 500px) !important;
}
#max-models {
display: none !important;
}
.codicon-panel-layout-icon-off {
display: none !important;
}
[aria-label="Your Cursor installation appears to be corrupt. Please reinstall., notification, Inspect the response in the accessible view with Option+F2"] {
display: none !important;
}
div.monaco-list-row[aria-label="Your Cursor installation appears to be corrupt. Please reinstall., notification, Inspect the response in the accessible view with Option+F2"] {
display: none !important;
}
/* Hide the entire notification list when it contains the corrupt installation message */
.monaco-list[aria-label*="Your Cursor installation appears to be corrupt"] {
display: none !important;
}
/* Hide any notification containing the corrupt installation text */
.notification-list-item:has(.notification-list-item-message span:contains("Your Cursor installation appears to be corrupt")) {
display: none !important;
}
/* Alternative approach - hide notifications with warning icon and corrupt message */
.notification-list-item:has(.codicon-warning-two + .notification-list-item-message span:contains("corrupt")) {
display: none !important;
}
/* Hide shadow elements for corrupt installation notifications */
.monaco-list[aria-label*="Your Cursor installation appears to be corrupt"] .shadow {
display: none !important;
}
/* Hide the entire notification container and all its children including shadows */
.monaco-list[aria-label*="Your Cursor installation appears to be corrupt"],
.monaco-list[aria-label*="Your Cursor installation appears to be corrupt"] * {
display: none !important;
visibility: hidden !important;
opacity: 0 !important;
}
/* Remove shadow from toast notifications containing corrupt installation message */
.notification-toast:has(.monaco-list[aria-label*="Your Cursor installation appears to be corrupt"]) {
box-shadow: none !important;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment