28 ポイント 投稿者 xguru 4 시간 전 | 10件のコメント | WhatsAppで共有
  • 「データをタイポグラフィとして(data as type)」 というコンセプトで、JS/画像/レンダリングライブラリなしに テキストだけでチャートを表示
  • OpenTypeの合字置換を活用し、{b:30,70,50,90} のような単純なテキスト表現をインラインチャートに変換
  • 棒/ライン/円の3種類のチャートをサポート
    • 棒グラフ: {b:30,70,50,90,64,27,72,42} カンマ区切りの値(各 0–100)、最大20本のバー
    • スパークライン: {l:10,50,30,80,20,15,48,72,37} カンマ区切りの値(各 0–100)、最大20ポイント
    • 円グラフ: {p:69} {p:43} 0–100 の単一パーセンテージ値
  • フォントサイズ2つの可変軸で視覚的な調整が可能
    • Width(wdth): 50–150、間隔を調整、デフォルト値 100
    • Weight(wght): 100–900、線の太さを調整、デフォルト値 400
  • 文字の間でもレンダリングできるため、本文中、表の中、ログメッセージなど テキストが入るあらゆる場所でそのまま動作
    • テーブル/ダッシュボード/レポート などにも簡単に挿入可能
  • Webでは CSS 3行だけで導入可能
    • @font-face でフォントを読み込み → font-family: 'Datatype' を指定 → HTMLに <span class="chart">{l:20,40,70}</span> を記述
    • font-variation-settings で wdth などの追加調整オプションを提供
  • デスクトップ: TTFをインストール後、OpenTypeの合字をサポートするアプリ(Adobeなど)で使用可能
  • Google Fontsでも配布 されており、別途ホスティングなしで利用可能
  • 15個のNamedインスタンスを提供(標準Weight 9個 + カスタム幅の組み合わせ 6個)
    • Thin UltraCondensed(50/100)、SemiBold Condensed(75/600)、Medium Expanded(125/500)、Black ExtraExpanded(150/900) など、用途別プリセットを含む
  • グリフ数はマスターあたり10,850個、全9マスター構成
  • ファイルサイズ: TTF 4.0MB / WOFF2 78KB、Unicodeカバレッジは Google Fonts Latin Core
  • ブラウザ対応: Chrome 62+, Firefox 62+, Safari 11+, Edge 17+
  • 動作説明

    • OpenTypeの合字置換(ligature substitution) 機能を活用
    • 本来の合字は fifl のような文字の組み合わせを1つのグリフに置き換える機能
    • Datatypeはこれを応用し、{b:30,70,50,90} のようなパターン全体を1つのチャートグリフ {b:30,70,50,90} に置換
    • ブラウザやアプリがフォントの合字機能さえサポートしていれば、JavaScriptの実行なしで即座にレンダリング
  • SIL Open Font License 1.1
  • Specimen サイトで実際の適用例を確認可能

10件のコメント

 
winterjung 4 시간 전

{p:75} {l:40,10,10,40} {p:75}

 
shakespeares 2 시간 전

{p:75} {l:40,10,10,40} {p:75}
うわあ..

 
xguru 3 시간 전

こんな活用法があるとは?!

 
crawler 4 시간 전

wwwwwwwww

 
bichi 1 시간 전

wwwww

 
sigco 59 분 전

{l:40,10,10,40} {p:75}

 
crawler 4 시간 전

わあ、めっちゃすごいですねwww

 
xguru 4 시간 전

GeekNews はできるだけ画像を使わないようにしているので、このようなテキストベースの軽量ソリューションが出てきたら、できるだけ導入してみています。
Google、白黒絵文字フォント Noto Emoji を公開 も適用されてからもう4年目ですが、まだうまく使えていますね 😀😃😄😁😆😅😍🥰😘

 
kimjeongwonn 3 시간 전

{b:90,100,100,90,20,10,0,10,20,90,100,100,90}

 
seoseonyu 4 시간 전

うわー、すごいですね(笑)