Text
The VText component is used to display text based on the Morpheme Design System.
Usage
Variants
To use the VText component, you can use it in your template as follows:
Font Weight
Use font-weight prop to change the font weight.
Colors
Use color prop to change the text color.
Props
| Name | Type | Default |
|---|---|---|
variant | TextVariants | '' |
color | ColorVariants | '' |
fontWeight | FontWeightVariants | '' |
Variants
ts
export const textVariants = [
'xs',
'sm',
'md',
'lg',
'xl',
'display-xs',
'display-sm',
'display-md',
'display-lg',
'display-xl',
'display-2xl',
] as const;
export type TextVariants = typeof textVariants[number];
export const fontWeightVariants = [
'thin',
'extrathin',
'normal',
'medium',
'semibold',
'bold',
'extrabold',
'black',
] as const;
export type FontWeightVariants = typeof fontWeightVariants[number];
export const colorVariants = [
'primary',
'warning',
'error',
'success',
] as const;
export type ColorVariants = typeof colorVariants[number] | string;
export const mappedColors: Record<ColorVariants | string, string> = {
primary: 'primary.500',
warning: 'warning.500',
error: 'error.500',
success: 'success.500',
};export const textVariants = [
'xs',
'sm',
'md',
'lg',
'xl',
'display-xs',
'display-sm',
'display-md',
'display-lg',
'display-xl',
'display-2xl',
] as const;
export type TextVariants = typeof textVariants[number];
export const fontWeightVariants = [
'thin',
'extrathin',
'normal',
'medium',
'semibold',
'bold',
'extrabold',
'black',
] as const;
export type FontWeightVariants = typeof fontWeightVariants[number];
export const colorVariants = [
'primary',
'warning',
'error',
'success',
] as const;
export type ColorVariants = typeof colorVariants[number] | string;
export const mappedColors: Record<ColorVariants | string, string> = {
primary: 'primary.500',
warning: 'warning.500',
error: 'error.500',
success: 'success.500',
};Slots
default
Default vue slot.
CSS Variables
scss
:root {
--v-text-font-weight: 400;
--v-text-xs-font-size: 0.75rem; // 12px
--v-text-xs-line-height: 1.125rem; // 18px
--v-text-sm-font-size: 0.875rem; // 14px
--v-text-sm-line-height: 1.25rem; // 20px
--v-text-md-font-size: 1rem; // 16px
--v-text-md-line-height: 1.5rem; // 24px
--v-text-lg-font-size: 1.125rem; // 18px
--v-text-lg-line-height: 1.75rem; // 28px
--v-text-xl-font-size: 1.25rem; // 20px
--v-text-xl-line-height: 1.875rem; // 30px
--v-text-display-xs-font-size: 1.5rem; // 24px
--v-text-display-xs-line-height: 2rem; // 32px
--v-text-display-sm-font-size: 1.875rem; // 30px
--v-text-display-sm-line-height: 2.357rem; // 38px
--v-text-display-md-font-size: 2.25rem; // 36px
--v-text-display-md-line-height: 2.75rem; // 44px
--v-text-display-lg-font-size: 3rem; // 48px
--v-text-display-lg-line-height: 3.75rem; // 56px
--v-text-display-xl-font-size: 3.75rem; // 60px
--v-text-display-xl-line-height: 4.5rem; // 68px
--v-text-display-2xl-font-size: 4.5rem; // 72px
--v-text-display-2xl-line-height: 5.625rem; // 80px
}:root {
--v-text-font-weight: 400;
--v-text-xs-font-size: 0.75rem; // 12px
--v-text-xs-line-height: 1.125rem; // 18px
--v-text-sm-font-size: 0.875rem; // 14px
--v-text-sm-line-height: 1.25rem; // 20px
--v-text-md-font-size: 1rem; // 16px
--v-text-md-line-height: 1.5rem; // 24px
--v-text-lg-font-size: 1.125rem; // 18px
--v-text-lg-line-height: 1.75rem; // 28px
--v-text-xl-font-size: 1.25rem; // 20px
--v-text-xl-line-height: 1.875rem; // 30px
--v-text-display-xs-font-size: 1.5rem; // 24px
--v-text-display-xs-line-height: 2rem; // 32px
--v-text-display-sm-font-size: 1.875rem; // 30px
--v-text-display-sm-line-height: 2.357rem; // 38px
--v-text-display-md-font-size: 2.25rem; // 36px
--v-text-display-md-line-height: 2.75rem; // 44px
--v-text-display-lg-font-size: 3rem; // 48px
--v-text-display-lg-line-height: 3.75rem; // 56px
--v-text-display-xl-font-size: 3.75rem; // 60px
--v-text-display-xl-line-height: 4.5rem; // 68px
--v-text-display-2xl-font-size: 4.5rem; // 72px
--v-text-display-2xl-line-height: 5.625rem; // 80px
}Standalone Installation
You can also install the VText component individually via @morpheme/text package:
bash
npm i @morpheme/textnpm i @morpheme/textvue
<script setup lang="ts">
import VText from '@morpheme/text';
</script>
<template>
<VText variant="display-sm" color="primary">Hello World</VText>
</template><script setup lang="ts">
import VText from '@morpheme/text';
</script>
<template>
<VText variant="display-sm" color="primary">Hello World</VText>
</template>Storybook
View Storybook documentation here.
Morpheme