<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[bauhausify]]></title><description><![CDATA[バウシィファイ(bauhausify)は、Webサイト・アプリケーション制作におけるデザインと技術の情報発信ブログです。]]></description><link>https://www.bauhausify.com</link><generator>RSS for Node</generator><lastBuildDate>Sun, 30 Aug 2026 05:10:40 GMT</lastBuildDate><item><title><![CDATA[WebにおけるVRコンテンツ制作について]]></title><link>https://www.bauhausify.com/2019-10-09_WebにおけるVRコンテンツ制作について/</link><guid isPermaLink="false">https://www.bauhausify.com/2019-10-09_WebにおけるVRコンテンツ制作について/</guid><pubDate>Wed, 09 Oct 2019 00:00:00 GMT</pubDate><content:encoded>&lt;h2 id=&quot;webvrのサンプル集&quot;&gt;&lt;a href=&quot;#webvr%E3%81%AE%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E9%9B%86&quot; aria-label=&quot;webvrのサンプル集 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;WebVRのサンプル集&lt;/h2&gt;
&lt;p&gt;まずは、手軽に体験できるWeb上のVR作品のリンクを紹介します。&lt;br&gt;
※インタラクティブなコンテンツの場合はVRデバイスが必要です。&lt;/p&gt;
&lt;h3 id=&quot;sueprmedium&quot;&gt;&lt;a href=&quot;#sueprmedium&quot; aria-label=&quot;sueprmedium permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;SueprMedium&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.supermedium.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;SuperMeidum&lt;/a&gt;はMozillaの元エンジニアが作成したVRブラウザです。&lt;br&gt;
OculusStoreやSteamStoreで無料でインストールできるVRアプリです。&lt;br&gt;
URLを直に入力してサイトを試すこともできますが、あらかじめホーム画面に厳選されたサイトが並んでおり、クリックすると実行できます。&lt;br&gt;
コンテンツをやめたい場合は、右コントローラーのスティックを下方向にしばらく押し込むとホームに戻れます。&lt;/p&gt;
&lt;h3 id=&quot;webvr-direcctory&quot;&gt;&lt;a href=&quot;#webvr-direcctory&quot; aria-label=&quot;webvr direcctory permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;WebVR Direcctory&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://webvr.directory/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;WebVR Directory&lt;/a&gt;というサイトでは、様々なVRサイトが一覧で表示されます。私は、Oculus RiftでバーチャルデスクトップごしのFirefoxからアクセスしました。各ページへ移動し、CardoboardアイコンをクリックするとVRモードに切り替わります。&lt;br&gt;
コンテンツによっては終了ボタンがないので、Oculusボタンを長押しして無理やり起動中のアプリを終了することで抜け出すことができました。&lt;br&gt;
SuperMediumから見れるようですが、URLを入力してもなかなか表示されなかったので断念しました。&lt;/p&gt;
&lt;h2 id=&quot;vrコンテンツの正体&quot;&gt;&lt;a href=&quot;#vr%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84%E3%81%AE%E6%AD%A3%E4%BD%93&quot; aria-label=&quot;vrコンテンツの正体 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;VRコンテンツの正体&lt;/h2&gt;
&lt;p&gt;コンテンツ制作の前にVRの正体について話しておきます。
VRコンテンツとは以下の特徴を持ったコンテンツのことを言います。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;左右それぞれの目線の画面を描画し、1つの立体感のある映像にみせる&lt;/li&gt;
&lt;li&gt;VRデバイスのセンサー値を検出できること&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;VirtualReality(仮想現実)というと大げさに聞こえますが、その実態は、左右の目それぞれからみた視点の異なる映像をVRデバイスに出力しているだけです。&lt;br&gt;
２つの映像を脳が処理し一つの映像のように見せることで遠近感、立体感が増します。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;そして、顔の傾き体の動き、手や指の動作をセンサーが検知し、体を動かせば視点が変わり、腕を振れば映像の中のモデルも腕をふるようにつくることで、あたかも仮想現実の中にいるように錯覚します。&lt;/p&gt;
&lt;p&gt;リアルタイムで3Dコンテンツを処理するデバイスの能力、自分と周囲の状況を把握するセンサーの技術の発達により、近年どんどん没入感がますようになってきています。&lt;br&gt;
今後はより解像度や、デバイスの小型化が進み、発達していく分野でしょう。&lt;/p&gt;
&lt;h2 id=&quot;webにおけるvrコンテンツの制作について&quot;&gt;&lt;a href=&quot;#web%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8Bvr%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84%E3%81%AE%E5%88%B6%E4%BD%9C%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6&quot; aria-label=&quot;webにおけるvrコンテンツの制作について permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;WebにおけるVRコンテンツの制作について&lt;/h2&gt;
&lt;p&gt;WebでVRコンテンツを作る簡単な方法はライブラリを使用することです。&lt;br&gt;
ライブラリが前項の2画面出力やデバイス情報の取得を補ってくれて、製作者は3D空間上のコンテンツ制作にのみ集中することができます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://threejs.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Three.js&lt;/a&gt;を使い3Dコンテンツを作成しVR対応させる&lt;/li&gt;
&lt;li&gt;VRに特化した&lt;a href=&quot;https://aframe.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;A-Frame&lt;/a&gt;を使いより簡単に制作する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Three.js(Gihubスター数55156)の対抗馬として&lt;a href=&quot;https://github.com/BabylonJS/Babylon.js&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Bablylon.js&lt;/a&gt;(スター数10212)が、A-Frame(スター数10542)には&lt;a href=&quot;https://facebook.github.io/react-360/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;React 360&lt;/a&gt;(7576)があります。&lt;br&gt;
2019年10月現在では、Githubのスター数や実績の多さからみて、Three.js、A-Frameが代表的なライブラリと言えるでしょう。&lt;/p&gt;
&lt;h2 id=&quot;threejs&quot;&gt;&lt;a href=&quot;#threejs&quot; aria-label=&quot;threejs permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;Three.js&lt;/h2&gt;
&lt;p&gt;Three.jsはそのままではVR対応できませんが、たった数行で対応することができます。&lt;br&gt;
やり方は、&lt;a href=&quot;https://threejs.org/docs/#manual/en/introduction/How-to-create-VR-content&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;公式サイトのVRページ&lt;/a&gt;にかかれています。&lt;br&gt;
こちらの方がカスタマイズ性や自由度が高そうですが、3Dの基礎を理解していないと敷居が高いかと思います。&lt;br&gt;
ライト、ジオメトリ、マテリアル、メッシュ、カメラ、マッピング、このあたりのワードが理解できる方は簡単に始めれるでしょう。&lt;/p&gt;
&lt;h2 id=&quot;a-frame&quot;&gt;&lt;a href=&quot;#a-frame&quot; aria-label=&quot;a frame permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;A-Frame&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.reddit.com/r/OculusQuest/comments/bw4pbm/developing_for_the_quest_with_aframe_react_360/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;redditのWebVRに関する質問&lt;/a&gt;でもどのフレームワークがいいか質問が上がっていますね、A-Frameに軍配が人気のようです(MozillaのVRチームもGoogleのA-Frame使っているそうです)。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;まだ、さらっとドキュメントを見ただけですが、&lt;a href=&quot;https://aframe.io/docs/0.9.0/introduction/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Introductionのページ&lt;/a&gt;に以下のHTMLがあります。&lt;br&gt;&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;html&quot;&gt;&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;html&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;head&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;script&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;https://aframe.io/releases/0.9.2/aframe.min.js&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token script&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;script&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;head&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;body&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a-scene&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a-box&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;position&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;-1 0.5 -3&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;rotation&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;0 45 0&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;#4CC3D9&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a-box&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a-sphere&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;position&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;0 1.25 -5&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;radius&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;1.25&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;#EF2D5E&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a-sphere&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a-cylinder&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;position&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;1 0.75 -3&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;radius&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;0.5&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;1.5&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;#FFC65D&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a-cylinder&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a-plane&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;position&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;0 0 -4&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;rotation&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;-90 0 0&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;4&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;4&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;#7BC8A4&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a-plane&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
      &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;a-sky&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;#ECECEC&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a-sky&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
    &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;a-scene&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;body&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;html&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;HTMLとしてみても、非常にわかりやすくとても使いやすそうです。&lt;br&gt;
