GNUI Start your next web project with GNUI.
Gn.util

Alert

/scss/components/alert.scss
v.0.1.0 javascript

기본 Alert 확장

  • 가로 사이즈 400이하 일 때 버튼은 가운데 정렬 선택
  • 가로 사이즈 400이상 일 때 버튼은 오른쪽 정력 선택
  • 백그라운드 컬러가 적용된 Alert은 투명 버튼 사용
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
<div class="gn-alert" style="width: 400px">
  Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
  <span class="gn-icon is-close">
    <i class="fas fa-times"></i>
  </span>
  <div class="alert-controls">
    <button type="button" class="gn-button">확인</button>
    <button type="button" class="gn-button is-cancel">취소</button>
  </div>
</div>
<div class="gn-alert is-primary" style="width: 500px">
  Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
  <span class="gn-icon is-close">
    <i class="fas fa-times"></i>
  </span>
  <div class="alert-controls has-text-right">
    <button type="button" class="gn-button is-outline is-trans">확인</button>
    <button type="button" class="gn-button is-cancel">취소</button>
  </div>
</div>

기본 사용

Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
<div class="gn-alert">
  Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
  <span class="gn-icon is-close">
    <i class="fas fa-times"></i>
  </span>
</div>

크기

Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
<div class="gn-alert is-small">
  Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
  <span class="gn-icon is-close">
    <i class="fas fa-times"></i>
  </span>
</div>
<div class="gn-alert is-normal">
  Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
  <span class="gn-icon is-close">
    <i class="fas fa-times"></i>
  </span>
</div>
<div class="gn-alert is-medium">
  Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
  <span class="gn-icon is-close">
    <i class="fas fa-times"></i>
  </span>
</div>
<div class="gn-alert is-large">
  Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
  <span class="gn-icon is-close">
    <i class="fas fa-times"></i>
  </span>
</div>

색상

  • 백그라운드 컬러 알림창 이용 시 가로 사이즈 400이상 넘지 않는다.
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
<div class="gn-alert is-success" style="width: 400px">
  Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
  <span class="gn-icon is-close">
    <i class="fas fa-times"></i>
  </span>
</div>
<div class="gn-alert is-warning" style="width: 400px">
  Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
  <span class="gn-icon is-close">
    <i class="fas fa-times"></i>
  </span>
</div>
<div class="gn-alert is-danger" style="width: 400px">
  Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
  <span class="gn-icon is-close">
    <i class="fas fa-times"></i>
  </span>
</div>
<div class="gn-alert is-info" style="width: 400px">
  Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
  <span class="gn-icon is-close">
    <i class="fas fa-times"></i>
  </span>
</div>

생성 옵션

  <button class="gn-button new-alert">Alert 예제보기</button>
  Gn.create('alert', {
    textSets : { alertText: 'alert이 생성됩니다.' },
    hasClose: false,
    hasConfirm: true,
    hasCancel: true,
    onConfirm: function(){
      console.log('확인 되었습니다.')
    },
    onClose: function(){
      console.log('취소 되었습니다.')
    }
  });
name type default description
textSets alertText string alert에 표기할 문구
confirm string 확인 확인버튼에 표기할 문구
cancel string 취소 취소버튼에 표기할 문구
width number|string 400 가로 사이즈
color string 'success','warning','danger','info','cancel','dark','link','trans','secondary','mono'
size string 'small','normal','medium','large'
hasClose boolean true 우측상단 닫기버튼 출력여부
hasConfirm boolean false 확인버튼 출력 여부
hasCancel boolean false 취소버튼 출력 여부
onConfirm function alert 확인버튼 클릭 시 수행될 이벤트
onClose function alert 창을 닫을때 수행될 이벤트

메소드

name return description
close() void 얼럿창을 닫는다.

Bignumber

/scss/components/bignumber.scss
v.0.1.0

기본 사용

33.23
Notifications
<div class="gn-bignumber">
  <div class="gn-bignumber-value">33.23</div>
  <span class="gn-bignumber-label">Notifications</span>
</div>

크기

33.23
small
33.23
normal
33.23
medium
33.23
large
<div class="gn-bignumber is-small">
  <div class="gn-bignumber-value">33.23</div>
  <span class="gn-bignumber-label">small</span>
</div>
<div class="gn-bignumber is-normal">
  <div class="gn-bignumber-value">33.23</div>
  <span class="gn-bignumber-label">normal</span>
</div>
<div class="gn-bignumber is-medium">
  <div class="gn-bignumber-value">33.23</div>
  <span class="gn-bignumber-label">medium</span>
</div>
<div class="gn-bignumber is-large">
  <div class="gn-bignumber-value">33.23</div>
  <span class="gn-bignumber-label">large</span>
</div>

컬러

  • success,warning,danger,info,cancel,dark,link,trans,secondary,mono
33.23
primary
33.23
secondary
33.23
info
33.23
success
33.23
warning
33.23
danger
33.23
cancel
33.23
mono
33.23
trans
<div class="gn-bignumber is-primary">
  <div class="gn-bignumber-value">33.23</div>
  <span class="gn-bignumber-label">primary</span>
</div>
<div class="gn-bignumber is-secondary">
  <div class="gn-bignumber-value">33.23</div>
  <span class="gn-bignumber-label">secondary</span>
</div>
<div class="gn-bignumber is-info">
  <div class="gn-bignumber-value">33.23</div>
  <span class="gn-bignumber-label">info</span>
</div>
<div class="gn-bignumber is-success">
  <div class="gn-bignumber-value">33.23</div>
  <span class="gn-bignumber-label">success</span>
</div>
<div class="gn-bignumber is-warning">
  <div class="gn-bignumber-value">33.23</div>
  <span class="gn-bignumber-label">warning</span>
</div>
<div class="gn-bignumber is-danger">
  <div class="gn-bignumber-value">33.23</div>
  <span class="gn-bignumber-label">danger</span>
</div>
<div class="gn-bignumber is-cancel">
  <div class="gn-bignumber-value">33.23</div>
  <span class="gn-bignumber-label">cancel</span>
</div>
<div class="gn-bignumber is-mono">
  <div class="gn-bignumber-value">33.23</div>
  <span class="gn-bignumber-label">mono</span>
</div>
<div class="gn-bignumber is-trans">
  <div class="gn-bignumber-value">33.23</div>
  <span class="gn-bignumber-label">trans</span>
</div>

Calendar

/scss/components/calendar.scss
v.0.1.0 javascript

생성 옵션

  • Calendar 단일 컴포넌트로 사용되거나, DatePicker의 type이 datetime 또는 date인 경우에 사용됨
<div class="new-calendar is-float-left"></div>
<div class="new-calendar1 is-float-left"></div>
  Gn.create('calendar', {
    target: '.new-calendar',
    value: '2021-04-01',
    onSelect: function (v) {
      console.log('선택한 날짜: '+ v)
    },
    max: '2021-04-30',
    min: '2021-03-01'
  });
  Gn.create('calendar', {
    target: '.new-calendar1',
    onSelect: function (v) {
      console.log('선택한 날짜: '+ v)
    },
    dateType: 'datetime',
    max: '1M',
    min: '-1M'
  });
name type default description
target string calendar 생성 타겟
value string | Date now 초기 날짜
dateType string date date, datetime
locale 'ko'|'en' ko 표기문구 언어
onSelect function(value) 날짜 선택 시 발생 이벤트

메소드

name return description
setDate(date) void 날짜 값을 변경한다.

Card

/scss/components/card.scss
v.0.1.0

컨트롤 항목

Content Title
Non consequat sit commodo qui aute. Occaecat pariatur deserunt ea aliqua commodo aliquip. Commodo aliquip irure esse excepteur tempor deserunt do sunt reprehenderit culpa reprehenderit. Eiusmod incididunt nisi aliquip veniam adipisicing esse quis irure aliqua enim nostrud aliqua adipisicing Lorem. Occaecat nulla culpa velit duis quis minim sunt. Ipsum cillum pariatur laboris Lorem ea ut veniam laborum. Non velit dolor reprehenderit quis veniam cillum ut excepteur duis tempor.
<div class="gn-card" style="width: 300px">
  <div class="card-header">
    Content Title
  </div>
  <div class="card-body">
    Non consequat sit commodo qui aute. Occaecat pariatur deserunt ea aliqua commodo aliquip. Commodo aliquip irure esse excepteur tempor deserunt do sunt reprehenderit culpa reprehenderit. Eiusmod incididunt nisi aliquip veniam adipisicing esse quis irure aliqua enim nostrud aliqua adipisicing Lorem. Occaecat nulla culpa velit duis quis minim sunt. Ipsum cillum pariatur laboris Lorem ea ut veniam laborum. Non velit dolor reprehenderit quis veniam cillum ut excepteur duis tempor.
  </div>
  <div class="card-items">
    <a href="#" class="card-item">상세정보</a>
    <a href="#" class="card-item">
      <span class="gn-icon">
        <i class="fas fa-clone"></i>
      </span>
      복사
    </a>
    <a href="#" class="card-item has-text-danger">
      <span class="gn-icon is-danger">
        <i class="fas fa-power-off"></i>
      </span>
      전원차단
    </a>
  </div>
</div>

Chart

/scss/components/chart.scss
v.0.1.0 javascript
<div class="lineChart"></div>
<div class="splineChart"></div>
name type value description
target string 차트를 생성할 대상의 선택자(selector)
type string line 라인차트
series Array name, data 로 구성된 object array
xaxis type string 'datetime' 가로축 분류 데이터 타입
categories array 가로축 분류 데이터
name type value description
target string 차트를 생성할 대상의 선택자(selector)
type string line 라인차트
series Array name, data 로 구성된 object array
xaxis type string 'datetime' 데이터 분류 타입
categories array 데이터 분류
Gn.create('chart', {
  target: '.lineChart',
  type: 'line',
  series: [{
    name: 'data1',
    data: [30, 200, 100, 400, 150, 250],
  },{
    name: 'data2',
    data: [50, 20, 10, 40, 15, 25]
  }],      
  xaxis: {
    type: 'datetime',
    categories: ['2018-09-19T00:00:00.000Z', '2018-09-19T01:30:00.000Z', '2018-09-19T02:30:00.000Z', '2018-09-19T03:30:00.000Z', '2018-09-19T04:30:00.000Z', '2018-09-19T05:30:00.000Z']
  }
});
Gn.create('chart', {
  target: '.splineChart',
  type: 'spline',
  series: [{
    name: 'data1',
    data: [30, 200, 100, 400, 150, 250],
  }],
  xaxis: {
    type: 'datetime',
    categories: ['2018-09-19T00:00:00.000Z', '2018-09-19T01:30:00.000Z', '2018-09-19T02:30:00.000Z', '2018-09-19T03:30:00.000Z', '2018-09-19T04:30:00.000Z', '2018-09-19T05:30:00.000Z']
  }
});
<div class="columnChart"></div>
<div class="barChart"></div>
name type value description
target string 차트를 생성할 대상의 선택자(selector)
type string column 컬럼차트
series Array name, data 로 구성된 object array
chart stacked boolean false 그래프 누적 여부
name type value description
target string 차트를 생성할 대상의 선택자(selector)
type string bar 바 차트
series Array name, data 로 구성된 object array
xaxis categories array 데이터 분류
 Gn.create('chart', {
    target: '.columnChart',
    type: 'column',
    chart: {
      stacked: true
    },
    series: [{
      name: 'data1',
      data: [30, 200, 100, 400, 150, 250],
    },{
      name: 'data2',
      data: [50, 20, 10, 40, 15, 25]
    }]
  });
Gn.create('chart', {
    target: '.barChart',
    type: 'bar',
    series: [{
      data: [30, 200, 100, 400, 150, 250],
    }],
    xaxis: {
      categories: ['data1','data2','data3','data4','data5','data6']
    }
  });
<div class="pieChart"></div>
<div class="donutChart"></div>

name type value description
target string 차트를 생성할 대상의 선택자(selector)
type string pie 파이차트
series Array number array
labels Array string array

name type value description
target string 차트를 생성할 대상의 선택자(selector)
type string donut 도넛차트
series Array number array
labels Array string array

Gn.create('chart', {
  target: '.pieChart',
  type: 'pie',
  series: [30, 200, 100, 400],
  labels: ['data1','data2','data3','data4']
});
Gn.create('chart', {
  target: '.donutChart',
  type: 'donut',
  series: [30, 200, 100, 400, 150, 250],
  labels: ['data1','data2','data3','data4','data5','data6']
});
<div class="radialChart"></div>
<div class="gaugeChart"></div>

name type value description
target string 차트를 생성할 대상의 선택자(selector)
type string gauge 게이지차트
series Array number array
labels Array string array

name type value description
target string 차트를 생성할 대상의 선택자(selector)
type string radial 래디얼차트
series Array number array
labels Array string array

Gn.create('chart', {
  target: '.gaugeChart',
  type: 'gauge',
  series: [30],
  labels: ['data1']
});
Gn.create('chart', {
  target: '.radialChart',
  type: 'radial',
  series: [30],
  labels: ['data1']
});

Datagrid

/scss/components/datagrid.scss
v.0.1.0 javascript

기본 사용

  • 데이터 테이블
<div class="new-grid"></div>

<div style="width: 100%; height: 100px; overflow-x: auto; margin-top: 20px;">
  <div class="new-grid2"></div>
</div>

<div style="width: 100%; overflow-x: auto; margin-top: 20px;">
  <div class="new-grid3"></div>
</div>

<div style="width: 100%; margin-top: 20px;">
  <div class="new-grid4"></div>
</div>
Gn.create('datagrid', {
  target: '.new-grid',
  headers: [
    {
      label: 'no',
      key: 'number',
      onSelect: function() {
        console.log(arguments)
      },
      template: function(k, d) {
        return '<span>' + d[k] + '</span>'
      },
      draggable: true,
      sortable: true,
      sort: 'asc'
    },
    {
      label: '제목',
      key: 'title',
      style: {
        width: '250px'
      },
      className: 'has-text-right',
      draggable: true,
      bodyClass: 'has-text-left',
      sortable: true
    },
    {
      label: '날짜',
      key: 'date',
      style: {
        width: '150px'
      },
      className: 'has-text-center',
      bodyClass: 'has-text-left'
    }
  ],
  data: [
    {
      number: '1',
      title: '하나',
      date: '2020-09-19',
      desc: 'hello, world',
      child: [
        {
          number: '1-1',
          title: '1-하나',
          date: '2020-09-19'
        },
        {
          number: '1-2',
          title: '1-둘',
          date: '2020-09-19',
          desc: 'hello, world',
          child: [
            {
              number: '1-2-1',
              title: '1-둘-1',
              date: '2020-09-19',
              desc: 'hello, world',
              child: [
                {
                  number: '1-2-1-1',
                  title: '1-둘-1-1',
                  desc: 'hello, world',
                  date: '2020-09-19'
                }
              ]
            }
          ]
        }
      ]
    },
    {
      number: '2',
      title: '둘',
      date: '2020-09-19',
      desc: 'hello, world'
    }
  ],
  onSort: function(column) {
    console.log('column', column)
  },
  onDragEnd: function(column, columns) {
    console.log(column, columns)
  },
  onToggle: function(type, row, n) {
    console.log(type, row, n)
        // 이렇게 하면 펼쳐질때마다 해당 로우에 2개의 자식을 바인딩한다.
        // type === 'expanded' && this.addChild(n, [{
        //   number: '000',
        //   title: '추가된 자식1',
        //   date: '2020-02-02'
        // },{
        //   number: '001',
        //   title: '추가된 자식2',
        //   date: '2020-02-02'
        // }]) 
  },
  onCheckAll: function(ggg) {
    console.log('ggg', ggg)
  },
  onDoubleClick: function(e) {
    console.log('dbclick', e)
  },
  hasCheck: true,
  hasDelete: true
})
Gn.create('datagrid', {
  target: '.new-grid2',
  headers: [
    {
      label: 'no',
      key: 'number',
      onSelect: function () {
        // eslint-disable-next-line prefer-rest-params
        console.log(arguments);
      },
      template: function (k, d) {
        return '<span>' + d[k] + '</span>';
      },
      draggable: true,
      sortable: true,
      sort: 'asc'
    },
    {
      label: '제목',
      key: 'title',
      style: {
        width: '250px'
      },
      className: 'has-text-right',
      draggable: true,
      bodyClass: 'has-text-left',
      sortable: true
    },
    {
      label: '날짜',
      key: 'date',
      style: {
        width: '150px'
      },
      className: 'has-text-center',
      bodyClass: 'has-text-left'
    }
  ],
  data: [
    {
      number: '1',
      title: '하나',
      date: '2020-09-19',
      desc: 'hello, world',
      child: [
        {
          number: '1-1',
          title: '1-하나',
          date: '2020-09-19'
        },
        {
          number: '1-2',
          title: '1-둘',
          date: '2020-09-19',
          desc: 'hello, world',
          child: [
            {
              number: '1-2-1',
              title: '1-둘-1',
              date: '2020-09-19',
              desc: 'hello, world',
              child: [
                {
                  number: '1-2-1-1',
                  title: '1-둘-1-1',
                  desc: 'hello, world',
                  date: '2020-09-19'
                }
              ]
            }
          ]
        }
      ],
      color: 'is-danger-light'
    },
    {
      number: '2',
      title: '둘',
      date: '2020-09-19',
      desc: 'hello, world'
    }
  ],
  hasHeader: false,
  hasCheck: true,
  hasDelete: true,
  textSets: {
    deleteConfirmMessage: '파일을 삭제하시겠습니까?'
  },
  // onDelete 에서 false 를 반환하면 해당 행 삭제를 취소할 수 있다.
  onDelete: (data, index) => {
    console.log(data, index);
    // 예) 특정 조건에 따라 삭제 취소
    // if (index === 0) {
    //   return false;
    // }
  }
})
Gn.create('datagrid', {
  target: '.new-grid3',
  headers: [
    {
      label: 'row data numbers',
      key: 'number',
      style: { width: '50px' },
      sortable: true,
      draggable: true,
      template: function (k, d) {
        return '<span>' + d[k] + '</span>';
      }
    },
    {
      label: '제목',
      key: 'title',
      sortable: true,
      draggable: true,
      template: function (k, d) {
        return '<span>' + d[k] + '</span>';
      }
    },
    {
      label: '날짜를 표시하는 컬럼입니다',
      key: 'date',
      style: {
        width: '100px'
      },
      tipField: 'desc'
    },
    {
      label: '헤더명도길어집니다',
      key: 'desc',
      style: { width: '50px' }
    }
  ],
  data: (callback, ui) => {
    return callback([
      {
        number: '1',
        title: '하나',
        date: '2020-09-19'
      },
      {
        number: '232342333',
        title: 'Lorem labore culpa voluptate proident ad et id nostrud excepteur incididunt ut officia et ullamco.',
        date: '2020-09-19',
        desc: 'Voluptate enim culpa anim dolor magna excepteur ullamco id aliquip consequat ullamco voluptate consectetur.',
        ordered: false,
        limited: 0,
        one: 'one',
        two: 2,
        three: {
          hello: 'p',
          ordered: false,
          limited: 0,
          one: 'one',
          two: 2,
          desc: 'hhhhhhh'
        },
        checked: true
      }
    ]);
  },
  sort: function(column) {
    console.log('column', column)
  },
  onSelect: function(row, index) {
    console.log('row', row, index);
    this.showDetail(index, null, ['number', 'title', 'date', 'desc', 'ordered', 'limited', 'one', 'two', 'three', 'checked']);
  },
  onDoubleClick: function(e) {
    console.log('dbclick', e)
  },
  isEllipsis: true,
  hasCheck: true,
  hasOrder: true,
  textSets: {
    orderLabel: '이동'
  },
  paginator: {
    rows: 30
  },
  onChange: updatedData => {
    console.log(updatedData)
  }
})
Gn.create('datagrid', {
  target: '.new-grid4',
  orientation: 'horizontal',
  orientationOptions: {
    columns: 'auto-fit',
    minWidth: '240px'
  },
  hasHeader: true,
  hasCheck: true,
  hasDelete: true,
  headers: [
    {
      label: '이름',
      key: 'name'
    },
    {
      label: '부서',
      key: 'team'
    },
    {
      label: '상태',
      key: 'status',
      template: function (k, d) {
        return '<span class="tag is-info">' + d[k] + '</span>';
      }
    }
  ],
  data: [
    {
      name: '홍길동',
      team: '플랫폼개발',
      status: 'ACTIVE'
    },
    {
      name: '김철수',
      team: '디자인시스템',
      status: 'PENDING'
    },
    {
      name: '이영희',
      team: 'QA',
      status: 'DONE'
    },
    {
      name: '박민수',
      team: '프론트엔드',
      status: 'ACTIVE'
    },
    {
      name: '최지우',
      team: '서비스기획',
      status: 'REVIEW'
    }
  ],
  textSets: {
    deleteConfirmMessage: '카드를 삭제하시겠습니까?'
  }
})

가로 모드 동작

  • orientation: 'horizontal'은 최상위 row만 카드형으로 렌더링한다.
  • childField 기반 하위 데이터는 가로 모드에서 렌더링하지 않는다.
  • orientationOptions.columns: 'auto-fit'이고 gap이 0, '0', '0px', '' 또는 미지정이면 내부적으로 5px gap을 적용한다.
  • 카드 경계 연결 규칙은 gap: 0일 때만 적용되며, gap > 0이면 각 카드가 독립 border를 가진다.
name type default description
target string 그리드 생성 타겟
headers label string 컬럼 헤더 텍스트
key string data의 항목에 매치되는 키값
className string 클래스 명
bodyClass string [headers.className] 헤더와 바디에 별개의 스타일을 적용할 경우 클래스 명을 추가한다
style string inline style
sortable boolean false 정렬 가능여부
draggable boolean false 넓이 조정 드래그 가능여부
sort asc | desc 초기 정렬표시 값
isHidden boolean 컬럼 노출여부
template function(key, row) 데이터를 표시할 템플릿
detailTemplate function(key, row) 상세 데이터를 표시할 템플릿
onSelect function(row) 데이터 셀 클릭 이벤트
tipField string 데이터 셀의 title로 표기할 필드 키값
data array | Function(callback, options) [] key: value로 이루어진 그리드 데이터
isOpened:true => 열린상태로 표시
isSelectedRow: true => 활성화 된 상태로 표시
noCheck: true => 체크박스 표시안함
isChecked: true => 체크박스 체크된 상태로 표시
disabled: true => 체크박스 disable 상태로 표시
color:is-warning-light => 행의 색 변경
textSets noData string No records available. 데이터가 없을 경우 출력 메시지
orderLabel string 이동버튼 헤더표시문구
deleteLabel string 삭제버튼 헤더표시문구
deleteConfirmMessage string 삭제 확인 창 표시문구 - 삭제 버튼 클릭시 확인 창 출력
childField string child 자식 데이터를 가지고 있는 항목 키값. 세로 모드에서만 트리형 하위 row 렌더링에 사용된다.
hasCheck boolean false 1열 체크박스 출력 여부
hasOrder boolean false 이동버튼 생성 여부
hasDelete boolean false 삭제버튼 생성 여부
hasHeader boolean true 헤더 생성 여부
orientation 'vertical' | 'horizontal' 'vertical' 그리드 출력 방향. horizontal이면 최상위 row만 카드형으로 출력하며 childField 기반 하위 데이터는 렌더링하지 않는다.
orientationOptions columns number | 'auto-fit' 1 가로 모드 카드 열 수 또는 자동 배치 방식. orientation: 'horizontal'일 때 적용된다. auto-fit은 실제 줄 배치를 브라우저가 결정한다.
gap number | string 0 가로 모드 카드 간격. CSS grid gap 값으로 적용된다. columns: 'auto-fit'일 때는 0 계열 값 또는 미지정이면 내부적으로 5px를 적용한다. gap: 0일 때만 카드 경계 연결 규칙을 사용한다.
minWidth number | string 240 columns: 'auto-fit'일 때 사용할 최소 카드 폭.
readonly boolean false 읽기전용 여부 - 이동(hasOrder), 삭제(hasDelete) 버튼 미생성
checkCapturing boolean true 상위항목 체크 시 하위항목 함께 선택여부
isEllipsis boolean false 줄바꿈 불가 설정여부 (headers의 column 데이터에 width가 설정된 경우에만 적용된다)
bodyHeight string 'auto' 데이터 출력영역 높이 설정, 높이가 설정값을 넘게되면 스크롤이 생긴다.
fixHeader Boolean false 그리드 영역에서 헤더를 고정시킨다.
데이터를 감싸는 객체에 높이가 고정되어야 한다.
fixFooter Boolean false 화면영역에서 푸터를 고정시킨다.
paginator rows number 30 한 페이지에 처리될 데이터 갯수
현재는 데이터 연동이 callback으로 된 경우에만 동작
siblingPages number 10 페이지 숫자표시 카운트
onSort function 데이터 정렬 수행 시 발생이벤트
onSelect function row 클릭 시 수행 이벤트
onDoubleClick function row 더블 클릭 시 수행 이벤트
onToggle function 자식 행이 있는 항목을 열고닫을때 수행 이벤트
onCheckAll function(flag) CheckAll 이벤트
onCheck function(row, event) Check 이벤트
onDragEnd function(column, columns) 넓이조정 완료 시 발생이벤트
onChange function(updatedData) 이동, 삭제 등의 데이터 변경이 있는 경우, 변경된 데이터를 가져오기 위한 이벤트핸들러
onDelete function(deletedData, index) deletedData, index 를 인자로 받으며, false 를 반환하면 해당 행 삭제를 취소한다. 삭제 버튼 클릭 시 삭제 대상 데이터와 인덱스를 받을 수 있는 이벤트핸들러
onChange 보다 먼저 동작하며, onDelete 에서 false 를 반환하면 실제 삭제 및 onChange 호출이 수행되지 않는다.

