エンタープライズ製品デザイン · 新しいリソース

Alaska Airlines Auro デザインシステム.

実際のセマンティックカラーとタイプトークン、クラスベースのタイポグラフィ、ネイティブのフライトコンポーネントを通して、Auro の Alaska テーマを探ります。2 件の独自のフライト記録が、航空会社の在庫や予約を表すものではなく、ローカルでの絞り込みと選択を示します。

OpenDesign ガイド8章39件のリファレンス項目オリジナルアプリケーションガイド
01

Alaska Airlines Auro デザインシステムのインターフェースプレビュー

架空のフライト記録2件を出発時間帯で絞り込み、サンプルを選択できます。フィードバックはセッション内に限られることを明示します。

元のサンプルフライトの選択肢完全な例を開く
Alaskaテーマの役割とフライト情報の階層を独自に解釈した、オフラインのHTMLサンプルです。Auroのネイティブランタイム、ブランドフォント、ライブの空席情報、予約機能はありません。· 実装リファレンス
02

Alaska Airlines Auro デザインシステムのデザインリファレンス

現在公開されているAlaskaテーマのCSSとAuroコンポーネントのドキュメントを参照しています。現在のプリミティブの完全なスケールを確認できていないため、元のサンプルの余白と角丸は、アプリケーション側の選択であることを明記しています。Alaskaのリファレンスに、旧Auro Classicの値は混在させていません。

Alaskaのセマンティックな役割

ソース
名前 / ルール値 / 設定用途
--ds-basic-color-brand-primary#01426a 主要なブランドカラーの役割。
--ds-basic-color-brand-primary-bold#00274a 強調度の高いブランドカラーの役割。
--ds-basic-color-brand-primary-muted#ebf3f9 控えめなブランドカラーの背景。
--ds-basic-color-brand-secondary#5de3f7 第2のアクセントカラー。
--ds-basic-color-brand-tertiary#a3cd6a 第3のアクセントカラー。
--ds-basic-color-texticon-default#2a2a2a 本文テキスト。
--ds-basic-color-texticon-muted#676767 補助テキスト。
--ds-basic-color-border-default#959595 標準の境界線。
--ds-basic-color-border-subtle#dddddd 控えめな区切り。
--ds-basic-color-status-success#447a1f 成功状態の役割。
--ds-basic-color-status-error#e31f26 エラー状態の役割。

アクションの状態

ソース
名前 / ルール値 / 設定用途
--ds-advanced-color-button-primary-background#01426a 主要アクションの塗り。
--ds-advanced-color-button-primary-background-hover#00274a ポインターのホバー時の塗り。
--ds-advanced-color-button-primary-background-disabled#acc9e2 無効状態の塗り。
--ds-advanced-color-button-primary-text#ffffff 主要テキスト。
--ds-advanced-color-button-secondary-background#ffffff 第2の塗り。
--ds-advanced-color-button-secondary-border#01426a 第2の境界線。
--ds-advanced-color-state-focused#01426a フォーカスの役割。

Alaskaのタイポグラフィの役割

ソース
名前 / ルール値 / 設定用途
--ds-basic-type-family-bodyAS Circular本文のフォントファミリー。
--ds-basic-type-family-headingAS Circular見出しのフォントファミリー。
--ds-basic-type-family-accentGood OTアクセント用フォントファミリー。
--ds-basic-type-line-height-body1.625rem本文の行の高さの役割。
--ds-basic-type-line-height-body21.5rem第2の本文スタイル。
--ds-basic-type-line-height-body31.25rem第3の本文スタイル。
--ds-basic-type-line-height-heading1.3見出しの行の高さの比率。
--ds-basic-type-weight-body450本文のウェイト。
--ds-basic-type-weight-heading300見出しのウェイト。
--ds-basic-type-letter-spacing-accent0.05emアクセントの字間。

テーマの選択

