Реализация веб -компонентов системы проектирования Amber.
Этот репозиторий предназначен главным образом для разработчиков и участников для правильной документации и стиля, пожалуйста, обратитесь к https://amber.bitrock.it.
Вы можете предварительно просмотреть/попробовать компоненты в Life Story Wording.
$ yarn add @amber-ds/components
--- or ---
$ npm install @amber-ds/componentsПри желании вы можете добавить полифиллы веб -компонентов, чтобы поддержать предыдущие версии Firefox и Edge.
$ yarn add @webcomponents/webcomponentsjs
--- or ---
$ npm install @webcomponents/webcomponentsjsВы можете импортировать компоненты в своем проекте по -разному в зависимости от окружающей среды:
Как файлы JavaScript с помощью Bundler (например, WebPack)
// myfile.js
// import the whole components library
import AmberComponents from '@amber-ds/components' ;
// import a single component (button for instance)
import '@amber-ds/components/button' ,в качестве файлов javaScript из HTML без бундлера
<!-- mypage.html -->
<!-- import the whole components library -->
< script type =" module " src =" ./node_modules/@amber-ds/components/index.js " > </ script >
<!-- import a single component (button for instance) -->
< script type =" module " src =" ./node_modules/@amber-ds/components/button.js " > </ script > Затем в файле .html или шаблоне, которая производит выход HTML:
<!-- myfile.html -->
< amber-button priority =" primary " >
Get ready!
< amber-button > Краткое описание архитектуры разработки, стека и как работать над кодом:
Спецификация WebComponents является зонтичным термином для группировки пользовательских элементов V1 и Shadow DOM V1. Эти API -интерфейсы браузера позволяют вам написать пользовательские HTML -теги W3C со своими собственными функциональными возможностями, стилями сферой и разметкой, которые работают в браузерах и фронтальных фреймворках.
Чтобы достичь лучшей устойчивости кода, все компоненты написаны в TypeScript, чтобы воспользоваться преимуществами в основном из проверки статического типа и синтаксиса декораторов. Он также используется для транспилирования кода в ES-2015.
Поскольку веб-компоненты в качестве стандарта не обрабатывают механику рендеринга и связывание данных, мы принимаем LIT-HTML и его класс веб-компонентов в качестве слоя фундамента для каждого сбора в этой библиотеке.
triggerEvent(element, name, ?detail) - обертка для создания нового пользовательского события и отправить его с помощью дополнительного объекта detail . Пузырька уже включена.Чтобы быстро создать необходимую (но минимальную) пакет для нового компонента AMBER, мы включили небольшую утилиту CLI:
$ yarn create:component [name]
--- or ---
$ npm run create:component [name] Это создаст подпапку в папке ./src/components с двумя необходимыми для стартовых файлов index.ts и style.scss .
Вам нужно будет только импортировать новый компонент внутри файла ./src/components/library.ts для цепочки его в процессе разработки и сборки.
Вы можете определить стили каждого компонента, используя SASS, основной файл index.scss в папке компонента обрабатывается компилятором, а затем вводится в теневой DOM.
Если вам нужно поделиться стилями, микшинами или чем -то еще между компонентами, вы должны создать отдельный файл, а затем импортировать его там, где они требуются.
На данный момент только основные библиотеки ( Plain .ts -файлы в папке src/libs ) проходят тестирование через шутку.
Запустите проект в режиме разработки с Live Reload
$ yarn startЗапустите проект в режиме разработки с простой HTML -страницей
$ yarn dev Создайте статическую сборку сборника рассказов в папке ./dist
$ yarn build:storybookЗапустите модульные тесты
$ yarn test:unitЭтот проект следует за простой политикой ветвления:
master содержит только стабильный код и не должен быть обновлен напрямуюdevelopment , где написан эволютивный или экспериментальный кодgh-pages , где развернуты разданные файлы сборка статических сборников рассказов Не объединяйте непосредственно development в master ( это заблокирован администратором ... ), всегда отправляйте пиар, чтобы провести обзор.
Прежде чем попытаться опубликовать новую версию пакета на NPM, сначала пройдите через этот контрольный список:
package.json следующим образомЕсли релиз включает новый компонент :
webpack.config.js , это необходимо для создания автономного модуля/src/components/library.ts , таким образом он будет доступен, когда пользователь импортирует всю библиотеку/src/elements.ts , это может помочь с совместимостью Vue.js в некоторых случаях Когда новая выталкиваемая версия выдвигается в master ветвь, она автоматически запустит развертывание на NPM ( после всех автоматических проверок) проходов ) с использованием учетной записи Bitrock-Admin.
Код в этом репо и логотип Amber Design Sytem распространяется командой Bitrock UI Engineering, выпущенной по лицензии MIT.