Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Web Componentsを作れる
デザインツールの開発

Web Componentsを作れる
デザインツールの開発

PWA Night vol.42 ~Design Tools〜 での発表
https://pwanight.connpass.com/event/256731/

Ryohei Ikegami

August 18, 2022
Tweet

More Decks by Ryohei Ikegami

Other Decks in Programming

Transcript

  1. Macaronってどんなツール? 専用ファイル (.macaron) → JSに書き出し Vite/webpackでそのままimport import from export default

    macaronLoader ; { : [macaronLoader()], }; "@macaron-elements/loader-vite" plugins < = > import </ > < ></ > script script my-component my-component type "module" "./components.macaron";
  2. class constructor this this this const new const { @observable

    secondsPassed = () { makeObservable( ) } increase() { .secondsPassed += } reset() { .secondsPassed = } } myTimer = Timer() TimerView = observer(({ timer }) => ( < = => timer.reset()}>Seconds passed: {timer.secondsPassed}</ > )) setInterval(() => { myTimer.increase() }, ) Timer 0 1 0 onClick 1000 button button {() 公式サイトより
  3. VS Code Extension: アーキテクチャ VS Code Extension VS CodeやNodeのAPIに自由に アクセスできる

    ファイル (.macaron) ファイル (.macaron) Web View エディタUIを表示 Web View タブで表示 postMessageで通信 同期
  4. VS Code Custom Editor API "contributes" "customEditors" "viewType" "displayName" "selector"

    "filenamePattern" : { : [ { : , : , : [ { : } ] } ] }, "macaron.macaronFile" "Macaron" "*.macaron" 指定した拡張子のファイルを開くと
 テキストエディタの代わりに webviewのエディタを表示させられる https://code.visualstudio.com/api/extension-guides/custom-editors
  5. React + Web Componentsの対応状況 RFC: Plan for custom element attributes/properties

    in React 19 #11347 https://github.com/facebook/react/issues/11347 Web Componentsの完全サポートは React 19までお預け
  6. Web Componentsの弱点 F customized built-in element → Safariが未対" F (input/buttonとか

    には作れない) shadow rootが特定のタグにしか作れない input/buttonなどのスタイルを変えただけの コンポーネントが作りにくい