Last active
July 17, 2025 23:21
-
-
Save hypackel/fa95244f9dd57bf73a146b286042503f to your computer and use it in GitHub Desktop.
WIP Jetbrains/Trae Vscode theme
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
: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