Files
opencode/packages/web/src/components/share/content-diff.module.css
2025-07-11 14:24:20 -04:00

171 lines
3.9 KiB
CSS

.root {
display: flex;
flex-direction: column;
border: 1px solid var(--sl-color-divider);
background-color: var(--sl-color-bg-surface);
border-radius: 0.25rem;
[data-component="desktop"] {
display: block;
}
[data-component="mobile"] {
display: none;
}
[data-component="diff-block"] {
display: flex;
flex-direction: column;
}
[data-component="diff-row"] {
display: grid;
grid-template-columns: 1fr 1fr;
align-items: stretch;
[data-slot="before"],
[data-slot="after"] {
position: relative;
display: flex;
flex-direction: column;
overflow-x: visible;
min-width: 0;
align-items: stretch;
padding: 0 1rem 0 2.2ch;
&[data-diff-type="removed"] {
background-color: var(--sl-color-red-low);
pre {
--shiki-dark-bg: var(--sl-color-red-low) !important;
background-color: var(--sl-color-red-low) !important;
}
&::before {
content: "-";
position: absolute;
left: 0.6ch;
top: 1px;
user-select: none;
color: var(--sl-color-red-high);
}
}
&[data-diff-type="added"] {
background-color: var(--sl-color-green-low);
pre {
--shiki-dark-bg: var(--sl-color-green-low) !important;
background-color: var(--sl-color-green-low) !important;
}
&::before {
content: "+";
position: absolute;
user-select: none;
color: var(--sl-color-green-high);
left: 0.6ch;
top: 1px;
}
}
}
[data-slot="before"] {
border-right: 1px solid var(--sl-color-divider);
}
}
/* .diff > .row:first-child [data-section="cell"]:first-child { */
/* padding-top: 0.5rem; */
/* } */
/**/
/* .diff > .row:last-child [data-section="cell"]:last-child { */
/* padding-bottom: 0.5rem; */
/* } */
/**/
/* [data-section="cell"] { */
/* position: relative; */
/* flex: 1; */
/* display: flex; */
/* flex-direction: column; */
/**/
/* width: 100%; */
/* padding: 0.1875rem 0.5rem 0.1875rem 2.2ch; */
/* margin: 0; */
/**/
/* &[data-display-mobile="true"] { */
/* display: none; */
/* } */
/**/
/* pre { */
/* --shiki-dark-bg: var(--sl-color-bg-surface) !important; */
/* background-color: var(--sl-color-bg-surface) !important; */
/**/
/* white-space: pre-wrap; */
/* word-break: break-word; */
/**/
/* code > span:empty::before { */
/* content: "\00a0"; */
/* white-space: pre; */
/* display: inline-block; */
/* width: 0; */
/* } */
/* } */
/* } */
[data-component="mobile"] {
& > [data-component="diff-block"] > div {
padding: 0 1rem 0 2.2ch;
&[data-diff-type="removed"] {
position: relative;
background-color: var(--sl-color-red-low);
pre {
--shiki-dark-bg: var(--sl-color-red-low) !important;
background-color: var(--sl-color-red-low) !important;
}
&::before {
content: "-";
position: absolute;
left: 0.6ch;
top: 1px;
user-select: none;
color: var(--sl-color-red-high);
}
}
&[data-diff-type="added"] {
position: relative;
background-color: var(--sl-color-green-low);
pre {
--shiki-dark-bg: var(--sl-color-green-low) !important;
background-color: var(--sl-color-green-low) !important;
}
&::before {
content: "+";
position: absolute;
left: 0.6ch;
top: 1px;
user-select: none;
color: var(--sl-color-green-high);
}
}
}
}
@media (max-width: 40rem) {
[data-component="desktop"] {
display: none;
}
[data-component="mobile"] {
display: block;
}
}
}