| name | bc-design-create-component |
| description | Create a new shared Vue component aligned to the BC Government Design System. Use when asked to build, scaffold, or add a new shared UI component following BC Gov Visual Identity. |
Create a New Shared Component
- Read
.github/copilot-instructions.md for the project's tech stack and conventions
- Identify the closest BC Gov Design System component (invoke
bc-design-components if needed)
- Map BC Gov design tokens to Vuetify theme values using the
bc-design-tokens skill mapping table
- Create the component as a Vue 3
<script setup lang="ts"> SFC in web/src/shared/components/ following the Ua prefix naming convention
- Do not import React components โ reimplement the design intent only
- Use scoped styles with
--v-theme-* and --ua-* CSS variables; no hardcoded hex values
- Add a test in
web/src/__tests__/shared/components/UaComponents.spec.ts
- Verify WCAG AA compliance using the
bc-design-wcag skill:
- Visible focus ring on all interactive elements
aria-label or associated <label> for all controls
- Errors communicated in text, not colour alone
- Colour contrast meets minimums with the theme values
Component file template
<script setup lang="ts">
// props, emits, logic
</script>
<template>
<!-- semantic HTML, aria attributes -->
</template>
<style scoped>
/* use --v-theme-* and --ua-* variables โ no hardcoded hex values */
</style>