Revert to previous red colors but do not use red color for text (#2786)

Revert red colors back introduced by #2778 

But do not use red color for text on dark background anywhere

example:

![attels](https://github.com/woodpecker-ci/woodpecker/assets/165205/39f008fe-3d43-495f-b956-ea5bf4a5fa16)
This commit is contained in:
Lauris BH 2023-11-09 23:00:52 +02:00 committed by GitHub
parent f3df6f8873
commit 9f9127b093
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
12 changed files with 55 additions and 34 deletions

6
web/components.d.ts vendored
View file

@ -26,17 +26,16 @@ declare module 'vue' {
CronTab: typeof import('./src/components/repo/settings/CronTab.vue')['default'] CronTab: typeof import('./src/components/repo/settings/CronTab.vue')['default']
DeployPipelinePopup: typeof import('./src/components/layout/popups/DeployPipelinePopup.vue')['default'] DeployPipelinePopup: typeof import('./src/components/layout/popups/DeployPipelinePopup.vue')['default']
DocsLink: typeof import('./src/components/atomic/DocsLink.vue')['default'] DocsLink: typeof import('./src/components/atomic/DocsLink.vue')['default']
Error: typeof import('./src/components/atomic/Error.vue')['default']
GeneralTab: typeof import('./src/components/repo/settings/GeneralTab.vue')['default'] GeneralTab: typeof import('./src/components/repo/settings/GeneralTab.vue')['default']
Header: typeof import('./src/components/layout/scaffold/Header.vue')['default'] Header: typeof import('./src/components/layout/scaffold/Header.vue')['default']
IBiCheckCircleFill: typeof import('~icons/bi/check-circle-fill')['default'] IBiCheckCircleFill: typeof import('~icons/bi/check-circle-fill')['default']
IBiCircle: typeof import('~icons/bi/circle')['default'] IBiCircle: typeof import('~icons/bi/circle')['default']
IBiExclamationCircleFill: typeof import('~icons/bi/exclamation-circle-fill')['default']
IBiExclamationTriangle: typeof import('~icons/bi/exclamation-triangle')['default'] IBiExclamationTriangle: typeof import('~icons/bi/exclamation-triangle')['default']
IBiExclamationTriangleFill: typeof import('~icons/bi/exclamation-triangle-fill')['default'] IBiExclamationTriangleFill: typeof import('~icons/bi/exclamation-triangle-fill')['default']
IBiPlayCircleFill: typeof import('~icons/bi/play-circle-fill')['default'] IBiPlayCircleFill: typeof import('~icons/bi/play-circle-fill')['default']
IBiSlashCircleFill: typeof import('~icons/bi/slash-circle-fill')['default'] IBiSlashCircleFill: typeof import('~icons/bi/slash-circle-fill')['default']
IBiStopCircleFill: typeof import('~icons/bi/stop-circle-fill')['default'] IBiStopCircleFill: typeof import('~icons/bi/stop-circle-fill')['default']
IBiX: typeof import('~icons/bi/x')['default']
IBiXCircleFill: typeof import('~icons/bi/x-circle-fill')['default'] IBiXCircleFill: typeof import('~icons/bi/x-circle-fill')['default']
IBxBxPowerOff: typeof import('~icons/bx/bx-power-off')['default'] IBxBxPowerOff: typeof import('~icons/bx/bx-power-off')['default']
ICarbonCloseOutline: typeof import('~icons/carbon/close-outline')['default'] ICarbonCloseOutline: typeof import('~icons/carbon/close-outline')['default']
@ -63,14 +62,15 @@ declare module 'vue' {
IMdiBitbucket: typeof import('~icons/mdi/bitbucket')['default'] IMdiBitbucket: typeof import('~icons/mdi/bitbucket')['default']
IMdiChevronRight: typeof import('~icons/mdi/chevron-right')['default'] IMdiChevronRight: typeof import('~icons/mdi/chevron-right')['default']
IMdiClockTimeEightOutline: typeof import('~icons/mdi/clock-time-eight-outline')['default'] IMdiClockTimeEightOutline: typeof import('~icons/mdi/clock-time-eight-outline')['default']
IMdiErrorOutline: typeof import('~icons/mdi/error-outline')['default']
IMdiFormatListBulleted: typeof import('~icons/mdi/format-list-bulleted')['default'] IMdiFormatListBulleted: typeof import('~icons/mdi/format-list-bulleted')['default']
IMdiGestureTap: typeof import('~icons/mdi/gesture-tap')['default'] IMdiGestureTap: typeof import('~icons/mdi/gesture-tap')['default']
IMdiGithub: typeof import('~icons/mdi/github')['default'] IMdiGithub: typeof import('~icons/mdi/github')['default']
IMdiLoading: typeof import('~icons/mdi/loading')['default'] IMdiLoading: typeof import('~icons/mdi/loading')['default']
IMdiSync: typeof import('~icons/mdi/sync')['default']
IMdiSourceBranch: typeof import('~icons/mdi/source-branch')['default'] IMdiSourceBranch: typeof import('~icons/mdi/source-branch')['default']
IMdisourceCommit: typeof import('~icons/mdi/source-commit')['default'] IMdisourceCommit: typeof import('~icons/mdi/source-commit')['default']
IMdiSourcePull: typeof import('~icons/mdi/source-pull')['default'] IMdiSourcePull: typeof import('~icons/mdi/source-pull')['default']
IMdiSync: typeof import('~icons/mdi/sync')['default']
IMdiTagOutline: typeof import('~icons/mdi/tag-outline')['default'] IMdiTagOutline: typeof import('~icons/mdi/tag-outline')['default']
InputField: typeof import('./src/components/form/InputField.vue')['default'] InputField: typeof import('./src/components/form/InputField.vue')['default']
IPhGitlabLogoSimpleFill: typeof import('~icons/ph/gitlab-logo-simple-fill')['default'] IPhGitlabLogoSimpleFill: typeof import('~icons/ph/gitlab-logo-simple-fill')['default']

View file

@ -7,15 +7,17 @@
<span class="font-bold">{{ version?.current }}</span> <span class="font-bold">{{ version?.current }}</span>
</i18n-t> </i18n-t>
<i18n-t v-if="version?.needsUpdate" keypath="update_woodpecker" tag="span" class="text-int-wp-state-error-100"> <Error v-if="version?.needsUpdate">
<a <i18n-t keypath="update_woodpecker" tag="span">
:href="`https://github.com/woodpecker-ci/woodpecker/releases/tag/${version.latest}`" <a
target="_blank" :href="`https://github.com/woodpecker-ci/woodpecker/releases/tag/${version.latest}`"
rel="noopener noreferrer" target="_blank"
class="underline" rel="noopener noreferrer"
>{{ version.latest }}</a class="underline"
> >{{ version.latest }}</a
</i18n-t> >
</i18n-t>
</Error>
</div> </div>
</Settings> </Settings>
</template> </template>

View file

@ -8,8 +8,7 @@
color === 'gray', color === 'gray',
'bg-wp-control-ok-100 hover:bg-wp-control-ok-200 border-wp-control-ok-300 text-white': color === 'green', 'bg-wp-control-ok-100 hover:bg-wp-control-ok-200 border-wp-control-ok-300 text-white': color === 'green',
'bg-wp-control-info-100 hover:bg-wp-control-info-200 border-wp-control-info-300 text-white': color === 'blue', 'bg-wp-control-info-100 hover:bg-wp-control-info-200 border-wp-control-info-300 text-white': color === 'blue',
'bg-wp-control-error-100 hover:bg-wp-control-error-200 border-wp-control-error-300 text-white dark:text-dark-300': 'bg-wp-control-error-100 hover:bg-wp-control-error-200 border-wp-control-error-300 text-white': color === 'red',
color === 'red',
...passedClasses, ...passedClasses,
}" }"
:title="title" :title="title"

View file

@ -0,0 +1,17 @@
<template>
<div
class="flex gap-2 items-center bg-wp-control-error-100 border-l-6 border border-solid border-wp-control-error-300 text-white p-2 rounded-md"
>
<Icon v-if="!textOnly" name="error" />
<slot>
<span>{{ text }}</span>
</slot>
</div>
</template>
<script lang="ts" setup>
defineProps<{
textOnly?: boolean;
text: string;
}>();
</script>

View file

@ -24,6 +24,7 @@
<i-bi-check-circle-fill v-else-if="name === 'status-success'" class="h-6 w-6" /> <i-bi-check-circle-fill v-else-if="name === 'status-success'" class="h-6 w-6" />
<i-bi-exclamation-triangle-fill v-else-if="name === 'attention'" class="h-5 w-5" /> <i-bi-exclamation-triangle-fill v-else-if="name === 'attention'" class="h-5 w-5" />
<i-bi-exclamation-triangle v-else-if="name === 'warning'" class="h-5 w-5" /> <i-bi-exclamation-triangle v-else-if="name === 'warning'" class="h-5 w-5" />
<i-mdi-error-outline v-else-if="name === 'error'" class="h-5 w-5" />
<i-simple-icons-gitea v-else-if="name === 'gitea'" class="h-8 w-8" /> <i-simple-icons-gitea v-else-if="name === 'gitea'" class="h-8 w-8" />
<i-ph-gitlab-logo-simple-fill v-else-if="name === 'gitlab'" class="h-8 w-8" /> <i-ph-gitlab-logo-simple-fill v-else-if="name === 'gitlab'" class="h-8 w-8" />
<i-mdi-bitbucket v-else-if="name === 'bitbucket'" class="h-8 w-8" /> <i-mdi-bitbucket v-else-if="name === 'bitbucket'" class="h-8 w-8" />
@ -98,7 +99,8 @@ export type IconNames =
| 'play' | 'play'
| 'pause' | 'pause'
| 'warning' | 'warning'
| 'attention'; | 'attention'
| 'error';
defineProps<{ defineProps<{
name: IconNames; name: IconNames;

View file

@ -1,14 +1,17 @@
<template> <template>
<div <div
class="flex gap-2 items-center text-sm text-gray-700 font-bold rounded-md border border-solid p-2 border-wp-hint-warn-200 bg-wp-hint-warn-100" class="flex gap-2 items-center text-gray-700 font-bold rounded-md p-2 border border-solid border-l-6 border-wp-hint-warn-200 bg-wp-hint-warn-100"
> >
<Icon name="warning" /> <Icon v-if="!textOnly" name="warning" />
<span>{{ text }}</span> <slot>
<span>{{ text }}</span>
</slot>
</div> </div>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
defineProps<{ defineProps<{
textOnly?: boolean;
text: string; text: string;
}>(); }>();
</script> </script>

View file

@ -1,5 +1,5 @@
<template> <template>
<div class="w-full p-4 mx-auto" :class="{ 'max-w-5xl': !fullWidth, 'md:px-0': fullWidth }"> <div class="w-full p-4 mx-auto" :class="{ 'max-w-5xl': !fullWidth && !fillWidth, 'md:px-0': fullWidth }">
<slot /> <slot />
</div> </div>
</template> </template>
@ -7,5 +7,6 @@
<script setup lang="ts"> <script setup lang="ts">
defineProps<{ defineProps<{
fullWidth?: boolean; fullWidth?: boolean;
fillWidth?: boolean;
}>(); }>();
</script> </script>

View file

@ -7,7 +7,7 @@
{{ desc }} {{ desc }}
<DocsLink v-if="docsUrl" :topic="title" :url="docsUrl" /> <DocsLink v-if="docsUrl" :topic="title" :url="docsUrl" />
</p> </p>
<Warning v-if="warning" class="mt-1" :text="warning" /> <Warning v-if="warning" class="text-sm mt-1" :text="warning" />
</div> </div>
<div class="ml-auto"> <div class="ml-auto">

View file

@ -3,6 +3,7 @@
<div class="flex flex-wrap items-center"> <div class="flex flex-wrap items-center">
<Button <Button
class="mr-4 my-1" class="mr-4 my-1"
color="blue"
start-icon="heal" start-icon="heal"
:is-loading="isRepairingRepo" :is-loading="isRepairingRepo"
:text="$t('repo.settings.actions.repair.repair')" :text="$t('repo.settings.actions.repair.repair')"
@ -11,6 +12,7 @@
<Button <Button
v-if="isActive" v-if="isActive"
color="blue"
class="mr-4 my-1" class="mr-4 my-1"
start-icon="turn-off" start-icon="turn-off"
:is-loading="isDeactivatingRepo" :is-loading="isDeactivatingRepo"

View file

@ -1,12 +1,7 @@
<template> <template>
<main class="flex flex-col w-full h-full justify-center items-center"> <main class="flex flex-col w-full h-full justify-center items-center">
<!-- TODO: Should use vue notifications. --> <!-- TODO: Should use vue notifications. -->
<div <Error v-if="errorMessage" text-only :text="errorMessage" class="w-full md:w-3xl" />
v-if="errorMessage"
class="bg-wp-control-error-100 border-l-6 border-l-wp-control-error-300 text-white dark:text-dark-300 p-4 rounded-md"
>
{{ errorMessage }}
</div>
<div <div
class="flex flex-col w-full overflow-hidden bg-wp-background-100 shadow border border-wp-background-400 dark:bg-wp-background-200 md:m-8 md:rounded-md md:flex-row md:w-3xl md:h-sm" class="flex flex-col w-full overflow-hidden bg-wp-background-100 shadow border border-wp-background-400 dark:bg-wp-background-200 md:m-8 md:rounded-md md:flex-row md:w-3xl md:h-sm"

View file

@ -9,7 +9,7 @@
/> />
<div class="flex items-start justify-center flex-grow relative"> <div class="flex items-start justify-center flex-grow relative">
<Container v-if="selectedStep?.error" class="py-0"> <Container v-if="selectedStep?.error" fill-width class="py-0">
<Panel> <Panel>
<div class="flex flex-col items-center gap-4"> <div class="flex flex-col items-center gap-4">
<Icon name="status-error" class="w-16 h-16 text-wp-state-error-100" /> <Icon name="status-error" class="w-16 h-16 text-wp-state-error-100" />
@ -19,7 +19,7 @@
</Panel> </Panel>
</Container> </Container>
<Container v-else-if="pipeline.errors?.some((e) => !e.is_warning)" class="py-0"> <Container v-else-if="pipeline.errors?.some((e) => !e.is_warning)" fill-width class="py-0">
<Panel> <Panel>
<div class="flex flex-col items-center gap-4"> <div class="flex flex-col items-center gap-4">
<Icon name="status-error" class="w-16 h-16 text-wp-state-error-100" /> <Icon name="status-error" class="w-16 h-16 text-wp-state-error-100" />
@ -29,7 +29,7 @@
</Panel> </Panel>
</Container> </Container>
<Container v-else-if="pipeline.status === 'blocked'" class="py-0"> <Container v-else-if="pipeline.status === 'blocked'" fill-width class="py-0">
<Panel> <Panel>
<div class="flex flex-col items-center gap-4"> <div class="flex flex-col items-center gap-4">
<Icon name="status-blocked" class="w-16 h-16" /> <Icon name="status-blocked" class="w-16 h-16" />
@ -59,7 +59,7 @@
</Panel> </Panel>
</Container> </Container>
<Container v-else-if="pipeline.status === 'declined'" class="py-0"> <Container v-else-if="pipeline.status === 'declined'" fill-width class="py-0">
<Panel> <Panel>
<div class="flex flex-col items-center gap-4"> <div class="flex flex-col items-center gap-4">
<Icon name="status-declined" class="w-16 h-16 text-wp-state-error-100" /> <Icon name="status-declined" class="w-16 h-16 text-wp-state-error-100" />

View file

@ -79,16 +79,16 @@ export default defineConfig({
300: colors.red[900], 300: colors.red[900],
}, },
'int-wp-control-error-dark': { 'int-wp-control-error-dark': {
100: tinycolor(colors.red[700]).saturate(100).brighten(40).toString(), 100: tinycolor(colors.red[700]).desaturate(25).toString(),
200: tinycolor(colors.red[800]).saturate(80).brighten(30).toString(), 200: tinycolor(colors.red[800]).desaturate(25).toString(),
300: tinycolor(colors.red[900]).saturate(80).brighten(30).toString(), 300: tinycolor(colors.red[900]).desaturate(25).toString(),
}, },
'int-wp-state-error': { 'int-wp-state-error': {
100: colors.red[700], 100: colors.red[700],
}, },
'int-wp-state-error-dark': { 'int-wp-state-error-dark': {
100: tinycolor(colors.red[700]).saturate(100).brighten(40).toString(), 100: tinycolor(colors.red[700]).desaturate(25).toString(),
}, },
'int-wp-state-neutral': { 'int-wp-state-neutral': {
100: colors.gray[600], 100: colors.gray[600],