메소드

name return description
reRender({headers: Array, data?: Array, hasCheck?:boolean}) void 변경된 값으로 그리드를 다시 렌더링 한다. 컬럼 헤더까지 바뀌는 경우 사용한다.
resetData(data: Array) void 데이터를 변경한다.
addChild(index: number, data: Array) void index번째 row의 child로 data를 추가한다. 세로 모드에서만 지원한다.
addRow(data: Array) void 마지막 데이터 하단에 data를 추가한다. 세로 모드에서만 지원한다.
expand(index: number) void index번째 row의 child를 확장한다. 세로 모드에서만 지원한다.
collapse(index: number) void index번째 row의 child 데이터를 축소한다. 세로 모드에서만 지원한다.
getChecked() array 체크박스가 있는 경우(hasCheck: true) 체크된 데이터를 리턴한다
hideCols(keys: Array) void 파라메터 배열에 전달된 key에 해당하지 않는 컬럼만 보여준다
showCols(keys: Array) void 파라메터 배열에 전달된 key에 해당하는 컬럼만 보여준다
showDetail(index: number, headerKeys?: string[], rawDataKeys?: string[]) void headerKeys로 넘겨진 항목들의 상세정보를 하단에 표시한다. rawDataKeys를 넘기면 원본 데이터도 함께 표시한다. 세로 모드에서만 지원한다.
showAll() void hideCols, showCols 수행 시 숨김처리된 컬럼을 모두 보여준다
selectRow(index: number, rowData?: any) void index기반 row가 선택되도록 한다.

Datalist

/scss/components/datalist.scss
v.0.1.0 javascript

기본 사용

  • 데이터 테이블
<div class="new-list is-border"></div>

<div style="width: 100%; height: 200px; overflow-x: auto">
  <div class="new-list2 is-border"></div>
</div>
Gn.create('datalist', {
  target: '.new-list',
  headers: [
    {
      label: 'no',
      key: 'number',
      bodyClass: 'has-text-left',
      style: {
        width: '50px',
        'text-align': 'center'
      }
    },
    {
      label: '제목',
      key: 'title',
      className: 'main-title'
    },
    {
      label: '날짜',
      key: 'date'
    },
    {
      label: '설명',
      key: 'desc'
    },
    {
      label: '기타',
      key: 'etc'
    }
  ],
  data: [
    {
      number: '1',
      title: '오늘',
      date: '2023-07-28',
      desc: 'hellojj'
    },
    {
      number: '2',
      title: '내일',
      date: '2023-07-29',
      desc: 'chaaaaaa'
    }
  ],
  onChange: updatedData => {
    console.log('updatedData', updatedData);
  }
});
Gn.create('datalist', {
  target: '.new-list2',
  headers: [
    {
      label: 'row-number',
      key: 'number'
    },
    {
      label: '제목',
      key: 'title'
    },
    {
      label: '날짜',
      key: 'date'
    },
    {
      label: '상세설명',
      key: 'desc'
    },
    {
      label: '숨김',
      key: 'ishidden',
      isHidden: true
    }
  ],
  data: [
    { number: 1, title: '첫 번째', date: '2023-07-28', desc: '이것은 첫 번째 요소입니다.', ishidden: 'datalist에 표시되지 않습니다.' },
    { number: 2, title: '두 번째', date: '2023-07-29', desc: '이것은 두 번째 요소입니다.', ishidden: 'datalist에 표시되지 않습니다.' },
    { number: 3, title: '세 번째', date: '2023-07-30', desc: '', ishidden: 'datalist에 표시되지 않습니다.' },
    { number: 4, title: '', date: '2023-07-31', desc: '이것은 네 번째 요소입니다.', ishidden: 'datalist에 표시되지 않습니다.' },
    { number: 5, title: '다섯 번째', date: '2023-08-01', desc: '이것은 다섯 번째 요소입니다.' },
    { number: 6, title: '여섯 번째', date: '2023-08-02 ~ 2023-11-02', desc: '이것은 여섯 번째 요소입니다.' },
    { number: 7, title: '일곱 번째 일곱 번째 일곱 번째', date: '2023-08-03', desc: '이것은 일곱 번째 요소입니다.' },
    {
      number: 8,
      title: '여덟 번째',
      date: '2023-08-08',
      desc: '이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.이것은 여덟 번째 요소입니다.'
    }
  ],
  hasUpdate: true,
  hasDelete: true,
  onUpdate: function (row, index) {
    console.log('row', row);
    console.log('index', index);
  },
  onChange: updatedData => {
    console.log('updatedData', updatedData);
  },
  isHiddenEmpty: true
});

name type default description
target string 컴포넌트 생성 타겟
headers label string 화면에 출력될 헤더 텍스트
key string data의 항목에 매치되는 키값
isHidden boolean 컬럼 노출여부 (data에는 있지만 화면에 출력되지 않음)
className string 클래스 명
bodyClass string 바디에 별개의 스타일을 적용할 경우 클래스 명을 추가한다
style string inline style
template function(key, row) 데이터를 표시할 템플릿
onSelect function(row) 데이터 셀 클릭 이벤트
onDoubleClick function row 더블 클릭 시 수행 이벤트
data array [] key: value로 이루어진 그리드 데이터
textSets noData string No records available. 데이터가 없을 경우 출력 메시지
isHiddenEmpty boolean false 데이터가 없는 경우 헤더 미출력 여부
hasUpdate boolean false 수정버튼 생성 여부
hasDelete boolean false 삭제버튼 생성 여부
readonly boolean false 읽기전용 여부 - 삭제(hasDelete) 버튼 미생성
disabled boolean false Disable 여부
onUpdate function(row, index) 데이터 수정 버튼을 클릭한 경우, 수정할 데이터를 가져오기 위한 이벤트핸들러
onChange function(updatedData) 수정, 삭제 등의 데이터 변경이 있는 경우, 변경된 데이터를 가져오기 위한 이벤트핸들러

메소드

name return description
reRender({headers: Array, data: Array}) void 변경된 값으로 다시 렌더링 한다. 컬럼 헤더까지 바뀌는 경우 사용한다.
resetData(data: Array) void 데이터를 변경한다.
addChild(index: number, data: Array) void index번째 row의 child로 data를 추가한다.
addRow(data: Array) void 마지막 데이터 하단에 data를 추가한다.
expand(index: number) void index번째 row의 child를 확장한다.
collapse(index: number) void index번째 row의 child 데이터를 축소한다.
getChecked() array 체크박스가 있는 경우(hasCheck: true) 체크된 데이터를 리턴한다
hideCols(keys: Array) void 파라메터 배열에 전달된 key에 해당하지 않는 컬럼만 보여준다
showCols(keys: Array) void 파라메터 배열에 전달된 key에 해당하는 컬럼만 보여준다
showAll() void hideCols, showCols 수행 시 숨김처리된 컬럼을 모두 보여준다
disable() void Disabled 처리한다.
enable() void Enabled 처리한다.

Growl

/scss/components/growl.scss
v.0.1.0 javascript

기본 사용

Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
<div class="gn-growl" style="width: 400px">
  Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
</div>
<div class="gn-growl is-primary" style="width: 500px">
  Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
</div>

크기

Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
<div class="gn-growl is-small">
  Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
</div>
<div class="gn-growl is-normal">
  Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
</div>
<div class="gn-growl is-medium">
  Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
</div>
<div class="gn-growl is-large">
  Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
</div>

색상

  • 백그라운드 컬러 알림창 이용 시 가로 사이즈 400이상 넘지 않는다.
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
<div class="gn-growl is-success" style="width: 400px">
  Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
</div>
<div class="gn-growl is-warning" style="width: 400px">
  Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
</div>
<div class="gn-growl is-danger" style="width: 400px">
  Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
</div>
<div class="gn-growl is-info" style="width: 400px">
  Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
</div>

타입

Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.

Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.

Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.

Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.

<div class="gn-growl has-arrange is-success" style="width: 400px">
  <span class="gn-icon is-normal">
    <i class="fas fa-check"></i>
  </span>
  <p>
    Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
  </p>
</div>
<div class="gn-growl has-arrange is-warning" style="width: 400px">
  <span class="gn-icon is-normal">
    <i class="fas fa-exclamation-triangle"></i>
  </span>
  <p>
    Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
  </p>
</div>
<div class="gn-growl has-arrange is-danger" style="width: 400px">
  <span class="gn-icon is-normal">
    <i class="fas fa-exclamation-triangle"></i>
  </span>
  <p>
    Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
  </p>
</div>
<div class="gn-growl has-arrange is-info" style="width: 400px">
  <span class="gn-icon is-normal">
    <i class="fas fa-info-circle"></i>
  </span>
  <p>
    Non et elit ea Lorem. Sit dolor id irure cillum ad eu velit duis mollit proident ad et. Anim nisi culpa elit deserunt eiusmod. Pariatur anim ipsum sunt exercitation pariatur. Nulla laboris amet minim eu et. Elit aliquip amet anim elit non eu sit duis nulla. Laboris nulla laboris in officia eiusmod irure.
  </p>
</div>

생성 옵션

  <button class="gn-button new-growl1">Growl 예제보기</button>
  <button class="gn-button new-growl2">Growl 예제보기</button>
  Gn.create('growl', {
    textSets : {message: '메세지가 생성됩니다!'},
    duration: 3000,
    positionX: 'right',
    positionY: 'top',
    color: 'danger'
  });
  Gn.create('growl', {
    textSets : {message: '메세지가 생성됩니다!'},
    duration: 3000
  });
name type default description
textSets message string 표기할 문구
width number|string 400 가로 사이즈
color string 'success','warning','danger','info','cancel','dark','link','trans','secondary','mono'
type string 메시지 출력 스타일(아이콘이 함께 출력되고, color보다 우선순위가 높다).
'error', 'warning', 'success', 'info', 'guide'
size string 'small','normal','medium','large'
positionX string center 메시지 표시 가로 위치
center, left, right,
positionY string center 메시지 표시 세로 위치
center, top, bottom,
duration number 메시지 출력 유지시간

JsonView

/scss/components/jsonview.scss
v.0.1.0

기본 사용

  • Json 데이터를 화면에 표시하기 위한 컴포넌트
  • Object : key-value 형식으로 출력
  • Array(Object) : 테이블 그리드 형식으로 출력
  • Array(string,number) : 배열 항목을 텍스트로 병합(,)하여 출력

생성 옵션

