Merge pull request #1701 from gitbutlerapp/css-fixes

Css fixes
This commit is contained in:
Pavel Laptev 2023-11-24 12:19:18 +01:00 committed by GitHub
commit 2fd5c9ba7a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 125 additions and 53 deletions

View File

@ -6,10 +6,7 @@
%sveltekit.head%
</head>
<body
class="text-color-2 h-full w-full cursor-default select-none overscroll-y-none font-sans text-base"
style="height: 100vh; background-color: var(--bg-body)"
>
<body class="text-base">
<div style="display: contents">%sveltekit.body%</div>
</body>
</html>

View File

@ -120,5 +120,6 @@
: `${width}px`
: `${width}px`
: undefined}
style:cursor={direction == 'horizontal' ? 'ew-resize' : 'ns-resize'}
class="shrink-0 {classes ? ` ${classes}` : ''}"
/>

View File

@ -26,19 +26,20 @@
style:background-color={selected ? 'var(--clr-theme-container-pale)' : undefined}
bind:this={baseContents}
>
<div class="card__icon">
<div class="icon">
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="16" height="16" rx="4" fill="#FB7D61" />
<path d="M8 4L12 8L8 12L4 8L8 4Z" fill="white" />
</svg>
</div>
<div class="card__content">
<div class="card__row_1 text-base-13 font-bold">
<div class="content">
<div class="row_1 text-base-13 font-bold">
<span>Trunk</span>
<Tooltip label="Unmerged upstream commits">
<Badge count={$base$?.behind || 0} />
</Tooltip>
{#if ($base$?.behind || 0) > 0}
<Tooltip label="Unmerged upstream commits">
<Badge count={$base$?.behind || 0} />
</Tooltip>
<Tooltip label="Merge upstream commits into common base">
<Button
height="small"
@ -60,9 +61,9 @@
</Tooltip>
{/if}
</div>
<div class="card__row_2 text-base-12">
<div class="row_2 text-base-12">
{#if $base$?.remoteUrl.includes('github.com')}
<IconGithub class="h-4 w-4" />
<IconGithub class="h-3 w-3" />
{:else}
<Icon name="branch" />
{/if}
@ -76,27 +77,27 @@
display: flex;
gap: var(--space-10);
padding: var(--space-8);
border-radius: var(--m, 6px);
border-radius: var(--radius-m);
&:hover,
&:focus {
background-color: var(--clr-theme-container-pale);
}
}
.card__icon {
.icon {
flex-shrink: 0;
}
.card__content {
.content {
display: flex;
flex-direction: column;
gap: var(--space-8);
}
.card__row_1 {
.row_1 {
display: flex;
gap: var(--space-6);
align-items: center;
color: var(--clr-theme-scale-ntrl-10);
}
.card__row_2 {
.row_2 {
display: flex;
align-items: center;
gap: var(--space-4);

View File

@ -17,29 +17,40 @@
</script>
<div data-tauri-drag-region class="header">
<div class="header__sync text-base-11 font-semibold">
<IconButton
class="items-center justify-center align-top "
on:click={async (e) => {
e.preventDefault();
e.stopPropagation();
fetching = true;
await branchController.fetchFromTarget().finally(() => {
fetching = false;
prService.reload();
});
}}
>
<div class:animate-spin={fetching}>
<IconRefresh class="h-4 w-4" />
</div>
</IconButton>
<button
class="sync-btn"
on:click={async (e) => {
e.preventDefault();
e.stopPropagation();
fetching = true;
await branchController.fetchFromTarget().finally(() => {
fetching = false;
prService.reload();
});
}}
>
{#if !fetching}
<svg viewBox="0 0 12 12" class="sync-btn__icon" xmlns="http://www.w3.org/2000/svg">
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="M6 12C9.31371 12 12 9.31371 12 6C12 2.68629 9.31371 0 6 0C2.68629 0 0 2.68629 0 6C0 9.31371 2.68629 12 6 12ZM6 3.59999C4.67452 3.59999 3.6 4.67451 3.6 5.99999C3.6 7.32548 4.67452 8.39999 6 8.39999C6.71074 8.39999 7.34871 8.0918 7.78903 7.59985L8.68319 8.40014C8.02486 9.13568 7.06626 9.59999 6 9.59999C4.01178 9.59999 2.4 7.98822 2.4 5.99999C2.4 4.01177 4.01178 2.39999 6 2.39999C7.74209 2.39999 9.19517 3.63741 9.52824 5.28125H10.6719L8.88281 7.53906L7.09375 5.28125H8.29052C7.98509 4.3069 7.0751 3.59999 6 3.59999Z"
/>
</svg>
{/if}
<Tooltip label="Last fetch from upstream">
{#if $base$?.fetchedAt}
<TimeAgo date={$base$.fetchedAt} />
<span class="text-base-11 text-semibold sync-btn__label">
{#if fetching}
fetching...
{:else}
<TimeAgo date={$base$?.fetchedAt} />
{/if}
</span>
{/if}
</Tooltip>
</div>
</button>
</div>
<style lang="postcss">
@ -48,17 +59,49 @@
flex-shrink: 0;
align-items: center;
justify-content: right;
color: var(--clr-theme-scale-ntrl-50);
}
.header__sync {
.sync-btn {
display: flex;
align-items: center;
gap: var(--space-4);
padding-top: var(--space-2);
padding-bottom: var(--space-2);
gap: var(--space-6);
height: var(--space-20);
padding-left: var(--space-6);
padding-right: var(--space-6);
background: var(--clr-theme-container-pale);
border-radius: var(--radius-m);
transition: background var(--transition-fast);
&:hover {
background: var(--clr-theme-container-sub);
}
&:hover .sync-btn__icon {
fill: var(--clr-theme-scale-ntrl-40);
transform: rotate(180deg);
}
&:hover .sync-btn__label {
color: var(--clr-theme-scale-ntrl-40);
}
}
.sync-btn__icon {
fill: var(--clr-theme-scale-ntrl-50);
width: var(--space-12);
height: var(--space-12);
transform-origin: center;
transform: rotate(0deg);
transition:
fill var(--transition-fast),
transform var(--transition-slow);
}
.sync-btn__label {
display: block;
line-height: 1;
white-space: nowrap;
color: var(--clr-theme-scale-ntrl-50);
transition: color var(--transition-fast);
}
</style>

View File

@ -27,7 +27,7 @@
e.preventDefault();
}}
>
{project.title}
<span class="button__label text-base-14 text-bold">{project.title}</span>
<div class="button__icon">
<Icon name="select-chevron" />
</div>
@ -36,22 +36,24 @@
</div>
</div>
<style>
<style lang="postcss">
.wrapper {
margin-top: var(--space-10);
margin-bottom: var(--space-16);
}
.button {
display: flex;
width: 100%;
padding: var(--space-12);
background-color: var(--clr-theme-container-pale);
color: var(--clr-theme-scale-ntrl-0);
font-weight: 700;
align-items: center;
justify-content: space-between;
transition: background-color var(--transition-fast);
&:focus,
&:hover {
background-color: var(--clr-theme-container-mid);
@ -60,6 +62,13 @@
}
}
}
.button__label {
flex-grow: 1;
color: var(--clr-theme-scale-ntrl-0);
text-align: left;
}
.button__icon {
color: var(--clr-theme-scale-ntrl-60);
}

View File

@ -10,11 +10,27 @@
@tailwind utilities;
/* BOILERPLATE CSS */
body {
font-family: 'Inter', sans-serif;
user-select: none;
height: 100vh;
width: 100vw;
overflow-y: hidden;
padding: 0;
color: var(--clr-theme-scale-ntrl-40);
background-color: var(--bg-body);
/* optimise font rendering */
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
}
a,
button {
-webkit-user-select: none;
-webkit-user-drag: none;
-webkit-app-region: no-drag;
cursor: default;
}
input,

View File

@ -1,11 +1,3 @@
.text-semibold {
font-weight: 500;
}
.text-bold {
font-weight: 700;
}
/* text Base Classes */
.text-base-10 {
font-family: var(--base-font-family);
@ -144,3 +136,13 @@
letter-spacing: 0;
line-height: 100%;
}
/* modifiers */
.text-semibold {
font-weight: 600;
}
.text-bold {
font-weight: 700;
}

View File

@ -216,6 +216,9 @@
--space-48: 3rem; /* 48px / 16px = 3rem */
--space-56: 3.5rem; /* 56px / 16px = 3.5rem */
--space-64: 4rem; /* 64px / 16px = 4rem */
--transition-fast: 0.05s ease-in-out;
--transition-medium: 0.1s ease-in-out;
--transition-slow: 0.25s ease-in-out;
}
:root.dark {