@layer fc.components {
.fc-git {
display: flex;
flex-direction: column;
gap: var(--fc-space-2);
background-color: var(--fc-color-bg-surface);
border: var(--fc-border-width-thin) solid var(--fc-color-border-subtle);
border-radius: var(--fc-radius-md);
overflow: hidden;
}
.fc-git__header {
display: flex;
align-items: baseline;
gap: var(--fc-space-2);
flex-wrap: wrap;
padding-block: var(--fc-space-2);
padding-inline: var(--fc-space-3);
background-color: var(--fc-color-bg-subtle);
border-block-end: var(--fc-border-width-thin) solid var(--fc-color-border-subtle);
}
.fc-git__branch {
font-family: var(--fc-font-family-mono);
font-size: var(--fc-font-size-sm);
font-weight: var(--fc-font-weight-semibold);
color: var(--fc-color-text-default);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
min-inline-size: 0;
}
.fc-git__summary {
font-size: var(--fc-font-size-xs);
color: var(--fc-color-text-muted);
font-variant-numeric: tabular-nums;
}
.fc-git__files {
display: flex;
flex-direction: column;
overflow-y: auto;
max-block-size: 24rem;
}
.fc-git__empty {
margin: 0;
padding: var(--fc-space-4) var(--fc-space-3);
color: var(--fc-color-text-muted);
font-size: var(--fc-font-size-sm);
text-align: center;
}
.fc-git__row {
display: flex;
align-items: center;
gap: var(--fc-space-2);
padding-block: var(--fc-space-2);
padding-inline: var(--fc-space-3);
min-block-size: var(--fc-size-target-min);
border-block-end: var(--fc-border-width-thin) solid var(--fc-color-border-subtle);
cursor: pointer;
}
.fc-git__row:last-child {
border-block-end: none;
}
.fc-git__row:hover {
background-color: var(--fc-color-bg-subtle);
}
.fc-git__row[data-fc-selected="true"] {
background-color: var(--fc-color-selected-bg);
color: var(--fc-color-selected-fg);
box-shadow: inset 2px 0 0 0 var(--fc-color-selected-fg);
}
.fc-git__file-name {
flex: 1 1 auto;
min-inline-size: 0;
font-family: var(--fc-font-family-mono);
font-size: var(--fc-font-size-sm);
color: var(--fc-color-text-default);
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.fc-git__file-dir {
color: var(--fc-color-text-muted);
}
.fc-git__stages {
display: inline-flex;
align-items: center;
gap: var(--fc-space-1);
flex: 0 0 auto;
}
.fc-git__badge {
padding-block: 0 var(--fc-space-0-5);
padding-inline: var(--fc-space-2);
border: var(--fc-border-width-thin) solid currentColor;
border-radius: var(--fc-radius-full);
font-family: var(--fc-font-family-mono);
font-size: var(--fc-font-size-xs);
line-height: var(--fc-line-height-tight);
text-transform: lowercase;
}
.fc-git__badge[data-fc-state="modified"] {
color: var(--fc-color-warning-text);
}
.fc-git__badge[data-fc-state="added"],
.fc-git__badge[data-fc-state="untracked"] {
color: var(--fc-color-success-text);
}
.fc-git__badge[data-fc-state="deleted"] {
color: var(--fc-color-danger-text);
}
.fc-git__badge[data-fc-state="renamed"] {
color: var(--fc-color-info-text);
}
.fc-git__badge[data-fc-state="conflicted"] {
color: var(--fc-color-danger-text);
font-weight: var(--fc-font-weight-semibold);
}
.fc-git__stage-button {
padding-block: var(--fc-space-0-5);
padding-inline: var(--fc-space-2);
min-block-size: var(--fc-size-target-min);
background-color: transparent;
border: var(--fc-border-width-thin) solid var(--fc-color-border-default);
border-radius: var(--fc-radius-sm);
color: var(--fc-color-text-default);
font-family: var(--fc-font-family-sans);
font-size: var(--fc-font-size-xs);
cursor: pointer;
}
.fc-git__stage-button:hover {
background-color: var(--fc-color-bg-subtle);
}
.fc-git__stage-button:focus-visible {
outline: var(--fc-border-width-focus) solid var(--fc-color-focus-ring);
outline-offset: var(--fc-space-0-5);
}
.fc-git__stat {
display: inline-flex;
gap: var(--fc-space-2);
flex: 0 0 auto;
font-family: var(--fc-font-family-mono);
font-size: var(--fc-font-size-xs);
font-variant-numeric: tabular-nums;
}
.fc-git__stat-add {
color: var(--fc-color-success-text);
}
.fc-git__stat-remove {
color: var(--fc-color-danger-text);
}
.fc-git__row:focus-visible {
outline: var(--fc-border-width-focus) solid var(--fc-color-focus-ring);
outline-offset: calc(-1 * var(--fc-border-width-focus));
}
@media (forced-colors: active) {
.fc-git,
.fc-git__header,
.fc-git__row {
background-color: Canvas;
color: CanvasText;
border-color: CanvasText;
}
.fc-git__row[data-fc-selected="true"] {
background-color: Highlight;
color: HighlightText;
forced-color-adjust: none;
}
.fc-git__badge::before {
content: attr(data-fc-glyph);
margin-inline-end: var(--fc-space-0-5);
}
}
}