diff --git a/app/components/Card.vue b/app/components/Card.vue new file mode 100644 index 000000000..191070f21 --- /dev/null +++ b/app/components/Card.vue @@ -0,0 +1,23 @@ + + + diff --git a/app/components/Filter/Panel.vue b/app/components/Filter/Panel.vue index e244829df..349b174da 100644 --- a/app/components/Filter/Panel.vue +++ b/app/components/Filter/Panel.vue @@ -228,7 +228,7 @@ const hasActiveFilters = computed(() => !!filterSummary.value) :value="filters.text" :placeholder="searchPlaceholder" autocomplete="off" - class="input-base" + class="w-full bg-bg-subtle border border-border rounded-md px-4 py-3 font-mono text-sm text-fg placeholder:text-fg-subtle transition-all duration-200 focus:(border-fg/40 outline-none ring-1 ring-fg/10)" @input="handleTextInput" /> diff --git a/app/components/Package/Card.vue b/app/components/Package/Card.vue index e40b1db72..0d35143b4 100644 --- a/app/components/Package/Card.vue +++ b/app/components/Package/Card.vue @@ -1,4 +1,6 @@ diff --git a/app/components/Package/Skeleton.vue b/app/components/Package/Skeleton.vue index 103e39b2c..9bac0da4e 100644 --- a/app/components/Package/Skeleton.vue +++ b/app/components/Package/Skeleton.vue @@ -12,20 +12,20 @@

- +

- - - + + +
- + @@ -36,7 +36,7 @@ {{ $t('package.skeleton.license') }}
- +
@@ -46,7 +46,7 @@ {{ $t('package.skeleton.weekly') }}
- +
@@ -56,7 +56,7 @@ {{ $t('package.skeleton.size') }}
- +
@@ -66,7 +66,7 @@ {{ $t('package.skeleton.deps') }}
- +
@@ -76,7 +76,7 @@ {{ $t('package.skeleton.updated') }}
- +
@@ -85,16 +85,16 @@ @@ -110,10 +110,12 @@
-
- +
+
- +
@@ -131,20 +133,20 @@
- + - - - + + + - - - - + + + + -
- - + + +
@@ -161,10 +163,10 @@
  • - +
  • - +
@@ -179,12 +181,12 @@
    -
  • -
  • -
  • -
  • -
  • -
  • +
  • +
  • +
  • +
  • +
  • +
@@ -199,24 +201,24 @@
- - + +
- - + +
- - + +
- - + +
- - + +
@@ -232,20 +234,20 @@
  • - - + +
  • - - + +
  • - - + +
  • - - + +