面白そうなので、次回記事にしたいと思います。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[VRの雑感とWebエンジニアリング目線のVR]]></title><link>https://www.bauhausify.com/2019-09-29_vrの雑感とwebエンジニアリング目線のvr/</link><guid isPermaLink="false">https://www.bauhausify.com/2019-09-29_vrの雑感とwebエンジニアリング目線のvr/</guid><pubDate>Sun, 29 Sep 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;私は酔いやすく、スーパーファミコンのマリオカートやマリオオデッセイで酔ったりします。&lt;br&gt;
なので、個人的にはこの酔いやすいかどうかという観点が非常に重要です。&lt;/p&gt;
&lt;p&gt;Oculus Rift Sを体験して、酔いやすいコンテンツがなんなのか少しわかったのでご紹介します。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;※あくまで位置個人の意見です。人によりやはり酔ってしまうということはありえますのでご了承ください。&lt;/p&gt;
&lt;h2 id=&quot;vr仮想現実はデバイスの技術向上により一人称視点でも酔わない&quot;&gt;&lt;a href=&quot;#vr%E4%BB%AE%E6%83%B3%E7%8F%BE%E5%AE%9F%E3%81%AF%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%81%AE%E6%8A%80%E8%A1%93%E5%90%91%E4%B8%8A%E3%81%AB%E3%82%88%E3%82%8A%E4%B8%80%E4%BA%BA%E7%A7%B0%E8%A6%96%E7%82%B9%E3%81%A7%E3%82%82%E9%85%94%E3%82%8F%E3%81%AA%E3%81%84&quot; aria-label=&quot;vr仮想現実はデバイスの技術向上により一人称視点でも酔わない permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;VR(仮想現実)はデバイスの技術向上により一人称視点でも酔わない&lt;/h2&gt;
&lt;p&gt;これには以下の条件があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;[デバイス側] 6DoFに対応していること&lt;/li&gt;
&lt;li&gt;[コンテンツ側] ユーザーの意図せず視点が変わらないこと&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この条件を満たすと酔わないです。&lt;br&gt;&lt;/p&gt;
&lt;h2 id=&quot;デバイス側-6dofに対応していること&quot;&gt;&lt;a href=&quot;#%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E5%81%B4-6dof%E3%81%AB%E5%AF%BE%E5%BF%9C%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%81%93%E3%81%A8&quot; aria-label=&quot;デバイス側 6dofに対応していること permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;[デバイス側] 6DoFに対応していること&lt;/h2&gt;
&lt;p&gt;6DoFというのは、頭の回転方向に加え、頭の上下左右前後を検出できるということです。&lt;br&gt;
6DoFが登場するまでは3DoFが一般的で、頭の回転方向しか検出しません。&lt;br&gt;
この仕組により、自分が歩りたり、しゃがんだり、しても視点が追従し、&lt;em&gt;自分の意図したとおりに視点が動く&lt;/em&gt; ようになります。&lt;/p&gt;
&lt;h2 id=&quot;コンテンツ側-ユーザーの意図せず視点が変わらないこと&quot;&gt;&lt;a href=&quot;#%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84%E5%81%B4-%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%81%AE%E6%84%8F%E5%9B%B3%E3%81%9B%E3%81%9A%E8%A6%96%E7%82%B9%E3%81%8C%E5%A4%89%E3%82%8F%E3%82%89%E3%81%AA%E3%81%84%E3%81%93%E3%81%A8&quot; aria-label=&quot;コンテンツ側 ユーザーの意図せず視点が変わらないこと permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;[コンテンツ側] ユーザーの意図せず視点が変わらないこと&lt;/h2&gt;
&lt;p&gt;いくらデバイスが発達してもコンテンツ側が不意に視点を変えてしまうと酔ってしまいます。&lt;/p&gt;
&lt;h3 id=&quot;酔わないタイプのゲーム&quot;&gt;&lt;a href=&quot;#%E9%85%94%E3%82%8F%E3%81%AA%E3%81%84%E3%82%BF%E3%82%A4%E3%83%97%E3%81%AE%E3%82%B2%E3%83%BC%E3%83%A0&quot; aria-label=&quot;酔わないタイプのゲーム permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;酔わないタイプのゲーム&lt;/h3&gt;
&lt;p&gt;酔わないタイプのゲームには以下の特徴があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;移動するが、移動先を自分で指定してテレポートするタイプのもの&lt;/li&gt;
&lt;li&gt;プレイエリア(Oculusの場合はGuardianガーディアン、HTCの場合はChaperoneシャペロン)内でのみ行動するもの&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;例&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://beatsaber.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;BEAT SABER&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://superhotgame.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;SUPER HOT&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://wwws.warnerbros.co.jp/game/batmanarkham_vr/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;BATMAN ARKHAM VR&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;酔うタイプのゲーム&quot;&gt;&lt;a href=&quot;#%E9%85%94%E3%81%86%E3%82%BF%E3%82%A4%E3%83%97%E3%81%AE%E3%82%B2%E3%83%BC%E3%83%A0&quot; aria-label=&quot;酔うタイプのゲーム permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;酔うタイプのゲーム&lt;/h3&gt;
&lt;p&gt;逆に以下の特徴のゲームはやはり酔ってしまいます。&lt;br&gt;
オープンワールドタイプのものはこのケースが多いです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;コントローラーのスティックやボタンで移動するもの&lt;/li&gt;
&lt;li&gt;無重力空間など、意図せず視点が動いてしまうもの&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;例&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://elderscrolls.bethesda.net/ja/skyrim&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;The Elder Scrolls V: Skyrim VR&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.oculus.com/lone-echo/?locale=ja_JP&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;LONE ECHO&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.oculus.com/stormland/?locale=ja_JP&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;STORMLAND&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;酔わないコンテンツ制作のポイント&quot;&gt;&lt;a href=&quot;#%E9%85%94%E3%82%8F%E3%81%AA%E3%81%84%E3%82%B3%E3%83%B3%E3%83%86%E3%83%B3%E3%83%84%E5%88%B6%E4%BD%9C%E3%81%AE%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88&quot; aria-label=&quot;酔わないコンテンツ制作のポイント permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;酔わないコンテンツ制作のポイント&lt;/h3&gt;
&lt;p&gt;以上から以下の条件を満たすと良いづらいコンテンツができそうです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;体を左右前後に動かせばカメラが追従する&lt;/li&gt;
&lt;li&gt;顔を動かせばカメラが追従する&lt;/li&gt;
&lt;li&gt;移動させる場合はテレポートタイプ&lt;/li&gt;
&lt;li&gt;勝手に視点を変える仕組みをつくらない(ボタンやスティックでの操作も含む)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;ネットサーフィンの一部としてvrが存在している&quot;&gt;&lt;a href=&quot;#%E3%83%8D%E3%83%83%E3%83%88%E3%82%B5%E3%83%BC%E3%83%95%E3%82%A3%E3%83%B3%E3%81%AE%E4%B8%80%E9%83%A8%E3%81%A8%E3%81%97%E3%81%A6vr%E3%81%8C%E5%AD%98%E5%9C%A8%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B&quot; aria-label=&quot;ネットサーフィンの一部としてvrが存在している permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;ネットサーフィンの一部としてVRが存在している&lt;/h2&gt;
&lt;p&gt;最後にWebとVRについて、基本的にVRはネイティブアプリですが、WebでもWebVR(WebXR)を使いVRコンテンツを実行することができます。&lt;/p&gt;
&lt;p&gt;Oculus Riftの場合は、仮想空間上でデスクトップのFirefoxを起動し、VRコンテンツがあるサイトに訪れます(&lt;a href=&quot;https://www.supermedium.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;SUPERMEDIUM&lt;/a&gt;のサイトなど、、、)。&lt;br&gt;
そしてVRコンテンツを実行すると、自動でVRモードに切り替わります。&lt;br&gt;
360°動画の場合は、GoogleのCardboardアイコンをクリックするとVRモードに切り替わります。&lt;/p&gt;
&lt;p&gt;このようにサイトの一部として、ネットサーフィンの行為の中にVR体験が埋め込まれます。&lt;br&gt;
VRコンテンツの中では、サイト制作者が自由に世界を表現できるので、表現の場としても、非常に可能性を秘めています。&lt;br&gt;
デバイスが進化すればより身近な存在になるでしょう。&lt;/p&gt;
&lt;p&gt;ちなみに、サイト&lt;a href=&quot;https://webvr.info/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;webvr.info&lt;/a&gt;にデバイスごとのWebVRの実行環境が記載されています。&lt;br&gt;
共通して言えるのはFirefox系列のブラウザが対応していることです(Google CardboardのみAndroidのChromeで動きます)。&lt;/p&gt;
&lt;p&gt;次回は、実際のWebVRコンテンツづくりについて紹介したいと思います。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[日常的に使うシーン別Node.jsコマンド集]]></title><link>https://www.bauhausify.com/2019-09-24_日常的に使うシーン別Node-jsコマンド集/</link><guid isPermaLink="false">https://www.bauhausify.com/2019-09-24_日常的に使うシーン別Node-jsコマンド集/</guid><pubDate>Tue, 24 Sep 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;この記事は以下のソフトウェアがMacにインストールされていることが前提となっています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://brew.sh/index_ja&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Homebrew&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://nodejs.org/ja/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Node.js&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;もしインストールされていない方は、一つ前の記事の&lt;a href=&quot;/2019-09-20_2019%E5%B9%B4%E7%89%88Node-js%E3%81%AE%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%96%B9%E6%B3%95/&quot;&gt;2019年版Node-jsのおすすめインストール方法&lt;/a&gt;をご覧ください。&lt;/p&gt;
&lt;h2 id=&quot;シーン別コマンド集&quot;&gt;&lt;a href=&quot;#%E3%82%B7%E3%83%BC%E3%83%B3%E5%88%A5%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E9%9B%86&quot; aria-label=&quot;シーン別コマンド集 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;シーン別コマンド集&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#javascript%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B&quot;&gt;JavaScriptを実行する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#npm%E3%81%AE%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%82%92%E4%BD%BF%E3%81%84%E3%81%9F%E3%81%84&quot;&gt;npmのモジュールを使いたい&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%AE%E4%BD%BF%E7%94%A8%E4%BE%8Bpuppeteer%E3%82%92%E4%BD%BF%E3%81%84%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%AE%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A3%E3%82%92%E3%81%A8%E3%82%8B&quot;&gt;モジュールの使用例puppeteerを使いブラウザのキャプチャをとる&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#npm%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%82%92%E4%BD%9C%E6%88%90%E3%81%97%E3%81%9F%E3%81%84&quot;&gt;npmを使ったプロジェクトディレクトリを作成したい&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#packagejson%E3%81%AE%E3%81%82%E3%82%8B%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%A7%E4%BE%9D%E5%AD%98%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%97%E3%81%9F%E3%81%84&quot;&gt;package.jsonのあるプロジェクトで依存モジュールを設定したい&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#%E6%97%A2%E5%AD%98%E3%81%AEnodejs%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E5%8B%95%E3%81%8B%E3%81%97%E3%81%9F%E3%81%84&quot;&gt;既存のNode.jsプロジェクトを動かしたい&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#%E3%82%88%E3%81%8F%E4%BD%BF%E3%81%86nodejs%E3%81%AE%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AE%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E3%82%92%E4%BD%9C%E3%82%8A%E3%81%9F%E3%81%84&quot;&gt;よく使うNode.jsのコマンドのショートカットを作りたい&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;javascriptを実行する&quot;&gt;&lt;a href=&quot;#javascript%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B&quot; aria-label=&quot;javascriptを実行する permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;JavaScriptを実行する&lt;/h2&gt;
&lt;p&gt;index.jsというJavaScriptファイルを実行する場合、以下のコマンドだけで実行できます。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;sh&quot;&gt;&lt;pre class=&quot;language-sh&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;span class=&quot;token function&quot;&gt;node&lt;/span&gt; index.js&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;npmのモジュールを使いたい&quot;&gt;&lt;a href=&quot;#npm%E3%81%AE%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%82%92%E4%BD%BF%E3%81%84%E3%81%9F%E3%81%84&quot; aria-label=&quot;npmのモジュールを使いたい permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;npmのモジュールを使いたい&lt;/h2&gt;
&lt;p&gt;&lt;code class=&quot;language-text&quot;&gt;npm install &amp;lt;モジュール名&gt;&lt;/code&gt;でモジュールをインストールします。&lt;br&gt;
が、ここで注意点です。&lt;br&gt;
モジュールのインストール先は２つあります。&lt;br&gt;
&lt;code class=&quot;language-text&quot;&gt;npm install &amp;lt;モジュール名&gt;&lt;/code&gt;の場合は、Terminalで現在いる場所、ローカルディレクトリにインストールされます。
&lt;code class=&quot;language-text&quot;&gt;npm install &amp;lt;モジュール名&gt; -g&lt;/code&gt;のように&lt;code class=&quot;language-text&quot;&gt;-g&lt;/code&gt;をつけるとグローバルインストールとなり、Node.jsのプログラムのある場所にインストールされます。インストールされたモーウールの場所はTerminalで&lt;code class=&quot;language-text&quot;&gt;npm root -g&lt;/code&gt;を実行するとわかります。&lt;code class=&quot;language-text&quot;&gt;-g&lt;/code&gt;をつけた場合、Terminalでどの場所にいても再インストールせずにモジュールを使うことができます。&lt;br&gt;
Terminalから直接実行するようなモジュールやいつでも使いたいモジュールの場合に使います。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;インストールすると&lt;code class=&quot;language-text&quot;&gt;node_modules&lt;/code&gt;というディレクトリが作成され、その中にモジュールの実態がダウンロードされます。&lt;br&gt;
JavaScriptファイルで以下を実行すると、モジュールを使うことができます。&lt;/p&gt;
&lt;div class=&quot;gatsby-code-title gatsby-remark-code-titles&quot;&gt;index.js&lt;/div&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; someModule &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;モジュール名&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;モジュールの使用例puppeteerを使いブラウザのキャプチャをとる&quot;&gt;&lt;a href=&quot;#%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%AE%E4%BD%BF%E7%94%A8%E4%BE%8Bpuppeteer%E3%82%92%E4%BD%BF%E3%81%84%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%81%AE%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A3%E3%82%92%E3%81%A8%E3%82%8B&quot; aria-label=&quot;モジュールの使用例puppeteerを使いブラウザのキャプチャをとる permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;モジュールの使用例puppeteerを使いブラウザのキャプチャをとる&lt;/h2&gt;
&lt;p&gt;サンプルとして、&lt;code class=&quot;language-text&quot;&gt;puppeteer&lt;/code&gt;というモジュールをインストールし、サイト &lt;a href=&quot;https://example.com&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://example.com&lt;/a&gt; のキャプチャを撮ってみましょう。&lt;/p&gt;
&lt;p&gt;デスクトップにsampleというディレクトリを作り移動します。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;sh&quot;&gt;&lt;pre class=&quot;language-sh&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;span class=&quot;token builtin class-name&quot;&gt;cd&lt;/span&gt; ~/Desktop
&lt;span class=&quot;token function&quot;&gt;mkdir&lt;/span&gt; sample
&lt;span class=&quot;token builtin class-name&quot;&gt;cd&lt;/span&gt; sample&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;code class=&quot;language-text&quot;&gt;puppeteer&lt;/code&gt;をインストールします。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;sh&quot;&gt;&lt;pre class=&quot;language-sh&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;install&lt;/span&gt; puppeteer&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;同じ場所で、index.jsというファイルを作り以下を記述します。&lt;/p&gt;
&lt;div class=&quot;gatsby-code-title gatsby-remark-code-titles&quot;&gt;index.js&lt;/div&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; puppeteer &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;require&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;puppeteer&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; browser &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; puppeteer&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;launch&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; page &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; browser&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;newPage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; page&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;goto&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;https://example.com&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; page&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;screenshot&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token literal-property property&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;example.png&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;await&lt;/span&gt; browser&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;最後に実行しましょう。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;sh&quot;&gt;&lt;pre class=&quot;language-sh&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;span class=&quot;token function&quot;&gt;node&lt;/span&gt; index.js&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;すると、同じディレクトリに&lt;code class=&quot;language-text&quot;&gt;example.png&lt;/code&gt;という名前のキャプチャー画像が生成されているはずです。&lt;/p&gt;
&lt;h2 id=&quot;npmを使ったプロジェクトディレクトリを作成したい&quot;&gt;&lt;a href=&quot;#npm%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%9F%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%82%92%E4%BD%9C%E6%88%90%E3%81%97%E3%81%9F%E3%81%84&quot; aria-label=&quot;npmを使ったプロジェクトディレクトリを作成したい permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;npmを使ったプロジェクトディレクトリを作成したい&lt;/h2&gt;
&lt;p&gt;好きな名前のディレクトリを作成し、npmの初期化コマンドを使います。&lt;br&gt;&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;sh&quot;&gt;&lt;pre class=&quot;language-sh&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;span class=&quot;token function&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;token builtin class-name&quot;&gt;test&lt;/span&gt;
&lt;span class=&quot;token builtin class-name&quot;&gt;cd&lt;/span&gt; &lt;span class=&quot;token builtin class-name&quot;&gt;test&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; init &lt;span class=&quot;token comment&quot;&gt;# これがnpmの初期化コマンド&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;すると、プロジェクトの設定をどうするか、英語で対話的に質問されます。&lt;br&gt;
質問内の&lt;code class=&quot;language-text&quot;&gt;()&lt;/code&gt;の中は初期値です。よくわからなければ、何も入力せずにEnterを押すと初期値で設定されていきます。&lt;br&gt;
答えた内容は、このあと生成される&lt;code class=&quot;language-text&quot;&gt;package.json&lt;/code&gt;というファイルに記載されます。&lt;/p&gt;
&lt;p&gt;チップスとして、&lt;code class=&quot;language-text&quot;&gt;npm init -y&lt;/code&gt;と実行すると対話なしで、初期値で設定された&lt;code class=&quot;language-text&quot;&gt;package.json&lt;/code&gt;がいきなり生成されます。&lt;br&gt;
&lt;code class=&quot;language-text&quot;&gt;package.json&lt;/code&gt;の各プロパティは&lt;a href=&quot;https://docs.npmjs.com/files/package.json&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;公式ドキュメント(英語)&lt;/a&gt;か&lt;a href=&quot;http://liberty-technology.biz/PublicItems/npm/package.json.html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;翻訳されたドキュメント&lt;/a&gt;をご確認ください。&lt;br&gt;&lt;/p&gt;
&lt;h2 id=&quot;packagejsonのあるプロジェクトで依存モジュールを設定したい&quot;&gt;&lt;a href=&quot;#packagejson%E3%81%AE%E3%81%82%E3%82%8B%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%A7%E4%BE%9D%E5%AD%98%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%97%E3%81%9F%E3%81%84&quot; aria-label=&quot;packagejsonのあるプロジェクトで依存モジュールを設定したい permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;package.jsonのあるプロジェクトで依存モジュールを設定したい&lt;/h2&gt;
&lt;p&gt;モジュールをインストールする際の&lt;code class=&quot;language-text&quot;&gt;npm install &amp;lt;モジュール名&gt;&lt;/code&gt;のコマンドに&lt;code class=&quot;language-text&quot;&gt;--save&lt;/code&gt;オプションをつけると、依存モジュールのバージョン情報が&lt;code class=&quot;language-text&quot;&gt;package.json&lt;/code&gt;に追記されます。&lt;/p&gt;
&lt;p&gt;&lt;code class=&quot;language-text&quot;&gt;puppeteer&lt;/code&gt;モジュールを設定したい場合は、以下のコマンドを実行します。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;sh&quot;&gt;&lt;pre class=&quot;language-sh&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;install&lt;/span&gt; puppeteer &lt;span class=&quot;token parameter variable&quot;&gt;--save&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;注意点として、&lt;code class=&quot;language-text&quot;&gt;--save&lt;/code&gt;の他にも&lt;code class=&quot;language-text&quot;&gt;--save-dev&lt;/code&gt;というオプションがあります。&lt;br&gt;
インストールするモジュールがプロジェクトの開発時にのみ使用される場合は&lt;code class=&quot;language-text&quot;&gt;--save-dev&lt;/code&gt;を、プロジェクトが実行されているときに使用する場合は&lt;code class=&quot;language-text&quot;&gt;--save&lt;/code&gt;を使います。&lt;br&gt;
&lt;code class=&quot;language-text&quot;&gt;--save&lt;/code&gt;の場合は&lt;code class=&quot;language-text&quot;&gt;dependencies&lt;/code&gt;、&lt;code class=&quot;language-text&quot;&gt;--save-dev&lt;/code&gt;の場合は&lt;code class=&quot;language-text&quot;&gt;devDependencies&lt;/code&gt;のプロパティ名で、&lt;code class=&quot;language-text&quot;&gt;package.json&lt;/code&gt;内に記述されます。&lt;br&gt;
プロジェクトを配布する場合にとても重要なオプションです。&lt;/p&gt;
&lt;h2 id=&quot;既存のnodejsプロジェクトを動かしたい&quot;&gt;&lt;a href=&quot;#%E6%97%A2%E5%AD%98%E3%81%AEnodejs%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E5%8B%95%E3%81%8B%E3%81%97%E3%81%9F%E3%81%84&quot; aria-label=&quot;既存のnodejsプロジェクトを動かしたい permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;既存のNode.jsプロジェクトを動かしたい&lt;/h2&gt;
&lt;p&gt;次は誰かが作成したプロジェクトを実行してみます。&lt;br&gt;
Gitなどでプロジェクトをダウンロードした場合、&lt;code class=&quot;language-text&quot;&gt;node_modules&lt;/code&gt;はファイル数とサイズが重く、Gitの管理から除外されており生成されません。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;なので、まずプロジェクトのディレクトリに&lt;code class=&quot;language-text&quot;&gt;package.json&lt;/code&gt;があることを確認し、以下のコマンドを実行しましょう。
&lt;code class=&quot;language-text&quot;&gt;node_modules&lt;/code&gt;ディレクトリが生成され依存モジュールがダウンロードされます。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;sh&quot;&gt;&lt;pre class=&quot;language-sh&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;install&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;#npm%E3%81%AE%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%82%92%E4%BD%BF%E3%81%84%E3%81%9F%E3%81%84&quot;&gt;npmのモジュールを使いたい&lt;/a&gt;では&lt;code class=&quot;language-text&quot;&gt;npm install &amp;lt;モジュール名&gt;&lt;/code&gt;とモジュール名を記入していましたが、モジュール名を省略すると&lt;code class=&quot;language-text&quot;&gt;package.json&lt;/code&gt;の記載されている依存モジュールがすべてダウンロードされます。&lt;/p&gt;
&lt;p&gt;注意点として、ロックファイルがある場合は、必ずそのファイルに対応したコマンドを使います。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&quot;language-text&quot;&gt;package-lock.json&lt;/code&gt;がある場合は、必ず&lt;code class=&quot;language-text&quot;&gt;npm install&lt;/code&gt;を実行&lt;/li&gt;
&lt;li&gt;&lt;code class=&quot;language-text&quot;&gt;yarn.lock&lt;/code&gt;ファイルがある場合は、必ず&lt;code class=&quot;language-text&quot;&gt;yarn&lt;/code&gt;を実行&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;もし&lt;a href=&quot;https://yarnpkg.com/lang/ja/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;yarn&lt;/a&gt;をまだインストールしていない場合は、以下のコマンドでyarnをインストールしましょう。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;sh&quot;&gt;&lt;pre class=&quot;language-sh&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;brew &lt;span class=&quot;token function&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;yarn&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;よく使うnodejsのコマンドのショートカットを作りたい&quot;&gt;&lt;a href=&quot;#%E3%82%88%E3%81%8F%E4%BD%BF%E3%81%86nodejs%E3%81%AE%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AE%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E3%82%92%E4%BD%9C%E3%82%8A%E3%81%9F%E3%81%84&quot; aria-label=&quot;よく使うnodejsのコマンドのショートカットを作りたい permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;よく使うNode.jsのコマンドのショートカットを作りたい&lt;/h2&gt;
&lt;p&gt;&lt;code class=&quot;language-text&quot;&gt;package.json&lt;/code&gt;の&lt;code class=&quot;language-text&quot;&gt;scripts&lt;/code&gt;というプロパティを使用します。&lt;br&gt;
例えば&lt;code class=&quot;language-text&quot;&gt;index.js&lt;/code&gt;を実行する以下のコマンドを頻繁に使っているとします。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;sh&quot;&gt;&lt;pre class=&quot;language-sh&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;span class=&quot;token function&quot;&gt;node&lt;/span&gt; index.js&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;このショートカットを作成したい場合、&lt;code class=&quot;language-text&quot;&gt;package.json&lt;/code&gt;の&lt;code class=&quot;language-text&quot;&gt;scripts&lt;/code&gt;の中に、&lt;code class=&quot;language-text&quot;&gt;&quot;ショートカット名&quot;: &quot;ショートカットしたいコマンド&quot;&lt;/code&gt;を定義します。&lt;/p&gt;
&lt;div class=&quot;gatsby-code-title gatsby-remark-code-titles&quot;&gt;package.json&lt;/div&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;json&quot;&gt;&lt;pre class=&quot;language-json&quot;&gt;&lt;code class=&quot;language-json&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;&quot;scripts&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;&quot;start&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;node index.js&quot;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;このように記述すると、&lt;code class=&quot;language-text&quot;&gt;npm run &amp;lt;ショートカット名&gt;&lt;/code&gt;でショートカットしたいコマンドが実行されます。&lt;br&gt;
以下を実行すると、&lt;code class=&quot;language-text&quot;&gt;node index.js&lt;/code&gt;が実行されます。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;sh&quot;&gt;&lt;pre class=&quot;language-sh&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; run start&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;もしyarnで実行したい場合は、&lt;code class=&quot;language-text&quot;&gt;yarn&lt;/code&gt;のあとにショートカット名を入力するだけです。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;sh&quot;&gt;&lt;pre class=&quot;language-sh&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;span class=&quot;token function&quot;&gt;yarn&lt;/span&gt; start&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;まとめ&quot;&gt;&lt;a href=&quot;#%E3%81%BE%E3%81%A8%E3%82%81&quot; aria-label=&quot;まとめ permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;まとめ&lt;/h2&gt;
&lt;p&gt;この記事の内容を覚えると、誰かが作成したプロジェクトでも、ドキュメントを見ずに簡単に実行できてしまうケースが多いです。&lt;br&gt;
例えば、mikeyさんの&lt;a href=&quot;https://github.com/mikeyamadeo/react-scaffold&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;react-scaffold&lt;/a&gt;というプロジェクトを試してみたいとします。&lt;br&gt;
&lt;code class=&quot;language-text&quot;&gt;package.json&lt;/code&gt;の&lt;code class=&quot;language-text&quot;&gt;scripts&lt;/code&gt;に&lt;code class=&quot;language-text&quot;&gt;start&lt;/code&gt;という記述があるので、以下のコマンドを実行します。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;git clone https://github.com/mikeyamadeo/react-scaffold
cd react-scaffold
yarn
yarn start&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;すると、特にドキュメントなども見なくても、Webサーバーが立ち上がり、いつでも開発できる状態になります。&lt;/p&gt;
&lt;p&gt;コードがオープンに公開されるこの時代、リポジトリの多いNode.jsを習得することはとても有意義なことです。&lt;br&gt;
おすすめするのは、0からnpmのプロジェクト(パッケージ)を作ってみることです。&lt;br&gt;
一つ一つ何が起こっているのか理解することで、誰かのパッケージを使う際や、エラーなどが発生した際に、その知識が役立ちます。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[2019年版Node-jsのおすすめインストール方法]]></title><link>https://www.bauhausify.com/2019-09-20_2019年版Node-jsのおすすめインストール方法/</link><guid isPermaLink="false">https://www.bauhausify.com/2019-09-20_2019年版Node-jsのおすすめインストール方法/</guid><pubDate>Fri, 20 Sep 2019 00:00:00 GMT</pubDate><content:encoded>&lt;h2 id=&quot;簡単なnodejsの特徴&quot;&gt;&lt;a href=&quot;#%E7%B0%A1%E5%8D%98%E3%81%AAnodejs%E3%81%AE%E7%89%B9%E5%BE%B4&quot; aria-label=&quot;簡単なnodejsの特徴 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;簡単なNode.jsの特徴&lt;/h2&gt;
&lt;p&gt;まずNode.jsの特徴を簡単におさらいしましょう。
Node.jsの大きな特徴は2つあります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;サーバーサイドでできることがJavaScriptでできる(ファイルの読み書き、サーバーの起動などなど)&lt;/li&gt;
&lt;li&gt;npmというパッケージ管理ツールで世界中の人のコードが使える&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Node.jsとは一言でいうとサーバーサイドJavaScript環境です。&lt;br&gt;
今までクライアントサイドでしか動かなかったJavaScriptですが、Webサーバーやファイル操作など、Java、Ruby、Python、PHPなどの言語でしかできなかった領域に足を踏み入れることができるようになりました。&lt;br&gt;
そして、強力な&lt;code class=&quot;language-text&quot;&gt;npm&lt;/code&gt;というJavaScriptのパッケージ管理ツールがあり、世界中のプロフェッショナルが作成したコードを簡単に使えます。&lt;br&gt;
もしすでにNode.jsをインストールされている場合は、&lt;a href=&quot;/2019-09-24_%E6%97%A5%E5%B8%B8%E7%9A%84%E3%81%AB%E4%BD%BF%E3%81%86%E3%82%B7%E3%83%BC%E3%83%B3%E5%88%A5Node-js%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%88%E3%82%99%E9%9B%86/&quot;&gt;次の記事&lt;/a&gt;でよく使うコマンドをまとめているのでご覧ください。&lt;/p&gt;
&lt;h2 id=&quot;事前にインストールすること&quot;&gt;&lt;a href=&quot;#%E4%BA%8B%E5%89%8D%E3%81%AB%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8&quot; aria-label=&quot;事前にインストールすること permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;事前にインストールすること&lt;/h2&gt;
&lt;p&gt;では早速必要なツールをインストールしていきます。&lt;br&gt;
使いたいのはNode.jsだけなのですが、はじめにインストールしておいたほうがいいツールも合わせてご紹介します。&lt;br&gt;
大きく以下の２つをインストールします。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Homebrew&lt;/li&gt;
&lt;li&gt;Node.jsバージョン管理ツール&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;homebrewのインストール&quot;&gt;&lt;a href=&quot;#homebrew%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&quot; aria-label=&quot;homebrewのインストール permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;Homebrewのインストール&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://brew.sh/index_ja&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Homebrew&lt;/a&gt;とは、Terminalなどのコマンドラインから、コマンドラインツールやMacAppを管理するツールです。&lt;br&gt;
エンジニアならただちにインストールしましょう。&lt;br&gt;
ツールやアプリは、その提供元により様々なインストール方法がありますが、それらをすべて&lt;code class=&quot;language-text&quot;&gt;brew install &amp;lt;パッケージ名&gt;&lt;/code&gt;というコマンドで統一できます。&lt;br&gt;
アプリをインストールする場合は&lt;code class=&quot;language-text&quot;&gt;brew cask install &amp;lt;アプリ名&gt;&lt;/code&gt;というように&lt;code class=&quot;language-text&quot;&gt;brew&lt;/code&gt;のあとに&lt;code class=&quot;language-text&quot;&gt;cask&lt;/code&gt;を追加します。&lt;/p&gt;
&lt;p&gt;インストールは、&lt;a href=&quot;https://brew.sh/index_ja&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;公式サイト&lt;/a&gt;にも記載されている以下のコマンドをTerminalに貼り付けEnterキーで実行します。&lt;br&gt;&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;sh&quot;&gt;&lt;pre class=&quot;language-sh&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;/usr/bin/ruby &lt;span class=&quot;token parameter variable&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;&lt;span class=&quot;token variable&quot;&gt;&lt;span class=&quot;token variable&quot;&gt;$(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;curl&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/Homebrew/install/master/install&lt;span class=&quot;token variable&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;nodejsバージョン管理ツールのインストール&quot;&gt;&lt;a href=&quot;#nodejs%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E7%AE%A1%E7%90%86%E3%83%84%E3%83%BC%E3%83%AB%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&quot; aria-label=&quot;nodejsバージョン管理ツールのインストール permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;Node.jsバージョン管理ツールのインストール&lt;/h2&gt;
&lt;p&gt;Node.jsは&lt;a href=&quot;https://nodejs.org/ja/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;公式サイトにかかれているインストール方法&lt;/a&gt;ではなく、バージョン管理ツールからインストールする方法をおすすめします。&lt;br&gt;
公式の方法は、1つのバージョンしかインストールできないので、複数プロジェクトを横断していると、バージョンを変えないと動かないことが多々あり、その際に都度アンインストールとインストールを繰り返すのは手間です。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;おすすめは&lt;a href=&quot;https://github.com/nodenv/nodenv&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;nodenv&lt;/a&gt;ですが、他にもRubyやPythonなどのバージョンも管理したい場合は&lt;a href=&quot;https://github.com/anyenv/anyenv&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;anyenv&lt;/a&gt;からインストールすることをおすすめします。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;nodenvのいいところは、プロジェクトごとに使うバージョンを指定でき、バージョンを手動で変える手間すら不要なところです。anyenvはnodejsだけでなく多言語のバージョン管理ツールもまとめて管理できる1つ上のレイヤーのツールです。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;sh&quot;&gt;&lt;pre class=&quot;language-sh&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;brew &lt;span class=&quot;token function&quot;&gt;install&lt;/span&gt; anyenv
anyenv init&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;~/.bash_profile(or ~/.zshrc)に&lt;code class=&quot;language-text&quot;&gt;eval &quot;$(anyenv init -)&quot;&lt;/code&gt;を記述します。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;sh&quot;&gt;&lt;pre class=&quot;language-sh&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;# Terminal再起動&lt;/span&gt;
anyenv &lt;span class=&quot;token function&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;--init&lt;/span&gt;
anyenv &lt;span class=&quot;token function&quot;&gt;install&lt;/span&gt; nodenv&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;これでnodenvがインストールされました。&lt;br&gt;&lt;/p&gt;
&lt;h2 id=&quot;nodejsのインストール&quot;&gt;&lt;a href=&quot;#nodejs%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&quot; aria-label=&quot;nodejsのインストール permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;Node.jsのインストール&lt;/h2&gt;
&lt;p&gt;それでは最新バージョンのNode.jsをインストールしましょう。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;code class=&quot;language-text&quot;&gt;nodenv install -l&lt;/code&gt;を実行すると、インストール可能なバージョンがすべて表示されます。&lt;br&gt;
この中から数字で始まる最新バージョンを調べます。&lt;br&gt;
そして、以下を実行します。&lt;/p&gt;
&lt;div class=&quot;gatsby-code-title gatsby-remark-code-titles&quot;&gt;最新バージョンが11.10.0の場合&lt;/div&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;sh&quot;&gt;&lt;pre class=&quot;language-sh&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;nodenv &lt;span class=&quot;token function&quot;&gt;install&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;11.10&lt;/span&gt;.0&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;これでインストール完了です。&lt;br&gt;
&lt;code class=&quot;language-text&quot;&gt;node --version&lt;/code&gt;を実行し、インストールしたバージョンが表示されれば成功です。&lt;/p&gt;
&lt;p&gt;次回は、実際に業務でよく使うNode.jsのコマンドたちを紹介したいと思います。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[p5.jsをReactのコンポーネントとして実行する方法]]></title><link>https://www.bauhausify.com/2019-09-17_p5-jsをreactのコンポーネントとして実行する方法/</link><guid isPermaLink="false">https://www.bauhausify.com/2019-09-17_p5-jsをreactのコンポーネントとして実行する方法/</guid><pubDate>Tue, 17 Sep 2019 07:53:50 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;/2019-09-14_p5-js%E3%82%92%E6%9C%AC%E7%95%AA%E3%82%B5%E3%82%A4%E3%83%88%E3%81%A7%E4%BD%BF%E3%81%86%E6%96%B9%E6%B3%95/&quot;&gt;p5.jsを本番サイトで使う方法&lt;/a&gt;では、グローバルスコープ内(windowオブジェクト直下)に直接p5.jsを読み込ませ、p5.jsのグローバルモードとしてp5jsを実行する方法を解説しました。&lt;/p&gt;
&lt;p&gt;この記事では、p5jsのインスタンスモードを使用し、Reactなどのコンポーネントとしてp5.jsを読み込ませる方法を解説します。&lt;br&gt;
インスタンスモードとグローバルモードの違いは&lt;a href=&quot;/2019-09-14_p5-js%E3%82%92%E6%9C%AC%E7%95%AA%E3%82%B5%E3%82%A4%E3%83%88%E3%81%A7%E4%BD%BF%E3%81%86%E6%96%B9%E6%B3%95/&quot;&gt;p5.jsを本番サイトで使う方法&lt;/a&gt;をご覧ください。&lt;/p&gt;
&lt;h2 id=&quot;p5jsのwrappingコンポーネントをゼロから作る&quot;&gt;&lt;a href=&quot;#p5js%E3%81%AEwrapping%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E3%82%92%E3%82%BC%E3%83%AD%E3%81%8B%E3%82%89%E4%BD%9C%E3%82%8B&quot; aria-label=&quot;p5jsのwrappingコンポーネントをゼロから作る permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;p5.jsのWrappingコンポーネントをゼロから作る&lt;/h2&gt;
&lt;p&gt;動くサンプルコードは&lt;a href=&quot;https://codesandbox.io/s/react-p5-wrapper-trjwy&quot; target=&quot;_blank_&quot;&gt;CodeSandBox&lt;/a&gt;にあります。コードのみ見たい方はそちらをご覧ください。&lt;/p&gt;
&lt;p&gt;まずreactとp5をインストールしましょう。&lt;br&gt;
関数コンポーネントで書きたいので、Reactの&lt;code class=&quot;language-text&quot;&gt;useEffect&lt;/code&gt;, &lt;code class=&quot;language-text&quot;&gt;useState&lt;/code&gt;あたりを使いたいので、Reactのバージョンは&lt;code class=&quot;language-text&quot;&gt;16.8&lt;/code&gt;以上が前提です。クラスコンポーネントで書きたい方は適宜置き換えてください。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;sh&quot;&gt;&lt;pre class=&quot;language-sh&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;install&lt;/span&gt; react react-dom p5 &lt;span class=&quot;token parameter variable&quot;&gt;--save&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;次にWrappingコンポーネントを作成してきます。&lt;br&gt;
&lt;code class=&quot;language-text&quot;&gt;P5Wrapper&lt;/code&gt;という名前のReactの関数コンポーネントを作成します。&lt;br&gt;
同時に、p5jsからcanvas要素を生成する先のdiv要素を&lt;code class=&quot;language-text&quot;&gt;wrapper&lt;/code&gt;という参照名で作成します。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token function-variable function&quot;&gt;P5Wrapper&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token parameter&quot;&gt;props&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; wrapper &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; React&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;createRef&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;div ref&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;wrapper&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;p5jsは圧縮版を&lt;code class=&quot;language-text&quot;&gt;_p5&lt;/code&gt;として読み込ませます。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; _p5 &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;p5/lib/p5.min&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;クラスコンポーネントのStateとComponentDidMountに変わる関数を使いたいので、依存モジュールをimportします。&lt;br&gt;
useStateがStateを扱う役割をし、useEffectがComponentDidMountの役割をします。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; React&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; useState&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; useEffect &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;react&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;p5のインスタンス格納用に、stateを宣言します。&lt;br&gt;
ここでp5という名前を使いたかったので、p5js本体は&lt;code class=&quot;language-text&quot;&gt;_p5&lt;/code&gt;という名前にしています。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;p5&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; setP5&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;useState&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;useEffectを使い、p5jsを&lt;code class=&quot;language-text&quot;&gt;wrapper&lt;/code&gt;にマウントさせます。&lt;br&gt;
wrapperはdiv要素なので、div要素がレンダリングされたあと実行される&lt;code class=&quot;language-text&quot;&gt;useEffect&lt;/code&gt;の中でないと、p5jsをマウントできません。&lt;br&gt;
第2引数に&lt;code class=&quot;language-text&quot;&gt;props.sketch&lt;/code&gt;を渡さないと無限にcanvasが生成されてしまいますのでご注意ください。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token function&quot;&gt;useEffect&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;setP5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;_p5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;props&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;sketch&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; wrapper&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;current&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;props&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;sketch&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;全体のコードは以下のようになります。&lt;br&gt;
これでp5jsのWrapperコンポーネントが完成しました。&lt;/p&gt;
&lt;div class=&quot;gatsby-code-title gatsby-remark-code-titles&quot;&gt;P5Wrapper.js&lt;/div&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; React&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; useState&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; useEffect &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;react&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; _p5 &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;p5/lib/p5.min&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; PropTypes &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;prop-types&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token function-variable function&quot;&gt;P5Wrapper&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token parameter&quot;&gt;props&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;p5&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; setP5&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;useState&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; wrapper &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; React&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;createRef&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token function&quot;&gt;useEffect&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token function&quot;&gt;setP5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;_p5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;props&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;sketch&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; wrapper&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;current&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;props&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;sketch&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;div ref&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;wrapper&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

P5Wrapper&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;propTypes &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;sketch&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; PropTypes&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;func
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; P5Wrapper&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;つぎにsketchファイルを別ファイルとして用意しておきます。&lt;br&gt;
内容は300x300pxのcanvas内でマウス座標に従い赤い丸が描画されるというものです。&lt;/p&gt;
&lt;div class=&quot;gatsby-code-title gatsby-remark-code-titles&quot;&gt;sketches/sketch1.js&lt;/div&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token function-variable function&quot;&gt;sketch&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token parameter&quot;&gt;p&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function-variable function&quot;&gt;setup&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;createCanvas&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;300&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;300&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function-variable function&quot;&gt;draw&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;240&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;mouseX &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;mouseY &lt;span class=&quot;token operator&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;fill&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;noStroke&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;ellipse&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;mouseX&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;mouseY&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; sketch&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;上記で作成したP5Wrapper.jsとsketch1.jsファイルを使用し。
Reactのindexファイルから参照します。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js:index.js&quot;&gt;&lt;pre class=&quot;language-js:index.js&quot;&gt;&lt;code class=&quot;language-js:index.js&quot;&gt;import React from &amp;quot;react&amp;quot;;
import ReactDOM from &amp;quot;react-dom&amp;quot;;
import P5Wrapper from &amp;quot;./P5Wrapper&amp;quot;;
import sketch1 from &amp;quot;./sketches/sketch1&amp;quot;;

function App() {
  return (
    &amp;lt;div className=&amp;quot;App&amp;quot;&amp;gt;
      &amp;lt;h1&amp;gt;Hello p5.js in React&amp;lt;/h1&amp;gt;
      &amp;lt;P5Wrapper sketch={sketch1} /&amp;gt;
    &amp;lt;/div&amp;gt;
  );
}

const rootElement = document.getElementById(&amp;quot;root&amp;quot;);
ReactDOM.render(&amp;lt;App /&amp;gt;, rootElement);&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;以上で完了です。&lt;br&gt;
動くサンプルコードは&lt;a href=&quot;https://codesandbox.io/s/react-p5-wrapper-trjwy&quot; target=&quot;_blank_&quot;&gt;CodeSandBox&lt;/a&gt;にありますのでご覧ください。&lt;/p&gt;
&lt;h2 id=&quot;おまけreact-p5-wrapperライブラリ編&quot;&gt;&lt;a href=&quot;#%E3%81%8A%E3%81%BE%E3%81%91react-p5-wrapper%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E7%B7%A8&quot; aria-label=&quot;おまけreact p5 wrapperライブラリ編 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;[おまけ]react-p5-wrapperライブラリ編&lt;/h2&gt;
&lt;p&gt;上でp5jsのwrappingコンポーネントを自作しましたが、もっとお手軽に使いたい方は、同様の機能が実装されている&lt;a href=&quot;https://github.com/and-who/react-p5-wrapper&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;react-p5-wrapper&lt;/a&gt;を使うのがおすすめです。&lt;br&gt;
コードは&lt;a href=&quot;https://github.com/and-who/react-p5-wrapper&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;GithubのREADME&lt;/a&gt;より拝借いたしました。&lt;br&gt;
内容も同じなので、そちらを見ていただいても同じです。&lt;/p&gt;
&lt;p&gt;それではまず、既存プロジェクトに依存モジュールをインストールします。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;sh&quot;&gt;&lt;pre class=&quot;language-sh&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;span class=&quot;token function&quot;&gt;npm&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;install&lt;/span&gt; react-p5-wrapper &lt;span class=&quot;token parameter variable&quot;&gt;--save&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;まずsketchファイルは1つのJSファイルとして完結させます。&lt;br&gt;
グローバルモードから移植する場合は、すべてのp5js関数の先頭に&lt;code class=&quot;language-text&quot;&gt;p.&lt;/code&gt;をつけるだけです。&lt;br&gt;
Reactのアプリケーションスコープから値もpropsとして渡せます。&lt;br&gt;
&lt;code class=&quot;language-text&quot;&gt;myCustomRedrawAccordingToNewPropsHandler&lt;/code&gt;関数で値を受け取り、内部スコープの変数に格納しています。&lt;/p&gt;
&lt;div class=&quot;gatsby-code-title gatsby-remark-code-titles&quot;&gt;sketch.js&lt;/div&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;default&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;sketch&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; rotation &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function-variable function&quot;&gt;setup&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;createCanvas&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;600&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;400&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token constant&quot;&gt;WEBGL&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function-variable function&quot;&gt;myCustomRedrawAccordingToNewPropsHandler&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;props&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;props&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;rotation &lt;span class=&quot;token operator&quot;&gt;!==&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
      rotation &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; props&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;rotation &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; Math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token constant&quot;&gt;PI&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;180&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function-variable function&quot;&gt;draw&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;normalMaterial&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;noStroke&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;rotateY&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;rotation&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;box&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;pop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;あとはreact-p5-wrapperコンポーネントのpropsに上で作成したsketch.jsファイルを渡します。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; P5Wrapper &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;react-p5-wrapper&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; sketch &lt;span class=&quot;token keyword&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;./sketch.js&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;P5Wrapper sketch&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;sketch&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;code class=&quot;language-text&quot;&gt;P5Wrapper&lt;/code&gt;コンポーネント内で自動でcanvasが生成されp5jsが実行されます。&lt;/p&gt;
