Giter Club home page Giter Club logo

uikit's People

Contributors

al-fyodorov avatar alyonurchick1 avatar andekhtyar avatar antons86 avatar arhayka avatar azhadanov avatar dependabot[bot] avatar elena-blz avatar evless avatar fixmylie avatar fooontic avatar gizeasy avatar karpovfv-nedra avatar kolebayev avatar levi2ki avatar loel001 avatar maksim-kononov-csssr avatar mei33 avatar midler avatar miocene avatar n1kn avatar n1mber avatar nekitk avatar nevsky118 avatar olegdenisov avatar schurf-des avatar sergeykatugin avatar shupirlik avatar windrushfarer avatar zettzet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

uikit's Issues

Поддержка IE

При просмотре в IE не применяются стили.

Скорее всего, проблема в использовании в стилях директивы var.

Директивы var не поддерживаются в IE.

Автоматизация темизации

Сейчас источником истины о значениях цветов выступают css-файлы тем. Это хорошее решение, потому что а) в коде, б) понятно версионирование, в) встраивается в релизный цикл.
Есть недостатки:

  1. Забирать эти значения из кода можно только в рамках фреймворка whitepaper (потому что whitepaper-специфичный css)
  2. Комментарии о семантике цветов доступны только в css-файле и не транслируются никуда. Для дизайнеров интерфейсов это высокий порог вхождения -- нужен акк на гитхабе и умение им пользоваться.
  3. При появлении сквозных изменений -- много ручной работы. Затраты на актуализацию.

Предлагаю:

  1. Использовать json-файл для каждой темы
  2. В его структуре предусмотреть а) имя; б) значение; в) от какого цвета функционально зависим; г) семантический комментарий.
  3. Написать скрипт -- генератор css-файла из json'a

Профиты:

  1. Можно будет транслировать за рамки фреймворка
  2. Можно использовать json для интеграции с figma -- сквозные изменения!
  3. Более прозрачная и понятная документация для разработчиков и дизайнеров
  4. Возможность запилить Хороший сторибук с поиском по значениям, поиском вхождений, кнопками копирования и прочими няшками.

Договориться об именовании коммитов

  • написать доку для контрибьютеров про это, зафиксировать что используем английский
  • рассказать что стоит писать в именовании коммитов
  • обсудить и зафиксировать флоу работы с ветками, как будем их вливать. Сейчас очень много мерж-коммитов в мастере, можно подумать про сквоши и ребейз
  • можно настроить commitizen, но дизайнеры работают через граф. интерфейс, им это не будет удобно
  • линковать коммиты к конкретным ишьюсам в гитхабе (как-то это автоматизировать?)

Смена элемента для {...otherProps} в TextField

Столкнулся с проблемой что props накидываются на корневой элемент div. Возможно ли сделать проброс на элемент input и textarea?

Кейс:
По требованиям google lighthouse на элементах формы должен быть атрибут aria-label.

ченжлоги

  • автоформирование чейнджлогов с помощью github-release-notes (gren)
  • запланировать написать доки для контрибьютеров и для пользователей
  • запланировать покрытие текущих компонентов документацией
  • включить шаг документирования в процесс создания новых компонентов

создать FileFiled

создать компонент скрытого инпута, для визуального отображения ипользовать renderProps

Импорт компонентов ui-кита в проект на Next.js

  1. Развернуть проект на Next.js
  2. Следовать инструкции по импорту компонентов: https://github.com/gpn-prototypes/ui-kit

image

OR

image

Expected result: Компонент добавлен на страницу и готов к использованию

image

Actual result:
error - ./node_modules/@gpn-design/uikit/internal/src/components/Attach/Attach.css
Read more: https://github.com/zeit/next.js/blob/master/errors/css-npm.md

image

Изменить отображение фокуса для элемента Tabs

При фокусе на табе таб выделяется целиком по границам http://s.csssr.ru/UMYJTGU0M/2020-06-01-14-47-27-I9R0J.jpg

