CSS framework for developing web interfaces


Keywords
bemit, css, oocss, postcss, uikit, css-module, typed-css-modules
License
LGPL-3.0-only
Install
npm install @bpanchenko/uikit@4.29.100

Documentation

CSS Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Protosite UIKit

npm

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΡ€Π°Π²ΠΈΠ» CSS для опрСдСлСния прСдставлСния элСмСнтов Π²Π΅Π±-интСрфСйса.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΡ‚Π΅ΠΊΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π²ΠΈΠ΄Π΅ Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ CSS-модуля для примСнСния ΠΊΠ°ΠΊ Π² Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊ ΠΈ Π² CommonJS ΠΈΠ»ΠΈ TypeScript ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’Π°ΠΊ-ΠΆΠ΅ Π°ΠΊΡ‚ΠΈΠ²Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ содСрТат Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ JavaScript (ECMAScript Module) для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ….

ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΡ‘Π½

Абстрактный Π±Π»ΠΎΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΉ сСтки Π²Π΅Π±-прилоТСния, страницы ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. ΠžΠ±Π»Π°ΡΡ‚ΡŒ интСрфСйса с ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ. НСчто, Π½Π° Ρ‡Ρ‚ΠΎ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π° практичСская ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π½Π°Π²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ΠžΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒ состояниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° взаимодСйствуя с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π΅Π³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ. Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° зависит ΠΎΡ‚ контСкста использования.

Минимальная составная Ρ‡Π°ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса. Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ различатся Π² зависимости ΠΎΡ‚ контСкста использования ΠΈΠ»ΠΈ Ρ‚Π΅ΠΌΡ‹ оформлСния интСрфСйса. ΠšΠΎΡΠΌΠ΅Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΠΎ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ воздСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ нСпосрСдствСнно Π½Π° элСмСнт.

Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ классы CSS. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ†ΠΈΠΈ повСдСния элСмСнтов ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ окруТСния.

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π° прСдставлСния ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ интСрфСйса ΠΈΠ»ΠΈ структуры Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. Класс с Ρ‚Π°ΠΊΠΎΠΉ приставкой опрСдСляСт стилистичСскоС ΠΎΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ содСрТимого Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ объявлСн Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΌ элСмСнтС.

ΠŸΡ€Π°Π²ΠΈΠ»Π° стилистичСского оформлСния ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… элСмСнтов Π²Π΅Π±-интСрфСйса. Π‘Ρ‚ΠΈΠ»ΡŒ контСкста опрСдСляСт космСтичСский Π²ΠΈΠ΄ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ‡Π°Ρ‰Π΅, области Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Ρ€Π΅ΠΆΠ΅. Π‘Ρ‚ΠΈΠ»ΡŒ оформлСния ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Ρ‚Π΅ΠΌΠ΅.

is-, has-: ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ состояния

Π­Ρ‚ΠΈ приставки ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ элСмСнт находится Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌ состоянии, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ мСняСт Π΅Π³ΠΎ внишний Π²ΠΈΠ΄ ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΈ состояния Ρ‚Π°ΠΊΠΈΠ΅ классы CSS ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π₯ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ являСтся использованиС Π°Ρ‚Ρ€ΠΈΠ±ΠΎΡ‚ΠΎΠ² aria- ΠΈΠ»ΠΈ data- Π² качСствС ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² состояния, классами CSS Π»ΡƒΡ‡ΡˆΠ΅ Π½Π΅ Π·Π»ΠΎΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡ‚ΡŒ.

js-: Π‘Π΅Π»Π΅ΠΊΡ‚ΠΎΡ€ Π²Π΅Π±-прилоТСния для ссылки Π½Π° элСмСнт DOM-Π΄Π΅Ρ€Π΅Π²Π°

ΠŸΡ€ΠΈΡΡ‚Π°Π²ΠΊΠ° опрСдСляСт сСлСктор ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ вашим ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° JavaScript для получСния прямой ссылки Π½Π° элСмСнт Π² DOM-Π΄Π΅Ρ€Π΅Π²Π΅. Бсылка Π½Π° элСмСнт позволяСт ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ состояниС, содСрТимоС, ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ события ΠΈΠ»ΠΈ просто ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ.

qa-: Π‘Π΅Π»Π΅ΠΊΡ‚ΠΎΡ€ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… тСстов