&lt;p&gt;以上でライブラリ版は完了です。&lt;/p&gt;
&lt;h2 id=&quot;まとめ&quot;&gt;&lt;a href=&quot;#%E3%81%BE%E3%81%A8%E3%82%81&quot; aria-label=&quot;まとめ permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;まとめ&lt;/h2&gt;
&lt;p&gt;react-p5-wrapperを使った例も書きましたが、自分でいろいろカスタマイズしたい場合は、冒頭のカスタムコンポーネントを作成することをおすすめします。&lt;br&gt;
Vueのコンポーネントは書いていませんが、考え方はReactと同じです。&lt;br&gt;
他にもiframeで動かすケースも考えられますが、iframeの参照URL先でグローバルモードのp5jsを動かすだけですので省略します。&lt;br&gt;
後日余力があれば、nodejsとかと組み合わせて書いていきたいと思います。&lt;/p&gt;
&lt;p&gt;それでは、よいp5ライフを!&lt;/p&gt;</content:encoded></item><item><title><![CDATA[p5.jsを本番サイトで使う方法]]></title><link>https://www.bauhausify.com/2019-09-14_p5-jsを本番サイトで使う方法/</link><guid isPermaLink="false">https://www.bauhausify.com/2019-09-14_p5-jsを本番サイトで使う方法/</guid><pubDate>Sat, 14 Sep 2019 00:00:00 GMT</pubDate><content:encoded>&lt;h2 id=&quot;前提知識-p5jsの書き方とその特徴&quot;&gt;&lt;a href=&quot;#%E5%89%8D%E6%8F%90%E7%9F%A5%E8%AD%98-p5js%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9%E3%81%A8%E3%81%9D%E3%81%AE%E7%89%B9%E5%BE%B4&quot; aria-label=&quot;前提知識 p5jsの書き方とその特徴 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;前提知識 p5.jsの書き方とその特徴&lt;/h2&gt;
&lt;p&gt;p5.jsはその書き方に着目すると2パターンあります。&lt;/p&gt;
&lt;h3 id=&quot;標準の書き方グローバルモード&quot;&gt;&lt;a href=&quot;#%E6%A8%99%E6%BA%96%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9%E3%82%B0%E3%83%AD%E3%83%BC%E3%83%90%E3%83%AB%E3%83%A2%E3%83%BC%E3%83%89&quot; aria-label=&quot;標準の書き方グローバルモード permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;標準の書き方(グローバルモード)&lt;/h3&gt;
&lt;p&gt;まず&lt;a href=&quot;https://p5js.org/get-started/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;公式のGet Startedページ&lt;/a&gt;に記載されている書き方です。&lt;br&gt;
後で登場するインスタンスモードと区別するためにこの記事では&lt;em&gt;グローバルモード&lt;/em&gt;と呼ばせてください。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;setup&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;createCanvas&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;draw&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;fill&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;noStroke&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;ellipse&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;width&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; height&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;本家の&lt;a href=&quot;https://processing.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Processing&lt;/a&gt;の書き方にできるだけ似せており非常に書きやすいです。&lt;br&gt;
簡単にsketchを書きたい場合、プロトタイプや研究用として暫定的に使いたい場合、他のJSライブラリを使わない小規模なサイトの場合に向いています。&lt;br&gt;
しかし、グローバル領域を汚染している(windowオブジェクトの中に直接p5.jsが定義されている)ので、他のJSファイルや今後書いていくJSファイルと定義がコンフリクトする可能性があり、プロダクションビルドではあまり使いたくない方法です。&lt;/p&gt;
&lt;h3 id=&quot;インスタンスモード&quot;&gt;&lt;a href=&quot;#%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E3%83%A2%E3%83%BC%E3%83%89&quot; aria-label=&quot;インスタンスモード permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;インスタンスモード&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://p5js.org/examples/instance-mode-instance-container.html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;公式のInstance Containerページ&lt;/a&gt;に記載されています。&lt;/p&gt;
&lt;div class=&quot;gatsby-code-title gatsby-remark-code-titles&quot;&gt;index.html&lt;/div&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;html&quot;&gt;&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&apos;&lt;/span&gt;container&lt;span class=&quot;token punctuation&quot;&gt;&apos;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;gatsby-code-title gatsby-remark-code-titles&quot;&gt;index.js&lt;/div&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;token function-variable function&quot;&gt;sketch&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function-variable function&quot;&gt;setup&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;createCanvas&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

  p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function-variable function&quot;&gt;draw&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;fill&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;noStroke&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
    p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;ellipse&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;width&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; height&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;


&lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;p5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;sketch&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;contaienr&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;グローバルモードと比べると、表示結果は同じなのですが、明らかに記述量が多く&lt;em&gt;書きづらい&lt;/em&gt;ですね。&lt;br&gt;
ただしこの場合、グローバル領域を汚染しているのは&lt;code class=&quot;language-text&quot;&gt;p5&lt;/code&gt;という関数のみです。&lt;br&gt;
なので、こちらは少し書きづらいけど、安全な書き方です。さらに、p5を実行する場所も指定できます。&lt;/p&gt;
&lt;p&gt;注意点として、window直下に&lt;code class=&quot;language-text&quot;&gt;setup&lt;/code&gt;もしくは&lt;code class=&quot;language-text&quot;&gt;draw&lt;/code&gt;関数を定義しないことです。&lt;br&gt;
もし定義してしまうと、インスタンスモードではなくなりグローバルモードになります。&lt;/p&gt;
&lt;p&gt;ちなみにBabelなどのES6環境下であれば、&lt;code class=&quot;language-text&quot;&gt;function&lt;/code&gt;を省略できる文、少しコード量は減ります。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;text&quot;&gt;&lt;pre class=&quot;language-text&quot;&gt;&lt;code class=&quot;language-text&quot;&gt;const sketch = p =&gt; {
  p.setup = () =&gt; {
    p.createCanvas(100, 100);
  }

  p.draw = () =&gt; {
    p.background(0);
    p.fill(100);
    p.noStroke();
    p.ellipse(width/2, height/2, 50);
  }
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;p5js具体的な読み込ませ方&quot;&gt;&lt;a href=&quot;#p5js%E5%85%B7%E4%BD%93%E7%9A%84%E3%81%AA%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BE%E3%81%9B%E6%96%B9&quot; aria-label=&quot;p5js具体的な読み込ませ方 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;p5.js具体的な読み込ませ方&lt;/h2&gt;
&lt;p&gt;ざっと考えると以下のパターンが考えられます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;scriptタグで読み込ませ、グローバルモードで実行&lt;/li&gt;
&lt;li&gt;作品ごとに別URLで準備しておき、使いたいページ内でiframeとして実行する&lt;/li&gt;
&lt;li&gt;scriptタグで読み込ませ、インスタンスモードで実行&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;scriptタグで読み込ませグローバルモードで実行&quot;&gt;&lt;a href=&quot;#script%E3%82%BF%E3%82%B0%E3%81%A7%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BE%E3%81%9B%E3%82%B0%E3%83%AD%E3%83%BC%E3%83%90%E3%83%AB%E3%83%A2%E3%83%BC%E3%83%89%E3%81%A7%E5%AE%9F%E8%A1%8C&quot; aria-label=&quot;scriptタグで読み込ませグローバルモードで実行 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;scriptタグで読み込ませ、グローバルモードで実行&lt;/h3&gt;
&lt;p&gt;小規模なサイトや他のJSライブラリを使っていなく、自由にJSを書ける環境であればおすすめです。&lt;br&gt;
しかし、大概の本番サイトの場合、グローバル汚染するのでおすすめしません。&lt;/p&gt;
&lt;h3 id=&quot;作品ごとに別urlで準備しておき使いたいページ内でiframeとして実行する&quot;&gt;&lt;a href=&quot;#%E4%BD%9C%E5%93%81%E3%81%94%E3%81%A8%E3%81%AB%E5%88%A5url%E3%81%A7%E6%BA%96%E5%82%99%E3%81%97%E3%81%A6%E3%81%8A%E3%81%8D%E4%BD%BF%E3%81%84%E3%81%9F%E3%81%84%E3%83%9A%E3%83%BC%E3%82%B8%E5%86%85%E3%81%A7iframe%E3%81%A8%E3%81%97%E3%81%A6%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B&quot; aria-label=&quot;作品ごとに別urlで準備しておき使いたいページ内でiframeとして実行する permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;作品ごとに別URLで準備しておき、使いたいページ内でiframeとして実行する&lt;/h3&gt;
&lt;p&gt;ハック的なやり方です。&lt;br&gt;
ただサイト構造やサーバーサイドを設計する必要があり、iframeをページ内で扱う必要があるため、扱いづらく複雑です。&lt;br&gt;
iframeを前提とした環境を整備できるのであれば、おそらく一番スマートなやり方ですが、導入の敷居が高いです。&lt;/p&gt;
&lt;h3 id=&quot;scriptタグで読み込ませインスタンスモードで実行&quot;&gt;&lt;a href=&quot;#script%E3%82%BF%E3%82%B0%E3%81%A7%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BE%E3%81%9B%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E3%83%A2%E3%83%BC%E3%83%89%E3%81%A7%E5%AE%9F%E8%A1%8C&quot; aria-label=&quot;scriptタグで読み込ませインスタンスモードで実行 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;scriptタグで読み込ませ、インスタンスモードで実行&lt;/h3&gt;
&lt;p&gt;書きづらさを除けば、導入の敷居が低く、グローバル汚染もほぼなく一番現実的な方法です。&lt;br&gt;
いきなりインスタンスモードで書いてもいいですが、ローカルや&lt;a href=&quot;https://editor.p5js.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;公式のp5.jsのブラウザ実行環境&lt;/a&gt;でグローバルモードで最終的なコードを完成させたあと、インスタンスモードに変換するのがおすすめです。&lt;br&gt;&lt;/p&gt;
&lt;h2 id=&quot;まとめ&quot;&gt;&lt;a href=&quot;#%E3%81%BE%E3%81%A8%E3%82%81&quot; aria-label=&quot;まとめ permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;まとめ&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code class=&quot;language-text&quot;&gt;setup&lt;/code&gt;か&lt;code class=&quot;language-text&quot;&gt;draw&lt;/code&gt;関数をグローバルスコープで定義するとグローバルモードになる、それ以外だとインスタンスモード&lt;/li&gt;
&lt;li&gt;グローバルモードは書きやすいけど、グローバル汚染する&lt;/li&gt;
&lt;li&gt;インスタンスモードは書きづらいけど、グローバル汚染しない&lt;/li&gt;
&lt;li&gt;練習、プロトタイプ、研究では、書きやすいグローバルモードがおすすめ&lt;/li&gt;
&lt;li&gt;本番サイトではグローバル汚染を避けるため、インスタンスモードかおすすめ&lt;/li&gt;
&lt;li&gt;サーバーサイドも手を出せるのであれば、グローバルモードでiframeもあり&lt;/li&gt;
&lt;li&gt;ReactやVueのコンポーネントとして使う場合は後日、別記事でご紹介&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title><![CDATA[p5.jsスケッチトレーニング -円弧の線を円周上に沿って動かす-]]></title><link>https://www.bauhausify.com/2019-09-11_p5-jsスケッチトレーニング-円弧の線を円周上に沿って動かす/</link><guid isPermaLink="false">https://www.bauhausify.com/2019-09-11_p5-jsスケッチトレーニング-円弧の線を円周上に沿って動かす/</guid><pubDate>Wed, 11 Sep 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://codepen.io/mwrote/pen/pozLbvP?defaultTab=result&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;div class=&quot;embed-codepen&quot;&gt;&lt;iframe
        height=&apos;400&apos;
        scrolling=&apos;no&apos;
        src=&apos;//codepen.io/mwrote/embed/preview/pozLbvP/?height=400&amp;theme-id=light&amp;default-tab=result&apos;
        frameborder=&apos;no&apos;
        allowtransparency=&apos;true&apos;
        allowfullscreen=&apos;true&apos;
        style=&apos;width: 100%;&apos;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;今回はp5jsのトレーニングとして、&lt;code class=&quot;language-text&quot;&gt;arc&lt;/code&gt;と簡単なEaseOut関数を使ったコードを作りました。&lt;/p&gt;
&lt;p&gt;このコードの要点のみ解説したいと思います。&lt;br&gt;
最終的なコードは&lt;a href=&quot;https://codepen.io/mwrote/pen/pozLbvP&quot; target=&quot;_blank_&quot;&gt;Codepen&lt;/a&gt;でご確認いただけます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;#arc%E9%96%A2%E6%95%B0%E3%81%A7%E5%86%86%E5%BC%A7%E3%82%92%E6%8F%8F%E3%81%8F&quot;&gt;arc関数で円弧を描く&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#%E6%8F%8F%E7%94%BB%E3%81%99%E3%82%8B%E5%86%86%E5%BC%A7%E3%81%AE%E5%AE%9A%E7%BE%A9%E3%82%92%E3%80%81%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%A8%E3%81%97%E3%81%A6%E6%A0%BC%E7%B4%8D%E3%81%99%E3%82%8B&quot;&gt;描画する円弧の定義を、オブジェクトとして格納する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#%E8%A4%87%E6%95%B0%E7%94%9F%E6%88%90%E3%81%97%E3%81%9F%E3%81%84%E3%81%AE%E3%81%A7%E9%85%8D%E5%88%97%E3%81%AB%E6%A0%BC%E7%B4%8D%E3%81%99%E3%82%8B&quot;&gt;複数生成したいので配列に格納する&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#Easing%E3%81%A7%E5%8B%95%E3%81%8D%E3%82%92%E3%81%A4%E3%81%91%E3%82%8B&quot;&gt;Easingで動きをつける&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#draw%E9%96%A2%E6%95%B0%E5%86%85%E3%81%A7%E6%9C%80%E7%B5%82%E7%9A%84%E3%81%AA%E5%86%86%E5%BC%A7%E3%82%92%E6%8F%8F%E3%81%8F&quot;&gt;draw関数内で最終的な円弧を描く&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;arc関数で円弧を描く&quot;&gt;&lt;a href=&quot;#arc%E9%96%A2%E6%95%B0%E3%81%A7%E5%86%86%E5%BC%A7%E3%82%92%E6%8F%8F%E3%81%8F&quot; aria-label=&quot;arc関数で円弧を描く permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;arc関数で円弧を描く&lt;/h2&gt;
&lt;p&gt;一見複雑にみえますが、主な描画関数は&lt;code class=&quot;language-text&quot;&gt;arc&lt;/code&gt;です。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token function&quot;&gt;noFill&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// 塗りつぶしをなくします。&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;stroke&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;線の色&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;strokeWeight&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;線の太さ&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;arc&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;円弧の中心x座標&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; 円弧の中心y座標&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; 円弧の幅&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; 円弧の高さ&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; 円弧の開始角度&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; 円弧の終了角度&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;描画する円弧の定義をオブジェクトとして格納する&quot;&gt;&lt;a href=&quot;#%E6%8F%8F%E7%94%BB%E3%81%99%E3%82%8B%E5%86%86%E5%BC%A7%E3%81%AE%E5%AE%9A%E7%BE%A9%E3%82%92%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%A8%E3%81%97%E3%81%A6%E6%A0%BC%E7%B4%8D%E3%81%99%E3%82%8B&quot; aria-label=&quot;描画する円弧の定義をオブジェクトとして格納する permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;描画する円弧の定義を、オブジェクトとして格納する&lt;/h2&gt;
&lt;p&gt;円弧の定義の内、動的に変えたい値を1つのオブジェクトに格納します。&lt;br&gt;
動的に変えたいのは色、太さ、円弧の大きさ、円弧の長さです。&lt;br&gt;
自動で様々な円弧を生成したいので、値の初期値にrandom関数を使い、オブジェクトを定義します。&lt;br&gt;&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// 線の色&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;weight&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// 先の太さ&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;arcWidth&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// 円弧の幅と高さ、正円は幅と高さも同じなので幅のみ定義&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;startDegree&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;360&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// 円弧の開始角度&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;arcLength&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;radians&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;120&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// 円弧の長さを角度で定義、開始角度とると円弧の終了角度になる&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;複数生成したいので配列に格納する&quot;&gt;&lt;a href=&quot;#%E8%A4%87%E6%95%B0%E7%94%9F%E6%88%90%E3%81%97%E3%81%9F%E3%81%84%E3%81%AE%E3%81%A7%E9%85%8D%E5%88%97%E3%81%AB%E6%A0%BC%E7%B4%8D%E3%81%99%E3%82%8B&quot; aria-label=&quot;複数生成したいので配列に格納する permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;複数生成したいので配列に格納する&lt;/h2&gt;
&lt;p&gt;for文を使い、好きな数の円弧の定義を生成し、&lt;code class=&quot;language-text&quot;&gt;arcs&lt;/code&gt;に格納します。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; arcs &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; i&lt;span class=&quot;token operator&quot;&gt;++&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  arcs&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;weight&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;arcWidth&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;startDegree&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;360&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;arcLength&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;radians&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;120&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;easingで動きの緩急をつける&quot;&gt;&lt;a href=&quot;#easing%E3%81%A7%E5%8B%95%E3%81%8D%E3%81%AE%E7%B7%A9%E6%80%A5%E3%82%92%E3%81%A4%E3%81%91%E3%82%8B&quot; aria-label=&quot;easingで動きの緩急をつける permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;Easingで動きの緩急をつける&lt;/h2&gt;
&lt;p&gt;Easing[イージング]に関しては、&lt;a href=&quot;https://app.codegrid.net/entry/easing-1&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;CodeGridさんの記事&lt;/a&gt;で詳しく解説されているのでわからない方はざっと見たほうがいいかもしれません。&lt;/p&gt;
&lt;p&gt;ここでは、Processing内でサクッと書きたかったので、
&lt;a href=&quot;https://office606.org/archives/326/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;こちらの記事&lt;/a&gt;の式が簡単だったので、引用させていただきました。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;nowValue &lt;span class=&quot;token operator&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;tagetValue &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; nowValue&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0.05&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;要は目的の値までの距離を均等に徐々に足していくという式です。&lt;br&gt;
目的の値に近づくほど足す値が小さくなっていくので、EaseOut[イーズアウト]の形になります。&lt;/p&gt;
&lt;p&gt;他にも、&lt;a href=&quot;https://github.com/danro/jquery-easing/blob/master/jquery.easing.js&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Robert Pennerさんのeasing関数&lt;/a&gt;など、様々なEasing関数があるようです。後日チャレンジしてみたいと思います。&lt;/p&gt;
&lt;p&gt;そして、Easingの値を格納するために、円弧の定義に新たに&lt;code class=&quot;language-text&quot;&gt;delayDeg&lt;/code&gt;を追加します。&lt;br&gt;
円弧は0から360の角度で指定するので、目標角度を360とし&lt;code class=&quot;language-text&quot;&gt;delayFinalDeg&lt;/code&gt;に格納します。&lt;br&gt;
上記のEasing式に当てはめると以下の様なコードになります。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; delayFinalDeg &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;360&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// Easing部分の式&lt;/span&gt;
delayDeg &lt;span class=&quot;token operator&quot;&gt;+=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;delayFinalDeg &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; delayDeg&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0.05&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;code class=&quot;language-text&quot;&gt;delayDeg&lt;/code&gt;は円弧ごとに変えたいので、先ほどのオブジェクトに追加します。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;weight&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;arcWidth&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;startDegree&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;360&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;arcLength&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;radians&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;120&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;delayDeg&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;360&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// この行を追加&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;draw関数内で最終的な円弧を描く&quot;&gt;&lt;a href=&quot;#draw%E9%96%A2%E6%95%B0%E5%86%85%E3%81%A7%E6%9C%80%E7%B5%82%E7%9A%84%E3%81%AA%E5%86%86%E5%BC%A7%E3%82%92%E6%8F%8F%E3%81%8F&quot; aria-label=&quot;draw関数内で最終的な円弧を描く permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;draw関数内で最終的な円弧を描く&lt;/h2&gt;
&lt;p&gt;最後に、p5jsのdraw関数内でcanvasの中心座標に円弧を描きます。&lt;br&gt;
Easing値となる&lt;code class=&quot;language-text&quot;&gt;delayDeg&lt;/code&gt;は円弧の開始と終了座標にそれぞれ加算します。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token function&quot;&gt;arc&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;
  width&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  height&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  arcWidth&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  arcWidth&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;radians&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;delayDeg &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; startDegree&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; arcLength&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;radians&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;delayDeg &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; startDegree&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;code class=&quot;language-text&quot;&gt;delayDeg&lt;/code&gt;が360まで到達(一回転する)したあと、再度ループして描画させたいので、360に近づいたタイミングで0に戻します。&lt;br&gt;
今回使用したEasing式だと360に値に収束しますが、360になることはないので、&lt;code class=&quot;language-text&quot;&gt;-1&lt;/code&gt;した値と&lt;code class=&quot;language-text&quot;&gt;delayDeg&lt;/code&gt;を比較させます。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;delayDeg &lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; delayFinalDeg &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; arcLine&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;delayDeg &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br&gt;
以上のコードをp5jsのライフサイクル内に当てはめ、コードを完成させます。&lt;br&gt;
最終的なコードは&lt;a href=&quot;https://codepen.io/mwrote/pen/pozLbvP&quot; target=&quot;_blank_&quot;&gt;Codepen&lt;/a&gt;でご確認いただけます。
&lt;br&gt;</content:encoded></item><item><title><![CDATA[アトミックデザインはコンポーネント再利用の設計方法]]></title><link>https://www.bauhausify.com/2019-09-08_アトミックデザインはコンポーネント再利用の設計方法/</link><guid isPermaLink="false">https://www.bauhausify.com/2019-09-08_アトミックデザインはコンポーネント再利用の設計方法/</guid><pubDate>Sun, 08 Sep 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;会社でアトミックデザインをここ3年ほど導入していますので、そもそもそれはなんなのか、誤解しやすい点、重要なポイントなどを、あくまで一個人の意見としてご紹介します。&lt;/p&gt;
&lt;h2 id=&quot;アトミックデザインとは&quot;&gt;&lt;a href=&quot;#%E3%82%A2%E3%83%88%E3%83%9F%E3%83%83%E3%82%AF%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%81%A8%E3%81%AF&quot; aria-label=&quot;アトミックデザインとは permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;アトミックデザインとは&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;http://bradfrost.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Brad Frost&lt;/a&gt;さんが2013年に記事で公開したUIの設計システムです。&lt;br&gt;
公式のドキュメントは&lt;a href=&quot;http://bradfrost.com/blog/post/atomic-web-design/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Bradさんのアトミックデザインの記事&lt;/a&gt;を見てください。&lt;br&gt;
アトム(原子)、モレキュール(分子)、オーガニズム(生物)、テンプレート、ページという定義があり、UIをそれぞれに分類します。&lt;/p&gt;
&lt;p&gt;ちなみに、情報が確かかはわかりませんが、&lt;a href=&quot;http://danieldelaney.net/atomic/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;こちらの記事&lt;/a&gt;によると、1998年に同様の考えをMark Rolstonさんが提唱していたようです。&lt;br&gt;
Mark RolstonさんはAppleのインターフェースなどをデザインしたことで有名なFrogDesignに所属されていたそう。&lt;/p&gt;
&lt;h2 id=&quot;デザイン手法ではない&quot;&gt;&lt;a href=&quot;#%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E6%89%8B%E6%B3%95%E3%81%A7%E3%81%AF%E3%81%AA%E3%81%84&quot; aria-label=&quot;デザイン手法ではない permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;デザイン手法ではない&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;A lot has been said about creating design systems, and much of it focuses on establishing foundations for color, typography, grids, texture and the like. This type of thinking is certainly important, but I’m slightly less interested in these aspects of design because ultimately they are and will always be subjective.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;作者のBradさんは、色、テクスチャ、などの表現で設計システムを語ることにあまり興味がないと言っています。&lt;br&gt;
そして、インスピレーションとして、化学(原子、分子、生物など)に着目した設計手法として提案されています。&lt;br&gt;
なので、デザイン手法ではなく、化学から着想したコンポーネントの考え方となります。&lt;/p&gt;
&lt;h2 id=&quot;エンジニアとデザイナーのフローは真逆&quot;&gt;&lt;a href=&quot;#%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%81%A8%E3%83%87%E3%82%B6%E3%82%A4%E3%83%8A%E3%83%BC%E3%81%AE%E3%83%95%E3%83%AD%E3%83%BC%E3%81%AF%E7%9C%9F%E9%80%86&quot; aria-label=&quot;エンジニアとデザイナーのフローは真逆 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;エンジニアとデザイナーのフローは真逆&lt;/h2&gt;
&lt;p&gt;実際にアトミックデザインを導入しようとすると、エンジニアは導入していこうと意欲的ですが、デザイナーはいまいち感覚がつかめなかったりします。&lt;br&gt;
というのもデザインとアトミックデザインはその作業フローが全く逆です。&lt;/p&gt;
&lt;h3 id=&quot;デザイナーのフロー&quot;&gt;&lt;a href=&quot;#%E3%83%87%E3%82%B6%E3%82%A4%E3%83%8A%E3%83%BC%E3%81%AE%E3%83%95%E3%83%AD%E3%83%BC&quot; aria-label=&quot;デザイナーのフロー permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;デザイナーのフロー&lt;/h3&gt;
&lt;p&gt;デザインをするときは、いきなりコンポーネントの細部からデザインし始めません。&lt;br&gt;
アイデアスケッチもしていないのに、いきなり図面を引き始めるようなものです。&lt;br&gt;
まずはページ全体を捉えながら、あくまで全体として絵を考え、仕上げていきます。&lt;br&gt;
アトミックデザインで例えると、Pages -&gt; Organism -&gt; Molecule -&gt; Atoms というようにデザインしていきます。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;どのコンポーネントがどこと共通化でき、どのようなくくりになるのかは、使い勝手なども考慮して複数画面デザインてはじめて見えてきます。&lt;br&gt;&lt;/p&gt;
&lt;h3 id=&quot;エンジニアのフロー&quot;&gt;&lt;a href=&quot;#%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%81%AE%E3%83%95%E3%83%AD%E3%83%BC&quot; aria-label=&quot;エンジニアのフロー permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;エンジニアのフロー&lt;/h3&gt;
&lt;p&gt;逆にエンジニアは、おそらく部品からおいていく人が多いでしょう。&lt;br&gt;
そして、グルーピングする必要があればdiv要素で囲んでいきますよね。&lt;/p&gt;
&lt;p&gt;このようにデザイナーはマクロからミクロ、エンジニアはミクロからマクロと作業をする傾向があるので、なかなか足並みを揃えて進めていくのが難しいです。&lt;/p&gt;
&lt;h2 id=&quot;コンポーネントの分け方として他チームに共有&quot;&gt;&lt;a href=&quot;#%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E3%81%AE%E5%88%86%E3%81%91%E6%96%B9%E3%81%A8%E3%81%97%E3%81%A6%E4%BB%96%E3%83%81%E3%83%BC%E3%83%A0%E3%81%AB%E5%85%B1%E6%9C%89&quot; aria-label=&quot;コンポーネントの分け方として他チームに共有 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;コンポーネントの分け方として他チームに共有&lt;/h2&gt;
&lt;p&gt;大事な考え方として、 &lt;strong&gt;アトミックデザインはあくまでエンジニアが使うもの&lt;/strong&gt; として共有することです。&lt;br&gt;
デザイナーには、&lt;br&gt;
「このように分類しています。」&lt;br&gt;
「再利用するときはここから使うか、なければ新しく作ってください。」&lt;br&gt;
などと伝えましょう。&lt;/p&gt;
&lt;p&gt;やってはいけないこととして、無理やりアトミックデザインの分け方を強要することです。&lt;br&gt;
エンジニアリングの考え方を他チームに強要してはいけません。&lt;/p&gt;
&lt;h2 id=&quot;アトミックデザインの本質はuiの再利用&quot;&gt;&lt;a href=&quot;#%E3%82%A2%E3%83%88%E3%83%9F%E3%83%83%E3%82%AF%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%81%AE%E6%9C%AC%E8%B3%AA%E3%81%AFui%E3%81%AE%E5%86%8D%E5%88%A9%E7%94%A8&quot; aria-label=&quot;アトミックデザインの本質はuiの再利用 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;アトミックデザインの本質はUIの再利用&lt;/h2&gt;
&lt;p&gt;ここからは少し実践的な内容も入れていきます。&lt;/p&gt;
&lt;p&gt;アトミックデザインを導入するときに、いちばん大事な考え方は &lt;strong&gt;再利用&lt;/strong&gt; することです。&lt;br&gt;
再利用しないのであれば、そもそもアトム、モレキュールなどに分類することに意味がないので。&lt;/p&gt;
&lt;p&gt;なので、再利用するUIのみコンポーネント化していきます。&lt;br&gt;
一度しか登場しないUIはコンポーネント化しません。&lt;/p&gt;
&lt;h2 id=&quot;全ページのデザインが完成してから導入する&quot;&gt;&lt;a href=&quot;#%E5%85%A8%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AE%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%81%8C%E5%AE%8C%E6%88%90%E3%81%97%E3%81%A6%E3%81%8B%E3%82%89%E5%B0%8E%E5%85%A5%E3%81%99%E3%82%8B&quot; aria-label=&quot;全ページのデザインが完成してから導入する permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;全ページのデザインが完成してから導入する&lt;/h2&gt;
&lt;p&gt;再利用するくらいなので、できるだけ多くのページのデザインができていることが好ましいです。&lt;br&gt;
すでにサービスがスタートしており、デザインも含めてリファクタリングするのであれば絶好のタイミングです。&lt;br&gt;
もし、スタートアップ時で全体像がまだ無い場合は、 &lt;strong&gt;おそらく使い回すだろう&lt;/strong&gt; という単位でUIを分けていきます。&lt;/p&gt;
&lt;p&gt;実際には以下の手順で分類していきます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;全ページが完成したら、プリントアウトし、同じUIに丸と連番をつけていく&lt;/li&gt;
&lt;li&gt;連番をつけたものに``button-default``などと命名し、Atom, Molecule, Organismに分類する&lt;/li&gt;
&lt;li&gt;必要であれば分担し、コンポーネントを実装していく&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;では、どこにグルーピングするかの判断基準をご紹介します。&lt;/p&gt;
&lt;h3 id=&quot;atom&quot;&gt;&lt;a href=&quot;#atom&quot; aria-label=&quot;atom permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;Atom&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;再利用する単位で分けていく、ただし、子にさらに再利用するUIがあってはいけない&lt;/li&gt;
&lt;li&gt;再利用しないものはいくら大きくても一枚画像のように、アトムでいい&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;organism&quot;&gt;&lt;a href=&quot;#organism&quot; aria-label=&quot;organism permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;Organism&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;ページ直下のレイアウトを除くUI&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Organismは作者のサイトをみても抽象的なことが書かれており、捉え方が千差万別です。
なので、使用しないか、プロジェクト、チームごとに再定義することをおすすめします。&lt;/p&gt;
&lt;p&gt;私は、*ページ直下のレイアウトを除くUI* と定義しました。&lt;br&gt;
ヘッダー、ページコンテンツ、ナビ、フッターなどが該当します。&lt;/p&gt;
&lt;h3 id=&quot;molecule&quot;&gt;&lt;a href=&quot;#molecule&quot; aria-label=&quot;molecule permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;Molecule&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;AtomやMoleculeを組み合わせたもの&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;AtomとOrganismに当てはまらないすべてのコンポーネントがここに分類されます。&lt;br&gt;
Atomのみで構成すべきと主張する意見もありますが、&lt;a href=&quot;http://demo.patternlab.io/?p=viewall-molecules-all&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;作者が提唱しているスタイルガイドのページ&lt;/a&gt;でもMoleculeの中にMoleculeがあります。&lt;/p&gt;
&lt;p&gt;新たなルールが増えるのであまりおすすめはしません。&lt;br&gt;
もし、肥大化する場合は、HTMLのsection要素のように、完全に独立して使用できるものはOrganismにするか、別のグルーピング種別を用意し間引くのも手だと思います。&lt;/p&gt;
&lt;h3 id=&quot;template&quot;&gt;&lt;a href=&quot;#template&quot; aria-label=&quot;template permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;Template&lt;/h3&gt;
&lt;p&gt;使用していません。&lt;br&gt;
意見が分かれるところですが、ページテンプレートを共通化する意味があまり見当たりません。&lt;/p&gt;
&lt;h3 id=&quot;pages&quot;&gt;&lt;a href=&quot;#pages&quot; aria-label=&quot;pages permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;Pages&lt;/h3&gt;
&lt;p&gt;これは、実際に動くページですね。なので、再利用化、コンポーネント化の時点でこの考えは不要です。&lt;br&gt;
ページごとに実装するタイミングで、Atom, Organism, Moleculeなどの共通コンポーネントとは別のディレクトリで実装していきます。&lt;br&gt;
アトミックデザインに該当しない、そのページ固有のスタイルなどはすべてこの個別ページに作成していきます。&lt;/p&gt;
&lt;p&gt;ディレクトリに関しては、別途別記事でご紹介します。&lt;/p&gt;
&lt;h2 id=&quot;最後にスタイルガイドを作成する&quot;&gt;&lt;a href=&quot;#%E6%9C%80%E5%BE%8C%E3%81%AB%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB%E3%82%AC%E3%82%A4%E3%83%89%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B&quot; aria-label=&quot;最後にスタイルガイドを作成する permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;最後にスタイルガイドを作成する&lt;/h2&gt;
&lt;p&gt;実際にコードを書き始めたら、&lt;br&gt;
コンポーネントを作成した時点で、FEとデザイナー双方への共有のためにスタイルガイドを作成しましょう。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;デザイナー、エンジニアともに人が入れ替わった際に、どのようなコンポーネントがあるのか把握できる&lt;/li&gt;
&lt;li&gt;実装する際に同じコンポーネントを作ってしまうことを防止する、コードを再利用する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;実際は&lt;a href=&quot;https://storybook.js.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Storybook&lt;/a&gt;を導入するか、最短工数でやるなら、コンポーネント専用の開発用Pageを追加し、アトム、モレキュール、オーガニズムを配置しましょう。&lt;/p&gt;
&lt;h1 id=&quot;まとめ&quot;&gt;&lt;a href=&quot;#%E3%81%BE%E3%81%A8%E3%82%81&quot; aria-label=&quot;まとめ permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;まとめ&lt;/h1&gt;
&lt;p&gt;以上を実践すると、アトミックデザインは、UIを分類し、再利用する際に非常に有効な方法です。&lt;/p&gt;
&lt;p&gt;アトミックデザインは銀の弾丸ではなく、そしてデザイン手法でもなく、&lt;br&gt;
実態はコンポーネントのグルーピング、再利用の話です。&lt;br&gt;
特に、エンジニアの観点では、コンポーネントを探すときにある程度どのグループにあるか予測でき、発見しやすくなります。&lt;br&gt;
コンポーネントを探すという行為は、1日になんども発生するのでとても重要です。&lt;/p&gt;
&lt;p&gt;また、CSSの設計手法であるSMACCSやBEMなどのように、&lt;br&gt;
すでにあるていど広まっている設計手法だと、&lt;br&gt;
ドキュメントを作成する必要がなく、チーム内で使用しやすいです。&lt;/p&gt;
&lt;p&gt;アトミックデザインを通して、コンポーネントの付き合い方を今一度考えてみましょう。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[JSでアニメーションできるフォントleonsans]]></title><link>https://www.bauhausify.com/2019-09-05_JSでアニメーションできるフォントleonsans/</link><guid isPermaLink="false">https://www.bauhausify.com/2019-09-05_JSでアニメーションできるフォントleonsans/</guid><pubDate>Thu, 05 Sep 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://codepen.io/mwrote/pen/YzKExxj?defaultTab=result&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;div class=&quot;embed-codepen&quot;&gt;&lt;iframe
        height=&apos;400&apos;
        scrolling=&apos;no&apos;
        src=&apos;//codepen.io/mwrote/embed/preview/YzKExxj/?height=400&amp;theme-id=light&amp;default-tab=result&apos;
        frameborder=&apos;no&apos;
        allowtransparency=&apos;true&apos;
        allowfullscreen=&apos;true&apos;
        style=&apos;width: 100%;&apos;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/cmiscm/leonsans&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;leonsans&lt;/a&gt;というライブラリを使うと、Canvas上にJavaScriptで文字を描くことができます。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://leon-kim.com/#intro&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;公式のサンプル&lt;/a&gt;をみると実際にどんなことができるのかがわかります。&lt;br&gt;