ソース
名前 / ルール値 / 設定用途
Alaskadata-aag-theme="aag-theme-as"現在のAlaskaテーマ。
Alaska Classicaag-theme-asc移行専用のテーマ。
Hawaiianaag-theme-ha独立したブランドテーマ。
Atmosaag-theme-atm独立したブランドテーマ。
Auro ClassicDeprecated legacy theme後方互換性のみ。

フライトの構成

ソース
名前 / ルール値 / 設定用途
flightsJSON array of flight labels例 ["DEMO 01"]。
durationMinutes元のサンプルの所要時間は150分。
departureTime / arrivalTimeISO date-time with offset駅コードからタイムゾーンを推測しないでください。
departureStation / arrivalStationStation codesSEAとLAXの例。
auro-flightlineChild custom element出発と到着の表示をつなぎます。
AuroFlight.register(name)Custom-name registration複数のバージョンが衝突しないようにする。
03

Alaska Airlines Auro デザインシステム完全ガイド

実際のインターフェースで、このデザインシステムを選び、適用し、レビューするための実践ガイドです。

DESIGN-alaska-auro.md

詳しいガイダンス、実装の出発点、ソースへのリンクをまとめています。

ガイドをダウンロード

Alaska Airlines Auro デザインシステム:ページを作成する前にAlaskaを明示的に選択する

現行テーマと移行用テーマは互換ではありません

AuroはAlaska、Hawaiian、Atmosをそれぞれ独立したテーマとしてサポートしています。Alaska Classicでは、新しい名前のもとで旧来のビジュアル値を維持して移行に対応します。Auro Classicは非推奨です。提供されたエントリではAlaskaのCSSファイルをインポートし、aag-theme-as属性を適用しています。

この OpenDesign ガイドから

ネストしたdata-aag-themeの値を指定すると、サブセクションのテーマを変更できます。これは共有プラットフォームに便利な機能ですが、Alaskaカラーの画面でHawaiianのタイポグラフィや旧来の値を暗黙に流用してよいという意味ではありません。この例では、全体を一貫した1つのテーマで統一しています。

関連する仕様を確認する

Alaska Airlines Auro デザインシステム:ブランドの強調色と本文テキストは役割が異なる

セマンティックな前景色の役割を使う

現在のAlaskaのトークンソースでは、標準テキストに#2a2a2a、控えめなテキストに#676767を使用しています。ブランドの主要カラーの役割は#01426a、さらに強い色は#00274aです。それぞれ役割が異なるため、見出しとボタンが同じ領域にあっても使い分けます。

サンプルでは、フライト情報にダークニュートラルの文字色を使い、インタラクションの強調には青を使っています。ミントとシアンのアクセントは元の風景イラストに登場するもので、ドキュメントにないステータス表示としては使っていません。選択中のフライトは、境界線だけでなくテキストとボタンの状態でも示しています。

関連する仕様を確認する

Alaska Airlines Auro デザインシステム:サポートされているタイポグラフィクラスを適用する

用途に応じた4つのグループ

Auroの現在のタイポグラフィガイドでは、スタイルをbody、heading、display、accentの4つに分けています。headingは意味的な見出しに、displayは文書の階層上は見出しではないものの、視覚的に目立たせるテキストに使います。フォントのルールを要素ごとにすべて組み直すのではなく、body-defaultやbody-lgなどのクラスを使うことを推奨しています。

Alaskaのソースでは、本文と見出しにAS Circular、アクセントテキストにGood OTを指定しています。ウェイトと行の高さの役割もそれぞれ用意されています。オフラインプレビューでは、これらのフォントをローカルで利用できるかのように扱わず、ドキュメントに記載された代替フォントファミリーを使っています。

関連する仕様を確認する

Alaska Airlines Auro デザインシステム:フライトコンポーネントは構造化された旅程を表す

オフセットを保持したまま時刻情報を渡す

