JQuery UI
1. 개요
jQuery UI는 jQuery 라이브러리를 기반으로 하는 사용자 인터페이스(UI) 라이브러리이다. 상호작용, 위젯, 효과, 유틸리티 등 다양한 기능을 제공하며, 웹 페이지 요소의 드래그, 드롭, 크기 조절, 선택, 정렬과 같은 마우스 기반 대화형 기능을 구현한다. 위젯은 테마를 적용할 수 있는 컨트롤을 제공하며, 자동 완성, 날짜 선택기, 진행률 표시줄, 슬라이더 등이 포함된다. 또한 애니메이션 효과를 통해 사용자 인터페이스를 풍부하게 만들며, 2007년 9월에 처음 출시되었다.
| 개발자 | Paul Bakaus Scott González Jörn Zaefferer Felix Nagel Mike Sherov Rafael Xavier de Souza |
|---|---|
| 최신 릴리스 버전 | 1.13.0 |
| 최신 릴리스 날짜 | 2021년 10월 7일 |
| 장르 | 플러그인 |
| 프로그래밍 언어 | 자바스크립트 |
| 라이선스 | MIT 허가서 |
| 웹사이트 | jQuery UI 공식 웹사이트 |
| 상태 | 활성 |
|---|---|
| 최신 미리보기 버전 | 1.13.0-rc.3 |
| 최신 미리보기 날짜 | 2021년 9월 25일 |
-
CSS 프레임워크 -
YAML (프레임워크)
YAML 프레임워크는 다양한 콘텐츠 관리 시스템 및 전자 상거래 시스템을 위한 템플릿을 제공하며, TYPO3, 드루팔, 줌라!, 닷넷누크, xt:Commerce, ExpressionEngine, MODX, Papaya CMS, Serendipity, 워드프레스 등 여러 CMS를 지원한다. -
CSS 프레임워크 -
부트스트랩 (프론트엔드 프레임워크)
부트스트랩은 마크 오토와 제이콥 손턴이 개발한 HTML, CSS, JavaScript 기반의 프론트엔드 프레임워크이며, 반응형 웹 디자인, 모바일 우선 접근 방식, 다양한 컴포넌트 등을 제공하여 웹 페이지 개발을 단순화하는 데 사용된다. -
MIT 라이선스 소프트웨어 -
MS-DOS
MS-DOS는 마이크로소프트가 개발한 개인용 컴퓨터용 디스크 운영 체제로, IBM PC의 표준 운영 체제로 널리 사용되었으며, 단일 작업 환경과 명령줄 인터페이스를 특징으로 한다. -
MIT 라이선스 소프트웨어 -
Zcash
Zcash는 존스 홉킨스 대학교 연구를 기반으로 개발된 익명성 강화 암호화폐로, zk-SNARK 영지식 증명을 통해 거래 당사자의 익명성을 보장하지만, 범죄 악용 우려와 규제 대상 가능성이 존재한다. -
공식 웹사이트에 알 수 없는 변수를 사용한 문서 -
브루클린 미술관
브루클린 미술관은 1823년 브루클린 견습생 도서관으로 시작하여 현재 약 50만 점의 소장품을 보유한 뉴욕 브루클린 소재의 미술관으로, 다양한 분야의 예술 작품을 전시하며 특히 아프리카 미술과 여성주의 미술에 대한 기여가 크다. -
공식 웹사이트에 알 수 없는 변수를 사용한 문서 -
광주지방기상청
광주지방기상청은 광주광역시와 전라남도 지역의 기상 예보, 특보, 관측, 기후 정보 제공 등의 업무를 수행하는 기상청 소속 기관으로, 1949년 광주측후소로 설치되어 1992년 광주지방기상청으로 개편되었으며, 기획운영과, 예보과, 관측과, 기후서비스과와 전주기상지청, 목포기상대를 두고 있다.
2. 기능
jQuery UI는 웹 페이지의 사용자 인터페이스를 향상시키기 위한 다양한 기능을 제공하며, 크게 상호작용, 위젯, 효과, 유틸리티 네 가지 범주로 나눌 수 있다.
1.11.4 릴리스 기준으로, 마우스를 이용한 드래그 앤 드롭이나 요소 정렬과 같은 상호작용 기능이 지원된다. 또한, 자동 완성, 날짜 선택기, 진행률 표시줄, 슬라이더 등 다양한 위젯을 제공하며, 이 위젯들은 테마 기능을 통해 디자인을 자유롭게 변경할 수 있다. 색상 애니메이션, 클래스 전환 효과 등 시각적인 효과 기능도 포함하고 있다.
jQuery UI의 기능들은 필요에 따라 개별적으로 선택하여 다운로드할 수 있어 파일 크기를 줄이는 데 유리하다. 이러한 모듈식 구성은 서드 파티 개발자가 직접 테마를 만들어 제공하는 것을 가능하게 한다. 예를 들어, jQUIT Builder에서는 윈도우 8 스타일의 UI를 모방한 테마를 제공하기도 한다.
2.1. 상호작용
사용자와 웹 페이지 간의 상호작용을 지원하는 기능들이다. 마우스 기반의 대화형 기능을 구현하는 데 사용된다. 1.11.4 릴리스부터 드래그 가능/드롭 가능 및 정렬 가능과 같은 상호 작용이 지원된다.
JQuery UI에서 제공하는 주요 상호작용 기능은 다음과 같다.
* 드래그 (Draggable): 각 요소에 대한 드래그 기능을 구현한다.
* 드롭 (Droppable): 드래그와 함께 사용되어 요소의 드롭을 가능하게 한다.
* 크기 조절 (Resizable): 요소의 크기 조절을 구현한다.
* 선택 가능 (Selectable): 여러 요소를 선택할 수 있게 한다.
* 정렬 가능 (Sortable): 요소의 정렬을 할 수 있게 한다.
2.2. 위젯
jQuery UI의 위젯은 웹 사이트 이용자가 시각적으로 상호작용하는 컨트롤 요소이다. 모든 위젯은 테마 메커니즘을 통해 디자인을 변경할 수 있다. 위젯은 기능별로 분할하여 다운로드할 수 있어 파일 크기를 줄이는 데 유리하며, 서드 파티가 제작한 테마를 적용하는 것도 가능하다. 예를 들어, jQUIT Builder에서는 윈도우 8 스타일 UI를 모방한 테마를 제공하기도 한다.
다음은 jQuery UI에서 제공하는 주요 위젯 목록이다.
| 위젯명 | 설명 |
|---|---|
| 아코디언 (Accordion) | 여러 패널 중 하나만 열어 내용을 보여주는 컨테이너. |
| 자동 완성 (Autocomplete) | 사용자의 입력에 기반하여 추천 목록을 보여주는 자동 완성 상자. 메뉴(Menu) 위젯과 함께 사용된다. |
| 버튼 (Button) | 기본적인 버튼 외형을 개선하고, 라디오 버튼과 체크상자를 누름 버튼 형태로 변환할 수 있다. |
| 날짜 선택기 (Datepicker) | 날짜 선택 기능을 제공하는 달력 인터페이스. 텍스트 상자 등에 선택된 날짜를 입력할 수 있다. |
| 대화 상자 (Dialog) | 다른 콘텐츠 위에 표시되는 대화 상자 창. 제목 표시줄, 콘텐츠 영역, 버튼 등으로 구성되며, 버튼(Button) 위젯과 함께 사용된다. |
| 메뉴 (Menu) | 드롭다운 또는 중첩된 형태의 메뉴를 표시한다. |
| 프로그레스바 (Progressbar) | 작업 진행 상태를 시각적으로 보여주는 상태 표시줄. 애니메이션 효과를 포함하거나 제외할 수 있다. |
| Selectmenu | 네이티브 HTML 셀렉트 요소의 기능을 복제하고 확장하여 제한을 극복한다. |
| 슬라이더 (Slider) | 사용자가 특정 범위 내에서 값을 선택할 수 있도록 하는 슬라이더 컨트롤. |
| 스피너 (Spinner) | 숫자 값을 위아래 버튼으로 조절할 수 있는 입력 필드. 버튼(Button) 위젯과 함께 사용된다. |
| 탭 (Tabs) | 콘텐츠를 여러 탭으로 나누어 보여주는 인터페이스. 인라인 콘텐츠 또는 Ajax를 통해 동적으로 콘텐츠를 불러올 수 있다. 버튼(Button) 위젯과 함께 사용된다. |
| 툴팁 (Tooltip) | 특정 요소 위에 마우스를 올렸을 때 추가 정보를 보여주는 작은 도움말 상자. |
또한, jQuery UI 1.11.4 릴리스부터는 드래그 가능(Draggable), 드롭 가능(Droppable), 정렬 가능(Sortable)과 같은 상호 작용 기능도 위젯과 유사하게 지원된다.
2.3. 효과
jQuery에서 제공하는 기본 효과 기능을 확장하여, UI 요소가 표시되거나 사라질 때 다양한 애니메이션 효과를 적용할 수 있다.
* 색상 애니메이션 (Color Animation): 한 색상에서 다른 색상으로 부드럽게 전환하는 애니메이션 효과를 제공한다.
* 클래스 전환 (Toggle Class, Add Class, Remove Class, Switch Class): CSS 클래스를 추가, 제거, 전환하면서 스타일 변경에 애니메이션 효과를 적용한다.
* 효과 (Effect): 나타나기(Fade-in), 미끄러지기(Slide-down), 폭발하기(Explode) 등 미리 정의된 다양한 시각 효과를 제공한다.
* 토글 (Toggle): 지정된 효과를 사용하여 요소를 나타내거나 숨기는 동작을 전환한다.
* 숨기기/보이기 (Hide, Show): 위에서 언급된 효과들을 사용하여 요소를 숨기거나 표시한다.
2.4. 유틸리티
* Position – 다른 요소의 위치에 상대적으로 요소의 위치를 설정한다(정렬).
* Widget Factory – 모든 JQuery UI 위젯과 동일한 추상화를 사용하여, 상태를 저장하는(stateful) jQuery 플러그인을 생성한다.
3. 예제
다음은 jQuery UI를 사용하여 특정 HTML 요소를 사용자가 마우스로 드래그할 수 있도록 만드는 간단한 예제이다. 나를 드래그 해보세요
먼저, 드래그 기능을 적용할 HTML 요소를 준비한다. 아래 예시에서는 `id` 속성값이 "draggable"인 `div` 요소를 사용한다. 이 요소에 간단한 스타일을 적용하여 시각적으로 구분되도록 할 수 있다.
다음으로, JavaScript와 jQuery를 이용하여 해당 요소에 드래그 기능을 추가한다. DOM이 완전히 로드된 후 스크립트가 실행되도록 `$(function() { ... });` 구문 안에 코드를 작성한다. `#draggable` CSS 선택자를 사용하여 `id`가 "draggable"인 요소를 선택하고, `.draggable()` 메소드를 호출하여 드래그 기능을 활성화한다.
$(function() {
// id가 "draggable"인 요소를 드래그 가능하게 만듭니다.
$("#draggable").draggable();
});
위 코드를 웹 페이지에 적용하면, 사용자는 `id`가 "draggable"인 `div` 요소를 마우스로 클릭하여 원하는 위치로 자유롭게 끌어다 놓을 수 있게 된다. 이는 웹 인터페이스에서 사용자 경험을 향상시키는 데 유용하게 활용될 수 있다.
4. 출시 역사
jQuery UI는 2007년 9월 17일에 처음 출시되었다.
| 출시일 | 버전 번호 | jQuery 의존성 | 참고 |
|---|---|---|---|
| 2007년 9월 17일 | 1.0 (미표기) | 1.2.1+ | 초기 릴리스 |
| 2008년 6월 8일 | 1.5 | 1.2.1+ | |
| 2009년 4월 16일 | 1.6 | 1.2.6+ | jQuery 1.2.6 호환 릴리스. |
| 2009년 3월 3일 | 1.7 | 1.3.2+ | |
| 2010년 3월 18일 | 1.8 | 1.3.2+ | |
| 2011년 1월 19일 | 1.8.9 | 1.3.2+ | |
| 2011년 2월 22일 | 1.8.10 | 1.3.2+ | |
| 2011년 3월 15일 | 1.8.11 | 1.3.2+ | |
| 2011년 4월 13일 | 1.8.12 | 1.3.2+ | |
| 2011년 5월 12일 | 1.8.13 | 1.3.2+ | |
| 2011년 6월 17일 | 1.8.14 | 1.3.2+ | |
| 2011년 8월 1일 | 1.8.15 | 1.3.2+ | |
| 2011년 8월 15일 | 1.8.16 | 1.3.2+ | |
| 2012년 1월 10일 | 1.8.17 | 1.3.2+ | |
| 2012년 2월 20일 | 1.8.18 | 1.3.2+ | |
| 2012년 4월 16일 | 1.8.19 | 1.3.2+ | |
| 2012년 4월 30일 | 1.8.20 | 1.3.2+ | |
| 2012년 6월 5일 | 1.8.21 | 1.3.2+ | |
| 2012년 7월 24일 | 1.8.22 | 1.3.2+ | |
| 2012년 8월 15일 | 1.8.23 | 1.3.2+ | |
| 2012년 9월 28일 | 1.8.24 | 1.3.2+ | |
| 2012년 10월 8일 | 1.9.0 | 1.6+ | |
| 2012년 10월 25일 | 1.9.1 | 1.6+ | |
| 2012년 11월 23일 | 1.9.2 | 1.6+ | |
| 2013년 1월 17일 | 1.10.0 | 1.6+ | IE6 지원 중단 |
| 2013년 2월 15일 | 1.10.1 | 1.6+ | |
| 2013년 3월 14일 | 1.10.2 | 1.6+ | |
| 2013년 5월 3일 | 1.10.3 | 1.6+ | |
| 2014년 1월 17일 | 1.10.4 | 1.6+ | |
| 2014년 4월 25일 | 1.11.0-beta.1 | 1.6+ | IE7 지원 중단 |
| 2014년 5월 23일 | 1.11.0-beta.2 | 1.6+ | |
| 2014년 6월 26일 | 1.11.0 | 1.6+ | |
| 2014년 8월 13일 | 1.11.1 | 1.6+ | |
| 2014년 10월 16일 | 1.11.2 | 1.6+ | |
| 2015년 2월 12일 | 1.11.3 | 1.6+ | |
| 2015년 3월 11일 | 1.11.4 | 1.6+ | |
| 2016년 1월 26일 | 1.12.0-beta.1 | 1.7+ | IE8, IE9, IE10 지원 중단 |
| 2016년 3월 17일 | 1.12.0-rc.1 | 1.7+ | |
| 2016년 4월 21일 | 1.12.0-rc.2 | 1.7+ | |
| 2016년 7월 8일 | 1.12.0 (미발표) | 1.7+ | |
| 2016년 9월 14일 | 1.12.1 | 1.7+ | |
| 2021년 10월 7일 | 1.13.0 | 1.8+ | |
| 2022년 7월 14일 | 1.13.2 | 1.8+ |