diff --git a/app/components/Package/WeeklyDownloadStats.vue b/app/components/Package/WeeklyDownloadStats.vue index 3bf674b35..3ee7382a0 100644 --- a/app/components/Package/WeeklyDownloadStats.vue +++ b/app/components/Package/WeeklyDownloadStats.vue @@ -223,20 +223,20 @@ const config = computed(() => {
- +
- +
-
diff --git a/app/components/SearchSuggestionCard.vue b/app/components/SearchSuggestionCard.vue index 83797dab5..b953c9345 100644 --- a/app/components/SearchSuggestionCard.vue +++ b/app/components/SearchSuggestionCard.vue @@ -12,18 +12,7 @@ defineProps<{ diff --git a/app/components/Settings/Toggle.server.vue b/app/components/Settings/Toggle.server.vue index 71d4e4ee9..293618c67 100644 --- a/app/components/Settings/Toggle.server.vue +++ b/app/components/Settings/Toggle.server.vue @@ -10,7 +10,7 @@ defineProps<{ {{ label }} - +

{{ description }} diff --git a/app/components/SkeletonBlock.vue b/app/components/SkeletonBlock.vue new file mode 100644 index 000000000..c455c8979 --- /dev/null +++ b/app/components/SkeletonBlock.vue @@ -0,0 +1,10 @@ + + + + diff --git a/app/components/SkeletonInline.vue b/app/components/SkeletonInline.vue new file mode 100644 index 000000000..dbfb255e7 --- /dev/null +++ b/app/components/SkeletonInline.vue @@ -0,0 +1,12 @@ + + + + diff --git a/app/pages/[...package].vue b/app/pages/[...package].vue index 9fa2d76f3..b4e5bc35e 100644 --- a/app/pages/[...package].vue +++ b/app/pages/[...package].vue @@ -503,10 +503,10 @@ function handleClick(event: MouseEvent) { class="self-baseline ms-1 sm:ms-2" /> diff --git a/app/pages/code/[...path].vue b/app/pages/code/[...path].vue index 74f37dadb..4df73fa19 100644 --- a/app/pages/code/[...path].vue +++ b/app/pages/code/[...path].vue @@ -482,31 +482,31 @@ defineOgImageComponent('Default', {

- +
-
-
-
+ + +
-
-
-
-
+ + + +
-
-
-
-
+ + + +
-
-
-
-
-
-
+ + + + + +
diff --git a/app/pages/docs/[...path].vue b/app/pages/docs/[...path].vue index c592c5d4e..de9efc329 100644 --- a/app/pages/docs/[...path].vue +++ b/app/pages/docs/[...path].vue @@ -165,10 +165,10 @@ const showEmptyState = computed(() => docsData.value?.status !== 'ok')
-
-
-
-
+ + + +
diff --git a/app/pages/~[username]/orgs.vue b/app/pages/~[username]/orgs.vue index 9b92f9212..97782cd99 100644 --- a/app/pages/~[username]/orgs.vue +++ b/app/pages/~[username]/orgs.vue @@ -216,10 +216,7 @@ defineOgImageComponent('Default', { > {{ org.role }} - +
@@ -236,7 +233,7 @@ defineOgImageComponent('Default', { ) }} - +
diff --git a/test/unit/a11y-component-coverage.spec.ts b/test/unit/a11y-component-coverage.spec.ts index 81d89fdfb..1ea09aeb8 100644 --- a/test/unit/a11y-component-coverage.spec.ts +++ b/test/unit/a11y-component-coverage.spec.ts @@ -41,6 +41,9 @@ const SKIPPED_COMPONENTS: Record = { 'Package/WeeklyDownloadStats.vue': 'Uses vue-data-ui VueUiSparkline - has DOM measurement issues in test environment', 'UserCombobox.vue': 'Unused component - intended for future admin features', + 'Card.vue': 'Already covered indirectly via other component tests', + 'SkeletonBlock.vue': 'Already covered indirectly via other component tests', + 'SkeletonInline.vue': 'Already covered indirectly via other component tests', } /** diff --git a/uno.config.ts b/uno.config.ts index 67a80d954..a0f730355 100644 --- a/uno.config.ts +++ b/uno.config.ts @@ -139,19 +139,6 @@ export default defineConfig({ ], ['link-subtle', 'text-fg-muted hover:text-fg transition-colors duration-200 focus-ring'], - // Cards - [ - 'card', - 'bg-bg-subtle border border-border rounded-lg p-4 sm:p-6 transition-[border-color,background-color] duration-200', - ], - ['card-interactive', 'card hover:(border-border-hover bg-bg-muted) cursor-pointer'], - - // Form elements - [ - 'input-base', - 'w-full bg-bg-subtle border border-border rounded-md px-4 py-3 font-mono text-sm text-fg placeholder:text-fg-subtle transition-all duration-200 focus:(border-fg/40 outline-none ring-1 ring-fg/10)', - ], - // Tags/badges [ 'tag', @@ -166,21 +153,6 @@ export default defineConfig({ ['badge-purple', 'bg-badge-purple/10 text-badge-purple'], ['badge-pink', 'bg-badge-pink/10 text-badge-pink'], ['badge-subtle', 'bg-bg-subtle text-fg-subtle'], - - // Code blocks - [ - 'code-block', - 'bg-bg-muted border border-border rounded-md p-4 font-mono text-sm overflow-x-auto', - ], - - // Skeleton loading - ['skeleton', 'bg-bg-elevated rounded animate-skeleton-pulse'], - - // Subtle divider - ['divider', 'border-t border-border'], - - // Section spacing - ['section', 'py-8 sm:py-12'], ], rules: [ // Custom scale for active states