組み合わせとアイデア次第では無限大にいろいろできすそうです。&lt;br&gt;
&lt;a href=&quot;https://leon-kim.com/examples/#all&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;メニューごとのサンプル&lt;/a&gt;や&lt;a href=&quot;https://github.com/cmiscm/leonsans&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;GithubにGIF画像&lt;/a&gt;もあります。&lt;/p&gt;
&lt;h2 id=&quot;使い方&quot;&gt;&lt;a href=&quot;#%E4%BD%BF%E3%81%84%E6%96%B9&quot; aria-label=&quot;使い方 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;使い方&lt;/h2&gt;
&lt;p&gt;CDNやnpmパッケージは用意されていません。&lt;br&gt;
&lt;a href=&quot;https://github.com/cmiscm/leonsans/archive/master.zip&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Githubからダウンロード&lt;/a&gt;し、
zip展開したあとにでてくる&lt;code class=&quot;language-text&quot;&gt;dist/leon.js&lt;/code&gt;ファイルをHTMLから読み込ませましょう。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;html&quot;&gt;&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;script&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;leon.js&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token script&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;script&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;描画する&quot;&gt;&lt;a href=&quot;#%E6%8F%8F%E7%94%BB%E3%81%99%E3%82%8B&quot; aria-label=&quot;描画する permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;描画する&lt;/h2&gt;
&lt;p&gt;&lt;code class=&quot;language-text&quot;&gt;LeonSans&lt;/code&gt;をnewし、draw関数の引数にCanvasの2D Contextをわたすことで、Canvas上に描画されます。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; canvas &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; document&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;createElement&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;canvas&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
cosnt ctx &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; canvas&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getContext&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;2d&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

leon &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;LeonSans&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;The quick brown\nfox jumps over\nthe lazy dog&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;#000000&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;80&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;weight&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;200&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

leon&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;draw&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;ctx&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;PIXIの場合は、&lt;code class=&quot;language-text&quot;&gt;draw&lt;/code&gt;の代わりに&lt;code class=&quot;language-text&quot;&gt;drawPixi&lt;/code&gt;関数を使用します。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;leon&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;drawPixi&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;graphics&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[p5jsのコードをsketchファイル上で実行する方法]]></title><link>https://www.bauhausify.com/2019-09-02_p5jsのコードをsketchファイル上で実行する方法/</link><guid isPermaLink="false">https://www.bauhausify.com/2019-09-02_p5jsのコードをsketchファイル上で実行する方法/</guid><pubDate>Mon, 02 Sep 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;以前&lt;a href=&quot;https://tidalcycles.org/index.php/Welcome&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;TidalCycles&lt;/a&gt;というコーディングによる作曲ツールで簡単なBGMを作りました。&lt;br&gt;
そのときに、ジャケットもコーディングでつけれないかなと思って、&lt;br&gt;
試しに、&lt;a href=&quot;http://www.jacopocolo.com/p5sketchplugin/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;P5.sketchplugin&lt;/a&gt;というプラグインを使って絵をかいたら、&lt;br&gt;
とても簡単にコードで絵を書けたので、今回はそのプラグインを紹介したいと思います。&lt;/p&gt;
&lt;p&gt;そのジャケットはこちらです。&lt;/p&gt;
&lt;p&gt;&lt;iframe width=&quot;100%&quot; height=&quot;400&quot; scrolling=&quot;no&quot; frameborder=&quot;no&quot; allow=&quot;autoplay; encrypted-media&quot; src=&quot;https://w.soundcloud.com/player/?visual=true&amp;url=https%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F354652142&amp;show_artwork=true&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;h2 id=&quot;p5sketchpluginの特徴&quot;&gt;&lt;a href=&quot;#p5sketchplugin%E3%81%AE%E7%89%B9%E5%BE%B4&quot; aria-label=&quot;p5sketchpluginの特徴 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;http://www.jacopocolo.com/p5sketchplugin/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;P5.sketchplugin&lt;/a&gt;の特徴&lt;/h2&gt;
&lt;h3 id=&quot;大量の類似パターンの繰り返しに強い&quot;&gt;&lt;a href=&quot;#%E5%A4%A7%E9%87%8F%E3%81%AE%E9%A1%9E%E4%BC%BC%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E3%81%AE%E7%B9%B0%E3%82%8A%E8%BF%94%E3%81%97%E3%81%AB%E5%BC%B7%E3%81%84&quot; aria-label=&quot;大量の類似パターンの繰り返しに強い permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;大量の類似パターンの繰り返しに強い&lt;/h3&gt;
&lt;p&gt;手作業だと時間がかかるような、幾何学形態の繰り返しなどに強いです。&lt;/p&gt;
&lt;h3 id=&quot;後の加工がしやすい&quot;&gt;&lt;a href=&quot;#%E5%BE%8C%E3%81%AE%E5%8A%A0%E5%B7%A5%E3%81%8C%E3%81%97%E3%82%84%E3%81%99%E3%81%84&quot; aria-label=&quot;後の加工がしやすい permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;後の加工がしやすい&lt;/h3&gt;
&lt;p&gt;作った絵に対して、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ちょっとロゴをのせたい&lt;/li&gt;
&lt;li&gt;部分的に手直ししたい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;など、あとから加工する場合に最適です。&lt;/p&gt;
&lt;h2 id=&quot;インストール&quot;&gt;&lt;a href=&quot;#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&quot; aria-label=&quot;インストール permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;インストール&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;まず&lt;a href=&quot;https://www.sketch.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Sketch&lt;/a&gt;がインストールされていることを確認してください。 有償ですが無料使用できます。バージョンアップしないなら1万円前後で買い切りです。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/jacopocolo/p5-sketchplugin/releases&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Githubのリリースノート&lt;/a&gt;から最新の&lt;code class=&quot;language-text&quot;&gt;p5.*.*.*.sketchplugin.zip&lt;/code&gt;をダウンロードしましょう。&lt;/li&gt;
&lt;li&gt;zipファイルを解答して、&lt;code class=&quot;language-text&quot;&gt;p5.sketchplugin&lt;/code&gt;というファイルをダブルクリックして実行しましょう。もしSketchを起動していたら再起動してください。&lt;/li&gt;
&lt;li&gt;メニュー &gt; Plugins &gt; p5 という項目があればインストール完了です。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;コードを実行する&quot;&gt;&lt;a href=&quot;#%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B&quot; aria-label=&quot;コードを実行する permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;コードを実行する&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;sketchを起動し、空の新規ファイルを作成してください。&lt;/li&gt;
&lt;li&gt;メニュー &gt; Plugins &gt; p5 &gt; Edit and run を実行しましょう。&lt;/li&gt;
&lt;li&gt;表示されたウィンドウに以下のコードを貼り付け、左上のPlayを押してみてください。コードが実行されSketch上で描画されます。&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;//Simple palette of pretty colors&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; palette &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;#2C3E50&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;#FC4349&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;#D7DADB&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;#6DBCDB&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;#FFFFFF&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; num &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;8&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;setup&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token function&quot;&gt;createCanvas&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1400&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1400&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;draw&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;noStroke&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; size &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; width&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;num&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;y&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;y&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;height&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;y&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;y&lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt;size&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;

    &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;x&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;x&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;width&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;x&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;x&lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt;size&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;

      &lt;span class=&quot;token function&quot;&gt;fill&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;palette&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;floor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;token function&quot;&gt;rect&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;x&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;y&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;size&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;size&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0.7&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token function&quot;&gt;fill&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;palette&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;floor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token function&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token function&quot;&gt;translate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt;size&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt;size&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

        &lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; temp &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;temp &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0.3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
          &lt;span class=&quot;token function&quot;&gt;ellipse&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;x&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;y&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;size&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;size&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;temp &lt;span class=&quot;token operator&quot;&gt;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0.3&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; temp &lt;span class=&quot;token operator&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0.6&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
          &lt;span class=&quot;token function&quot;&gt;triangle&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;x &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; size&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; y &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; size&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; x &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; size&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; y &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; size&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; x&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; y &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; size&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;temp &lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0.6&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; temp &lt;span class=&quot;token operator&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0.7&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
          &lt;span class=&quot;token function&quot;&gt;triangle&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;x &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; size&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; y &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; size&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; x &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; size&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; y &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; size&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; x &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; size&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; y&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
          &lt;span class=&quot;token function&quot;&gt;triangle&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;x &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; size&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; y &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; size&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; x &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; size&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; y &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; size&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; x&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; y &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; size&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

        &lt;span class=&quot;token function&quot;&gt;pop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;サポートされているメソッド&quot;&gt;&lt;a href=&quot;#%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89&quot; aria-label=&quot;サポートされているメソッド permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;サポートされているメソッド&lt;/h2&gt;
&lt;p&gt;ソースを見ると以下の箇所のmethodがサポートされているようです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/jacopocolo/p5-sketchplugin/blob/master/p5.sketchplugin/Contents/Sketch/p5.js&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;メイン関数&lt;/a&gt; ... 代表的な関数のみ移植されていますね&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/jacopocolo/p5-sketchplugin/blob/master/p5.sketchplugin/Contents/Sketch/2d_primitives.js&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;図形描画&lt;/a&gt; ... サポートしている2Dプリミティブの関数です&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/jacopocolo/p5-sketchplugin/blob/master/p5.sketchplugin/Contents/Sketch/notsupported.js&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;未サポート&lt;/a&gt; ... サポートしていない関数が列挙されています&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;どこでコードを書くか&quot;&gt;&lt;a href=&quot;#%E3%81%A9%E3%81%93%E3%81%A7%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E6%9B%B8%E3%81%8F%E3%81%8B&quot; aria-label=&quot;どこでコードを書くか permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;どこでコードを書くか&lt;/h2&gt;
&lt;h3 id=&quot;sketchのプラグイン上でコードを書く&quot;&gt;&lt;a href=&quot;#sketch%E3%81%AE%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E4%B8%8A%E3%81%A7%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E6%9B%B8%E3%81%8F&quot; aria-label=&quot;sketchのプラグイン上でコードを書く permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;Sketchのプラグイン上でコードを書く&lt;/h3&gt;
&lt;p&gt;簡単に実行できますし、最終的には必ずここで実行して試します。&lt;br&gt;
ただし、Sketchファイル自体に保存できないので、&lt;br&gt;
Sketchファイルとは別に&lt;code class=&quot;language-text&quot;&gt;p5Sketch.js&lt;/code&gt;などように、&lt;br&gt;
JavaScriptファイルとしてSketchファイルと同じ場所に保存することをおすすめします。&lt;/p&gt;
&lt;h3 id=&quot;p5jsオンラインエディタ上で書く&quot;&gt;&lt;a href=&quot;#p5js%E3%82%AA%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%B3%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF%E4%B8%8A%E3%81%A7%E6%9B%B8%E3%81%8F&quot; aria-label=&quot;p5jsオンラインエディタ上で書く permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://editor.p5js.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;p5jsオンラインエディタ&lt;/a&gt;上で書く&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://editor.p5js.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;p5jsオンラインエディタ&lt;/a&gt;はブラウザ上で実行できる公式のオンラインエディタです。&lt;br&gt;
ファイルをダウンロードできますし、&lt;br&gt;
アカウントを作ればオンラインで保存することもできます。&lt;br&gt;
はSketchのプラグイン上で動くか確認しながら書いていきましょう。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[BEM, SMACCSを受け継いだ書きやすいCSS記法RSCSS]]></title><link>https://www.bauhausify.com/2019-08-30_BEMSMACCSを受け継いだ書きやすいCSS記法RSCSS/</link><guid isPermaLink="false">https://www.bauhausify.com/2019-08-30_BEMSMACCSを受け継いだ書きやすいCSS記法RSCSS/</guid><pubDate>Fri, 30 Aug 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;以前は、SMACCSやBEMを仕事で使っていました。しかし、今は&lt;a href=&quot;https://rscss.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;RSCSS&lt;/a&gt;というCSS記法に落ち着いています。&lt;/p&gt;
&lt;h2 id=&quot;ルーズだけど破綻しない&quot;&gt;&lt;a href=&quot;#%E3%83%AB%E3%83%BC%E3%82%BA%E3%81%A0%E3%81%91%E3%81%A9%E7%A0%B4%E7%B6%BB%E3%81%97%E3%81%AA%E3%81%84&quot; aria-label=&quot;ルーズだけど破綻しない permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;ルーズだけど破綻しない&lt;/h2&gt;
&lt;p&gt;RSCSSの特徴は一言で言うなら、ミニマムです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;公式のドキュメントは絵が殆どで非常にわかりやすい、Google翻訳で問題なく読める&lt;/li&gt;
&lt;li&gt;ルールが厳選されており、覚えることが少なく導入しやすい&lt;/li&gt;
&lt;li&gt;BEMのコンポーネントの捉え方が取り込まれている。Block,Element,Modifierあたり&lt;/li&gt;
&lt;li&gt;SMACCSのようなマルチクラス前提。Modifierもマルチクラスで指定&lt;/li&gt;
&lt;li&gt;書き方が非常に簡潔。例えばModifierは&lt;code class=&quot;language-text&quot;&gt;-&lt;/code&gt;で始まり、打ち消し系クラスは&lt;code class=&quot;language-text&quot;&gt;_&lt;/code&gt;で始まる&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;これだけは守らないといけないこと&quot;&gt;&lt;a href=&quot;#%E3%81%93%E3%82%8C%E3%81%A0%E3%81%91%E3%81%AF%E5%AE%88%E3%82%89%E3%81%AA%E3%81%84%E3%81%A8%E3%81%84%E3%81%91%E3%81%AA%E3%81%84%E3%81%93%E3%81%A8&quot; aria-label=&quot;これだけは守らないといけないこと permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;これだけは守らないといけないこと&lt;/h2&gt;
&lt;p&gt;RSCSSのルールの中から、これだけは守らないと破綻します。&lt;/p&gt;
&lt;h3 id=&quot;コンポーネントベースでuiを捉える&quot;&gt;&lt;a href=&quot;#%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E3%83%99%E3%83%BC%E3%82%B9%E3%81%A7ui%E3%82%92%E6%8D%89%E3%81%88%E3%82%8B&quot; aria-label=&quot;コンポーネントベースでuiを捉える permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;コンポーネントベースでUIを捉える&lt;/h3&gt;
&lt;p&gt;コンポーネントでデザインを捉えることが前提です。&lt;br&gt;
2箇所以上同じコードの塊があり、見た目が同じか派生している場合、私はコンポーネントと捉えます。&lt;br&gt;
あっこれどっかで似たようなの書いてるとあれば、コンポーネント化を考えましょう。&lt;/p&gt;
&lt;h3 id=&quot;コンポーネントは2単語以上ハイフンつなぎ子要素は1単語&quot;&gt;&lt;a href=&quot;#%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E3%81%AF2%E5%8D%98%E8%AA%9E%E4%BB%A5%E4%B8%8A%E3%83%8F%E3%82%A4%E3%83%95%E3%83%B3%E3%81%A4%E3%81%AA%E3%81%8E%E5%AD%90%E8%A6%81%E7%B4%A0%E3%81%AF1%E5%8D%98%E8%AA%9E&quot; aria-label=&quot;コンポーネントは2単語以上ハイフンつなぎ子要素は1単語 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;コンポーネントは2単語以上ハイフンつなぎ、子要素は1単語&lt;/h3&gt;
&lt;p&gt;以下のように2単語以上でコンポーネントを命名し、
子要素(Element)は1単語で命名します。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;css&quot;&gt;&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.primary-button&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token selector&quot;&gt;&gt; .icon&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;

  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;token selector&quot;&gt;&gt; .text&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;

  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;br&gt;
以下のようなコードを書くと、&lt;br&gt;
簡単にGlobal汚染してしまいます。
&lt;p&gt;&lt;img class=&quot;emoji-icon&quot; alt=&quot;emoji-x&quot; data-icon=&quot;emoji-x&quot; style=&quot;&quot; src=&quot;data:image/png;base64, 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&quot; title=&quot;emoji-x&quot; /&gt; 1単語のコンポーネントはだめです。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;css&quot;&gt;&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.button&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;

&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;img class=&quot;emoji-icon&quot; alt=&quot;emoji-x&quot; data-icon=&quot;emoji-x&quot; style=&quot;&quot; src=&quot;data:image/png;base64, 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&quot; title=&quot;emoji-x&quot; /&gt; コンポーネントの中にコンポーネントではない2単語以上もだめです。それが他で定義済みのコンポーネントなら問題ないです。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;css&quot;&gt;&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.primary-button&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token selector&quot;&gt;&gt; .button-icon&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;/* コンポーネントじゃないここでしか登場しないスタイル */&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;token selector&quot;&gt;&gt; .text&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;

  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;コンポーネントの中の要素の指定はすべてセレクタを使用する&quot;&gt;&lt;a href=&quot;#%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E3%81%AE%E4%B8%AD%E3%81%AE%E8%A6%81%E7%B4%A0%E3%81%AE%E6%8C%87%E5%AE%9A%E3%81%AF%E3%81%99%E3%81%B9%E3%81%A6%E3%82%BB%E3%83%AC%E3%82%AF%E3%82%BF%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B&quot; aria-label=&quot;コンポーネントの中の要素の指定はすべてセレクタを使用する permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;コンポーネントの中の要素の指定はすべてセレクタを使用する&lt;/h3&gt;
