0.5.3 • Published 2 months ago

@studio-west/component-sw v0.5.3

Weekly downloads
-
License
MIT
Repository
-
Last release
2 months ago

Component SW - UI компоненты с поддержкой светлой и темной системной темы

Библиотека компонентов Component SW предоставляет набор готовых UI-компонентов на vue 3 для быстрой разработки интерфейсов. Каждый компонент имеет набор свойств, которые можно настраивать для достижения желаемого поведения и внешнего вида. Имеет поддержку светлой и темной системной темы. А также имеет поддержку мобильных систем разработки


Component SW - UI Components with Light and Dark Theme Support

The Component SW library provides a set of ready-to-use UI components on Vue 3 for rapid interface development. Each component has a set of properties that can be customized to achieve the desired behavior and appearance. It supports both light and dark system themes.


Содержание / Table of Contents


Установка / Install

npm install @studio-west/component-sw 

Глобальное подключение / global add to main.js:

import { Library } from '@studio-west/component-sw';
import '@studio-west/component-sw/dist/component-sw.css';

app.use(Library)

Установка в ручную светлой и темной темы - добавление к тегу html классов dark или light / Installation in a manual light and dark theme - adding to the tag html classesdark or light

Пример использования / Example Usage

const darkMode = () => {
    if(mode.value === 'dark-theme') {
        document.querySelector('html').classList.remove('light')
        document.querySelector('html').classList.add('dark')
    }
    else {
        document.querySelector('html').classList.remove('dark')
        document.querySelector('html').classList.add('light')
    }
    mode.value = (document.querySelector('html').classList.contains('dark')) ? 'light-theme' : 'dark-theme'
}

SwAlert

Функция / Компонент SwAlert

Свойства / Properties

ИмяТипЗначения/Описание
classStringДобавляет пользовательский CSS-класс к компоненту.
sizeStringРазмер сообщения: 'large', 'small'.
typeStringТип сообщения: 'primary', 'success', 'info', 'warning', 'danger'.
messageStringСамо сообщение.
durationNumberВремя отображения в миллисекундах.
beforeStringНазвание svg в спрайте загружаемое в начале.
afterStringНазвание svg в спрайте загружаемое в конце.

Пример использования / Example Usage

// .js addons
import { Alert } from "@studio-west/component-sw"
Alert({message: 'Message', type: 'danger', duration:10000, before:'bell'})

// Composition API else <script setup>:
import {inject} from "vue"
const Alert = inject('Alert')
Alert({message: 'Alarm!', type: 'warning'})
//Options API:
this.$Alert({message: 'Welcome!', type: 'success'});

SwButton

Компонент SwButton представляет собой кнопку с различными настраиваемыми параметрами.

Свойства / Properties

ИмяТипЗначения/Описание
classStringДобавляет пользовательский CSS-класс к компоненту.
sizeStringРазмер кнопки: 'large', 'small'.
typeStringТип кнопки: 'primary', 'success', 'info', 'warning', 'danger'.
roundBooleanДелает кнопку визуально закругленной.
textBooleanДелает кнопку визуально похожей на текст (без фона).
linkBooleanПреобразует кнопку в ссылку.
hrefStringURL, на который будет перенаправлен пользователь при клике (если link=true).

Пример использования / Example Usage

<sw-button
        class="custom-class"
        size="large"
        type="primary"
        round
        text
        link
        href="https://example.com"
>
    Нажми меня / Click Me
</sw-button>

SwCollapse

Компонент SwCollapse представляет собой аналог тегов + , но с анимацией.

Свойства / Properties

ИмяТипЗначения/Описание
visualBooleanВидимость 'true' - по умолчанию.

Слоты / Slots

Default - Контент для скрытия

Пример использования / Example Usage

<sw-collapse :visual="false">
    <p>Скрытое / Hidden</p>
</sw-collapse>

SwDatePicker

Компонент SwDatePicker представляет собой панель с календарем.

Свойства / Properties

ИмяТипЗначения/Описание
dataObjectНачальные данные - диапазон ( при 'solid' - используется только 'startDate') изначальных выбранных дат {endDate: '14-04-2025', startDate:'30-03-2025', holiday: { preholidays: "2020-03-30", holidays: "2020-03-30", holiday: "2020-03-30", nowork: "2020-03-30" }}, ограничение не более 2х месяцев.
limitationBoolean, ArrayМассив ограничений дат: {endDate: '14-04-2025', startDate:'30-03-2025'}, false - по умолчанию.
rangeStringТип календаря: 'year','range', 'solid' - по умолчанию.

События / Events

input - событие выбора с данными {dateStart: "11.11.2011", dateEnd: "14-12-2011" ( при range), count: 1 }

