<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" />
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" />
<link rel="stylesheet" href="/to/path/pico-ui.css" />
<script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
crossorigin="anonymous"></script>
<script type="text/javascript" src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU="
crossorigin="anonymous"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.3/jquery.ui.touch-punch.min.js"></script>
<script type="text/javascript" src="/to/path/pico-ui.js"></script>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" />
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" />
<link rel="stylesheet" href="./pico-ui.css" />
<script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
crossorigin="anonymous"></script>
<script type="text/javascript" src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU="
crossorigin="anonymous"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.3/jquery.ui.touch-punch.min.js"></script>
<script type="text/javascript" src="./pico-ui.js"></script>
</head>
<body>
</body>
<script>
pico.desk.init({
apps:{
items:[
{
accessid:"page-a",
title:"Page A",
icon:{
type:"material",
class:"people_alt",
},
window:{
url:"./a.html"
}
}
]
},
dock:{
items:["page-a"]
}
});
</script>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" />
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" />
<link rel="stylesheet" href="./pico-ui.css" />
<script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
crossorigin="anonymous"></script>
<script type="text/javascript" src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU="
crossorigin="anonymous"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.3/jquery.ui.touch-punch.min.js"></script>
<script type="text/javascript" src="./pico-ui.js"></script>
</head>
<body>
</body>
<script>
pico.desk.init({
apps:{
items:[
{
accessid:"page-a",
title:"Page A",
icon:{
type:"material",
class:"people_alt",
},
window:{
url:"./a.html"
}
}
]
},
dock:{
items:["page-a"]
}
});
</script>
</html>
Pico UI를 실행하는 명령어입니다.
옵션 | 형식 | 필수 | 기본값 | 설명 |
---|---|---|---|---|
language | String | 아니오 | ko | 언어를 설정합니다. 한국어:ko/영어:en/러시아어:ru/중국어:zh/일본어:ja |
containment | String | 아니오 | body | pico-ui가 실행될 부모태그를 선택합니다. |
theme | String | 아니오 | default | 테마를 설정합니다. |
background | String | 아니오 | null | 배경화면의 경로를 지정합니다. |
appshelp_outline | Object | 예 | null | 앱을 설정합니다. |
windowhelp_outline | Object | 아니오 | null | 앱 클릭시 실행되는 창의 옵션을 설정합니다. |
taskbarhelp_outline | Object | 아니오 | null | 상단 테스크바의 옵션을 설정합니다. null일 경우 테스크바는 나타나지 않습니다. |
shortcutshelp_outline | Object | 예 | null | 배경화면에 바로가기 아이콘을 추가합니다. null일 경우 바로가기가 나타나지 않습니다. |
dockhelp_outline | Object | 예 | null | 배경화면 하단에 dock을 설정합니다. |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" />
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" />
<link rel="stylesheet" href="./pico-ui.css" />
<script type="text/javascript" src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
crossorigin="anonymous"></script>
<script type="text/javascript" src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU="
crossorigin="anonymous"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.3/jquery.ui.touch-punch.min.js"></script>
<script type="text/javascript" src="./pico-ui.js"></script>
</head>
<body>
</body>
<script>
pico.desk.init({
apps:{
items:[
{
accessid:"page-a",
title:"Page A",
icon:{
type:"material",
class:"people_alt",
},
window:{
url:"./a.html"
}
}
]
},
dock:{
items:["page-a"]
}
});
</script>
</html>
옵션 | 형식 | 필수 | 기본값 | 설명 |
---|---|---|---|---|
accessid | String | 예 | null | 참조id입니다.
pico.desk.init()시 apps 옵션에 전달된 items 객체는 이 옵션을 활용할 수 있습니다. shortcuts, dock등 앱을 필요로 하는 곳에서 이 옵션의 값을 사용합니다. |
title | String | 예 | null | 앱의 이름입니다. |
iconhelp_outline | Object | 예 | null | 앱의 아이콘을 설정합니다. |
windowhelp_outline | Object | 예 | null | 앱 실행 창에 대한 정보입니다. 창의 크기, 실행 위치, 연결할 URL 등을 설정할 수 있습니다. |
이벤트명 | 인자 | 설명 |
---|---|---|
click() | function | icon 클릭 시(taskbarhelp_outline에서만 사용가능합니다.) |
상위 옵션 | accessid | title | icon | window | click() |
---|---|---|---|---|---|
apps | o | o | o | o | x |
dock | o | o | o | o | x |
shortcut | o | o | o | o | x |
taskbar | x | x | o | x | o |
아래 예제는 상위 객체가 apps인 경우 사용법입니다.
...
var appItems = [
{
accessid: "app-person",
title: '계정',
icon: {
type: "material",
class: "people_alt"
},
window: {
buttonsColor: "#fd7e14",
multi: true,
width: 1024,
height: 700,
url: "/demo/account"
}
}, {
accessid: "app-schedule",
title: '일정',
icon: {
type: "material",
class: "calendar_today"
},
window: {
buttonsColor: "#dc3545",
multi: true,
resize: false,
width: 1024,
height: 700,
url: "/demo/schedule"
}
}, {
accessid: "app-gallery",
title: '갤러리',
icon: {
type: "material",
class: "amp_stories"
},
window: {
buttonsColor: "#007bff",
multi: true,
resize: false,
width: 1024,
height: 700,
url: "/demo/gallery"
}
}, {
accessid: "app-board",
title: '게시판',
type: "link",
icon: {
type: "material",
class: "title"
},
window: {
buttonsColor: "#5400dc",
multi: true,
resize: false,
width: 1024,
height: 700,
url: "/demo/board"
}
}
];
...
https://material.io를 참고하여 class값을 부여합니다.
옵션 | 형식 | 필수 | 기본값 | 설명 |
---|---|---|---|---|
type | String | 예 | null | 아이콘의 타입을 설정합니다. 값으로 'material'사용을 권장합니다. |
class | String | 예 | null | 'material' 의 아이콘 이름을 기재합니다. |
// <span class="material-icons">3rd_rotation</span> 형태를 icon으로 사용하는 방법
var myApp = {
...
icon:{
type:"material",
class:"3rd_rotation"
}
...
};
옵션 | 형식 | 필수 | 기본값 | 설명 |
---|---|---|---|---|
itemshelp_outline | Object[] | 예 | null | 앱을 추가합니다. items 객체를 배열로 추가해야합니다. |
var myGallery = {
accessid:"my-gallery",
title:"갤러리",
icon:{
type:"material",
class:"amp_stories"
},
window:{
buttonsColor:"#fd7e14",
multi:true,
width:1024,
height:700,
url:"/demo/gallery"
}
};
var myBoard = {
accessid:"app-board",
title:'게시판',
icon:{
type:"material",
class:"title",
},
window:{
buttonsColor:"#5400dc",
multi:true,
resize:false,
width:1024,
height:700,
url:"/demo/board"
}
};
var myApps = [
myGallery,
myBoard
];
pico.desk.init({
apps:{
items:myApps
},
dock:{
enabled:true,
items:["my-gallery","app-board"]
},
});
옵션 | 형식 | 필수 | 기본값 | 설명 |
---|---|---|---|---|
multi | boolean | 아니오 | false | 하나의 앱을 여러개 실행시킬 수 있는지 설정합니다. |
resize | boolean | 아니오 | true | 모든 창의 크기 조절 가능여부를 설정합니다. * 최소/최대화는 영향을 받지않습니다. |
minimize | boolean | 아니오 | true | 모든 창의 최소화 가능여부를 설정합니다. |
maxmize | boolean | 아니오 | true | 모든 창의 최대화 가능여부를 설정합니다. |
width | int | 아니오 | 800 | 모든 창의 기본 너비를 설정합니다. |
height | int | 아니오 | 600 | 모든 창의 기본 높이를 설정합니다. |
x | int | 아니오 | 0 | 모든 창의 실행시 기본 x좌표를 설정합니다. |
y | int | 아니오 | 0 | 모든 창의 실행시 기본 x좌표를 설정합니다. |
url | String | 예 | null | 창 내부에 나타낼 url을 설정합니다. |
이벤트명 | 인자 | 설명 |
---|---|---|
openBefore() | 없음 | 창 실행 전 |
openComplete() | 없음 | 창 실행 끝난뒤 |
closeBefore() | 없음 | 창 닫기 전 |
closeComplete() | 없음 | 창 닫힌 후 |
moveStart() | 없음 | 창 이동 시작시 |
moving() | 없음 | 창 이동 중 |
moveStop() | 없음 | 창 이동 후 |
resizeStart() | 없음 | 창 정렬 시작시 |
resizing() | 없음 | 창 정렬 중 |
resizeStop() | 없음 | 창 정렬 끝난뒤 |
minimizeStart() | 없음 | 창 최소화 시작시 |
minimizeStop() | 없음 | 창 최소화 끝난뒤 |
maxmizeStart() | 없음 | 창 최대화 시작시 |
maxmizeStop() | 없음 | 창 최대화 끝난뒤 |
옵션 | 형식 | 필수 | 기본값 | 설명 |
---|---|---|---|---|
enabled | boolean | 아니오 | true | 테스크바 사용여부 |
clock | boolean | 아니오 | true | 시계 사용여부 |
clock24h | boolean | 아니오 | false | 시간형식 (false: 오전/오후 12:00 | true: 24:00) |
itemshelp_outline | Object[] | 아니오 | null | taskbar 우측에 작은 앱을 추가합니다. |
pico.desk.init({
apps:{
items:[{
accessid:"page-a",
title:"Page A",
icon:{
type:"material",
class:"people_alt",
},
window:{
url:"./a.html"
}
},
{
accessid:"page-b",
title:"Page B",
icon:{
type:"material",
class:"calendar_today",
},
window:{
url:"./b.html"
}
}]
},
dock:{
enabled:true,
active:true,
animate:true,
items:["page-a","page-b"],
position:"bottom"
},
shortcuts:{
enabled:true,
items:["name"]
},
taskbar:{
items:[
{
icon:{
type:"material",
class:"notifications",
},
click:function(e){
pico.toast({
message:'메시지가 없습니다.',
duplicate:false,
position:"center-center",
delay:2000,
color:"warning",
finish:function(){
console.log("finish");
},
});
}
},
{
icon:{
type:"material",
class:"power_settings_new",
},
click:function(){
pico.confirm({
title:null,
message:'로그아웃 하시겠습니까?',
buttons:{
align:"horizontal",
yes:function(obj, event){
console.log("YES");
event.dismiss();
location.href="/";
},
no:function(obj, event){
console.log("NO");
}
}
});
}
}
],
complete:function(ui){
console.log(ui);
}
},
});
옵션 | 형식 | 필수 | 기본값 | 설명 |
---|---|---|---|---|
enabled | boolean | 아니오 | true | 배경화면에 바로가기 앱 사용여부를 설정합니다. |
itemshelp_outline | String[] | 예 | null | init()의 인자로 apps에 넣어준 items 객체의 accessid 값을 문자열 배열 형태로 적습니다. |
옵션 | 형식 | 필수 | 기본값 | 설명 |
---|---|---|---|---|
enabled | boolean | 아니오 | true | dock의 사용여부를 설정합니다. |
active | boolean | 아니오 | true | dock의 사용여부를 설정합니다. enabled과의 차이점 필요 |
position | String | 아니오 | bottom | 배경화면 기준으로 dock의 위치를 지정합니다. (bottom: 하단) |
animate | boolean | 아니오 | false | dock 아이콘에 마우스를 올리면 확대되는 효과의 사용여부를 설정합니다. |
itemshelp_outline | String[] | 예 | null | init()의 인자로 apps에 넣어준 items 객체의 accessid 값을 문자열 배열 형태로 적습니다. |
이벤트명 | 인자 | 설명 |
---|---|---|
complete() | 없음 | dock 생성 후 |
itemDragStart() | 없음 | dock의 앱 이동 전 |
itemDragging() | 없음 | dock의 앱 이동 중 |
itemDragStop() | 없음 | dock의 앱 이동 후 |
sortStart() | 없음 | 창 이동 시작시 |
sorting() | 없음 | 창 이동 중 |
sortStop() | 없음 | 창 이동 후 |
옵션 | 형식 | 필수 | 기본값 | 설명 |
---|---|---|---|---|
title | String | 예 | null | alert의 제목입니다. |
message | String | 예 | null | alert의 내용입니다. |
duration | int | 아니오 | 250 | alert이 나타나고 사라지는 애니메이션의 시간입니다. 값이 높을수록 천천히 나타나고 천천히 사라집니다. |
scale | String | 아니오 | default | alert의 크기를 설정합니다. small / normal / big |
class | String | 아니오 | null | alert에 class를 추가합니다. |
이벤트명 | 인자 | 설명 |
---|---|---|
close() | 없음 | alert이 닫히고 난 후 |
pico.alert({
message:'이것은 alert창입니다.',
close:function(){
console.log('alert창이 닫혔습니다.');
}
});
옵션 | 형식 | 필수 | 기본값 | 설명 |
---|---|---|---|---|
title | String | 예 | null | confirm의 제목입니다. |
message | String | 예 | null | confirm의 내용입니다. |
buttons | Object | 예 | null | confirm 하단의 버튼을 제어합니다. 객체 옵션은 아래에서 지정할 수 있습니다. |
buttons:{ | ||||
align | String | 아니오 | horizontal | 버튼의 위치를 설정합니다. (horizontal:수직정렬 / vertical:수평정렬) |
yes | function(obj, event) | 예 | null | 버튼에서 '예'를 클릭할 경우 실행할 callback 함수입니다. * 반드시 파라미터 기재(obj, event)가 필요합니다. * 반드시 confirm 종료 코드 event.dismiss()가 필요합니다. |
no | function(obj, event) | 예 | null | 버튼에서 '아니오'를 클릭할 경우 실행할 callback 함수입니다. * 반드시 파라미터 기재(obj, event)가 필요합니다. |
} | ||||
duration | int | 아니오 | 250 | confirm이 나타나고 사라지는 애니메이션의 시간입니다. 값이 높을수록 천천히 나타나고 천천히 사라집니다. |
scale | String | 아니오 | default | confirm의 크기를 설정합니다. small / normal / big |
class | String | 아니오 | null | confirm에 class를 추가합니다. |
pico.confirm({
title:'안녕하세요',
message:'이것은 확인창입니다.',
buttons:{
yes:function(obj, event){
console.log("'예'를 클릭하셨습니다.");
// '예' 클릭시 confirm창이 사라지기전에 실행될 코드
event.dismiss(); // 창을 사라지게 합니다.
// '예' 클릭시 confirm창이 사라지고난 후 실행될 코드
},
no:function(obj, event){
console.log("'아니오'를 클릭하셨습니다.");
}
}
});
옵션 | 형식 | 필수 | 기본값 | 설명 |
---|---|---|---|---|
message | String | 예 | Toast | toast의 내용입니다. |
position | String | 아니오 | center-center |
toast가 화면에 나타날 위치입니다.
사용가능한 값과 위치는 아래와 같습니다. top-left
top-center
top-right
center-left
center-center
center-right
bottom-left
bottom-center
bottom-right
|
duration | int | 아니오 | 250 | toast이 나타나고 사라지는 애니메이션의 시간입니다. 값이 높을수록 천천히 나타나고 천천히 사라집니다. |
delay | int | 아니오 | 1000 | toast의 지속시간입니다. 값이 높을수록 오랫동안 나타납니다. |
color | String | 아니오 | success | toast의 색상을 설정합니다. success: #00c851 / warning: #fb3 / info: #33b5e5 / error: #ff3547 또는 임의의 rgb값으로 설정이 가능합니다. |
이벤트명 | 인자 | 설명 |
---|---|---|
finish() | 없음 | toast가 사라지고 난 후 |
pico.toast({
message:"Toast test.",
duplicate:false,
position:"center-center",
delay:2000,
color:"success",
finish:function(){
console.log("toast 사라짐");
}
});
옵션 | 형식 | 필수 | 기본값 | 설명 |
---|---|---|---|---|
title | String | 예 | null | popup의 제목입니다. |
contents | String | 예 | null | popup의 내용입니다. |
width | int | 아니오 | 300 | popup의 폭입니다. |
height | int | 아니오 | 400 | popup의 높이입니다. |
x | int | 아니오 | -1 | popup의 시작 x 좌표입니다. |
y | int | 아니오 | -1 | popup의 시작 y 좌표입니다. |
duration | int | 아니오 | 250 | popup이 나타나고 사라지는 애니메이션의 시간입니다. 값이 높을수록 천천히 나타나고 천천히 사라집니다. |
draggable | boolean | 아니오 | false | popup의 제목 영역을 마우스로 드래그하여 움직일 수 있는지 설정합니다. |
closeButton | boolean | 아니오 | false | popup을 닫을 수 있는 X 버튼을 제목 우측 영역에 나타낼지 설정합니다. |
scroll | boolean | 아니오 | false | popup의 contents영역을 스크롤할 수 있는지 설정합니다. |
footerHTML | String | 아니오 | null | popup의 하단 영역에 나타낼 html을 String 형태로 추가합니다. |
containment | String | 아니오 | html | popup를 자식으로 추가될 html영역을 선택합니다. html태그의 선택자 ('.example' 또는 '#example')로 추가할 수 있습니다. 비워둘 경우 <html> 가장 마지막에 추가됩니다. |