Skip to content

Commit

Permalink
adding diffBlob tokens
Browse files Browse the repository at this point in the history
  • Loading branch information
lukasoppermann committed Oct 7, 2024
1 parent e138ea7 commit 0fbe73b
Show file tree
Hide file tree
Showing 11 changed files with 575 additions and 74 deletions.
5 changes: 5 additions & 0 deletions .changeset/plenty-walls-buy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@primer/primitives': minor
---

Adding diffBlob tokens
114 changes: 114 additions & 0 deletions docs/storybook/stories/Demo/Diff/Diff.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
:root {
--line-number-cell-width: 40px;
--diff-line-minimum-height: 24px;
--diff-line-height: 24px;
--diff-action-bar-position: 0;
}
* {
box-sizing: border-box;
}
.DiffContainer {
border: 1px solid var(--borderColor-default);
border-radius: var(--borderRadius-medium);
overflow: hidden;
}
.diff-header {
font-size: var(--text-body-size-medium);
background-color: var(--bgColor-muted);
padding-inline: var(--control-medium-paddingInline-condensed);
padding-block: var(--base-size-12);
border-bottom: 1px solid var(--borderColor-default);
}
.diff-line {
--diff-num-bg: var(--bgColor-muted);
--diff-line-bg: var(--bgColor-muted);
&.type-default {
--diff-num-bg: var(--bgColor-default);
--diff-num-fg: var(--fgColor-default);
--diff-line-bg: var(--bgColor-default);
--diff-line-fg: var(--fgColor-default);
--diff-word-bg: var(--bgColor-default);
}
&.type-hunk {
--diff-num-bg: var(--diffBlob-hunk-bgColor-num-rest);
--diff-num-fg: var(--diffBlob-hunk-fgColor-num-rest);
--diff-line-bg: var(--diffBlob-hunk-bgColor-line);
--diff-line-fg: var(--diffBlob-hunk-fgColor-text);
--diff-word-bg: var(--diffBlob-hunk-bgColor-word);
}
&.type-addition {
--diff-num-bg: var(--diffBlob-addition-bgColor-num);
--diff-num-fg: var(--diffBlob-addition-fgColor-num);
--diff-line-bg: var(--diffBlob-addition-bgColor-line);
--diff-line-fg: var(--diffBlob-addition-fgColor-text);
--diff-word-bg: var(--diffBlob-addition-bgColor-word);
--diff-word-fg: var(--diffBlob-addition-fgColor-word);
}
&.type-deletion {
--diff-num-bg: var(--diffBlob-deletion-bgColor-num);
--diff-num-fg: var(--diffBlob-deletion-fgColor-num);
--diff-line-bg: var(--diffBlob-deletion-bgColor-line);
--diff-line-fg: var(--diffBlob-deletion-fgColor-text);
--diff-word-bg: var(--diffBlob-deletion-bgColor-word);
--diff-word-fg: var(--diffBlob-deletion-fgColor-word);
}
border-spacing: 0;
border-collapse: collapse;
.diff-line-word {
color: var(--diff-word-fg);
background-color: var(--diff-word-bg);
}
.diff-line-number {
width: 1%;
min-width: 50px;
line-height: 100%;
padding-right: var(--base-size-8, 8px) !important;
text-align: right;
cursor: pointer;
-webkit-user-select: none;
user-select: none;
background-color: var(--diff-num-bg);
color: var(--diffBlob-hunk-fgColor-num-rest);
code {
line-height: var(--diff-line-height);
}
}
&.type-hunk {
.diff-line-number {
&:hover {
background-color: var(--diffBlob-hunk-bgColor-num-hover);
color: var(--diffBlob-hunk-fgColor-num-hover);
}
}
}
.diff-text-cell {
position: relative;
padding-right: var(--diff-line-height);
padding-left: var(--diff-line-height);
background-color: var(--diff-line-bg);
code {
color: var(--diff-line-fg);
div {
overflow: hidden;
word-wrap: break-word;
white-space: pre-wrap;
}
}
}
code {
font-family: var(
--fontStack-monospace,
ui-monospace,
SFMono-Regular,
SF Mono,
Menlo,
Consolas,
Liberation Mono,
monospace
);
font-size: 12px;
background-color: transparent;
padding: 0;
vertical-align: middle;
}
}
65 changes: 65 additions & 0 deletions docs/storybook/stories/Demo/Diff/Diff.stories.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
import React from 'react'
import './Diff.css'
import {Box, Link} from '@primer/react'

export default {
title: 'Testing/Diff',
parameters: {
controls: {hideNoControlsWarning: true},
options: {
showPanel: false,
},
},
}

type DiffLineType = 'hunk' | 'addition' | 'deletion' | 'default' | 'empty'

