Files
openidea/src/features/vcs/GitLog.module.css
T
l0ng-ai 4d503ef976 feat(vcs): support multiple repositories in the Git tool window
The Git tool window followed one globally selected repository even when multiple roots were registered. Aggregate repository logs and branches, preserve repository identity in selections, history tabs, stashes, diffs and patch commands, and capture repository targets for delayed operations and dialogs. Validate tag names against the captured repository.

Fixes #195
2026-10-29 14:30:32 +08:00

511 lines
8.2 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
.root {
flex: 1;
min-height: 0;
display: flex;
flex-direction: column;
}
.headerTabs {
min-width: 0;
border: 0;
background: none;
}
.split {
flex: 1;
min-height: 0;
}
.log {
height: 100%;
min-height: 0;
display: flex;
flex-direction: column;
min-width: 0;
}
.grow {
flex: 1;
}
/* branches */
.branches {
height: 100%;
display: flex;
min-width: 0;
}
.branchesTools {
flex: none;
display: flex;
flex-direction: column;
align-items: center;
gap: 2px;
padding: 4px 2px;
border-right: 1px solid var(--border);
}
.branchesMain {
flex: 1;
min-width: 0;
display: flex;
flex-direction: column;
}
.branchesBar,
.filters,
.detailsBar {
flex: none;
height: 32px;
display: flex;
align-items: center;
gap: 2px;
padding: 0 6px;
}
.branchSearch {
flex: 1;
min-width: 60px;
}
.branchTree {
flex: 1;
min-height: 0;
}
/* filters */
.filters {
gap: 4px;
padding: 0 8px 0 6px;
min-width: 0;
overflow: hidden;
}
.textFilter {
flex: 0 1 260px;
min-width: 100px;
}
.filterButton {
flex: none;
height: 24px;
display: inline-flex;
align-items: center;
border-radius: var(--radius-small);
color: var(--fg);
}
.filterButton:hover {
background: var(--bg-toolbar-hover);
}
.filterActive,
.filterActive:hover {
background: var(--bg-toolbar-selected);
}
.filterMain {
height: 100%;
display: inline-flex;
align-items: center;
gap: 3px;
padding: 0 6px 0 8px;
font-size: var(--fs-ui);
white-space: nowrap;
max-width: 220px;
overflow: hidden;
text-overflow: ellipsis;
}
.filterValue {
color: var(--fg-strong);
}
.filterChevron {
color: var(--fg-icon);
}
.filterClear {
height: 100%;
display: inline-flex;
align-items: center;
padding: 0 6px 0 0;
color: var(--fg-icon);
}
.filterClear:hover {
color: var(--fg-strong);
}
.filterMain:focus-visible,
.filterClear:focus-visible {
outline: 2px solid var(--focus-ring);
outline-offset: -2px;
border-radius: var(--radius-small);
}
/* commit table */
.listWrap {
flex: 1;
min-height: 0;
display: flex;
flex-direction: column;
min-width: 0;
}
.list {
flex: 1;
min-height: 0;
overflow: auto;
outline: none;
}
.row {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 22px;
display: flex;
align-items: center;
gap: 8px;
padding: 0 8px;
white-space: nowrap;
cursor: default;
font-size: var(--fs-ui);
}
/* View Options › Highlight › Current Branch (before .row:hover / .selected so they win). */
.currentBranch {
background: color-mix(in srgb, var(--accent) 7%, transparent);
}
.row:hover {
background: var(--bg-tree-hover);
}
.selected,
.selected:hover {
background: var(--bg-tree-selected-inactive);
}
.list:focus-within .selected {
background: var(--bg-tree-selected);
}
.colSubject {
flex: 1;
min-width: 0;
display: flex;
align-items: center;
gap: 6px;
overflow: hidden;
}
.colAuthor {
flex: none;
width: 130px;
overflow: hidden;
text-overflow: ellipsis;
}
.colDate {
flex: none;
width: 120px;
overflow: hidden;
text-overflow: ellipsis;
}
.colHash {
flex: none;
width: 72px;
overflow: hidden;
}
.mine {
font-weight: 600;
color: var(--fg);
}
.mergeSubject {
color: var(--fg-subtle);
}
.muted {
color: var(--fg-subtle);
}
.subject {
flex: 0 1 auto;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
color: var(--fg);
}
.headSubject {
font-weight: 600;
}
.graph {
flex: none;
fill: none;
stroke-width: 1.6;
overflow: visible;
}
.refs {
flex: none;
display: inline-flex;
align-items: center;
gap: 8px;
max-width: 50%;
overflow: hidden;
margin-left: auto;
}
.refsLeft {
margin-left: 0;
}
.ref {
display: inline-flex;
align-items: center;
gap: 4px;
font-size: var(--fs-ui);
color: var(--fg-secondary);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 180px;
}
/* IDEA's branch label: a small flag in the ref's colour. */
.ref::before {
content: "";
flex: none;
width: 7px;
height: 10px;
background: var(--ref-color);
clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 72%, 0 100%);
}
.refHead {
--ref-color: var(--warning);
}
.refLocal {
--ref-color: var(--vcs-added);
}
.refRemote {
--ref-color: var(--syn-annotation);
}
.refTag {
--ref-color: var(--fg-subtle);
}
.message {
padding: 16px;
color: var(--fg-subtle);
text-align: center;
}
/* details */
.details {
height: 100%;
display: flex;
flex-direction: column;
min-width: 0;
}
.filesPane {
height: 100%;
display: flex;
flex-direction: column;
min-height: 0;
}
.detailsCount {
padding-left: 4px;
color: var(--fg-subtle);
font-size: var(--fs-ui);
}
.fileTree {
flex: 1;
min-height: 0;
}
.fileRow {
display: flex;
align-items: center;
gap: 6px;
min-width: 0;
white-space: nowrap;
overflow: hidden;
}
.fileIcon {
flex: none;
}
.fileName {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
}
.fileDir {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
color: var(--fg-subtle);
}
.messageBox {
height: 100%;
overflow: auto;
padding: 10px 12px;
border-top: 1px solid var(--border);
-webkit-user-select: text;
user-select: text;
font-size: var(--fs-ui);
}
.subjectLine {
color: var(--fg-strong);
font-weight: 600;
white-space: pre-wrap;
word-break: break-word;
line-height: 1.5;
}
.fullMessage {
margin-top: 6px;
color: var(--fg);
white-space: pre-wrap;
word-break: break-word;
line-height: 1.5;
}
.meta {
margin-top: 10px;
color: var(--fg-subtle);
line-height: 1.5;
}
.commitEntry + .commitEntry {
margin-top: 10px;
padding-top: 10px;
border-top: 1px solid var(--border);
}
.metaCompact {
margin-top: 2px;
}
.meta .refs {
margin-left: 0;
max-width: none;
flex-wrap: wrap;
}
.hash {
font-family: var(--font-mono);
}
.linkButton {
color: var(--link);
font: inherit;
cursor: pointer;
}
.linkButton:hover {
color: var(--link-hover);
text-decoration: underline;
}
.consoleWrap {
flex: 1;
min-height: 0;
display: flex;
}
.consoleBar {
flex: none;
width: 28px;
display: flex;
flex-direction: column;
align-items: center;
padding-top: 4px;
border-right: 1px solid var(--border);
}
.console {
flex: 1;
min-width: 0;
overflow: auto;
padding: 6px 10px;
font-family: var(--font-mono);
font-size: var(--fs-small);
line-height: 18px;
-webkit-user-select: text;
cursor: text;
-webkit-user-select: text;
user-select: text;
}
.line {
white-space: pre-wrap;
word-break: break-all;
color: var(--fg-secondary);
}
.line-cmd {
color: var(--fg-emphasis);
margin-top: 4px;
}
.line-err {
color: var(--danger);
}
.line-info {
color: var(--success);
}
.time {
color: var(--fg-faint);
}
.issueLink {
color: var(--link);
text-decoration: none;
cursor: pointer;
}
.issueLink:hover {
color: var(--link-hover);
text-decoration: underline;
}
.branchFilterPopup {
width: 360px;
display: flex;
flex-direction: column;
overflow: hidden;
}
.branchFilterSearch {
flex: none;
padding: 6px 8px;
border-bottom: 1px solid var(--border-popup);
}
.branchFilterList {
display: flex;
flex-direction: column;
min-height: 0;
padding: 4px 0;
box-sizing: content-box;
}
.branchFilterListBody {
flex: 1;
}
.branchFilterSection {
padding: 0 10px;
color: var(--fg-subtle);
font-size: var(--fs-small);
}
.branchFilterRow {
flex: 1;
min-width: 0;
display: flex;
align-items: center;
gap: 8px;
}
.branchFilterIcon {
flex: none;
color: var(--fg-subtle);
}
.branchFilterCurrent {
flex: none;
color: var(--accent);
}
.branchFilterLabel {
flex: 1;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.branchFilterCheck {
flex: none;
color: var(--accent);
}
.branchFilterEmpty {
color: var(--fg-faint);
}
.branchFilterMore {
flex: none;
display: flex;
align-items: center;
padding: 6px 12px;
border-top: 1px solid var(--border-popup);
text-align: left;
}
.branchFilterMore:hover {
background: var(--bg-tree-hover);
}
/* Worktrees tab. */
.worktrees {
flex: 1;
min-height: 0;
display: flex;
flex-direction: column;
gap: 4px;
padding: 4px 6px;
}
.worktreeList {
flex: 1;
min-height: 0;
overflow: auto;
}
.colRepository {
flex: 0 0 100px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
color: var(--fg-secondary);
}