diff --git a/packages/hoppscotch-common/.prettierrc.js b/packages/hoppscotch-common/.prettierrc.js index 0635c0ef0..27bf9f584 100644 --- a/packages/hoppscotch-common/.prettierrc.js +++ b/packages/hoppscotch-common/.prettierrc.js @@ -5,5 +5,4 @@ module.exports = { printWidth: 80, useTabs: false, tabWidth: 2, - plugins: ["prettier-plugin-tailwindcss"], } diff --git a/packages/hoppscotch-common/assets/scss/styles.scss b/packages/hoppscotch-common/assets/scss/styles.scss index c9d4641ba..49a4f2fe0 100644 --- a/packages/hoppscotch-common/assets/scss/styles.scss +++ b/packages/hoppscotch-common/assets/scss/styles.scss @@ -29,14 +29,6 @@ @apply antialiased; accent-color: var(--accent-color); font-variant-ligatures: common-ligatures; - - // Colors - --info-color: #ec4899; - --success-color: #10b981; - --blue-color: #3b82f6; - --warning-color: #f59e0b; - --cl-error-color: #ef4444; - --sv-error-color: #dc2626; } ::-webkit-scrollbar-track { @@ -65,7 +57,7 @@ input::placeholder, textarea::placeholder, .cm-placeholder { @apply text-secondary; - @apply opacity-50; + @apply opacity-50 #{!important}; } input, @@ -84,7 +76,7 @@ body { @apply font-medium; @apply select-none; @apply overflow-x-hidden; - @apply leading-body; + @apply leading-body #{!important}; animation: fade 300ms forwards; -webkit-tap-highlight-color: transparent; -webkit-touch-callout: none; @@ -182,7 +174,7 @@ a { @apply font-semibold; @apply px-2 py-1; @apply truncate; - @apply leading-normal; + @apply leading-body; @apply items-center; kbd { @@ -229,7 +221,7 @@ a { @apply overflow-y-auto; @apply text-body text-secondary; @apply p-2; - @apply leading-normal; + @apply leading-body; @apply focus:outline-none; scroll-behavior: smooth; @@ -261,7 +253,7 @@ a { hr { @apply border-b border-dividerLight; - @apply my-2; + @apply my-2 #{!important}; } .heading { @@ -350,44 +342,28 @@ pre.ace_editor { } } -.select-wrapper { - @apply flex flex-1; - @apply relative; - @apply after:absolute; - @apply after:flex; - @apply after:inset-y-0; - @apply after:items-center; - @apply after:justify-center; - @apply after:pointer-events-none; - @apply after:font-icon; - @apply after:text-current; - @apply after:right-3; - @apply after:content-["\e5cf"]; - @apply after:text-lg; -} - .info-response { - color: var(--info-color); + color: var(--status-info-color); } .success-response { - color: var(--success-color); + color: var(--status-success-color); } -.redir-response { - color: var(--warning-color); +.redirect-response { + color: var(--status-redirect-color); } -.cl-error-response { - color: var(--cl-error-color); +.critical-error-response { + color: var(--status-critical-error-color); } -.sv-error-response { - color: var(--sv-error-color); +.server-error-response { + color: var(--status-server-error-color); } .missing-data-response { - @apply text-secondaryLight; + color: var(--status-missing-data-color); } .toasted-container { @@ -537,12 +513,12 @@ pre.ace_editor { @apply inline-flex; @apply font-sans; @apply text-tiny; - @apply bg-divider; + @apply bg-dividerLight; @apply rounded; @apply ml-2; @apply px-1; - @apply min-w-5; - @apply min-h-5; + @apply min-w-[1.25rem]; + @apply min-h-[1.25rem]; @apply items-center; @apply justify-center; @apply border border-dividerDark; diff --git a/packages/hoppscotch-common/assets/themes/accent-themes.scss b/packages/hoppscotch-common/assets/themes/accent-themes.scss index 4460fe7c4..69b01a408 100644 --- a/packages/hoppscotch-common/assets/themes/accent-themes.scss +++ b/packages/hoppscotch-common/assets/themes/accent-themes.scss @@ -1,89 +1,89 @@ @mixin green-theme { - --accent-color: #10b981; - --accent-light-color: #34d399; - --accent-dark-color: #059669; - --accent-contrast-color: #fff; - --gradient-from-color: #a7f3d0; - --gradient-via-color: #34d399; - --gradient-to-color: #059669; + --accent-color: theme("colors.emerald.500"); + --accent-light-color: theme("colors.emerald.400"); + --accent-dark-color: theme("colors.emerald.600"); + --accent-contrast-color: theme("colors.white"); + --gradient-from-color: theme("colors.emerald.400"); + --gradient-via-color: theme("colors.emerald.500"); + --gradient-to-color: theme("colors.emerald.600"); } @mixin teal-theme { - --accent-color: #14b8a6; - --accent-light-color: #2dd4bf; - --accent-dark-color: #0d9488; - --accent-contrast-color: #fff; - --gradient-from-color: #99f6e4; - --gradient-via-color: #2dd4bf; - --gradient-to-color: #0d9488; + --accent-color: theme("colors.teal.500"); + --accent-light-color: theme("colors.teal.400"); + --accent-dark-color: theme("colors.teal.600"); + --accent-contrast-color: theme("colors.white"); + --gradient-from-color: theme("colors.teal.400"); + --gradient-via-color: theme("colors.teal.500"); + --gradient-to-color: theme("colors.teal.600"); } @mixin blue-theme { - --accent-color: #3b82f6; - --accent-light-color: #60a5fa; - --accent-dark-color: #2563eb; - --accent-contrast-color: #fff; - --gradient-from-color: #bfdbfe; - --gradient-via-color: #60a5fa; - --gradient-to-color: #2563eb; + --accent-color: theme("colors.blue.500"); + --accent-light-color: theme("colors.blue.400"); + --accent-dark-color: theme("colors.blue.600"); + --accent-contrast-color: theme("colors.white"); + --gradient-from-color: theme("colors.blue.400"); + --gradient-via-color: theme("colors.blue.500"); + --gradient-to-color: theme("colors.blue.600"); } @mixin indigo-theme { - --accent-color: #6366f1; - --accent-light-color: #818cf8; - --accent-dark-color: #4f46e5; - --accent-contrast-color: #fff; - --gradient-from-color: #c7d2fe; - --gradient-via-color: #818cf8; - --gradient-to-color: #4f46e5; + --accent-color: theme("colors.indigo.500"); + --accent-light-color: theme("colors.indigo.400"); + --accent-dark-color: theme("colors.indigo.600"); + --accent-contrast-color: theme("colors.white"); + --gradient-from-color: theme("colors.indigo.400"); + --gradient-via-color: theme("colors.indigo.500"); + --gradient-to-color: theme("colors.indigo.600"); } @mixin purple-theme { - --accent-color: #8b5cf6; - --accent-light-color: #a78bfa; - --accent-dark-color: #7c3aed; - --accent-contrast-color: #fff; - --gradient-from-color: #ddd6fe; - --gradient-via-color: #a78bfa; - --gradient-to-color: #7c3aed; + --accent-color: theme("colors.purple.500"); + --accent-light-color: theme("colors.purple.400"); + --accent-dark-color: theme("colors.purple.600"); + --accent-contrast-color: theme("colors.white"); + --gradient-from-color: theme("colors.purple.400"); + --gradient-via-color: theme("colors.purple.500"); + --gradient-to-color: theme("colors.purple.600"); } @mixin yellow-theme { - --accent-color: #f59e0b; - --accent-light-color: #fbbf24; - --accent-dark-color: #d97706; - --accent-contrast-color: #fff; - --gradient-from-color: #fde68a; - --gradient-via-color: #fbbf24; - --gradient-to-color: #d97706; + --accent-color: theme("colors.amber.500"); + --accent-light-color: theme("colors.amber.400"); + --accent-dark-color: theme("colors.amber.600"); + --accent-contrast-color: theme("colors.white"); + --gradient-from-color: theme("colors.amber.400"); + --gradient-via-color: theme("colors.amber.500"); + --gradient-to-color: theme("colors.amber.600"); } @mixin orange-theme { - --accent-color: #f97316; - --accent-light-color: #fb923c; - --accent-dark-color: #ea580c; - --accent-contrast-color: #fff; - --gradient-from-color: #fed7aa; - --gradient-via-color: #fb923c; - --gradient-to-color: #ea580c; + --accent-color: theme("colors.orange.500"); + --accent-light-color: theme("colors.orange.400"); + --accent-dark-color: theme("colors.orange.600"); + --accent-contrast-color: theme("colors.white"); + --gradient-from-color: theme("colors.orange.400"); + --gradient-via-color: theme("colors.orange.500"); + --gradient-to-color: theme("colors.orange.600"); } @mixin red-theme { - --accent-color: #ef4444; - --accent-light-color: #f87171; - --accent-dark-color: #dc2626; - --accent-contrast-color: #fff; - --gradient-from-color: #fecaca; - --gradient-via-color: #f87171; - --gradient-to-color: #dc2626; + --accent-color: theme("colors.red.500"); + --accent-light-color: theme("colors.red.400"); + --accent-dark-color: theme("colors.red.600"); + --accent-contrast-color: theme("colors.white"); + --gradient-from-color: theme("colors.red.400"); + --gradient-via-color: theme("colors.red.500"); + --gradient-to-color: theme("colors.red.600"); } @mixin pink-theme { - --accent-color: #ec4899; - --accent-light-color: #f472b6; - --accent-dark-color: #db2777; - --accent-contrast-color: #fff; - --gradient-from-color: #fbcfe8; - --gradient-via-color: #f472b6; - --gradient-to-color: #db2777; + --accent-color: theme("colors.pink.500"); + --accent-light-color: theme("colors.pink.400"); + --accent-dark-color: theme("colors.pink.600"); + --accent-contrast-color: theme("colors.white"); + --gradient-from-color: theme("colors.pink.400"); + --gradient-via-color: theme("colors.pink.500"); + --gradient-to-color: theme("colors.pink.600"); } diff --git a/packages/hoppscotch-common/assets/themes/base-themes.scss b/packages/hoppscotch-common/assets/themes/base-themes.scss index 0855abc03..d8258a347 100644 --- a/packages/hoppscotch-common/assets/themes/base-themes.scss +++ b/packages/hoppscotch-common/assets/themes/base-themes.scss @@ -1,17 +1,16 @@ @mixin base-theme { --font-sans: "Inter Variable", sans-serif; - --font-icon: "Material Symbols Rounded Variable"; --font-mono: "Roboto Mono Variable", monospace; --font-size-body: 0.75rem; - --font-size-tiny: 0.688rem; + --font-size-tiny: 0.625rem; --line-height-body: 1rem; --upper-primary-sticky-fold: 4.125rem; --upper-secondary-sticky-fold: 6.188rem; --upper-tertiary-sticky-fold: 8.25rem; --upper-fourth-sticky-fold: 10.2rem; - --upper-mobile-primary-sticky-fold: 6.625rem; - --upper-mobile-secondary-sticky-fold: 8.688rem; - --upper-mobile-sticky-fold: 10.75rem; + --upper-mobile-primary-sticky-fold: 6.75rem; + --upper-mobile-secondary-sticky-fold: 8.813rem; + --upper-mobile-sticky-fold: 10.875rem; --upper-mobile-tertiary-sticky-fold: 8.25rem; --lower-primary-sticky-fold: 3rem; --lower-secondary-sticky-fold: 5.063rem; @@ -21,67 +20,121 @@ } @mixin light-theme { - --primary-color: #ffffff; - --primary-light-color: #f9fafb; - --primary-dark-color: #f3f4f6; + --primary-color: theme("colors.white"); + --primary-light-color: theme("colors.gray.50"); + --primary-dark-color: theme("colors.gray.100"); --primary-contrast-color: #fdfdfd; - --secondary-color: #6b7280; - --secondary-light-color: #9ca3af; - --secondary-dark-color: #111827; + --secondary-color: theme("colors.gray.500"); + --secondary-light-color: theme("colors.gray.400"); + --secondary-dark-color: theme("colors.gray.900"); - --divider-color: #f3f4f6; - --divider-light-color: #f3f4f6; - --divider-dark-color: #d1d5db; + --divider-color: theme("colors.gray.100"); + --divider-light-color: theme("colors.gray.100"); + --divider-dark-color: theme("colors.gray.300"); + + --banner-info-color: theme("colors.stone.100"); + --banner-warning-color: theme("colors.yellow.100"); + --banner-error-color: theme("colors.red.100"); + + --tooltip-color: theme("colors.neutral.800"); + --popover-color: theme("colors.white"); + + --method-get-color: theme("colors.green.500"); + --method-post-color: theme("colors.amber.500"); + --method-put-color: theme("colors.blue.500"); + --method-patch-color: theme("colors.purple.500"); + --method-delete-color: theme("colors.red.500"); + --method-head-color: theme("colors.lime.500"); + --method-options-color: theme("colors.pink.500"); + --method-default-color: theme("colors.gray.500"); + + --status-info-color: theme("colors.blue.500"); + --status-success-color: theme("colors.green.500"); + --status-redirect-color: theme("colors.amber.500"); + --status-critical-error-color: theme("colors.red.500"); + --status-server-error-color: theme("colors.rose.500"); + --status-missing-data-color: theme("colors.slate.500"); - --info-color: #fef3c7; - --warning-color: #fef9c3; - --error-color: #fee2e2; - --tooltip-color: #262626; - --popover-color: #ffffff; --editor-theme: "textmate"; } @mixin dark-theme { --primary-color: #181818; --primary-light-color: #1c1c1e; - --primary-dark-color: #262626; - --primary-contrast-color: #171717; + --primary-dark-color: theme("colors.neutral.800"); + --primary-contrast-color: theme("colors.neutral.900"); - --secondary-color: #a3a3a3; - --secondary-light-color: #737373; - --secondary-dark-color: #fafafa; + --secondary-color: theme("colors.neutral.400"); + --secondary-light-color: theme("colors.neutral.500"); + --secondary-dark-color: theme("colors.zinc.50"); - --divider-color: #262626; + --divider-color: #1f1f1f; --divider-light-color: #1f1f1f; - --divider-dark-color: #2d2d2d; + --divider-dark-color: theme("colors.zinc.800"); - --info-color: #292524; - --warning-color: #854d0e; - --error-color: #991b1b; - --tooltip-color: #f5f5f5; + --banner-info-color: theme("colors.stone.800"); + --banner-warning-color: theme("colors.yellow.800"); + --banner-error-color: theme("colors.red.800"); + + --tooltip-color: theme("colors.neutral.100"); --popover-color: #1b1b1b; + + --method-get-color: theme("colors.emerald.500"); + --method-post-color: theme("colors.yellow.500"); + --method-put-color: theme("colors.sky.500"); + --method-patch-color: theme("colors.violet.500"); + --method-delete-color: theme("colors.rose.500"); + --method-head-color: theme("colors.teal.500"); + --method-options-color: theme("colors.indigo.500"); + --method-default-color: theme("colors.neutral.500"); + + --status-info-color: theme("colors.blue.500"); + --status-success-color: theme("colors.green.500"); + --status-redirect-color: theme("colors.amber.500"); + --status-critical-error-color: theme("colors.red.500"); + --status-server-error-color: theme("colors.rose.500"); + --status-missing-data-color: theme("colors.slate.500"); + --editor-theme: "merbivore_soft"; } @mixin black-theme { --primary-color: #0f0f0f; - --primary-light-color: #171717; + --primary-light-color: theme("colors.neutral.900"); --primary-dark-color: #181818; --primary-contrast-color: #0f0f0f; - --secondary-color: #a3a3a3; - --secondary-light-color: #737373; - --secondary-dark-color: #f5f5f5; + --secondary-color: theme("colors.neutral.400"); + --secondary-light-color: theme("colors.neutral.500"); + --secondary-dark-color: theme("colors.neutral.50"); - --divider-color: #1c1c1e; - --divider-light-color: #181818; - --divider-dark-color: #323232; + --divider-color: theme("colors.neutral.900"); + --divider-light-color: theme("colors.neutral.900"); + --divider-dark-color: theme("colors.zinc.800"); + + --banner-info-color: theme("colors.stone.900"); + --banner-warning-color: theme("colors.yellow.900"); + --banner-error-color: theme("colors.red.900"); + + --tooltip-color: theme("colors.neutral.100"); + --popover-color: theme("colors.stone.950"); + + --method-get-color: theme("colors.emerald.500"); + --method-post-color: theme("colors.yellow.500"); + --method-put-color: theme("colors.sky.500"); + --method-patch-color: theme("colors.violet.500"); + --method-delete-color: theme("colors.rose.500"); + --method-head-color: theme("colors.teal.500"); + --method-options-color: theme("colors.indigo.500"); + --method-default-color: theme("colors.zinc.500"); + + --status-info-color: theme("colors.blue.500"); + --status-success-color: theme("colors.green.500"); + --status-redirect-color: theme("colors.amber.500"); + --status-critical-error-color: theme("colors.red.500"); + --status-server-error-color: theme("colors.rose.500"); + --status-missing-data-color: theme("colors.slate.500"); - --info-color: #1c1917; - --warning-color: #713f12; - --error-color: #7f1d1d; - --tooltip-color: #f5f5f5; - --popover-color: #0f0f0f; --editor-theme: "twilight"; } diff --git a/packages/hoppscotch-common/assets/themes/editor-themes.scss b/packages/hoppscotch-common/assets/themes/editor-themes.scss index f191c6a04..52a9836a3 100644 --- a/packages/hoppscotch-common/assets/themes/editor-themes.scss +++ b/packages/hoppscotch-common/assets/themes/editor-themes.scss @@ -1,41 +1,41 @@ -@mixin dark-editor-theme { - --editor-type-color: #a78bfa; - --editor-name-color: #60a5fa; - --editor-operator-color: #818cf8; - --editor-invalid-color: #f87171; - --editor-separator-color: #9ca3af; - --editor-meta-color: #9ca3af; - --editor-variable-color: #34d399; - --editor-link-color: #22d3ee; - --editor-process-color: #e879f9; - --editor-constant-color: #a78bfa; - --editor-keyword-color: #f472b6; +@mixin light-editor-theme { + --editor-type-color: theme("colors.violet.600"); + --editor-name-color: theme("colors.red.600"); + --editor-operator-color: theme("colors.indigo.600"); + --editor-invalid-color: theme("colors.red.600"); + --editor-separator-color: theme("colors.gray.600"); + --editor-meta-color: theme("colors.gray.600"); + --editor-variable-color: theme("colors.emerald.600"); + --editor-link-color: theme("colors.cyan.600"); + --editor-process-color: theme("colors.blue.600"); + --editor-constant-color: theme("colors.fuchsia.600"); + --editor-keyword-color: theme("colors.pink.600"); } -@mixin light-editor-theme { - --editor-type-color: #7c3aed; - --editor-name-color: #dc2626; - --editor-operator-color: #4f46e5; - --editor-invalid-color: #dc2626; - --editor-separator-color: #4b5563; - --editor-meta-color: #4b5563; - --editor-variable-color: #059669; - --editor-link-color: #0891b2; - --editor-process-color: #2563eb; - --editor-constant-color: #c026d3; - --editor-keyword-color: #db2777; +@mixin dark-editor-theme { + --editor-type-color: theme("colors.violet.400"); + --editor-name-color: theme("colors.blue.400"); + --editor-operator-color: theme("colors.indigo.400"); + --editor-invalid-color: theme("colors.red.400"); + --editor-separator-color: theme("colors.gray.400"); + --editor-meta-color: theme("colors.gray.400"); + --editor-variable-color: theme("colors.emerald.400"); + --editor-link-color: theme("colors.cyan.400"); + --editor-process-color: theme("colors.fuchsia.400"); + --editor-constant-color: theme("colors.violet.400"); + --editor-keyword-color: theme("colors.pink.400"); } @mixin black-editor-theme { - --editor-type-color: #a78bfa; - --editor-name-color: #e879f9; - --editor-operator-color: #818cf8; - --editor-invalid-color: #f87171; - --editor-separator-color: #9ca3af; - --editor-meta-color: #9ca3af; - --editor-variable-color: #34d399; - --editor-link-color: #22d3ee; - --editor-process-color: #a78bfa; - --editor-constant-color: #60a5fa; - --editor-keyword-color: #f472b6; + --editor-type-color: theme("colors.violet.400"); + --editor-name-color: theme("colors.fuchsia.400"); + --editor-operator-color: theme("colors.indigo.400"); + --editor-invalid-color: theme("colors.red.400"); + --editor-separator-color: theme("colors.gray.400"); + --editor-meta-color: theme("colors.gray.400"); + --editor-variable-color: theme("colors.emerald.400"); + --editor-link-color: theme("colors.cyan.400"); + --editor-process-color: theme("colors.violet.400"); + --editor-constant-color: theme("colors.blue.400"); + --editor-keyword-color: theme("colors.pink.400"); } diff --git a/packages/hoppscotch-common/locales/en.json b/packages/hoppscotch-common/locales/en.json index 29fce808d..1749f60ae 100644 --- a/packages/hoppscotch-common/locales/en.json +++ b/packages/hoppscotch-common/locales/en.json @@ -345,7 +345,7 @@ "authorization": "The authorization header will be automatically generated when you send the request.", "generate_documentation_first": "Generate documentation first", "network_fail": "Unable to reach the API endpoint. Check your network connection or select a different Interceptor and try again.", - "offline": "You're using Hoppscotch offline. Updates will sync when you're online, based on workspace settings", + "offline": "You're using Hoppscotch offline. Updates will sync when you're online, based on workspace settings.", "offline_short": "You're using Hoppscotch offline.", "post_request_tests": "Test scripts are written in JavaScript, and are run after the response is received.", "pre_request_script": "Pre-request scripts are written in JavaScript, and are run before the request is sent.", diff --git a/packages/hoppscotch-common/src/components.d.ts b/packages/hoppscotch-common/src/components.d.ts index 1b7bbd4a0..13dbf4d80 100644 --- a/packages/hoppscotch-common/src/components.d.ts +++ b/packages/hoppscotch-common/src/components.d.ts @@ -108,6 +108,7 @@ declare module 'vue' { HoppSmartProgressRing: typeof import('@hoppscotch/ui')['HoppSmartProgressRing'] HoppSmartRadio: typeof import('@hoppscotch/ui')['HoppSmartRadio'] HoppSmartRadioGroup: typeof import('@hoppscotch/ui')['HoppSmartRadioGroup'] + HoppSmartSelectWrapper: typeof import('@hoppscotch/ui')['HoppSmartSelectWrapper'] HoppSmartSlideOver: typeof import('@hoppscotch/ui')['HoppSmartSlideOver'] HoppSmartSpinner: typeof import('@hoppscotch/ui')['HoppSmartSpinner'] HoppSmartTab: typeof import('@hoppscotch/ui')['HoppSmartTab'] @@ -215,6 +216,7 @@ declare module 'vue' { SmartProgressRing: typeof import('./../../hoppscotch-ui/src/components/smart/ProgressRing.vue')['default'] SmartRadio: typeof import('./../../hoppscotch-ui/src/components/smart/Radio.vue')['default'] SmartRadioGroup: typeof import('./../../hoppscotch-ui/src/components/smart/RadioGroup.vue')['default'] + SmartSelectWrapper: typeof import('./../../hoppscotch-ui/src/components/smart/SelectWrapper.vue')['default'] SmartSlideOver: typeof import('./../../hoppscotch-ui/src/components/smart/SlideOver.vue')['default'] SmartSpinner: typeof import('./../../hoppscotch-ui/src/components/smart/Spinner.vue')['default'] SmartTab: typeof import('./../../hoppscotch-ui/src/components/smart/Tab.vue')['default'] diff --git a/packages/hoppscotch-common/src/components/app/Banner.vue b/packages/hoppscotch-common/src/components/app/Banner.vue index bc5a098ff..7086678d3 100644 --- a/packages/hoppscotch-common/src/components/app/Banner.vue +++ b/packages/hoppscotch-common/src/components/app/Banner.vue @@ -1,25 +1,21 @@