Quantcast
Channel: JavaScript | かちびと.net
Viewing all 296 articles
Browse latest View live

LEGO®ライクなグラフィックを描ける軽量なJavaScriptライブラリ・「Legra」

$
0
0

Legra


LegraはLEGO®ぽいグラフィックを手軽に描ける軽量なJSライブラリです。Legraは「Lego® brick Graphics」を略したものだそうです

canvasにLEGO®を並べたようなグラフィックで色なども自由に描くことが出来ます

試しに使ってみました

使ってみる

英語だと大変そうだったのでカタカナで「かちびと」と書いてみました。描き方は線画や四角、パス、サークル、ポリゴン、ペジェなど自由度も高く、細かい描写も可能のようです

サンプルではパスを使ってます。基本的には座標と色などを指定するシンプルなものになります

import Legra from 'https://unpkg.com/legra?module'
const ctx = document.querySelector('canvas').getContext('2d');
const legra = new Legra(ctx, 20);

CDNが用意されていますので利用させてもらいましょう

legra.linearPath([
  [3, 3],
  [10, 3],
  [7, 10]
]);
legra.linearPath([
  [6, 1],
  [3, 10]
]);

座標を指定すれば自動で描いてくれます

案件でそのまま使う可能性はほぼありませんが面白いですね。応用すれば面白いものが手軽に作れそうです、ライセンスはMIT。

Legra


SVGをPDFに変換するJavaScriptライブラリ・「svg2pdf.js」

$
0
0

svg2pdf.js

svg2pdf.jsはSVGをPDFに変換するJavaScriptライブラリです。基本的にはjsPDFと併用する事を想定しているみたいです

上の動作サンプルはSVGをPDFとしてダウンロードできるようにしたものです。サンプルのSVGは数日前に記事にしたモックアップ等でダミーテキストを表現する為のSVGを作成出来る・「Wireframer」で生成したものでテストしました

用途としてはビジュアライズされたデータ等をユーザーがダウンロードできるようにしたい時などでしょうか

導入も簡単ですし覚えておいて損はないかなぁと思います。ライセンスはMIT

svg2pdf.js

ブラウザで動作するピボットテーブルを実装するスクリプト・「WebDataRocks」

$
0
0

WebDataRocks

WebDataRocksはブラウザで動作するピボットテーブルを実装する事が出来るJavaScriptライブラリです。他ライブラリに以前せず単体で動作します

ピボットテーブルって何?という方は以下をご参照下さい

https://forest.watch.impress.co.jp/docs/serial/exceltips/1076187.html

上サンプルで数字の書かれたセルをダブルクリックすると、その数値を割り出したデータを表で確認する事が出来ます。テーブルはエクセルやHTML、PDFでエクスポートする事が可能です

ざっくり使い方

配布されているのでダウンロードして利用可能ですが、CDNも用意されています。サンプルではCDNを使っています

<link href="https://cdn.webdatarocks.com/latest/webdatarocks.min.css" rel="stylesheet"/>
<script src="https://cdn.webdatarocks.com/latest/webdatarocks.toolbar.min.js"></script>
<script src="https://cdn.webdatarocks.com/latest/webdatarocks.js"></script>

CSSとスクリプトを読み込みます

var pivot = new WebDataRocks({
	container: "#wrap",//読み込むHTML要素を指定
	toolbar: true,
	report: {
		dataSource: {
			filename: "data.csv"//CSVやJSONなどのデータファイルを読み込む
		}
	}
});

基本的な使い方です。初期化して読込先の要素を指定、データファイルを読み込めばひとまずOKです。

<div id="wrap"></div>

あとはHTML要素を用意するだけ。簡単ですね。

report: {
		dataSource: {
			filename: "data.csv"//CSVやJSONなどのデータファイルを読み込む
		}
	},
	global: {
		localization: "ja.json"//言語ファイル
	}
});

