0.1.6 • Published 2 years ago

yuv-components v0.1.6

Weekly downloads
-
License
-
Repository
-
Last release
2 years ago

yuv-components

Разработка производится для vue 3 и не гарантируется работа на более старой версии

Пакет компонентов (проект находится в активной разработке и будет дополняться компонентами по мере возможности)

Подключение

в файле main.js

import 'yuv-components/src/Styles/Variable.styl'
import 'yuv-components/src/Styles/ResetStyle.styl'
import 'yuv-components/src/Styles/yuv-font.styl'
import Components from 'yuv-components/src/components'

const app = createApp(App)

for (const key in Components) {
  app.component(key, Components[key])
}

color

Цвета используемые в пакете

:root {
    /* Color styles */
    --black-dark: #333333;
    --black-default: #4F4F4F;
    --black-light: #828282;
    --black-lighter: #BDBDBD;
    --red-dark: #FF0000;
    --red-default: #EB5757;
    --red-light: #E18080;
    --orange: #F2994A;
    --yellow: #F2C94C;
    --green-dark: #219653;
    --green-default: #27AE60;
    --green-light: #6FCF97;
    --blue-dark: #2F80ED;
    --blue-default: #2D9CDB;
    --blue-light: #56CCF2;
    --white-default: #FFFFFF;
    --white-dark: #F8F8F8;
    --white-darker: #EEEEEE;
    --blak-transparent: rgba(0, 0, 0, 0.4);
    --body-large: 16px;
    --body-medium: 14px;
    --bod-small: 12px;

    --label-large: 14px;
    --label-medium: 12px;
    --label-small: 11px;

    --title-large: 22px;
    --title-medium: 16px;
    --title-small: 14px;

    --headline-large: 32px;
    --headline-medium: 28px;
    --headline-small: 24px;

    --display-large: 57px;
    --display-medium: 45px;
    --display-small: 36px;
    }

/* Font size */
body[data-theme='brand'] {
    --primary: #6750A4;
    --primary_opaciti_08: rgba(103, 80, 164, 0.8);
    --primary_opaciti_008: rgba(103, 80, 164, 0.08); 
    --primary_opaciti_005: rgba(103, 80, 164, 0.05);
    --primary_opaciti_012: rgba(103, 80, 164, 0.12);    
    --on-primary: #FFFFFF;
    --promary-container: #EADDFF;
    --on-primary-container: #21005D;
    --secondary: #625B71;
    --on-secondary: #FFFFFF;
    --secondary-container: #E8DEF8;
    --on-secondary-container: #1D192B;
    --tertiary: #7D5260;
    --on-tertiary: #FFFFFF;
    --tertiary-container: #FFD8E4;
    --on-tertiary-container: #31111D;
    --error: #B3261E;
    --on-error: #FFFFFF;
    --error-container: #F9DEDC;
    --on-error-container: #410E0B;
    --background: #FFFBFE;
    --on-backgroud: #1C1B1F;
    --surface: #FFFBFE;
    --on-surface: #1C1B1F;
    --surface-variant: #FFFBFE;
    --on-surface-variant: #49454F;
    --outline: #79747E;
}
body[data-theme='dark'] {
    --primary: #D0BCFF;
    --primary_opaciti_08: rgba(103, 80, 164, 0.8);
    --primary_opaciti_008: rgba(103, 80, 164, 0.08);
    --primary_opaciti_005: rgba(103, 80, 164, 0.05);
    --primary_opaciti_012: rgba(103, 80, 164, 0.12);
    --on-primary: #381E72;
    --promary-container: #4F378B;
    --on-primary-container: #EADDFF;
    --secondary: #CCC2DC;
    --on-secondary: #332D41;
    --secondary-container: #4A4458;
    --on-secondary-container: #E8DEF8;
    --tertiary: #EFB8C8;
    --on-tertiary: #492532;
    --tertiary-container: #633B48;
    --on-tertiary-container: #FFD8E4;
    --error: #F2B8B5;
    --on-error: #601410;
    --error-container: #8C1D18;
    --on-error-container: #F9DEDC;
    --background: #1C1B1F;
    --on-backgroud: #E6E1E5;
    --surface: #1C1B1F;
    --on-surface: #E6E1E5;
    --surface-variant: #49454F;
    --on-surface-variant: #CAC4D0;
    --outline: #938F99;
}

icons

Список иконок в файле шрифтовых иконок и использование в коде

<span class="icon icon-user-check"/>
  • .icon-alert
  • .icon-arrow-down
  • .icon-arrow-left
  • .icon-arrow-right
  • .icon-arrow-up
  • .icon-check
  • .icon-edit
  • .icon-list
  • .icon-log-in
  • .icon-log-out
  • .icon-minus
  • .icon-plus
  • .icon-repeat
  • .icon-save
  • .icon-trash
  • .icon-user-check
  • .icon-user-plus
  • .icon-x

