diff --git a/web/src/lib/components/Preview.svelte b/web/src/lib/components/Preview.svelte index 1a1090b..3f0e006 100644 --- a/web/src/lib/components/Preview.svelte +++ b/web/src/lib/components/Preview.svelte @@ -24,7 +24,7 @@ canvas { display: block; max-width: 100%; - max-height: 24rem; + max-height: 32rem; background: repeating-conic-gradient(var(--check-a) 0% 25%, var(--check-b) 0% 50%); background-size: 16px 16px; diff --git a/web/src/lib/components/ToolPage.svelte b/web/src/lib/components/ToolPage.svelte index f7a6f5b..7b5a004 100644 --- a/web/src/lib/components/ToolPage.svelte +++ b/web/src/lib/components/ToolPage.svelte @@ -83,53 +83,68 @@ {/if} - {#if !source} - (errorText = message)} /> - {:else} -
-
-

{isInfo ? 'Изображение' : 'Результат'}

- {#if status === 'processing' && !result} - - {:else} - - {/if} - {#if isInfo && info} - - {/if} -
- +
+
+

Исходник

+ {#if !source} + (errorText = message)} /> + {:else} +
+
-
+ + {/if} +
- {#if !isInfo} -
-

Параметры

- {#if tool.params.length > 0} - - - {:else} -

- У этого инструмента нет параметров — результат уже готов. -

- {/if} -
- -
+
+

{isInfo ? 'Сводка' : 'Результат'}

+ {#if !source} +
+
+ {:else if !isInfo && status === 'processing' && !result} +
+ +
+ {:else if isInfo} +
+ {#if info} + + {/if} +
+ {:else} +
+ +
+ + {/if} +
+
+ + {#if source && !isInfo} +
+

Параметры

+ {#if tool.params.length > 0} + + + {:else} +

+ У этого инструмента нет параметров — результат уже готов. +

{/if}
{/if} @@ -149,32 +164,58 @@ margin-bottom: var(--space-3); } - .layout { + .stage { display: grid; - grid-template-columns: minmax(0, 1fr) minmax(16rem, 20rem); - gap: var(--space-5); - align-items: start; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: var(--space-4); + padding: var(--space-4); + } + + .side { + display: flex; + flex-direction: column; + gap: var(--space-2); + min-width: 0; + } + + .side + .side { + border-left: 1px solid var(--border); + padding-left: var(--space-4); + } + + .side h2 { + margin-bottom: var(--space-1); + } + + .media { + flex: 1; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + min-height: 16rem; + } + + .params-card { + margin-top: var(--space-4); + padding: var(--space-4); } @media (max-width: 48rem) { - .layout { + .stage { grid-template-columns: 1fr; } + + .side + .side { + border-left: none; + padding-left: 0; + border-top: 1px solid var(--border); + padding-top: var(--space-4); + } } - .result-col h2, - .params-col h2 { - margin-bottom: var(--space-2); - } - - .reset-row { - margin-top: var(--space-3); - } - - .download-row { - margin-top: var(--space-4); - padding-top: var(--space-3); - border-top: 1px solid var(--border); + .hint { + margin-bottom: var(--space-3); } .hint { diff --git a/web/src/routes/+layout.svelte b/web/src/routes/+layout.svelte index 733d763..fcbc68f 100644 --- a/web/src/routes/+layout.svelte +++ b/web/src/routes/+layout.svelte @@ -82,9 +82,7 @@ main { flex: 1; width: 100%; - max-width: 64rem; - margin: 0 auto; - padding: var(--space-5) var(--space-4); + padding: var(--space-4) var(--space-5); } footer {