diff --git a/app/assets/main.css b/app/assets/main.css index 75e80729a7..1735c87de6 100644 --- a/app/assets/main.css +++ b/app/assets/main.css @@ -95,11 +95,11 @@ --border-subtle: oklch(0.922 0 0); --border-hover: oklch(0.715 0 0); - --accent: var(--accent-color, oklch(0.53 0.16 247.27)); + --accent: var(--accent-color, oklch(0.5 0.16 247.27)); --accent-muted: var(--accent-color, oklch(0.205 0 0)); /* accent colors */ - --swatch-sky: oklch(0.53 0.16 247.27); + --swatch-sky: oklch(0.5 0.16 247.27); --swatch-coral: oklch(0.56 0.17 10.75); --swatch-amber: oklch(0.58 0.18 46.34); --swatch-emerald: oklch(0.51 0.13 162.4); diff --git a/app/components/AppFooter.vue b/app/components/AppFooter.vue index 6723549fd6..60c6259aea 100644 --- a/app/components/AppFooter.vue +++ b/app/components/AppFooter.vue @@ -48,6 +48,10 @@ const footerSections: Array<{ label: string; links: FooterLink[] }> = [ name: t('footer.about'), href: '/about', }, + { + name: t('footer.brand'), + href: '/brand', + }, { name: t('a11y.footer_title'), href: '/accessibility', diff --git a/app/components/Chart/SplitSparkline.vue b/app/components/Chart/SplitSparkline.vue index e63ea4e4f5..7b9fee5c6f 100644 --- a/app/components/Chart/SplitSparkline.vue +++ b/app/components/Chart/SplitSparkline.vue @@ -5,7 +5,7 @@ import { type VueUiSparklineDatasetItem, } from 'vue-data-ui/vue-ui-sparkline' import { VueUiPatternSeed } from 'vue-data-ui/vue-ui-pattern-seed' -import { useCssVariables } from '~/composables/useColors' +import { useColors } from '~/composables/useColors' import type { VueUiXyDatasetItem } from 'vue-data-ui/vue-ui-xy' import { getPalette, lightenColor } from 'vue-data-ui/utils' import { CHART_PATTERN_CONFIG } from '~/utils/charts' @@ -50,23 +50,7 @@ watch( { flush: 'sync', immediate: true }, ) -const { colors } = useCssVariables( - [ - '--bg', - '--fg', - '--bg-subtle', - '--bg-elevated', - '--border-hover', - '--fg-subtle', - '--border', - '--border-subtle', - ], - { - element: rootEl, - watchHtmlAttributes: true, - watchResize: false, // set to true only if a var changes color on resize - }, -) +const { colors } = useColors(rootEl) const isDarkMode = computed(() => resolvedMode.value === 'dark') diff --git a/app/components/Compare/FacetBarChart.vue b/app/components/Compare/FacetBarChart.vue index c48f9ad8e4..f8393c14b0 100644 --- a/app/components/Compare/FacetBarChart.vue +++ b/app/components/Compare/FacetBarChart.vue @@ -9,6 +9,7 @@ import { VueUiPatternSeed } from 'vue-data-ui/vue-ui-pattern-seed' import { getFrameworkColor, isListedFramework } from '~/utils/frameworks' import { createPatternDef } from 'vue-data-ui/utils' import { drawSmallNpmxLogoAndTaglineWatermark } from '~/composables/useChartWatermark' +import { useColors } from '~/composables/useColors' import { loadFile, @@ -40,23 +41,7 @@ const isMobile = computed(() => width.value > 0 && width.value < mobileBreakpoin const chartKey = ref(0) -const { colors } = useCssVariables( - [ - '--bg', - '--fg', - '--bg-subtle', - '--bg-elevated', - '--fg-subtle', - '--fg-muted', - '--border', - '--border-subtle', - ], - { - element: rootEl, - watchHtmlAttributes: true, - watchResize: false, - }, -) +const { colors } = useColors(rootEl) const watermarkColors = computed(() => ({ fg: colors.value.fg ?? OKLCH_NEUTRAL_FALLBACK, diff --git a/app/components/Compare/FacetScatterChart.vue b/app/components/Compare/FacetScatterChart.vue index 9f3cdc332b..2d5442c3e0 100644 --- a/app/components/Compare/FacetScatterChart.vue +++ b/app/components/Compare/FacetScatterChart.vue @@ -9,6 +9,7 @@ import { } from 'vue-data-ui/vue-ui-scatter' import { buildCompareScatterChartDataset } from '~/utils/compare-scatter-chart' import { loadFile, copyAltTextForCompareScatterChart } from '~/utils/charts' +import { useColors } from '~/composables/useColors' import('vue-data-ui/style.css') @@ -26,25 +27,7 @@ const { copy, copied } = useClipboard() const mobileBreakpointWidth = 640 const isMobile = computed(() => width.value > 0 && width.value < mobileBreakpointWidth) -const { colors } = useCssVariables( - [ - '--bg', - '--fg', - '--bg-subtle', - '--bg-elevated', - '--fg-subtle', - '--fg-muted', - '--border', - '--border-subtle', - '--border-hover', - '--accent', - ], - { - element: rootEl, - watchHtmlAttributes: true, - watchResize: false, - }, -) +const { colors } = useColors(rootEl) const watermarkColors = computed(() => ({ fg: colors.value.fg ?? OKLCH_NEUTRAL_FALLBACK, diff --git a/app/components/Diff/Line.vue b/app/components/Diff/Line.vue index 1cb75a5a91..fd5991f531 100644 --- a/app/components/Diff/Line.vue +++ b/app/components/Diff/Line.vue @@ -84,7 +84,7 @@ const renderedSegments = computed(() => - + {{ line.type === 'delete' ? '–' : lineNumberNew }} diff --git a/app/components/Diff/MobileSidebarDrawer.vue b/app/components/Diff/MobileSidebarDrawer.vue index 81870ddc3d..ca6373147a 100644 --- a/app/components/Diff/MobileSidebarDrawer.vue +++ b/app/components/Diff/MobileSidebarDrawer.vue @@ -59,11 +59,17 @@ watch(open, value => {
- +{{ props.compare.stats.filesAdded }} + +{{ props.compare.stats.filesAdded }} / - -{{ props.compare.stats.filesRemoved }} + -{{ props.compare.stats.filesRemoved }} / - ~{{ props.compare.stats.filesModified }} + ~{{ props.compare.stats.filesModified }} {{ diff --git a/app/components/Diff/SidebarPanel.vue b/app/components/Diff/SidebarPanel.vue index 7cc37e7bb4..2b3745fa3f 100644 --- a/app/components/Diff/SidebarPanel.vue +++ b/app/components/Diff/SidebarPanel.vue @@ -57,13 +57,13 @@ const filteredChanges = computed(() => { function getSemverBadgeClass(semverDiff: string | null | undefined): string { switch (semverDiff) { case 'major': - return 'bg-red-500/10 text-red-500' + return 'bg-red-500/10 text-red-700 dark:text-red-400' case 'minor': - return 'bg-yellow-500/10 text-yellow-500' + return 'bg-yellow-500/10 text-yellow-700 dark:text-yellow-400' case 'patch': - return 'bg-green-500/10 text-green-500' + return 'bg-green-500/10 text-green-700 dark:text-green-400' case 'prerelease': - return 'bg-purple-500/10 text-purple-500' + return 'bg-purple-500/10 text-purple-700 dark:text-purple-400' default: return 'bg-bg-muted text-fg-subtle' } @@ -87,11 +87,15 @@ function handleFileSelect(file: FileChange) {
- +{{ compare.stats.filesAdded }} + +{{ compare.stats.filesAdded }} / - -{{ compare.stats.filesRemoved }} + -{{ compare.stats.filesRemoved }} / - ~{{ compare.stats.filesModified }} + ~{{ compare.stats.filesModified }} {{ diff --git a/app/components/Diff/SkipBlock.vue b/app/components/Diff/SkipBlock.vue index 5f81cb748e..744121563e 100644 --- a/app/components/Diff/SkipBlock.vue +++ b/app/components/Diff/SkipBlock.vue @@ -12,11 +12,11 @@ defineProps<{ - + - + {{ content || $t('compare.lines_hidden', { count }, count) }} diff --git a/app/components/LicenseChangeWarning.vue b/app/components/LicenseChangeWarning.vue new file mode 100644 index 0000000000..cfaa5f7236 --- /dev/null +++ b/app/components/LicenseChangeWarning.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/app/components/Link/Base.vue b/app/components/Link/Base.vue index d24e86ccb8..58043e8bc0 100644 --- a/app/components/Link/Base.vue +++ b/app/components/Link/Base.vue @@ -72,15 +72,16 @@ const keyboardShortcutsEnabled = useKeyboardShortcuts()