&lt;p&gt;子セレクタを使用して、&lt;br&gt;
&lt;em&gt;必ずそのコンポーネント直下の1単語のクラス&lt;/em&gt; にのみスタイルが適用されるようにします。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;css&quot;&gt;&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.description-panel&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token selector&quot;&gt;&gt; .title&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;

  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;img class=&quot;emoji-icon&quot; alt=&quot;emoji-x&quot; data-icon=&quot;emoji-x&quot; style=&quot;&quot; src=&quot;data:image/png;base64, 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&quot; title=&quot;emoji-x&quot; /&gt; 以下のようにしてしまうと、&lt;code class=&quot;language-text&quot;&gt;.description-panel&lt;/code&gt;のDOM要素以下のコンポーネント&lt;code class=&quot;language-text&quot;&gt;.title&lt;/code&gt;を使ったすべてコンポーネントに影響がでてしまいます。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;css&quot;&gt;&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.description-panel&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token selector&quot;&gt;.title&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;

  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;コンポーネント自身に自信のサイズ定義をかかない&quot;&gt;&lt;a href=&quot;#%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E8%87%AA%E8%BA%AB%E3%81%AB%E8%87%AA%E4%BF%A1%E3%81%AE%E3%82%B5%E3%82%A4%E3%82%BA%E5%AE%9A%E7%BE%A9%E3%82%92%E3%81%8B%E3%81%8B%E3%81%AA%E3%81%84&quot; aria-label=&quot;コンポーネント自身に自信のサイズ定義をかかない permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;コンポーネント自身に自信のサイズ定義をかかない&lt;/h3&gt;
&lt;p&gt;コンポーネント自身のサイズは親に書きます、&lt;br&gt;
これをしないと他の場所でそのコンポーネントを使い回せません。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;css&quot;&gt;&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.button-group&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token selector&quot;&gt;&gt; .primary-button&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 100px&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token selector&quot;&gt;.primary-button&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token comment&quot;&gt;/* 自身のサイズ定義はかかない */&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;img class=&quot;emoji-icon&quot; alt=&quot;emoji-x&quot; data-icon=&quot;emoji-x&quot; style=&quot;&quot; src=&quot;data:image/png;base64, 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&quot; title=&quot;emoji-x&quot; /&gt; 例えば幅100%で使いたいといったときに、わざわざ打ち消さないといけません。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;css&quot;&gt;&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.primary-button&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 100px&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;コンポーネント単位でファイルを区切る&quot;&gt;&lt;a href=&quot;#%E3%82%B3%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%8D%E3%83%B3%E3%83%88%E5%8D%98%E4%BD%8D%E3%81%A7%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E5%8C%BA%E5%88%87%E3%82%8B&quot; aria-label=&quot;コンポーネント単位でファイルを区切る permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;コンポーネント単位でファイルを区切る&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;クラス名の重複&lt;/em&gt; を防ぐことができます。&lt;br&gt;
2単語以上ハイフンつなぎの命名規則は、チーム人数多いとかぶりやすいです。&lt;/p&gt;
&lt;h2 id=&quot;追加したほうが良さそうなルール&quot;&gt;&lt;a href=&quot;#%E8%BF%BD%E5%8A%A0%E3%81%97%E3%81%9F%E3%81%BB%E3%81%86%E3%81%8C%E8%89%AF%E3%81%95%E3%81%9D%E3%81%86%E3%81%AA%E3%83%AB%E3%83%BC%E3%83%AB&quot; aria-label=&quot;追加したほうが良さそうなルール permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;追加したほうが良さそうなルール&lt;/h2&gt;
&lt;h3 id=&quot;命名するときの共通の言葉集が必要&quot;&gt;&lt;a href=&quot;#%E5%91%BD%E5%90%8D%E3%81%99%E3%82%8B%E3%81%A8%E3%81%8D%E3%81%AE%E5%85%B1%E9%80%9A%E3%81%AE%E8%A8%80%E8%91%89%E9%9B%86%E3%81%8C%E5%BF%85%E8%A6%81&quot; aria-label=&quot;命名するときの共通の言葉集が必要 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;命名するときの共通の言葉集が必要&lt;/h3&gt;
&lt;p&gt;見た目や機能に対してどんな英語を使うのか共通化すると、&lt;br&gt;
チームで運営した際に、もっとリーディングしやすくなります。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://codic.jp/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;codic&lt;/a&gt;などの辞書サイトで、検索した言葉を使うようにしましょう。&lt;br&gt;
一人でしか触らない場合はあまり必要はないです。&lt;/p&gt;
&lt;h3 id=&quot;media-queryの中に原則クラス定義をかかない&quot;&gt;&lt;a href=&quot;#media-query%E3%81%AE%E4%B8%AD%E3%81%AB%E5%8E%9F%E5%89%87%E3%82%AF%E3%83%A9%E3%82%B9%E5%AE%9A%E7%BE%A9%E3%82%92%E3%81%8B%E3%81%8B%E3%81%AA%E3%81%84&quot; aria-label=&quot;media queryの中に原則クラス定義をかかない permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;Media Queryの中に原則クラス定義をかかない&lt;/h3&gt;
&lt;p&gt;あとからコードを移植しやすいように、クラス定義の中にスタイルを書きます。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;css&quot;&gt;&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.primary-button&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 20px&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;token atrule&quot;&gt;&lt;span class=&quot;token rule&quot;&gt;@media&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;min-width&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 480px&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 14px&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;img class=&quot;emoji-icon&quot; alt=&quot;emoji-x&quot; data-icon=&quot;emoji-x&quot; style=&quot;&quot; src=&quot;data:image/png;base64, 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&quot; title=&quot;emoji-x&quot; /&gt; 以下のように書いてしまうと、&lt;code class=&quot;language-text&quot;&gt;.primary-button&lt;/code&gt;を移植する場合、場所が離れてしまい移動しづらいです。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;css&quot;&gt;&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.primary-button&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 20px&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;/* ここに他のコンポーネントの定義も書かれている */&lt;/span&gt;

&lt;span class=&quot;token atrule&quot;&gt;&lt;span class=&quot;token rule&quot;&gt;@media&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token property&quot;&gt;min-width&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 480px&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;

  &lt;span class=&quot;token comment&quot;&gt;/* ここに他のコンポーネントの定義も書かれている */&lt;/span&gt;

  &lt;span class=&quot;token selector&quot;&gt;.primary-button&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token property&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; 14px&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;破ったルール&quot;&gt;&lt;a href=&quot;#%E7%A0%B4%E3%81%A3%E3%81%9F%E3%83%AB%E3%83%BC%E3%83%AB&quot; aria-label=&quot;破ったルール permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;破ったルール&lt;/h2&gt;
&lt;h3 id=&quot;ネストはdomの階層構造とリンクしていればok&quot;&gt;&lt;a href=&quot;#%E3%83%8D%E3%82%B9%E3%83%88%E3%81%AFdom%E3%81%AE%E9%9A%8E%E5%B1%A4%E6%A7%8B%E9%80%A0%E3%81%A8%E3%83%AA%E3%83%B3%E3%82%AF%E3%81%97%E3%81%A6%E3%81%84%E3%82%8C%E3%81%B0ok&quot; aria-label=&quot;ネストはdomの階層構造とリンクしていればok permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;ネストはDOMの階層構造とリンクしていればOK&lt;/h3&gt;
&lt;p&gt;SCSSであることが前提ですが、HTMLの構造を維持して、CSSを書いていきます。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;css&quot;&gt;&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;.description-panel&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;

  &lt;span class=&quot;token selector&quot;&gt;&gt; .main&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;

    &lt;span class=&quot;token selector&quot;&gt;&gt; .title&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;

    &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;RSCSSでは、ネストは直接の子までです。&lt;br&gt;
しかし、深いネストを避けるにはコンポーネントをさらに分けなければなりません。&lt;br&gt;
そうすると、時間がかかり、コンポーネントの場所が離れてしまい編集しづらくなります。
ただ、チーム共通のライブラリの用途等の場合は、しっかりコンポーネントを分けて作りましょう。&lt;br&gt;&lt;/p&gt;
&lt;br&gt;
以上になります。&lt;br&gt;
&lt;p&gt;どうでしょうか、長々しく書いてしまいましたが、&lt;br&gt;
まずは&lt;a href=&quot;https://rscss.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;公式のドキュメント&lt;/a&gt;をみるのをおすすめします。&lt;br&gt;
非常にわかりやすいです。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;そして実際に書いてみてください。&lt;br&gt;
今までBEMなどで厳格に書いていた人は非常に書きやすいと感じるかと思います。&lt;/p&gt;
&lt;p&gt;他にも、CSSの種別と読み込み順の設計方法である&lt;a href=&quot;https://itcss.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;itcss&lt;/a&gt;と組み合わせるとよりいいのですが、&lt;br&gt;
それは後日書きます。&lt;/p&gt;
&lt;p&gt;Happy Coding CSS!&lt;/p&gt;</content:encoded></item><item><title><![CDATA[フォーミュラによる美しいパターンをJavaScriptで描く]]></title><link>https://www.bauhausify.com/2019-08-27_フォーミュラによる美しいパターンをjavascriptで描く/</link><guid isPermaLink="false">https://www.bauhausify.com/2019-08-27_フォーミュラによる美しいパターンをjavascriptで描く/</guid><pubDate>Tue, 27 Aug 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://codepen.io/mwrote/pen/vYBxXQm??defaultTab=result&amp;#x26;run=true&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;div class=&quot;embed-codepen&quot;&gt;&lt;iframe
        height=&apos;400&apos;
        scrolling=&apos;no&apos;
        src=&apos;//codepen.io/mwrote/embed/vYBxXQm/?height=400&amp;theme-id=light&amp;default-tab=result&apos;
        frameborder=&apos;no&apos;
        allowtransparency=&apos;true&apos;
        allowfullscreen=&apos;true&apos;
        style=&apos;width: 100%;&apos;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;こちらのgenerative artistryというサイトで、&lt;br&gt;
巣のJavaScriptのみで美しいパターンのチュートリアル集を発見しました。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://generativeartistry.com&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://generativeartistry.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;今回は、上記リンク内の&lt;a href=&quot;https://generativeartistry.com/tutorials/tiled-lines/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;01番目のコード&lt;/a&gt;をsketchのインスタンスモードで書き直しましたので、パターンを作る際の簡単な考え方について説明します。&lt;/p&gt;
&lt;p&gt;考え方はざっくりまとめると、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ルール(フォーミュラ)を考える&lt;/li&gt;
&lt;li&gt;フォーミュラをもとに実行する&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;です。&lt;/p&gt;
&lt;h2 id=&quot;ルールフォーミュラを考える&quot;&gt;&lt;a href=&quot;#%E3%83%AB%E3%83%BC%E3%83%AB%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9F%E3%83%A5%E3%83%A9%E3%82%92%E8%80%83%E3%81%88%E3%82%8B&quot; aria-label=&quot;ルールフォーミュラを考える permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;ルール(フォーミュラ)を考える&lt;/h2&gt;
&lt;p&gt;これがパターンを作る際の最も大事なポイントです。&lt;br&gt;
これは言い換えると、最終的な絵はどうなるか作る本人もわからないということです(ある程度想像はしますが)。&lt;/p&gt;
&lt;p&gt;デザイナーやアーティストは、最終的にどんな絵を描くか決めてからペンを走らせます。&lt;br&gt;
そして、その描いたとおりに、絵を描いて完成させます。&lt;/p&gt;
&lt;p&gt;一方、パターンを作る場合は、まずはじめにルールを決めます。&lt;br&gt;
そして、そのルールに従い、反復して実行し続けます。&lt;br&gt;
最終的な絵は連続して無限に広がる模様を切り取ったような絵になります。&lt;/p&gt;
&lt;p&gt;これが大きな考え方の違いです。&lt;br&gt;
つまり、最終的な絵を始めに描いてコードを書き始めるのではなく、&lt;br&gt;
ルールを実行することで絵を描いていきます。&lt;/p&gt;
&lt;p&gt;この記事ではそのルールをフォーミュラ[Formula]と名付けます。&lt;/p&gt;
&lt;p&gt;では、コードを見てみましょう。
冒頭でお見せしたCodepenのフォーミュラ部分はこちらです。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; step &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;formula&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;x&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; y&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; leftToRight &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; Math&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0.5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;stroke&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;#FFFFFF&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;leftToRight&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;line&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;x&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; y&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; x &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; step&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; y &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; step&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;line&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;x &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; step&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; y&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; x&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; y &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; step&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;これは言葉で言い換えると、&lt;/p&gt;
&lt;p&gt;「25pxのマスの中を、ランダムで左上から右下、もしくは右上から左下に線を描く。」&lt;/p&gt;
&lt;p&gt;となります。&lt;/p&gt;
&lt;p&gt;&lt;code class=&quot;language-text&quot;&gt;Math.random()&lt;/code&gt;は0〜1の間の少数値をランダムで返します。&lt;br&gt;
それが0.5より大きければ左上から右下へ、&lt;br&gt;
そうでないなら、右上から左上へ線を描くという条件分岐ですね。&lt;/p&gt;
&lt;p&gt;ここで非常に重要なのは、
&lt;em&gt;マスのいずれかの角に線がつながっている&lt;/em&gt;
ということです。&lt;/p&gt;
&lt;p&gt;これでルールは完成です。&lt;/p&gt;
&lt;h2 id=&quot;フォーミュラをもとに実行する&quot;&gt;&lt;a href=&quot;#%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9F%E3%83%A5%E3%83%A9%E3%82%92%E3%82%82%E3%81%A8%E3%81%AB%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B&quot; aria-label=&quot;フォーミュラをもとに実行する permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;フォーミュラをもとに実行する&lt;/h2&gt;
&lt;p&gt;先程25pxのマスの中のルールを考えたので、&lt;br&gt;
キャンバスすべてが25pxのマスでうまるように、&lt;br&gt;
xとyを25pxずつ移動させ、先程の線を描く関数を実行します。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; x &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; x &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;width&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; x &lt;span class=&quot;token operator&quot;&gt;+=&lt;/span&gt; step&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; y &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; y &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; p&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;width&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; y &lt;span class=&quot;token operator&quot;&gt;+=&lt;/span&gt; step&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token function&quot;&gt;formula&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;x&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; y&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;先程のマスの特徴は &lt;em&gt;マスのいずれかの角に線がつながっている&lt;/em&gt; ことです。&lt;br&gt;
そのマスを連続して並べることで、連続した線が完成しました。&lt;/p&gt;
&lt;p&gt;これで完成です。&lt;br&gt;
いかがでしょうか。&lt;br&gt;
このように、ルールを作り、それを実行することで、&lt;br&gt;
簡単にパターンを生成することができます。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;あとは自分の納得の行くまで、このパターンと実行を繰り替えることで、&lt;br&gt;
美しい自分だけのパターン見つけることができます。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Bodymovinでサイズを拡大しても綺麗なWeb用アニメーションを作る方法]]></title><link>https://www.bauhausify.com/2019-08-24_Bodymovinでサイズを拡大しても綺麗なWeb用アニメーションを作る方法/</link><guid isPermaLink="false">https://www.bauhausify.com/2019-08-24_Bodymovinでサイズを拡大しても綺麗なWeb用アニメーションを作る方法/</guid><pubDate>Sat, 24 Aug 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://www.framer.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Framer X&lt;/a&gt;や&lt;a href=&quot;https://principleformac.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Principle&lt;/a&gt;といったすばらいいツールもありますが、なかなかデファクトスタンダードにはなっていない印象です。&lt;br&gt;
そこで、アニメーション制作に関して、特に映像分野ですでに地位を獲得している、AfterEffects(以下AE)を使ったアニメーションの書き出し方法を説明します。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;なぜAEがいいのか、以下の理由があげられます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;コーディングでSVGアニメーションを作る場合と比べて、再利用、再加工、管理がしやすい&lt;/li&gt;
&lt;li&gt;精密なアニメーションも簡単に作成できる&lt;/li&gt;
&lt;li&gt;企業ですでにをAdobeのコンプリートプランに加入していると、すぐに使うことができる&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;さらに、&lt;a href=&quot;https://github.com/airbnb/lottie-web&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Bodymovin&lt;/a&gt;というプラグインを使うと、デザイナーが作ったものを二次加工や書き写ししなくても、そのままWebやアプリで使えることができます。&lt;/p&gt;
&lt;h2 id=&quot;bodymovinとは&quot;&gt;&lt;a href=&quot;#bodymovin%E3%81%A8%E3%81%AF&quot; aria-label=&quot;bodymovinとは permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;Bodymovinとは&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/bodymovin&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;hernan&lt;/a&gt;さんが制作された、AEのアニメーションを解析し、Webで読み込み可能なJSONファイルとして出力するAEプラグインです。
宿泊予約サイト&lt;a href=&quot;https://www.airbnb.jp/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Airbnb&lt;/a&gt;が公開している&lt;a href=&quot;http://airbnb.io/lottie/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Lottie&lt;/a&gt;という、ネイティブアプリやWebで書き出せる方法の中で使われています。
余談ですが、Airbnbのデザインチームが以下にすばらしいかは、&lt;a href=&quot;https://airbnb.design/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://airbnb.design/&lt;/a&gt;で見ることができます。&lt;br&gt;
また、GoogleのデザインチームもBodymovinを利用しているようです。&lt;a href=&quot;https://medium.com/google-design/bodymovin-to-android-6e53e5f7a96&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Mediumの記事&lt;/a&gt;にアプリで使用している形跡がありますし、実際にブラウザ上のコードの中身をみるとBodymovinの文字がありました。&lt;/p&gt;
&lt;p&gt;これだけでも使う価値がありますね。特に企業ユースで。&lt;/p&gt;
&lt;h2 id=&quot;インストール手順&quot;&gt;&lt;a href=&quot;#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%89%8B%E9%A0%86&quot; aria-label=&quot;インストール手順 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;インストール手順&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;念のためAEは終了してください&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;AEのプラグインをインストールするためZXP Installerをインストールします。&lt;a href=&quot;https://aescripts.com/learn/zxp-installer/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;公式サイト&lt;/a&gt;からダウンロードしましょう。&lt;br&gt;
homebrewをインストールしている人は以下のコマンドでインストールできます。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;sh&quot;&gt;&lt;pre class=&quot;language-sh&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;brew cask &lt;span class=&quot;token function&quot;&gt;install&lt;/span&gt; zxpinstaller&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;BodymovinはAirbnbの&lt;a href=&quot;https://github.com/bodymovin/bodymovin/releases&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;lottie-webリポジトリ&lt;/a&gt;から最新のzipファイルをダウンロードできます。リンク先の最新の&lt;code class=&quot;language-text&quot;&gt;v*.*.*&lt;/code&gt;の箇所をクリックし、Source code(zip)をダウンロードしましょう。&lt;/li&gt;
&lt;li&gt;解答した中にある、bodymovin.zxp(build &gt; extension &gt; bodymovin.zxp)を、先程インストールしたZXP Installelrを起動し、ウィンドウ内にドラッグします。&lt;/li&gt;
&lt;li&gt;AEを起動します。メニュー &gt; Window &gt; 拡張機能 を確認し、Bodymovin が追加されていたらインストール完了です。&lt;br&gt;
頻繁に更新されるので、定期的に新しいバージョンにすることをお勧めします。&lt;/li&gt;
&lt;li&gt;最後に設定を変更します。環境設定 &gt; 一般設定 &gt; スクリプトによるファイルへの書き込みとネットワークへのアクセス をチェックしてください。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;アニメーションを作る&quot;&gt;&lt;a href=&quot;#%E3%82%A2%E3%83%8B%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%92%E4%BD%9C%E3%82%8B&quot; aria-label=&quot;アニメーションを作る permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;アニメーションを作る&lt;/h2&gt;
&lt;p&gt;AEのすべての機能が使えるわけではありません。&lt;br&gt;
&lt;a href=&quot;http://airbnb.io/lottie/#/supported-features&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;公式サイト&lt;/a&gt;を確認して、対応している機能のみを使ってアニメーションを作りましょう。&lt;br&gt;
AEの使い方は長くなるので割愛します。&lt;br&gt;
このようなデザインツールのリソースの勉強にはYoutubeをおすすめします&lt;br&gt;
&lt;code class=&quot;language-text&quot;&gt;ae bodymovin&lt;/code&gt;などで検索するとたくさんでてきますね。&lt;br&gt;
例えばDesignCourseさんはアイコンアニメーションを作り、Bodymovinで書き出す方法を紹介されています。&lt;br&gt;
&lt;a href=&quot;https://www.youtube.com/watch?v=2Tm8ijJsuMc&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://www.youtube.com/watch?v=2Tm8ijJsuMc&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;web向けに書き出す&quot;&gt;&lt;a href=&quot;#web%E5%90%91%E3%81%91%E3%81%AB%E6%9B%B8%E3%81%8D%E5%87%BA%E3%81%99&quot; aria-label=&quot;web向けに書き出す permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;Web向けに書き出す&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;メニュー &gt; Window &gt; 拡張機能 &gt; Bodymovin を選択します。&lt;/li&gt;
&lt;li&gt;書き出したいコンポジションを選択し &gt; 歯車アイコンを選択します。&lt;/li&gt;
&lt;li&gt;書き出したい種類を選択し、demoを選択するとHTMLファイル１つに書き出してくれます。&lt;/li&gt;
&lt;li&gt;Destination Folder(3点リーダーのアイコン)をクリックして保存先を指定します。&lt;/li&gt;
&lt;li&gt;Renderを実行すると、指定したフォルダに書き出してくれます。&lt;/li&gt;
&lt;li&gt;書き出されたHTMLをブラウザーで表示し、アニメーションが動いていることを確認します。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;完成したらフロントエンドエンジニアに、&lt;a href=&quot;http://airbnb.io/lottie/#/web&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Webの実装方法&lt;/a&gt;のURLとAEファイルか書き出したファイルを渡しましょう。&lt;/p&gt;
&lt;p&gt;参考です。powermojoさんが動画で書き出し方法を説明されています。&lt;br&gt;
&lt;a href=&quot;https://www.youtube.com/watch?v=5XMUJdjI0L8&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://www.youtube.com/watch?v=5XMUJdjI0L8&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://airbnb.io/lottie/#/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Lottie&lt;/a&gt;のサイトをみると、見ていて楽しい魅力的なアニメーションがたくさんありますね。&lt;br&gt;
フロントエンドエンジニアとしても、このようなアニメーションを実装するのは楽しいはずです。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;今回はAdobeのAEを使った手法を紹介しましたが、&lt;br&gt;後日、&lt;a href=&quot;https://www.framer.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Framer X&lt;/a&gt;や&lt;a href=&quot;https://principleformac.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Principle&lt;/a&gt;などの他のツールを使ったアニメーション構築方法も記事にしたいと思います。&lt;/p&gt;
&lt;p&gt;Happy Designing Animation!&lt;/p&gt;</content:encoded></item><item><title><![CDATA[ブラウザで機械学習が実行できるml5jsを試してみる]]></title><link>https://www.bauhausify.com/2019-08-21_ブラウザで機械学習が実行できるml5jsを試してみる/</link><guid isPermaLink="false">https://www.bauhausify.com/2019-08-21_ブラウザで機械学習が実行できるml5jsを試してみる/</guid><pubDate>Wed, 21 Aug 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://codepen.io/mwrote/pen/KKPgbrw?defaultTab=result&amp;#x26;run=true&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;div class=&quot;embed-codepen&quot;&gt;&lt;iframe
        height=&apos;400&apos;
        scrolling=&apos;no&apos;
        src=&apos;//codepen.io/mwrote/embed/KKPgbrw/?height=400&amp;theme-id=light&amp;default-tab=result&apos;
        frameborder=&apos;no&apos;
        allowtransparency=&apos;true&apos;
        allowfullscreen=&apos;true&apos;
        style=&apos;width: 100%;&apos;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;なぜか&lt;a href=&quot;https://p5js.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;p5js&lt;/a&gt;と間違えやすい、&lt;a href=&quot;https://ml5js.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;ml5js&lt;/a&gt;という機械学習をブラウザ上で実行するライブラリが気なったので、その所見を書きたいと思います。&lt;br&gt;
(p5jsは&lt;a href=&quot;/2019-07-15_Ptsjs%E3%81%AB%E3%82%88%E3%82%8B%E5%AE%9F%E8%B7%B5%E3%82%B7%E3%82%99%E3%82%A7%E3%83%8D%E3%83%A9%E3%83%86%E3%82%A3%E3%83%95%E3%82%99%E3%82%A2%E3%83%BC%E3%83%88/&quot;&gt;Ptsjsによる実践ジェネラティブアート&lt;/a&gt;で紹介しています。)&lt;/p&gt;
&lt;h2 id=&quot;まず機械学習について簡単に&quot;&gt;&lt;a href=&quot;#%E3%81%BE%E3%81%9A%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6%E7%B0%A1%E5%8D%98%E3%81%AB&quot; aria-label=&quot;まず機械学習について簡単に permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;まず機械学習について簡単に&lt;/h2&gt;
&lt;p&gt;以前私は、Pythonの&lt;a href=&quot;https://keras.io/ja/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Keras&lt;/a&gt;を用いて少しだけ機械学習に触れたことがあります。&lt;br&gt;
その時の、雑感を端的に説明すると、&lt;br&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;学習&lt;/li&gt;
&lt;li&gt;推論&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この２つが機械学習の大きなフェーズとなり、&lt;br&gt;
一番重要な、そして用意するのが難しい学習のための&lt;em&gt;データ&lt;/em&gt;が存在します。&lt;br&gt;
開発者側はデータから学習した&lt;em&gt;モデル&lt;/em&gt;を事前に用意し、&lt;br&gt;
なんらかのサービスのユーザーはそのモデルをもとに機械学習を実行します。ここが&lt;em&gt;推論&lt;/em&gt;です。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;そのときの機械学習への印象は以下です。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;学習させるためのデータが必要、より多く、正確なもの&lt;/li&gt;
&lt;li&gt;学習にはマシンスペックが必要、お金を出せば出すほど早くできる、時間とお金の相談&lt;/li&gt;
&lt;li&gt;学習させるノウハウは専門家レベルの習得に時間がかかる、素人はトライアンドエラー&lt;/li&gt;
&lt;li&gt;学習したモデルをもとにインタラクティブに推論を得るにもある程度のマシンスペックがいる&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;1-3は到底ブラウザで実行するにはお門違いです。&lt;br&gt;
&lt;em&gt;ml5js&lt;/em&gt; は4の実行させるところに主眼をおいたものに思われます。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;では実際にサンプルを触ってみます。&lt;/p&gt;
&lt;h2 id=&quot;ml5jsのはじめのサンプルを試す&quot;&gt;&lt;a href=&quot;#ml5js%E3%81%AE%E3%81%AF%E3%81%98%E3%82%81%E3%81%AE%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%82%92%E8%A9%A6%E3%81%99&quot; aria-label=&quot;ml5jsのはじめのサンプルを試す permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;ml5jsのはじめのサンプルを試す&lt;/h2&gt;
&lt;p&gt;ここからの内容は&lt;a href=&quot;https://ml5js.org/getting-started/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;公式のチュートリアル&lt;/a&gt;に沿っています。その簡略版です。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;まず&lt;code class=&quot;language-text&quot;&gt;&amp;lt;head&gt;&lt;/code&gt;内にml5jsとp5jsを読み込ませます。&lt;br&gt;
なぜp5jsを使うのかというと、機械学習は画像に対してわかりやすい効果がだしやすいので、画像を取り扱いやすいp5jsが採用されたのでしょう&lt;br&gt;
この記事では最低限のもののみ読み込みます。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;html&quot;&gt;&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- p5 --&gt;&lt;/span&gt;
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;script&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.8.0/p5.min.js&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token script&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;script&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token comment&quot;&gt;&amp;lt;!-- ml5 --&gt;&lt;/span&gt;
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;script&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;https://unpkg.com/ml5@0.3.1/dist/ml5.min.js&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token script&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;script&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;つぎにp5jsのみの機能を使いcanvas要素を作成し、画像を表示します。&lt;br&gt;
今回は、この画像が何の画像なのかを推論します。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; img&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;preload&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  img &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;loadImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;https://res.cloudinary.com/mwrote/image/upload/c_scale,w_200/v1560441316/bauhausify/_SDI0792.jpg&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;setup&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;createCanvas&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;200&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;133&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// 今回読み込んでいる画像のサイズ&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;img&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;そこで、肝心のml5jsの登場です。追加しているのは4箇所です。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; classifier&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; img&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// ここと&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;preload&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  classifier &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; ml5&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;imageClassifier&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;MobileNet&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// ここと&lt;/span&gt;
  img &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;loadImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;https://res.cloudinary.com/mwrote/image/upload/c_scale,w_200/v1560441316/bauhausify/_SDI0792.jpg&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;setup&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;createCanvas&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;200&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;133&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  classifier&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;classify&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;img&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; gotResult&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot;&gt;// ここと&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;img&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token comment&quot;&gt;// ここ&lt;/span&gt;