yuv-button

Компонент кнопка

Параметры

  • size {String} - Размер S, M, L
  • label {String} - Имя кнопки
  • leftIcon {String} - Левая иконка (класс иконки из пакета шрифтовых иконок)
  • rightIcon {String} - Правая иконка (класс иконки из пакета шрифтовых иконок)
  • type {String} - Цветовая схема field, outline, text, elevanted, tonal
  • fun {Function} - Функция выполняемая по нажатию

Использование в коде

<yuv-button
    size="M"
    label="Кнопка"
    leftIcon="icon-arrow-left"
    rightIcon="icon-arrow-right"
    type="base"
    :fun="testClick"
/>

yuv-icon-button

Компонент иконочной кнопки

Параметры

  • size {String} - Размер S, M, L
  • icon {String} - Название иконки из списка выше (без icon-)
  • type {String} - Цветовая схема Surface, Primary, Secondary, Tetriary
  • fun {Function} - Функция выполняемая по нажатию

Использование в коде

<yuv-icon-button
    class="Components-Button"
    :fun="testClick"
    icon="x"
    type="Primary"
/>

yuv-input

Компонент input (со встроенной валидацией вводимых данных)

Валидация типа password производится по следующим параметрам:

  • должны присутствовать цифры
  • должны присутствовать большие буквы
  • должны присутствовать маленькие буквы
  • длинна пароля не менее 8 и не более 64 символов
  • все на английском языке

На данный момент времени реализована поддержка типов (text, password, email)

Параметры:

  • type {String} - Тип поля для ввода (по умолчанию text)
  • id {String} - id поля для ввода (обязательно)
  • label {String} - Label вводимого поля
  • disabled {Boolean} - идентификатор активного поля ввода (true / false)
  • icon {String} - Иконка для поля ввода
  • errMessage {String} - Сообщение об ошибке ввода для пользователя

Использование в коде:

<yuv-input 
    id="id"
    type="text" 
    label="Label" 
    v-model="test"
/>

yuv-notification

Компонент для вывода информационных сообщений

Использует store (vuex). Можно закрыть кликом по сообщению.

Дополнительное подключение:

// В файле store (index.js)
import Notification from 'yuv-components/src/store/Notification'

modules: {
  Notification
}

В файле App.vue

<yuv-notification/>

Вызов сообщения производиться следующим образом:

store.commit('SetNotification', {
  header: 'Ошибка ввода данных',
  body: 'Не все поля ввода заполнены корректно',
  flag: true,
  status: 'error',
  duration: 5000
})

Параметры:

  • header - Заголовок сообщения
  • body - Тело сообщения
  • flag - флаг на открытие (true - открыть, false - закрыть)
  • status - ошибка или успех (error или success)
  • duration - задержка перед закрытием (0 - не закрывать автоматически)

yuv-global-loader

Компонент loader закрывающий доступ ко всему контенту

Дополнительное подключение

// в файле store (index.js)
import GlobalLoader from 'yuv-components/src/store/GlobalLoader'

modules: {
  GlobalLoader
}

В файле App.vue

<yuv-global-loader/>

Для показа и скрытия использовать мутацию SetGloaderFlag со значением true или false

yuv-textarea

Компонент textarea

Параметры:

  • id {String} - id поля для ввода (обязательно)
  • label {String} - Label вводимого поля
  • disabled {Boolean} - идентификатор активного поля ввода (true / false)
  • icon {String} - Иконка для поля ввода (Не реализовано)
  • errMessage {String} - Сообщение об ошибочном вводе (не реализовано)

Использование в коде:

<yuv-input 
    id="id"
    type="text" 
    label="Label" 
    v-model="test"
/>
0.1.4

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.0.20

2 years ago

0.0.21

2 years ago

0.0.22

2 years ago

0.0.23

2 years ago

0.0.24

2 years ago

0.0.25

2 years ago

0.0.12-a

2 years ago

0.0.12-b

2 years ago

0.0.16-a

2 years ago

0.0.17-a

2 years ago

0.0.15

2 years ago

0.0.16

2 years ago

0.0.17

2 years ago

0.0.18

2 years ago

0.0.19

2 years ago

0.0.10

2 years ago

0.0.11

2 years ago

0.0.12

2 years ago

0.0.13

2 years ago

0.0.14

2 years ago

0.1.0

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.0.26

2 years ago

0.0.9

2 years ago

0.0.27

2 years ago

0.1.3

2 years ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5-c

2 years ago

0.0.5-b

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago