Yahoo!ユーザーインターフェイスライブラリ
Yahoo! User Interface Library
Yahoo!ユーザーインターフェイスライブラリ(ヤフー ユーザーインターフェイスライブラリ、YUI)は、Ajax、DHTML、DOMスクリプトなどの手法を使用して、高度にインタラクティブなWebアプリケーションを構築するための廃止されたオープンソースのJavaScriptライブラリである。
YUIにはいくつかのコアCSSリソースが含まれている。 BSDライセンスの下で利用可能である。YUIの開発は2005年に始まり、Yahoo!MyYahoo!などのプロパティとYahoo!その年の夏からフロントページでYUIを使い始めた。YUIは2006年2月に公開された。 Yahoo!エンジニアのコアチームによって積極的に開発された。
2009年9月、Yahoo!YUI 3をリリースした。これはライブラリを最新化し、YUI2から学んだ教訓を取り入れるためにゼロから再構築されたYUIの新しいバージョンである。拡張機能の中には、 DOM要素を取得するためのjQueryなどのCSSセレクター駆動エンジン、モジュールの粒度の重視、必要に応じて他のモジュールをロードする小さなシードファイル、コードの記述をより簡単に高速化することを目的とした様々な構文変更がある。
Yahoo!のYUIライブラリプロジェクトThomas Shaによって設立され、Yahoo!によって内部的に後援された。共同創設者ジェリーヤン;その主要なアーキテクトは、Sha、Adam Moore、およびMattSweeneyである。ライブラリの開発者はYUIBlogを管理している。YUIコミュニティは、コミュニティフォーラムでライブラリとその実装について話し合っている。
2014年8月29日、Yahoo!によるYUIの積極的な開発が発表された。 JavaScript標準の進化、開発者による大規模なJavaScriptライブラリへの関心の着実な減少、およびサーバー側ソリューションの急増を引用して、終了する。将来の開発は、「Yahooのプロパティにとって絶対に重要」な問題に対処するメンテナンスリリースに限定される。
YUIライブラリは、そのWebサイトに完全に文書化されている。詳細なAPIドキュメントは、ライブラリのダウンロードに付属している。 YUIコア、ユーティリティ、UIコントロール、CSSコンポーネント、開発者ツール、ビルドツールの6種類のコンポーネントがある。
YUI Coreは、イベント管理とDOM操作のための軽量(31KBの縮小)ツールセットである。
YUIグローバルオブジェクトには、言語ユーティリティ、スクリプトローダー、およびYUIの他のベースラインインフラストラクチャが含まれている。
要素の配置やCSSスタイルの管理など、一般的なDOMスクリプトタスクを支援する。
開発者にブラウザイベント(マウスクリックやキー押下など)への簡単で安全なアクセスを提供する。また、カスタムイベントを公開およびサブスクライブするためのカスタムイベントオブジェクトも提供する。
ページ要素の位置、サイズ、不透明度、またはその他の特性をアニメーション化することにより、「効果」を作成するのに役立つ。
Webアプリケーションがブラウザの戻るボタンとブックマーク機能を使用するのを支援する。
クロスブラウザー方式でXMLHttpRequestトランザクションを管理するのに役立つ。フォームの投稿、エラー処理、コールバック、ファイルのアップロードのサポートが統合されている。
シンプルなAPIを介してブラウザのCookieとサブCookieを管理できる。
単純なJavaScriptアレイから、XHRを介したオンラインサーバーまで、他のコンポーネントが様々なタイプのデータと対話するための共通の構成可能なインターフェイスを提供する。
ドラッグ アンド ドロップ
YUIドラッグアンドドロップユーティリティを使用すると、要素を「ドラッグ可能」にしたり、ドラッグイベントに応答するドロップターゲットを簡単に作成したりできる。
DOM内のHTML要素のラッパーを提供し、リスナーの追加、DOMの操作、属性の設定と取得などのより単純な一般的なタスクを作成する。
Get Utilityは、スクリプトノードを介したデータとスクリプトの非同期ロードおよび外部CSSファイルの動的ロードをサポートする。
YUIのImageLoaderを使用すると、ページの読み込み時にビューポートに表示されていない画像の読み込みを延期できる。これにより、パフォーマンスが大幅に向上する可能性がある。
JSONユーティリティは、受信したJSONデータを検証して安全であることを確認するためのメソッドと、JavaScriptデータをJSON形式の文字列に変換するためのメソッドを提供する。これらのメソッドは、JSON.orgでのDouglasCrockfordの作業に基づいている。
ブロックレベルのHTML要素のサイズを変更できる。
YUIセレクタユーティリティを使用すると、CSS3セレクタ構文を介してHTML要素への参照を取得できる。
YUIローダーはクライアント側のローダーエンジンであり、任意のYUIコンポーネント(および依存関係)をその場で動的にロードできる。
テキスト入力を含むユーザーインタラクションにオートコンプリート機能(提案リストと先行入力機能)を提供する。さまざまなデータソース形式をサポートしている。また、XMLHttpRequestを介してサーバー側のデータソースをサポートする。
従来のHTMLフォームボタンのように機能するリッチでグラフィカルなボタンの作成を可能にする。
日付の選択に使用されるグラフィカルな動的コントロール。
チャートコントロールは、データソースユーティリティを介してデータを取得し、さまざまな一般的なチャート形式(線、棒、円など)でデータを表示する。
カラーピッカーコントロールは、色を選択するための豊富なビジュアルインターフェイスを提供する。
ツールチップ、パネル、ダイアログ、SimpleDialog、モジュール、オーバーレイなど、さまざまなDHTMLウィンドウパターンをサポートする。
スクリーンリーダーでアクセス可能な表形式のデータをWebページに表示するためのシンプルで強力なAPI。注目すべき機能には、並べ替え可能な列、ページネーション、スクロール、行の選択、サイズ変更可能な列、およびインライン編集が含まれる。
ImageCropperは、クライアント側の画像クロッパーにUIとインタラクティブな要素を提供する。
上、下、左、右、中央のレイアウト単位を含む固定レイアウトを提供することにより、わずかな労力でクロスブラウザのピクセルパーフェクトレイアウトを作成できる。
フライアウトメニュー、メニューバー、およびコンテキストメニューを作成するための簡単なAPIを提供する。
YUIリッチテキストエディターは、モジュール式で高度に構成可能な洗練されたクライアント側のテキストプロセッサであり、あらゆるオープンエンドのテキスト入力状況に適している。
ユーザーが1つまたは2つの軸の値の有限範囲内で選択できるようにする汎用スライダー要素を提供する。
コンテンツのナビゲート可能なタブ付きビューを提供する。 XMLHttpRequestを介したタブコンテンツの動的ロードをサポートする。
ノードを拡張および縮小できるコンテンツツリーを生成する。
アップロードの進行状況に関するフィードバックを含む複数ファイルのファイルアップロードを可能にする。
リセット後にベースを使用して、Web開発者が慣れている標準のブラウザーCSSルールの一貫したクロスブラウザー置換を提供する。
1000以上の異なるページレイアウトをサポートするサブセクションコンポーネントを備えた7つの基本的なページワイヤーフレーム。
標準化されたクロスブラウザフォントファミリとサイズレンダリング。
CSS宣言はマージンを削除し、共通要素でのクロスブラウザーレンダリングを標準化する。
画面上のコンソール、 Mozilla Firefox用のFirebug拡張機能、またはSafariJavaScriptコンソールにログメッセージを書き込むための迅速で簡単な方法を提供する。
JavaScript用のクロスブラウザーの非ビジュアルコードプロファイラー。
プロファイラーと組み合わせて使用し、プロファイリングデータの豊富な視覚化を提供します —グラフィカル(Charts Controlを使用)と表形式(DataTableを使用)の両方。
YUI Testは、ブラウザベースのJavaScriptソリューションのテストフレームワークである。 YUI Testを使用すると、JavaScriptソリューションに単体テストを簡単に追加できる。特定のxUnitフレームワークからの直接ポートではないが、YUITestはnUnitとJUnitからいくつかの特性を引き出す。
YUI Compressorは、 JavaScriptとCSSを安全に最小化するツールである。
YUIDocは、JavaScriptコードの検索可能なAPIドキュメントを生成するJavaScriptで記述されたツールである。これは通常、ビルドプロセスの一部として使用されている。 YUIDocはコメント駆動型であり、様々なコーディングスタイルやプログラミング言語と互換性がある。