&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;gotResult&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;

&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;まず、TensorFlowの提供する学習済み画像モデルMobileNetを使うと宣言し、&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;let&lt;/span&gt; classifier &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; ml5&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;imageClassifier&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;MobileNet&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;画像を読み込ませ、callback関数のgotResult(名前なんでもOK)を指定します。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;classifier&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;classify&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;img&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; gotResult&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;すると画像解析の数秒後にgotResult関数が呼ばれます。&lt;/p&gt;
&lt;p&gt;事前にhtmlにて簡単な受け皿を用意し、&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;html&quot;&gt;&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;span&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;result&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;span&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;gotResult関数には以下を書きましょう。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;gotResult&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;results&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  console&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;results&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  document&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;querySelector&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&apos;#result&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;textContent &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; results&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;label&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;すると、ブラウザコンソールには画像の推論結果が表示され、&lt;br&gt;
&lt;code class=&quot;language-text&quot;&gt;span#result&lt;/code&gt;要素にはそのテキストデータが表示されます。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;詳しいサンプルコードは、記事冒頭のCodePenのリンク先でご覧いただけます。&lt;/p&gt;
&lt;h2 id=&quot;雑感まとめ&quot;&gt;&lt;a href=&quot;#%E9%9B%91%E6%84%9F%E3%81%BE%E3%81%A8%E3%82%81&quot; aria-label=&quot;雑感まとめ permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;雑感まとめ&lt;/h2&gt;
&lt;p&gt;冒頭の機械学習の概要と照らし合わせせつつ、雑感としてまとめます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;実行時のNetwork通信をみると学習済みモデルデータは都度ダウンロードしている。ライブラリ内には存在しない。&lt;br&gt;
場所: &lt;a href=&quot;https://storage.googleapis.com/tfhub-tfjs-modules/google/imagenet/mobilenet_v1_100_224/classification/1/model.json&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://storage.googleapis.com/tfhub-tfjs-modules/google/imagenet/mobilenet&lt;em&gt;v1&lt;/em&gt;100_224/classification/1/model.json&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;圧縮版のml5jsだけでも1.6MBあり、モデルデータは64KB。モデルデータが軽いが、ライブラリだけでも重い&lt;/li&gt;
&lt;li&gt;静止画の推論実行に数秒かかる。動画などにリアルタイムではだいぶ未来の話&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;やはり、ブラウザ上ではなかなか現状厳しいデータですね。&lt;br&gt;
しかし、&lt;em&gt;ブラウザで実行できる&lt;/em&gt;ことが最大のメリットです。&lt;br&gt;
そして、クライアント側でのモデルの読み込みと推論がこんなに簡単にできることが触っていて楽しいですね。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[たった4ステップでVueを使う方法]]></title><link>https://www.bauhausify.com/2019-08-15_たった4ステップでVueを使う方法/</link><guid isPermaLink="false">https://www.bauhausify.com/2019-08-15_たった4ステップでVueを使う方法/</guid><pubDate>Thu, 15 Aug 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;本来&lt;a href=&quot;https://jp.vuejs.org/index.html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Vue.js&lt;/a&gt;(以下Vue)は、JavaScriptによるコンポーネントベースのアプリケーション構築が得意です。&lt;br&gt;
特に状態管理によるUIの切り替えが完結にかけるので、非常に強力です。&lt;br&gt;
しかし、このように話すと難しいのではという印象がありますが、&lt;br&gt;
Reactなどと違い、実は非常に簡潔に、わかりやすくコードが書けるように設計されています。&lt;/p&gt;
&lt;h2 id=&quot;強力なvueの機能&quot;&gt;&lt;a href=&quot;#%E5%BC%B7%E5%8A%9B%E3%81%AAvue%E3%81%AE%E6%A9%9F%E8%83%BD&quot; aria-label=&quot;強力なvueの機能 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;強力なVueの機能&lt;/h2&gt;
&lt;p&gt;簡単な例で説明します。&lt;br&gt;
以下のようにJavaScriptでA,B,CそれぞれがtrueかfalseかをもつBooleanを定義したとします。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token literal-property property&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;isA&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;isB&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;isC&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;それをチェックボックスのdataに紐付けます。&lt;br&gt;
v-modelというのがVue特有のデータとHTMLを紐付ける仕組みです。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;html&quot;&gt;&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;input&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;checkbox&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;v-model&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;isA&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;input&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;checkbox&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;v-model&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;isB&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;input&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;checkbox&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;v-model&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;isC&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;そうすると以下のコードを書くだけで、&lt;br&gt;
A,B,Cのいずれかがチェックされると表示するようになります。&lt;br&gt;
v-ifという属性がデータのboolean値により表示を切り替える仕組みです。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;html&quot;&gt;&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;v-if&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;isA&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Aが表示されました。&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;v-if&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;isB&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Bが表示されました。&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;v-if&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;isC&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;Cが表示されました。&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;このように、動的に変化する値に応じて、UIを変えることが非常に簡単に実現できます。&lt;/p&gt;
&lt;h2 id=&quot;最も簡単な導入方法&quot;&gt;&lt;a href=&quot;#%E6%9C%80%E3%82%82%E7%B0%A1%E5%8D%98%E3%81%AA%E5%B0%8E%E5%85%A5%E6%96%B9%E6%B3%95&quot; aria-label=&quot;最も簡単な導入方法 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;最も簡単な導入方法&lt;/h2&gt;
&lt;p&gt;この記事では、既存サイトでも最も簡単に導入できるCDN(コンテンツデリバリネットワーク)方式を説明します。&lt;br&gt;
ステップは以下です。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;head内にVue.jsを挿入&lt;/li&gt;
&lt;li&gt;Vueを使いそうな箇所にidを設定&lt;/li&gt;
&lt;li&gt;自分で用意したJavaScript内でVueを実行&lt;/li&gt;
&lt;li&gt;v-cloakを設定する&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&quot;head内にvuejsを挿入&quot;&gt;&lt;a href=&quot;#head%E5%86%85%E3%81%ABvuejs%E3%82%92%E6%8C%BF%E5%85%A5&quot; aria-label=&quot;head内にvuejsを挿入 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;head内にVue.jsを挿入&lt;/h3&gt;
&lt;p&gt;本番サイトを想定して、最新の固定バージョン(2019/8/15日最新バージョン2.6.10)のvueをhead内で読み込ませます。&lt;br&gt;
最新のバージョンや開発バージョンを使いたい場合は&lt;a href=&quot;https://jp.vuejs.org/v2/guide/installation.html#CDN&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;公式サイト&lt;/a&gt;を参考にしてください。&lt;/p&gt;
&lt;div class=&quot;gatsby-code-title gatsby-remark-code-titles&quot;&gt;2.6.10の部分を最新バージョンにしてください&lt;/div&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;html&quot;&gt;&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;script&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token script&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;script&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;head&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;合わせて、Vueを使うためのJavaScriptファイルをbodyの最後で読み込みます。&lt;br&gt;
名前は仮に&lt;code class=&quot;language-text&quot;&gt;your-js-file.js&lt;/code&gt;としています。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;  &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;script src&lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;./your-js-file.js&quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;script&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;
&lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;body&lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;vueを使いそうな箇所にidを設定&quot;&gt;&lt;a href=&quot;#vue%E3%82%92%E4%BD%BF%E3%81%84%E3%81%9D%E3%81%86%E3%81%AA%E7%AE%87%E6%89%80%E3%81%ABid%E3%82%92%E8%A8%AD%E5%AE%9A&quot; aria-label=&quot;vueを使いそうな箇所にidを設定 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;Vueを使いそうな箇所にidを設定&lt;/h3&gt;
&lt;p&gt;指定する要素の中にHTMLが存在していても問題ないです。&lt;br&gt;
よくわからなければ、bodyにidを設定しましょう。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;html&quot;&gt;&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;app&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;ここに既存のHTMLが存在していても問題ありません&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;p&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;自分で用意したjavascript内でvueを実行&quot;&gt;&lt;a href=&quot;#%E8%87%AA%E5%88%86%E3%81%A7%E7%94%A8%E6%84%8F%E3%81%97%E3%81%9Fjavascript%E5%86%85%E3%81%A7vue%E3%82%92%E5%AE%9F%E8%A1%8C&quot; aria-label=&quot;自分で用意したjavascript内でvueを実行 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;自分で用意したJavaScript内でVueを実行&lt;/h3&gt;
&lt;p&gt;先程用意した&lt;code class=&quot;language-text&quot;&gt;your-js-file.js&lt;/code&gt;でVueを実行しましょう。&lt;br&gt;
HTML内からVueの機能を使うには、この&lt;code class=&quot;language-text&quot;&gt;new Vue&lt;/code&gt;の中にデータを記述する必要があります。&lt;br&gt;
参考として、先程のdataを記述しています。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;Vue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;el&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;#app&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token literal-property property&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;isA&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;isB&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;token literal-property property&quot;&gt;isC&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token boolean&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;v-cloakを設定する&quot;&gt;&lt;a href=&quot;#v-cloak%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B&quot; aria-label=&quot;v cloakを設定する permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;v-cloakを設定する&lt;/h3&gt;
&lt;p&gt;そのままだと、HTML内のVueの機能を使った箇所が一瞬そのままレンダリングされてしまいます。&lt;br&gt;
例えば、ブラウザ表で一瞬&lt;code class=&quot;language-text&quot;&gt;{{ isA }}&lt;/code&gt;とそのまま表示され、その後すぐに&lt;code class=&quot;language-text&quot;&gt;true&lt;/code&gt;に切り替わります。&lt;br&gt;
これを防ぐために、Vueが用意しているv-cloak属性を利用して、JavaScriptが読み込まれるまで要素を非表示にします。&lt;br&gt;
ここでは、上で付与した&lt;code class=&quot;language-text&quot;&gt;id=&quot;app&quot;&lt;/code&gt;の箇所にv-cloakを設定しました。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;html&quot;&gt;&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;div&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;app&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;v-cloak&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;div&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;CSSの記述も必要です。&lt;br&gt;
既存のCSSに追加するか、CSSファイルを作成し、head内で読み込ませましょう。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;css&quot;&gt;&lt;pre class=&quot;language-css&quot;&gt;&lt;code class=&quot;language-css&quot;&gt;&lt;span class=&quot;token selector&quot;&gt;[v-cloak]&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token property&quot;&gt;display&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;:&lt;/span&gt; none&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;以上で完了です。&lt;/p&gt;
&lt;p&gt;これからJavaScriptを学びたいといった方も、Vueの強力な機能を使いながら、少しづつ勉強してくと楽しいかと思います。&lt;br&gt;
Happy coding JavaScript!&lt;/p&gt;</content:encoded></item><item><title><![CDATA[かわいいファミコン風CSSライブラリNES.css]]></title><link>https://www.bauhausify.com/2019-07-23_かわいいファミコン風CSSライブラリNEScss/</link><guid isPermaLink="false">https://www.bauhausify.com/2019-07-23_かわいいファミコン風CSSライブラリNEScss/</guid><pubDate>Tue, 23 Jul 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;早速ですが、こちらのデモをご覧ください。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://codepen.io/mwrote/pen/MNgQMw?run=true&amp;#x26;defaultTab=result&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;div class=&quot;embed-codepen&quot;&gt;&lt;iframe
        height=&apos;400&apos;
        scrolling=&apos;no&apos;
        src=&apos;//codepen.io/mwrote/embed/MNgQMw/?height=400&amp;theme-id=light&amp;default-tab=result&apos;
        frameborder=&apos;no&apos;
        allowtransparency=&apos;true&apos;
        allowfullscreen=&apos;true&apos;
        style=&apos;width: 100%;&apos;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;装飾的なCSSは一切かかずに、すべて&lt;a href=&quot;https://github.com/nostalgic-css/NES.css&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;NES.css&lt;/a&gt;というライブラリのみで装飾しています。&lt;br&gt;