ローカライズする方法です。dataSourceの続きに言語ファイルとして作成したJSONファイルを読み込みます。日本語化はされていないので自作する必要があります。英語の言語ファイルを元に作成できるのでご参照下さい(英語ファイル:https://cdn.webdatarocks.com/loc/en.json

更にはHighchartsやGoogle Chartsなどを使って動作サンプルのようにビジュアライズも可能です

ライセンスは独自ライセンスですが商用でも無償で利用可能です。詳しくはライセンスページをご覧ください

まとめると、商用でも無償で使えて他言語化にも対応、非依存性のピボットテーブル実装ライブラリ、という感じです。これはかなり良いのではないかと思います。

WebDataRocks

MarkdownでLaTeXを使えるようにするスクリプト・「TeXMe」

$
0
0

TeXMe


TeXMeはMarkdownでLaTeXを使えるようにするスクリプトです。ちょっと語弊あるかもしれませんがMarkdown記法内にLaTeXを書いて一緒にレンダリングするみたいなのです

上は動作サンプルになります。textareaに書いたMarkdownにLaTeXを書いて表示しています

使い方も簡単で、スクリプトを読み込み、

<script src="https://cdn.jsdelivr.net/npm/texme@0.7.0"></script>

textareaに書いていくだけです。LaTeXは$$で囲います

$$ e^{i \pi} + 1 = 0. $$

こんな感じ。どこかで需要があるかもしれないと思って備忘録。ライセンスはMITとの事です

TeXMe

Vue.jsを使ったオープンソースのオンラインMarkdownエディタ・「Inko」

$
0
0

Inko


InkoはVue.jsを使ったオープンソースのオンラインMarkdownエディタです

Markdownエディタではよくある左右2ペインレイアウトで左がエディタ、右がプレビューエリアとなっています。書いたMarkdownはmdファイルとしてエクスポートできます。

他、CSSフレームワークにPrimer.css、パーサーにmarked.jsが使われているそうです。ライセンスはMITとの事

Inko

※本記事で今年最後の更新となります。来年は5日か6日頃に再開します。
今年も大変お世話になりました。来年もどうぞよろしくお願いいたします

拡張も可能な、ドラッグ&ドロップで作るWebページビルダーを実装するためのフレームワーク・「craft.js」

$
0
0

craft.js


craft.jsは拡張可能な、D&Dで作れるWebページビルダーJSフレームワークです。Reactが使われています

ドラッグで要素等を配置しテキストや色を編集できるのは優れたUXを提供できる手段として現在でも高い導入率を誇ります

反面、一からの構築は非常に面倒で高いコストを要求する事もあると思います。また、既存のこの手のライブラリもカスタマイズ性に問題があるケースも見られました

craft.jsはエディターの構成をモジュール化する事でスタイル、UI、機能を別途カスタマイズ、組み合わせる事で期待する動作を維持しつつ、コンテンツにあったUIを構築しやすいよう配慮した設計となっているそうです

自社CMSへの導入などにご検討されては如何でしょうか。ライセンスはMIT。

craft.js

都市名を入力すると、その都市の道路のみを線画で抽出するオープンソースの地図アプリ・「city-roads」

$
0
0

city-roads


city-roadsは任意の都市名を入力すると、その都市内の道路だけを線画で抽出、色などを変更してSVGなどでダウンロードできる地図アプリです

OSSとしてソースコードが公開されています。企業や店舗の地図作成等でも使えそうですね。マップはOSMがベースとなっています

OSMベースなので完全なマップというわけではないため、街によってはうまく作れない可能性もありますが面白いアイデアですね。ライセンスはMITとのことです。何かに応用できそうかな?

city-roads

軽量で非依存な、ダーク/ライトモード切り替えスクリプト・「DarkModeJS」

$
0
0

DarkModeJS


DarkModeJSは軽量で非依存なダークモード/ライトモードの切り替えスクリプトです

以前ご紹介した本スクリプトど同名のDarkmode.Jsは同じく軽量で非依存でしたがmix-blend-modeを使う、といったものである程度コンテンツを選ぶ類のものでした

今日のDarkModeJSは少し異なり、多少手間にはなりますがボタンのクリックや指定した時間で任意のCSSを読み込む、というものになります

メリットとして任意の専用CSSを用意するのでどんなコンテンツでも正確なダークモード/ライトモードを自作出来ますが、デメリットとしては面倒な点でしょうか

手軽さは変わりませんが多少手間でも自作したほうがメンテナンスは楽な気がしますね。ライセンスはMITです

DarkModeJS


Webページの各所の役割等をユーザーに伝えるページツアーを実装するスクリプト・「GuideChimp」

$
0
0

GuideChimp


GuideChimpはWebページの各所の役割等をユーザーに伝えるページツアーを実装するスクリプトです

使い方も手軽で簡単、既存のWebページにも組み込む事が出来ます。nextはカーソルキーにも対応してありました

試しに使ってみました

Example

用意されたサンプルをフォークしただけですが、それでも使い方はすぐに理解できるほどには使いやすい印象です

サンプルではHTMLのカスタムデータ属性を利用してツアーを作成していますが、JSだけで管理する方法も用意されています

JSで管理する際はツールチップ内にボタンも用意できるのでこちらの方が汎用的かもしれませんね

ライセンスはApacheライセンスと有償ライセンスが用意されています

GuideChimp

非依存でシンプルなダイアグラム作成JavaScriptライブラリ・「DiagramFlowJS」

$
0
0

DiagramFlowJS

DiagramFlowJSは非依存でシンプルなダイアグラム作成JavaScriptライブラリです

他ライブラリを使わず単体で動作、上サンプルのようなD&Dで動かせるダイアグラムを作成出来ます

一応編集等も出来るようになっています。ドキュメント等の用意はありませんがそこまで難しいものでもないと思います。ライセンスはMITとの事

DiagramFlowJS

ソートや検索、ページネーション等、基本的な機能を備えた非依存のデータテーブルライブラリ・「Vanilla-DataTables」

$
0
0

Vanilla-DataTables

Vanilla-DataTablesはバニラなデータテーブルJavaScriptライブラリです。他ライブラリに依存せず単体で動作します

機能もデータテーブル系でよくある基本的な機能を備えています。データのソート、任意のキーワードで検索、データが増えた時でも省スペースで収まるページネーション、インポート/エクスポート機能などなど

また拡張性もあり、プラグインに対応していますので足りない機能を自分で作って加える事も出来るようになっています。ライセンスはMIT

Vanilla-DataTables

30以上のプラグインでカスタマイズ可能なオープンソースのJavaScriptアップローダー・「Uppload」

$
0
0

Uppload


Upploadは30以上のプラグインが用意された拡張的なOSSのJS製アップローダーです。※誤字ではなくUpploadが正式な名前みたいです

単にローカルからファイルをアップロードするだけでなく、SNSや画像投稿サービスなどの各Webアプリからもアップロードできるようになっています

また、画像をその場で編集したり、サーバー構成に合わせてアップロードの方法を選択できたりテーマの選択、ライブラリの選択(VueやReact)、画像の圧縮、他言語化も可能となっています。

概ね完成された印象ですが拡張性もあるのでユニークなアップローダーも作れそうです。前述のWebサービスからのアップロードに関しては著作権周りの心配はありますがその辺は開発者の技量に委ねられそうですね

このまま使わずとも高性能なアップローダーの開発に貢献してくれるかなぁと思います。ライセンスはMITとの事

Uppload

モスキート音を出すためのスクリプト・「Mosquito.js」

$
0
0

Mosquito.js


Mosquito.jsはいわゆるモスキート音を鳴らせるスクリプトです。非依存なので単体で動作します

一昔前に、深夜の若者の騒音対策として公園などに導入されたものです(Wikipedia:モスキート音

このモスキート音をWeb上で実装する理由は、子供にとって害のある可能性のコンテンツを配信していたり子供向けのWebサイトで一定の時間になったら鳴らす等でWebサイトからの離脱を促せるのでは、といったところでしょうか

1時間で作成されたそうですが不快音に苦労されたようです。ライセンスはMIT

Mosquito.js

Reactで書かれたオープンソースのWYSIWYGインラインエディター・「Edtr.io」

$
0
0

Edtr.io


Edtr.ioはReactで書かれたオープンソースのWYSIWYGインラインエディターです

mediumで採用されたエディターのようにコンテンツに直接編集を加えるタイプで、ブロックの追加やD&Dによる移動、複製なども出来るようになっています

また、プラグインにも対応しており、仕様に応じて欲しい機能を追加する流れとなるので無駄を少なくする事も出来ます。ライセンスはMITとの事

Edtr.io

任意の画像と同じ色の影を作るシンプルなスクリプト・「cosha」

$
0
0

cosha


coshaは任意の画像と同じ色の影を作るスクリプトです。上サンプルのようにステンドグラスのように同じ影が出来ています

スクリプトは非常に軽量で依存性もありません。手軽で使いやすい印象です。だいぶ前ご紹介したImage-shadowよりも少ないコードで実装されていました

コンテンツ次第では自然にも不自然にもなるので使い方に注意という感じでしょうか。ライセンスはMITとの事

cosha


アイソメトリック図を手軽に作れるJavaScriptライブラリ・「isocity」

$
0
0

isocity


isocityはアイソメトリック図を手軽に作れるJavaScriptライブラリです

動作サンプルでは街を作れるようになっており、ライブラリ名もサンプルに沿ったネーミングですが、素材を変えれば様々な用途に応用できそうですね

操作性や機能性は非常にシンプルなものなので凝ったアイソメ図には対応できませんが、学習コストも必要なさそうなのでこれはこれでアリかなぁと思います

ライセンスはMITとの事です

isocity

Markdownでマインドマップを作れるライブラリ・「Markmap」

$
0
0

Markmap


MarkmapはMarkdownでマインドマップを作れるライブラリです。Markmapにインスパイアされて開発したそうです

基本的には以下のようにリストや見出し等でマインドマップを描けるようになっています

# リストだよ

- リストその1
    - リストその1の1
        - リストその1の1の1
        - リストその1の1の2
    - リストその1の2
- リストその2
- リストその3

Markdownに慣れてる方ならすぐに使えそうです。マインドマップを作ると言うより、書いた文章をビジュアライズするみたいなイメージかもしれません

チーム間でナレッジを共有する等、アイデア次第で使えそうですね。ライセンスはMITです

Markmap

1行のコードで使えるJavaScriptユーティリティのまとめ・「1loc」

$
0
0

1loc


1locは1行のコードで使えるJavaScriptユーティリティをまとめているプロジェクトサイトです。名前は1行のLOC (line of code)という意味のようです

スニペットのまとめページ、みたいなもの。配列やDOM、数や文字列の扱いや他にも様々なスニペットが紹介されています

覚えておくと地味に便利そうですね。Githubでも公開されているのでフォークして自分用スニペットを追加できるようにもなっています

favorite JavaScript utilities

HTMLの属性にディレクティブを指定してリアクティブな動作を実装できるJavaScriptフレームワーク・「Alpine.js」

$
0
0

Alpine.js


Alpine.jsはHTMLの属性にディレクティブを指定してリアクティブな動作を実装できるJavaScriptフレームワークです

vue.jsやreact.jsといったフレームワークのリアクティブ且つ宣言的な性質を低コストで提供してくれる、というもの

開発者はTailwind.cssのJS版のようなもの、と説明しています

Ads

Alpine.jsでは13のディレクティブと、5のマジックプロパティと呼ばれるものを使う事が出来ます。Vue.jsとほぼ同じ機能を使える、という認識で良いと思います

<script src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v1.10.1/dist/alpine.js" defer></script>

↑ まずはスクリプトを読みこみます

試しに何か作ってみましょう

 <div x-data="{selected:null}">
<h4 @click="selected !== 0 ? selected = 0 : selected = null">piyopiyo</h4>
         <p x-show="selected == 0">hogehoge</p>
 </div>

vueのディレクティブと同様、Alpine.jsではx-**という形式になっています ↓

<div x-data="{selected:null}">...</div>

マジックプロパティは$el、$refs、$eventなどなど5つのプロパティが用意されています

 <h4 @click="selected !== 0 ? selected = 0 : selected = null">piyopiyo</h4>
         <p x-show="selected == 0">hogehoge</p>

HTMLを拡張する事で簡単に開閉式のアコーディオンを作る事が出来ました ↓

Tailwind.cssとも相性が良いのでvue.jsを使い慣れてTailwind.cssも使っている方は特に飲み込みやすいなんじゃないでしょうか

Alpine.js

Webページで音声による操作を可能にするボイスコマンドライブラリ・「Artyom.js」

$
0
0

Artyom.js


Artyom.jsはWebページで音声による操作を可能にするボイスコマンドライブラリです

Google NowやSiri、Cortanaなどの音声アシスタントの簡易版みたいなやつです

例えば挨拶したら返事したり翻訳を命令したり別のWebサイトに移動したりなど、予めボイスコマンドを決めておいて回答をセッティングする、みたいな流れで構築します

利便性というより視覚異常の方へのサポートになりそうでしょうか。まだちゃんと触ってないので暇を見て試してみようと思います。ライセンスはMIT

Artyom.js

Viewing all 296 articles
Browse latest View live