Пример использования / Example Usage

<sw-date-picker
        :data="{startDate: '11.11.2011' endDate: '14-12-2011'}"
        limitation=" [{endDate: '14-04-2025', startDate:'30-03-2025'}]"
        range="range"
        @selectPicker.stop="processing"
/>

SwDropdown

Компонент SwDropdown это всплывающее меню с возможностью настройки места относительного всплытия и типа Тригера.

Свойства / Properties

ИмяТипЗначения/Описание
classStringДобавляет пользовательский CSS-класс к компоненту.
sizeStringРазмер поля: 'large', 'small'.
typeString'primary', 'success', 'info', 'warning', 'danger'.
triggerString'click' - по умолчанию, 'hover', 'context','none'.
placementStringОтносительное место всплытия 'bottom-left' - по умолчанию, 'bottom', 'bottom-right', 'top-left', 'top', 'top-right', 'left', 'right'.
maxWidthNumberМаксимальная ширина меню в пикселях.

Слоты / Slots

Default - текст описания или модуль / модули

Пример использования / Example Usage

<script>let visual = false </script>
<sw-dropdown
  class="custom-class"
  trigger="none"
  v-model="visual"
  maxWidth="o250"
>
  <button @cick="visual = true">Описание</button>
</sw-dropdown>

SwDropdownItem

Компонент SwDropdownItem это пункт во всплывающем меню с возможностью добавления в начало иконки.

Свойства / Properties

ИмяТипЗначения/Описание
classStringДобавляет пользовательский CSS-класс к компоненту.
sizeStringРазмер поля: 'large', 'small'.
typeString'primary', 'success', 'info', 'warning', 'danger'.
iconBeforeStringНазвание иконки в коллекции.

Слоты / Slots

Default - текст названия или модуль

Пример использования / Example Usage

<script>let visual = false </script>
<sw-dropdown
  class="custom-class"
  trigger="none"
  v-model="visual"
  maxWidth="o250"
>
  <sw-dropdown-item @cick="visual = true" iconBefore="documents">Описание</sw-dropdown-item>
</sw-dropdown>

SwInput

Компонент SwInput представляет собой поле ввода с возможностью настройки внешнего вида и поведения.

Свойства / Properties

ИмяТипЗначения/Описание
nameStringОбязателен! нужен для связывания через id input и label.
classStringДобавляет пользовательский CSS-класс к компоненту.
sizeStringРазмер поля: 'large', 'small'.
typeStringТип поля: 'text'- по умолчанию, 'phone'- телефон, 'password' - пароль
beforeStringНазвание svg в спрайте загружаемое в начале.
afterStringНазвание svg в спрайте загружаемое в конце.
placeholderStringТекст Placeholder.
requiredBooleanПризнак обязательно ли для заполнения false - по умолчанию.
labelStringТекст в Label.

Слоты / Slots

#prefix - вставка при отсутствии before не обязательно / Insertion when before is not used (optional).

#suffix - вставка при отсутствии after не обязательно / Insertion when after is not used (optional).

События / Events

prefix - клик иконке before

suffix - клик иконке after

focusInput - focus на поле ввода

Пример использования / Example Usage

<sw-input 
  v-model="model"
  name="input"
  class="custom-class" 
  size="large" 
  type="phone"
  before="phone"
  after=""
  placeholder="input"
  label="input"
  @prefix="console.log('before')"
>
  <template #suffix>#</template>
</sw-input>

SwMessage

Компонент SwMessage это выплывающее окно, центрируется по центру.

Свойства / Properties

ИмяТипЗначения/Описание
nameStringДобавляет текстовый заголовок, при отсутствии реализован слот "header".
classStringДобавляет пользовательский CSS-класс к компоненту.
iconAfterStringДобавляет иконку из коллекции для кнопки закрытия (при наличии заголовка).

Слоты / Slots

#header - слот для заголовка окна.

#footer - слот для подвала.

Пример использования / Example Usage

<sw-message
  v-model="model"
  name="Message"
  class="custom-class"
>
  <p>Описание / Description</p>
</sw-message>

SwSection

Компонент SwSection это тег section с шаблоном из слотов, по умолчанию в слот #header добавлено заголовок и иконка.

Свойства / Properties

ИмяТипЗначения/Описание
nameStringДобавляет заголовок в секцию.
classStringДобавляет пользовательский CSS-класс к компоненту.
iconAfterStringДобавляет иконку из коллекции.

Слоты / Slots

#header - слот для заголовка секции.

Default - содержимое секции

#footer - слот для подвала секции.

События / Events

header - клик по всему Header

Пример использования / Example Usage

