엔터프라이즈 제품 디자인 · 신규 리소스

Alaska Airlines Auro 디자인 시스템.

실제 시맨틱 색상과 타입 토큰, 클래스 기반 타이포그래피, 네이티브 flight 컴포넌트를 통해 Auro의 Alaska 테마를 살펴보십시오. 두 개의 독자적인 항공편 레코드가 항공사 재고나 예약을 나타내지 않으면서 로컬 필터링과 선택을 보여줍니다.

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 보조 강조색.
--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 보조 채우기색.
--ds-advanced-color-button-secondary-border#01426a 보조 경계선.
--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두 번째 본문 역할.
--ds-basic-type-line-height-body31.25rem세 번째 본문 역할.
--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 codes예시 SEA 및 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 타이포그래피나 기존 값을 아무 설명 없이 가져다 써도 된다는 뜻은 아닙니다. 예시는 전체에 일관된 하나의 테마를 사용합니다.

지원 사양 읽기

Alaska Airlines Auro 디자인 시스템: 브랜드 강조와 본문 텍스트는 역할이 다릅니다

시맨틱 전경색 역할을 사용하세요

현재 Alaska 토큰 소스에서 기본 텍스트 색상은 #2a2a2a, 흐린 텍스트 색상은 #676767입니다. 기본 브랜드 역할은 #01426a이며, 더 강한 강조 역할은 #00274a입니다. 제목과 버튼이 같은 영역을 차지하더라도 이 색상들의 역할은 서로 다릅니다.

예시에서는 항공편 정보를 짙은 중성색 텍스트로, 상호작용 강조에는 파란색을 사용합니다. 민트와 시안 강조색은 원본 풍경 삽화에 쓰였으며, 문서화되지 않은 상태 표시로 사용되지 않습니다. 선택한 항공편은 경계선뿐 아니라 텍스트와 버튼 상태로도 표시됩니다.

지원 사양 읽기

Alaska Airlines Auro 디자인 시스템: 지원되는 타이포그래피 클래스를 적용하세요

네 가지 그룹으로 용도를 구분합니다

Auro의 현재 타이포그래피 가이드는 스타일을 본문, 제목, 디스플레이, 강조의 네 그룹으로 나눕니다. 제목은 문서 구조상 제목에 사용하고, 디스플레이는 문서 계층 구조상 제목은 아니지만 시각적으로 두드러져야 하는 텍스트에 사용합니다. 이 가이드는 요소마다 글꼴 규칙을 다시 정의하기보다 body-default, body-lg 같은 클래스를 사용할 것을 권장합니다.

Alaska 소스에서는 본문과 제목에 AS Circular, 강조 텍스트에 Good OT를 지정합니다. 굵기와 행간 역할도 별도로 제공합니다. 오프라인 미리보기는 해당 서체를 로컬에서 사용할 수 있는 것처럼 가장하지 않고 문서화된 대체 서체군을 사용합니다.

지원 사양 읽기

Alaska Airlines Auro 디자인 시스템: 항공편 컴포넌트는 구조화된 여정을 나타냅니다

오프셋 정보를 유지한 채 시간 정보를 전달하세요

auro-flight는 auro-flightline과 함께 출발, 도착, 구간 정보를 표시합니다. 기본 예제는 항공편 라벨 배열, 분 단위 운항 시간, 두 개의 역 코드, 두 개의 ISO 날짜·시간 값을 받습니다. 제공된 코드는 모호한 현지 시각 문자열을 전달하는 대신 명시적인 오프셋을 유지합니다.

원본 샘플 레코드 두 개는 출발 및 도착 시간대가 같으므로, 150분의 운항 시간은 표시된 시간과 일치합니다. 실제 운항편이 아닙니다. 실제 연결 여정을 표시하려면 문서에 설명된 구간 표현도 필요합니다. 단순한 라벨 목록만으로 검증된 연결 여정이라고 표시해서는 안 됩니다.

지원 사양 읽기

Alaska Airlines Auro 디자인 시스템 표시 데이터와 애플리케이션의 선택 상태 분리

결과가 화면에 표시되는 상태와 선택된 상태는 서로 다릅니다

네이티브 예제에서는 auro-flight로 각 레코드를 표시하고 일반 버튼으로 로컬 선택을 처리합니다. 이렇게 하면 표시 컴포넌트에 선택 API을 임의로 추가하지 않아도 됩니다. 선택된 식별자는 애플리케이션이 관리하고 aria-pressed에 반영합니다.

