refactor: align project directory architecture

This commit is contained in:
leookun
2026-08-29 20:45:51 +08:00
parent 88f258f184
commit 279e6bb07c
236 changed files with 1982 additions and 57487 deletions
@@ -0,0 +1,177 @@
@use "../styles/typography" as type;
.root {
--app-region-gap: 16px;
--app-toolbar-height: 36px;
--app-page-max-width: 1280px;
--app-page-padding: 18px;
--app-content-left: calc(var(--app-edge) + var(--app-menu-width) );
--app-content-top: calc(var(--window-safe-top) + var(--app-toolbar-height) + 10px );
background: var(--vscode-editor-background);
}
.menuCard {
position: fixed;
z-index: 10;
top: calc(var(--window-menu-top));
bottom: var(--app-edge);
left: var(--app-edge);
width: var(--app-menu-width);
overflow: hidden;
}
.navigation {
width: 100%;
height: 100%;
min-height: 0;
display: flex;
flex-direction: column;
padding: 6px;
-webkit-user-select: none;
user-select: none;
}
.navigationList {
--scroll-shadow-bottom-size: 28px;
flex: 1 1 auto;
width: 100%;
min-height: 0;
}
.navigationGroup {
display: flex;
align-items: center;
color: color-mix(in srgb, var(--vscode-descriptionForeground) 65%, transparent);
font-size: type.$font-size-xs;
font-weight: normal;
padding: 5px 9px 2px;
margin-top: 0;
}
.navigationRow {
flex: 0 0 36px;
display: flex;
align-items: stretch;
a,
button {
width: 100%;
height: 36px;
display: flex;
align-items: center;
gap: 5px;
padding: 0 11px;
color: inherit;
text-decoration: none;
border-radius: 6px;
&:hover {
background: var(--vscode-list-hoverBackground);
}
&[aria-current="page"] {
color: var(--vscode-list-activeSelectionForeground);
background: var(--vscode-list-activeSelectionBackground);
}
}
button {
font: inherit;
text-align: left;
background: transparent;
border: 0;
}
}
.menuIndicatorDot {
width: 7px;
height: 7px;
flex: 0 0 7px;
margin-left: auto;
background: #ef4444;
border-radius: 50%;
}
.dismissReason {
display: flex;
flex-direction: column;
gap: 6px;
margin-top: 14px;
font-size: type.$font-size-base;
textarea {
min-height: 78px;
padding: 8px 10px;
resize: vertical;
color: var(--vscode-input-foreground);
background: var(--vscode-input-background);
border: 1px solid var(--vscode-input-border, var(--vscode-sideBar-border));
border-radius: 6px;
outline: none;
&:focus {
border-color: var(--vscode-focusBorder);
}
&:disabled {
opacity: 0.6;
}
}
}
.content {
width: calc(100% - var(--app-content-left));
height: 100%;
position: relative;
min-width: 0;
min-height: 0;
margin-left: var(--app-content-left);
overflow: hidden;
}
.keepAliveContainer,
.keepAlivePage {
width: 100%;
height: 100%;
min-width: 0;
min-height: 0;
}
.actionRegion {
position: absolute;
z-index: 12500;
top: var(--window-safe-top);
right: max(var(--app-page-padding), calc((100% - var(--app-page-max-width)) / 2));
height: calc(var(--app-content-top) - var(--window-safe-top));
display: flex;
align-items: center;
user-select: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-webkit-touch-callout: none;
-webkit-user-drag: none;
-webkit-app-region: drag;
}
.actions {
height: var(--app-toolbar-height);
min-width: var(--app-toolbar-height);
display: flex;
align-items: center;
justify-content: center;
padding: 6px 6px;
gap: 3px;
box-shadow: 0 0px 6px 4px var(--vscode-editor-background);
transform: translateX(6px);
}
.pageActions {
display: flex;
align-items: center;
gap: 3px;
&:empty {
display: none;
}
}