From 4c2565826f76d410dc83c3053f42b520e64ef33a Mon Sep 17 00:00:00 2001 From: Prospector <6166773+Prospector@users.noreply.github.com> Date: Tue, 9 Apr 2024 11:18:56 -0700 Subject: [PATCH] Settings refactor and redesign (#1669) * new settings work * Polishing work on settings refactor * Run intl:extract * List view -> Rows view * Remove current preferred system theme indicator to make the themes fit on one line * Remove extra margin on top of navstack --- assets/images/utils/monitor-smartphone.svg | 1 + assets/styles/components.scss | 39 +- assets/styles/global.scss | 41 ++ components/ui/Checkbox.vue | 8 +- components/ui/MessageBanner.vue | 1 + components/ui/Modal.vue | 1 + components/ui/NavRow.vue | 8 + components/ui/NavStack.vue | 4 + components/ui/NavStackItem.vue | 4 + components/ui/Pagination.vue | 1 + composables/cosmetics.js | 1 + composables/theme.js | 5 +- layouts/default.vue | 18 +- locales/en-US/index.json | 151 ++++- pages/dashboard/projects.vue | 1 + pages/settings.vue | 137 +++-- pages/settings/account.vue | 8 - pages/settings/index.vue | 658 ++++++++++++++++++--- pages/settings/pats.vue | 8 +- pages/settings/profile.vue | 246 ++++++++ pages/user/[id].vue | 269 +++------ utils/common-messages.ts | 10 +- 22 files changed, 1242 insertions(+), 378 deletions(-) create mode 100644 assets/images/utils/monitor-smartphone.svg create mode 100644 pages/settings/profile.vue diff --git a/assets/images/utils/monitor-smartphone.svg b/assets/images/utils/monitor-smartphone.svg new file mode 100644 index 00000000..0494f32d --- /dev/null +++ b/assets/images/utils/monitor-smartphone.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/styles/components.scss b/assets/styles/components.scss index 12020304..156bf2be 100644 --- a/assets/styles/components.scss +++ b/assets/styles/components.scss @@ -25,6 +25,7 @@ border-radius: var(--size-rounded-card); padding: var(--spacing-card-lg); gap: var(--spacing-card-md); + outline: 1px solid transparent; .label { color: var(--color-heading); @@ -65,6 +66,7 @@ margin-bottom: var(--spacing-card-md); outline: 2px solid transparent; + outline-offset: -2px; box-shadow: var(--shadow-card); @@ -687,7 +689,7 @@ tr.button-transparent { } color: var(--color-text) !important; - outline: 2px solid transparent; + outline: none !important; input { background: transparent; @@ -706,6 +708,7 @@ tr.button-transparent { cursor: pointer; padding-left: 7px; padding-top: 10px; + outline: 2px solid transparent; transition: background-color 0.1s ease-in-out; @@ -753,8 +756,13 @@ tr.button-transparent { border-bottom-left-radius: var(--size-rounded-sm); border-bottom-right-radius: var(--size-rounded-sm); box-shadow: var(--shadow-inset-sm), var(--shadow-floating); + outline: 2px solid transparent; .multiselect__element { + .multiselect__option { + outline: 1px solid transparent; + } + .multiselect__option--highlight { background: var(--color-button-bg-active); color: var(--color-text-dark); @@ -894,31 +902,6 @@ tr.button-transparent { } } -.card { - position: relative; - min-height: var(--font-size-2xl); - padding: var(--spacing-card-md) var(--spacing-card-lg); - - background: var(--color-raised-bg); - border-radius: var(--size-rounded-card); - outline: 2px solid transparent; - - margin-bottom: var(--spacing-card-md); - - box-shadow: var(--shadow-card); - - .card__overlay { - position: absolute; - top: 1rem; - right: 1rem; - display: flex; - flex-direction: column; - align-items: flex-end; - grid-gap: 0.5rem; - z-index: 2; - } -} - .card-divider { background-color: var(--color-divider); border: none; @@ -1082,6 +1065,7 @@ button { transition: box-shadow 0.1s ease-in-out; overflow: hidden; max-width: 100%; + outline: 2px solid transparent; .text-input-wrapper__before { display: flex; @@ -1102,9 +1086,10 @@ button { textarea { border-radius: 0; background-color: transparent; - box-shadow: unset; + box-shadow: unset !important; padding-left: 0; flex-grow: 1; + outline: none !important; } &:focus, diff --git a/assets/styles/global.scss b/assets/styles/global.scss index fde90133..ee584048 100644 --- a/assets/styles/global.scss +++ b/assets/styles/global.scss @@ -288,6 +288,29 @@ html { --color-ad: #0d1828; } +.retro-mode { + --color-bg: #191917; + --color-raised-bg: #1d1e1b; + --color-button-bg: #3a3b38; + --color-base: #c3c4b3; + --color-secondary: #777a74; + --color-contrast: #e6e2d1; + + --color-brand: #4d9227; + --color-brand-highlight: #25421e; + --color-ad: var(--color-brand-highlight); + --color-ad-raised: var(--color-brand); + --color-ad-contrast: black; + --color-ad-highlight: var(--color-brand); + + --color-red: rgb(232, 32, 13); + --color-orange: rgb(232, 141, 13); + --color-green: rgb(60, 219, 54); + --color-blue: rgb(9, 159, 239); + --color-purple: rgb(139, 129, 230); + --color-gray: #718096; +} + body { // Defaults background-color: var(--color-bg); @@ -457,3 +480,21 @@ a:focus-visible, outline: 0.25rem solid #ea80ff; border-radius: 0.25rem; } + +// OMORPHIA FIXES +.card { + outline-offset: -2px; +} + +input { + outline: 2px solid transparent !important; +} + +.button-animation { + transition: opacity 0.5s ease-in-out, filter 0.2s ease-in-out, transform 0.05s ease-in-out, + outline-width 0.2s ease-in-out; +} + +.button-transparent { + box-shadow: none; +} diff --git a/components/ui/Checkbox.vue b/components/ui/Checkbox.vue index 75816d2a..ccf14a72 100644 --- a/components/ui/Checkbox.vue +++ b/components/ui/Checkbox.vue @@ -1,7 +1,7 @@