auro-flightは、auro-flightlineと組み合わせて出発、到着、区間情報を表示します。基本的な例では、フライトラベルの配列、分単位の所要時間、2つの駅コード、2つのISO形式の日時を受け取ります。提供されたコードでは、曖昧な現地時刻の文字列を渡さず、明示的なオフセットを保持しています。

元のサンプル記録2件は出発地と到着地のタイムゾーンが同じため、150分という所要時間は時刻と一致します。実際のフライトではありません。本番環境で乗り継ぎの旅程を表すには、ドキュメントに記載された区間形式も必要です。確認済みの乗り継ぎを示すために、区間を含まないラベルのリストだけを使わないでください。

関連する仕様を確認する

Alaska Airlines Auro デザインシステム:表示データとアプリケーションの選択状態を分ける

結果の表示と選択状態は異なる

ネイティブの例ではauro-flightで各記録を表示し、ローカルでの選択には通常のボタンを使っています。これにより、表示コンポーネントに選択用のAPIを独自に持たせずに済みます。選択中のIDはアプリケーション側で管理し、aria-pressedに反映しています。

出発時間帯のフィルターを変更すると、選択状態とメッセージがクリアされます。そうしないと、非表示の選択肢が選択されたままだと誤解させるおそれがあります。プレビューでは結果を明示しています。このページ内でサンプルを選んだだけで、予約は行われていません。

  1. 元の記録を出発時間帯で絞り込む。
  2. 残ったフライト情報を値を変更せずに表示する。
  3. 変わらないIDを使って、表示中のサンプルを選択する。
  4. フィルターが変更されたら選択を解除する。

関連する仕様を確認する

Alaska Airlines Auro デザインシステム:コンポーネントのコードとともにタイポグラフィの基盤を読み込む

トークン、WCSS、要素はそれぞれ異なる問題を解決する

デザイントークンは値を提供します。Web Core Style Sheetsは基本スタイルとタイポグラフィ用クラスを提供します。flightパッケージはカスタム要素を登録します。これらのうち一つだけを導入しても、ブランドを反映したページ全体を構成したことにはなりません。

WCSSは、あらゆるスタイルを一つのソースファイルで提供するのではなく、必要なものを選んで使う基盤です。v12ではSassの記述が@importから@useと@forwardに変更されました。この例では、古いSassの手順と現在のパッケージ構成を混在させず、ドキュメントに記載されたビルド済みのAlaskaスタイルシートを選んでいます。

関連する仕様を確認する

Alaska Airlines Auro デザインシステム:操作と状態には具体的なラベルを使う

色だけですべてを伝えない

フィルターには見えるラベルがあり、選択操作にはそれぞれ結果を示す名前が付いています。ステータス領域では、選択したサンプルをテキストで知らせます。装飾的な線や風景がなくても、出発地と到着地が分かります。

旅行者情報を収集する機能を追加する場合、Auro InputではlabelスロットとhelpTextスロットを利用できます。既定ではフォーカスが外れたときに検証し、validateOnInputまたはnoValidateでタイミングを変更できます。クリア時には値がundefinedにリセットされます。すべてのフォームコンポーネントが同じ空の値を返すと想定せず、こうした仕様に従ってください。

  • 時刻と駅の情報は、読みやすいテキストで表示する。
  • 結果件数とは別にフィルターにラベルを付ける。
  • ステータス領域で、実際に選択された内容を伝える。
  • すぐに反映される状態更新に、処理中のスピナーを表示しない。

関連する仕様を確認する

Alaska Airlines Auro デザインシステム:複数のバージョンが共存する場合に限り、別名を登録する

コンポーネントクラスとグローバル登録を分ける

flightパッケージを通常どおりインポートすると、auro-flightが自動的に登録されます。/classエントリーではAuroFlightが公開され、同じドキュメント上で複数のバージョンに異なるカスタム要素名が必要な場合、明示的にregister(name)を呼び出せます。カスタム名にはハイフンを含める必要があります。

