From df7f506893ff08f6f5969029a2bb2c99f9568791 Mon Sep 17 00:00:00 2001 From: braks <78412429+bcakmakoglu@users.noreply.github.com> Date: Fri, 19 Aug 2022 14:25:49 +0200 Subject: [PATCH] feat(gui-v2): implement customizable theme vars --- packages/nc-gui-v2/app.vue | 17 +- packages/nc-gui-v2/assets/css/color.css | 4 - packages/nc-gui-v2/assets/css/global.css | 23 +-- packages/nc-gui-v2/assets/style.css | 19 -- .../assets/{style-v2.scss => style.scss} | 10 +- packages/nc-gui-v2/components.d.ts | 1 + .../nc-gui-v2/components/cell/Decimal.vue | 2 +- packages/nc-gui-v2/components/cell/Float.vue | 2 +- .../nc-gui-v2/components/cell/Integer.vue | 2 +- .../components/cell/attachment/Modal.vue | 4 +- .../components/cell/attachment/index.vue | 4 +- .../components/dashboard/TreeView.vue | 33 ++-- .../dashboard/settings/AppStore.vue | 2 +- .../dashboard/settings/Metadata.vue | 2 +- .../components/dashboard/settings/Misc.vue | 2 +- .../components/dashboard/settings/UIAcl.vue | 4 +- .../components/dlg/AirtableImport.vue | 4 +- .../components/general/MiniSidebar.vue | 2 +- .../components/general/ReleaseInfo.vue | 4 +- .../components/general/language/Menu.vue | 2 +- .../nc-gui-v2/components/shared-view/Form.vue | 14 +- .../smartsheet-column/EditOrAdd.vue | 6 +- .../LinkedToAnotherRecordOptions.vue | 2 +- .../smartsheet-column/SelectOptions.vue | 4 +- .../smartsheet-toolbar/ColumnFilter.vue | 8 +- .../smartsheet-toolbar/ColumnFilterMenu.vue | 4 +- .../FieldListAutoCompleteDropdown.vue | 2 +- .../smartsheet-toolbar/FieldsMenu.vue | 7 +- .../smartsheet-toolbar/MoreActions.vue | 2 +- .../smartsheet-toolbar/SearchData.vue | 2 +- .../smartsheet-toolbar/ShareView.vue | 8 +- .../smartsheet-toolbar/SharedViewList.vue | 2 +- .../smartsheet-toolbar/SortListMenu.vue | 19 +- .../nc-gui-v2/components/smartsheet/Form.vue | 24 +-- .../nc-gui-v2/components/smartsheet/Grid.vue | 17 +- .../components/smartsheet/Pagination.vue | 2 +- .../smartsheet/expanded-form/Comments.vue | 9 +- .../smartsheet/expanded-form/Header.vue | 6 +- .../smartsheet/expanded-form/index.vue | 4 +- .../components/smartsheet/sidebar/MenuTop.vue | 4 +- .../smartsheet/sidebar/toolbar/AddRow.vue | 2 +- .../smartsheet/sidebar/toolbar/LockMenu.vue | 4 +- .../sidebar/toolbar/ToggleDrawer.vue | 2 +- packages/nc-gui-v2/components/tabs/Auth.vue | 2 +- .../nc-gui-v2/components/tabs/Smartsheet.vue | 2 +- .../nc-gui-v2/components/template/Editor.vue | 2 +- .../components/virtual-cell/BelongsTo.vue | 6 +- .../components/virtual-cell/Formula.vue | 2 +- .../components/virtual-cell/HasMany.vue | 6 +- .../components/virtual-cell/ManyToMany.vue | 6 +- .../virtual-cell/components/ItemChip.vue | 4 +- .../components/ListChildItems.vue | 10 +- .../virtual-cell/components/ListItems.vue | 4 +- .../nc-gui-v2/components/webhook/Drawer.vue | 2 +- .../nc-gui-v2/components/webhook/List.vue | 4 +- packages/nc-gui-v2/composables/index.ts | 1 + .../nc-gui-v2/composables/useTheme/index.ts | 50 ++++++ packages/nc-gui-v2/lang/nl.json | 2 +- packages/nc-gui-v2/layouts/base.vue | 2 +- packages/nc-gui-v2/nuxt.config.ts | 16 +- packages/nc-gui-v2/package-lock.json | 164 +++++++++--------- packages/nc-gui-v2/package.json | 4 +- .../pages/[projectType]/[projectId]/index.vue | 4 +- .../[projectType]/[projectId]/index/index.vue | 13 +- packages/nc-gui-v2/pages/forgot-password.vue | 17 +- packages/nc-gui-v2/pages/index/index.vue | 2 +- .../pages/index/user/index/index.vue | 8 +- packages/nc-gui-v2/pages/projects/index.vue | 16 +- .../nc-gui-v2/pages/projects/index/list.vue | 2 +- packages/nc-gui-v2/pages/signin.vue | 21 +-- packages/nc-gui-v2/pages/signup/[[token]].vue | 25 +-- packages/nc-gui-v2/plugins/ant.ts | 10 +- packages/nc-gui-v2/plugins/state.ts | 17 +- packages/nc-gui-v2/plugins/vuetify.ts | 2 +- packages/nc-gui-v2/utils/colorsUtils.ts | 42 +++++ packages/nc-gui-v2/windi.config.ts | 18 +- 76 files changed, 397 insertions(+), 386 deletions(-) delete mode 100644 packages/nc-gui-v2/assets/css/color.css delete mode 100644 packages/nc-gui-v2/assets/style.css rename packages/nc-gui-v2/assets/{style-v2.scss => style.scss} (94%) create mode 100644 packages/nc-gui-v2/composables/useTheme/index.ts diff --git a/packages/nc-gui-v2/app.vue b/packages/nc-gui-v2/app.vue index 241f5f526c..92b0567a80 100644 --- a/packages/nc-gui-v2/app.vue +++ b/packages/nc-gui-v2/app.vue @@ -1,11 +1,20 @@ diff --git a/packages/nc-gui-v2/assets/css/color.css b/packages/nc-gui-v2/assets/css/color.css deleted file mode 100644 index 4788c60656..0000000000 --- a/packages/nc-gui-v2/assets/css/color.css +++ /dev/null @@ -1,4 +0,0 @@ -:root { - --primary: #00b786; - --secondary: #8ceaf6; -} diff --git a/packages/nc-gui-v2/assets/css/global.css b/packages/nc-gui-v2/assets/css/global.css index fe1fd47c04..530ad1ccb5 100644 --- a/packages/nc-gui-v2/assets/css/global.css +++ b/packages/nc-gui-v2/assets/css/global.css @@ -1,4 +1,3 @@ -@import './color.css'; html { font-size: 16px; word-spacing: 1px; @@ -8,30 +7,10 @@ html { -webkit-font-smoothing: antialiased; box-sizing: border-box; } + body { font-family: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, Vazirmatn, sans-serif; } -*, *:before, *:after { - box-sizing: border-box; - margin: 0; -} -.btn, .pointer { - cursor: pointer; -} -.primary { - color: var(--primary); -} -.secondary { - color: var(--secondary); -} -.btn-primary { - background-color: var(--primary); - color: #fff; -} -.btn-secondary { - background-color: var(--secondary); - color: #000; -} /* Apply Vazirmatn for rtl diff --git a/packages/nc-gui-v2/assets/style.css b/packages/nc-gui-v2/assets/style.css deleted file mode 100644 index 5feb4e1631..0000000000 --- a/packages/nc-gui-v2/assets/style.css +++ /dev/null @@ -1,19 +0,0 @@ -::-webkit-scrollbar { - width: .7em; - height: .7em -} - -::-webkit-scrollbar-button { - background: #77777722 -} - -::-webkit-scrollbar-track-piece { - background: #66666622 -} - -::-webkit-scrollbar-thumb { - background: #888; - border-radius: .7em; - border: .15em solid #00000000; - background-clip: padding-box; -} diff --git a/packages/nc-gui-v2/assets/style-v2.scss b/packages/nc-gui-v2/assets/style.scss similarity index 94% rename from packages/nc-gui-v2/assets/style-v2.scss rename to packages/nc-gui-v2/assets/style.scss index 1fb987a247..af194fe601 100644 --- a/packages/nc-gui-v2/assets/style-v2.scss +++ b/packages/nc-gui-v2/assets/style.scss @@ -1,9 +1,9 @@ @import 'ant-design-vue/dist/antd.variable.min.css'; -@import 'ant-design-vue/dist/antd.min.css'; :root { --header-height: 50px; --toolbar-height: 48px; + --tw-text-opacity: 1; } .ant-layout-header { @@ -28,11 +28,7 @@ main { } a { - @apply prose text-primary !underline hover:!text-pink-500; -} - -h1, h2, h3, h4, h5, h6, p, label, button, textarea, select { - @apply dark:(!text-white); + @apply !text-primary !underline hover:!text-accent; } .nc-icon { @@ -90,7 +86,7 @@ h1, h2, h3, h4, h5, h6, p, label, button, textarea, select { // for highlighting toolbar menu item .nc-active-btn > .ant-btn{ - @apply bg-primary/20 hover:(bg-primary/20); + @apply bg-primary bg-opacity-20 hover:(bg-primary bg-opacity-20); } .nc-locked-overlay { diff --git a/packages/nc-gui-v2/components.d.ts b/packages/nc-gui-v2/components.d.ts index 16738d7540..0f93284b61 100644 --- a/packages/nc-gui-v2/components.d.ts +++ b/packages/nc-gui-v2/components.d.ts @@ -19,6 +19,7 @@ declare module '@vue/runtime-core' { ACol: typeof import('ant-design-vue/es')['Col'] ACollapse: typeof import('ant-design-vue/es')['Collapse'] ACollapsePanel: typeof import('ant-design-vue/es')['CollapsePanel'] + AConfigProvider: typeof import('ant-design-vue/es')['ConfigProvider'] ADatePicker: typeof import('ant-design-vue/es')['DatePicker'] ADivider: typeof import('ant-design-vue/es')['Divider'] ADrawer: typeof import('ant-design-vue/es')['Drawer'] diff --git a/packages/nc-gui-v2/components/cell/Decimal.vue b/packages/nc-gui-v2/components/cell/Decimal.vue index 8b5c2db0ec..42c37612ee 100644 --- a/packages/nc-gui-v2/components/cell/Decimal.vue +++ b/packages/nc-gui-v2/components/cell/Decimal.vue @@ -27,7 +27,7 @@ const focus: VNodeRef = (el) => (el as HTMLInputElement)?.focus() v-if="editEnabled" :ref="focus" v-model="vModel" - class="outline-none pa-0 border-none w-full h-full prose-sm" + class="outline-none p-0 border-none w-full h-full prose-sm" type="number" step="0.1" @blur="editEnabled = false" diff --git a/packages/nc-gui-v2/components/cell/Float.vue b/packages/nc-gui-v2/components/cell/Float.vue index 4a4f4f724f..69e35c19fe 100644 --- a/packages/nc-gui-v2/components/cell/Float.vue +++ b/packages/nc-gui-v2/components/cell/Float.vue @@ -27,7 +27,7 @@ const focus: VNodeRef = (el) => (el as HTMLInputElement)?.focus() v-if="editEnabled" :ref="focus" v-model="vModel" - class="outline-none pa-0 border-none w-full h-full prose-sm" + class="outline-none p-0 border-none w-full h-full prose-sm" type="number" step="0.1" @blur="editEnabled = false" diff --git a/packages/nc-gui-v2/components/cell/Integer.vue b/packages/nc-gui-v2/components/cell/Integer.vue index ba6c1cd2e4..25d67997b9 100644 --- a/packages/nc-gui-v2/components/cell/Integer.vue +++ b/packages/nc-gui-v2/components/cell/Integer.vue @@ -31,7 +31,7 @@ function onKeyDown(evt: KeyboardEvent) { v-if="editEnabled" :ref="focus" v-model="vModel" - class="outline-none pa-0 border-none w-full h-full prose-sm" + class="outline-none p-0 border-none w-full h-full prose-sm" type="number" @blur="editEnabled = false" @keydown="onKeyDown" diff --git a/packages/nc-gui-v2/components/cell/attachment/Modal.vue b/packages/nc-gui-v2/components/cell/attachment/Modal.vue index 58d6117ff6..3cf78de1ce 100644 --- a/packages/nc-gui-v2/components/cell/attachment/Modal.vue +++ b/packages/nc-gui-v2/components/cell/attachment/Modal.vue @@ -154,8 +154,8 @@ function onClick(item: Record) { .nc-attachment-modal { .nc-attach-file { @apply select-none cursor-pointer color-transition flex items-center gap-1 border-1 p-2 rounded - @apply hover:(bg-primary/10 text-primary ring); - @apply active:(ring-pink-500 bg-primary/20); + @apply hover:(bg-primary bg-opacity-10 text-primary ring); + @apply active:(ring-pink-500 bg-primary bg-opacity-20); } .nc-attachment-item { diff --git a/packages/nc-gui-v2/components/cell/attachment/index.vue b/packages/nc-gui-v2/components/cell/attachment/index.vue index f2e47339b7..1dcabe7faf 100644 --- a/packages/nc-gui-v2/components/cell/attachment/index.vue +++ b/packages/nc-gui-v2/components/cell/attachment/index.vue @@ -109,7 +109,7 @@ const { isSharedForm } = useSmartsheetStoreOrThrow()
@@ -160,7 +160,7 @@ const { isSharedForm } = useSmartsheetStoreOrThrow()
-
+
diff --git a/packages/nc-gui-v2/components/dashboard/TreeView.vue b/packages/nc-gui-v2/components/dashboard/TreeView.vue index 9e080fda65..793ce5b03f 100644 --- a/packages/nc-gui-v2/components/dashboard/TreeView.vue +++ b/packages/nc-gui-v2/components/dashboard/TreeView.vue @@ -220,12 +220,9 @@ function openTableCreateDialog() { - + -
- +
+
@@ -424,7 +421,7 @@ function openTableCreateDialog() { } .nc-treeview-footer-item { - @apply cursor-pointer px-4 py-2 flex align-center hover:bg-gray-200/20 text-xs text-current; + @apply cursor-pointer px-4 py-2 flex items-center hover:bg-gray-200/20 text-xs text-current; } :deep(.nc-filter-input input::placeholder) { @@ -460,7 +457,7 @@ function openTableCreateDialog() { } .sortable-chosen { - @apply !bg-primary/25 text-primary; + @apply !bg-primary bg-opacity-25 text-primary; } } @@ -469,20 +466,20 @@ function openTableCreateDialog() { } .nc-tree-item svg { - @apply text-primary/60; + @apply text-primary text-opacity-60; } .nc-tree-item.active { - @apply !text-primary font-weight-bold after:(!opacity-20); - @apply border-r-3 border-indigo-500; + @apply text-primary font-weight-bold after:(!opacity-20); + @apply border-r-3 border-primary; svg { - @apply !text-primary; + @apply text-primary !text-opacity-100; } } .nc-tree-item:hover { - @apply !text-grey after:(!opacity-5); + @apply text-primary after:(!opacity-5); } :deep(.nc-filter-input) { diff --git a/packages/nc-gui-v2/components/dashboard/settings/AppStore.vue b/packages/nc-gui-v2/components/dashboard/settings/AppStore.vue index b649427120..327080ccf1 100644 --- a/packages/nc-gui-v2/components/dashboard/settings/AppStore.vue +++ b/packages/nc-gui-v2/components/dashboard/settings/AppStore.vue @@ -130,7 +130,7 @@ onMounted(async () => { />
-
+
{{ app.title }} {{ app.description }}
diff --git a/packages/nc-gui-v2/components/dashboard/settings/Metadata.vue b/packages/nc-gui-v2/components/dashboard/settings/Metadata.vue index 909fcad2a3..a1b992cac0 100644 --- a/packages/nc-gui-v2/components/dashboard/settings/Metadata.vue +++ b/packages/nc-gui-v2/components/dashboard/settings/Metadata.vue @@ -73,7 +73,7 @@ const columns = [