(演出として、タイピングエフェクト部分は&lt;a href=&quot;https://github.com/mattboldt/typed.js&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Typed.js&lt;/a&gt;というJSライブラリを使っています)&lt;/p&gt;
&lt;p&gt;デモ以外にも、チェックボックスやリスト、テーブルなど基本的なHTML要素のスタイルはそろっています。&lt;br&gt;
詳しくは&lt;a href=&quot;https://nostalgic-css.github.io/NES.css/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;公式サイト&lt;/a&gt;をご覧ください。&lt;/p&gt;
&lt;p&gt;作者は日本人です。作者自身の紹介記事は&lt;a href=&quot;https://kuroeveryday.blogspot.com/2018/12/nescss-released.html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;こちら&lt;/a&gt;です。&lt;/p&gt;
&lt;h2 id=&quot;導入方法&quot;&gt;&lt;a href=&quot;#%E5%B0%8E%E5%85%A5%E6%96%B9%E6%B3%95&quot; aria-label=&quot;導入方法 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;導入方法&lt;/h2&gt;
&lt;h3 id=&quot;cdn版&quot;&gt;&lt;a href=&quot;#cdn%E7%89%88&quot; aria-label=&quot;cdn版 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;CDN版&lt;/h3&gt;
&lt;p&gt;ページの&lt;head&gt;内を編集できる場合は、こちら&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;html&quot;&gt;&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;link&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;https://unpkg.com/nes.css@2.2.0/css/nes.min.css&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;rel&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;stylesheet&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;package版&quot;&gt;&lt;a href=&quot;#package%E7%89%88&quot; aria-label=&quot;package版 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;package版&lt;/h3&gt;
&lt;p&gt;インストールします。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;html&quot;&gt;&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;npm install nes.css
# or
yarn add nes.css&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;css-loaderが設定されている場合は、JSファイルでcssをインポート&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;nes.css/css/nes.css&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;scssの場合は、scssファイル内でインポートします。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;scss&quot;&gt;&lt;pre class=&quot;language-scss&quot;&gt;&lt;code class=&quot;language-scss&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;@import&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;~nes.css/scss/nes.scss&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;使用する上での注意点&quot;&gt;&lt;a href=&quot;#%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E4%B8%8A%E3%81%A7%E3%81%AE%E6%B3%A8%E6%84%8F%E7%82%B9&quot; aria-label=&quot;使用する上での注意点 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;使用する上での注意点&lt;/h2&gt;
&lt;h3 id=&quot;日本語はフォントの準備が必要&quot;&gt;&lt;a href=&quot;#%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%81%AF%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88%E3%81%AE%E6%BA%96%E5%82%99%E3%81%8C%E5%BF%85%E8%A6%81&quot; aria-label=&quot;日本語はフォントの準備が必要 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;日本語はフォントの準備が必要&lt;/h3&gt;
&lt;p&gt;英語のレトロフォントはGoogle Fontsにあるのですぐ使えますが、&lt;br&gt;
日本語を使う場合は、別途サーバーなどにWebフォントを準備する必要があります。&lt;/p&gt;
&lt;p&gt;大抵のフォントファイルはTTF形式で配布されているので、&lt;a href=&quot;https://opentype.jp/woffconv.htm&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;WOFFコンバータ&lt;/a&gt;などを使ってEOT, WOFF形式のWebフォントを生成し、サーバーに配置してCSSから読み込みましょう。この記事ではその方法は割愛します。&lt;/p&gt;
&lt;h3 id=&quot;dialogを使う場合はpolyfillの導入が必要&quot;&gt;&lt;a href=&quot;#dialog%E3%82%92%E4%BD%BF%E3%81%86%E5%A0%B4%E5%90%88%E3%81%AFpolyfill%E3%81%AE%E5%B0%8E%E5%85%A5%E3%81%8C%E5%BF%85%E8%A6%81&quot; aria-label=&quot;dialogを使う場合はpolyfillの導入が必要 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;dialogを使う場合はpolyfillの導入が必要&lt;/h3&gt;
&lt;p&gt;dialogにはhtmlの&lt;code class=&quot;language-text&quot;&gt;&amp;lt;dialog&gt;&lt;/code&gt;要素が使われているため、デフォルトだと&lt;a href=&quot;https://developer.mozilla.org/ja/docs/Web/HTML/Element/dialog#Browser_compatibility&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;対応しているブラウザ&lt;/a&gt;しか動きません。&lt;br&gt;
JSとCSSの２つのpolyfillファイルのimportが必要です。&lt;br&gt;
CDNの場合は以下を&lt;code class=&quot;language-text&quot;&gt;&amp;lt;head&gt;&lt;/code&gt;タグ内で読み込みましょう&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;html&quot;&gt;&lt;pre class=&quot;language-html&quot;&gt;&lt;code class=&quot;language-html&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;link&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;rel&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;stylesheet&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;href&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;https://cdnjs.cloudflare.com/ajax/libs/dialog-polyfill/0.4.9/dialog-polyfill.css&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;&lt;/span&gt;script&lt;/span&gt; &lt;span class=&quot;token attr-name&quot;&gt;src&lt;/span&gt;&lt;span class=&quot;token attr-value&quot;&gt;&lt;span class=&quot;token punctuation attr-equals&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;https://cdnjs.cloudflare.com/ajax/libs/dialog-polyfill/0.5.0/dialog-polyfill.min.js&lt;span class=&quot;token punctuation&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;token script&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token tag&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;&amp;lt;/&lt;/span&gt;script&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;bootstrapやtailwindcssなどのレイアウト系クラスと組み合わせると使いやすい&quot;&gt;&lt;a href=&quot;#bootstrap%E3%82%84tailwindcss%E3%81%AA%E3%81%A9%E3%81%AE%E3%83%AC%E3%82%A4%E3%82%A2%E3%82%A6%E3%83%88%E7%B3%BB%E3%82%AF%E3%83%A9%E3%82%B9%E3%81%A8%E7%B5%84%E3%81%BF%E5%90%88%E3%82%8F%E3%81%9B%E3%82%8B%E3%81%A8%E4%BD%BF%E3%81%84%E3%82%84%E3%81%99%E3%81%84&quot; aria-label=&quot;bootstrapやtailwindcssなどのレイアウト系クラスと組み合わせると使いやすい permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;Bootstrapやtailwindcssなどのレイアウト系クラスと組み合わせると使いやすい&lt;/h2&gt;
&lt;p&gt;NES.cssはあくまでウィンドウやボタンなどの単体コンポーネントの装飾スタイルのみ提供します。&lt;br&gt;
デモのコードもそうですが、Bootstrapやtailwindcssなどと組み合わせることにより、CSSは書かずに使うことができます。
&lt;a href=&quot;https://codepen.io/mwrote/pen/MNgQMw?run=true&amp;#x26;defaultTab=html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;div class=&quot;embed-codepen&quot;&gt;&lt;iframe
        height=&apos;400&apos;
        scrolling=&apos;no&apos;
        src=&apos;//codepen.io/mwrote/embed/MNgQMw/?height=400&amp;theme-id=light&amp;default-tab=html&apos;
        frameborder=&apos;no&apos;
        allowtransparency=&apos;true&apos;
        allowfullscreen=&apos;true&apos;
        style=&apos;width: 100%;&apos;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;cssアーキテクチャはbootstrapベース&quot;&gt;&lt;a href=&quot;#css%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3%E3%81%AFbootstrap%E3%83%99%E3%83%BC%E3%82%B9&quot; aria-label=&quot;cssアーキテクチャはbootstrapベース permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;CSSアーキテクチャはBootstrapベース？&lt;/h2&gt;
&lt;p&gt;Bootstrapではお馴染みのカラー、Primary, Info, Danger, Warn, Successが用意されています。&lt;br&gt;
prefixとして&lt;code class=&quot;language-text&quot;&gt;is-primary&lt;/code&gt;といったように&lt;code class=&quot;language-text&quot;&gt;is-***&lt;/code&gt;がつきます。
暗くしたい場合は&lt;code class=&quot;language-text&quot;&gt;is-dark&lt;/code&gt;、丸みをもたせる場合は&lt;code class=&quot;language-text&quot;&gt;is-rounded&lt;/code&gt;となります。
とてもシンプルです。&lt;/p&gt;
&lt;h2 id=&quot;このライブラリの使い所&quot;&gt;&lt;a href=&quot;#%E3%81%93%E3%81%AE%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%81%AE%E4%BD%BF%E3%81%84%E6%89%80&quot; aria-label=&quot;このライブラリの使い所 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;このライブラリの使い所&lt;/h2&gt;
&lt;p&gt;趣向性が高い分、使い所はけっこう限られていますが、なんといっても見た目がかわいいので個人的にはうまく使っていきたいところです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ゲーム紹介サイトなど&lt;/li&gt;
&lt;li&gt;レトロな考えでやるてきな思想のサイトやサービスなど&lt;/li&gt;
&lt;li&gt;開発者向けのサイトなど、ファミコン好き多いでしょう、たぶん受けはいいはず&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title><![CDATA[Pts.jsによる実践ジェネラティブアート]]></title><link>https://www.bauhausify.com/2019-07-15_Ptsjsによる実践ジェネラティブアート/</link><guid isPermaLink="false">https://www.bauhausify.com/2019-07-15_Ptsjsによる実践ジェネラティブアート/</guid><pubDate>Mon, 15 Jul 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://codepen.io/mwrote/pen/WqqvbW?defaultTab=result&amp;#x26;run=true&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;div class=&quot;embed-codepen&quot;&gt;&lt;iframe
        height=&apos;400&apos;
        scrolling=&apos;no&apos;
        src=&apos;//codepen.io/mwrote/embed/WqqvbW/?height=400&amp;theme-id=light&amp;default-tab=result&apos;
        frameborder=&apos;no&apos;
        allowtransparency=&apos;true&apos;
        allowfullscreen=&apos;true&apos;
        style=&apos;width: 100%;&apos;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://ptsjs.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Pts&lt;/a&gt;というライブラリが面白そうなので、公式チュートリアルを触ってその感想などをレポートしたいと思います。&lt;br&gt;
初見としては、&lt;a href=&quot;https://ptsjs.org/demo&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;デモサイト&lt;/a&gt;にあるとおり、複雑な計算式による図形描画が簡単なメソッドで高速で動くのかなという印象です。&lt;/p&gt;
&lt;h2 id=&quot;概念&quot;&gt;&lt;a href=&quot;#%E6%A6%82%E5%BF%B5&quot; aria-label=&quot;概念 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;概念&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;スペース(PtsSpace): 紙&lt;/li&gt;
&lt;li&gt;フォーム(Form): 鉛筆&lt;/li&gt;
&lt;li&gt;ポイント(Point): アイデア&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この3つの概念で描きたいものを考えるようです。3Dプログラミングをする際のライトやカメラ、シーンのような物事の捉え方の概念でしょうか。詳しくは&lt;a href=&quot;https://medium.com/@williamngan/pt-93382bf5943e&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;ここ(英語)&lt;/a&gt;に書かれています。&lt;/p&gt;
&lt;h2 id=&quot;コードペンでの土台作り&quot;&gt;&lt;a href=&quot;#%E3%82%B3%E3%83%BC%E3%83%89%E3%83%9A%E3%83%B3%E3%81%A7%E3%81%AE%E5%9C%9F%E5%8F%B0%E4%BD%9C%E3%82%8A&quot; aria-label=&quot;コードペンでの土台作り permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;コードペンでの土台作り&lt;/h2&gt;
&lt;p&gt;まずはコードペンでPtsライブラリを追加しましょう。&lt;br&gt;
Settings -&gt; JavaScript -&gt; 検索欄でPtsで検索し、追加します。&lt;/p&gt;
&lt;h2 id=&quot;ベースとなるcanvas作成&quot;&gt;&lt;a href=&quot;#%E3%83%99%E3%83%BC%E3%82%B9%E3%81%A8%E3%81%AA%E3%82%8Bcanvas%E4%BD%9C%E6%88%90&quot; aria-label=&quot;ベースとなるcanvas作成 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;ベースとなるCanvas作成&lt;/h2&gt;
&lt;p&gt;まずはhtmlのcanvas作成します。これがPtsでいうスペースですね。&lt;/p&gt;
&lt;p&gt;これには、通常版と簡易版が用意されています。&lt;/p&gt;
&lt;p&gt;まず通常版から、グローバルスコープ(window)にPtsの関数を定義します。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;Pts&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;namespace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;window&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;code class=&quot;language-text&quot;&gt;#hello&lt;/code&gt;箇所はcanvas要素のidになり、&lt;a href=&quot;https://ptsjs.org/docs/?p=Canvas_Canvasspace#function_setup&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;setup&lt;/a&gt;関数では背景の他に、オフスクリーンレンダリング、リサイズ、retina対応の有無を設定できます。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; space &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot;&gt;CanvasSpace&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;#hello&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
space&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;setup&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;token literal-property property&quot;&gt;bgcolor&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;#fff&quot;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; form &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; space&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;getForm&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;以上の簡易版として、quickStart関数を使い一行で書けます。&lt;br&gt;
この場合、グローバルスコープにPtsのメソッドや変数、さらに&lt;code class=&quot;language-text&quot;&gt;space&lt;/code&gt;と&lt;code class=&quot;language-text&quot;&gt;form&lt;/code&gt;変数が作成されます。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;Pts&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;quickStart&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;#hello&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;#fff&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;描画処理をかく&quot;&gt;&lt;a href=&quot;#%E6%8F%8F%E7%94%BB%E5%87%A6%E7%90%86%E3%82%92%E3%81%8B%E3%81%8F&quot; aria-label=&quot;描画処理をかく permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;描画処理をかく&lt;/h2&gt;
&lt;p&gt;quickStart関数の&lt;b&gt;戻り値の関数&lt;/b&gt;の引数が毎フレーム実行される関数です。&lt;br&gt;
これは標準の&lt;a href=&quot;https://developer.mozilla.org/ja/docs/Web/API/Window/requestAnimationFrame&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;requestAnimationFrame関数&lt;/a&gt;や&lt;a href=&quot;/2019-07-03_Web%E3%81%A6%E3%82%99%E7%B0%A1%E5%8D%98%E3%81%AB%E3%82%B3%E3%83%BC%E3%83%88%E3%82%99%E3%81%A6%E3%82%99%E7%B5%B5%E3%82%92%E6%8F%8F%E3%81%8Fp5-js/#%E3%82%B9%E3%82%B1%E3%83%83%E3%83%81%E3%82%92%E6%8F%8F%E3%81%8D%E3%81%AF%E3%81%98%E3%82%81%E3%82%88%E3%81%86&quot;&gt;Processingのdraw関数&lt;/a&gt;に非常によく似ています。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; run &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; Pts&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;quickStart&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;#hello&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;#fff&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;run&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;time&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; ftime&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token comment&quot;&gt;// ここに毎フレーム実行する描画処理を記述します。&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;他にも、スペースに対して関数を追加(&lt;code class=&quot;language-text&quot;&gt;space.add(() =&gt; { })&lt;/code&gt;)するとその関数が毎フレーム実行されるようです。&lt;br&gt;&lt;/p&gt;
&lt;h3 id=&quot;図形を描画する&quot;&gt;&lt;a href=&quot;#%E5%9B%B3%E5%BD%A2%E3%82%92%E6%8F%8F%E7%94%BB%E3%81%99%E3%82%8B&quot; aria-label=&quot;図形を描画する permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;図形を描画する&lt;/h3&gt;
&lt;p&gt;&lt;code class=&quot;language-text&quot;&gt;form.point&lt;/code&gt;は、指定した座標に図形を追加します。&lt;br&gt;
デフォルトでは幅5pxの赤い四角が追加されます。&lt;br&gt;
また、&lt;code class=&quot;language-text&quot;&gt;space.pointer&lt;/code&gt;変数にはマウス座標が格納されています。&lt;br&gt;
以下のコードでは、マウス座標に追従して、幅10pxの円を描画しています。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;form&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;point&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;space&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;pointer&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;circle&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;アニメーションさせる&quot;&gt;&lt;a href=&quot;#%E3%82%A2%E3%83%8B%E3%83%A1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%95%E3%81%9B%E3%82%8B&quot; aria-label=&quot;アニメーションさせる permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;アニメーションさせる&lt;/h3&gt;
&lt;p&gt;アニメーションフレーム関数の引数&lt;code class=&quot;language-text&quot;&gt;time&lt;/code&gt;にはフレーム数が格納されています。&lt;br&gt;
以下のように書くと円が伸縮するアニメーションが実行されます。&lt;br&gt;&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;space&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; radius &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;+&lt;/span&gt; Num&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;cycle&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;time&lt;span class=&quot;token operator&quot;&gt;%&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
  form&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;point&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;space&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;pointer&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; radius&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&apos;circle&apos;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;2行目の&lt;code class=&quot;language-text&quot;&gt;Num.cycle(time%1000/1000)&lt;/code&gt;の部分を少し解説しておきましょう。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;まず&lt;code class=&quot;language-text&quot;&gt;time%1000/1000&lt;/code&gt;の部分から解説します。&lt;br&gt;
timeはフレームなので、毎フレームずつ1が追加された整数が入ります。&lt;br&gt;
それを1000で割り、その余りをえることで 0~1000の値にフレームの値を制限します。&lt;br&gt;
最後にそれを1000で割、0~1の値に変換します。&lt;br&gt;
つまり0からはじまり徐々に増え続け、1に近づくとまた0からはじまる数値になります。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;code class=&quot;language-text&quot;&gt;Num.cycle&lt;/code&gt;は引数に円の角度をラジアン(0~1の値)単位で渡す&lt;a href=&quot;https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Math/sin&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;sin関数&lt;/a&gt;です。&lt;br&gt;
サイン関数はイージングの動きを得るときなどに使用します。&lt;br&gt;
ここに&lt;code class=&quot;language-text&quot;&gt;time%1000/1000&lt;/code&gt;を渡すことで、イージングのついた0から1の増え続ける値を得ることができます。&lt;/p&gt;
&lt;h2 id=&quot;関数ベースの使いやすく非常にわかりやすい設計&quot;&gt;&lt;a href=&quot;#%E9%96%A2%E6%95%B0%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E4%BD%BF%E3%81%84%E3%82%84%E3%81%99%E3%81%8F%E9%9D%9E%E5%B8%B8%E3%81%AB%E3%82%8F%E3%81%8B%E3%82%8A%E3%82%84%E3%81%99%E3%81%84%E8%A8%AD%E8%A8%88&quot; aria-label=&quot;関数ベースの使いやすく非常にわかりやすい設計 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;関数ベースの使いやすく非常にわかりやすい設計&lt;/h2&gt;
&lt;p&gt;この記事の内容は公式ドキュメントの&lt;a href=&quot;https://ptsjs.org/guide/get-started-0100&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Get started&lt;/a&gt;から抜粋したものです。&lt;/p&gt;
&lt;p&gt;基本的な構造は以下のように完結にかくことができ、非常に簡単です。&lt;br&gt;&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;const&lt;/span&gt; run &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; Pts&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;quickStart&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;#hello&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot;&gt;&quot;#fff&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;run&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;time&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; ftime&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;=&gt;&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token comment&quot;&gt;// ここで以下にアニメーションを記述するかがキモ&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;あとは、Ptsの関数を使い、いかに描画を記述していくかがキモになります。&lt;br&gt;
2章の&lt;a href=&quot;https://ptsjs.org/guide/pt-0200&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Pt&lt;/a&gt;以降は様々な描画方法(&lt;a href=&quot;https://ptsjs.org/guide/animation-0700&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;命令的なアニメーション手法&lt;/a&gt;など)が紹介されていますので、興味があればぜひご覧ください。&lt;/p&gt;</content:encoded></item><item><title><![CDATA[UIデザインの原則デザインガイドライン]]></title><link>https://www.bauhausify.com/2019-07-10_UIデザインの原則デザインガイドライン/</link><guid isPermaLink="false">https://www.bauhausify.com/2019-07-10_UIデザインの原則デザインガイドライン/</guid><pubDate>Wed, 10 Jul 2019 00:00:00 GMT</pubDate><content:encoded>&lt;h2 id=&quot;そもそもデザインガイドラインとは何&quot;&gt;&lt;a href=&quot;#%E3%81%9D%E3%82%82%E3%81%9D%E3%82%82%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%82%AC%E3%82%A4%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3%E3%81%A8%E3%81%AF%E4%BD%95&quot; aria-label=&quot;そもそもデザインガイドラインとは何 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;そもそもデザインガイドラインとは何？&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;デザイナーによる、アプリやWeb製作者に向けた、デザイン指示書です。&lt;br&gt;&lt;/li&gt;
&lt;li&gt;デザイナーが直接指示をしなくても、常に一定の品質のデザインを担保するために作ります。&lt;br&gt;&lt;/li&gt;
&lt;li&gt;内容に決まりはないですが、画面ごとの詳細の設計方法ではなく、製品全体を通したデザインの共通ルールが記載されています。&lt;br&gt;&lt;/li&gt;
&lt;li&gt;アプリのプラットフォームを展開している大手企業(AppleやMicrosoft、Google)は、&lt;b&gt;無料で&lt;/b&gt;デザインガイドラインを公開しており、それぞれのプラットフォームのアプリの品質を担保しています。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;OSやデバイスなどのプラットフォームごとにデザインガイドラインがありますが、&lt;b&gt;たとえそのプラットフォームのデザインをするつもりはなくても、UIデザインに関する多くの知見を得ることができます。&lt;/b&gt;&lt;/p&gt;
&lt;h2 id=&quot;apple-human-interface-guidelines英語&quot;&gt;&lt;a href=&quot;#apple-human-interface-guidelines%E8%8B%B1%E8%AA%9E&quot; aria-label=&quot;apple human interface guidelines英語 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://developer.apple.com/design/human-interface-guidelines/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Apple Human Interface Guidelines(英語)&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;アップル製品をデザインする際のデバイスごとの最新のガイドラインです。英語ですが、Chromeの自動翻訳を使えば問題なく読めます。&lt;/p&gt;
&lt;p&gt;実は最新のドキュメントよりも、初期のヒューマンインターフェースガイドラインのほうが、文量が少なく読みやすいです。かろでん☆みゅーあさんが保管されています。 &lt;a href=&quot;http://potting.syuriken.jp/potting_conv/XHIG_J/XHIGIntro/chapter_1.html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;アップル ヒューマンインターフェースガイド&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id=&quot;microsoft-windowsアプリuxデザインガイドライン日本語pdf&quot;&gt;&lt;a href=&quot;#microsoft-windows%E3%82%A2%E3%83%97%E3%83%AAux%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%82%AC%E3%82%A4%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3%E6%97%A5%E6%9C%AC%E8%AA%9Epdf&quot; aria-label=&quot;microsoft windowsアプリuxデザインガイドライン日本語pdf permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://msdn.microsoft.com/ja-jp/mt634411.aspx&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Microsoft WindowsアプリUXデザインガイドライン(日本語PDF)&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Microsoftのデザインガイドラインです。&lt;br&gt;
特に37ページの&quot;デザイナー向けユニバーサル Windows プラットフォーム (UWP) アプリの概要&quot;の章にデザインに関する記述がまとめられています。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://docs.microsoft.com/ja-jp/windows/uwp/design/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;開発者用デザインガイドライン&lt;/a&gt;はWebで公開されています。内容はPDF版と少し重複していますが、一部デザインに関する内容の除外とコーディングに関する記述が追加されています。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;こちらも、Windows7時代のUXデザインガイドラインがおすすめです &lt;a href=&quot;http://download.microsoft.com/download/3/E/0/3E06B0BA-938B-4D06-B3A8-CA9F92F01168/UXGuideJp.pdf&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Windows ユーザーエクスペリエンスガイドライン&lt;/a&gt;。最新のものは抽象的でボリュームも少ないですが、デザインに関する細かいコンセプトが多く記載されており勉強になります。&lt;br&gt;
特に645ページのレイアウトに関する記述を見て、僕がデザインしていた当時(2010年ごろ)、要素をどこにおけばいいのかということが少しわかりました。&lt;/p&gt;
&lt;h2 id=&quot;google-material-design英語&quot;&gt;&lt;a href=&quot;#google-material-design%E8%8B%B1%E8%AA%9E&quot; aria-label=&quot;google material design英語 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;&lt;a href=&quot;https://material.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Google Material Design(英語)&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Googleが提案しているマテリアルデザインのガイドラインサイトです&lt;br&gt;&lt;/p&gt;
&lt;p&gt;AppleやMicrosoftと比較すると、よりコンセプチュアルになっています。こちらは勉強するというよりは、非常によく考えられたデザインの設計書を読むという感じです。UIをマテリアル(素材)と考え、物質的に捉えます。それがどんな薄さなのか、影を落とすのか、といった内容です。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;AppleやWindowsと異なり、面白いなと思うのは、&lt;a href=&quot;https://material.io/tools/gallery/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Gallery&lt;/a&gt;というデザインコミュニケーションツールを公開していたり、&lt;a href=&quot;https://material.io/tools/devices/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Device Metrics&lt;/a&gt;というデバイスの情報一覧ページを作っていたり、&lt;a href=&quot;https://material.io/design/sound/about-sound.html#principles&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;音に関するガイドを体験できたり&lt;/a&gt;するところです。&lt;br&gt;
ガイドライン自体もかっこよくレイアウトされており、絵と文章のバランスが絶妙で見ていて楽しいです。やはりWebで一気に世界に名を馳せらせたGoogleらしいアプローチですね。&lt;br&gt;&lt;/p&gt;
&lt;h2 id=&quot;その他のガイドラインについて&quot;&gt;&lt;a href=&quot;#%E3%81%9D%E3%81%AE%E4%BB%96%E3%81%AE%E3%82%AC%E3%82%A4%E3%83%89%E3%83%A9%E3%82%A4%E3%83%B3%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6&quot; aria-label=&quot;その他のガイドラインについて permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;その他のガイドラインについて&lt;/h2&gt;
&lt;p&gt;デザインの勉強となる情報として、続けて紹介するとボリュームがとても多くなるので、別記事で紹介します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;BtoB向けのUIフレームワークにもデザインガイドライン&lt;/li&gt;
&lt;li&gt;ユーザビリティに関する研究や論文&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title><![CDATA[人生のパートナーとなるテキストエディタSpacemacs!]]></title><link>https://www.bauhausify.com/2019-07-06_人生のパートナーとなるテキストエディタspacemacs/</link><guid isPermaLink="false">https://www.bauhausify.com/2019-07-06_人生のパートナーとなるテキストエディタspacemacs/</guid><pubDate>Sat, 06 Jul 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;普段よく書く言語が、HTML, CSS, JavaScriptなどの場合、ライトウェイトなテキストエディタが非常に重宝します。&lt;br&gt;
主観ですが、ここ近年の私の界隈での人気のエディタは、&lt;a href=&quot;https://www.sublimetext.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Sublime Text&lt;/a&gt;, &lt;a href=&quot;https://atom.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Atom&lt;/a&gt;, &lt;a href=&quot;https://code.visualstudio.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;VSCode[VisualStudioCode]&lt;/a&gt;と遷移してるように感じます。今はVSCodeで収まっているのかなという印象です。しかし、それでもやはりSpacemacsはいいと思います。この記事ではその魅力をご紹介したいと思います。&lt;/p&gt;
&lt;h2 id=&quot;spacemacsとは&quot;&gt;&lt;a href=&quot;#spacemacs%E3%81%A8%E3%81%AF&quot; aria-label=&quot;spacemacsとは permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;Spacemacsとは&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;http://spacemacs.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Spacemacs&lt;/a&gt;とは、&lt;a href=&quot;https://www.gnu.org/software/emacs/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Emacs(GNU Emacs)&lt;/a&gt;というエディタの拡張機能セットです。&lt;br&gt;
EmacsはLisp(Emacs Lisp)という言語でエディタ自体を自分で拡張することも、他の人が書いた拡張機能を自分のエディタに設定することもできます。&lt;br&gt;
しかし、いざ設定してみると、うまく動かなかったり、時間がかかったり、使いづらいショートカットキーになったります。&lt;br&gt;
そこで、みんなのベスト機能を選別して、さらに使いやすくチューンナップしてあげよう！といったのがSpacemacsになります。&lt;/p&gt;
&lt;p&gt;このエディタを使うメリットはたくさんあります。&lt;/p&gt;
&lt;h3 id=&quot;メリット&quot;&gt;&lt;a href=&quot;#%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88&quot; aria-label=&quot;メリット permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;メリット&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;無料。無料に勝るものはないです&lt;/li&gt;
&lt;li&gt;かっこいい。無駄なUIが無いので玄人プログラマー感がでます。マウスを一切使わないので、手がキーボードから離れることがなく効率がいいです。&lt;/li&gt;
&lt;li&gt;高機能。IDEと言われるようなIntellijIDEAとかXcodeとかVisualStudioに勝る機能がたくさんあります。&lt;/li&gt;
&lt;li&gt;org-modeがすばらしい。Markdownに似ているorgというドキュメント形式があるのですが、そのためだけに使うでも価値があります&lt;/li&gt;
&lt;li&gt;Mac標準でemacsのキーに対応している。これはMac開発者にemacsユーザーが多いかららしいです&lt;/li&gt;
&lt;li&gt;有名な人が使っていたりします。Rubyの作者の松本さんも使われているそうです。個人的にはアート界隈で尊敬しているJosh Nimoy さんが使っているのに注目しています。映画 Tron: Legacy のかっこいい3D部分の原型をコーディングして作った人です。&lt;a href=&quot;http://www.talisman.org/~erlkonig/misc/tron-legacy-effects-blog/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;http://www.talisman.org/~erlkonig/misc/tron-legacy-effects-blog/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;デメリットは特殊なキーバインド&quot;&gt;&lt;a href=&quot;#%E3%83%87%E3%83%A1%E3%83%AA%E3%83%83%E3%83%88%E3%81%AF%E7%89%B9%E6%AE%8A%E3%81%AA%E3%82%AD%E3%83%BC%E3%83%90%E3%82%A4%E3%83%B3%E3%83%89&quot; aria-label=&quot;デメリットは特殊なキーバインド permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;デメリットは特殊なキーバインド？&lt;/h3&gt;
&lt;p&gt;もちろんデメリットもあります。それは特殊なショートカットキーです。&lt;br&gt;
Ctrl + Y で貼り付け, Ctrl + W で切り取りといった具合です。一旦覚えると非常に早くコードがかけるのですが、他のソフトを触った時にご作動が多発します。&lt;br&gt;
正直これはなれるしかないです、、、ただなれた先には爆速コーディングがまっています。&lt;/p&gt;
&lt;h2 id=&quot;インストールしてみよう&quot;&gt;&lt;a href=&quot;#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86&quot; aria-label=&quot;インストールしてみよう permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;インストールしてみよう&lt;/h2&gt;
&lt;h3 id=&quot;前提条件&quot;&gt;&lt;a href=&quot;#%E5%89%8D%E6%8F%90%E6%9D%A1%E4%BB%B6&quot; aria-label=&quot;前提条件 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;前提条件&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Mac向けです。Windowsでも動きます。この記事はMac向けです。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://brew.sh/index_ja.html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;homebrew&lt;/a&gt;の事前インストールをお願いします。&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://git-scm.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;git&lt;/a&gt;Spacemacsの設定を管理するのに必要です。もしhomebrewがインストールされているなら、ターミナルで &lt;code class=&quot;language-text&quot;&gt;brew install git&lt;/code&gt;を実行してください。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;emacsのインストール&quot;&gt;&lt;a href=&quot;#emacs%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&quot; aria-label=&quot;emacsのインストール permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;Emacsのインストール&lt;/h3&gt;
&lt;p&gt;まずはhomebrewからGUI版のEmacsをインストールします。すでにインストールされているなら不要です。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;sh&quot;&gt;&lt;pre class=&quot;language-sh&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;brew &lt;span class=&quot;token function&quot;&gt;install&lt;/span&gt; emacs-plus&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;他のアプリケーションと同じように起動できるようにシンボリックリンクを作っておきましょう。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;sh&quot;&gt;&lt;pre class=&quot;language-sh&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;span class=&quot;token function&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-s&lt;/span&gt; /usr/local/opt/emacs-plus/Emacs.app /Applications/Emacs.app&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 id=&quot;spacemacsの設定のインストール&quot;&gt;&lt;a href=&quot;#spacemacs%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB&quot; aria-label=&quot;spacemacsの設定のインストール permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;Spacemacsの設定のインストール&lt;/h3&gt;
&lt;p&gt;Spacemacsのメインとなる設定を適用していきます。&lt;br&gt;
もし、すでにemacsを起動していたら既存の設定を退避するか、削除してください。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;sh&quot;&gt;&lt;pre class=&quot;language-sh&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;span class=&quot;token builtin class-name&quot;&gt;cd&lt;/span&gt; ~/

&lt;span class=&quot;token comment&quot;&gt;# .emacs.d.bakというフォルダに既存の設定を退避します。&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;mv&lt;/span&gt; .emacs.d .emacs.d.bak

&lt;span class=&quot;token comment&quot;&gt;# 既存の設定を削除します。&lt;/span&gt;
&lt;span class=&quot;token function&quot;&gt;rm&lt;/span&gt; &lt;span class=&quot;token parameter variable&quot;&gt;-rf&lt;/span&gt; .emacs.d&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;次にSpacemacs本体を落とします。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;sh&quot;&gt;&lt;pre class=&quot;language-sh&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;span class=&quot;token function&quot;&gt;git&lt;/span&gt; clone https://github.com/syl20bnr/spacemacs ~/.emacs.d&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;この状態でEmacsを起動するとSpacemacsとして起動できます。&lt;/p&gt;
&lt;h2 id=&quot;初期設定を変更してみよう&quot;&gt;&lt;a href=&quot;#%E5%88%9D%E6%9C%9F%E8%A8%AD%E5%AE%9A%E3%82%92%E5%A4%89%E6%9B%B4%E3%81%97%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86&quot; aria-label=&quot;初期設定を変更してみよう permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;初期設定を変更してみよう&lt;/h2&gt;
&lt;p&gt;一度Spacemacsを起動するとホームフォルダ以下に.spacemacsというファイルが生成されます。&lt;br&gt;
このファイルがSpacemacsの命です!&lt;br&gt;&lt;/p&gt;
&lt;p&gt;ファイルを開いて中身を確認しましょう。
場所がわからない人は、以下のコマンドをターミナルで実行すると開きます。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;sh&quot;&gt;&lt;pre class=&quot;language-sh&quot;&gt;&lt;code class=&quot;language-sh&quot;&gt;&lt;span class=&quot;token function&quot;&gt;open&lt;/span&gt; ~/.spacemacs&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;このファイルの大事な箇所は以下です。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;lisp&quot;&gt;&lt;pre class=&quot;language-lisp&quot;&gt;&lt;code class=&quot;language-lisp&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token defun&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;defun&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;dotspacemacs/layers&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token arguments&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token car&quot;&gt;setq-default&lt;/span&gt;
   dotspacemacs-configuration-layers
   &lt;span class=&quot;token punctuation&quot;&gt;&apos;(&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;;; ここにSpacemacsでデフォルトで用意されているパッケージを追加します。&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;;; 例えばjavascriptを追加すると&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;;; https://github.com/syl20bnr/spacemacs/tree/master/layers/%2Blang/javascript&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;;; にかかれている設定が適用されます。&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;;; 設定可能なパッケージ(レイヤーと呼びます)は&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;;; https://github.com/syl20bnr/spacemacs/tree/master/layers&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;;; で確認してください。&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
    dotspacemacs-additional-packages
    &lt;span class=&quot;token punctuation&quot;&gt;&apos;(&lt;/span&gt;
    &lt;span class=&quot;token comment&quot;&gt;;; ここではelpa(パッケージレジストリ)に公開されているような他の外部パッケージを読み込ませたい場合はここに設定します。&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token defun&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;defun&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;dotspacemacs/init&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token arguments&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token car&quot;&gt;setq-default&lt;/span&gt;
   &lt;span class=&quot;token comment&quot;&gt;;; ここでspacemacsで用意されている初期設定を変更できます。フォントサイズやテーマの設定など、基本的な部分です。&lt;/span&gt;
  &lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;

&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token defun&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;defun&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;dotspacemacs/user-config&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token arguments&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
   &lt;span class=&quot;token comment&quot;&gt;;; このエリアに自分だけの設定を書いていきます。&lt;/span&gt;
   &lt;span class=&quot;token comment&quot;&gt;;; 各モード時の設定変更やキー設定など、ここですべてカスタマイズしていきます。&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;実際に自分で好きなパッケージをインストールして自分好みにカスタマイズしていきましょう。&lt;br&gt;
この部分が一番の醍醐味で、このエディタの楽しいところです。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;参考までに私のインストールしているパッケージを載せておきます。&lt;br&gt;
普段フロントエンドでマークアップやJS書いているタイプの人に向いています。
ここにかかれているパッケージの内容はすべて&lt;code class=&quot;language-text&quot;&gt;~/.emacs.d/layers&lt;/code&gt;に保存されているものです。&lt;br&gt;
&lt;a href=&quot;https://github.com/syl20bnr/spacemacs/tree/master/layers&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://github.com/syl20bnr/spacemacs/tree/master/layers&lt;/a&gt;&lt;br&gt;
を眺めて、自分に合うパッケージがあったらどんどん試してみましょう。&lt;br&gt;
一つ一つが厳選されているので、自分に合うものがあれば絶対に役立つはずです。&lt;/p&gt;
&lt;div class=&quot;gatsby-code-title gatsby-remark-code-titles&quot;&gt;dotspacemacs-configuration-layers内のパッケージ&lt;/div&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;lisp&quot;&gt;&lt;pre class=&quot;language-lisp&quot;&gt;&lt;code class=&quot;language-lisp&quot;&gt;csv
php
yaml
git
github
colors
better-defaults
helm
emacs-lisp
markdown
org
osx
html
javascript
react
typescript
cscope
&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token car&quot;&gt;gtags&lt;/span&gt; &lt;span class=&quot;token lisp-property property&quot;&gt;:variables&lt;/span&gt; gtags-enable-by-default &lt;span class=&quot;token boolean&quot;&gt;t&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
spell-checking
syntax-checking
emoji
dash
ruby
wakatime
python
ipython-notebook
haskell
shaders
docker
csharp
imenu-list
rust
version-control
plantuml
&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token car&quot;&gt;shell&lt;/span&gt; &lt;span class=&quot;token lisp-property property&quot;&gt;:variables&lt;/span&gt;
       shell-default-shell &lt;span class=&quot;token quoted-symbol variable symbol&quot;&gt;&apos;shell&lt;/span&gt;
       shell-default-term-shell &lt;span class=&quot;token string&quot;&gt;&quot;/usr/local/bin/zsh&quot;&lt;/span&gt;
       shell-default-height &lt;span class=&quot;token number&quot;&gt;30&lt;/span&gt;
       shell-default-position &lt;span class=&quot;token quoted-symbol variable symbol&quot;&gt;&apos;bottom&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token car&quot;&gt;auto-completion&lt;/span&gt; &lt;span class=&quot;token lisp-property property&quot;&gt;:variables&lt;/span&gt;
                 auto-completion-enable-help-tooltip &lt;span class=&quot;token boolean&quot;&gt;t&lt;/span&gt;
                 auto-completion-complete-with-key-sequence-delay &lt;span class=&quot;token number&quot;&gt;0.2&lt;/span&gt;
                 auto-completion-enable-snippets-in-popup &lt;span class=&quot;token boolean&quot;&gt;t&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Spacemacs以外のパッケージでは以下を導入しています。&lt;/p&gt;
&lt;div class=&quot;gatsby-code-title gatsby-remark-code-titles&quot;&gt;dotspacemacs-additional-packages内のパッケージ&lt;/div&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;lisp&quot;&gt;&lt;pre class=&quot;language-lisp&quot;&gt;&lt;code class=&quot;language-lisp&quot;&gt;bind-key
quickrun
all-the-icons
all-the-icons-dired
editorconfig
processing-mode
scad-mode
helm-chrome
vue-mode
confluence
dotnet
indium
import-js&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id=&quot;おすすめのキー練習方法&quot;&gt;&lt;a href=&quot;#%E3%81%8A%E3%81%99%E3%81%99%E3%82%81%E3%81%AE%E3%82%AD%E3%83%BC%E7%B7%B4%E7%BF%92%E6%96%B9%E6%B3%95&quot; aria-label=&quot;おすすめのキー練習方法 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;おすすめのキー練習方法&lt;/h2&gt;
&lt;p&gt;とは言え、このエディタはまずはキーバインドが特殊すぎて毛嫌いする人もいるかと思います。&lt;br&gt;
僕もこれで習得したのですが、まずは公式のチュートリアルをおすすめします。&lt;br&gt;
あとは、ちょっとしたメモ書きからemacsなどで徐々に書いていき、業務では余裕があるときに導入していきましょう&lt;br&gt;&lt;/p&gt;
&lt;p&gt;公式のチュートリアルはEmacsを起動したあとに、&lt;br&gt;
&lt;code class=&quot;language-text&quot;&gt;optionキー(メターキーをcommandにしていたらcommandキー) + x&lt;/code&gt;をおして&lt;br&gt;
&lt;code class=&quot;language-text&quot;&gt;help-with-tutorial-spec-language&lt;/code&gt;を選択してください。&lt;br&gt;
次に&lt;code class=&quot;language-text&quot;&gt;Japanese&lt;/code&gt;を選択します。&lt;br&gt;
すると日本語のEmacsチュートリアルが始まります。&lt;/p&gt;
&lt;h3 id=&quot;意外と大事なモチベーションあげる&quot;&gt;&lt;a href=&quot;#%E6%84%8F%E5%A4%96%E3%81%A8%E5%A4%A7%E4%BA%8B%E3%81%AA%E3%83%A2%E3%83%81%E3%83%99%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%82%E3%81%92%E3%82%8B&quot; aria-label=&quot;意外と大事なモチベーションあげる permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;意外と大事なモチベーションあげる&lt;/h3&gt;
&lt;p&gt;私はよく動画とかみて憧れて、こんな風になりたいという動機をバネに勉強したりします。
バーチャルな世界観がかっこいいTRON: LegacyのワンシーンでEmacsが使われているのはご存知ですか？&lt;/p&gt;
&lt;p&gt;&lt;iframe src=&quot;https://player.vimeo.com/video/62734435?app_id=122963&quot; width=&quot;426&quot; height=&quot;240&quot; frameborder=&quot;0&quot; allow=&quot;autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; title=&quot;TRON: Legacy - &amp;quot;Board Room&amp;quot; Process Trontage&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;00:42あたりの画面は完全にemacsですね。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;みなさんも、ぜひ自分ならではのEmacsの良さを見つけて楽しくコーディングをしていきましょう&lt;img class=&quot;emoji-icon&quot; alt=&quot;emoji-smile&quot; data-icon=&quot;emoji-smile&quot; style=&quot;&quot; src=&quot;data:image/png;base64, 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&quot; title=&quot;emoji-smile&quot; /&gt;&lt;/p&gt;</content:encoded></item><item><title><![CDATA[Webで簡単にコードで絵を描くp5.js]]></title><link>https://www.bauhausify.com/2019-07-03_Webで簡単にコードで絵を描くp5-js/</link><guid isPermaLink="false">https://www.bauhausify.com/2019-07-03_Webで簡単にコードで絵を描くp5-js/</guid><pubDate>Wed, 03 Jul 2019 14:15:51 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://codepen.io/mwrote/pen/YovGdY?defaultTab=result&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&lt;div class=&quot;embed-codepen&quot;&gt;&lt;iframe
        height=&apos;400&apos;
        scrolling=&apos;no&apos;
        src=&apos;//codepen.io/mwrote/embed/preview/YovGdY/?height=400&amp;theme-id=light&amp;default-tab=result&apos;
        frameborder=&apos;no&apos;
        allowtransparency=&apos;true&apos;
        allowfullscreen=&apos;true&apos;
        style=&apos;width: 100%;&apos;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;材料の紹介&quot;&gt;&lt;a href=&quot;#%E6%9D%90%E6%96%99%E3%81%AE%E7%B4%B9%E4%BB%8B&quot; aria-label=&quot;材料の紹介 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;材料の紹介&lt;/h2&gt;
&lt;p&gt;こちらの材料を使ってコードで絵を描きたいと思います。&lt;br&gt;
&lt;img class=&quot;emoji-icon&quot; alt=&quot;emoji-point_up_2&quot; data-icon=&quot;emoji-point_up_2&quot; style=&quot;&quot; src=&quot;data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAMNElEQVR4Xu2aWYwcx3nH/3V0dffcs7uzJHe5IpdcUrJkWQgowoYSCz4gOwIixTEM0A+2lIfYghUIcBDbUmhEguQL9mOCIEAeAsfOYcuwAT8IcBI+JJIFJ6J1UhRDcnkee85ec3XP9FH+prrHA41AEzAkz+5GBfymuga7D9+//l91f18PhjXe5V3eZfvz5x++9bYv3XenfuIzH9VPPPhx/dUjd+tH7rn1G9hEg+MdHHZW/TA3VkF51wRGd04gXxlHrlA++vlDE5n/FwJIad9WGa+gMj5GjKJSGUW2VII9Vn7vthfgsU+8/1A+n0OpkEe5XESpUkapmEehkIXFrTu2vQDV1bXbMhkHuayLTI7I2sg4CbEQt2x7AZxifsISHLayoOwuCrbBgeTipm0vQLY4OioYg5QCgpvZICQH4mgnALGdBeCh1xgRQoAxBs45uAAYfQhaW0qVtr0AHCzPpQBnnGAAukIQQkBK7vTEHzYS78xgDNAMDGDauAAE4zBuEFy4ANh2dgDT0NrYn3EYHQgOloqB7S+A4LyYWIG9yRe0hOB82wtAMAXOkt03s0kIs+aMbX8HBEG0zHu7r3sG4EgSQettXwvooM0ZT/Ttuz3uKcG2fQoIIQwMHIkRWPpMQNC87R3ABdeMcZP/vf2mKwjOjTDb3gGukqOW4MbtPTitJaEkR6EAuS0EeOpP7zv82Kfuevirn/7QnW8+BX1bOQpGBJ5YXwoBJS3YlsCdo6X8lhbgS5/9WPapz93/GrP5C4XKjr+zbev40T859AukQ3EWOZaEEJwQxvpScigljAN4JqO3rAB/9cBHR7OcNajhcfvk1BT2Tu/F/pn92DVS/sDX/+j20wCY66qmrSxYUvUFEBJZ20ZWSXzy7t976LtHH/j+tx74SPOvP/n+ta/88eEfPHLvTGFL1AJhrfFigfp8Y+MVFCojyCgJ1vKQ1R2IdvPg4x878GeO7VQz2YzZcSEFtOCQtgXbdVAsFuEWcFSN7kA2Y8Pz25lWs3lkbUEd+dqRynFIdbjtt9HyvAtBEH73b//z5FObygFx0BEZCiSbdVEoZYgcSsUcRsZKGCPGc/bRYiE3mcsXIJSVpIERQMFxbBRHyxjbtQvjlQp2Tu7C1NQk9u6bxszBGezfv+/wgVsO4sAtBzCzf3p6967xJx+99/bTj3xoZvdf/uEdf/Dw3funhi4AtzM/C70WJNNQXMDNkK0psFzGJSGKNDvF0sjImNN1AH3PBAdnGlwKWMpCvlhCqVREvpAx88hICRVy0sRNE5jaM4XJiZ2YnNyJPdM3YebAPuzbt+fgxI7KFRL6OctxLz/0wX0/wtsxfsumhNo5UtioZOSDlAIURB6Oa8NGDBZFCFtNeLVVMTK1d60ysbvCXQUtE52VtCBiALGGnXWglIKSIpktC3YX1yZBXTgqXTsOMiQwpZMRjtbwWv6t7xmRwcvX6s8N4wzgP3n+5LmbdxSXayurlZHREcCxoTkzO6wcBWqG8mK5uEfStVYSEdNgxmwxuGPDoSBYxgE0N4ejjmOAWQiFQKwjaMYQKkkCSIQOBa8EXNeB34khSZTA90kE7xsAvjmMFIiJ6Eoj+M7K4gLo8ILvtxFFGuAcllKQkoK07axw3aQA0oxmMwGKQVAwnALheZvIQtDuSs5hOQqWcYWEo4yQtPMucoUsCvkCQS6gvy+XCsjnXDx4aGr/MBwQEP4//8fxZ6Y/ddfX15ardi6XhS0YZKxN3892FAQFKCRDqAEWE6xfAyLjJNIzDQgGcAkNB8L3wS2BOEq7SFpDKg4OWmtuXJZ1SZRcpnvOYFHHhwCc+92eAX3n2DMTlThn6d8vlEqwLAmOGHEQIGx6KE/shioVjf31QOlnGqSsXyaDpWYMw75IBEt7CJz3ymqNKAzhN33U12uYX1l/6cR87efD6Am2idY/Hnvpe0+U7/ryyuISzFNf1jY7Jx27t7uI4zcXwyZunVxrQqZrcAYIAUYCgrE+aUnNrRi8I8CEgFAc0hKQjO0ZVlM0JLwuF9a8b+cvX340T/lpsTxspsFtF3EUAUEMLhhCaLBe8EQ00CUAS7EUjGJag3GWOEeL1HICQhIiRXbhe1I3xsMohjyi9b1jL//L6tq6X51fQKPRRKcdAIybPI6R2H9w6L4jDD17Q3JCgmmdHpzCCMN+3Vfg4ITgMu0us357fQgCBESL8M7WoicXrlxDba0Gz+8gjGOEQQjovu1B6AFYf04G14BlAcJKM4CBcwHGQQiCgZnqkgPJGcmHKQBSAZo/+q9Xn1lttK6uVJdJAJ8EiBCGUXp/v/E9leirIRigLCOEEUbH4KkTNOcDXWZg2AIERJNovXpt/fH1tTWTBu1OSAKQE2hmGtdNg0EXpBEDFgeUStKhGzRSBxgrMMQ6US2OYmOw4QnQd0Hj2IkrL9TrLTQbDRIgQCcMocMAbCD6/rKf/7p/3RdBMMBxDJpxMMQm8ASNIArRjvTSZmiJhUYEYsMPXllf34Dn+Wj7HQTkgBgx9HW64D3X9x0xKAJhCcBWiFOFolgjouCDdkBCd84PVYDBO8JyM/jp+nqN0sBDq0Wp0GgBgZGgL8KAC3QfRIPpYGYNLU0SmDMlJkIK3mu30ehEJwDozSBASPhP/8/sv66uN7CyUsVadRXrq6sIWh3EsbEtzfo3pgLrCTHwjKA1S77XQKcTwPe9bkWIF+fqvxy+AH06RLvabP94YWkViwuLWJq7itbKunFBEHZzmIj1DVJhwA0agEjvFlFkHoWb5KyNWmNuudauA4g2iwCBccHL155cXKvXrlydx9XzF7B87RratYaxb9gX4fqpMLAOe4/ODAiCCL7noVHbwMJG659S50VDKIauWyZLwj6x0Hh6T9m5I/a9ScsSyOZKUI4DWDK9pbFetdPP+UEBkA7OwCKNTt1Dq9FAdX4Oc5eu4O+fnf0cgBrhb6YXIx7RILx/e3n+i+dWGj+4MHse85cvolVdB/zAhMvNJ8w8WBSKRBdIQtCFpRl0w0cU+Oh0ew8bNVxbWv1JWpAFm+0XIh2iTijTOXpt8W+UlCx/5syRXKkEKThyURE870Iq0Q2wH/zAqaiN/2PoTgAddBCHEcJOG+1mHaHvfzDd+c4weoI3FqHvYP76fP2l6bw1XnStm0kEWIzBigAea/AoTjI4iABzrRPCVIEwBIuj5PT3PdTXVrE8P4+W72czjP/7+TVvdrP+RqhGxCn6H54/902hg/yO3ZMfzmYcdJQEFxxCcjDBAMbTnY8TQiK1QdwlCk2jBUwjWyyjkK9hNN+4H8CxTSqAoUFo9BbteANCIIqSthknIZBToJUpmyVgPo1krJPsTRACUWQOTWnbcHNFZIp1ZPI5KEsc2Ly/EuvT7J13B2du+gRY0tGB6xAWAJgdZun9jEMnZnBV8m8yeeNEn5BKQdoOlOMSNEurDIAN/0HoxjTvuXls3MnlTbprzdIbO0ETH+wOaaMKEfcKIjAkfQEhJYSyIC3V+62hJLDZBdBlV46Dc4pJJ33/NOJefcBSMAhLukRaWQAHwQEmCIYY3AMgtoIA4JrZQadbHQaIwghxu43Y9Ms5tImeETD01wm6VwGGMUJDiCAIujXBCgC22c8AQ5uxRn1jAw2iWSyYFx5CSOisAy4lGEt3tze0JmJze9REEITw/DZazQbq9SaajSa8MDy1ZQQ4fnrujV2lLKqLS3AdBcFgdtJuKPOqS3Bjg74fTfxJHyGmuUPuqdfqWKmuYHV5iarNNaw1268C0FshBdhVD351vf7fc1ev4sr5i7h26RIWrlzFwvwClojF+UUskzjVxWrC0jKtuyxhYW6e/rb7/H8Z8xcJKrLWN2p44eLKLwDEW+IQ7PL0KwtfmFtc/d9z5y/jzBuncObESZw7+QbO/99pXDx7FhdnZ4lzyXx2FpdovnDmLC6cPoPZU6cImmcvYG6pijOL9b/YoIx4OwRg+N2MPDFOjEyPuHvfsyP78bwt31fMutOuEmNSCHDODb3yMI4j89AURBFaXru60eq8vtTyn3/23MYzANaJJWKV0FtBAEWMEmUiR1gEN9x4I/RAe8BLBVgmmlviECQ6RI1gaRC9hxhxAxF0OkcpnTToWioEtkYK9LEJl3DSa0nw6zwLDXbIgt5L2TT4aOsJ0EcOOOBGKRCnzgnM9ds4fgXNyBh5LpJsCAAAAABJRU5ErkJggg==&quot; title=&quot;emoji-point_up_2&quot; /&gt;のRunPenボタンを押すとどんなことができるか確認できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://codepen.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Codepen&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://p5js.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;p5.js&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;codepen&quot;&gt;&lt;a href=&quot;#codepen&quot; aria-label=&quot;codepen permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;Codepen&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://codepen.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Codepen&lt;/a&gt;は、Webブラウザ上で動くコーディング環境です。Webブラウザさえあれば、いつでも簡単にコードを書き始めることができます。&lt;br&gt;
公開された作品に&lt;img class=&quot;emoji-icon&quot; alt=&quot;emoji-heart&quot; data-icon=&quot;emoji-heart&quot; style=&quot;&quot; src=&quot;data:image/png;base64, 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&quot; title=&quot;emoji-heart&quot; /&gt;をつけることができ、自分の好きな作品をストックしたり面白い作品を簡単に見つけることができます。&lt;/p&gt;
&lt;h3 id=&quot;p5js&quot;&gt;&lt;a href=&quot;#p5js&quot; aria-label=&quot;p5js permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;p5.js&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://p5js.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;p5.js&lt;/a&gt;は、クリエイティブコーディング界隈では老舗の&lt;a href=&quot;https://processing.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Processing&lt;/a&gt;というJavaのライブラリをJavaScriptに移植したものです。&lt;br&gt;非常にわかりやすく、簡単に扱える関数がたくさん用意されています。&lt;/p&gt;
&lt;p&gt;YouTubeで様々な公式チュートリアル動画を見ることができます。英語ですが、YouTubeの自動翻訳機能で日本語字幕で見ることができます。&lt;/p&gt;
&lt;p&gt;&lt;iframe width=&quot;200&quot; height=&quot;113&quot; src=&quot;https://www.youtube.com/embed/8j0UDiN7my4?feature=oembed&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen title=&quot;1.1: Introduction - p5.js Tutorial&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;h2 id=&quot;コードを書く準備&quot;&gt;&lt;a href=&quot;#%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E6%9B%B8%E3%81%8F%E6%BA%96%E5%82%99&quot; aria-label=&quot;コードを書く準備 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;コードを書く準備&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&quot;https://codepen.io&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Codepen&lt;/a&gt; のサイトを開き、左上のCREATE &gt; Pen を選択します。コーディング環境が開きます。&lt;/li&gt;
&lt;li&gt;p5.jsのライブラリを追加します。右上の歯車アイコン &gt; JavaScript を選択しJavaScriptの設定ポップアップを表示します。&lt;/li&gt;
&lt;li&gt;&lt;code class=&quot;language-text&quot;&gt;Search CDNjs&lt;/code&gt;と書かれている検索ボックスで、&lt;code class=&quot;language-text&quot;&gt;p5.js&lt;/code&gt;と入力しましょう。候補で表示されたp5.jsを選択し、下のボックスにp5.jsのURLが追加されればOKです。右上の&lt;code class=&quot;language-text&quot;&gt;Save &amp;amp; Close&lt;/code&gt;でポップアップを閉じましょう。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;スケッチを描きはじめよう&quot;&gt;&lt;a href=&quot;#%E3%82%B9%E3%82%B1%E3%83%83%E3%83%81%E3%82%92%E6%8F%8F%E3%81%8D%E3%81%AF%E3%81%98%E3%82%81%E3%82%88%E3%81%86&quot; aria-label=&quot;スケッチを描きはじめよう permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;スケッチを描きはじめよう&lt;/h2&gt;
&lt;p&gt;JSテキストエリアに以下のコードを書きましょう。&lt;br&gt;
Processingは基本的にはこの2つの関数で構成されます。非常にシンプルですね。&lt;br&gt;
setup関数は、はじめに１回だけ呼ばれる初期化関数です。1回だけの処理で十分なものや、変数の準備などはすべてここで行います。&lt;br&gt;
draw関数は、毎フレーム呼ばれる描画関数です。作品の主軸となる箇所です。&lt;br&gt;
たったこの２つの関数で様々なことが行なえます。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;setup&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;

&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;draw&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;

&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;ためしに100px x 100pxのキャンバスを作成して、
キャンバス中央に円を描きたいと思います。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;setup&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token comment&quot;&gt;// キャンバスを作成します。&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;createCanvas&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;draw&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token comment&quot;&gt;// 円を描く関数です。引数には(x座標, y座標, 直径)を指定してます&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;ellipse&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;width&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; height&lt;span class=&quot;token operator&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;たったこれだけのコードで円を描くことができます。&lt;/p&gt;
&lt;p&gt;では次にマウスに追従させましょう。&lt;/p&gt;
&lt;div class=&quot;gatsby-highlight&quot; data-language=&quot;js&quot;&gt;&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;draw&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;token function&quot;&gt;ellipse&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;mouseX&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; mouseY&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;標準で用意されている、mouseXとmouseY変数を使うだけで簡単にマウス座標を扱うことができます。&lt;br&gt;
他にも&lt;a href=&quot;https://p5js.org/reference/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;公式ドキュメント&lt;/a&gt;に様々な変数や関数が用意されています。&lt;br&gt;
英語ですが、サンプルコードでわかりやすく説明されており、Chromeブラウザなら日本語に翻訳できます。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://codepen.io/mwrote/pen/YovGdY&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;冒頭のCodepenのサンプル&lt;/a&gt;にも簡単な説明を書いています。よかったら見てみてください&lt;img class=&quot;emoji-icon&quot; alt=&quot;emoji-thumbsup&quot; data-icon=&quot;emoji-thumbsup&quot; style=&quot;&quot; src=&quot;data:image/png;base64, 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&quot; title=&quot;emoji-thumbsup&quot; /&gt;&lt;/p&gt;</content:encoded></item><item><title><![CDATA[このブログについて]]></title><link>https://www.bauhausify.com/2019-07-01_このブログについて/</link><guid isPermaLink="false">https://www.bauhausify.com/2019-07-01_このブログについて/</guid><pubDate>Mon, 01 Jul 2019 00:00:00 GMT</pubDate><content:encoded>&lt;h2 id=&quot;このブログで書いていくこと&quot;&gt;&lt;a href=&quot;#%E3%81%93%E3%81%AE%E3%83%96%E3%83%AD%E3%82%B0%E3%81%A7%E6%9B%B8%E3%81%84%E3%81%A6%E3%81%84%E3%81%8F%E3%81%93%E3%81%A8&quot; aria-label=&quot;このブログで書いていくこと permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;このブログで書いていくこと&lt;/h2&gt;
&lt;p&gt;私、エムロート(Mwrote)は多摩美術大学のプロダクトデザイン学科でデザインを学び、その後GUI(グラフィックユーザーインターフェース)デザイン会社で数多くのデザインを経験しました。&lt;br&gt;
現在は、物創りのより深いところを探ろうと、フロントエンドエンジニアとして、デジタルなモノを作り続けています。&lt;br&gt;
そんな日々の中で思うことや、便利だなと思ったツールをこのブログで紹介していきたいと思います。&lt;/p&gt;
&lt;h2 id=&quot;このブログの由来&quot;&gt;&lt;a href=&quot;#%E3%81%93%E3%81%AE%E3%83%96%E3%83%AD%E3%82%B0%E3%81%AE%E7%94%B1%E6%9D%A5&quot; aria-label=&quot;このブログの由来 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;このブログの由来&lt;/h2&gt;
&lt;h3 id=&quot;語源となるのはバウハウス&quot;&gt;&lt;a href=&quot;#%E8%AA%9E%E6%BA%90%E3%81%A8%E3%81%AA%E3%82%8B%E3%81%AE%E3%81%AF%E3%83%90%E3%82%A6%E3%83%8F%E3%82%A6%E3%82%B9&quot; aria-label=&quot;語源となるのはバウハウス permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;語源となるのはバウハウス&lt;/h3&gt;
&lt;p&gt;このブログのタイトルであるバウハウシィファイは、かつてドイツに存在した、&lt;a href=&quot;https://ja.wikipedia.org/wiki/%E3%83%90%E3%82%A6%E3%83%8F%E3%82%A6%E3%82%B9&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;バウハウス&lt;/a&gt;という美術学校を語源にしています。100年以上前となる&lt;br&gt;1919年に設立され14年間しか活動しなかったのですが、後のデザイン史にとても大きな影響を与えています。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;その建物に、当時の思想は色濃く残されています。&lt;br&gt;&lt;/p&gt;
&lt;p&gt;1919年以前に主流となっていた重厚で装飾的な歴史主義建築を否定し、素材の特性を活かした合理的でモダンな建築を提案しました。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://res.cloudinary.com/mwrote/image/upload/v1560441316/bauhausify/_SDI0792.jpg&quot; alt=&quot;バウハウス&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;意味のある色&quot;&gt;&lt;a href=&quot;#%E6%84%8F%E5%91%B3%E3%81%AE%E3%81%82%E3%82%8B%E8%89%B2&quot; aria-label=&quot;意味のある色 permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;意味のある色&lt;/h3&gt;
&lt;p&gt;外見はグレートーンで構成されており、入口となる扉にのみ赤などの色鮮やかな色が施されています。&lt;br&gt;
各フロアーの天井は一階一階に異なる色で塗りつぶされており、そのフロアー内の色はすべて統一されています。今どこの階にいるのかとても明白です。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://res.cloudinary.com/mwrote/image/upload/v1560441681/bauhausify/_SDI0878.jpg&quot; alt=&quot;各フロアーの色&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;最低限の美しさ&quot;&gt;&lt;a href=&quot;#%E6%9C%80%E4%BD%8E%E9%99%90%E3%81%AE%E7%BE%8E%E3%81%97%E3%81%95&quot; aria-label=&quot;最低限の美しさ permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;最低限の美しさ&lt;/h3&gt;
&lt;p&gt;照明器具の配線器具は一切隠されており、構造上必要なものだけが表に現れています。必要最低限の構造が、とても美しいです。&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://res.cloudinary.com/mwrote/image/upload/v1560441600/bauhausify/_SDI0810.jpg&quot; alt=&quot;構造が美しい証明&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;バウハウスの哲学を現代のモノづくりに&quot;&gt;&lt;a href=&quot;#%E3%83%90%E3%82%A6%E3%83%8F%E3%82%A6%E3%82%B9%E3%81%AE%E5%93%B2%E5%AD%A6%E3%82%92%E7%8F%BE%E4%BB%A3%E3%81%AE%E3%83%A2%E3%83%8E%E3%81%A5%E3%81%8F%E3%82%8A%E3%81%AB&quot; aria-label=&quot;バウハウスの哲学を現代のモノづくりに permalink&quot; class=&quot;gatsby-remark-autolink-headers-icon&quot;&gt;&lt;svg width=&quot;22px&quot; height=&quot;7px&quot; viewBox=&quot;0 0 22 7&quot; version=&quot;1.1&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;&gt;
    &lt;g id=&quot;Page-1&quot; stroke=&quot;none&quot; stroke-width=&quot;1&quot; fill=&quot;none&quot; fill-rule=&quot;evenodd&quot;&gt;
        &lt;g id=&quot;icon-link&quot; fill=&quot;#23282D&quot;&gt;
            &lt;path d=&quot;M14,1 C13.4477153,1 13,1.31979661 13,1.71428571 L13,5.28571429 C13,5.68020339 13.4477153,6 14,6 L20,6 C20.5522847,6 21,5.68020339 21,5.28571429 L21,1.71428571 C21,1.31979661 20.5522847,1 20,1 L14,1 Z M14,0 L20,0 C21.1045695,0 22,0.696445945 22,1.55555556 L22,5.44444444 C22,6.30355406 21.1045695,7 20,7 L14,7 C12.8954305,7 12,6.30355406 12,5.44444444 L12,1.55555556 C12,0.696445945 12.8954305,0 14,0 Z M12,2 L12,5 L13,5 L13,2 L12,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;path d=&quot;M2,1 C1.44771525,1 1,1.31979661 1,1.71428571 L1,5.28571429 C1,5.68020339 1.44771525,6 2,6 L8,6 C8.55228475,6 9,5.68020339 9,5.28571429 L9,1.71428571 C9,1.31979661 8.55228475,1 8,1 L2,1 Z M2,0 L8,0 C9.1045695,0 10,0.696445945 10,1.55555556 L10,5.44444444 C10,6.30355406 9.1045695,7 8,7 L2,7 C0.8954305,7 0,6.30355406 0,5.44444444 L0,1.55555556 C0,0.696445945 0.8954305,0 2,0 Z M9,2 L9,5 L10,5 L10,2 L9,2 Z&quot; id=&quot;Combined-Shape&quot; fill-rule=&quot;nonzero&quot;&gt;&lt;/path&gt;
            &lt;rect id=&quot;Rectangle-2&quot; x=&quot;6&quot; y=&quot;3&quot; width=&quot;10&quot; height=&quot;1&quot;&gt;&lt;/rect&gt;
        &lt;/g&gt;
    &lt;/g&gt;
&lt;/svg&gt;&lt;/a&gt;バウハウスの哲学を現代のモノづくりに&lt;/h2&gt;
&lt;p&gt;時代は移り、バウハウス時代にはない道具、インターネットが普及しました。&lt;br&gt;
スマートフォンやパソコンなどのデバイスを通して、デジタルなデザインの歴史が誕生しています。&lt;br&gt;
もし、バウハウス時代の先人たちが現代にいたら、一体どんなモノを生み出しているでしょうか。&lt;br&gt;
そんなことを頭の片隅に置きながら、現代のモノづくりを見直すという考えを&lt;b&gt;バウハウシィファイ&lt;/b&gt;と名付けました。&lt;/p&gt;</content:encoded></item></channel></rss>