これは競合を管理するための機能であり、通常の単一バージョンのページには必要ありません。依存関係はロックファイルで固定し、メジャーバージョンを更新する前に移行内容を確認してください。元のプレビューにある余白や角丸は、引き続きアプリケーション側で決める項目です。このページでは、それらを検証済みのAuroプリミティブとして扱いません。

関連する仕様を確認する

Alaska Airlines Auro デザインシステムのコンポーネント例

完全なスタンドアロンのインタラクティブ見本

ドキュメント全体をindex.htmlとして保存し、ブラウザーで開いてください。Alaskaテーマの役割とフライト情報の階層を、HTMLとして独自に解釈したオフラインの例です。Auroのネイティブランタイム、ブランドフォント、リアルタイムの空席情報、予約機能は含みません。

html
<!doctype html><html lang="en"><meta charset="utf-8"><meta name="viewport" content="width=device-width"><title>Original flight choices</title><style>*{box-sizing:border-box}body{margin:0;color:#2a2a2a;background:#fff;font:16px/1.625 system-ui,-apple-system,sans-serif}button,select{font:inherit}button{cursor:pointer}button:focus-visible,select:focus-visible{outline:3px solid #01426a;outline-offset:4px}header{padding:20px 32px;display:flex;justify-content:space-between;gap:24px;border-bottom:1px solid #ddd}header b{color:#01426a;letter-spacing:2px;font-size:14px}header small{color:#676767}.hero{background:#ebf3f9;position:relative;overflow:hidden}.hero-inner{max-width:1100px;margin:auto;padding:36px 32px 48px;position:relative;z-index:1}.hero h1{font-size:42px;line-height:1.3;font-weight:300;margin:0 0 12px}.hero p{max-width:480px;margin:0;color:#676767}.mountain{position:absolute;right:-20px;bottom:-25px;width:43%;height:180px;background:#cfe0ef;clip-path:polygon(0 100%,35% 10%,55% 55%,75% 0,100% 100%)}.mountain:after{content:'';position:absolute;inset:50px -15px 0 45px;background:#a3cd6a;clip-path:polygon(0 100%,45% 10%,100% 100%)}main{max-width:1100px;margin:auto;padding:32px}.toolbar{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:24px}.toolbar label{display:block;font-size:14px;margin-bottom:8px}select{padding:10px 40px 10px 12px;border:1px solid #959595;border-radius:8px;background:#fff;color:#2a2a2a}#count{font-size:14px;color:#676767;margin:0}.flight{border:1px solid #ddd;border-radius:12px;padding:24px;margin-bottom:16px}.flight.selected{border:2px solid #01426a;padding:23px;background:#f7fbfd}.flight-head{display:flex;justify-content:space-between;gap:16px;font-size:14px;color:#676767;margin-bottom:24px}.sample-tag{background:#ebf3f9;color:#01426a;padding:0 8px;border-radius:4px}.flight-body{display:grid;grid-template-columns:1fr 160px 1fr auto;gap:24px;align-items:center}.station b{display:block;font-size:28px;line-height:1.3;font-weight:400}.station span{display:block;font-size:14px;color:#676767}.line{text-align:center;color:#676767;font-size:12px}.line i{display:block;height:1px;background:#00274a;position:relative;margin:12px 0}.line i:before,.line i:after{content:'';width:7px;height:7px;background:#fff;border:1px solid #00274a;border-radius:50%;position:absolute;top:-3px;left:0}.line i:after{left:auto;right:0}.flight button{border:0;border-radius:8px;background:#01426a;color:#fff;padding:12px 20px;white-space:nowrap}.flight button:hover{background:#00274a}.selected button{background:#fff;border:1px solid #01426a;color:#01426a}.summary{background:#ebf3f9;border-left:4px solid #01426a;padding:16px 24px;margin-top:24px}.summary:empty{display:none}footer{font-size:12px;line-height:1.5;color:#676767;margin-top:24px}@media(max-width:700px){header{padding:16px;gap:16px}header small{max-width:140px}.hero-inner{padding:28px 16px 40px}.hero h1{font-size:32px}.hero p{max-width:80%}.mountain{opacity:.45;width:70%}main{padding:24px 16px}.toolbar{gap:16px}.flight{padding:20px}.flight.selected{padding:19px}.flight-body{grid-template-columns:1fr 80px 1fr;gap:12px}.flight button{grid-column:1/-1;width:100%;margin-top:8px}.station b{font-size:22px}.flight-head{font-size:12px}.station span{font-size:12px}select{max-width:185px;padding-right:24px}}
</style><header><b>JOURNEY EXPLORER</b><small>Independent Auro interpretation</small></header><div class="hero"><div class="mountain" aria-hidden="true"></div><div class="hero-inner"><h1>A little closer to your next adventure.</h1><p>Explore two original flight examples and keep a choice for this page session.</p></div></div><main><div class="toolbar"><div><label for="period">Departure period</label><select id="period"><option value="all">All times</option><option value="morning">Morning</option><option value="evening">Evening</option></select></div><p id="count" aria-live="polite"></p></div><section id="results" aria-label="Sample flights"></section><p id="selection" class="summary" role="status"></p><footer>Fictional flights for interface exploration. No real schedule, fare, seat availability or booking. Times use the same sample UTC−07:00 offset. Original landscape artwork.</footer></main><script>const data=[{id:'am',name:'Morning sample',number:'DEMO 01',dep:'08:00',arr:'10:30',period:'morning'},{id:'pm',name:'Evening sample',number:'DEMO 02',dep:'17:00',arr:'19:30',period:'evening'}];let selected='';function render(){const period=document.querySelector('#period').value,visible=data.filter(x=>period==='all'||x.period===period);document.querySelector('#count').textContent=`${visible.length} sample ${visible.length===1?'flight':'flights'}`;document.querySelector('#results').innerHTML=visible.map(x=>`<article class="flight ${selected===x.id?'selected':''}"><div class="flight-head"><span>${x.name} · ${x.number}</span><span class="sample-tag">Original sample</span></div><div class="flight-body"><div class="station"><b>${x.dep}</b><span>SEA · Seattle</span></div><div class="line">2h 30m<i></i>Nonstop study</div><div class="station"><b>${x.arr}</b><span>LAX · Los Angeles</span></div><button type="button" data-id="${x.id}" aria-pressed="${selected===x.id}">${selected===x.id?'Selected sample':'Select this sample'}</button></div></article>`).join('');document.querySelectorAll('[data-id]').forEach(button=>button.onclick=()=>{selected=button.dataset.id;const x=data.find(x=>x.id===selected);document.querySelector('#selection').textContent=`${x.name} selected: ${x.dep} SEA → ${x.arr} LAX. No booking made.`;render();document.querySelector(`[data-id="${selected}"]`).focus()})}document.querySelector('#period').onchange=()=>{selected='';document.querySelector('#selection').textContent='';render()};render();</script></html>

コードリファレンス

  • フライトは架空の固定データです。Auroネイティブの例ではauro-flightのプロパティとAlaskaテーマのアセットを使いますが、このHTMLドキュメントは空席情報を取得しません。

独自の選択機能を備えたネイティブのフライト表示

各auro-flightには、タイムゾーンオフセット付きの日付、駅コード、JSON形式のフライトラベル配列を設定します。ネイティブのselectとボタンを使って、表示コンポーネントの外側にローカルな絞り込みと選択状態を追加します。

JavaScript
// src/main.js in a Vite vanilla project
// npm install @aurodesignsystem/auro-flight @aurodesignsystem/design-tokens @aurodesignsystem/webcorestylesheets
import '@aurodesignsystem/design-tokens/dist/themes/alaska/CSSCustomProperties--alaska.css';
import '@aurodesignsystem/webcorestylesheets/dist/bundled/themes/alaska.global.min.css';
import '@aurodesignsystem/auro-flight';
import './style.css';
document.documentElement.setAttribute('data-aag-theme','aag-theme-as');
const flights=[
 {id:'sample-am',label:'Morning sample',number:'DEMO 01',departure:'2030-06-15T08:00:00-07:00',arrival:'2030-06-15T10:30:00-07:00',period:'morning'},
 {id:'sample-pm',label:'Evening sample',number:'DEMO 02',departure:'2030-06-15T17:00:00-07:00',arrival:'2030-06-15T19:30:00-07:00',period:'evening'}
];
let selected='';
document.querySelector('#app').innerHTML=`<main><h1>Explore sample flights</h1>
<p class="body-default">Original records, not a live schedule or booking service.</p>
<label for="period">Departure period</label><select id="period"><option value="all">All times</option><option value="morning">Morning</option><option value="evening">Evening</option></select>
<div id="results"></div><p id="selection" role="status"></p></main>`;
function render(){const period=document.querySelector('#period').value;const target=document.querySelector('#results');target.replaceChildren();
 flights.filter(f=>period==='all'||f.period===period).forEach(f=>{
 const article=document.createElement('article'), title=document.createElement('h2');title.textContent=f.label;
 const component=document.createElement('auro-flight');component.setAttribute('flights',JSON.stringify([f.number]));component.setAttribute('duration','150');component.setAttribute('departureTime',f.departure);component.setAttribute('arrivalTime',f.arrival);component.setAttribute('departureStation','SEA');component.setAttribute('arrivalStation','LAX');component.append(document.createElement('auro-flightline'));
 const button=document.createElement('button');button.type='button';button.textContent=selected===f.id?'Selected sample':'Select this sample';button.setAttribute('aria-pressed',String(selected===f.id));button.onclick=()=>{selected=f.id;document.querySelector('#selection').textContent=f.label+' selected for this page only. No booking made.';render();};
 article.append(title,component,button);target.append(article);
 });
}
document.querySelector('#period').onchange=()=>{selected='';document.querySelector('#selection').textContent='';render();};render();

/* src/style.css — application layout, not official size tokens */
main{max-width:64rem;margin:auto;padding:24px}
article{padding:24px;margin-block:16px;border:1px solid var(--ds-basic-color-border-subtle);border-radius:12px}
button{font:inherit;background:var(--ds-advanced-color-button-primary-background);color:var(--ds-advanced-color-button-primary-text);padding:12px 24px;border:0;border-radius:8px;margin-top:16px}
button:hover{background:var(--ds-advanced-color-button-primary-background-hover)}
button:focus-visible,select:focus-visible{outline:3px solid var(--ds-advanced-color-state-focused);outline-offset:4px}
select{font:inherit;padding:12px;margin:8px 0 16px}

コードリファレンス

  • 選択ボタンはアプリケーション側のロジックであり、auro-flightに存在しないイベントを想定したものではありません。
  • 期間を変更すると、以前に選択したレコードを解除し、非表示の選択によって誤解が生じないようにします。
  • この例にあるフライト番号、日付、時刻はすべて架空です。
04

Alaska Airlines Auro デザインシステム:エージェントのセットアップ

実装の出発点

既存のVite vanillaプロジェクトに必要なアプリケーションのエントリーポイントとCSSです。インストールしたバージョンはプロジェクトのロックファイルに記録してください。ここではネイティブコンポーネントのコンパイルを検証していません。埋め込みの例では、独立したオフラインのHTMLを使用しています。AS CircularとGood OTはバンドルされていません。

JavaScript
// src/main.js in a Vite vanilla project
// npm install @aurodesignsystem/auro-flight @aurodesignsystem/design-tokens @aurodesignsystem/webcorestylesheets
import '@aurodesignsystem/design-tokens/dist/themes/alaska/CSSCustomProperties--alaska.css';
import '@aurodesignsystem/webcorestylesheets/dist/bundled/themes/alaska.global.min.css';
import '@aurodesignsystem/auro-flight';
import './style.css';
document.documentElement.setAttribute('data-aag-theme','aag-theme-as');
const flights=[
 {id:'sample-am',label:'Morning sample',number:'DEMO 01',departure:'2030-06-15T08:00:00-07:00',arrival:'2030-06-15T10:30:00-07:00',period:'morning'},
 {id:'sample-pm',label:'Evening sample',number:'DEMO 02',departure:'2030-06-15T17:00:00-07:00',arrival:'2030-06-15T19:30:00-07:00',period:'evening'}
];
let selected='';
document.querySelector('#app').innerHTML=`<main><h1>Explore sample flights</h1>
<p class="body-default">Original records, not a live schedule or booking service.</p>
<label for="period">Departure period</label><select id="period"><option value="all">All times</option><option value="morning">Morning</option><option value="evening">Evening</option></select>
<div id="results"></div><p id="selection" role="status"></p></main>`;
function render(){const period=document.querySelector('#period').value;const target=document.querySelector('#results');target.replaceChildren();
 flights.filter(f=>period==='all'||f.period===period).forEach(f=>{
 const article=document.createElement('article'), title=document.createElement('h2');title.textContent=f.label;
 const component=document.createElement('auro-flight');component.setAttribute('flights',JSON.stringify([f.number]));component.setAttribute('duration','150');component.setAttribute('departureTime',f.departure);component.setAttribute('arrivalTime',f.arrival);component.setAttribute('departureStation','SEA');component.setAttribute('arrivalStation','LAX');component.append(document.createElement('auro-flightline'));
 const button=document.createElement('button');button.type='button';button.textContent=selected===f.id?'Selected sample':'Select this sample';button.setAttribute('aria-pressed',String(selected===f.id));button.onclick=()=>{selected=f.id;document.querySelector('#selection').textContent=f.label+' selected for this page only. No booking made.';render();};
 article.append(title,component,button);target.append(article);
 });
}
document.querySelector('#period').onchange=()=>{selected='';document.querySelector('#selection').textContent='';render();};render();

/* src/style.css — application layout, not official size tokens */
main{max-width:64rem;margin:auto;padding:24px}
article{padding:24px;margin-block:16px;border:1px solid var(--ds-basic-color-border-subtle);border-radius:12px}
button{font:inherit;background:var(--ds-advanced-color-button-primary-background);color:var(--ds-advanced-color-button-primary-text);padding:12px 24px;border:0;border-radius:8px;margin-top:16px}
button:hover{background:var(--ds-advanced-color-button-primary-background-hover)}
button:focus-visible,select:focus-visible{outline:3px solid var(--ds-advanced-color-state-focused);outline-offset:4px}
select{font:inherit;padding:12px;margin:8px 0 16px}

あなたのプロジェクト向けプロンプト

AI エージェント用プロンプト
明示的なaag-theme-as、AlaskaトークンのCSS、WCSSのタイポグラフィ、ネイティブのauro-flightフィールドを使って、Auro Alaskaのフライト一覧を構成してください。ISO形式のオフセットと所要時間の整合性を保ちます。コンポーネントに存在しないイベントを想定せず、アプリケーション側で絞り込みと選択機能を追加してください。非表示になった選択は解除し、すべてのレコードにサンプルデータであることを示すラベルを付けます。
05

Alaska Airlines Auro デザインシステムの参照元と対象範囲

独自のOpenDesignリファレンスです。フライト番号、日付、時刻はすべて架空で、航空会社の運航スケジュール、運賃、空席情報、予約を示すものではありません。アプリケーションの余白を公式のトークンスケールとして扱っていません。