From 754570a9ecdb03cbb7a214ce27f02cc52b75a672 Mon Sep 17 00:00:00 2001 From: Elio Struyf Date: Thu, 10 Feb 2022 22:04:47 +0100 Subject: [PATCH] #176 - Optimize styling of fields --- assets/media/styles.css | 8 ++-- .../uniforms-frontmatter/BoolField.css | 6 +-- .../uniforms-frontmatter/ErrorsField.css | 10 +++-- .../uniforms-frontmatter/ListAddField.css | 6 +-- .../uniforms-frontmatter/ListField.css | 5 ++- src/dashboardWebView/styles.css | 40 +++++++++++++------ .../DataCollection/DataCollectionField.tsx | 10 ++++- src/panelWebView/components/Metadata.tsx | 19 +++------ src/panelWebView/styles.css | 7 +++- 9 files changed, 68 insertions(+), 43 deletions(-) diff --git a/assets/media/styles.css b/assets/media/styles.css index 518f898a..ab1c2d2e 100644 --- a/assets/media/styles.css +++ b/assets/media/styles.css @@ -448,17 +448,17 @@ input:checked + .field__toggle__slider:before { .vscode-dark .metadata_field__box { background: rgba(255, 255, 255, 0.1); - border: 2px dashed rgba(255, 255, 255, 0.2); + border: 1px dashed rgba(255, 255, 255, 0.2); } .vscode-light .metadata_field__box { background: rgba(0, 0, 0, 0.1); - border: 2px dashed rgba(0, 0, 0, 0.2); + border: 1px dashed rgba(0, 0, 0, 0.2); } .metadata_field__box { background: rgba(255, 255, 255, 0.1); - border: 2px dashed rgba(255, 255, 255, 0.2); + border: 1px dashed rgba(255, 255, 255, 0.2); margin-bottom: .5rem; padding: .5rem 1rem; } @@ -634,7 +634,7 @@ input:checked + .field__toggle__slider:before { .metadata_field__preview_image__button { background-color: transparent; - border: 2px dashed var(--vscode-button-background); + border: 1px dashed var(--vscode-button-background); padding: 1.5rem; filter: brightness(85%); } diff --git a/src/components/uniforms-frontmatter/BoolField.css b/src/components/uniforms-frontmatter/BoolField.css index 9bdadbff..4776bf1e 100644 --- a/src/components/uniforms-frontmatter/BoolField.css +++ b/src/components/uniforms-frontmatter/BoolField.css @@ -18,7 +18,7 @@ left: 0; right: 0; bottom: 0; - background-color: var(--vscode-button-secondaryBackground); + background-color: var(--frontmatter-toggle-secondaryBackground, var(--vscode-button-secondaryBackground)); -webkit-transition: .4s; transition: .4s; border-radius: 34px; @@ -38,11 +38,11 @@ } input:checked + .field__toggle__slider { - background-color: var(--vscode-button-background); + background-color: var(--frontmatter-toggle-background, var(--vscode-button-background)); } input:focus + .field__toggle__slider { - box-shadow: 0 0 1px var(--vscode-button-background); + box-shadow: 0 0 1px var(--frontmatter-toggle-background, var(--vscode-button-background)); } input:checked + .field__toggle__slider:before { diff --git a/src/components/uniforms-frontmatter/ErrorsField.css b/src/components/uniforms-frontmatter/ErrorsField.css index 04a81f16..972b4119 100644 --- a/src/components/uniforms-frontmatter/ErrorsField.css +++ b/src/components/uniforms-frontmatter/ErrorsField.css @@ -1,14 +1,18 @@ .autoform-error { - background-color: var(--vscode-inputValidation-errorBackground); - border: 1px solid var(--vscode-inputValidation-errorBorder); + background-color: var(--frontmatter-error-background, var(--vscode-inputValidation-errorBackground)); + border: 1px solid var(--frontmatter-error-border, var(--vscode-inputValidation-errorBorder)); border-radius: 2px; margin: 20px 0px; padding: 10px; - color: var(--vscode-editor-foreground); + color: var(--frontmatter-error-foreground, var(--vscode-editor-foreground)); ul { margin-bottom: 0; } + + li { + text-transform: capitalize; + } } \ No newline at end of file diff --git a/src/components/uniforms-frontmatter/ListAddField.css b/src/components/uniforms-frontmatter/ListAddField.css index 195d3934..fd10c316 100644 --- a/src/components/uniforms-frontmatter/ListAddField.css +++ b/src/components/uniforms-frontmatter/ListAddField.css @@ -3,14 +3,14 @@ .autoform__list_add_field { display: flex; padding: 5px; - border: 1px dashed var(--vscode-editor-foreground); + border: 1px dashed var(--frontmatter-field-border, var(--vscode-editor-foreground)); width: 100%; justify-content: center; margin-top: .5rem; &:hover { - border-color: var(--vscode-button-background); - color: var(--vscode-button-background); + border-color: var(--frontmatter-field-borderActive, var(--vscode-button-background)); + color: var(--frontmatter-field-borderActive, var(--vscode-button-background)); cursor: pointer; } diff --git a/src/components/uniforms-frontmatter/ListField.css b/src/components/uniforms-frontmatter/ListField.css index 2942c151..e362bbb8 100644 --- a/src/components/uniforms-frontmatter/ListField.css +++ b/src/components/uniforms-frontmatter/ListField.css @@ -1,7 +1,8 @@ .autoform__list_field { - margin-bottom: 5px; - margin-top: 5px; + margin-bottom: 1rem; + margin-top: 1rem; padding: 10px; + border: 1px solid rgba(255, 255, 255, 0.2); } \ No newline at end of file diff --git a/src/dashboardWebView/styles.css b/src/dashboardWebView/styles.css index e0f051aa..6d90b32b 100644 --- a/src/dashboardWebView/styles.css +++ b/src/dashboardWebView/styles.css @@ -2,6 +2,32 @@ @import "tailwindcss/components"; @import "tailwindcss/utilities"; +:root { + /* Bool field */ + --frontmatter-toggle-background: #fafafa; + --frontmatter-toggle-secondaryBackground: #f5f5f5; + + /* Errors field */ + --frontmatter-error-background: rgba(255, 85, 0, 0.2); + --frontmatter-error-border: #f50; + --frontmatter-error-foreground: #0e131f; + + .vscode-dark { + --frontmatter-error-foreground: #fff; + } + + /* List add field */ + --frontmatter-field-border: #222733; + --frontmatter-field-borderActive: #15c2cb; + + .vscode-dark { + --frontmatter-field-border: rgba(255, 255, 255, 0.5); + --frontmatter-field-borderActive: #009aa3; + } + + /* List delete field */ +} + .loader { border-top-color: #15c2cb; @@ -80,15 +106,11 @@ .errors { > div { - @apply border border-red-400 !important; + @apply border; } ul { - @apply list-disc pl-6 pr-4 py-4 bg-opacity-50 text-vulcan-500; - } - - li { - @apply capitalize text-gray-900; + @apply list-disc pl-6 pr-4 py-4 bg-opacity-50; } } @@ -276,12 +298,6 @@ input[type="submit"] { @apply text-vulcan-500 } - - .errors { - li { - @apply text-white; - } - } } .ant-list.ant-list-bordered { diff --git a/src/panelWebView/components/DataCollection/DataCollectionField.tsx b/src/panelWebView/components/DataCollection/DataCollectionField.tsx index 14db5d2b..c6f9cafa 100644 --- a/src/panelWebView/components/DataCollection/DataCollectionField.tsx +++ b/src/panelWebView/components/DataCollection/DataCollectionField.tsx @@ -6,15 +6,17 @@ import { JSONSchemaBridge } from 'uniforms-bridge-json-schema'; import { Field, PanelSettings } from '../../../models'; import { DataCollectionControls } from './DataCollectionControls'; import { PencilIcon, TrashIcon } from '@heroicons/react/outline'; +import { VsLabel } from '../VscodeComponents'; export interface IDataCollectionFieldProps { + label: string; settings: PanelSettings; field: Field; value: any; onSubmit: (data: any) => void; } -export const DataCollectionField: React.FunctionComponent = ({ settings, field, value, onSubmit }: React.PropsWithChildren) => { +export const DataCollectionField: React.FunctionComponent = ({ label, settings, field, value, onSubmit }: React.PropsWithChildren) => { const [ schema, setSchema ] = useState(null); const [ bridge, setBridge ] = useState(null); const [ selectedIndex, setSelectedIndex ] = useState(null); @@ -77,6 +79,12 @@ export const DataCollectionField: React.FunctionComponent + +
+ {label} +
+
+
= ({settings, metadata, return ( -
- -
- {field.title || field.name} -
-
- - sendUpdate(field.name, value, parentFields)} /> -
+ sendUpdate(field.name, value, parentFields)} />
); } else { diff --git a/src/panelWebView/styles.css b/src/panelWebView/styles.css index b083a701..b4fd8631 100644 --- a/src/panelWebView/styles.css +++ b/src/panelWebView/styles.css @@ -1,10 +1,13 @@ .data_collection__field { + border: 1px dashed rgba(255, 255, 255, 0.2); + padding: .5rem 1rem; + margin-bottom: .5rem; .autoform { background-color: transparent; - border: 2px dashed var(--vscode-button-background); - padding: 1.5rem; + border: 1px dashed var(--vscode-button-background); + padding: 1rem; filter: brightness(85%); }