Наличие фокуса на элементе это хорошо, но обводка по прямоугольнику выглядит неестественно, так как у таба изначально видна только одна граница — нижняя.

Было бы лучше, если бы фокус был только снизу:

Ссылка на элемент: https://gpn-prototypes.github.io/ui-kit/?path=/story/ui-kit-tabs--playground

Attach

создать новый компонент Attach

Оформление кода

рассмотреть идею про использование одинаковых конфигов на всех проектах ГПН, в т.ч. на ДС — конфиги eslint, stylelint, prettier, eitorconfig итд
просто актуализировать конфиги, которые прямо сейчас уже есть в репе, чтобы не приходилось затыкать линтеры комментариями

Старые компоненты

сейчас компоненты Input и Select еще пока есть в бандле
но их убрали из реэкспорта в пакете, конфигом в сборщике от этого css файл вообще не прилетел в сборку

Нужно обратно добавить Select в реэкспорт и подумать как будем уведомлять пользователей о том что компонент deprecated

Избавиться от дублирования иконок

Завёл по мотивам обсуждения в пр-е про добавление новых иконок:
#132 (comment)

Насколько понимаю, из-за особенностей текущего механизма сборки иконок получается, что в проекте одновременно лежат и svg-иконки, и их же представление в виде tsx-компонента. При этом tsx-компонент иконки не импортит svg, а дублирует её.

Нужно доработать сборку иконок таким образом, чтобы дублирования не было в репозитории. Один из вариантов — использовать babel-plugin-named-asset-import, который позволит импортить svg и использовать сразу как Реакт-компонент, тогда от tsx-обёрток можно будет избавиться и оставить только svg.

Общие недочеты

Исползования any - проверить и убрать
Кликабельные дивы - проверить и убрать
Отключенные стори - удалить
Используются и типы, и интерфейсы - переход к типам

Генерации таблицы пропсов

Для генерации таблицы пропсов и нобов можно попробовать заюзать react-docgen-typescript-loader и addon-smart-knobs, но у них есть свои ограничения, которые могут потребовать доработок

SimleSelect

В начале нужно создать BaseInput(или другое название) - компоненет который только отвкечает за стиль рамки инпута, div со стилями, и на его основе сделать SimleSelect и TextField.
За основу BaseInput нужно взять обертку изи TextField взять рутовый div со стилями. Ну и в самом TextField применить BaseInput

Мелкие правки в Snackbar

  • заменить цвет в фильтре кнопок на более семантичный.
  • отказаться от селектора Snackbar-ActionButton.Button.
  • причесать внешний вид стори

Checkbox, Switch, Radio: fix

убрать сложный оnChange оставить нативный

Дублирует логику Checkbox, отличается только внешним видом, подумать об обьединении логики

Theme: Создать пересеты тем

Нужно придумать названия пресетам и какие модификаторы тем они будут содержать
также учесть возможность создание пользовательских пресетов

дополнить документацию компонента Theme

callback onTimeout Snackbar

Кейс:
photo_2020-06-03_12-51-57

Нужно выполнить действие по окончанию таймера а на закрытие другое действие. Было бы удобно прокидывать callback на кончание таймера, в аргументах можно передать функцию закрытия.

Текстовая ошибка в описании установки кита

  1. Перейти на страницу https://github.com/gpn-prototypes/ui-kit
  2. Найти раздел "Применение"
  3. Скопировать код импорта стилей на страницу приложения
  4. Дождаться компиляции

Ожидаемый результат: успешная компиляция, стили добавлены на страницу.

Фактический результат:
image

Причина: ошибка в описании кода импорта стилей ('theme' с маленькой буквы)
image

props 'as'

Не лучший способ вставлять кнопку как ссылку : <Button< { href: string; target: string }> />.
Лучше было типизацию сделать внутри компонента (через JSX.IntrinsicElements), а не заставлять подмешивать снаружи

Тесты

Настроить и написать тесты на примере одного компонента

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.