Skip to content

Commit fa18e86

Browse files
committed
feat(json-crdt-peritext-ui): 🎸 improve layout of link card
1 parent 15ba58f commit fa18e86

File tree

2 files changed

+28
-18
lines changed

2 files changed

+28
-18
lines changed

src/json-crdt-peritext-ui/__demos__/components/App.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ const markdown =
2222
'console.log(123);\n' +
2323
'```\n' +
2424
'\n\n' +
25-
'A `ClipboardEvent` is dispatched for copy, cut, and paste events, and it contains ' +
25+
'A `ClipboardEvent` is [dispatched for copy](https://github.com/users/streamich/projects/5/views/2), cut, and paste events, and it contains ' +
2626
'a `clipboardData` property of type `DataTransfer`. The `DataTransfer` object ' +
2727
'is used by the Clipboard Events API to hold multiple representations of data.';
2828

src/json-crdt-peritext-ui/plugins/toolbar/components/UrlDisplayLayout.tsx

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,17 @@ import BasicButton from 'nice-ui/lib/2-inline-block/BasicButton';
88
import {Iconista} from 'nice-ui/lib/icons/Iconista';
99
import {Split} from 'nice-ui/lib/3-list-item/Split';
1010
import {useStyles} from 'nice-ui/lib/styles/context';
11+
import {Space} from 'nice-ui/lib/3-list-item/Space';
12+
13+
const iconColumn = 40;
1114

1215
const iconClass = rule({
1316
d: 'flex',
1417
ai: 'center',
1518
jc: 'center',
16-
w: '30px',
17-
h: '30px',
18-
mr: '-2px 0 0 -2px',
19+
w: '32px',
20+
h: '32px',
21+
mr: '-4px 0',
1922
bg: 'rgba(250,250,250,.9)',
2023
bdrad: '15px',
2124
'& img': {
@@ -25,7 +28,7 @@ const iconClass = rule({
2528

2629
const domainClass = rule({
2730
...fonts.get('ui', 'mid', 1),
28-
fz: '13px',
31+
fz: '14px',
2932
maxW: '100%',
3033
whiteSpace: 'nowrap',
3134
overflow: 'hidden',
@@ -35,16 +38,19 @@ const domainClass = rule({
3538
const linkClass = rule({
3639
...fonts.get('ui', 'bold', 1),
3740
fz: '16px',
41+
pd: `0 0 0 ${iconColumn}px`,
3842
maxW: '100%',
3943
whiteSpace: 'nowrap',
4044
overflow: 'hidden',
4145
textOverflow: 'ellipsis',
4246
});
4347

4448
const buttonGroupClass = rule({
49+
w: '60px',
4550
d: 'flex',
51+
ai: 'center',
4652
flexDirection: 'row-reverse',
47-
mr: '-4px -4px 4px 4px',
53+
// mr: '-4px -4px 4px 4px',
4854
pd: '0',
4955
});
5056

@@ -62,28 +68,32 @@ export const UrlDisplayLayout: React.FC<UrlDisplayLayoutProps> = ({url}) => {
6268

6369
return (
6470
<>
65-
<Split>
66-
<FixedColumn left={36} style={{alignItems: 'center'}}>
71+
<Split style={{width: '100%', maxWidth: '100%'}}>
72+
<div style={{maxWidth: 'calc(100% - 100px)'}}>
73+
<FixedColumn left={iconColumn} style={{alignItems: 'center'}}>
74+
<div>
75+
<div className={iconClass}>
76+
<Favicon domain={domain} url={url} />
77+
</div>
78+
</div>
79+
<div className={domainClass}>{domainTruncated}</div>
80+
</FixedColumn>
6781
<div>
68-
<div className={iconClass}>
69-
{/* <div className={iconClass} style={{backgroundColor: 'red'}}> */}
70-
<Favicon domain={domain} url={url} />
82+
<div className={linkClass}>
83+
<a href={url} target='_blank' rel='noopener noreferrer'>{url}</a>
7184
</div>
7285
</div>
73-
<div className={domainClass}>{domainTruncated}</div>
74-
</FixedColumn>
86+
</div>
7587
<div className={buttonGroupClass}>
76-
<BasicButton width={32} height={32} round>
88+
<BasicButton width={40} height={40} round>
7789
<Iconista width={16} height={16} set={'lucide'} icon='copy' />
7890
</BasicButton>
79-
<BasicButton width={32} height={32} round>
91+
<Space horizontal size={-1} />
92+
<BasicButton width={40} height={40} round>
8093
<Iconista width={16} height={16} set={'lucide'} icon='external-link' />
8194
</BasicButton>
8295
</div>
8396
</Split>
84-
<div className={linkClass}>
85-
<a href={url} target='_blank' rel='noopener noreferrer'>{url}</a>
86-
</div>
8797
</>
8898
);
8999
};

0 commit comments

Comments
 (0)