<sw-section
  name="section"
  class="custom-class"
  iconAfter="cross"
>
  <p>Содержимое / Content</p>
  <template #footer>
      <p>Footer!</p> 
  </template>
</sw-section>

SwSelect

Компонент SwSelect - реализация подсказок для https://dadata.ru/api/suggest/address/.

Свойства / Properties

ИмяТипЗначения/Описание
classStringДобавляет пользовательский CSS-класс к popup.
sizeStringРазмер поля: 'large', 'small'.
placeholderStringДобавляет в placeholder описание.
tokenStringAPI-ключ для DADATA.

Пример использования / Example Usage

<sw-select
  v-model="model"
  class="custom-class"
  placeholder="placeholder"
  :token="${API_KEY}"
/>

SwSkeleton

Компонент SwSkeleton используется для анимации загрузки данных, выступая оболочкой компонента SwSkeletonItem или пользовательского компонента при использовании слота #skeleton, по умолчанию в слот #skeleton добавлен 1 SwSkeletonItem с базовыми настройками

Свойства / Properties

ИмяТипЗначения/Описание
classStringДобавляет пользовательский CSS-класс к компоненту.
visualBooleanТригер на переключение.

Слоты / Slots

Default - Содержимое

#skeleton - слот для skeleton

Пример использования / Example Usage

<sw-skeleton
  :visual="visual"
>
  <p>Содержимое / Content</p>
</sw-skeleton>

SwSkeletonItem

Компонент SwSkeletonItem представляет собой полоску псевдо данных с возможностью анимирования.

Свойства / Properties

ИмяТипЗначения/Описание
widthStringШирина элемента в процентах.
classStringДобавляет пользовательский CSS-класс к компоненту.
animateStringДобавляет анимацию в элемент.
sizeStringРазмер поля: 'large', 'small'.

Пример использования / Example Usage

<sw-skeleton-item 
  v-model="model"
  name="switch"
  class="custom-class"
  id="switch"
  on="on"
  off="off"
>
  <p>Описание / Description</p>
</sw-skeleton-item>

SwSwitch

Компонент SwSwitch представляет собой чекбокс с возможностью настройки внешнего вида галочка | переключатель | переключатель с подписью и поведения.

Свойства / Properties

ИмяТипЗначения/Описание
nameStringДобавляет в атрибут 'name'.
classStringДобавляет пользовательский CSS-класс к компоненту.
sizeStringРазмер поля: 'large', 'small'.
idStringДобавляет в атрибут 'id', 'checkbox'- по умолчанию.
onStringТекст при true.
offStringТекст при false.
checkboxBooleanВизуализирует как обычный чекбокс.

Слоты / Slots

Default - текст описания

Пример использования / Example Usage

<sw-switch 
  v-model="model"
  name="switch"
  class="custom-class"
  id="switch"
  on="on"
  off="off"
>
  <p>Описание / Description</p>
</sw-switch>

SwTabs

Компонент SwTabs представляет собой панель вкладок SwTabsPane.

Свойства / Properties

ИмяТипЗначения/Описание
classStringДобавляет пользовательский CSS-класс к компоненту.

Слоты / Slots

Default - для компонентов SwTabsPane

Пример использования / Example Usage

<sw-tabs
  v-model="activeTabId"
  class="custom-class"
>
  <sw-tabs-pane label="Label" title="Title">Вкладка / Tab</sw-tabs-pane>
</sw-tabs>

SwTabsPane

Компонент SwTabsPane представляет собой оболочку для вкладок.

Свойства / Properties

ИмяТипЗначения/Описание
titleStringназвание унификатор - обязателен при отсутствии label будет взят за название вкладки.
labelStringназвание вкладки при отсутствии возьмется из title.

Слоты / Slots

Default - для вкладок

Пример использования / Example Usage

<sw-tabs
  v-model="activeTabId"
  class="custom-class"
>
  <sw-tabs-pane label="Label" title="Title">Вкладка / Tab</sw-tabs-pane>
</sw-tabs>

Лицензия / License

Этот проект распространяется под лицензией MIT. Подробности см. в файле LICENSE . / This project is distributed under the MIT License. For details, see the LICENSE file.


Если у вас есть вопросы или предложения, пожалуйста, создайте issue на почту info@studiowest.ru. / If you have any questions or suggestions, please create an issue to E-mail info@studiowest.ru.

0.5.3

2 months ago

0.5.2

2 months ago

0.5.1

2 months ago

0.5.0

2 months ago

0.4.21

2 months ago

0.4.20

2 months ago

0.4.19

2 months ago

0.4.18

2 months ago

0.4.17

2 months ago

0.4.16

2 months ago

0.4.15

2 months ago

0.4.14