출발 시간대 필터를 바꾸면 선택과 메시지가 초기화됩니다. 이 단계가 없으면 화면에서 숨겨진 옵션이 계속 선택된 것처럼 표시될 수 있습니다. 미리보기에는 결과가 분명하게 표시됩니다. 이 페이지에서만 샘플을 선택했으며 예약은 이루어지지 않았습니다.

  1. 출발 시간대에 따라 원본 레코드를 필터링합니다.
  2. 남은 항공편 정보를 값 변경 없이 렌더링합니다.
  3. 고유 식별자를 사용해 화면에 표시된 샘플을 선택합니다.
  4. 필터가 바뀌면 선택을 초기화합니다.

지원 사양 읽기

Alaska Airlines Auro 디자인 시스템 컴포넌트 코드와 함께 타이포그래피 기반 스타일 불러오기

토큰, WCSS, 요소는 서로 다른 문제를 해결합니다

디자인 토큰은 값을 제공합니다. Web Core Style Sheets는 기반 스타일과 타이포그래피 클래스를 제공합니다. 항공편 패키지는 사용자 정의 요소를 등록합니다. 이 중 하나만 설치하는 것으로 브랜드가 적용된 전체 페이지를 구성할 수는 없습니다.

WCSS는 모든 스타일을 담은 단일 소스 파일이 아니라 필요한 항목을 선택해 사용할 수 있는 기반입니다. v12 Sass 경로에서는 @import가 @use 및 @forward로 변경되었습니다. 이 예제는 이전 Sass 지침과 현재 패키지 구조를 혼용하지 않고, 문서에 안내된 사전 빌드 Alaska 스타일시트를 사용합니다.

지원 사양 읽기

Alaska Airlines Auro 디자인 시스템 컨트롤과 상태에 적절한 레이블 사용

색상만으로 결과를 전달하지 마세요

필터에는 화면에 표시되는 레이블이 있고, 각 선택 동작에는 결과를 나타내는 이름이 지정되어 있습니다. 상태 영역은 선택한 샘플을 텍스트로 알립니다. 장식용 선이나 풍경이 없어도 출발과 도착 정보를 이해할 수 있습니다.

여행자 정보를 입력받는 확장 기능을 만들 때 Auro Input은 label 및 helpText 슬롯을 지원하고, 기본적으로 포커스를 잃을 때 유효성을 검사합니다. validateOnInput 또는 noValidate로 검사 시점을 변경할 수도 있습니다. 값을 지우면 value가 undefined로 초기화됩니다. 모든 폼 컴포넌트가 동일한 빈 값을 반환한다고 가정하지 말고 이러한 계약을 준수해야 합니다.

  • 시간과 역 정보는 읽을 수 있는 텍스트로 표시합니다.
  • 결과 개수와 별도로 필터에 레이블을 지정합니다.
  • 상태 영역을 실제 로컬 선택을 알리는 데 사용합니다.
  • 즉시 반영되는 상태 업데이트에 대기 중 스피너를 표시하지 마세요.

지원 사양 읽기

Alaska Airlines Auro 디자인 시스템 여러 버전이 실제로 공존할 때만 대체 이름 등록

컴포넌트 클래스와 전역 등록을 분리합니다

항공편 패키지를 표준 방식으로 가져오면 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와 버튼으로 표시 컴포넌트 외부에서 로컬 필터링 및 선택 상태를 처리합니다.

자바스크립트
// 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 디자인 시스템 AI 에이전트 설정

구현 시작점

기존 Vite vanilla 프로젝트를 위한 애플리케이션 진입점과 CSS를 완성하세요. 설치된 버전은 프로젝트 잠금 파일에 기록하세요. 여기서는 네이티브 컴포넌트 컴파일을 검증하지 않았습니다. 삽입된 예제는 별도의 오프라인 HTML을 사용하며 AS Circular 또는 Good OT를 포함하지 않습니다.

자바스크립트
// 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}

프로젝트를 위한 프롬프트

에이전트 프롬프트
명시적인 aag-theme-as, Alaska 디자인 토큰 CSS, WCSS 타이포그래피, 네이티브 auro-flight 필드를 사용해 Auro Alaska 항공편 목록을 구성하세요. ISO 오프셋과 운항 시간이 일치하도록 하세요. 컴포넌트 이벤트를 임의로 만들지 말고 애플리케이션에서 필터링과 선택을 관리하며, 숨겨진 선택 항목을 초기화하고 각 레코드에 샘플 데이터임을 표시하세요.
05

Alaska Airlines Auro 디자인 시스템 출처 및 범위

독립적으로 만든 OpenDesign입니다. 항공편 번호, 날짜, 시간은 모두 허구이며 실제 항공사 운항 일정, 요금, 운항 가능 여부 또는 예약을 나타내지 않습니다. 애플리케이션 간격을 공식 토큰 척도라고 주장하지 않습니다.