Skip to content

Developing New Components

To develop a new component you need to do 3 things: create and export your component, import your component into VitePress and create a page for your components documentation.

Exporting your component

  • Create a .vue file in ~/components/. Ex: /components/my-component/my-component.vue
  • Import your component into ~/index.ts. Ex import CiMyComponent from './components/my-component/my-component.vue';
  • Add your component to the export. Ex: export { ..., CiMyComponent }

Import your component into VitePress

  • Import your component into ~/docs/.vitepress/theme/index.ts. Ex: import { ..., CiMyComponent } from '@ci/stratus-components'
  • Tell VitePress to use your component. Ex: app.component('CiMyComponent', CiMyComponent)

Create a page in the docs

  • Add a new folder called my-component in the docs/components folder.
  • Create index.md file in this folder.
  • Add route to this component's documentation in ~/docs/.vitepress/theme/config.ts. Ex: { text: 'My Component', link: '/components/my-component' }

You can now locally develop your component by adding code to that markdown file.

Adding demos

  • Create a my-component-feature-demo.vue file in the my-component folder.
  • Import it at the start of the my-component/index.md file. Ex: <script setup> import myComponentFeatureDemo from './my-component-feature-demo.vue' </script>
  • Insert it into text the following way:
<my-component-feature-demo />
<<< ./my-component-feature-demo.vue

If built in vp classes are overriding component classes, wrap the demo in <div class="vp-raw">.

See changes

To see changes to the design system components inside your demo run npm run build to rebuild the components. Changes to the markdown will be watched automatically by VitePress