Класс с этой приставкой Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ для поиска ΠΈ связывания элСмСнтов DOM Π² Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… тСстах Π²ΠΈΠ·Π°ΡƒΠ»ΠΈΠ·Π°Ρ†ΠΈΠΈ GUI Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. ΠžΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ прохоТдСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сцСнариСв взаимодСйствия ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ подсистСм. Π₯ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ являСтся использованиС Π°Ρ‚Ρ€ΠΈΠ±ΠΎΡ‚Π° data- Π² качСствС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ состояния элСмСнта Π² сцСнарии.

Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ настройки ΠΈ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ стилСй Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°

ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹Ρ… ΠΏΡ€Π°Π²ΠΈΠ» CSS для стандартных элСмСнтов страницы HTML. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»Π° оформлСния простого Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° Π½Π° основС Π±Π°Π·ΠΎΠ²Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π΄ΠΈΠ·Π°ΠΉΠ½-систСмы ΠŸΡ€ΠΎΡ‚ΠΎΡΠ°ΠΉΡ‚Π°.

Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄ΠΈΠ·Π°ΠΉΠ½-систСмы ΠŸΡ€ΠΎΡ‚ΠΎΡΠ°ΠΉΡ‚Π°: размСрности Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ ΠΈ экранов Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠΉ вёрстки, ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹, Ρ‚Π΅Π½ΠΈ, ΠΏΠ°Π»ΠΈΡ‚Ρ€Π° Ρ†Π²Π΅Ρ‚ΠΎΠ².

ИспользованиС Π°ΠΊΡ‚ΠΈΠ²ΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

Π§Π΅Ρ€Π΅Π· ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Node.js

yarn add @bpanchenko/uikit -D

Π§Π΅Ρ€Π΅Π· Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ рСсурсов Π²Π΅Π±-страницы Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€

//assets.protosite.rocks/uikit/components.{css,mjs}
//assets.protosite.rocks/uikit/document.{css,mjs}
//assets.protosite.rocks/uikit/main.{css,mjs}
//assets.protosite.rocks/uikit/objects.{css,mjs}
//assets.protosite.rocks/uikit/styles.{css,mjs}
//assets.protosite.rocks/uikit/utilities.{css,mjs}

//assets.protosite.rocks/uikit/component/avatar.{css,mjs}
//assets.protosite.rocks/uikit/component/backdrop.{css,mjs}
//assets.protosite.rocks/uikit/component/badge.{css,mjs}
//assets.protosite.rocks/uikit/component/button.{css,mjs}
//assets.protosite.rocks/uikit/component/chart.{css,mjs}
//assets.protosite.rocks/uikit/component/control.{css,mjs}
//assets.protosite.rocks/uikit/component/dialog.{css,mjs}
//assets.protosite.rocks/uikit/component/list.{css,mjs}
//assets.protosite.rocks/uikit/component/pagination.{css,mjs}
//assets.protosite.rocks/uikit/component/panel.{css,mjs}
//assets.protosite.rocks/uikit/component/popover.{css,mjs}
//assets.protosite.rocks/uikit/component/progress.{css,mjs}
//assets.protosite.rocks/uikit/component/tabs.{css,mjs}
//assets.protosite.rocks/uikit/component/thumbnail.{css,mjs}
//assets.protosite.rocks/uikit/component/toolbar.{css,mjs}

//assets.protosite.rocks/uikit/style/animated-gradient.{css,mjs}
//assets.protosite.rocks/uikit/style/backgrounds.{css,mjs}
//assets.protosite.rocks/uikit/style/clean.{css,mjs}
//assets.protosite.rocks/uikit/style/cursor.{css,mjs}
//assets.protosite.rocks/uikit/style/floating.{css,mjs}
//assets.protosite.rocks/uikit/style/highlighted.{css,mjs}
//assets.protosite.rocks/uikit/style/hovered.{css,mjs}
//assets.protosite.rocks/uikit/style/icon.{css,mjs}
//assets.protosite.rocks/uikit/style/inversed.{css,mjs}
//assets.protosite.rocks/uikit/style/lead.{css,mjs}
//assets.protosite.rocks/uikit/style/link.{css,mjs}
//assets.protosite.rocks/uikit/style/loading.{css,mjs}
//assets.protosite.rocks/uikit/style/rounded.{css,mjs}
//assets.protosite.rocks/uikit/style/shadows.{css,mjs}
//assets.protosite.rocks/uikit/style/sizes.{css,mjs}
//assets.protosite.rocks/uikit/style/striped.{css,mjs}
//assets.protosite.rocks/uikit/style/text.{css,mjs}
//assets.protosite.rocks/uikit/style/transform.{css,mjs}