<div class="new-jsonview"></div>
Gn.create('jsonview', {
  target: '.new-jsonview',
  schema: {
    Type: 'array',
    Disp: 'aws sample 정보',
    Description: 'aws sample 정보 설명',
    Items: {
      Type: 'object',
      Properties: {
        index: {
          Type: 'checkbox',
          Disp: ''
        },
        _id: {
          Type: 'string',
          Disp: '인스턴스ID',
          Description: '인스턴스ID입니다.'
        },
        _type: {
          Type: 'string',
          Disp: '수집기타입'
        },
        test1: {
          Type: 'number',
          Disp: 'Test1 Value'
        },
        test2: {
          Type: 'number',
          Disp: 'Test2 Value'
        },
        updated: {
          Type: 'datetime',
          Disp: '마지막 업데이트',
          $ref: '#/$defs/Datas'
        },
        nodes: {
          Type: 'object',
          Disp: '노드정보',
          Properties: {
            obj1: {
              Type: 'string',
              Disp: 'obj1'
            },
            obj2: {
              Type: 'integer',
              Disp: 'obj2'
            }
          }
        }
      },
      Required: ['_type'],
      Hidden: ['test1', 'test2'],
      SortItems: ['_id']
    },
    $defs: {
      Datas: {
        Type: 'array',
        Disp: '추가 데이터 정보',
        Items: {
          Type: 'object',
          Properties: {
            field1: {
              Type: 'string',
              Disp: '필드 1'
            },
            field2: {
              Type: 'number'
            },
            datas: {
              Type: ['array', 'string'],
              Items: {
                Type: 'object',
                Properties: {
                  id: {
                    Type: 'number',
                    Disp: null
                  },
                  text: {
                    Type: 'string',
                    Disp: null
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  data: [
    {
      index: 0,
      _id: 'd3185f78-7221-103a-8002-0272452c0706',
      _type: 'aws',
      test1: 1234,
      test2: 1231.23,
      updated: 1603427314109,
      nodes: {
        obj1: 'value',
        obj2: 123
      },
      Datas: [
        {
          field1: 'test1',
          field2: 123,
          datas: [
            {
              id: 1,
              text: 'data1'
            },
            {
              id: 2,
              text: 'data2'
            }
          ]
        },
        {
          field1: 'test2',
          field2: 321,
          datas: [
            {
              id: 1,
              text: 'data3'
            },
            {
              id: 2,
              text: 'data4'
            }
          ]
        },
        {
          field1: 'test2',
          field2: 321,
          datas: 'just text'
        }
      ]
    },{
      index: 1,
      _id: 'd3185f78-7221-103a-8002-0125213c0706',
      _type: 'aws',
      test1: 1234,
      test2: 1231.23,
      updated: 1603427314109,
      nodes: {
        obj1: 'value',
        obj2: 123
      },
      Datas: [
        {
          field1: 'test1',
          field2: 123,
          datas: [
            {
              id: 1,
              text: 'data1'
            },
            {
              id: 2,
              text: 'data2'
            }
          ]
        },
        {
          field1: 'test2',
          field2: 321,
          datas: [
            {
              id: 1,
              text: 'data3'
            },
            {
              id: 2,
              text: 'data4'
            }
          ]
        },
        {
          field1: 'test2',
          field2: 321,
          datas: 'just text'
        }
      ]
    }
  ]
});

<div class="new-rawview"></div>
Gn.create('jsonview', {
  target: '.new-rawgrid',
  data: '{"_id": "d3185f78-7221-103a-8002-0272452c0706","_type": "aws","test1": 1234,"test2": 1231.23,"nodes" : {"obj1":"value","obj2":123},"datas": [{"field1":"test1","field2":123,"datas":["data1","data2"]},{"field1":"test2","field2":321,"datas":["data3","data4"]}]}'
})
<div class="add-jsonview"></div>
Gn.create('jsonview', {
  target: '.add-jsonview',
  schema: {
    Type: "array",
    Items: {
      Type: 'object',
      Properties: {
        bignum: {
          Type: "bignumber"
        }
      }
    }
  },
  data: [{
    bignum: {
      CPU: 23.34,
      RAM: {
        value: 26,
        data: [0, 23, 33, 0]
      }
    }
  }]
});
name type default description
target string jsonview를 생성할 대상의 선택자(selector)
schema Object json *gnschema. 생략 시, data를 기준으로 출력된다.
data Array | Object
defWidth string 'auto' Object key 값 출력 넓이. 'auto'로 설정 시 컨텐츠에 맞춤
onSort Function(key, sort, schema) schema의 SortItems에 설정된 항목 정렬 시 수행 이벤트
onSelect Function(value, key, obj, e) 그리드 형식으로 출력된 항목을 클릭 시 수행 이벤트
convert Function(convertername, type, value): string 데이터를 컨버팅하는 함수.
스키마에 설정된 Converter가 존재할 시 해당 함수를 실행하여 리턴된 결과를 렌더링한다.
text 또는 html 사용 가능.
value를 {{parent}}로 정의 시 해당 열에 대한 정보를 가져올 수 있다.
textSets noData string No records available. 데이터가 없을 경우 출력 메시지

메소드

name return description
reRender(param:{data, schema?)) void 전달된 데이트로 그리드를 다시 렌더링한다
getChecked() Array checkbox 타입이 존재하는 경우, 체크된 항목의 데이터를 배열로 리턴한다.

*gnschema

Attributes

attribute description
Type 데이터 타입 아래 단일타입, 복합타입 참조
Disp 항목명
Description 항목설명
RefURL 링크 아래 RefURL 사용법 참조
Target 링크(RefURL) 타겟
Items Array의 항목 기술
Properties Object의 항목 기술
Hidden 화면에 출력하지 않을 항목의 배열
SortItems 정렬아이콘 출력 필드(Object Array 타입에서만 동작)의 배열
Required 필수 항목 필드의 배열
Disabled 클릭 이벤트 비활성화 필드의 배열
Style inline 스타일 ex. 'font-size: 12px; display: block; width: 200px'
StyleClass 스타일 클래스명
Converter 데이터를 컨버팅할 컨버터 convertername, type, value를 배열로 넣음
value에 {{mustache}} 구문 사용가능(RefURL 참조) 생략 시 해당 항목의 데이터 바인딩
jsonview 컴포넌트 생성 시 convert 메서드를 정의해주어야 사용가능
$ref - $defs 참조 데이터 아래 $ref-$defs 항목 참조

단일타입

type schema data output
string
{
  "Type": "string",
  "RefURL": "http://www.genians.com",
  "Target": "_blank"
}
        
"다람쥐 헌 쳇바퀴"
        
number
{
  "Type": "number"
}
        
10001
        
byte
{
  "Type": "byte"
}
        
100000000
        
datetime
{
  "Type": "datetime"
}
        
1603427314109
        
html
{
  "Type": "html"
}
        
'<img
  src="/styleguide/assets/image.png"
  alt="asset"
/>'
        
checkbox
{
  "Type": "checkbox"
}
        
{
  value: '100',
  checked: true,
  // hidden: true
  // 화면에 표시하지 않으려면 true
  // {{mustache}} 구문을 사용하여 조건문을 설정할 수 있다.
}
        
100
        
array
{
  Type: 'array',
  Items: {
    Type: ['string','number'],
    RefURL: 'https://search.naver.com/search.naver?query={{data}}'
  }
}
        
["빨강","주황","노랑","초록","파랑"]
        
percent
{
  "Type": "percent"
}
        
52
        
bignumber
{
  "Type": "bignumber"
}
        
{
  온도: 24,
  습도: {
    value: 60,
    data: [0,10,21,5,18]
  }
}
        
chart
{
  "Type": "chart"
}
        
{
  type: 'donut',
  series: [30, 200, 100],
  labels: ['data1','data2','data3']
}
        

복합 타입

type schema data output
object
{
  "Type": "object",
  "Disp": "",
  "Description": "",
  "Properties": {
    "data-string": {
      "Type": "string",
      "Disp": "물품명",
      "Description": "product name"
    },
    "data-number": {
      "Type": "number",
      "Disp": "재고"
    },
    'data-reorder': {
      Type: 'string',
      Disp: '재주문가능'
    }
  },
  Hidden: ['data-reorder'] // 화면에 나타내지 않을 프로퍼티명 배열
}
        
{
  'data-string': '부뚜막',
  'data-number': 1489,
  'data-reorder': 'false'
}
        
array
{
  "Type": "array",
  "Items": {
    "Type": "object",
    "Properties": {
      "data-string": {
        "Type": 'string',
        "Disp": '물품명',
        "Description": "product name"
      },
      "data-number": {
        "Type": 'number',
        "Disp": '재고'
      }
    }
  }
}
        
[{
  'data-string': '부뚜막',
  'data-number': 1489
},{
  'data-string': '솥뚜껑',
  'data-number': 34
}]
        

RefURL 사용법

링크 파라메터에 {{mustache}} 구문을 사용할 수 있다.

name description
data 해당 항목에 대한 데이터를 반환한다.
schema 해당 항목에 대한 스키마를 반환한다.
$ 전체 데이터 루트를 나타낸다.
루트로부터 jsonpath 문법을 사용할 수 있다.
*property key에 특수문자가 포함되는 경우 $['property-key'] 와 같이 사용한다.
parent 해당 항목의 상위 데이터를 반환한다.

jsonpath key 사용

  • object properties의 key 값으로 jsonpath를 사용할 수 있다.

Style, StyleClass 사용

{{mustache}} 구문을 사용하여 조건문을 설정할 수 있다.

{{parent.test1 == "1234" ? "color: red; font-weight: 900" : "color: blue;"}}
name description
data 해당 항목에 대한 데이터를 반환한다.
parent 해당 항목의 상위 데이터를 반환한다.
$ 전체 데이터를 반환한다.

defs - ref 사용

  • schema에 미리 정의된 defs 객체를 ref로 지정하는 경우, 해당 데이터는 tooltip 형태로 출력된다.

schema data
{
  Type: 'array',
  Items: {
    Type: 'object',
    Properties: {
      '$.COLLECTOR._id': {
        Type: 'string',
        Disp: '인스턴스ID'
      },
      '$.COLLECTOR._type': {
        Type: 'string',
        Disp: '타입',
        $ref: '#/$defs/Datas'
      },
      '$.COLLECTOR.nodes.obj2': {
        Type: 'number',
        Disp: 'No'
      }
    }
  },
  $defs: {
    Datas: {
      Type: 'array',
      Disp: 'Datas',
      Items: {
        Type: 'object',
        Properties: {
          field1: {
            Type: 'string',
            Disp: '필드1'
          },
          field2: {
            Type: 'number',
            Disp: '필드2'
          },
          field3: {
            Type: 'string',
            Disp: '필드3'
          }
        }
      }
    }
  }
}
        
[
  {
    COLLECTOR: {
      _id: 'data-1-id',
      _type: 'collector',
      test1: 0,
      test2: 0,
      nodes: {
        obj1: '',
        obj2: 0
      },
      datas: {
        field1: 'data-1',
        field2: 0,
        datas: [
          {
            field1: 'data-1',
            field2: 0,
            field3: 'data-1'
          },
          {
            field1: 'data-1',
            field2: 0,
            field3: 'data-1'
          }
        ]
      }
    }
  },
  {
    COLLECTOR: {
      _id: 'data-2-id',
      _type: 'collector',
      test1: 1,
      test2: 1,
      nodes: {
        obj1: '',
        obj2: 1
      },
      datas: {
        field1: 'data-2',
        field2: 1,
        datas: [
          {
            field1: 'data-2',
            field2: 1,
            field3: 'data-2'
          },
          {
            field1: 'data-2',
            field2: 1,
            field3: 'data-2'
          }
        ]
      }
    }
  }
]
        

Converter 사용

  • schema Converter 항목을 추가하여 데이터를 변환출력 할 수 있다.
  • 생성옵션의 convert Function을 정의하여 사용할 수 있다.

schema data Converter
{
    Type: 'array',
    Items: {
        Type: 'object',
        Properties: {
            name: {
                Type: 'string',
                Disp: '스위치명'
            },
            status: {
                Type: 'number',
                Disp: '동작상태',
                Converter: ['CodeImageConverter', 'OperStatus']
            }
        }
    }
}
        
[
    {
        name: '부뚜막',
        status: 1
    },
    {
        name: '솥뚜껑',
        status: 0
    }
]
        
(name, type, value) => {
    // name : 'CodeImageConverter'
    // type : 'OperStatus'
    // value : {data.status 값}
    if (value === '1') {
        return '미동작';
    } else {
        return '동작';
    }
}
        

Loader

/scss/components/loader.scss
v.0.1.0 javascript

기본 사용

<div class="gn-loader"></div>

크기

<div class="gn-loader is-small"></div>
<div class="gn-loader is-normal"></div>
<div class="gn-loader is-medium"></div>
<div class="gn-loader is-large"></div>

색상

<div class="gn-loader is-success"></div>
<div class="gn-loader is-warning"></div>
<div class="gn-loader is-danger"></div>
<div class="gn-loader is-info"></div>
<div class="gn-loader is-inline"></div>
<div class="gn-loader is-inline is-success"></div>
<div class="gn-loader is-inline is-warning"></div>
<div class="gn-loader is-inline is-danger"></div>
<div class="gn-loader is-inline is-info"></div>
<div class="gn-loader is-inline is-primary"></div>

타입



<div class="gn-loader is-bounce"></div><br>
<div class="gn-loader is-move"></div>
<div class="gn-loader is-inline"></div><br>

생성 옵션

<button class="gn-button new-loader1">loader 예제보기</button>
<button class="gn-button new-loader2">loader 예제보기</button>
Gn.create('button', {
  target: '.new-loader1',
  onClick: function () {
    Gn.create('loader', {
      duration: 3000,
      size: 'large',
      positionX: 'right',
      positionY: 'center',
      color: 'secondary'
    });
  }
});
Gn.create('button', {
  target: '.new-loader2',
  onClick: function () {
    Gn.create('loader', {
      duration: 3000
    });
  }
});
name type default description
width number|string 25 로더 사이즈
color string 'success','warning','danger','info','cancel','dark','link','trans','secondary','mono'
size string 'small','normal','medium','large'
type string 'inline','bounce','move','
positionX string center 메시지 표시 가로 위치
center, left, right
positionY string center 메시지 표시 세로 위치
center, top, bottom
duration number 메시지 출력 유지시간, 해당 옵션 설정 시 create 시점에 로더가 보인다.

메소드

name return description
show(duration) void 로더를 보여준다. (duration 미입력 시 계속 보여준다.)
hide() void 로더를 숨김처리한다.

Message

/scss/components/message.scss
v.0.1.0 javascript

기본 메세지 알림

-Text with icon / Text only 선택 사용 할 수 있다.

Success! Your message has been sent successfully.
Success! Your message has been sent successfully.

Warning! There was a problem with your network connection.

Error! A problem has been occurred while submitting your data.

Info! Please read the comments carefully.

가이드 메시지 한글 폰드 테스트 Guide!

<div class="gn-message is-success has-arrange">
  <span class="gn-icon is-normal">
    <i class="fas fa-check"></i>
  </span>
  <p>Success! Your message has been sent successfully. <br/> Success! Your message has been sent successfully. </p>
</div>
<div class="gn-message is-warning has-arrange">
<span class="gn-icon is-normal">
    <i class="fas fa-exclamation-circle"></i>
  </span>
  <p>Warning! There was a problem with your network connection.</p>
  <span class="gn-icon is-close is-dark">
    <i class="fas fa-times"></i>
  </span>
</div>
<div class="gn-message is-danger has-arrange">
  <span class="gn-icon is-normal">
    <i class="fas fa-exclamation-triangle"></i>
  </span>
  <p>Error! A problem has been occurred while submitting your data.</p>
</div>
<div class="gn-message is-info has-arrange">
  <span class="gn-icon is-normal">
    <i class="fas fa-info-circle"></i>
  </span>
  <p>Info! Please read the comments carefully.</p>
  <span class="gn-icon is-close is-dark">
    <i class="fas fa-times"></i>
  </span>
</div>
<div class="gn-message is-guide has-arrange">
  <span class="gn-icon is-normal">
    <i class="fas fa-info-circle"></i>
  </span>
  <p> 가이드 메시지 한글 폰드 테스트  Guide!</p>
</div>

일반 메세지

Eu velit aliqua eiusmod eiusmod occaecat ullamco fugiat sunt occaecat excepteur. Sit fugiat fugiat velit reprehenderit occaecat ad proident enim deserunt occaecat amet. Proident eu ut cupidatat ut ullamco dolor consectetur tempor ea minim exercitation enim. Sit reprehenderit veniam cillum adipisicing.

Velit laboris elit cillum quis velit. Ipsum veniam aute est ea aliquip aute eu mollit. Tempor tempor incididunt occaecat ullamco velit esse. Ex Lorem cupidatat non quis irure velit ut fugiat consequat. Velit deserunt irure proident irure id non mollit irure et esse magna. Sint incididunt consequat reprehenderit veniam ea mollit eu laborum ipsum sit magna voluptate.

<div class="gn-message">
  Eu velit aliqua eiusmod eiusmod occaecat ullamco fugiat sunt occaecat excepteur. Sit fugiat fugiat velit reprehenderit occaecat ad proident enim deserunt occaecat amet. Proident eu ut cupidatat ut ullamco dolor consectetur tempor ea minim exercitation enim. Sit reprehenderit veniam cillum adipisicing.
</div>
<p class="gn-message">
  Velit laboris elit cillum quis velit. Ipsum veniam aute est ea aliquip aute eu mollit. Tempor tempor incididunt occaecat ullamco velit esse. Ex Lorem cupidatat non quis irure velit ut fugiat consequat. Velit deserunt irure proident irure id non mollit irure et esse magna. Sint incididunt consequat reprehenderit veniam ea mollit eu laborum ipsum sit magna voluptate.
</p>

색상

Success
Warning
Danger
Info
Cancel
Dark
Secondary
Mono
<div class="gn-message is-success">
  Success
</div>
<div class="gn-message is-warning">
  Warning
</div>
<div class="gn-message is-danger">
  Danger
</div>
<div class="gn-message is-info">
  Info
</div>
<div class="gn-message is-cancel">
  Cancel
</div>
<div class="gn-message is-dark">
  Dark
</div>
<div class="gn-message is-link">
  Link
</div>
<div class="gn-message is-secondary">
  Secondary
</div>
<div class="gn-message is-mono">
  Mono
</div>

크기

Eu velit aliqua eiusmod eiusmod occaecat ullamco fugiat sunt occaecat excepteur. Sit fugiat fugiat velit reprehenderit occaecat ad proident enim deserunt occaecat amet. Proident eu ut cupidatat ut ullamco dolor consectetur tempor ea minim exercitation enim. Sit reprehenderit veniam cillum adipisicing.
Eu velit aliqua eiusmod eiusmod occaecat ullamco fugiat sunt occaecat excepteur. Sit fugiat fugiat velit reprehenderit occaecat ad proident enim deserunt occaecat amet. Proident eu ut cupidatat ut ullamco dolor consectetur tempor ea minim exercitation enim. Sit reprehenderit veniam cillum adipisicing.
Eu velit aliqua eiusmod eiusmod occaecat ullamco fugiat sunt occaecat excepteur. Sit fugiat fugiat velit reprehenderit occaecat ad proident enim deserunt occaecat amet. Proident eu ut cupidatat ut ullamco dolor consectetur tempor ea minim exercitation enim. Sit reprehenderit veniam cillum adipisicing.
Eu velit aliqua eiusmod eiusmod occaecat ullamco fugiat sunt occaecat excepteur. Sit fugiat fugiat velit reprehenderit occaecat ad proident enim deserunt occaecat amet. Proident eu ut cupidatat ut ullamco dolor consectetur tempor ea minim exercitation enim. Sit reprehenderit veniam cillum adipisicing.

<div class="gn-message is-small">
Eu velit aliqua eiusmod eiusmod occaecat ullamco fugiat sunt occaecat excepteur. Sit fugiat fugiat velit reprehenderit occaecat ad proident enim deserunt occaecat amet. Proident eu ut cupidatat ut ullamco dolor consectetur tempor ea minim exercitation enim. Sit reprehenderit veniam cillum adipisicing.
</div>
<div class="gn-message is-normal">
  Eu velit aliqua eiusmod eiusmod occaecat ullamco fugiat sunt occaecat excepteur. Sit fugiat fugiat velit reprehenderit occaecat ad proident enim deserunt occaecat amet. Proident eu ut cupidatat ut ullamco dolor consectetur tempor ea minim exercitation enim. Sit reprehenderit veniam cillum adipisicing.
</div>
<div class="gn-message is-medium">
  Eu velit aliqua eiusmod eiusmod occaecat ullamco fugiat sunt occaecat excepteur. Sit fugiat fugiat velit reprehenderit occaecat ad proident enim deserunt occaecat amet. Proident eu ut cupidatat ut ullamco dolor consectetur tempor ea minim exercitation enim. Sit reprehenderit veniam cillum adipisicing.
</div>
<div class="gn-message is-large">
  Eu velit aliqua eiusmod eiusmod occaecat ullamco fugiat sunt occaecat excepteur. Sit fugiat fugiat velit reprehenderit occaecat ad proident enim deserunt occaecat amet. Proident eu ut cupidatat ut ullamco dolor consectetur tempor ea minim exercitation enim. Sit reprehenderit veniam cillum adipisicing.
</div>

테두리 스타일

Success! Your message has been sent successfully.

Warning! There was a problem with your network connection.

Error! A problem has been occurred while submitting your data.

Info! Please read the comments carefully.

Help Info! (icon+닫기)

Help Info! (icon)

Cancel
Dark
Secondary
Mono
<div class="gn-message is-success has-arrange is-border">
  <span class="gn-icon is-normal">
    <i class="fas fa-check"></i>
  </span>
<p>Success! Your message has been sent successfully. </p>
</div>
<div class="gn-message is-warning has-arrange is-border">
<span class="gn-icon is-normal">
    <i class="fas fa-exclamation-circle"></i>
  </span>
  <p>Warning! There was a problem with your network connection.</p>
  <span class="gn-icon is-close is-dark">
    <i class="fas fa-times"></i>
  </span>
</div>
<div class="gn-message is-danger has-arrange is-border">
  <span class="gn-icon is-normal">
    <i class="fas fa-exclamation-triangle"></i>
  </span>
  <p>Error! A problem has been occurred while submitting your data.</p>
</div>
<div class="gn-message is-info has-arrange is-border">
  <span class="gn-icon is-normal">
    <i class="fas fa-info-circle"></i>
  </span>
  <p>Info! Please read the comments carefully.</p>
  <span class="gn-icon is-close is-dark">
    <i class="fas fa-times"></i>
  </span>
</div>
<div class="gn-message is-help has-arrange is-border">
  <span class="gn-icon is-normal">
    <i class="fas fa-info-circle"></i>
  </span>
  <p> Help Info! (icon+닫기)</p>
  <span class="gn-icon is-close is-dark">
    <i class="fas fa-times"></i>
  </span>
</div>
<div class="gn-message is-help has-arrange is-border">
  <span class="gn-icon is-normal">
    <i class="fas fa-info-circle"></i>
  </span>
  <p> Help Info! (icon)</p>
</div>
<div class="gn-message is-cancel is-border">
  Cancel
</div>
<div class="gn-message is-dark is-border">
  Dark
</div>
<div class="gn-message is-link is-border">
  Link
</div>
<div class="gn-message is-secondary is-border">
  Secondary
</div>
<div class="gn-message is-mono is-border">
  Mono
</div>

생성 옵션

  <div class="gn-container page-message"></div>
  <button class="gn-button new-message">Message 예제보기</button>
  Gn.create('message', {
    target: '.page-message', 
    textSets: { message: '메세지가 생성됩니다!<br>잠시만 기다려주세요.' }
  });
name type default description
target string 메시지를 표시할 대상의 선택자(selector)
textSets message string 메시지에 표기할 문구
color string 'success','warning','danger','info','cancel','dark','link','trans','secondary','mono'
size string 'small','normal','medium','large'
icon string font awesome solid icon name
animation string slideup 'slideup','fadeout'
duration number 300 메시지 닫기 이벤트 애니메이션 시간
hasClose boolean true 닫기버튼 출력 여부
onClose function 닫기버튼 클릭 시 수행될 이벤트

메소드

name return description
close() void 메세지를 닫는다.

Panel

/scss/components/panel.scss
v.0.1.0

기본 사용

Panel Header
  • Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit. Tempor anim eiusmod ut laborum esse sint velit occaecat consequat aliqua elit duis ea. Ullamco officia ullamco excepteur consectetur est deserunt velit fugiat. Voluptate proident mollit exercitation tempor culpa reprehenderit duis incididunt voluptate cillum do ad laboris veniam.
  • Eu pariatur exercitation commodo amet occaecat non magna ea. Laboris reprehenderit nostrud labore anim Lorem Lorem quis. Tempor officia dolor enim incididunt ut cupidatat sunt.
  • Incididunt ipsum nostrud quis qui esse est aute anim velit aliqua ipsum. Ipsum mollit nulla ipsum Lorem cillum laboris. Proident nostrud magna consequat elit duis culpa deserunt voluptate. Ullamco commodo ad ea nostrud. Qui ullamco tempor non est adipisicing duis ullamco id ex. Nostrud fugiat mollit commodo veniam id et labore cillum adipisicing adipisicing qui dolor.
<div class="gn-panel" style="width: 400px; height: 300px">
  <div class="panel-header">
    Panel Header
  </div>
  <div class="panel-body">
    <ul class="gn-list">
      <li>Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit. Tempor anim eiusmod ut laborum esse sint velit occaecat consequat aliqua elit duis ea. Ullamco officia ullamco excepteur consectetur est deserunt velit fugiat. Voluptate proident mollit exercitation tempor culpa reprehenderit duis incididunt voluptate cillum do ad laboris veniam.</li>
      <li>Eu pariatur exercitation commodo amet occaecat non magna ea. Laboris reprehenderit nostrud labore anim Lorem Lorem quis. Tempor officia dolor enim incididunt ut cupidatat sunt.</li>
      <li>Incididunt ipsum nostrud quis qui esse est aute anim velit aliqua ipsum. Ipsum mollit nulla ipsum Lorem cillum laboris. Proident nostrud magna consequat elit duis culpa deserunt voluptate. Ullamco commodo ad ea nostrud. Qui ullamco tempor non est adipisicing duis ullamco id ex. Nostrud fugiat mollit commodo veniam id et labore cillum adipisicing adipisicing qui dolor.</li>
    </ul>
  </div>
  <div class="panel-footer">
    Panel footer
  </div>
</div>

sub 사용

Panel Header

Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit. Tempor anim eiusmod ut laborum esse sint velit occaecat consequat aliqua elit duis ea. Ullamco officia ullamco excepteur consectetur est deserunt velit fugiat. Voluptate proident mollit exercitation tempor culpa reprehenderit duis incididunt voluptate cillum do ad laboris veniam.

Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit. Tempor anim eiusmod ut laborum esse sint velit occaecat consequat aliqua elit duis ea. Ullamco officia ullamco excepteur consectetur est deserunt velit fugiat. Voluptate proident mollit exercitation tempor culpa reprehenderit duis incididunt voluptate cillum do ad laboris veniam.

Panel Header

Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit. Tempor anim eiusmod ut laborum esse sint velit occaecat consequat aliqua elit duis ea. Ullamco officia ullamco excepteur consectetur est deserunt velit fugiat. Voluptate proident mollit exercitation tempor culpa reprehenderit duis incididunt voluptate cillum do ad laboris veniam.

Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit. Tempor anim eiusmod ut laborum esse sint velit occaecat consequat aliqua elit duis ea. Ullamco officia ullamco excepteur consectetur est deserunt velit fugiat. Voluptate proident mollit exercitation tempor culpa reprehenderit duis incididunt voluptate cillum do ad laboris veniam.

<div class="gn-panel-2" >
  <div class="panel-2-header">
    Panel Header
  </div>
  <div class="panel-2-body">
      <p>Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit. Tempor anim eiusmod ut laborum esse sint velit occaecat consequat aliqua elit duis ea. Ullamco officia ullamco excepteur consectetur est deserunt velit fugiat. Voluptate proident mollit exercitation tempor culpa reprehenderit duis incididunt voluptate cillum do ad laboris veniam.</p>
      <p>Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit. Tempor anim eiusmod ut laborum esse sint velit occaecat consequat aliqua elit duis ea. Ullamco officia ullamco excepteur consectetur est deserunt velit fugiat. Voluptate proident mollit exercitation tempor culpa reprehenderit duis incididunt voluptate cillum do ad laboris veniam.</p>
      </div>
  <div class="panel-2-footer">
    Panel footer
  </div>
</div>

<div class="gn-panel-3" >
  <div class="panel-3-header">
    Panel Header
  </div>
  <div class="panel-3-body">
      <p>Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit. Tempor anim eiusmod ut laborum esse sint velit occaecat consequat aliqua elit duis ea. Ullamco officia ullamco excepteur consectetur est deserunt velit fugiat. Voluptate proident mollit exercitation tempor culpa reprehenderit duis incididunt voluptate cillum do ad laboris veniam.</p>
      <p>Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit. Tempor anim eiusmod ut laborum esse sint velit occaecat consequat aliqua elit duis ea. Ullamco officia ullamco excepteur consectetur est deserunt velit fugiat. Voluptate proident mollit exercitation tempor culpa reprehenderit duis incididunt voluptate cillum do ad laboris veniam.</p>
      </div>
  <div class="panel-3-footer">
    Panel footer
  </div>
</div>

고정

  • height와 함께 사용, panel header, footer 고정
Panel Header
  • Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit. Tempor anim eiusmod ut laborum esse sint velit occaecat consequat aliqua elit duis ea. Ullamco officia ullamco excepteur consectetur est deserunt velit fugiat. Voluptate proident mollit exercitation tempor culpa reprehenderit duis incididunt voluptate cillum do ad laboris veniam.
  • Eu pariatur exercitation commodo amet occaecat non magna ea. Laboris reprehenderit nostrud labore anim Lorem Lorem quis. Tempor officia dolor enim incididunt ut cupidatat sunt.
  • Incididunt ipsum nostrud quis qui esse est aute anim velit aliqua ipsum. Ipsum mollit nulla ipsum Lorem cillum laboris. Proident nostrud magna consequat elit duis culpa deserunt voluptate. Ullamco commodo ad ea nostrud. Qui ullamco tempor non est adipisicing duis ullamco id ex. Nostrud fugiat mollit commodo veniam id et labore cillum adipisicing adipisicing qui dolor.
<div class="gn-panel is-fixed" style="width: 400px; height: 350px">
  <div class="panel-header has-color-primary">
    Panel Header
  </div>
  <div class="panel-body">
    <ul class="gn-list">
      <li>Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit. Tempor anim eiusmod ut laborum esse sint velit occaecat consequat aliqua elit duis ea. Ullamco officia ullamco excepteur consectetur est deserunt velit fugiat. Voluptate proident mollit exercitation tempor culpa reprehenderit duis incididunt voluptate cillum do ad laboris veniam.</li>
      <li>Eu pariatur exercitation commodo amet occaecat non magna ea. Laboris reprehenderit nostrud labore anim Lorem Lorem quis. Tempor officia dolor enim incididunt ut cupidatat sunt.</li>
      <li>Incididunt ipsum nostrud quis qui esse est aute anim velit aliqua ipsum. Ipsum mollit nulla ipsum Lorem cillum laboris. Proident nostrud magna consequat elit duis culpa deserunt voluptate. Ullamco commodo ad ea nostrud. Qui ullamco tempor non est adipisicing duis ullamco id ex. Nostrud fugiat mollit commodo veniam id et labore cillum adipisicing adipisicing qui dolor.</li>
    </ul>
  </div>
  <div class="panel-footer">
    Panel footer
  </div>
</div>

색상

Panel Header
  • Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit.
  • Eu pariatur exercitation commodo amet occaecat non magna ea. Laboris reprehenderit nostrud labore anim Lorem Lorem quis.
  • Incididunt ipsum nostrud quis qui esse est aute anim velit aliqua ipsum. Ipsum mollit nulla ipsum Lorem cillum laboris.
Panel Header
  • Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit.
  • Eu pariatur exercitation commodo amet occaecat non magna ea. Laboris reprehenderit nostrud labore anim Lorem Lorem quis.
  • Incididunt ipsum nostrud quis qui esse est aute anim velit aliqua ipsum. Ipsum mollit nulla ipsum Lorem cillum laboris.
<div class="gn-panel" style="width:400px;">
  <div class="panel-header has-color-primary">
    Panel Header
  </div>
  <div class="panel-body">
    <ul class="gn-list">
      <li>Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit.</li>
      <li>Eu pariatur exercitation commodo amet occaecat non magna ea. Laboris reprehenderit nostrud labore anim Lorem Lorem quis.</li>
      <li>Incididunt ipsum nostrud quis qui esse est aute anim velit aliqua ipsum. Ipsum mollit nulla ipsum Lorem cillum laboris.</li>
    </ul>
  </div>
  <div class="panel-footer">
    Panel footer
  </div>
</div>
<div class="gn-panel" style="width:400px;">
  <div class="panel-header has-color-info">
    Panel Header
  </div>
  <div class="panel-body">
    <div class="gn-tab is-center">
      <ul>
        <li class="is-active"><a href="#genians">Genians</a></li>
        <li><a href="#rndcenter">R&amp;D Center</a></li>
        <li><a href="#fd">Front-end</a></li>
        <li><a href="#gnui">GNUI</a></li>
      </ul>
    </div>
    <ul class="gn-list">
      <li>Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit.</li>
      <li>Eu pariatur exercitation commodo amet occaecat non magna ea. Laboris reprehenderit nostrud labore anim Lorem Lorem quis.</li>
      <li>Incididunt ipsum nostrud quis qui esse est aute anim velit aliqua ipsum. Ipsum mollit nulla ipsum Lorem cillum laboris.</li>
    </ul>
  </div>
  <div class="panel-footer has-text-center">
    <button type="button" class="gn-button is-info">확인</button>
    <button type="button" class="gn-button is-cancel">취소</button>
  </div>
</div>

Progressbar

/scss/components/progressbar.scss
v.0.1.0 javascript

기본 사용

30%
90%
<div class="gn-progressbar is-primary">
  <span class="gauge" style="width: 30%"></span>
  <span class="figure">30%</span>
</div>
<div class="gn-progressbar is-secondary">
  <span class="gauge" style="width: 90%"></span>
  <span class="figure inner">90%</span>
</div>

크기

<div class="gn-progressbar is-small">
  <span class="gauge" style="width: 30%"></span>
</div>
<div class="gn-progressbar is-normal">
  <span class="gauge" style="width: 60%"></span>
</div>
<div class="gn-progressbar is-medium">
  <span class="gauge" style="width: 90%"></span>
</div>

상태

<div class="gn-progressbar is-secondary is-indeterminate">
  <span class="gauge"></span>
</div>
<div class="gn-progressbar is-indeterminate">
  <span class="gauge"></span>
</div>

생성 옵션

  <div class="gn-container new-progress-indeterminate"></div>
  <div class="gn-container new-progress"></div>
  <button class="btnValue btn0">0%</button>
  <button class="btnValue btn20">20%</button>
  <button class="btnValue btn50">50%</button>
  <button class="btnValue btn70">70%</button>
  <button class="btnValue btn100">100%</button>
  Gn.create('progressbar', {
    target:'.new-progress-indeterminate',
    color: 'info',
    size: 'medium',
    indeterminate: true,
    hasFigure: true
  });
  Gn.create('progressbar', {
    target:'.new-progress',
    color: 'danger',
    size: 'medium',
    value: 30
  });
name type default description
target string 프로그레스바를 표시할 대상의 선택자(selector)
color string 'success','warning','danger','info','cancel','dark','link','trans','secondary','mono'
size string 'small','normal','medium'
value number 0 상태 진행 정도(0~100)
hasFigure boolean false 상태 진행 정도 텍스트 표기여부
indeterminate boolean false 작업정도를 파악할 수 없는 경우 사용

메소드

name return description
setValue(value:number) void 프로그레스바의 진행상태를 변경한다.(indeterminate 상태에서는 사용불가)
complete() void 프로그레스바의 진행상태를 완료한다.

Tab

/scss/components/tab.scss
v.0.1.0 javascript

기본 사용

<div class="gn-tab">
  <ul>
    <li class="is-active"><a href="#genians">Genians</a></li>
    <li><a href="#rndcenter">R&amp;D Center</a></li>
    <li><a href="#fd">Front-end</a></li>
    <li><a href="#gnui">GNUI</a></li>
  </ul>
</div>

크기

<div class="gn-tab is-small">
  <ul>
    <li class="is-active"><a href="#genians">Genians</a></li>
    <li><a href="#rndcenter">R&amp;D Center</a></li>
    <li><a href="#fd">Front-end</a></li>
    <li><a href="#gnui">GNUI</a></li>
  </ul>
</div>
<div class="gn-tab is-normal">
  <ul>
    <li><a href="#genians">Genians</a></li>
    <li class="is-active"><a href="#rndcenter">R&amp;D Center</a></li>
    <li><a href="#fd">Front-end</a></li>
    <li><a href="#gnui">GNUI</a></li>
  </ul>
</div>
<div class="gn-tab is-medium">
  <ul>
    <li><a href="#genians">Genians</a></li>
    <li><a href="#rndcenter">R&amp;D Center</a></li>
    <li class="is-active"><a href="#fd">Front-end</a></li>
    <li><a href="#gnui">GNUI</a></li>
  </ul>
</div>
<div class="gn-tab is-large">
  <ul>
    <li><a href="#genians">Genians</a></li>
    <li><a href="#rndcenter">R&amp;D Center</a></li>
    <li><a href="#fd">Front-end</a></li>
    <li class="is-active"><a href="#gnui">GNUI</a></li>
  </ul>
</div>

스타일

<div class="gn-tab is-border-half">
  <ul>
    <li><a href="#genians">Genians</a></li>
    <li><a href="#rndcenter">R&amp;D Center</a></li>
    <li class="is-active"><a href="#fd">Front-end</a></li>
    <li><a href="#gnui">GNUI</a></li>
  </ul>
</div>
<div class="gn-tab is-border">
  <ul>
    <li><a href="#genians">Genians</a></li>
    <li class="is-active"><a href="#rndcenter">R&amp;D Center</a></li>
    <li><a href="#fd">Front-end</a></li>
    <li><a href="#gnui">GNUI</a></li>
  </ul>
</div>

정렬

<div class="gn-tab is-full">
  <ul>
    <li class="is-active"><a href="#genians">Genians</a></li>
    <li><a href="#rndcenter">R&amp;D Center</a></li>
    <li><a href="#fd">Front-end</a></li>
    <li><a href="#gnui">GNUI</a></li>
  </ul>
</div>
<div class="gn-tab is-center">
  <ul>
    <li class="is-active"><a href="#genians">Genians</a></li>
    <li><a href="#rndcenter">R&amp;D Center</a></li>
    <li><a href="#fd">Front-end</a></li>
    <li><a href="#gnui">GNUI</a></li>
  </ul>
</div>
<div class="gn-tab is-right">
  <ul>
    <li class="is-active"><a href="#genians">Genians</a></li>
    <li><a href="#rndcenter">R&amp;D Center</a></li>
    <li><a href="#fd">Front-end</a></li>
    <li><a href="#gnui">GNUI</a></li>
  </ul>
</div>
<div class="gn-tab is-vertical is-medium">
  <ul>
    <li class="is-active"><a href="#genians">Genians</a></li>
    <li><a href="#rndcenter">R&amp;D Center</a></li>
    <li><a href="#fd">Front-end</a></li>
    <li><a href="#gnui">GNUI</a></li>
  </ul>
</div>

생성 옵션

Genians
R&D Center
Front-end
GNUI
  <div id="newTab">
    <ul>
      <li><a href="#genians"><span class="gn-icon is-small"><i class="fas fa-home"></i></span> Genians</a></li>
      <li class="is-active"><a href="#rndcenter">R&amp;D Center</a></li>
      <li><a href="#fd">Front-end</a></li>
      <li><a href="#gnui">GNUI</a></li>
    </ul>
  </div>
  <div id="newContents">
    <div id="genians">Genians</div>
    <div id="rndcenter">R&amp;D Center</div>
    <div id="fd">Front-end</div>
    <div id="gnui">GNUI</div>
  </div>
  Gn.create('tab', {
    target: '#newTab',
    align: 'center',
    contents: '#newContents',
    onChange: function(idx){
      console.log(idx + '번 탭이 활성화 되었습니다.')
    }
  });
name type default description
target string 탭을 생성할 대상의 선택자(selector)
tabIndex number 0 초기 활성화 탭 인덱스
contents string 탭 컨텐츠로 사용될 element selector
size string 'small','normal','medium','large'
align string full 'full', 'left','right', 'vertical'
style string 'border','border-half'
onChange(idx) function 탭 전환 시 발생 이벤트 (idx: 활성화 탭 인덱스)
disabled boolean false 비활성화 여부

메소드

name return description
change(index: number) void index에 해당하는 탭을 활성화한다.
disable() void Disabled 처리한다.
enable() void Enabled 처리한다.

Tagcloud

/scss/components/tagcloud.scss
v.0.1.0

기본 사용

<div class="gn-tagcloud" style="width: 300px">
  <ul>
    <li><a data-size="4">HTTP</a></li>
    <li><a data-size="1">Sass</a></li>
    <li><a data-size="8">HTML</a></li>
    <li><a data-size="6">FlexBox</a></li>
    <li><a data-size="4">API</a></li>
    <li><a data-size="6">Grid</a></li>
    <li><a data-size="2">Rest</a></li>
    <li><a data-size="9">JavaScript</a></li>
    <li><a data-size="8">CSS</a></li>
    <li><a data-size="3">Less</a></li>
  </ul>
</div>

생성 옵션

<div class="new-tagcloud"></div>
 Gn.create('tagcloud', {
  target: '.new-tagcloud',
  width: '250px',
  data: [{
    text: 'Genians',
    value: 50
  },{
    text: 'NAC',
    value: 33
  },{
    text: 'Typescript',
    value: 12
  },{
    text: 'Insights',
    value: 26
  },{
    text: 'Network',
    value: 3
  },{
    text: 'sass',
    value: 1,
  },{
    text: 'EDR',
    value: 19
  },{
    text: 'Front-end',
    value: 6
  },{
    text: 'GNUI',
    value: 42
  },{
    text: 'Framework',
    value: 1
  }]
  })
name type default description
target string 컴포넌트 생성대상 선택자(selector)
width string 컴포넌트 넓이
data Array[{text, value}] 출력할 태그 목록
value 값에 따라 1~9 단계로 text를 표시한다.
onClick function(data) 태그 클릭 시 수행될 이벤트

Tooltip

/scss/components/tooltip.scss
v.0.1.0 javascript

기본사용

Popper!!!
Popper again
Long Text Popper!!!
Where is my HOME
Panel Header
  • Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit. Tempor anim eiusmod ut laborum esse sint velit occaecat consequat aliqua elit duis ea. Ullamco officia ullamco excepteur consectetur est deserunt velit fugiat. Voluptate proident mollit exercitation tempor culpa reprehenderit duis incididunt voluptate cillum do ad laboris veniam.
  • Eu pariatur exercitation commodo amet occaecat non magna ea. Laboris reprehenderit nostrud labore anim Lorem Lorem quis. Tempor officia dolor enim incididunt ut cupidatat sunt.
  • Incididunt ipsum nostrud quis qui esse est aute anim velit aliqua ipsum. Ipsum mollit nulla ipsum Lorem cillum laboris. Proident nostrud magna consequat elit duis culpa deserunt voluptate. Ullamco commodo ad ea nostrud. Qui ullamco tempor non est adipisicing duis ullamco id ex. Nostrud fugiat mollit commodo veniam id et labore cillum adipisicing adipisicing qui dolor.
  <div class="gn-tooltip is-left is-relative">
    <span>Popper!!!</span>
  </div>
  <div class="gn-tooltip is-top is-relative">
    <span>Popper again</span>
  </div>
  <div class="gn-tooltip is-bottom is-relative">
    <span>Long Text Popper!!!</span>
  </div>
  <div class="gn-tooltip is-right is-relative">
    Where is my <span class="gn-icon is-small"><i class="fas fa-home"></i></span> HOME
  </div>
  <div class="new-contents">
    <div class="gn-panel" style="width: 250px; height: 600px">
      <div class="panel-header">
        Panel Header
      </div>
      <div class="panel-body">
        <ul class="gn-list">
          <li>Id eiusmod veniam aute elit nulla qui ullamco dolore cillum est veniam sunt velit. Tempor anim eiusmod ut laborum esse sint velit occaecat consequat aliqua elit duis ea. Ullamco officia ullamco excepteur consectetur est deserunt velit fugiat. Voluptate proident mollit exercitation tempor culpa reprehenderit duis incididunt voluptate cillum do ad laboris veniam.</li>
          <li>Eu pariatur exercitation commodo amet occaecat non magna ea. Laboris reprehenderit nostrud labore anim Lorem Lorem quis. Tempor officia dolor enim incididunt ut cupidatat sunt.</li>
          <li>Incididunt ipsum nostrud quis qui esse est aute anim velit aliqua ipsum. Ipsum mollit nulla ipsum Lorem cillum laboris. Proident nostrud magna consequat elit duis culpa deserunt voluptate. Ullamco commodo ad ea nostrud. Qui ullamco tempor non est adipisicing duis ullamco id ex. Nostrud fugiat mollit commodo veniam id et labore cillum adipisicing adipisicing qui dolor.</li>
        </ul>
      </div>
      <div class="panel-footer">
        Panel footer
      </div>
    </div>
  </div>

색상

Success
Warning
Danger
Info
Cancel
Dark
Secondary
Mono
<div class="gn-tooltip is-success is-left is-relative">
  <span>Success</span>
</div>
<div class="gn-tooltip is-warning is-bottom is-relative">
  <span>Warning</span>
</div>
<div class="gn-tooltip is-danger is-top is-relative">
  <span>Danger</span>
</div>
<div class="gn-tooltip is-info is-right is-relative">
  <span>Info</span>
</div>
<div class="gn-tooltip is-cancel is-left-bottom is-relative">
  <span>Cancel</span>
</div>
<div class="gn-tooltip is-dark is-right-top is-relative">
  <span>Dark</span>
</div>
<div class="gn-tooltip is-link is-top is-relative">
  <span>Link</span>
</div>
<div class="gn-tooltip is-secondary is-bottom is-relative">
  <span>Secondary</span>
</div>
<div class="gn-tooltip is-mono is-right is-relative">
  <span>Mono</span>
</div>

생성 옵션

tooltip left tooltip bottom tooltip top tooltip right
tooltip left top tooltip left bottom tooltip right top tooltip right bottom
  <span class="gn-tag is-large is-info has-tooltip1">tooltip left</span>
  <span class="gn-tag is-large is-info-light has-tooltip2">tooltip bottom</span>
  <span class="gn-tag is-large is-info-light is-outline has-tooltip3">tooltip top</span>
  <span class="gn-tag is-large is-info is-outline has-tooltip4">tooltip right</span>
  <br>
  <span class="gn-tag is-large is-info has-tooltip5">tooltip left top</span>
  <span class="gn-tag is-large is-info-light has-tooltip6">tooltip left bottom</span>
  <span class="gn-tag is-large is-info-light is-outline has-tooltip7">tooltip right top</span>
  <span class="gn-tag is-large is-info is-outline has-tooltip8">tooltip right bottom</span>
    Gn.create('tooltip', {
      target: '.has-tooltip1',
      contents: '.new-contents',
      direction: 'left',
      type: 'click'
    });
    Gn.create('tooltip', {
      target: '.has-tooltip2',
      contents: '기본값 bottom 툴팁'
    });
    Gn.create('tooltip', {
      target: '.has-tooltip3',
      contents: 'top 툴팁',
      direction: 'top'
    });
    Gn.create('tooltip', {
      target: '.has-tooltip4',
      contents: 'right 툴팁',
      direction: 'right'
    });
    Gn.create('tooltip', {
      target: '.has-tooltip5',
      contents: 'left top 툴팁',
      direction: 'left-top',
      width: '200px'
    });
    Gn.create('tooltip', {
      target: '.has-tooltip6',
      contents: 'left bottom 툴팁',
      direction: 'left-bottom'
    });
    Gn.create('tooltip', {
      target: '.has-tooltip7',
      contents:
        '</b>자주 사용되는 정규식 특수문자</b><br/><br/>. 임의의 한 문자 예) .* 모든문자열<br/>^ 문자열 시작 예) ^Genians Genians으로 시작하는 문자열<br/>$ 문자열 끝 예) Genians$ Genians로 끝나는 문자열<br/>[ 문자집합 시작 표시 예) [ab] a 또는 b문자가 포함되는 문자열<br/>] 문자집합 끝 표시<br/>( 문자열 집합 시작 예) a(b)|(c)d abd 또는 acd를 의미<br/> 문자열 집합 끝<br/>| 또는(OR)<br/> 특수한 기능을 하는 다음 문자표시 예) . Period 문자표시<br/>n* 0개 이상의 n문자<br/>n+ 1개 이상의 n문자<br/>&#123;n&#125; 앞문자가 n개 예) ab&#123;2&#125;c abbc를 의미<br/>&#123;n,&#125; 앞문자가 n개 이상<br/>&#123;,m&#125; 앞문자가 m개 이하<br/>&#123;n,m&#125; 앞문자가 n개 이상 m개 이하<br/>',
      direction: 'right-top'
    });
    Gn.create('tooltip', {
      target: '.has-tooltip8',
      contents: '<br/>right bottom 툴팁<br/>',
      direction: 'right-bottom'
    });
name type default description
target string 툴팁을 표시할 대상의 선택자(selector)
type string hover 툴팁 표시 트리거타입('hover','click')
delay number 0 툴팁 제거 지연시간(ms)
direction string bottom 툴팁 표시 방향(top,bottom,right,left,left-top,left-bottom,right-top,right-bottom)
position object 툴팁 표시 위치 {top: '0px', left: '0px'}로 설정
contents string 툴팁에 표시할 문구 또는 html 텍스트
color string 'success','warning','danger','info','cancel','dark','link','trans','secondary','mono'

메소드

name return description
show() void 툴팁을 표시한다.
hide() void 툴팁을 숨김처리한다.
setContents(newContents: string) void 툴팁 컨텐츠를 변경한다.

Tree

/scss/components/tree.scss
v.0.1.0 javascript

생성 옵션

<div style="display: flex">
  <div class="new-tree1"></div>
  <div class="new-tree2"></div>
  <div class="new-tree3"></div>
  <div class="new-tree4"></div>
</div>
Gn.create('tree', {
      target: '.new-tree1',
      data: [{
        text: 'Genians',
        child: [{
          text: 'GNUI'
        },{
          text: 'GNUI core'
        },{
          text: 'GNConfEngine'
        }]
      },{
        text: 'R&D Center',
        child: [{
          text: 'GNUI'
        },{
          text: 'GNUI core'
        },{
          text: 'GNConfEngine'
        }]
      },{
        text: 'Front-end'
      }],
      type: 'borderless'
    });
    Gn.create('tree', {
      target: '.new-tree2',
      data: [{
        text: 'Genians',
        child: [{
          text: 'GNUI'
        },{
          text: 'GNUI core'
        },{
          text: 'GNConfEngine'
        }]
      },{
        text: 'R&D Center',
        child: [{
          text: 'GNUI'
        },{
          text: 'GNUI core'
        },{
          text: 'GNConfEngine'
        }]
      },{
        text: 'Front-end'
      }],
      color: 'success',
      hasCheck: false
    })
    Gn.create('tree', {
      target: '.new-tree3',
      data: [{
        text: 'Genians',
        value: 'genians',
        actived: true,
        opened: true,
        child: [{
          text: 'GNUI',
          value: 'gnui'
        },{
          text: 'GNUI core',
          value: 'gnui-core',
          opened: true,
          child: [{
            text: 'GNUI',
            value: 'gnui-nested'
          },{
            text: 'GNUI core',
            value: 'gnui-core-nested'
          },{
            text: 'GNConfEngine',
            value: 'gnconfengine-nested',
            selected: true
          }]
        },{
          text: 'GNConfEngine',
          value: 'gnconfengine'
        }]
      },{
        text: 'R&D Center',
        value: 'rnd-center',
        child: [{
          text: 'GNUI',
          value: 'rnd-gnui'
        },{
          text: 'GNUI core',
          value: 'rnd-gnui-core'
        },{
          text: 'GNConfEngine',
          value: 'rnd-gnconfengine'
        }]
      },{
        text: 'Front-end',
        value: 'frontend'
      }],
      hasCheck: true
    })
    Gn.create('tree', {
      target: '.new-tree4',
      data: [{
        text: 'Disabled Root',
        value: 'disabled-root',
        opened: true,
        child: [{
          text: 'Locked Node',
          value: 'locked-node',
          selected: true
        },{
          text: 'Review Only',
          value: 'review-only'
        }]
      },{
        text: 'Disabled Leaf',
        value: 'disabled-leaf'
      }],
      hasCheck: true,
      disabled: true
    })
name type default description
target string 트리 생성 타겟
data array {key: value}로 이루어진 데이터
text: 메뉴명
value: 노드 식별 값
selected: true 인 경우 체크박스 체크된 상태로 표시
opened: true 인 경우 하위항목이 열린상태로 표시
actived: true 인 경우 선택된 상태로 표시
disabled: true 인 경우 해당 노드 선택·체크 불가
icon: 기본 트리 아이콘이 있는 경우(showIcon: true) HTMLElement String 을 통해 사용자 정의 아이콘으로 변경
hideIcon: 기본 트리 아이콘이 있는 경우(showIcon: true) 아이콘 숨김 처리
childField string child 자식 데이터를 가지고 있는 항목 키값
size string 'small','normal','medium','large'
color string 'success','warning','danger','info','cancel','dark','link','trans','secondary','mono'
type string 'borderless'
hasCheck boolean false 체크박스 출력 여부
checkPath boolean false 하위 항목 선택 시 상위항목 자동선택 여부
checkChild boolean true 부모 항목 선택 시 하위항목 자동선택 여부
showIcon boolean false 메뉴명 앞 아이콘 표시 여부
disabled boolean false true 인 경우 초기 렌더 시 전체 트리가 비활성화되며(is-disabled), 선택/체크 상호작용은 불가하지만 토글러를 통한 확장/축소는 가능
onSelect function 클릭 시 수행 이벤트
onDoubleClick function 더블 클릭 시 수행 이벤트
onToggle function child 항목을 열고닫을때 수행 이벤트
onCheck function 체크박스 항목을 선택/해제 할때 수행 이벤트

메소드

name return description
addChild(index: number, data: Array) void index번째(0~n) child로 data를 추가한다.
expand(index: number) void index번째(0~n) child를 확장한다.
collapse(index: number) void index번째(0~n) child 데이터를 축소한다.
collapseAll() void 열려있는 child 데이터를 축소한다.
expandAll() void 모든 노드를 확장한다.
checkAll() void 모든 노드를 체크한다. hasCheck: true일 때만 유효하며, 그 외에는 no-op이다.
uncheckAll() void 모든 노드의 체크를 해제한다. hasCheck: true일 때만 유효하며, 그 외에는 no-op이다.
setChecked(targets: string | string[], checked: boolean) void 전달한 단일 또는 복수 노드를 체크/해제한다. 노드 식별은 value로만 수행하며, 대상 노드에는 고유한 value가 필요하다. hasCheck: true일 때만 유효하다.
getChecked(withStatus: Boolean = false) array 체크박스가 있는 경우(hasCheck: true) 체크된 데이터를 리턴한다
withStatus 옵션을 true로 사용하는 경우 리턴 item.__status 에 그 아이템에 대한 상태값을 포함한다
getItemIndex(item: HTMLElement) number 아이템 index 값을 리턴한다
findData(index: number) any index에 해당하는 아이템을 리턴한다
filter(keyword: string) any keyword를 포함한 아이템만 표시한다
disable() void 트리 컴포넌트 전체를 비활성화한다.
enable() void 트리 컴포넌트 전체를 활성화한다.

Button

/scss/controls/button.scss
v.0.1.0 javascript

기본 사용

  • 사용 태그 : a, button, input[submit], input[reset]
<button type="button" class="gn-button">확인</button>
<button type="button" class="gn-button is-dark">확인</button>
<button type="button" class="gn-button">수정</button>
<button type="button" class="gn-button is-dark">수정</button>
<button type="button" class="gn-button">목록</button>
<button type="button" class="gn-button is-cancel is-outline">취소</button>

Buttons with icons

  • 사용 태그 :
<button type="button" class="gn-button"><i class="fa fa-cog"></i> Settings</button>
<button type="submit" class="gn-button"><i class="fa fa-shopping-cart fa-lg"></i> Checkout</button>
<button type="button" class="gn-button is-cancel"><i class="fa fa-cog"></i> Settings</button>
<button type="button" class="gn-button is-cancel"><i class="fa fa-shopping-cart fa-lg"></i> Checkout</button>
<button type="button" class="gn-button is-cancel"><i class="fa fa-download" aria-hidden="true"></i></button>

크기

  • small, normal, medium, large, full

<p>
<button type="button" class="gn-button is-small">Small</button>
<button type="button" class="gn-button is-normal">Normal</button>
<button type="button" class="gn-button is-medium">Medium</button>
<button type="button" class="gn-button is-large">Large</button>
</p><p>
<button type="button" class="gn-button is-full">Full</button>
</p><p>
<button type="button" class="gn-button is-full is-large">Large Full</button>
</p>

색상

  • success,warning,danger,info,cancel,dark,link,trans,secondary,mono
<button type="button" class="gn-button is-success">Success</button>
<button type="button" class="gn-button is-warning">Warning</button>
<button type="button" class="gn-button is-danger">Danger</button>
<button type="button" class="gn-button is-info">Info</button>
<button type="button" class="gn-button is-cancel">Cancel</button>
<button type="button" class="gn-button is-dark">Dark</button>
<button type="button" class="gn-button is-link">Link</button>
<button type="button" class="gn-button is-trans">Trans</button>
<button type="button" class="gn-button is-secondary">Secondary</button>
<button type="button" class="gn-button is-mono">Mono</button>

스타일

  • outline, invert
<button type="button" class="gn-button is-outline is-success">Success</button>
<button type="button" class="gn-button is-outline is-warning">Warning</button>
<button type="button" class="gn-button is-outline is-danger">Danger</button>
<button type="button" class="gn-button is-outline is-info">Info</button>
<button type="button" class="gn-button is-invert is-success">Success</button>
<button type="button" class="gn-button is-invert is-warning">Warning</button>
<button type="button" class="gn-button is-invert is-danger">Danger</button>
<button type="button" class="gn-button is-invert is-info">Info</button>

상태

  • hover, focus, active, disabled, invalid, loading
<button type="button" class="gn-button is-hover">Hover</button>
<button type="button" class="gn-button is-focus">Focus</button>
<button type="button" class="gn-button is-active">Active</button>
<button type="button" class="gn-button is-disabled">Disabled</button>
<button type="button" class="gn-button is-invalid">Invalid</button>
<button type="button" class="gn-button is-loading">Loading</button>

확장

  • with icon
<button type="button" class="gn-button">
  <span class="gn-icon is-small">
    <i class="fas fa-bold"></i>
  </span>
</button>
<button type="button" class="gn-button is-info">
  <span class="gn-icon is-small">
    <i class="fas fa-home"></i>
  </span>
  HOME
</button>
  • button arrange
<div class="gn-control has-arrange">
  <button type="button" class="gn-button">
    <span class="gn-icon">
      <i class="fas fa-align-left"></i>
    </span>
    Left
  </button>
  <button type="button" class="gn-button">
    <span class="gn-icon">
      <i class="fas fa-align-center"></i>
    </span>
    Center
  </button>
  <button type="button" class="gn-button">
    <span class="gn-icon">
      <i class="fas fa-align-right"></i>
    </span>
    Right
  </button>
</div>

생성 옵션

  <button class="gn-button" name="new-button">new button</button>
  Gn.create('button', {
    target: 'button[name=new-button]', 
    size: 'medium',
    icon: 'home',
    onClick: function(){
      console.log('버튼을 클릭했습니다.');
    }
  });
name type default description
target string 버튼을 생성할 대상의 선택자(selector)
textSets buttonText string 버튼에 표기할 문구
disabled boolean false 버튼 비활성화 여부
color string 'success','warning','danger','info','cancel','dark','link','trans','secondary','mono'
size string 'small','normal','medium','large'
style string 'outline','invert'
status string 'hover','focus', 'active', 'disabled', 'invalid', 'loading'
icon string font awesome solid icon name
onClick function 버튼 클릭 시 수행될 이벤트

메소드

name return description
click() void 버튼을 클릭을 동작한다.
disable() void Disabled 처리한다.
enable() void Enabled 처리한다.

Checkbox

/scss/controls/checkbox.scss
v.0.1.0

기본 사용

  • 사용 태그 : input[checkbox]
<label class="gn-checkbox"><input type="checkbox">항목 1</label>
<label class="gn-checkbox"><input type="checkbox">item 2</label>

스타일

  • medium, small 이 외 크기로 사용하지 않는다.
<div class="gn-checks is-disabled">
  <input type="checkbox" disabled id="ex_chk" alue="" checked=""><label for="ex_chk">체크박스</label> 
</div>
<div class="gn-checks is-small">
  <input type="checkbox" id="ex_chk2"><label for="ex_chk2"></label> 
</div>

크기

<label class="gn-checkbox is-small"><input type="checkbox">Small</label>
<label class="gn-checkbox is-normal"><input type="checkbox">Normal</label>
<label class="gn-checkbox is-medium"><input type="checkbox">Medium</label>
<label class="gn-checkbox is-large"><input type="checkbox">Large</label>

상태 (disabled, invalid)

<label class="gn-checkbox is-disabled"><input type="checkbox" disabled>항목 1</label>
<label class="gn-checkbox is-disabled"><input type="checkbox" disabled>item 2</label>
<label class="gn-checkbox is-invalid"><input type="checkbox">item 2</label>

Colorpicker

/scss/controls/colorpicker.scss
v.0.1.0 javascript

생성 옵션

  <input type="text" class="colorPicker" />
  <input type="text" class="colorPicker2" />
  <input type="text" class="colorPicker3" />
  <input type="text" class="colorPicker4" />
  Gn.create('colorpicker', {
    target: '.colorPicker',
    size: 'large',
    editable: true,
    onChange: color => {
      console.log('color', color);
    }
  });
  Gn.create('colorpicker', {
    target: '.colorPicker2',
    value: '#27005d',
    size: 'medium'
  });
  Gn.create('colorpicker', {
    target: '.colorPicker3',
    readonly: true,
    value: '#aed2ff',
    onChange: color => {
      console.log('color', color);
    }
  });
  Gn.create('colorpicker', {
    target: '.colorPicker4',
    value: '#e4f1ff',
    disabled: true,
    size: 'small'
  });
name type default description
target string colorpicker 객체 선택자(selector)
textSets placeholder string
size string 'small','normal','medium','large'
value string 초기 색상 값
editable boolean false 색상 입력 가능여부 (true 설정 후 팔레트를 보여줄 때 입력받은 색상이 올바르지 않은 헥사코드인 경우 기본색상으로 변경)
readonly boolean false 읽기전용 여부
disabled boolean false 비활성화 여부
onChange function 색상 값 변경 시 수행 이벤트

메소드

name return description
change(color) void 컬러값을 변경한다.
getValue() string 설정된 컬러값을 반환한다.
disable() void Disabled 처리한다.
enable() void Enabled 처리한다.

Datepicker

/scss/controls/datepicker.scss
v.0.1.0 javascript

생성 옵션

<input type="text" class="new-datepicker" />
<input type="text" class="new-datetimepicker-without-icon" />
<input type="text" class="new-datetimepicker" />
  Gn.create('datepicker', {
    target: '.new-datepicker',
    value: '',
    dateFormat: 'yyyy-MM-DD',
    min: '-1M',
    max: '1M',
    type: 'date'
  });
  Gn.create('datepicker', {
    target: '.new-datetimepicker-without-icon',
    type: 'datetime',
    value: '2021-10-10 10:01:11',
    hasIcon: false,
    onClose: function () {
      console.log('창이 닫힙니다.');
    }
  });
  Gn.create('datepicker', {
    target: '.new-datetimepicker',
    type: 'datetime',
    writable: false,
    textSets: {
      placeholder: 'pick a date'
    }
  });
name type default description
target string datepicker 생성 타겟
textSets placeholder string
locale 'ko'|'en' ko 표기문구 언어
type string date picker type : date | datetime
timeFormat string hh:mm:ss 시간 형식 (hh:mm:ss, hh:mm)
size string 'small','normal','medium','large'
value string | Date now 초기 날짜, 시간 값
width string 165px 입력 input 크기
hasIcon boolean true 달력 아이콘 표시여부
disabled boolean false Disable 여부
readonly boolean false 읽기전용 여부
writable boolean true 입력가능 여부
min string 선택 할 수 있는 범위의 시작일 ('2021-04-02', '-5d', '-1W', '-1M'...)
max string 선택 할 수 있는 범위의 종료일 ('2021-10-02', '3d', '2W', '1M'...)
onClose function 창을 닫을때 수행될 이벤트

메소드

name return description
change(date) void 날짜 값을 변경한다.
getDate() String 날짜 값을 문자열로 반환한다.
getTime() Date 날짜 값을 타임스탬프 형식으로 반환한다.
disable() void Disabled 처리한다.
enable() void Enabled 처리한다.

Field

/scss/controls/field.scss
v.0.1.0

.gn-field

  • form을 구성하는 하나의 항목을 wrap 할 때 사용

정렬

  • 가로(is-horizontal, 기본값), 세로(is-vertical)
이름
성별
파일첨부
gnui-guide.png
<div class="gn-field">
  <div class="gn-label is-require">이름</div>
  <div class="gn-control">
    <input class="gn-input" placeholder="input name">
    <label class="gn-checkbox"><input type="checkbox">Unknown</label>
  </div>
</div>
<div class="gn-field">
  <div class="gn-label">성별</div>
  <div class="gn-control">
    <label class="gn-radio"><input type="radio" name="gender">없음</label>
    <label class="gn-radio"><input type="radio" name="gender">남자</label>
    <label class="gn-radio"><input type="radio" name="gender">여자</label>
  </div>
</div>
<div class="gn-field">
  <div class="gn-label">파일첨부</div>
  <div class="gn-control has-arrange">
    <label class="gn-file is-info">
        <input type="file"> Select File </label>
    <span class="gn-plain">gnui-guide.png</span>
  </div>
</div>
이름
성별
파일첨부
gnui-guide.png
<div class="gn-field is-vertical is-large">
  <div class="gn-label is-require">이름</div>
  <div class="gn-control">
    <input class="gn-input is-full" placeholder="input name">
  </div>
</div>
<div class="gn-field is-vertical is-large">
  <div class="gn-label">성별</div>
  <div class="gn-control">
    <div class="gn-select is-full">
      <select>
        <option>없음</option>
        <option>남자</option>
        <option>여자</option>
      </select>
    </div>
  </div>
</div>
<div class="gn-field is-vertical is-large">
  <div class="gn-label">파일첨부</div>
  <div class="gn-control has-arrange">
    <label class="gn-file is-info">
        <input type="file"> Select File </label>
    <span class="gn-plain is-full">gnui-guide.png</span>
  </div>
</div>

Label 정렬 및 너비 조절 (가로 정렬일 때)

  • Label에 UTILITY의 텍스트 정렬 클래스(has-text-left, has-text-right, has-text-center)를 적용하여 정렬 변경 가능
  • Label에 Grid의 사이즈 클래스(is-1 ~ is-12)를 적용하여 너비 조절 가능
이름
다국어용 긴 레이블 텍스트
다국어용 매우 긴 레이블 텍스트
<!-- Label 왼쪽 정렬 -->
<div class="gn-field">
  <div class="gn-label has-text-left">이름</div>
  <div class="gn-control">
    <input class="gn-input" placeholder="input name">
  </div>
</div>

<!-- Label 너비 조절 (Grid 사이즈 클래스 사용) -->
<div class="gn-field">
  <div class="gn-label is-3">다국어용 긴 레이블 텍스트</div>
  <div class="gn-control">
    <input class="gn-input" placeholder="input name">
  </div>
</div>

<!-- Label 왼쪽 정렬 + 너비 조절 조합 -->
<div class="gn-field">
  <div class="gn-label has-text-left is-4">다국어용 매우 긴 레이블 텍스트</div>
  <div class="gn-control">
    <input class="gn-input" placeholder="input name">
  </div>
</div>

File

/scss/controls/file.scss
v.0.1.0

기본 사용

  • 사용 태그 : label > input[file]
<!-- 기본  --> 
<label class="gn-file is-normal">
  <input type="file">
  Select file
</label>
<!-- 크기  --> 
<label class="gn-file is-medium">
  <input type="file">
  Select file
</label>
<label class="gn-file is-large">
  <input type="file">
  Select file
</label>

확장

  • icon 추가, label 추가
  • 레이블을 추가할 경우, 레이블을 먼저 선언해준다.
gnui-guide.png
<!-- 아이콘만 사용할 경우 -->
<label class="gn-file">
  <input type="file">
  <span class="gn-icon is-small">
    <i class="fas fa-upload"></i>
  </span>
</label>

<!-- 텍스트와 동일한 색깔의 아이콘 사용할 경우 -->
<label class="gn-file is-info is-outline">
  <input type="file">
  Select File
  <span class="gn-icon is-small">
    <i class="fas fa-angle-right"></i>
  </span>
</label>

<!-- 텍스트와 다른 색깔의 아이콘 사용할 경우 -->
<div class="gn-control has-icon-right">
  <span class="gn-icon is-small is-black is-right">
    <i class="fas fa-angle-right"></i>
  </span>
  <label class="gn-file is-info">
    <input type="file">
    Select File
  </label>
</div>

<!-- 아이콘과 텍스트 함께 사용할 경우 -->
<div class="gn-control has-icon-right">
  <span class="gn-icon is-normal is-white is-right">
    <i class="far fa-file-image"></i>
  </span>
  <label class="gn-file is-info">
    <input type="file">
    Select File
  </label>
</div>

<!-- 레이블을 함께 사용할 경우 -->
<div class="gn-control has-arrange">
  <label class="gn-file is-info">
    <input type="file">
    Select File
  </label>
  <span class="gn-plain">gnui-guide.png</span>
</div>

색상

<label class="gn-file is-success">
  <input type="file">
  Select file
</label>
<label class="gn-file is-warning">
  <input type="file">
  Select file
</label>
<label class="gn-file is-danger">
  <input type="file">
  Select file
</label>
<label class="gn-file is-info">
  <input type="file">
  Select file
</label>

상태

<label class="gn-file is-hover">
  <input type="file">
  Is hover
</label>
<label class="gn-file is-disabled">
  <input type="file" disabled>
  Disabled
</label>
<label class="gn-file is-invalid">
  <input type="file">
  Invalid
</label>

Control

/scss/controls/form.scss
v.0.1.0

.gn-control

  • CONTROLS 객체를 wrap 할때 사용

크기

  • 하위 컨트롤의 크기를 지정하는데 사용
  • is-small, is-normal, is-medium, is-large, is-full

상태

  • 하위 컨트롤의 상태를 지정하는데 사용
  • is-loading

아이콘 추가

  • 하위 컨트롤에 아이콘을 추가할 경우 사용(.has-icon-left, .has-icon-right)
  • 아이콘(.gn-icon)을 포함하며, 해당 아이콘에 정렬 클래스 (.is-left, .is-right)를 추가한다.
  <div class="gn-control has-icon-left has-icon-right">
    <span class="gn-icon is-left">
      <i class="fas fa-wifi"></i>
    </span>
    <span class="gn-icon is-right">
      <i class="fas fa-search"></i>
    </span>
    <input type="text" class="gn-input" placeholder="input text">
  </div>

여러개의 컨트롤 사용

  • 하위에 여러개의 컨트롤을 사용할 때 .has-arrange 클래스를 추가하여 사용

정렬

  • 왼쪽(is-left, 기본값), 가운데(is-center), 오른쪽(is-right)
<div class="gn-control is-large has-arrange is-center">
  <button type="button" class="gn-button">
    <span class="gn-icon">
      <i class="fas fa-align-left"></i>
    </span>
    Left
  </button>
  <button type="button" class="gn-button">
    <span class="gn-icon">
      <i class="fas fa-align-center"></i>
    </span>
    Center
  </button>
  <button type="button" class="gn-button">
    <span class="gn-icon">
      <i class="fas fa-align-right"></i>
    </span>
    Right
  </button>
</div>

Input

/scss/controls/input.scss
v.0.1.0

기본 사용

  • 사용 태그 : input[text], input[password], input[search], input[email], input[tel]
  <input type="text" class="gn-input" placeholder="text input">
  <input type="password" class="gn-input" placeholder="password input">
  <input type="search" class="gn-input" placeholder="search input">
  <input type="tel" class="gn-input" placeholder="tel input">

색상

<input type="text" class="gn-input" placeholder="primary text : border 1px">
<input type="text" class="gn-input is-border-width2" placeholder="primary text : border 2px"> 
<input type="text" class="gn-input is-border-width3" placeholder="primary text : border 3px"> 

확장

  • 레이블을 추가할 경우, 레이블을 먼저 선언해준다.
Kg
  <div class="gn-control has-arrange">
    <div class="gn-plain">
      <span class="gn-icon">
        <i class="fas fa-weight-hanging"></i>
      </span>
    </div>
    <input type="text" class="gn-input" placeholder="input weight">
    <div class="gn-plain">
      Kg
    </div>
  </div>
  <div class="gn-control has-arrange is-medium">
    <div class="gn-select">
      <select>
        <option>&#65510;</option>
        <option>&dollar;</option>
        <option>&pound;</option>
        <option>&euro;</option>
      </select>
    </div>
    <input type="text" class="gn-input" placeholder="cost">
    <a class="gn-plain" role="button">
      <span class="gn-icon is-small">
        <i class="fas fa-calculator"></i>
      </span>
    </a>
  </div>
  <div class="gn-control has-arrange is-medium">
    <input type="text" class="gn-input is-medium is-full" placeholder="keyword">
    <a class="gn-plain2 is-primary" role="button">
      <span class="gn-icon">
        <i class="fas fa-search"></i>
      </span>
    </a>
  </div>
   <div class="gn-control has-arrange is-medium">
    <input type="text" class="gn-input is-medium is-full is-border-width3" placeholder="keyword">
    <a class="gn-plain2 is-primary" role="button">
      <span class="gn-icon">
        <i class="fas fa-search"></i>
      </span>
    </a>
  </div>
  • 아이콘이 포함된 경우, 아이콘을 먼저 선언해준다.
  <div class="gn-control has-icon-left has-icon-right">
    <span class="gn-icon is-left">
      <i class="fas fa-wifi"></i>
    </span>
    <span class="gn-icon is-right">
      <i class="fas fa-search"></i>
    </span>
    <input type="text" class="gn-input" placeholder="input text">
  </div>
  <div class="gn-control has-icon-right">
    <span class="gn-icon is-right">
      <i class="fas fa-calendar"></i>
    </span>
    <input type="text" class="gn-input" placeholder="pick a date">
  </div>

크기

  <input type="text" class="gn-input is-normal" placeholder="normal text">
  <input type="text" class="gn-input is-medium" placeholder="medium text">
  <input type="text" class="gn-input is-large" placeholder="large text">
  <input type="text" class="gn-input is-full" placeholder="full text">

상태

  <p><input type="text" class="gn-input" readonly placeholder="readonly text"></p>
  <p><input type="text" class="gn-input" disabled placeholder="disabled text"></p>
  <p><input type="text" class="gn-input is-focus" placeholder="focus text"></p>
  <p><input type="text" class="gn-input is-hover" placeholder="hover text"></p>
  <p><input type="text" class="gn-input is-invalid" placeholder="invalid text"></p>
  <p>
  <div class="gn-control is-full is-large is-loading">
    <input type="text" class="gn-input is-full is-large" placeholder="loading text">
  </div>
  </p>

MultiText

/scss/controls/multitext.scss
v.0.1.0 javascript

생성 옵션

<div class="default-multitext">
</div>
<div class="new-multitext">
</div>
<div class="message-multitext">
</div>
Gn.create('multitext', {
  target: '.default-multitext'
})

Gn.create('multitext', {
  target: '.new-multitext',
  lang: ['en','ko','cn'],
  value: {
    en: 'hello',
    ko: '안녕하세요',
    cn: 'HELLO'
  },
  maxlength: 300
})

Gn.create('multitext', {
  target: '.message-multitext',
  lang: ['ko', 'en'],
  value: {
    ko: '옵션 문구 예시',
    en: 'message example'
  },
  maxlength: 120,
  useMaxLengthMessage: true,
  textSets: {
    maxLengthMessage: '{{maxlength}}자 입력 가능합니다.'
  }
})
name type default description
target string multitext 생성 타겟
lang Array ['en','ko'] 사용할 언어 배열
value Object 언어별 초기 값
size string 'normal' 사이즈
width string 100% 넓이
rows number 2 textarea 라인 수
maxlength number 524288 최대 입력 글자길이
textSets maxLengthMessage string '{{maxlength}}자 입력 가능합니다.' maxlength 및 useMaxLengthMessage=true일 때 적용되는 남은 입력 가능 글자 안내 문구
useMaxLengthMessage boolean false true인 경우에만 textSets.maxLengthMessage 안내 문구 모드 활성화 (기본 카운터는 유지)
onChange(value) function 값 변경 시 발생 이벤트
disabled boolean false 비활성화 여부

메소드

name return description
getValue() String 값을 반환한다.
disable() void Disabled 처리한다.
enable() void Enabled 처리한다.

Picklist

/scss/controls/picklist.scss
v.0.1.0 javascript

기본 사용

<div class="gn-picklist">
  <div class="picklist-source">
    <div class="picklist-controls gn-control is-small has-arrange is-vertical is-center">
      <button type="button" class="gn-button is-outline">
        <span class="gn-icon">
          <i class="fas fa-angle-double-up"></i>
        </span>
      </button>
      <button type="button" class="gn-button is-outline">
        <span class="gn-icon">
          <i class="fas fa-angle-up"></i>
        </span>
      </button>
      <button type="button" class="gn-button is-outline">
        <span class="gn-icon">
          <i class="fas fa-angle-down"></i>
        </span>
      </button>
      <button type="button" class="gn-button is-outline">
        <span class="gn-icon">
          <i class="fas fa-angle-double-down"></i>
        </span>
      </button>
    </div>
    <div class="gn-dropdown is-opened">
      <div class="dropdown-items">
        <ul>
          <li class="dropdown-item">항목 1</li>
          <li class="dropdown-item">항목 2</li>
          <li class="dropdown-item">항목 3</li>
          <li class="dropdown-item">항목 4</li>
          <li class="dropdown-item">항목 5</li>
          <li class="dropdown-item">항목 6</li>
          <li class="dropdown-item">항목 7</li>
          <li class="dropdown-item">항목 8</li>
          <li class="dropdown-item">항목 9</li>
          <li class="dropdown-item">항목 10</li>
          <li class="dropdown-item">항목 11</li>
        </ul>
      </div>
    </div>
  </div>
  <div class="picklist-controls gn-control is-small has-arrange is-vertical is-center">
    <button type="button" class="gn-button is-outline">
      <span class="gn-icon">
        <i class="fas fa-angle-double-right"></i>
      </span>
    </button>
    <button type="button" class="gn-button is-outline">
      <span class="gn-icon">
        <i class="fas fa-angle-right"></i>
      </span>
    </button>
    <button type="button" class="gn-button is-outline">
      <span class="gn-icon">
        <i class="fas fa-angle-left"></i>
      </span>
    </button>
    <button type="button" class="gn-button is-outline">
      <span class="gn-icon">
        <i class="fas fa-angle-double-left"></i>
      </span>
    </button>
  </div>
  <div class="picklist-target">
    <div class="picklist-controls gn-control is-small has-arrange is-vertical is-center">
      <button type="button" class="gn-button is-outline">
        <span class="gn-icon">
          <i class="fas fa-angle-double-up"></i>
        </span>
      </button>
      <button type="button" class="gn-button is-outline">
        <span class="gn-icon">
          <i class="fas fa-angle-up"></i>
        </span>
      </button>
      <button type="button" class="gn-button is-outline">
        <span class="gn-icon">
          <i class="fas fa-angle-down"></i>
        </span>
      </button>
      <button type="button" class="gn-button is-outline">
        <span class="gn-icon">
          <i class="fas fa-angle-double-down"></i>
        </span>
      </button>
    </div>
    <div class="gn-dropdown is-opened">
      <div class="dropdown-items">
        <ul>
        </ul>
      </div>
    </div>
  </div>
</div>

방향 전환

<div class="gn-picklist is-vertical" style="height: 400px; width: 550px">
  <div class="picklist-source">   
    <div class="picklist-controls gn-control is-small has-arrange is-vertical is-center">
      <button type="button" class="gn-button is-outline">
        <span class="gn-icon">
          <i class="fas fa-angle-double-up"></i>
        </span>
      </button>
      <button type="button" class="gn-button is-outline">
        <span class="gn-icon">
          <i class="fas fa-angle-up"></i>
        </span>
      </button>
      <button type="button" class="gn-button is-outline">
        <span class="gn-icon">
          <i class="fas fa-angle-down"></i>
        </span>
      </button>
      <button type="button" class="gn-button is-outline">
        <span class="gn-icon">
          <i class="fas fa-angle-double-down"></i>
        </span>
      </button>
    </div> 
    <div class="gn-dropdown is-opened">
      <div class="dropdown-items">
        <ul>
          <li class="dropdown-item">항목 1</li>
          <li class="dropdown-item">항목 2</li>
          <li class="dropdown-item">항목 3</li>
          <li class="dropdown-item">항목 4</li>
          <li class="dropdown-item">항목 5</li>
          <li class="dropdown-item">항목 6</li>
          <li class="dropdown-item">항목 7</li>
        </ul>
      </div>
    </div>
  </div>
  <div class="picklist-controls gn-control is-small has-arrange is-center">
    <button type="button" class="gn-button is-outline">
      <span class="gn-icon">
        <i class="fas fa-angle-double-down"></i>
      </span>
    </button>
    <button type="button" class="gn-button is-outline">
      <span class="gn-icon">
        <i class="fas fa-angle-down"></i>
      </span>
    </button>
    <button type="button" class="gn-button is-outline">
      <span class="gn-icon">
        <i class="fas fa-angle-up"></i>
      </span>
    </button>
    <button type="button" class="gn-button is-outline">
      <span class="gn-icon">
        <i class="fas fa-angle-double-up"></i>
      </span>
    </button>
  </div>
  <div class="picklist-target">
    <div class="picklist-controls gn-control is-small has-arrange is-vertical is-center">
      <button type="button" class="gn-button is-outline">
        <span class="gn-icon">
          <i class="fas fa-angle-double-up"></i>
        </span>
      </button>
      <button type="button" class="gn-button is-outline">
        <span class="gn-icon">
          <i class="fas fa-angle-up"></i>
        </span>
      </button>
      <button type="button" class="gn-button is-outline">
        <span class="gn-icon">
          <i class="fas fa-angle-down"></i>
        </span>
      </button>
      <button type="button" class="gn-button is-outline">
        <span class="gn-icon">
          <i class="fas fa-angle-double-down"></i>
        </span>
      </button>
    </div>
    <div class="gn-dropdown is-opened">
      <div class="dropdown-items">
        <ul>
        </ul>
      </div>
    </div>
  </div>
</div>

생성 옵션

  <div class="new-picklist"></div>
  <div class="new-picklist-v"></div>
  <div class="new-picklist-cols"></div>
  <div class="new-picklist-tooltip"></div>
  Gn.create('picklist', {
    target: '.new-picklist',
    data: {
      source: [
        { value: '항목1', text: 'item1', html: '<span class="gn-tag is-primary">항목1</span> item1' },
        { value: '항목2', text: 'item2', html: '<span class="gn-tag is-danger">항목2</span> item2' },
        { value: '항목3', text: 'item3', html: '<span class="gn-tag is-warning">항목3</span> item3' }
      ],
      target: [
        { value: '항목4', text: 'item4', html: '<span class="gn-tag is-help">항목4</span> item4' },
        { value: '항목5', text: 'item5', html: '<span class="gn-tag is-success">항목5</span> item5' }
      ]
    },
    hasSourceSearch: true,
    hasTargetSearch: true,
    width: '80%',
    height: 180,
    onChange: function (s, t) {
      console.log(s, t);
    },
    orderable: 'target'
  });
  Gn.create('picklist', {
    target: '.new-picklist-v', 
    data : {
      source: [
        { value: '항목1', text: 'item1' },
        { value: '항목2', text: 'item2' },
        { value: '항목3', text: 'item3' },
        { value: '항목4', text: 'item4' },
        { value: '항목5', text: 'item5' }
      ],
      target: []
    },
    direction: 'vertical',
    width: '500px',
    height: 150
  });
  Gn.create('picklist', {
    target: '.new-picklist-cols',
    data: {
      source: [
        { value: '항목1', cols: ['item1', '1', '상세정보1'] },
        { value: '항목2', cols: ['item2', '2', '상세정보2'] },
        { value: '항목3', cols: ['item3', '3', '상세정보3'] },
        { value: '항목4', cols: ['item4', '4', '상세정보4'] },
        { value: '항목5', cols: ['item5', '5', '상세정보5'] }
      ],
      target: []
    },
    direction: 'vertical',
    width: '500px',
    height: 150
  });
  Gn.create('picklist', {
    target: '.new-picklist-tooltip',
    data: {
      source: [
        { value: '항목1', text: 'item1' },
        { value: '항목2', text: 'item2' },
        { value: '항목3', text: 'item3' }
      ],
      target: []
    },
    optionTooltip: {
      direction: 'right',
      content: function(option) {
        return '<div style="padding: 10px; max-width: 200px;">' + option.text + '에 대한 추가 정보입니다.</div>';
      }
    },
    direction: 'horizontal',
    width: '500px',
    height: 150
  });

데이터 모델 (PicklistItem)

필드 type 필수 description
value string Y 항목 값
text string N 단일 컬럼 표시 텍스트
cols string[] N 다중 컬럼 표시 값 배열
html string N 옵션 html(html이 있는 경우 text가 있는 항목만 선택 가능하다.)
icon string N font awesome solid icon name
name type default description
target string picklist를 표시할 대상의 선택자(selector)
* data의 target과 혼동되지 않도록 주의
data source PicklistItem[] source 항목 배열
- PicklistItem 참조

참고: 표시 우선순위는 html > cols > text 입니다. html 항목은 text가 있는 경우만 선택 가능하며, html이 있으면 cols는 무시됩니다.
target PicklistItem[] target 항목 배열
- PicklistItem 참조

참고: 표시 우선순위는 html > cols > text 입니다. html 항목은 text가 있는 경우만 선택 가능하며, html이 있으면 cols는 무시됩니다.
textSets sourceCaption string source 항목 캡션
targetCaption string target 항목 캡션
searchText string 'search item'
orderable string, boolean true 정렬 버튼 출력 여부 (true, false, 'source', 'target')
width string, number 100% 컴포넌트 넓이
height string, number 150 선택항목 영역의 높이
direction string 'horizontal' 컴포넌트 방향 ('horizontal', 'vertical')
optionTooltip object 옵션 툴팁 설정

direction: 'top','right','bottom','left'
content: function(option){ return htmlString }
fetch: function(option){ return Promise that resolves htmlString }
hasSourceSearch boolean false source 항목 검색기능 활성화 여부
hasTargetSearch boolean false target 항목 검색기능 활성화 여부
disabled boolean false Disable 여부
onChange function(source, target) 컴포넌트 값 변경 시 발생 이벤트
onChange function(source, target) 컴포넌트 값 변경 시 발생 이벤트
onSort function(source, target) 항목 정렬 시 발생 이벤트
onTransfre function(source, target) source, target 간 이동 시 발생 이벤트

메소드

name return description
getSource() array source 항목의 배열을 반환한다.
getTarget() array target 항목의 배열을 반환한다.
getValue() string target 항목의 value를 콤마(,)로 구분하여 반환한다.
disable() void Disabled 처리한다.
enable() void Enabled 처리한다.
setSource(array[{value: string|array, text: string}]) void source 항목을 변경한다.
setTarget(array[{value: string|array, text: string}]) void target 항목을 변경한다.
setData({source: array[{value: string|array, text: string}], target: array[{value: string|array, text: string}]) void source, target 항목을 변경한다.

Plain

/scss/controls/plain.scss
v.0.1.0

.gn-plain

  • Arrange 된 control 객체에 텍스트 박스를 추가할 때 사용
텍스트
<div class="gn-plain">텍스트</div>

크기

  • is-small, is-normal, is-medium, is-large
Small
Normal
Medium
Large
<div class="gn-plain is-small">Small</div>
<div class="gn-plain is-normal">Normal</div>
<div class="gn-plain is-medium">Medium</div>
<div class="gn-plain is-large">Large</div>

스타일

  • is-borderless, is-outline
Normal
Borderless
transparent
Outline
<div class="gn-plain">Normal</div>
<div class="gn-plain is-borderless">Borderless</div>
<div class="gn-plain is-transparent">transparent</div>
<div class="gn-plain is-primary is-outline">Outline</div>

색상

Success
Warning
Danger
Info
<div class="gn-plain is-success is-borderless">Success</div>
<div class="gn-plain is-warning is-borderless">Warning</div>
<div class="gn-plain is-danger is-outline">Danger</div>
<div class="gn-plain is-info is-outline">Info</div>

Radio

/scss/controls/radio.scss
v.0.1.0

기본 사용

  • 사용 태그 : input[radio]
<label class="gn-radio"><input type="radio">항목 1</label>
<label class="gn-radio"><input type="radio">item 2</label>

스타일

  • 사용 태그 : input[radio]
<div class="gn-rdscheck">
  <input type="radio" id="ex_rd" name="ex_rds" checked=""><label for="ex_rd">라디오버튼</label>
</div>
<div class="gn-rdscheck is-small">
  <input type="radio" id="ex_rd2" name="ex_rds"><label for="ex_rd2">라디오버튼</label>
</div>



크기

<label class="gn-radio is-small"><input type="radio">Small</label>
<label class="gn-radio is-normal"><input type="radio">Normal</label>
<label class="gn-radio is-medium"><input type="radio">Medium</label>
<label class="gn-radio is-large"><input type="radio">Large</label>

상태 (disabled, invalid)

<label class="gn-radio is-disabled"><input type="radio" disabled>항목 1</label>
<label class="gn-radio is-disabled"><input type="radio" disabled>item 2</label>
<label class="gn-radio is-invalid"><input type="radio">item 3</label>

Select

/scss/controls/select.scss
v.0.1.0

기본 사용

  • 사용 태그 : select
  <div class="gn-select">
    <select>
      <option>Lorem</option>
      <option>voluptate</option>
      <option>proident</option>
      <option>labore</option>
      <option>consectetur</option>
    </select>
  </div>
  <div class="gn-select is-header">
    <select>
      <option>Lorem</option>
      <option>voluptate</option>
      <option>proident</option>
      <option>labore</option>
      <option>consectetur</option>
    </select>
  </div>

크기

  <div class="gn-select is-small">
    <select>
      <option>Small</option>
      <option>proident</option>
      <option>labore</option>
      <option>consectetur</option>
    </select>
  </div>
  <div class="gn-select is-normal">
    <select>
      <option>Normal</option>
      <option>proident</option>
      <option>labore</option>
      <option>consectetur</option>
    </select>
  </div>
  <div class="gn-select is-medium">
    <select>
      <option>Medium</option>
      <option>proident</option>
      <option>labore</option>
      <option>consectetur</option>
    </select>
  </div>
  <div class="gn-select is-large">
    <select>
      <option>Large</option>
      <option>proident</option>
      <option>labore</option>
      <option>consectetur</option>
    </select>
  </div>
  <div class="gn-select is-full">
    <select>
      <option>Full</option>
      <option>proident</option>
      <option>labore</option>
      <option>consectetur</option>
    </select>
  </div>

색상

  <div class="gn-select is-success">
    <select>
      <option>success</option>
    </select>
  </div>
  <div class="gn-select is-warning">
    <select>
      <option>warning</option>
    </select>
  </div>
  <div class="gn-select is-danger">
    <select>
      <option>danger</option>
    </select>
  </div>
  <div class="gn-select is-info">
    <select>
      <option>info</option>
    </select>
  </div>

스타일

  <div class="gn-select is-borderless">
    <select>
      <option>borderless</option>
      <option>proident</option>
      <option>labore</option>
      <option>consectetur</option>
    </select>
  </div>
  <div class="gn-select is-multiple">
    <select multiple>
      <option>multiple</option>
      <option>proident</option>
      <option>labore</option>
      <option>consectetur</option>
    </select>
  </div>

상태

  <div class="gn-select is-focus">
    <select>
      <option>focus</option>
    </select>
  </div>
  <div class="gn-select is-hover">
    <select>
      <option>hover</option>
    </select>
  </div>
  <div class="gn-select">
    <select disabled>
      <option>disabled</option>
    </select>
  </div>
  <div class="gn-select is-invalid">
    <select>
      <option>invalid</option>
    </select>
  </div>
  <div class="gn-select is-loading">
    <select>
      <option>loading...</option>
    </select>
  </div>

확장

Kg
  <div class="gn-control has-arrange">
    <div class="gn-plain">
      <span class="gn-icon is-small">
        <i class="fas fa-weight-hanging"></i>
      </span>
    </div>
    <div class="gn-select">
      <select>
        <option>with label</option>
      </select>
    </div>
    <div class="gn-plain">
      Kg
    </div>
  </div>

  <div class="gn-control has-icon-left">
    <span class="gn-icon is-left">
      <i class="fas fa-wifi"></i>
    </span>
    <div class="gn-select">
      <select>
        <option>with label</option>
      </select>
    </div>
  </div>

SelectButton

/scss/controls/selectbutton.scss
v.0.1.0 javascript

생성 옵션

  <div class="new-selectButtons"></div>
  <div class="new-selectButtons-v"></div>
  Gn.create('selectbutton', {
    target: '.new-selectButtons', 
    size: 'normal',
    value: 'menu2',
    onChange: function(option){
      console.log('선택된 옵션은 ' + option );
    },
    data: [{
      text: 'menu1',
      value: 'menu1'
    },{
      text: 'menu2',
      value: 'menu2'
    },{
      text: 'menu3',
      value: 'menu3'
    },{
      text: 'menu4',
      value: 'menu4'
    }]
  });
  Gn.create('selectbutton', {
    target: '.new-selectButtons-v', 
    size: 'normal',
    value: 'menu1,menu2',
    multiple: true,
    align: 'vertical',
    onChange: function(option){
      console.log('선택된 옵션은 ' + option );
    },
    data: [{
      text: 'menu1',
      value: 'menu1'
    },{
      text: 'menu2',
      value: 'menu2'
    },{
      text: 'menu3',
      value: 'menu3'
    },{
      text: 'menu4',
      value: 'menu4'
    }]
  });
name type default description
target string 컴포넌트 생성대상 선택자(selector)
size string 'small','normal','medium','large'
align string horizontal 'horizontal', 'vertical'
data Array[{text, value, icon}] 옵션 목록
disabled boolean false 버튼 비활성화 여부
multiple boolean false 다중선택 가능 여부
onChange function(value, text) 옵션 변경 시 수행될 이벤트

메소드

name return description
change(value) void 버튼 선택값을 변경한다.
getValue() string 선택된 값을 반환한다.
disable() void Disabled 처리한다.
enable() void Enabled 처리한다.

Slider

/scss/controls/slider.scss
v.0.1.0

기본 사용

  • 사용 태그 : input[range]
  <input type="range" class="gn-slider" value="2" min="0" max="100" step="1">

크기

  <input type="range" class="gn-slider is-small" value="20" min="0" max="100" step="1">
  <input type="range" class="gn-slider is-normal" value="40" min="0" max="100" step="1">
  <input type="range" class="gn-slider is-medium" value="60" min="0" max="100" step="1">
  <input type="range" class="gn-slider is-large" value="80" min="0" max="100" step="1">

스타일

  <input type="range" class="gn-slider is-round" value="20" min="0" max="100" step="1">

색상

  <input type="range" class="gn-slider is-success" value="20" min="0" max="100" step="1">
  <input type="range" class="gn-slider is-warning" value="40" min="0" max="100" step="1">
  <input type="range" class="gn-slider is-danger" value="60" min="0" max="100" step="1">
  <input type="range" class="gn-slider is-info" value="80" min="0" max="100" step="1">

상태

  <input type="range" class="gn-slider" disabled value="20" min="0" max="100" step="1">
  <input type="range" class="gn-slider is-invalid" value="20" min="0" max="100" step="1">

SortableList

/scss/controls/sortablelist.scss
v.0.1.0 javascript

기본 사용

<div class="gn-sortablelist">
  <div class="sortablelist-controls gn-control is-small has-arrange is-vertical is-center">
    <button type="button" class="gn-button is-outline">
      <span class="gn-icon">
        <i class="fas fa-angle-double-up"></i>
      </span>
    </button>
    <button type="button" class="gn-button is-outline">
      <span class="gn-icon">
        <i class="fas fa-angle-up"></i>
      </span>
    </button>
    <button type="button" class="gn-button is-outline">
      <span class="gn-icon">
        <i class="fas fa-angle-down"></i>
      </span>
    </button>
    <button type="button" class="gn-button is-outline">
      <span class="gn-icon">
        <i class="fas fa-angle-double-down"></i>
      </span>
    </button>
  </div>
  <div class="gn-dropdown is-opened sortablelist-items">
    <div class="dropdown-items">
      <ul class="sortablelist-rows">
        <li class="dropdown-item">항목 1</li>
        <li class="dropdown-item">항목 2</li>
        <li class="dropdown-item">항목 3</li>
        <li class="dropdown-item">항목 4</li>
      </ul>
    </div>
  </div>
</div>

버튼 우측 배치

<div class="gn-sortablelist">
  <div class="gn-dropdown is-opened sortablelist-items">
    <div class="dropdown-items">
      <ul class="sortablelist-rows">
        <li class="dropdown-item">항목 1</li>
        <li class="dropdown-item">항목 2</li>
        <li class="dropdown-item">항목 3</li>
      </ul>
    </div>
  </div>
  <div class="sortablelist-controls gn-control is-small has-arrange is-vertical is-center is-right">
    <button type="button" class="gn-button is-outline">
      <span class="gn-icon">
        <i class="fas fa-angle-double-up"></i>
      </span>
    </button>
    <button type="button" class="gn-button is-outline">
      <span class="gn-icon">
        <i class="fas fa-angle-up"></i>
      </span>
    </button>
    <button type="button" class="gn-button is-outline">
      <span class="gn-icon">
        <i class="fas fa-angle-down"></i>
      </span>
    </button>
    <button type="button" class="gn-button is-outline">
      <span class="gn-icon">
        <i class="fas fa-angle-double-down"></i>
      </span>
    </button>
  </div>
</div>

생성 옵션

  <div class="new-sortablelist"></div>
  <div class="new-sortablelist-drag"></div>
  <div class="new-sortablelist-cols"></div>
  // 단일 컬럼
  Gn.create('sortablelist', {
    target: '.new-sortablelist',
    data: [
      { value: '1', text: '항목 1' },
      { value: '2', text: '항목 2' },
      { value: '3', text: '항목 3' },
      { value: '4', text: '항목 4' },
      { value: '5', text: '항목 5' },
      { value: '6', text: '항목 6' },
      { value: '7', text: '항목 7' },
      { value: '8', text: '항목 8' },
      { value: '9', text: '항목 9' },
      { value: '10', text: '항목 10' }
    ]
  });
  // 드래그 앤 드롭
  Gn.create('sortablelist', {
    target: '.new-sortablelist-drag',
      data: [
      { value: 'a', text: '항목 A' },
      { value: 'b', text: '항목 B' },
      { value: 'c', text: '항목 C' },
      { value: 'd', text: '항목 D' },
      { value: 'e', text: '항목 E' },
      { value: 'f', text: '항목 F' },
      { value: 'g', text: '항목 G' },
      { value: 'h', text: '항목 H' },
      { value: 'i', text: '항목 I' },
      { value: 'j', text: '항목 J' }
    ],
    draggable: true
  });
  // 다중 컬럼
  Gn.create('sortablelist', {
    target: '.new-sortablelist-cols',
    buttonPosition: 'right',
    data: [
      { value: 'x1', cols: ['항목1', '카테고리A', '1000'] },
      { value: 'x2', cols: ['항목2', '카테고리B', '2000'] },
      { value: 'x3', cols: ['항목3', '카테고리C', '3000'] },
      { value: 'x4', cols: ['항목4', '카테고리D', '4000'] },
      { value: 'x5', cols: ['항목5', '카테고리E', '5000'] },
      { value: 'x6', cols: ['항목6', '카테고리F', '6000'] },
      { value: 'x7', cols: ['항목7', '카테고리G', '7000'] },
      { value: 'x8', cols: ['항목8', '카테고리H', '8000'] },
      { value: 'x9', cols: ['항목9', '카테고리I', '9000'] },
      { value: 'x10', cols: ['항목10', '카테고리J', '10000'] }
    ]    
  });

데이터 모델 (SortableListItem)

필드 type 필수 description
value string Y 고유 값 (빈 문자열 불가)
text string N 단일 컬럼 표시 텍스트
cols string[] N 다중 컬럼 표시 값 배열

옵션

name type default description
target string sortablelist를 표시할 대상의 선택자(selector)
data SortableListItem[] sortablelist에 표시할 데이터 배열
buttonPosition left | right left 순서 변경 버튼 위치
draggable boolean false 드래그 앤 드롭 순서 변경 활성화 여부
textSets noData string No records available. 데이터가 없을 경우 출력 메시지
disabled boolean false 컴포넌트 비활성화 여부
width number, string 100% 컴포넌트 너비
height number, string 150 리스트 높이 (미지정 시 150)
onChange function(data) 데이터 변경 시 발생 이벤트

메소드

name return description
getData() SortableListItem[] 현재 데이터 배열을 반환한다.
setData(data: SortableListItem[]}) void 데이터 배열을 설정하고 다시 렌더링한다.
disable() void 컴포넌트를 비활성화한다.
enable() void 컴포넌트를 활성화한다.

Switch

/scss/controls/switch.scss
v.0.1.0 javascript

기본 사용

  • 사용 태그 : label > input[checkbox] + .switch-toggle
  <label class="gn-switch">
    <input type="checkbox" /><span class="switch-toggle">Toggle</span>
  </label>

크기

  <label class="gn-switch is-small">
    <input type="checkbox" /><span class="switch-toggle">Toggle</span>
    Small
  </label>
  <label class="gn-switch is-normal">
    <input type="checkbox" /><span class="switch-toggle">Toggle</span>
    Normal
  </label>
  <label class="gn-switch is-medium">
    <input type="checkbox" /><span class="switch-toggle">Toggle</span>
    Medium
  </label>
  <label class="gn-switch is-large">
    <input type="checkbox" /><span class="switch-toggle">Toggle</span>
    Large
  </label>

색상

  <label class="gn-switch is-success">
    <input type="checkbox" checked /><span class="switch-toggle">Toggle</span>
    Success
  </label>
  <label class="gn-switch is-warning">
    <input type="checkbox" checked /><span class="switch-toggle">Toggle</span>
    Warning
  </label>
  <label class="gn-switch is-danger">
    <input type="checkbox" checked /><span class="switch-toggle">Toggle</span>
    Danger
  </label>
  <label class="gn-switch is-info">
    <input type="checkbox" checked /><span class="switch-toggle">Toggle</span>
    Info
  </label>

상태

  <label class="gn-switch">
    <input type="checkbox" disabled /><span class="switch-toggle">Toggle</span>
  </label>
  <label class="gn-switch">
    <input type="checkbox" checked disabled /><span class="switch-toggle">Toggle</span>
  </label>
  <label class="gn-switch is-invalid">
    <input type="checkbox" /><span class="switch-toggle">Invalid</span>
  </label>

생성 옵션

<input type="checkbox" class="new-switch" />
  Gn.create('switch', {
    target:  '.new-switch',
    size: 'large',
    color: 'info',
    checked: true,
    onToggle: function (e) { console.log('toggle 이벤트'); }
  });
name type default description
target string 스위치를 생성할 대상의 선택자(selector)
textSets toggleText string 토글에 표기할 문구
checked boolean false 스위치 초기 체크상태
disabled boolean false 스위치 비활성화 여부
color string 'success','warning','danger','info','cancel','dark','link','trans','secondary','mono'
size string 'small','normal','medium','large'
onToggle function 토글 시 수행될 이벤트

메소드

name return description
toggle() void 스위치 상태를 토글한다.
getValue() boolean 스위치 상태를 반환한다.
disable() void Disabled 처리한다.
enable() void Enabled 처리한다.

SyntaxInput

/scss/controls/syntaxinput.scss
v.0.1.0 javascript

생성 옵션

  <p><input type="text" class="syntaxInput" /></p>
  <p><input type="text" class="syntaxInput2" /></p>
  <p><input type="text" class="syntaxInput3" /></p>
  Gn.create('syntaxinput', {
    target: '.syntaxInput'
  });
  Gn.create('syntaxinput', {
    target: '.syntaxInput2',
    multiple: true,
    usetab: true
  });
  Gn.create('syntaxinput', {
    target: '.syntaxInput3',
    type: 'custom',
    patterns: {
      constant: {
        pattern: /\w+:?(?=\/)/gm
      },
      keyword: {
        pattern: /[^/]*$/gm
      }
    }
  });
name type default description
target string colorpicker 객체 선택자(selector)
value string
multiple boolean false true 인 경우, input 대신 textarea 로 입력받는다.
usetab boolean false 입력창 내 TAB 키 사용 여부. multiple: true 설정 시 사용가능
readonly boolean false 입력 가능여부
type string html syntax 타입 (plain, plaintext, text, txt, markup, html, mathml, svg, xml, ssml, atom, rss, css, clike, javascript, js)
사용자 정의 시 'custom'
onChange function input 값 변경 시 호출되는 이벤트
patterns object type 을 'custom'으로 지정 후, 패턴 형식의 Object를 설정한다.
{
  [token keyword: string] : {
    pattern: 스타일을 적용 할 패턴 정규식
  }
}

token keyword

token keyword style
comment comment
prolog prolog
doctype doctype
cdata cdata
punctuation punctuation
namespace namespace
property property
tag tag
boolean boolean
number number
constant constant
symbol symbol
deleted deleted
selector selector
char char
builtin builtin
inserted inserted
operator operator
url url
string string
atrule atrule
attr attr
keyword keyword
function function
class class
regex regex
variable variable
important important
bold bold
italic italic
entity entity

메소드

name return description
setValue(value: string) void 값을 변경한다.
getValue() string 값을 반환한다.
disable void Readonly 상태로 전환한다.
enable void Readonly 상태를 해제한다.

Textarea

/scss/controls/textarea.scss
v.0.1.0

기본 사용

  • 사용 태그 : textarea
  <textarea class="gn-textarea">Default Textarea</textarea>

색상

  <textarea class="gn-textarea is-info">Info color Textarea</textarea>

스타일

  <textarea class="gn-textarea is-borderless">Borderless Textarea</textarea>

상태

  <p><textarea class="gn-textarea" readonly>Readonly</textarea></p>
  <p><textarea class="gn-textarea" disabled>Disabled</textarea></p>
  <p><textarea class="gn-textarea is-focus">Focus</textarea></p>
  <p><textarea class="gn-textarea is-hover">Hover</textarea></p>
  <p><textarea class="gn-textarea is-invalid">INVALID</textarea></p>
  <p><div class="gn-control is-loading is-full">
    <textarea class="gn-textarea is-hover">Loading...</textarea>
  </div></p>

Time

/scss/controls/time.scss
v.0.1.0 javascript

생성 옵션

<div class="new-time"></div>
<div class="new-time2"></div>
  Gn.create('time', {
    target: '.new-time',
    onChange: function(time){
      console.log(time)
    },
    value: '22:33:44'
  });
  Gn.create('time', {
    target: '.new-time2',
    timeFormat: 'hh:mm',
    onChange: function(time){
      console.log(time)
    },
    value: '6:2'
  });
name type default description
target string time 생성 타겟
value string now 초기 시간 값
timeFormat string hh:mm:ss 시간 형식 (hh:mm:ss, hh:mm)
hasControls boolean true 시간 셋팅 버튼(00:00, 23:59) 출력여부
onChange function(value) 시간 변경 시 발생 이벤트
disabled boolean false Disable 여부
readonly boolean false 읽기전용 여부

메소드

name return description
setTime(time: string) void 시간 값을 변경한다.
getTime() string 설정된 시간 값을 반환한다.
disable() void Disabled 처리한다.
enable() void Enabled 처리한다.

UTILITY

/scss/default/help.scss
v.0.1.0

Box 정렬

  • .is-clearfix

  • .is-float-left

  • .is-float-right

  • .is-clipped

  • .is-vertical-middle

  • .is-align-items-center

  • .is-align-self-center

<div class="gn-box is-clearfix">
  <div class="is-float-left">
    <div class="gn-control has-arrange">
      <button type="button" class="gn-button">
        <span class="gn-icon">
          <i class="fas fa-subway"></i>
        </span>
        Subway
      </button>
      <button type="button" class="gn-button">
        <span class="gn-icon">
          <i class="fas fa-laptop-code"></i>
        </span>
        Code
      </button>
      <button type="button" class="gn-button">
        <span class="gn-icon">
          <i class="fas fa-images"></i>
        </span>
        Images
      </button>
    </div>
  </div>
  <div class="is-float-right">
    <div class="gn-control has-icon-right">
      <span class="gn-icon is-right">
        <i class="fas fa-search"></i>
      </span>
      <input type="text" class="gn-input" placeholder="input text">
    </div>
  </div>
</div>

Text 정렬

  • .has-text-{alignment}

Left

Aliquip nisi sint cupidatat excepteur deserunt mollit deserunt ea reprehenderit cupidatat sunt. Irure excepteur irure consequat nisi proident qui dolore ex sunt. Fugiat excepteur dolor occaecat adipisicing aliqua reprehenderit excepteur nostrud anim aute in ipsum et. Culpa sint officia elit veniam laborum enim excepteur sint ullamco aliquip commodo voluptate. Magna est qui sunt adipisicing irure anim ipsum exercitation ipsum sint.

Center

Irure excepteur culpa laborum nulla ullamco velit consequat ut voluptate nisi Lorem. Pariatur sunt ipsum non sunt est fugiat do veniam duis sunt. Magna reprehenderit commodo eiusmod incididunt sunt minim eu nostrud. Ut dolor nostrud ullamco non commodo sit adipisicing dolore proident fugiat eu veniam. Nostrud consectetur do amet enim proident in nisi ullamco aliquip excepteur do. Officia ullamco voluptate tempor veniam proident ea duis laborum id incididunt.

Right

Veniam pariatur nulla eu eiusmod. Veniam anim dolor labore tempor proident ad cillum. Sint laboris officia aliqua proident aute. Consequat cupidatat officia ad veniam pariatur do. Ullamco duis pariatur aliqua sit cupidatat laborum laboris eu magna. Laboris non duis occaecat esse laboris ex do. Nisi cupidatat veniam voluptate fugiat elit labore aute et excepteur.

Justify

Commodo reprehenderit cillum Lorem culpa do consectetur ullamco irure eu. Magna officia sit nisi in deserunt non duis eu duis enim quis. Eu proident pariatur aliquip anim est Lorem quis. Aliquip magna excepteur sint sint commodo nisi magna. Velit ea sint esse aliquip magna amet consequat eiusmod ex ad.
  <div class="gn-box has-text-left">
    <h4 class="gn-title is-size4">Left</h4>
    Aliquip nisi sint cupidatat excepteur deserunt mollit deserunt ea reprehenderit cupidatat sunt. Irure excepteur irure consequat nisi proident qui dolore ex sunt. Fugiat excepteur dolor occaecat adipisicing aliqua reprehenderit excepteur nostrud anim aute in ipsum et. Culpa sint officia elit veniam laborum enim excepteur sint ullamco aliquip commodo voluptate. Magna est qui sunt adipisicing irure anim ipsum exercitation ipsum sint.
  </div>
  <div class="gn-box has-text-center">
    <h4 class="gn-title is-size4">Center</h4>
    Irure excepteur culpa laborum nulla ullamco velit consequat ut voluptate nisi Lorem. Pariatur sunt ipsum non sunt est fugiat do veniam duis sunt. Magna reprehenderit commodo eiusmod incididunt sunt minim eu nostrud. Ut dolor nostrud ullamco non commodo sit adipisicing dolore proident fugiat eu veniam. Nostrud consectetur do amet enim proident in nisi ullamco aliquip excepteur do. Officia ullamco voluptate tempor veniam proident ea duis laborum id incididunt.
  </div>
  <div class="gn-box has-text-right">
    <h4 class="gn-title is-size4">Right</h4>
    Veniam pariatur nulla eu eiusmod. Veniam anim dolor labore tempor proident ad cillum. Sint laboris officia aliqua proident aute. Consequat cupidatat officia ad veniam pariatur do. Ullamco duis pariatur aliqua sit cupidatat laborum laboris eu magna. Laboris non duis occaecat esse laboris ex do. Nisi cupidatat veniam voluptate fugiat elit labore aute et excepteur.
  </div>
  <div class="gn-box has-text-justify">
    <h4 class="gn-title is-size4">Justify</h4>
    Commodo reprehenderit cillum Lorem culpa do consectetur ullamco irure eu. Magna officia sit nisi in deserunt non duis eu duis enim quis. Eu proident pariatur aliquip anim est Lorem quis. Aliquip magna excepteur sint sint commodo nisi magna. Velit ea sint esse aliquip magna amet consequat eiusmod ex ad.
  </div>

Text 변환

  • is-capitalize, is-lowercase, is-uppercase, is-italic, is-underline, is-strike, is-text-link
  • 한글 description 사용 시 size6 이하 사용하지 않는다.

capitalize

Velit Lorem nisi aute enim exercitation.

lowercase

Exercitation duis nulla id fugiat et laboris laborum aute.

uppercase

Incididunt nulla anim ut ipsum.

italic

Ad non deserunt veniam consectetur enim.

underline

Ad non deserunt veniam consectetur enim.

strike

Ad non deserunt veniam consectetur enim.

Text Sizes

size1 : Fugiat cillum reprehenderit ullamco esse non cillum.

size2 : Minim eu minim ea anim.

size3 : Sit adipisicing eiusmod consectetur sit qui cupidatat.

size4 : Enim qui do ullamco enim et non consectetur labore consectetur ipsum quis magna proident.

size5 : Occaecat ex voluptate ea labore labore cillum veniam officia excepteur pariatur Lorem consectetur.

size6 : In quis sunt esse esse aute ullamco laborum.

size6 : 사용자 비밀번호 저장방식을 선택 합니다. RADIUS서버를 통한 MSCHAPv2 인증을 지원하기 위해서는 NT-Hash를 선택해야 합니다.

size7 : Nostrud consectetur excepteur ut duis qui pariatur irure eiusmod non Lorem aliquip id eiusmod.

  <div class="gn-box is-capitalize">
    <h4 class="gn-title is-size4">capitalize</h4>
    Velit Lorem nisi aute enim exercitation.
  </div>
  <div class="gn-box is-lowercase">
    <h4 class="gn-title is-size4">lowercase</h4>
    Exercitation duis nulla id fugiat et laboris laborum aute.
  </div>
  <div class="gn-box is-uppercase">
    <h4 class="gn-title is-size4">uppercase</h4>
    Incididunt nulla anim ut ipsum.
  </div>
  <div class="gn-box is-italic">
    <h4 class="gn-title is-size4">italic</h4>
    Ad non deserunt veniam consectetur enim.
  </div>
  <div class="gn-box is-underline">
    <h4 class="gn-title is-size4">underline</h4>
    Ad non deserunt veniam consectetur enim.
  </div>
  <div class="gn-box is-strike">
    <h4 class="gn-title is-size4">strike</h4>
    Ad non deserunt veniam consectetur enim.
  </div>
  <div class="gn-box is-text-link">
    <h4 class="gn-title is-size4">text link</h4>
    Link style text (hover: underline + pointer)
  </div>
  <div class="gn-box">
    <h4 class="gn-title is-size4">Text Sizes</h4>
    <p class="has-text-size1">size1 : Fugiat cillum reprehenderit ullamco esse non cillum.</p>
    <p class="has-text-size2">size2 : Minim eu minim ea anim.</p>
    <p class="has-text-size3">size3 : Sit adipisicing eiusmod consectetur sit qui cupidatat.</p>
    <p class="has-text-size4">size4 : Enim qui do ullamco enim et non consectetur labore consectetur ipsum quis magna proident.</p>
    <p class="has-text-size5">size5 : Occaecat ex voluptate ea labore labore cillum veniam officia excepteur pariatur Lorem consectetur.</p>
    <p class="has-text-size6">size6 : In quis sunt esse esse aute ullamco laborum.</p>
    <!-- 한글 description 사용 시 size6 이하 사용하지 않는다. -->
    <p class="has-text-size6">size6 : 사용자 비밀번호 저장방식을 선택 합니다. RADIUS서버를 통한 MSCHAPv2 인증을 지원하기 위해서는 NT-Hash를 선택해야 합니다.</p>
    <p class="has-text-size7">size7 : Nostrud consectetur excepteur ut duis qui pariatur irure eiusmod non Lorem aliquip id eiusmod.</p>
  </div>

Text 두께

Et irure non laborum dolor esse reprehenderit occaecat.

Lorem quis quis proident eiusmod nostrud minim velit minim.

Duis consectetur veniam deserunt amet commodo labore aute sunt amet qui minim nulla sunt labore.

Irure esse nulla qui nulla sint laboris qui labore.

Amet ullamco mollit mollit qui velit quis dolore minim fugiat tempor ea labore.

<p class="is-weight-light">Et irure non laborum dolor esse reprehenderit occaecat.</p>
<p class="is-weight-normal">Lorem quis quis proident eiusmod nostrud minim velit minim.</p>
<p class="is-weight-medium">Duis consectetur veniam deserunt amet commodo labore aute sunt amet qui minim nulla sunt labore.</p>
<p class="is-weight-semibold">Irure esse nulla qui nulla sint laboris qui labore.</p>
<p class="is-weight-bold">Amet ullamco mollit mollit qui velit quis dolore minim fugiat tempor ea labore.</p>

Text 색상

has-text-primary has-color-primary has-text-success has-color-success has-text-warning has-color-warning has-text-danger has-color-danger has-text-info has-color-info has-text-dark has-color-dark has-text-light has-color-light
  <span class="has-text-primary">has-text-primary</span>
  <span class="has-color-primary">has-color-primary</span>
  <span class="has-text-success">has-text-success</span>
  <span class="has-color-success">has-color-success</span>
  <span class="has-text-warning">has-text-warning</span>
  <span class="has-color-warning">has-color-warning</span>
  <span class="has-text-danger">has-text-danger</span>
  <span class="has-color-danger">has-color-danger</span>
  <span class="has-text-info">has-text-info</span>
  <span class="has-color-info">has-color-info</span>
  <span class="has-text-dark">has-text-dark</span>
  <span class="has-color-dark">has-color-dark</span>
  <span class="has-text-light">has-text-light</span>
  <span class="has-color-light">has-color-light</span>

Border 색상

has-border-primary
has-border-success
has-border-warning
has-border-danger
has-border-info
has-border-dark
has-border-light
  <div class="gn-box has-border-primary">has-border-primary</div>
  <div class="gn-box has-border-success">has-border-success</div>
  <div class="gn-box has-border-warning">has-border-warning</div>
  <div class="gn-box has-border-danger">has-border-danger</div>
  <div class="gn-box has-border-info">has-border-info</div>
  <div class="gn-box has-border-dark">has-border-dark</div>
  <div class="gn-box has-border-light">has-border-light</div>

Display

  • is-hidden, is-invisible, is-block, is-inline-block, is-inline, is-flex( + is-vertical ), is-space-between

LESS

  • is-marginless, is-paddingless, is-radiusless, is-shadowless

HAS

  • has-margin-top, has-margin-left, has-margin-bottom, has-margin-right

Position 정렬

  • is-static, is-relative, is-absolute

Mouse Poninter

  • is-help, is-wait, is-not-allowed, is-pointer
help wait not-allowed pointer move text
<span class="gn-tag is-help">help</span>
<span class="gn-tag is-wait">wait</span>
<span class="gn-tag is-not-allowed">not-allowed</span>
<span class="gn-tag is-pointer">pointer</span>
<span class="gn-tag is-move">move</span>
<span class="gn-tag is-text">text</span>

Scroll

  • has-min-scroll

Content goes here...



More content...

More content...

More content...

More content...

More content...




Even more content...

Even more content...

Even more content...

Even more content...

Even more content...

<div class="has-min-scroll" style="height: 200px; overflow: scroll;">
  <p>Content goes here...</p>
  <br />
  <br />
  <p>More content...</p>
  <p>More content...</p>
  <p>More content...</p>
  <p>More content...</p>
  <p>More content...</p>
  <br />
  <br />
  <br />
  <p>Even more content...</p>
  <p>Even more content...</p>
  <p>Even more content...</p>
  <p>Even more content...</p>
  <p>Even more content...</p>
</div>

Box

/scss/elements/box.scss
v.0.1.0

기본 사용

  • border, shadow를 포함하는 컨텐츠 박스
  • 사용 태그: div

Excepteur nulla aliquip est pariatur exercitation nulla irure sit do fugiat dolore aliqua proident nostrud. Amet cillum tempor veniam qui officia. Cupidatat qui labore consectetur magna qui adipisicing qui enim aliqua adipisicing in incididunt proident labore.

Excepteur nulla aliquip est pariatur exercitation nulla irure sit do fugiat dolore aliqua proident nostrud. Amet cillum tempor veniam qui officia. Cupidatat qui labore consectetur magna qui adipisicing qui enim aliqua adipisicing in incididunt proident labore.

Excepteur nulla aliquip est pariatur exercitation nulla irure sit do fugiat dolore aliqua proident nostrud. Amet cillum tempor veniam qui officia. Cupidatat qui labore consectetur magna qui adipisicing qui enim aliqua adipisicing in incididunt proident labore.

<div class="gn-box">
  <p>Excepteur nulla aliquip est pariatur exercitation nulla irure sit do fugiat dolore aliqua proident nostrud. Amet cillum tempor veniam qui officia. Cupidatat qui labore consectetur magna qui adipisicing qui enim aliqua adipisicing in incididunt proident labore.</p>
</div>

<div class="gn-box is-borderless">
  <p>Excepteur nulla aliquip est pariatur exercitation nulla irure sit do fugiat dolore aliqua proident nostrud. Amet cillum tempor veniam qui officia. Cupidatat qui labore consectetur magna qui adipisicing qui enim aliqua adipisicing in incididunt proident labore.</p>
</div>

<div class="gn-box-no-line">
  <p>Excepteur nulla aliquip est pariatur exercitation nulla irure sit do fugiat dolore aliqua proident nostrud. Amet cillum tempor veniam qui officia. Cupidatat qui labore consectetur magna qui adipisicing qui enim aliqua adipisicing in incididunt proident labore.</p>
</div>

Icon

/scss/elements/icon.scss
v.0.1.0

기본 사용

  • 아이콘을 사용하기 위한 객체
  • 사용 태그 : span
<span class="gn-icon">
  <i class="fas fa-home"></i>
</span>

크기

  • small, medium, large
<span class="gn-icon is-small">
  <i class="fas fa-home"></i>
</span>
<span class="gn-icon is-medium">
  <i class="fas fa-home"></i>
</span>
<span class="gn-icon is-large">
  <i class="fas fa-home"></i>
</span>

스타일

  • circle, rect
<span class="gn-icon is-circle is-large">
  <i class="fas fa-home"></i>
</span>
<span class="gn-icon is-circle is-danger">
  <i class="fas fa-copy"></i>
</span>
<span class="gn-icon is-circle is-warning">
  <i class="fas fa-home"></i>
</span>
<span class="gn-icon is-rect">
  <i class="fas fa-home"></i>
</span>
<span class="gn-icon is-rect is-danger">
  <i class="fas fa-home"></i>
</span>
<span class="gn-icon is-rect is-warning">
  <i class="fas fa-box-open"></i>
</span>

색상

  • success, warning, danger, info
<span class="gn-icon is-success">
  <i class="fas fa-check-circle"></i>
</span>
<span class="gn-icon is-warning">
  <i class="fas fa-exclamation-triangle"></i>
</span>
<span class="gn-icon is-danger">
  <i class="fas fa-smoking-ban"></i>
</span>
<span class="gn-icon is-info">
  <i class="fas fa-info-circle"></i>
</span>
<span class="gn-icon is-disabled">
  <i class="fas fa-info-circle"></i>
</span>

role='button'인 경우 마우스포인터, hover 설정

<span class="gn-icon is-mono" role="button">
  <i class="fas fa-trash"></i>
</span>
<span class="gn-icon is-warning" role="button">
  <i class="fas fa-plus"></i>
</span>
<span class="gn-icon is-info" role="button">
  <i class="fas fa-thumbtack"></i>
</span>
<span class="gn-icon is-info" role="button">
  <i class="far fa-copy"></i>
</span>

<span class="gn-icon is-mono is-rect is-outline" role="button">
  <i class="fas fa-trash"></i>
</span>
<span class="gn-icon is-warning is-rect is-outline" role="button">
  <i class="fas fa-plus"></i>
</span>
<span class="gn-icon is-info is-rect is-outline" role="button">
  <i class="fas fa-thumbtack"></i>
</span>
<span class="gn-icon is-link is-rect is-outline" role="button">
  <i class="far fa-copy"></i>
</span>

국기아이콘

<span class="gn-flag ac">
</span>
<span class="gn-flag ko">
</span>
<span class="gn-flag us">
</span>
<span class="gn-flag jp">
</span>
<span class="gn-flag cn">
</span>

파일아이콘

TXT DOC GIF JPG TXT DOC GIF JPG
<span class="gn-icon-ext"><span>TXT</span></span>
<span class="gn-icon-ext"><span>DOC</span></span>
<span class="gn-icon-ext"><span>GIF</span></span>
<span class="gn-icon-ext"><span>JPG</span></span>
<span class="gn-icon-ext is-large"><span>TXT</span></span>
<span class="gn-icon-ext is-large"><span>DOC</span></span>
<span class="gn-icon-ext is-large"><span>GIF</span></span>
<span class="gn-icon-ext is-large"><span>JPG</span></span>

Image

/scss/elements/image.scss
v.0.1.0

기본 사용

  • 이미지가 늦게 표시되더라도 레이아웃에 영향을 주지 않게하기 위해서 사전 사이즈 정의가 필요
  • 필요한 사이즈는 $imgSizes 에 추가하여 사용
polar bear
polar bear
polar bear
polar bear
polar bear
polar bear
<div class="gn-image is-12">
  <img src="../../../assets/image.png" alt="polar bear">
</div>
<div class="gn-image is-24">
  <img src="../../../assets/image.png" alt="polar bear">
</div>
<div class="gn-image is-36">
  <img src="../../../assets/image.png" alt="polar bear">
</div>
<div class="gn-image is-48">
  <img src="../../../assets/image.png" alt="polar bear">
</div>
<div class="gn-image is-60">
  <img src="../../../assets/image.png" alt="polar bear">
</div>
<div class="gn-image is-96">
  <img src="../../../assets/image.png" alt="polar bear">
</div>

Round

polar bear
<div class="gn-image is-60 is-round">
  <img src="../../../assets/image.png" alt="polar bear">
</div>

비율

  • 사용가능: 4x2, 3x4, 4x3, 6x4, 4x6
polar bear
<div class="gn-image is-4x2">
  <img src="../../../assets/image.png" alt="polar bear">
</div>

List

/scss/elements/list.scss
v.0.1.0

기본 사용

  • 리스트 표현
  • 사용 태그 : ul, ol
  • Ad nisi excepteur nostrud in.
  • Commodo duis anim excepteur qui.
  • Centered Text
<ul class="gn-list">
  <li>Ad nisi excepteur nostrud in.</li>
  <li>Commodo duis anim excepteur qui.</li>
  <li class="is-center">Centered Text</li>
</ul>

크기

  • Ad nisi excepteur nostrud in.
  • Commodo duis anim excepteur qui.
  • Centered Text
  • Ad nisi excepteur nostrud in.
  • Commodo duis anim excepteur qui.
  • Centered Text
  • Ad nisi excepteur nostrud in.
  • Commodo duis anim excepteur qui.
  • Centered Text
<ul class="gn-list is-small">
  <li>Ad nisi excepteur nostrud in.</li>
  <li>Commodo duis anim excepteur qui.</li>
  <li>Centered Text</li>
</ul>
<ul class="gn-list is-medium">
  <li>Ad nisi excepteur nostrud in.</li>
  <li>Commodo duis anim excepteur qui.</li>
  <li>Centered Text</li>
</ul>
<ul class="gn-list is-large">
  <li>Ad nisi excepteur nostrud in.</li>
  <li>Commodo duis anim excepteur qui.</li>
  <li>Centered Text</li>
</ul>

테두리 스타일

  • is-border
  • is-border
  • is-border
  • is-stripe
  • is-stripe
  • is-stripe
  • is-borderless
  • is-borderless
  • is-borderless
  • is-border is-stripe
  • is-border is-stripe
  • is-border is-stripe
  • is-borderless is-stripe
  • is-borderless is-stripe
  • is-borderless is-stripe
<ul class="gn-list is-border is-inline-block">
  <li>is-border</li>
  <li>is-border</li>
  <li>is-border</li>
</ul>
<ul class="gn-list is-stripe is-inline-block">
  <li>is-stripe</li>
  <li>is-stripe</li>
  <li>is-stripe</li>
</ul>
<ul class="gn-list is-borderless is-inline-block">
  <li>is-borderless</li>
  <li>is-borderless</li>
  <li>is-borderless</li>
</ul>
<ul class="gn-list is-border is-stripe is-inline-block">
  <li>is-border is-stripe</li>
  <li>is-border is-stripe</li>
  <li>is-border is-stripe</li>
</ul>
<ul class="gn-list is-borderless is-stripe is-inline-block">
  <li>is-borderless is-stripe</li>
  <li>is-borderless is-stripe</li>
  <li>is-borderless is-stripe</li>
</ul>

inline Display

  • 첫번째 리스트
  • display inline-block으로 표기
  • Voluptate pariatur magna proident nisi ex tempor enim mollit.
  • 두번째 리스트
  • display inline-block으로 표기
  • Voluptate pariatur magna proident nisi ex tempor enim mollit.
<ul class="gn-list is-inline-block" style="width: 49%">
  <li>첫번째 리스트</li>
  <li>display inline-block으로 표기</li>
  <li>Voluptate pariatur magna proident nisi ex tempor enim mollit.</li>
</ul>
<ul class="gn-list is-inline-block is-clickable" style="width: 49%">
  <li>두번째 리스트</li>
  <li>display inline-block으로 표기</li>
  <li>Voluptate pariatur magna proident nisi ex tempor enim mollit.</li>
</ul>

중첩 사용

  • Ad nisi excepteur nostrud in.
  • Commodo duis anim excepteur qui.
  • Nested item
    • Ad nisi excepteur nostrud in.
    • Commodo duis anim excepteur qui.
    • Voluptate pariatur magna proident nisi ex tempor enim mollit.
  • Commodo duis anim excepteur qui.
<ul class="gn-list">
  <li>Ad nisi excepteur nostrud in.</li>
  <li>Commodo duis anim excepteur qui.</li>
  <li>Nested item
    <ul class="gn-list">
      <li>Ad nisi excepteur nostrud in.</li>
      <li>Commodo duis anim excepteur qui.</li>
      <li>Voluptate pariatur magna proident nisi ex tempor enim mollit.</li>
    </ul>
  </li>
  <li>Commodo duis anim excepteur qui.</li>
</ul>

순서 표기

  1. Ad nisi excepteur nostrud in.
  2. Commodo duis anim excepteur qui.
  3. Voluptate pariatur magna proiAliquip ea exercitation culpa exercitation elit nostrud eiusmod exercitation.Officia incididunt nulla ad sint ea id irure.dent nisi ex tempor enim mollit.
<ol class="gn-list has-number">
  <li>Ad nisi excepteur nostrud in.</li>
  <li>Commodo duis anim excepteur qui.</li>
  <li>Voluptate pariatur magna proiAliquip ea exercitation culpa exercitation elit nostrud eiusmod exercitation.Officia incididunt nulla ad sint ea id irure.dent nisi ex tempor enim mollit.</li>
</ol>

정의 목록 사용

Genian NAC
BYOD 환경에서 유무선을 아우르는 내부 보안 관리 체계를 운영할 수 있는 '네트워크 접근제어(NAC : Network Access Control) 솔루션'
Genian Insights E
내부 네트워크와 단말에 대한 악성 행위를 파악하고 이상 징후를 빠르게 탐지할 수 있는 '단말 이상행위 탐지 및 대응 솔루션
Genian GPI
PC의 보안 취약점을 점검하고 사용자가 스스로 조치할 수 있도록 행동 변화를 유도해 보안 체질을 개선할 수 있는 'PC 보안 수준 진단 솔루션'
<dl class="gn-list is-border has-divid">
  <dt>Genian NAC</dt>
  <dd>BYOD 환경에서 유무선을 아우르는 내부 보안 관리 체계를 운영할 수 있는 '네트워크 접근제어(NAC : Network Access Control) 솔루션'</dd>
  <dt>Genian Insights E</dt>
  <dd>내부 네트워크와 단말에 대한 악성 행위를 파악하고 이상 징후를 빠르게 탐지할 수 있는 '단말 이상행위 탐지 및 대응 솔루션</dd>
  <dt>Genian GPI</dt>
  <dd>PC의 보안 취약점을 점검하고 사용자가 스스로 조치할 수 있도록 행동 변화를 유도해 보안 체질을 개선할 수 있는 'PC 보안 수준 진단 솔루션'</dd>
</dl>
제목
기생충
개봉일
2019년 5월 30일 (대한민국)
감독
봉준호
수상
아카데미 작품상, 황금종려상, 아카데미 감독상...
제목
기생충
개봉일
2019년 5월 30일 (대한민국)
감독
봉준호
수상
아카데미 작품상, 황금종려상, 아카데미 감독상...Sunt pariatur proident id ipsum magna qui nulla esse sunt fugiat deserunt.
<dl class="gn-list is-border is-stripe is-inline-block">
  <dt>제목</dt>    
  <dd>기생충</dd>
  <dt>개봉일</dt>
  <dd>2019년 5월 30일 (대한민국)</dd>
  <dt>감독</dt>
  <dd>봉준호</dd>
  <dt>수상</dt>
  <dd>아카데미 작품상, 황금종려상, 아카데미 감독상...</dd>
</dl>
<div style="display: inline-block; width: 50%">
  <dl class="gn-list is-arrange is-borderless">
    <dt>제목</dt>    
    <dd>기생충</dd>
  </dl>
  <dl class="gn-list is-arrange is-borderless">
    <dt>개봉일</dt>
    <dd>2019년 5월 30일 (대한민국)</dd>
  </dl>
  <dl class="gn-list is-arrange is-borderless">
    <dt>감독</dt>
    <dd>봉준호</dd>
  </dl>
  <dl class="gn-list is-arrange is-borderless">
    <dt>수상</dt>
    <dd>아카데미 작품상, 황금종려상, 아카데미 감독상...Sunt pariatur proident id ipsum magna qui nulla esse sunt fugiat deserunt.</dd>
  </dl>
</div>

Table

/scss/elements/table.scss
v.0.1.0

기본 사용

  • 데이터 테이블
thead thead thead thead
1 2 3 4
1 2 3 4
1 2 3 4
하나 둘 셋 넷
1 2 3 4
thead thead thead thead
1 2 3 4
1 2 3 4
<table class="gn-table is-full">
  <thead>
    <tr>
      <th>thead</th>
      <th>thead</th>
      <th>thead</th>
      <th>thead</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
  </tbody>
</table>


<table class="gn-table is-thead2 is-full">
  <thead>
    <tr>
      <th>하나</th>
      <th>둘</th>
      <th>셋</th>
      <th>넷</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
  </tbody>
</table>


<table class="gn-table is-thead3 is-full">
  <thead>
    <tr>
      <th>thead</th>
      <th>thead</th>
      <th>thead</th>
      <th>thead</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
    <tr>
      <td>1</td>
      <td>2</td>
      <td>3</td>
      <td>4</td>
    </tr>
  </tbody>
</table>

색상, 크기

  • primary 색상 및 상태별 색상
1 2 3 4
5 6 7 8
9 10 11 12
1 2 3 4
5 6 7 8
9 10 11 12

<table class="gn-table is-full">
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
  </tr>
  <tr class="is-primary-light">
    <td>5</td>
    <td>6</td>
    <td class="is-primary">7</td>
    <td>8</td>
  </tr>
  <tr class="is-primary-light">
    <td>9</td>
    <td>10</td>
    <td>11</td>
    <td>12</td>
  </tr>
</table>


<table class="gn-table is-full">
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
  </tr>
  <tr class="is-danger-light">
    <td>5</td>
    <td>6</td>
    <td class="is-danger">7</td>
    <td>8</td>
  </tr>
  <tr class="is-success-light">
    <td>9</td>
    <td>10</td>
    <td>11</td>
    <td>12</td>
  </tr>
</table>

스타일

  • 테두리, 스트라이프
1 2 3 4
5 6 7 8
9 10 11 12
<table class="gn-table is-full is-border is-stripe">
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
  </tr>
  <tr>
    <td>5</td>
    <td>6</td>
    <td>7</td>
    <td>8</td>
  </tr>
  <tr>
    <td>9</td>
    <td>10</td>
    <td>11</td>
    <td>12</td>
  </tr>
</table>

상태 (hover)

1 2 3 4
5 6 7 8
9 10 11 12
<table class="gn-table is-full">
  <tr>
    <td>1</td>
    <td>2</td>
    <td>3</td>
    <td>4</td>
  </tr>
  <tr>
    <td>5</td>
    <td>6</td>
    <td>7</td>
    <td>8</td>
  </tr>
  <tr class="is-hover">
    <td>9</td>
    <td>10</td>
    <td>11</td>
    <td>12</td>
  </tr>
</table>

Tag

/scss/elements/tag.scss
v.0.1.0

기본 사용

  • 태그 또는 사용자에게 알림이 필요한 경우(e.g 'new')사용 가능
  • 사용 태그: span, label, a
Tag Anchor
<span class="gn-tag">Tag</span>
<a class="gn-tag">Anchor</a>
<label class="gn-tag">Label</label>

크기

  • small, normal, medium, large
Small Normal Medium Large
<span class="gn-tag is-small">Small</span>
<span class="gn-tag is-normal">Normal</span>
<span class="gn-tag is-medium">Medium</span>
<span class="gn-tag is-large">Large</span>

색상

  • success, warning, danger, info
Success Light Success Warning Light Warning Danger Light Danger Info Light Info
<span class="gn-tag is-success">Success</span>
<span class="gn-tag is-success-light">Light Success</span>
<span class="gn-tag is-warning">Warning</span>
<span class="gn-tag is-warning-light">Light Warning</span>
<span class="gn-tag is-danger">Danger</span>
<span class="gn-tag is-danger-light">Light Danger</span>
<span class="gn-tag is-info">Info</span>
<span class="gn-tag is-info-light">Light Info</span>

스타일

  • round, outline
Round Outline
<span class="gn-tag is-success is-round">Round</span>
<span class="gn-tag is-danger is-outline">Outline</span>

상태

  • disabled
Disabled
<span class="gn-tag is-success is-disabled">Disabled</span>

확장

  • with icon
보안 네트워크 랜썸웨어
<span class="gn-tag">
  <span class="gn-icon is-small">
    <i class="fas fa-hashtag"></i>
  </span>
  보안
</span>
<span class="gn-tag">
  <span class="gn-icon is-small">
    <i class="fas fa-hashtag"></i>
  </span>
  네트워크
</span>
<span class="gn-tag is-danger">
  랜썸웨어
  <span class="gn-icon is-small">
    <i class="fas fa-times"></i>
  </span>
</span>

Title

/scss/elements/title.scss
v.0.1.0

기본 사용

  • border, shadow를 포함하는 컨텐츠 박스
  • 사용 태그: h1 ~ h6, p

Genian NAC

BYOD 환경에서 유무선을 아우르는 내부 보안 관리 체계를 운영할 수 있는 '네트워크 접근제어(NAC : Network Access Control) 솔루션'

<h1 class="gn-title">Genian NAC</h1>
<h2 class="gn-sub-title">BYOD 환경에서 유무선을 아우르는 내부 보안 관리 체계를 운영할 수 있는 '네트워크 접근제어(NAC : Network Access Control) 솔루션'</h2>

크기

Genian Insights E

Genian Insights E

Genian Insights E

Genian Insights E

Genian Insights E

내부 네트워크와 단말에 대한 악성 행위를 파악하고 이상 징후를 빠르게 탐지할 수 있는 '단말 이상행위 탐지 및 대응 솔루션'

내부 네트워크와 단말에 대한 악성 행위를 파악하고 이상 징후를 빠르게 탐지할 수 있는 '단말 이상행위 탐지 및 대응 솔루션'

내부 네트워크와 단말에 대한 악성 행위를 파악하고 이상 징후를 빠르게 탐지할 수 있는 '단말 이상행위 탐지 및 대응 솔루션'

<h1 class="gn-title is-size1">Genian Insights E</h1>
<h2 class="gn-title is-size2">Genian Insights E</h2>
<h3 class="gn-title is-size3">Genian Insights E</h3>
<h4 class="gn-title is-size4">Genian Insights E</h4>
<h5 class="gn-title is-size5">Genian Insights E</h5>
<p class="gn-sub-title">내부 네트워크와 단말에 대한 악성 행위를 파악하고 이상 징후를 빠르게 탐지할 수 있는 '단말 이상행위 탐지 및 대응 솔루션'</p>
<p class="gn-sub-title is-size6">내부 네트워크와 단말에 대한 악성 행위를 파악하고 이상 징후를 빠르게 탐지할 수 있는 '단말 이상행위 탐지 및 대응 솔루션'</p>
<p class="gn-sub-title is-size7">내부 네트워크와 단말에 대한 악성 행위를 파악하고 이상 징후를 빠르게 탐지할 수 있는 '단말 이상행위 탐지 및 대응 솔루션'</p>

스타일

Genian GPI

PC의 보안 취약점을 점검하고 사용자가 스스로 조치할 수 있도록 행동 변화를 유도해 보안 체질을 개선할 수 있는 'PC 보안 수준 진단 솔루션'

<h1 class="gn-title is-border">Genian GPI</h1>
<h2 class="gn-sub-title">PC의 보안 취약점을 점검하고 사용자가 스스로 조치할 수 있도록 행동 변화를 유도해 보안 체질을 개선할 수 있는 'PC 보안 수준 진단 솔루션'</h2>

Container

/scss/layout/container.scss
v.0.1.0

기본 사용

  • 단순 영역구분을 위한 컨테이너 (No margin)
  • 사용 태그: div, main, navibar, section 등

Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna.

<div class="gn-container">
  <p>Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna.</p>
</div>

넓이제한 (is-max)

  • 내부 컨텐츠의 가로 넓이가 100% 이상일 경우 스크롤로 표현
Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna. Cillum duis labore reprehenderit ipsum amet ex labore pariatur occaecat cillum sint non Lorem.
Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna. Cillum duis labore reprehenderit ipsum amet ex labore pariatur occaecat cillum sint non Lorem.
Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna. Cillum duis labore reprehenderit ipsum amet ex labore pariatur occaecat cillum sint non Lorem.
<div class="gn-container is-max">
  <table class="gn-table is-stripe">
    <tr>
      <td class="is-nowrap">Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna.</td>
      <td class="is-nowrap">Cillum duis labore reprehenderit ipsum amet ex labore pariatur occaecat cillum sint non Lorem.</td>
    </tr>
    <tr>
      <td>Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna.</td>
      <td>Cillum duis labore reprehenderit ipsum amet ex labore pariatur occaecat cillum sint non Lorem.</td>
    </tr>
    <tr>
      <td>Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna.</td>
      <td>Cillum duis labore reprehenderit ipsum amet ex labore pariatur occaecat cillum sint non Lorem.</td>
    </tr>
  </table>
</div>

여백포함 (has-padding)

Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna. Cillum duis labore reprehenderit ipsum amet ex labore pariatur occaecat cillum sint non Lorem.
Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna. Cillum duis labore reprehenderit ipsum amet ex labore pariatur occaecat cillum sint non Lorem.
Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna. Cillum duis labore reprehenderit ipsum amet ex labore pariatur occaecat cillum sint non Lorem.
<div class="gn-container has-padding">
  <table class="gn-table is-stripe">
    <tr>
      <td class="is-nowrap">Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna.</td>
      <td class="is-nowrap">Cillum duis labore reprehenderit ipsum amet ex labore pariatur occaecat cillum sint non Lorem.</td>
    </tr>
    <tr>
      <td>Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna.</td>
      <td>Cillum duis labore reprehenderit ipsum amet ex labore pariatur occaecat cillum sint non Lorem.</td>
    </tr>
    <tr>
      <td>Irure dolor id adipisicing eu labore eu magna culpa voluptate enim minim. Mollit officia adipisicing nostrud qui incididunt tempor tempor elit Lorem irure sit. Culpa eu excepteur laboris officia magna.</td>
      <td>Cillum duis labore reprehenderit ipsum amet ex labore pariatur occaecat cillum sint non Lorem.</td>
    </tr>
  </table>
</div>

Grid

/scss/layout/grid.scss
v.0.1.0

기본 사용

  • 화면을 분할하기 위한 컬럼방식의 그리드
Dolor qui ullamco velit irure eiusmod nulla amet nostrud nostrud amet.
Occaecat ex adipisicing sit ipsum qui ipsum minim consectetur nulla in esse et.
Nisi cillum minim ipsum ex quis laboris.
Voluptate ut veniam aute dolore occaecat reprehenderit labore velit pariatur qui nostrud esse.
<div class="gn-grid">
  <div class="gn-column" style="background-color:#999">Dolor qui ullamco velit irure eiusmod nulla amet nostrud nostrud amet.</div>
  <div class="gn-column" style="background-color:#aaa">Occaecat ex adipisicing sit ipsum qui ipsum minim consectetur nulla in esse et.</div>
  <div class="gn-column" style="background-color:#bbb">Nisi cillum minim ipsum ex quis laboris.</div>
  <div class="gn-column" style="background-color:#ccc">Voluptate ut veniam aute dolore occaecat reprehenderit labore velit pariatur qui nostrud esse.</div>
</div>

사이즈

  • 각 컬럼에 사이즈 클래스를 추가하여 사용한다.
  • 사이즈 기준은 그리드의 가로사이즈 기준으로 1~12 (8.333 % ~ 100%)를 사용한다.
Dolor qui ullamco velit irure eiusmod nulla amet nostrud nostrud amet.
Occaecat ex adipisicing sit ipsum qui ipsum minim consectetur nulla in esse et.
Nisi cillum minim ipsum ex quis laboris.
Voluptate ut veniam aute dolore occaecat reprehenderit labore velit pariatur qui nostrud esse.
<div class="gn-grid">
  <div class="gn-column is-1" style="background-color:#999">Dolor qui ullamco velit irure eiusmod nulla amet nostrud nostrud amet.</div>
  <div class="gn-column is-3" style="background-color:#aaa">Occaecat ex adipisicing sit ipsum qui ipsum minim consectetur nulla in esse et.</div>
  <div class="gn-column is-5" style="background-color:#bbb">Nisi cillum minim ipsum ex quis laboris.</div>
  <div class="gn-column is-3" style="background-color:#ccc">Voluptate ut veniam aute dolore occaecat reprehenderit labore velit pariatur qui nostrud esse.</div>
</div>

정렬

  • is-center, is-vcenter
  • column 정렬을 설정한다.
Dolor qui ullamco velit irure eiusmod nulla amet nostrud nostrud amet.
Occaecat ex adipisicing sit ipsum qui ipsum minim consectetur nulla in esse et.
Nisi cillum minim ipsum ex quis laboris.
Voluptate ut veniam aute dolore occaecat reprehenderit labore velit pariatur qui nostrud esse.
<div class="gn-grid is-center">
  <div class="gn-column is-2" style="background-color:#999">Dolor qui ullamco velit irure eiusmod nulla amet nostrud nostrud amet.</div>
  <div class="gn-column is-2" style="background-color:#aaa">Occaecat ex adipisicing sit ipsum qui ipsum minim consectetur nulla in esse et.</div>
  <div class="gn-column is-2" style="background-color:#bbb">Nisi cillum minim ipsum ex quis laboris.</div>
  <div class="gn-column is-2" style="background-color:#ccc">Voluptate ut veniam aute dolore occaecat reprehenderit labore velit pariatur qui nostrud esse.</div>
</div>
Dolor qui ullamco velit irure eiusmod nulla amet nostrud nostrud amet.
Occaecat ex adipisicing sit ipsum qui ipsum minim consectetur nulla in esse et.
Nisi cillum minim ipsum ex quis laboris.
Voluptate ut veniam aute dolore occaecat reprehenderit labore velit pariatur qui nostrud esse.
<div class="gn-grid is-vcenter">
  <div class="gn-column is-1" style="background-color:#999">Dolor qui ullamco velit irure eiusmod nulla amet nostrud nostrud amet.</div>
  <div class="gn-column is-3" style="background-color:#aaa">Occaecat ex adipisicing sit ipsum qui ipsum minim consectetur nulla in esse et.</div>
  <div class="gn-column is-5" style="background-color:#bbb">Nisi cillum minim ipsum ex quis laboris.</div>
  <div class="gn-column is-3" style="background-color:#ccc">Voluptate ut veniam aute dolore occaecat reprehenderit labore velit pariatur qui nostrud esse.</div>
</div>

활용

HOME

  • Genians
  • R&D Center
  • Front-end
  • GNUI
    • Genians
    • R&D Center
    • Front-end
    • GNUI
  • GNUI core

Reprehenderit fugiat et ex Lorem deserunt non. Nulla anim enim dolore nulla quis in dolore proident minim. Consequat sint reprehenderit cupidatat ipsum irure excepteur fugiat. Officia nulla duis cupidatat cupidatat velit laborum aliquip in eu eu nisi laboris veniam eiusmod.

Quis exercitation aliqua do voluptate duis duis nostrud qui eiusmod. Tempor nostrud eu ut anim labore. Occaecat aliqua sit voluptate esse. Eiusmod in ea minim labore quis aliquip excepteur anim excepteur consequat duis. Ut adipisicing incididunt mollit ullamco eu minim sint deserunt eiusmod magna sit nulla irure. Aliquip magna excepteur officia aute laboris magna mollit cillum eiusmod laborum ut duis.

Adipisicing voluptate non ullamco ex cupidatat ad cillum qui adipisicing ullamco consectetur magna cupidatat commodo. Anim ex culpa deserunt duis sit esse aliqua. Culpa sit cillum ipsum culpa pariatur anim sunt velit voluptate deserunt ut voluptate id excepteur. Eu laborum excepteur dolor cupidatat occaecat esse. Ullamco consequat labore consequat consectetur quis consequat sint nostrud adipisicing consequat proident veniam ut et. Sint non laboris veniam voluptate exercitation commodo laborum adipisicing sint.

Proident irure veniam ipsum dolore mollit culpa ut ex laboris id ad culpa ullamco proident. Aute reprehenderit et eu anim est et. Cillum est incididunt eu irure ut consectetur culpa commodo. Incididunt eiusmod excepteur in do magna dolor voluptate eiusmod veniam qui tempor. Lorem fugiat minim pariatur veniam ut adipisicing velit elit quis cillum.

Aliquip laborum id ut fugiat commodo fugiat minim. Aute ea ea laborum minim duis occaecat proident dolore non. Aliqua amet qui officia officia magna irure aliqua eiusmod duis. Proident sint fugiat incididunt labore anim. Magna in aliqua irure aute aute amet magna sunt labore exercitation qui. Labore sunt dolore tempor exercitation id.

<div class="gn-grid">
  <div class="gn-column">
    <div class="gn-box is-clearfix has-color-primary">
      <div class="is-float-left">
        <div class="gn-control has-arrange">
          <button type="button" class="gn-button is-invert">
            <span class="gn-icon">
              <i class="fas fa-subway"></i>
            </span>
            Subway
          </button>
          <button type="button" class="gn-button is-invert">
            <span class="gn-icon">
              <i class="fas fa-laptop-code"></i>
            </span>
            Code
          </button>
          <button type="button" class="gn-button is-invert">
            <span class="gn-icon">
              <i class="fas fa-images"></i>
            </span>
            Images
          </button>
          <div class="gn-plain is-primary">
            <span class="gn-icon">
              <i class="fas fa-box"></i>
            </span>
          </div>
          <div class="gn-dropdown">
            <div class="dropdown-label">
              선택하세요
              <span class="gn-icon dropdown-icon">
                <i class="fas fa-angle-down"></i>
              </span>
            </div>
            <div class="dropdown-items">
              <ul>
                <li class="dropdown-item">아이템 1</li>
                <li class="dropdown-item">아이템 2</li>
                <li class="dropdown-item">아이템 3</li>
              </ul>
            </div>
          </div>
        </div>
      </div>
      <div class="is-float-right">
        <div class="gn-control has-icon-right">
          <span class="gn-icon is-right">
            <i class="fas fa-search"></i>
          </span>
          <input type="text" class="gn-input" placeholder="input text">
        </div>
      </div>
    </div>
  </div>
</div>
<div class="gn-grid">
  <div class="gn-column is-2 has-color-dark">
    <div class="gn-container has-padding">
      <div class="gn-tree">
        <p class="tree-label">
          <span class="gn-icon is-small">
            <i class="fas fa-home"></i>
          </span>
          HOME
        </p>
        <ul>
          <li>Genians</li>
          <li>R&amp;D Center</li>
          <li>Front-end</li>
          <li>GNUI
            <ul>
              <li>Genians</li>
              <li>R&amp;D Center</li>
              <li>Front-end</li>
              <li>GNUI</li>
            </ul>
          </li>
          <li>GNUI core</li>
        </ul>
      </div>
    </div>
  </div>
  <div class="gn-column">
    <div class="gn-container has-padding">
      <p>Reprehenderit fugiat et ex Lorem deserunt non. Nulla anim enim dolore nulla quis in dolore proident minim. Consequat sint reprehenderit cupidatat ipsum irure excepteur fugiat. Officia nulla duis cupidatat cupidatat velit laborum aliquip in eu eu nisi laboris veniam eiusmod.</p>
      <p>Quis exercitation aliqua do voluptate duis duis nostrud qui eiusmod. Tempor nostrud eu ut anim labore. Occaecat aliqua sit voluptate esse. Eiusmod in ea minim labore quis aliquip excepteur anim excepteur consequat duis. Ut adipisicing incididunt mollit ullamco eu minim sint deserunt eiusmod magna sit nulla irure. Aliquip magna excepteur officia aute laboris magna mollit cillum eiusmod laborum ut duis.</p>
      <p>Adipisicing voluptate non ullamco ex cupidatat ad cillum qui adipisicing ullamco consectetur magna cupidatat commodo. Anim ex culpa deserunt duis sit esse aliqua. Culpa sit cillum ipsum culpa pariatur anim sunt velit voluptate deserunt ut voluptate id excepteur. Eu laborum excepteur dolor cupidatat occaecat esse. Ullamco consequat labore consequat consectetur quis consequat sint nostrud adipisicing consequat proident veniam ut et. Sint non laboris veniam voluptate exercitation commodo laborum adipisicing sint.</p>
      <p>Proident irure veniam ipsum dolore mollit culpa ut ex laboris id ad culpa ullamco proident. Aute reprehenderit et eu anim est et. Cillum est incididunt eu irure ut consectetur culpa commodo. Incididunt eiusmod excepteur in do magna dolor voluptate eiusmod veniam qui tempor. Lorem fugiat minim pariatur veniam ut adipisicing velit elit quis cillum.</p>
      <p>Aliquip laborum id ut fugiat commodo fugiat minim. Aute ea ea laborum minim duis occaecat proident dolore non. Aliqua amet qui officia officia magna irure aliqua eiusmod duis. Proident sint fugiat incididunt labore anim. Magna in aliqua irure aute aute amet magna sunt labore exercitation qui. Labore sunt dolore tempor exercitation id.</p>
    </div>
  </div>
</div>

Splitter

/scss/layout/splitter.scss
v.0.1.0 javascript

생성 옵션

HORIZONTAL TOP PANEL
VERTICAL LEFT PANEL
VERTICAL RIGHT PANEL
  <div id="horizontal-splitter" style="height: 300px">
    <div id="frame1">
      HORIZONTAL TOP PANEL
    </div>
    <div id="frame2">
      <div id="vertical-splitter" style="height: 100%">
        <div id="frame3">
          VERTICAL LEFT PANEL
        </div>
        <div id="frame4">
          VERTICAL RIGHT PANEL
        </div>
      </div>
    </div>
  </div>
  Gn.create('splitter', {
    target: '#horizontal-splitter',
    panel: ['#frame1','#frame2'],
    position: '30%',
    onDrag: function(e) {
      console.log('dragging');
    },
    onDragStart: function(e) {
      console.log('drag start');
    },
    onDragEnd: function(e) {
      console.log('drag End');
    }
  });
  Gn.create('splitter', {
    target: '#vertical-splitter',
    panel: ['#frame3','#frame4'],
    space: 20,
    orientation: 'vertical'
  });
name type default description
target string 화면 분할 객체 선택자(selector)
orientation string horizontal 화면분할 방향 (vertical | horizontal)
space number 0 패널영역 여백(padding)
minPosition number 30 축소 시 최소 사이즈 (space가 존재하는 경우 합산하여 적용됨)
position number, string 50% 생성 시 분할 핸들의 위치
panel array(2) [ 'selector','selector' ] 분할된 컨텐츠 객체 선택자(selector)
onDrag function 핸들 드래그 이벤트
onDragStart function 핸들 드래그 시작 이벤트
onDragEnd function 핸들 드래그 종료 이벤트