const DiffLine = ({
lineNumber = 11,
text = '// TODO: <span class="diff-line-word">1234</span> example line',
type = 'default',
}: {
lineNumber?: number
text?: string
type?: DiffLineType
}) => {
return (
<table width="100%" className={`diff-line type-${type}`}>
<tbody>
<tr>
<td aria-label={`Line ${lineNumber}`} data-line-number="true" className="diff-line-number" colSpan={1}>
<code>{type !== 'empty' ? lineNumber : ' '}</code>
</td>
<td className="diff-text-cell">
{type !== 'empty' && (
<code>
<div dangerouslySetInnerHTML={{__html: text}}></div>
</code>
)}
</td>
</tr>
</tbody>
</table>
)
}

const DiffHeader = ({filename = '.changeset/plenty-walls-buy.md'}: {filename?: string}) => {
return (
<div className="diff-header">
<Link muted>{filename}</Link>
</div>
)
}

export const Diff = () => {
return (
<div className="DiffContainer">
<DiffHeader />
<DiffLine lineNumber={11} type="hunk" />
<DiffLine lineNumber={12} type="addition" />
<DiffLine lineNumber={13} type="deletion" />
<DiffLine type="empty" />
<DiffLine lineNumber={14} type="default" />
</div>
)
}
108 changes: 92 additions & 16 deletions src/tokens/functional/color/dark/app-dark.json5
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,18 @@
},
},
},
word: {
$value: '{fgColor.default}',
$type: 'color',
$extensions: {
'org.primer.figma': {
collection: 'mode',
mode: 'light',
group: 'component',
scopes: ['fgColor'],
},
},
},
num: {
$value: '{fgColor.default}',
$type: 'color',
Expand Down Expand Up @@ -89,7 +101,7 @@
alpha: 0.3,
},
line: {
$value: '{base.color.green.4}',
$value: '{bgColor.success.muted}',
$type: 'color',
$extensions: {
'org.primer.figma': {
Expand All @@ -102,30 +114,29 @@
alpha: 0.15,
mix: null,
},
word: {
$value: '{base.color.green.4}',
},
},
deletion: {
fgColor: {
text: {
$value: '{fgColor.default}',
$type: 'color',
$extensions: {
'org.primer.figma': {
collection: 'mode',
mode: 'dark',
group: 'component',
scopes: ['bgColor'],
scopes: ['fgColor'],
},
},
alpha: 0.4,
},
},
},
deletion: {
fgColor: {
text: {
word: {
$value: '{fgColor.default}',
$type: 'color',
$extensions: {
'org.primer.figma': {
collection: 'mode',
mode: 'dark',
mode: 'light',
group: 'component',
scopes: ['fgColor'],
},
Expand Down Expand Up @@ -159,7 +170,7 @@
alpha: 0.3,
},
line: {
$value: '{base.color.red.4}',
$value: '{bgColor.danger.muted}',
$type: 'color',
$extensions: {
'org.primer.figma': {
Expand All @@ -169,7 +180,6 @@
scopes: ['bgColor'],
},
},
alpha: 0.15,
mix: null,
},
word: {
Expand All @@ -188,19 +198,85 @@
},
},
hunk: {
bgColor: {
fgColor: {
text: {
$value: '{fgColor.muted}',
$type: 'color',
$extensions: {
'org.primer.figma': {
collection: 'mode',
mode: 'light',
group: 'component',
scopes: ['fgColor'],
},
},
},
num: {
$value: '{borderColor.accent.muted}',
rest: {
$value: '{fgColor.default}',
$type: 'color',
$extensions: {
'org.primer.figma': {
collection: 'mode',
mode: 'light',
group: 'component',
scopes: ['fgColor'],
},
},
},
hover: {
$value: '{fgColor.onEmphasis}',
$type: 'color',
$extensions: {
'org.primer.figma': {
collection: 'mode',
mode: 'light',
group: 'component',
scopes: ['fgColor'],
},
},
},
},
},
bgColor: {
line: {
$value: '{bgColor.accent.muted}',
$type: 'color',
$extensions: {
'org.primer.figma': {
collection: 'mode',
mode: 'dark',
mode: 'light',
group: 'component',
scopes: ['bgColor'],
},
},
},
num: {
rest: {
$value: '{base.color.blue.8}',
$type: 'color',
$extensions: {
'org.primer.figma': {
collection: 'mode',
mode: 'light',
group: 'component',
scopes: ['bgColor'],
},
},
},
hover: {
$value: '{bgColor.accent.emphasis}',
$type: 'color',
$extensions: {
'org.primer.figma': {
collection: 'mode',
mode: 'light',
group: 'component',
scopes: ['bgColor'],
},
},
},
},
},
},
expander: {
Expand Down
Loading

0 comments on commit 0fbe73b

Please sign in to comment.