@fitx/gymx-ui v0.48.0
GymX UI - Vue Component Library
GymX UI is a Vue 3 component library designed to be used across FitX / vipion projects. It provides a collection of reusable UI components and composables, built with Vue 3 and TypeScript, to ensure a consistent design and user experience across all applications.
Table of Contents
Installation
To install the GymX UI library, you can use npm or yarn:
npm install @fitx/gymx-ui
# or
yarn add @fitx/gymx-uiUsage
Once installed, you can import components from the library and use them in your Vue 3 application.
Basic Example
<script lang="ts" setup>
import { GymxButton } from '@fitx/gymx-ui';
</script>
<template>
<div>
<gymx-button label="Click me!" />
</div>
</template>Make sure to import any necessary styles as well:
import '@fitx/gymx-ui/index.css';
// or
import '@fitx/gymx-ui/dist/index.css';or svg icons
import '@fitx/gymx-ui/icons/icon-close.svg';
// or as vue Component
import { IconClose } from '@fitx/gymx-ui';Development
Recommended IDE Setup
VSCode + Volar (and disable Vetur).
Available Scripts
you can run the following scripts:
npm run build: Builds Components, the Storybook documentation and runs unit tests.npm run build:lib: Builds the component library.npm run test:unit: Runs unit tests with Vitest.npm run test:e2e: Runs end-to-end tests using Playwright.npm run lint: Lints the codebase using ESLint.npm run format: Formats the code using Prettier.npm run storybook: Starts the Storybook server for local component development.npm run storybookSsl: Starts the Storybook server for local component development with ssl. Infonpm run copy-fitx-theme-to-sb: Copy the fitx theme styles artefact to storybook static foldernpm run temp-fix-copy-storybook: Copy the Coverage Report to storybook static folder
Storybook
GymX UI is integrated with Storybook for UI component development and documentation. To start the Storybook server locally, run:
npm run storybookAccess the live Storybook documentation at Storybook on GymX UI.
npm install
npm run storybookThis will start a local storybook server.
You can now work on your components in the src/ directory and see the changes live.
SSL
To avoid Storybook errors with self.crypto.randomUUID(); on the development server, Storybook can also be started via SSL, as SSL is required for UUID functionality.
openssl req -x509 -sha256 -nodes -newkey rsa:2048 -days 365 -keyout localhost.key -out localhost.crt
npm run storybookSslTo build the Storybook static files and generate Unit Tests documentation, run:
npm run buildCreate a new component
npx tsx utils/create-component.ts example-buttonThis will automatically create a folder called 'gymx-example-button' with the prefix 'gymx'. The folder will contain the vue file, a test files, story file for Storybook, index and types.
Type Checking and linitng
The project uses TypeScript for type safety. You can run type checks with:
npm run type-check
# Lint with [ESLint](https://eslint.org/)
npm run lintTesting
Unit Tests
We use Vitest for unit testing. To run the tests:
npm run test:unitEnd-to-End Tests
For e2e testing, we use Playwright. To run the e2e tests:
# Install browsers for the first run
npx playwright install
# When testing on CI, must build the project first
npm run build
# Runs the end-to-end tests
npm run test:e2e
# Runs the tests only on Chromium
npm run test:e2e -- --project=chromium
# Runs the tests of a specific file
npm run test:e2e -- tests/example.spec.ts
# Runs the tests in debug mode
npm run test:e2e -- --debugContributing
We welcome contributions to GymX UI!.
- Fork the repository.
- Create your feature branch (
git checkout -b feature/my-feature). - Commit your changes (
git commit -m 'Add some feature'). - Push to the branch (
git push origin feature/my-feature). - Create a pull request.
6 months ago
8 months ago
10 months ago
10 months ago
12 months ago
12 months ago
5 months ago
12 months ago
12 months ago
1 year ago
6 months ago
7 months ago
7 months ago
8 months ago
9 months ago
12 months ago
12 months ago
12 months ago
12 months ago
5 months ago
5 months ago
12 months ago
7 months ago
9 months ago
11 months ago
11 months ago
11 months ago
11 months ago
5 months ago
7 months ago
8 months ago
11 months ago
11 months ago
8 months ago
11 months ago
9 months ago
11 months ago
11 months ago
11 months ago
11 months ago
11 months ago
5 months ago
11 months ago
5 months ago
5 months ago
5 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago