fix: color contrast

This commit is contained in:
liyasthomas
2021-08-01 23:03:54 +05:30
parent fd3b5ecf08
commit 2ee65e69dc
28 changed files with 112 additions and 89 deletions

View File

@@ -103,8 +103,8 @@
--- ---
- Choose theme: System, Light, Dark (default) and Black - Choose theme: System (default), Light, Dark and Black
- Choose accent color: Blue, Green (default), Teal, Indigo, Purple, Orange, Pink, Red, and Yellow - Choose accent color: Green (default), Teal, Blue, Indigo, Purple, Yellow, Orange, Red and Pink
- Toggle auto-scroll to response - Toggle auto-scroll to response
<p> <p>

View File

@@ -85,7 +85,6 @@ a {
@apply text-current; @apply text-current;
@apply no-underline; @apply no-underline;
@apply outline-none; @apply outline-none;
@apply focus-visible:(ring ring-inset ring-accent);
@apply transition; @apply transition;
&.link { &.link {
@@ -94,6 +93,7 @@ a {
@apply -mx-2 -my-1; @apply -mx-2 -my-1;
@apply text-accent; @apply text-accent;
@apply hover:text-accentDark; @apply hover:text-accentDark;
@apply focus-visible:(ring ring-inset ring-accent);
} }
} }
@@ -265,19 +265,19 @@ input[type="checkbox"] {
} }
.info-response { .info-response {
@apply text-pink-400; @apply text-pink-500;
} }
.success-response { .success-response {
@apply text-green-400; @apply text-green-500;
} }
.redir-response { .redir-response {
@apply text-yellow-400; @apply text-yellow-500;
} }
.cl-error-response { .cl-error-response {
@apply text-red-400; @apply text-red-500;
} }
.sv-error-response { .sv-error-response {

View File

@@ -85,21 +85,6 @@
--editor-theme: "twilight"; --editor-theme: "twilight";
} }
@mixin blueTheme {
// Accent color
--accent-color: theme("colors.blue.500");
// Light Accent color
--accent-light-color: theme("colors.blue.400");
// Dark Accent color
--accent-dark-color: theme("colors.blue.600");
// Gradient from
--gradient-from-color: theme("colors.blue.200");
// Gradient via
--gradient-via-color: theme("colors.blue.400");
// Gradient to
--gradient-to-color: theme("colors.blue.600");
}
@mixin greenTheme { @mixin greenTheme {
// Accent color // Accent color
--accent-color: theme("colors.green.500"); --accent-color: theme("colors.green.500");
@@ -130,6 +115,21 @@
--gradient-to-color: theme("colors.teal.600"); --gradient-to-color: theme("colors.teal.600");
} }
@mixin blueTheme {
// Accent color
--accent-color: theme("colors.blue.500");
// Light Accent color
--accent-light-color: theme("colors.blue.400");
// Dark Accent color
--accent-dark-color: theme("colors.blue.600");
// Gradient from
--gradient-from-color: theme("colors.blue.200");
// Gradient via
--gradient-via-color: theme("colors.blue.400");
// Gradient to
--gradient-to-color: theme("colors.blue.600");
}
@mixin indigoTheme { @mixin indigoTheme {
// Accent color // Accent color
--accent-color: theme("colors.indigo.500"); --accent-color: theme("colors.indigo.500");
@@ -160,6 +160,21 @@
--gradient-to-color: theme("colors.purple.600"); --gradient-to-color: theme("colors.purple.600");
} }
@mixin yellowTheme {
// Accent color
--accent-color: theme("colors.yellow.500");
// Light Accent color
--accent-light-color: theme("colors.yellow.400");
// Dark Accent color
--accent-dark-color: theme("colors.yellow.600");
// Gradient from
--gradient-from-color: theme("colors.yellow.200");
// Gradient via
--gradient-via-color: theme("colors.yellow.400");
// Gradient to
--gradient-to-color: theme("colors.yellow.600");
}
@mixin orangeTheme { @mixin orangeTheme {
// Accent color // Accent color
--accent-color: theme("colors.orange.500"); --accent-color: theme("colors.orange.500");
@@ -175,21 +190,6 @@
--gradient-to-color: theme("colors.orange.600"); --gradient-to-color: theme("colors.orange.600");
} }
@mixin pinkTheme {
// Accent color
--accent-color: theme("colors.pink.500");
// Light Accent color
--accent-light-color: theme("colors.pink.400");
// Dark Accent color
--accent-dark-color: theme("colors.pink.600");
// Gradient from
--gradient-from-color: theme("colors.pink.200");
// Gradient via
--gradient-via-color: theme("colors.pink.400");
// Gradient to
--gradient-to-color: theme("colors.pink.600");
}
@mixin redTheme { @mixin redTheme {
// Accent color // Accent color
--accent-color: theme("colors.red.500"); --accent-color: theme("colors.red.500");
@@ -205,19 +205,19 @@
--gradient-to-color: theme("colors.red.600"); --gradient-to-color: theme("colors.red.600");
} }
@mixin yellowTheme { @mixin pinkTheme {
// Accent color // Accent color
--accent-color: theme("colors.yellow.500"); --accent-color: theme("colors.pink.500");
// Light Accent color // Light Accent color
--accent-light-color: theme("colors.yellow.400"); --accent-light-color: theme("colors.pink.400");
// Dark Accent color // Dark Accent color
--accent-dark-color: theme("colors.yellow.600"); --accent-dark-color: theme("colors.pink.600");
// Gradient from // Gradient from
--gradient-from-color: theme("colors.yellow.200"); --gradient-from-color: theme("colors.pink.200");
// Gradient via // Gradient via
--gradient-via-color: theme("colors.yellow.400"); --gradient-via-color: theme("colors.pink.400");
// Gradient to // Gradient to
--gradient-to-color: theme("colors.yellow.600"); --gradient-to-color: theme("colors.pink.600");
} }
:root { :root {

View File

@@ -14,7 +14,7 @@
justify-between justify-between
" "
> >
<h3 class="ml-2 heading">{{ $t("shortcuts") }}</h3> <h3 class="ml-4 heading">{{ $t("shortcuts") }}</h3>
<div> <div>
<ButtonSecondary to="/settings" icon="tune" /> <ButtonSecondary to="/settings" icon="tune" />
<ButtonSecondary icon="close" @click.native="close()" /> <ButtonSecondary icon="close" @click.native="close()" />
@@ -39,7 +39,7 @@
<div <div
v-for="(map, mapIndex) in mappings" v-for="(map, mapIndex) in mappings"
:key="`map-${mapIndex}`" :key="`map-${mapIndex}`"
class="space-y-4 p-4" class="space-y-4 py-4 px-6"
> >
<h5 class="font-bold text-secondaryDark text-sm"> <h5 class="font-bold text-secondaryDark text-sm">
{{ map.section }} {{ map.section }}

View File

@@ -15,7 +15,7 @@
:class="[ :class="[
color color
? `text-${color}-800 bg-${color}-200 hover:text-${color}-900 hover:bg-${color}-300 focus:text-${color}-900 focus:bg-${color}-300` ? `text-${color}-800 bg-${color}-200 hover:text-${color}-900 hover:bg-${color}-300 focus:text-${color}-900 focus:bg-${color}-300`
: `text-white bg-accent hover:bg-accentDark focus:bg-accentDark`, : `text-primary bg-accent hover:bg-accentDark focus:bg-accentDark`,
label ? 'px-4' : 'px-2', label ? 'px-4' : 'px-2',
rounded ? 'rounded-full' : 'rounded', rounded ? 'rounded-full' : 'rounded',
{ 'opacity-75 cursor-not-allowed': disabled }, { 'opacity-75 cursor-not-allowed': disabled },

View File

@@ -15,7 +15,7 @@
" "
:class="[ :class="[
color color
? `text-${color}-400 hover:text-${color}-600 focus:text-${color}-600` ? `text-${color}-500 hover:text-${color}-600 focus:text-${color}-600`
: 'text-secondary hover:text-secondaryDark focus:text-secondaryDark', : 'text-secondary hover:text-secondaryDark focus:text-secondaryDark',
label ? 'px-4' : 'px-2', label ? 'px-4' : 'px-2',
rounded ? 'rounded-full' : 'rounded', rounded ? 'rounded-full' : 'rounded',

View File

@@ -13,7 +13,7 @@
class="cursor-pointer flex w-10 justify-center items-center truncate" class="cursor-pointer flex w-10 justify-center items-center truncate"
@click="toggleShowChildren()" @click="toggleShowChildren()"
> >
<i class="material-icons" :class="{ 'text-green-400': isSelected }"> <i class="material-icons" :class="{ 'text-green-500': isSelected }">
{{ getCollectionIcon }} {{ getCollectionIcon }}
</i> </i>
</span> </span>

View File

@@ -13,7 +13,7 @@
class="cursor-pointer flex w-10 justify-center items-center truncate" class="cursor-pointer flex w-10 justify-center items-center truncate"
@click="toggleShowChildren()" @click="toggleShowChildren()"
> >
<i class="material-icons" :class="{ 'text-green-400': isSelected }"> <i class="material-icons" :class="{ 'text-green-500': isSelected }">
{{ getCollectionIcon }} {{ getCollectionIcon }}
</i> </i>
</span> </span>

View File

@@ -21,7 +21,7 @@
" "
@click="!doc ? selectRequest() : {}" @click="!doc ? selectRequest() : {}"
> >
<i class="material-icons" :class="{ 'text-green-400': isSelected }"> <i class="material-icons" :class="{ 'text-green-500': isSelected }">
{{ isSelected ? "check_circle" : "description" }} {{ isSelected ? "check_circle" : "description" }}
</i> </i>
</span> </span>

View File

@@ -70,6 +70,7 @@
</span> </span>
<ButtonSecondary <ButtonSecondary
:label="$t('add_new')" :label="$t('add_new')"
outline
@click.native="displayModalAdd(true)" @click.native="displayModalAdd(true)"
/> />
</div> </div>

View File

@@ -113,9 +113,11 @@
disabled disabled
:title="$t('disable_new_collection')" :title="$t('disable_new_collection')"
:label="$t('add_new')" :label="$t('add_new')"
outline
/> />
<ButtonSecondary <ButtonSecondary
v-else v-else
outline
:label="$t('add_new')" :label="$t('add_new')"
@click.native="displayModalAdd(true)" @click.native="displayModalAdd(true)"
/> />

View File

@@ -13,7 +13,7 @@
class="cursor-pointer flex w-10 justify-center items-center truncate" class="cursor-pointer flex w-10 justify-center items-center truncate"
@click="toggleShowChildren()" @click="toggleShowChildren()"
> >
<i class="material-icons" :class="{ 'text-green-400': isSelected }"> <i class="material-icons" :class="{ 'text-green-500': isSelected }">
{{ getCollectionIcon }} {{ getCollectionIcon }}
</i> </i>
</span> </span>

View File

@@ -13,7 +13,7 @@
class="cursor-pointer flex w-10 justify-center items-center truncate" class="cursor-pointer flex w-10 justify-center items-center truncate"
@click="toggleShowChildren()" @click="toggleShowChildren()"
> >
<i class="material-icons" :class="{ 'text-green-400': isSelected }"> <i class="material-icons" :class="{ 'text-green-500': isSelected }">
{{ getCollectionIcon }} {{ getCollectionIcon }}
</i> </i>
</span> </span>

View File

@@ -25,7 +25,7 @@
<i <i
v-if="isSelected" v-if="isSelected"
class="material-icons" class="material-icons"
:class="{ 'text-green-400': isSelected }" :class="{ 'text-green-500': isSelected }"
> >
check_circle check_circle
</i> </i>
@@ -128,11 +128,11 @@ export default {
return { return {
dragging: false, dragging: false,
requestMethodLabels: { requestMethodLabels: {
get: "text-green-400", get: "text-green-500",
post: "text-yellow-400", post: "text-yellow-500",
put: "text-blue-400", put: "text-blue-500",
delete: "text-red-400", delete: "text-red-500",
default: "text-gray-400", default: "text-gray-500",
}, },
confirmRemove: false, confirmRemove: false,
} }

View File

@@ -5,7 +5,7 @@
class="cursor-pointer flex w-10 justify-center items-center truncate" class="cursor-pointer flex w-10 justify-center items-center truncate"
@click="toggleShowChildren()" @click="toggleShowChildren()"
> >
<i class="material-icons" :class="{ 'text-green-400': isSelected }"> <i class="material-icons" :class="{ 'text-green-500': isSelected }">
{{ getCollectionIcon }} {{ getCollectionIcon }}
</i> </i>
</span> </span>

View File

@@ -5,7 +5,7 @@
class="cursor-pointer flex w-10 justify-center items-center truncate" class="cursor-pointer flex w-10 justify-center items-center truncate"
@click="toggleShowChildren()" @click="toggleShowChildren()"
> >
<i class="material-icons" :class="{ 'text-green-400': isSelected }"> <i class="material-icons" :class="{ 'text-green-500': isSelected }">
{{ getCollectionIcon }} {{ getCollectionIcon }}
</i> </i>
</span> </span>

View File

@@ -18,7 +18,7 @@
<i <i
v-if="isSelected" v-if="isSelected"
class="material-icons" class="material-icons"
:class="{ 'text-green-400': isSelected }" :class="{ 'text-green-500': isSelected }"
> >
check_circle check_circle
</i> </i>
@@ -119,11 +119,11 @@ export default {
data() { data() {
return { return {
requestMethodLabels: { requestMethodLabels: {
get: "text-green-400", get: "text-green-500",
post: "text-yellow-400", post: "text-yellow-500",
put: "text-blue-400", put: "text-blue-500",
delete: "text-red-400", delete: "text-red-500",
default: "text-gray-400", default: "text-gray-500",
}, },
confirmRemove: false, confirmRemove: false,
} }

View File

@@ -68,6 +68,7 @@
</span> </span>
<ButtonSecondary <ButtonSecondary
:label="$t('add_new')" :label="$t('add_new')"
outline
@click.native="displayModalAdd(true)" @click.native="displayModalAdd(true)"
/> />
</div> </div>

View File

@@ -148,7 +148,11 @@
<span class="text-center pb-4"> <span class="text-center pb-4">
{{ $t("headers_empty") }} {{ $t("headers_empty") }}
</span> </span>
<ButtonSecondary :label="$t('add_new')" @click.native="addHeader" /> <ButtonSecondary
outline
:label="$t('add_new')"
@click.native="addHeader"
/>
</div> </div>
</AppSection> </AppSection>
</template> </template>

View File

@@ -169,7 +169,11 @@
<span class="text-center pb-4"> <span class="text-center pb-4">
{{ $t("parameters_empty") }} {{ $t("parameters_empty") }}
</span> </span>
<ButtonSecondary :label="$t('add_new')" @click.native="addParam" /> <ButtonSecondary
:label="$t('add_new')"
outline
@click.native="addParam"
/>
</div> </div>
</AppSection> </AppSection>
</template> </template>

View File

@@ -91,9 +91,8 @@
<div class="flex"> <div class="flex">
<ButtonPrimary <ButtonPrimary
id="send" id="send"
class="rounded-none min-w-18" class="rounded-none min-w-20"
:label="!loading ? $t('send') : $t('cancel')" :label="!loading ? $t('send') : $t('cancel')"
:shortcut="[getSpecialKey(), 'G']"
@click.native="!loading ? newSendRequest() : cancelRequest()" @click.native="!loading ? newSendRequest() : cancelRequest()"
/> />
<span class="inline-flex"> <span class="inline-flex">

View File

@@ -5,15 +5,20 @@
class=" class="
flex flex-col flex-1 flex flex-col flex-1
text-secondaryLight text-secondaryLight
p-4
items-center items-center
justify-center justify-center
" "
> >
<i class="opacity-75 pb-2 material-icons">send</i> <i class="opacity-75 pb-2 material-icons">send</i>
<span class="text-center"> <span class="text-center pb-4">
{{ $t("waiting_send_req") }} {{ $t("waiting_send_req") }}
</span> </span>
<ButtonSecondary
:label="$t('documentation')"
to="https://docs.hoppscotch.io"
blank
outline
/>
</div> </div>
<div v-else> <div v-else>
<i v-if="response.type === 'loading'" class="animate-spin material-icons"> <i v-if="response.type === 'loading'" class="animate-spin material-icons">

View File

@@ -256,6 +256,9 @@ export default defineComponent({
this.worker.terminate() this.worker.terminate()
}, },
methods: { methods: {
clearContent() {
this.protocols = []
},
debouncer: debounce(function () { debouncer: debounce(function () {
this.worker.postMessage({ type: "ws", url: this.url }) this.worker.postMessage({ type: "ws", url: this.url })
}, 1000), }, 1000),
@@ -330,6 +333,8 @@ export default defineComponent({
disconnect() { disconnect() {
if (this.socket) { if (this.socket) {
this.socket.close() this.socket.close()
this.connectionState = false
this.connectingState = false
} }
}, },
handleError(error) { handleError(error) {

View File

@@ -1,14 +1,14 @@
<template> <template>
<div class="flex"> <div class="flex">
<!-- text-blue-400 --> <!-- text-green-500 -->
<!-- text-green-400 --> <!-- text-teal-500 -->
<!-- text-teal-400 --> <!-- text-blue-500 -->
<!-- text-indigo-400 --> <!-- text-indigo-500 -->
<!-- text-purple-400 --> <!-- text-purple-500 -->
<!-- text-orange-400 --> <!-- text-yellow-500 -->
<!-- text-pink-400 --> <!-- text-orange-500 -->
<!-- text-red-400 --> <!-- text-red-500 -->
<!-- text-yellow-400 --> <!-- text-pink-500 -->
<ButtonSecondary <ButtonSecondary
v-for="(color, index) of accentColors" v-for="(color, index) of accentColors"
:key="`color-${index}`" :key="`color-${index}`"

View File

@@ -11,15 +11,15 @@ export const HoppBgColors = ["system", "light", "dark", "black"] as const
export type HoppBgColor = typeof HoppBgColors[number] export type HoppBgColor = typeof HoppBgColors[number]
export const HoppAccentColors = [ export const HoppAccentColors = [
"blue",
"green", "green",
"teal", "teal",
"blue",
"indigo", "indigo",
"purple", "purple",
"orange",
"pink",
"red",
"yellow", "yellow",
"orange",
"red",
"pink",
] as const ] as const
export type HoppAccentColor = typeof HoppAccentColors[number] export type HoppAccentColor = typeof HoppAccentColors[number]
@@ -67,7 +67,7 @@ export const defaultSettings: SettingsType = {
httpPassword: true, httpPassword: true,
bearerToken: true, bearerToken: true,
}, },
THEME_COLOR: "indigo", THEME_COLOR: "green",
BG_COLOR: "system", BG_COLOR: "system",
TELEMETRY_ENABLED: true, TELEMETRY_ENABLED: true,
SHORTCUT_INDICATOR: false, SHORTCUT_INDICATOR: false,

View File

@@ -209,7 +209,7 @@ export default {
families: { families: {
Inter: [400, 500, 600, 700, 800], Inter: [400, 500, 600, 700, 800],
"Material+Icons": true, "Material+Icons": true,
"Roboto+Mono": true, "Roboto+Mono": [400, 500, 600, 700, 800],
}, },
}, },

View File

@@ -295,6 +295,7 @@
</span> </span>
<ButtonSecondary <ButtonSecondary
:label="$t('add_new')" :label="$t('add_new')"
outline
@click.native="addRequestHeader" @click.native="addRequestHeader"
/> />
</div> </div>

View File

@@ -316,6 +316,7 @@
v-tippy="{ theme: 'tooltip' }" v-tippy="{ theme: 'tooltip' }"
:title="$t('reset_default')" :title="$t('reset_default')"
:icon="clearIcon" :icon="clearIcon"
outline
@click.native="resetProxy" @click.native="resetProxy"
/> />
</div> </div>
@@ -396,7 +397,7 @@ export default defineComponent({
showLogin: false, showLogin: false,
active: getLocalConfig("THEME_COLOR") || "indigo", active: getLocalConfig("THEME_COLOR") || "green",
confirmRemove: false, confirmRemove: false,
} }
}, },