-
-
Save awinogradov/cfe91a62587a73d7a31f4c67242debec to your computer and use it in GitHub Desktop.
--- | |
stability: locked | |
# базовые поля блока | |
bemjson: | |
text: "Кнопка" | |
id: "the-id" | |
name: "the-name" | |
# состояния компонента | |
states: ["hovered", "focused", "pressed", "disabled", "checked"] | |
# модификаторы | |
mods: | |
theme: ["normal", "islands"] | |
size: ["s", "m", "l", "xl"] | |
type: | |
submit: # добавляет поле со значением для отправки на сервер | |
val: "shit" | |
link: # добавляет поля для атрибутов ссылки | |
url: "ya.ru", | |
target: "_blank" | |
# недоступные комбинации | |
disallow: | |
states: ["focused+disabled", "pressed+disabled"] | |
mods: | |
- | |
theme: "islands" | |
type: "link" | |
@zxqfox base это базовый bemjson
я не знаю что такое «базовый bemjson» и не понимаю
таки поля по умочанию, дядь. У ссылки есть поле url в bemjson, например. Оно доступно по умолчанию. А у кнопки это поле достпуно только в модификаторе type_link.
Насколько бы круче это было делать (BEM)JSON-схемой, с типами и всяким таким. По ней можно было бы проверять bemjson перед шаблонизацией, кидать ворнинги...
Соглашусь с предыдущим оратором ;-)
На 28-ой строке можно не сбрасывать вниз.
На 11, вероятно, можно без кавычек писать строки
На 6, 7, 8 кавычки тоже не нужны, но эта схема лучше в виде чего-то близкого к http://json-schema.org/ — мы бы тогда смогли проверять bemjson-API прямо в шаблонизаторе.
кусок про disallow лучше засунуть в секцию showcase, равно как и значения из 6-8, 19-22.
В mods лучше оставлять только варианты значений, а расширения их полями описать, возможно, через расширение bemjson-схемы в файлах .yml модификаторов? (надо подумать)
p.s. Надо, пока не зашли далеко, сделать линтер для yml, чтобы проверялись разрешенные поля и их значения (yml-scheme?) и ничего не ломалось.
base → props?
что за демо?
Напиши схему7