Web Components / Material UI Design
ΠΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡ
ΠΡΠΎΡΡΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅ ΠΏΠ°ΠΏΠΊΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π² ΠΊΠΎΡΠ½Π΅ Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ°.
npm
$ npm install web-material
Π½Π°ΡΡΡΠΎΠΉΡΠ΅ ΡΠ±ΠΎΡΠΊΡ ΠΈ ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ
/material/*
ΡΠ΅Π·ΠΎΠ»Π²ΠΈΠ»ΡΡ Π²${workspaceFolder}/node_modules/web-material/*
ΠΠ°ΠΊ ΡΠΎΠ±ΡΠ°ΡΡ
Polymer ΠΈΠ»ΠΈ Vue.js ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π²Π΅Π±-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ.
ΠΠΎΠΎΠ±ΡΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠΎΠ±ΠΈΡΠ°ΡΡ, ΠΎΠ½ΠΈ Π½Π°ΡΠΈΠ²Π½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² Chrome ΠΈ Π² Firefox (Π·Π° ΡΠ»Π°Π³ΠΎΠΌ), Π½ΠΎ Π΄Π»Ρ ΠΏΡΠΎΠ΄Π° Π²ΡΠ΅-ΡΠ°ΠΊΠΈ ΡΡΠΎΠΈΡ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎ ΡΠ±ΠΎΡΡΠΈΠΊΠ΅.
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΈΠΌΠΏΠΎΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ½ΠΎΠΏΠΊΠ° material-button
)
import MaterialButton from '/material/components/button/material-button.js';
ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΡΠ΅Π³ Π² ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ΅
<material-button>Button</material-button>
Π£ΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°
/components - ΠΏΠ°ΠΏΠΊΠ° Ρ Π²Π΅Π±-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ
/script - ΠΠ±ΡΠΈΠ΅ ΡΠΊΡΠΈΠΏΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ (Π±Π°Π·ΠΎΠ²ΡΠΉ JS ΠΊΠ»Π°ΡΡ)
/style - ΠΠ±ΡΠΈΠ΅ ΡΡΠΈΠ»ΠΈ Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ
material-button
)
Π£ΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° (ΠΏΡΠΈΠΌΠ΅Ρ:
/components/button
/index.html - ΡΠ°Π·ΠΌΠ΅ΡΠΊΠ° (ΡΠ°Π±Π»ΠΎΠ½) ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°
/material-button.css - ΡΡΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°
/material-button.js - Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈ ΡΠΊΡΠΈΠΏΡ Π΄Π»Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. Π£ΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠ΅.
ΠΠ»Ρ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ
css-ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅
, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅, ΠΊΡΠ΄Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ.
ΠΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ
Π‘ΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ
ΠΠΊΠΎΠ»ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠΉ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΅ΡΡΡ ΡΡΠ»ΠΊΠΈ Π½Π° Π·Π°Π΄Π°ΡΡ (ΡΠΈΠΏΠ° ΡΠ·) Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠ΅ΠΉ
ΠΠΎΡΠΎΠ²ΠΎ / Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ
- #12 Button | ΠΠ½ΠΎΠΏΠΊΠΈ
- #13 Input | ΠΠΎΠ»Ρ Π²Π²ΠΎΠ΄Π°
- #4 Select | ΠΠΎΠ»Π΅ Π²ΡΠ±ΠΎΡΠ° ΠΈΠ· Π²ΡΠΏΠ°Π΄Π°ΡΡΠ΅Π³ΠΎ ΡΠΏΠΈΡΠΊΠ°
- #19 Tabs | ΠΠΊΠ»Π°Π΄ΠΊΠΈ
- #8 Title (ApplicationBar) | ΠΠΎΠ»ΠΎΠ½ΡΠΈΡΡΠ»
- #15 List | Π‘ΠΏΠΈΡΠΊΠΈ
- #16 Tooltip | ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ
- #20 BreadCrumbs | Π‘Π»Π΅Π΄Ρ
- #21 Message | Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΡΠ°ΡΠ΅
- #22 Card | ΠΠ°ΡΡΠΎΡΠΊΠ°
- #11 Search | Π‘ΡΡΠΎΠΊΠ° ΠΏΠΎΠΈΡΠΊΠ°
- #14 Textarea | ΠΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°
- #36 Expand | Π Π°Π·Π²ΠΎΡΠΎΡΡ
- #30 Switch | ΠΡΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΠΈ
- #26 Figure | Π Π°ΠΌΠΊΠΈ
- #28 Avatar | ΠΠ²Π°ΡΠ°ΡΠΊΠΈ
- #32 Radio | ΠΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»ΠΈ
- #33 Chips | Π’Π΅Π³ΠΈ
- #29 Icon | ΠΠΊΠΎΠ½ΠΊΠΈ
- #34 Drop | ΠΡΠΏΠ°Π΄Π°ΡΡΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ
- #31 Checkbox | Π€Π»Π°ΠΆΠΊΠΈ
- #35 Paper (Panel) | ΠΠ°Π½Π΅Π»Ρ / ΠΠ»ΠΎΠΊ Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ
- #27 Caption | ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ
- #10 Progress | ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ²Π½Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΈ
- #9 Loader | ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ
- #39 Rating | Π Π΅ΠΉΡΠΈΠ½Π³ (Π·Π²Π΅Π·Π΄ΠΎΡΠΊΠΈ)
- #23 Drawer |
- #25 Badge | Π‘ΡΠ΅ΡΡΠΈΠΊ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ
- #37 Stack | ΠΠΊΡΠ°Π½Ρ ΠΈ ΠΈΡΡΠΎΡΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ²
- Copyright | ΠΠ²ΡΠΎΡΡΠΊΠΈΠ΅ ΠΏΡΠ°Π²Π°
- Navigation (Navigation Bar) | ΠΠ°Π½Π΅Π»Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ
- Blockquote | Π¦ΠΈΡΠ°ΡΡ
- Dialog | ΠΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ
- Header | Π¨Π°ΠΏΠΊΠ° ΡΡΡΠ°Π½ΠΈΡΡ
- Banner | ΠΠ°Π½Π½Π΅ΡΡ
- Calendar | ΠΠ°Π»Π΅Π½Π΄Π°ΡΡ
- Timeline | Π₯ΡΠΎΠ½ΠΈΠΊΠ°
- Slider | ΠΠΎΠ»Π·ΡΠ½ΠΎΠΊ
- Table | ΠΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡ
- Footer | ΠΠΎΠ΄Π²Π°Π» (ΡΠ²ΠΎΠ΄Π½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ)
- #24 Charm | ΠΡΠ΄Π²ΠΈΠ³Π°Π΅ΠΌΠ°Ρ ΠΏΠ°Π½Π΅Π»Ρ Π±ΡΡΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ
- Divider | Π Π°Π·Π΄Π΅Π»ΠΈΡΠ΅Π»Ρ
- Snackbar
ΠΡΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² Π²Π°ΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ , ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Π² Π½ΠΈΡ Π²ΡΠ΅ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ²Π΅Π΄Π΅Π½ΠΎ "Π΄ΠΎ ΡΠΌΠ°", Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ(?) Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ Ρ Π²Π°ΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Ρ
ROADMAP (ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ)
- Parallax
- Grid | Π‘Π΅ΡΠΊΠ° - Structure-Grid
- Sheet | Π‘ΠΏΠΈΡΠΎΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²
- Panorama | ΠΠ°Π½ΠΎΡΠ°ΠΌΡ ΠΈ 360-Π³ΡΠ°Π΄ΡΡΠ½ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
- Payment | ΠΠ»Π°ΡΠ΅ΠΆΠΈ Π±Π°Π½ΠΊΠΎΠ²ΡΠΊΠΎΠΉ ΠΊΠ°ΡΡΠΎΠΉ
- Structure
- PickerDate | ΠΡΠ±ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
- PickerTime | ΠΡΠ±ΠΎΡ Π΄Π°ΡΡ (ΠΊΠ°Π»Π΅Π½Π΄Π°ΡΡ)
- PickerDateTime | ΠΡΠ±ΠΎΡ Π΄Π°ΡΡ ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
- Countdown
- Reaction | ΠΠ½ΠΎΠΏΠΊΠΈ Like/Dislike ΠΈ Π΄ΡΡΠ³ΠΈΠ΅
- Counter?
- Bar
- BarSide
- BarSideNavigation
- Toolbar
- Widget
- Menu
- MenuVertical
- MenuHorizontal
- Notify
- Toast
- Hint
- Stepper
- Master
- Wizard
- Popup
- Modal
- Snippet
- Code(?) (Source)
- Upload
- Typography
- Link
- Contents
- Pagination
- SliderRange
- Tile
- Carousel
- TreeView
- InfoBox
- KeyPad (pin-code)
- Ribbon
- Emotion
- Smile
- Sticker
- Player
- Audio
- Video
- Layer
- Ad
- Remark
- Route
- Map
- Address
- Markdown
- TextEditor
ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅...)
TODO:
e2e / Π’Π΅ΡΡΠΈΡΠΎΠ²Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