2 months ago

0.4.13

2 months ago

0.4.12

2 months ago

0.4.11

2 months ago

0.4.10

2 months ago

0.4.9

2 months ago

0.4.8

2 months ago

0.4.7

2 months ago

0.4.6

2 months ago

0.4.5

2 months ago

0.4.4

2 months ago

0.4.3

2 months ago

0.4.2

2 months ago

0.4.1

2 months ago

0.4.0

2 months ago

0.3.54

2 months ago

0.3.53

2 months ago

0.3.52

2 months ago

0.3.51

2 months ago

0.3.50

2 months ago

0.3.49

2 months ago

0.3.48

2 months ago

0.3.47

2 months ago

0.3.46

2 months ago

0.3.45

2 months ago

0.3.44

2 months ago

0.3.43

2 months ago

0.3.42

2 months ago

0.3.41

2 months ago

0.3.40

2 months ago

0.3.39

2 months ago

0.3.38

2 months ago

0.3.37

3 months ago

0.3.36

3 months ago

0.3.35

3 months ago

0.3.34

3 months ago

0.3.33

3 months ago

0.3.32

3 months ago

0.3.31

3 months ago

0.3.30

3 months ago

0.3.29

3 months ago

0.3.28

3 months ago

0.3.27

3 months ago

0.3.26

3 months ago

0.3.25

3 months ago

0.3.24

3 months ago

0.3.23

3 months ago

0.3.22

3 months ago

0.3.21

3 months ago

0.3.20

3 months ago

0.3.19

3 months ago

0.3.18

3 months ago

0.3.17

3 months ago

0.3.16

3 months ago

0.3.15

3 months ago

0.3.14

3 months ago

0.3.13

3 months ago

0.3.12

3 months ago

0.3.11

3 months ago

0.3.10

3 months ago

0.3.9

3 months ago

0.3.8

3 months ago

0.3.7

3 months ago

0.3.6

3 months ago

0.3.5

3 months ago

0.3.4

3 months ago

0.3.3

3 months ago

0.3.2

3 months ago

0.3.1

3 months ago

0.3.0

3 months ago

0.2.32

3 months ago

0.2.31

3 months ago

0.2.30

3 months ago

0.2.29

3 months ago

0.2.28

3 months ago

0.2.27

3 months ago

0.2.26

3 months ago

0.2.25

3 months ago

0.2.24

3 months ago

0.2.23

3 months ago

0.2.22

3 months ago

0.2.21

3 months ago

0.2.20

3 months ago

0.2.19

3 months ago

0.2.18

3 months ago

0.2.17

3 months ago

0.2.16

3 months ago

0.2.15

3 months ago

0.2.14

3 months ago

0.2.13

3 months ago

0.2.12

3 months ago

0.2.11

3 months ago

0.2.10

3 months ago

0.2.9

3 months ago

0.2.8

3 months ago

0.2.7

3 months ago

0.2.6

3 months ago

0.2.5

3 months ago

0.2.4

3 months ago

0.2.3

3 months ago

0.2.2

4 months ago

0.2.1

4 months ago

0.2.0

4 months ago

0.1.50

4 months ago

0.1.49

4 months ago

0.1.48

4 months ago

0.1.47

4 months ago

0.1.46

4 months ago

0.1.45

4 months ago

0.1.44

4 months ago

0.1.43

4 months ago

0.1.42

4 months ago

0.1.41

4 months ago

0.1.40

4 months ago

0.1.39

4 months ago

0.1.38

4 months ago

0.1.37

4 months ago

0.1.36

4 months ago

0.1.35

4 months ago

0.1.34

4 months ago

0.1.33

4 months ago

0.1.32

4 months ago

0.1.31

4 months ago

0.1.30

4 months ago

0.1.29

4 months ago

0.1.28

4 months ago

0.1.27

4 months ago

0.1.26

4 months ago

0.1.25

4 months ago

0.1.24

4 months ago

0.1.23

4 months ago

0.1.22

4 months ago

0.1.21

4 months ago

0.1.20

4 months ago

0.1.19

4 months ago

0.1.18

4 months ago

0.1.17

4 months ago

0.1.16

4 months ago

0.1.15

4 months ago

0.1.14

4 months ago

0.1.13

4 months ago

0.1.12

4 months ago

0.1.11

4 months ago

0.1.10

4 months ago

0.1.9

4 months ago

0.1.8

4 months ago

0.1.7

4 months ago

0.1.6

4 months ago

0.1.5

4 months ago

0.1.4

4 months ago

0.1.3

4 months ago

0.1.2

4 months ago

0.1.1

4 months ago

0.1.0

4 months ago

0.0.1

4 months ago