npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

intesign

v1.0.5

Published

Intesign is Vanilla JavaScript Design Library

Downloads

7

Readme

intesign

Vanilla JavaScript 디자인 오픈소스 라이브러리

Download

npm install --save intesign

Use direct reference

import { Row, Column, Message, Input, Modal, Card } from './node_modules/intesign/src/index.ts';

Bundling environment

import { Row, Column, Message, Input, Modal, Card } from 'intesign';

Grid

Row

  • static create(...columns)
Row.create(
  Column.create(component, { xxl: 4, xl: 8, lg: 8, md: 8, sm: 12, xs: 24 }),
  Column.create(component, { xxl: 4, xl: 8, lg: 8, md: 8, sm: 12, xs: 24 }),
  Column.create(component, { xxl: 4, xl: 8, lg: 8, md: 8, sm: 12, xs: 24 }),
  Column.create(component, { xxl: 4, xl: 8, lg: 8, md: 8, sm: 12, xs: 24 }),
  Column.create(component, { xxl: 4, xl: 8, lg: 8, md: 8, sm: 12, xs: 24 }),
  Column.create(component, { xxl: 4, xl: 8, lg: 8, md: 8, sm: 12, xs: 24 }),
)

Column

  • static create(node, { xxl, xl, lg, md, sm, xs })
Column.create(component, { xxl: 4, xl: 8, lg: 8, md: 8, sm: 12, xs: 24 })
  • 총 24 사이즈
    • ex) xxl: 41600px에서 1/6 사이즈
  • xxl: > 1600px
  • xl: > 1200px
  • lg: > 992px
  • md: > 768px
  • sm: > 576px
  • xs: < 576px

Card

  • static create(head, body)
Card.create('Title', `
  Lorem ipsum dolor sit amet, consectetur adipisicing elit.
  Accusantium asperiores eaque error quasi. Aperiam corporis dicta fuga ipsum laborum nam provident voluptas.
  Aliquid autem dolorum impedit neque optio provident sunt?
`)

Modal

method

  • create
    • Modal Element를 생성해서 반환합니다.
    • no parameters
    • Modal.create(): return <inte-modal></inte-modal> element
  • appendBody
    • Modal의 Body를 설정합니다.
    • Modal.appendBody($modal, component);
    • parameter
      • $modal: Body를 설정할 Modal Element
      • component: Body에 넣을 component
      • return: null
  • appendTitle
    • Modal의 Title을 설정합니다.
    • Modal.appendTitle($modal, title);
    • parameter
      • $modal: Title을 설정할 Modal Element
      • title: Modal의 Title
  • open
    • Modal을 view에 보이도록 설정합니다.
    • Modal.open($modal)
    • parameter
      • $modal: 보이도록 설정할 Modal Element
  • close
    • Modal을 view에 안보이도록 설정합니다.
    • Modal.close($modal)
    • parameter
      • $modal: 안보이게 설정할 Modal Element
  • setWidth
    • Modal의 너비를 설정합니다.
    • 단위: vw
    • Modal.setWidth($modal, width)
    • parameter
      • $modal: 너비를 설정할 Modal Element
      • width: 0 ~ 100 number / default: 50
  • setHeight (not recommended)
    • Modal의 높이를 설정합니다.
    • 단위: vh
    • Modal.setHeight($modal, height)
    • parameter
      • $modal: 높이를 설정할 Modal Element
      • width: 0 ~ 100 number / default: content height
  • onOk
    • Modal 하단의 OK 버튼 이벤트
    • Modal.onOk($modal, callback)
    • parameter
      • $modal: OK 버튼 이벤트를 설정할 Modal Element
      • callback: OK 버튼 클릭 시 발생할 이벤트 콜백 함수
  • onCancel
    • Modal 하단의 CANCEL 버튼 이벤트
    • Modal.onCancel($modal, callback)
    • parameter
      • $modal: CANCEL 버튼 이벤트를 설정할 Modal Element
      • callback: CANCEL 버튼 클릭 시 발생할 이벤트 콜백 함수
const $modal = Modal.create();

Modal.body($modal, Row.create(
  Column.create(Card.create('hello', 'intae'), { xxl: 4, xl: 8, lg: 8, md: 8, sm: 12, xs: 24 }),
  Column.create(Card.create('hello', 'intae'), { xxl: 4, xl: 8, lg: 8, md: 8, sm: 12, xs: 24 }),
  Column.create(Card.create('hello', 'intae'), { xxl: 4, xl: 8, lg: 8, md: 8, sm: 12, xs: 24 }),
  Column.create(Card.create('hello', 'intae'), { xxl: 4, xl: 8, lg: 8, md: 8, sm: 12, xs: 24 }),
  Column.create(Card.create('hello', 'intae'), { xxl: 4, xl: 8, lg: 8, md: 8, sm: 12, xs: 24 }),
  Column.create(Card.create('hello', 'intae'), { xxl: 4, xl: 8, lg: 8, md: 8, sm: 12, xs: 24 }),
))

document.querySelector('.modal').addEventListener('click', (e) => {
  Modal.open($modal);
})

Modal.onOk($modal, (e) => {
  Modal.close($modal);
});

Message

method

  • create
    • Message Element를 생성해서 반환합니다.
    • no parameters
    • Message.create(): return <inte-message></inte-message> element
  • setMessage
    • Message Element의 보여질 메시지(message)를 설정합니다.
    • Message.setMessage($message, message)
    • parameter
      • $message: message를 설정할 Message Element
      • message: Message Element에 설정할 message
  • setType
    • Message Element의 보여질 메시지(message) 타입을 설정합니다.
    • Message.setType($message, type)
    • parameter
      • $message: type을 설정할 Message Element
      • type: Message Element에 설정할 type
        • info: 파란색 글씨의 정보메시지
        • error: 붉은색 글씨의 에러메시지
  • setVisible
    • Message Element가 보일지 안보일지 설정.
    • Message.setVisible($message, visible)
    • parameter
      • $message: visble을 설정할 Message Element
      • visible: Message Element에 설정할 visible
        • open
        • close

Popconfirm

<inte-popconfirm class="popconfirm">
    <inte-button slot="popconfirm" name="데이터 삭제"></inte-button>
</inte-popconfirm>
  • 클릭 시 confirm 창을 띄울 버튼 이나 다른 element를 의 자식 element로 전달
  • 속성에 slot="popconfirm" 필수적으로 추가

method

  • okHandler
    • ok 버튼을 누르면 어떤 동작을 할지 콜백함수로 전달
    • 파라미터로 click event 객체 전달
    PopConfirm.okHandler($popconfirm, (e) => {
      Message.setMessage($message, '데이터 삭제 중..');
      Message.setType($message, 'info');
      $message.setAttribute('visible', 'open');
      $popconfirm.setAttribute('visible', 'close')
      
      setTimeout(() => {
        $message.setAttribute('visible', 'close');
      }, 3000)
    })

attribute

  • message
      $popconfirm.setAttribute('message', '데이터를 삭제하겠습니까?')
    • confirm 창에 나타날 메시지 설
  • visible
      $message.setAttribute('visible', 'open');
      $popconfirm.setAttribute('visible', 'close');
    • popconfirm 창이 열리고 닫히는 것을 설정
  • oktext, canceltext
    • popconfirm 창의 버튼 2개의 텍스트를 설정한다.

Example

더 많은 작업을 진행하면서 추가할 예정입니다.

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title></title>
    </head>
    <body>
    <inte-button name="modal" class="modal"></inte-button>
    <inte-button name="message" class="message"></inte-button>
    <script type="module" src="app.ts"></script>
    <inte-modal visible="true" title="hello"></inte-modal>
    </body>
</html>
import { Card, Column, Message, Modal, Row } from './index.ts';

// Column.create(Card.create('Hello', 'Intae'), {xxl: 8, xl: 8, lg: 8, md: 8, sm: 8, xs: 24}),
const $modal = Modal.create();

const loremStr = `Lorem ipsum dolor sit amet, consectetur adipisicing elit.
Accusantium asperiores eaque error quasi. Aperiam corporis dicta fuga ipsum laborum nam provident voluptas.
Aliquid autem dolorum impedit neque optio provident sunt?`

document.body.append(
  Row.create(
    Column.create(Card.create('Title', loremStr), { xxl: 4, xl: 8, lg: 8, md: 8, sm: 12, xs: 24 }),
    Column.create(Card.create('Title', loremStr), { xxl: 4, xl: 8, lg: 8, md: 8, sm: 12, xs: 24 }),
    Column.create(Card.create('Title', loremStr), { xxl: 4, xl: 8, lg: 8, md: 8, sm: 12, xs: 24 }),
    Column.create(Card.create('Title', loremStr), { xxl: 4, xl: 8, lg: 8, md: 8, sm: 12, xs: 24 }),
    Column.create(Card.create('Title', loremStr), { xxl: 4, xl: 8, lg: 8, md: 8, sm: 12, xs: 24 }),
    Column.create(Card.create('Title', loremStr), { xxl: 4, xl: 8, lg: 8, md: 8, sm: 12, xs: 24 }),
  ),
  $modal,
);

Modal.appendBody($modal, Row.create(
  Column.create(Card.create('hello', 'intae'), { xxl: 4, xl: 8, lg: 8, md: 8, sm: 12, xs: 24 }),
  Column.create(Card.create('hello', 'intae'), { xxl: 4, xl: 8, lg: 8, md: 8, sm: 12, xs: 24 }),
  Column.create(Card.create('hello', 'intae'), { xxl: 4, xl: 8, lg: 8, md: 8, sm: 12, xs: 24 }),
  Column.create(Card.create('hello', 'intae'), { xxl: 4, xl: 8, lg: 8, md: 8, sm: 12, xs: 24 }),
  Column.create(Card.create('hello', 'intae'), { xxl: 4, xl: 8, lg: 8, md: 8, sm: 12, xs: 24 }),
  Column.create(Card.create('hello', 'intae'), { xxl: 4, xl: 8, lg: 8, md: 8, sm: 12, xs: 24 }),
))

document.querySelector('.modal').addEventListener('click', (e) => {
  Modal.open($modal);
})

const $message = document.createElement('inte-message');
Message.setMessage($message, '데이터를 받아오지 못했습니다.');
Message.setType($message, 'error');
document.body.append($message);

document.querySelector('.message').addEventListener('click', (e) => {
  $message.setAttribute('visible', 'open');
  setTimeout(() => {
    $message.setAttribute('visible', 'close');
  }, 3000)
})

Modal.onOk($modal, (e) => {
  Modal.close($modal);
});

Modal.onCancel($modal, (e) => {
  Modal.close($modal);
})

예제 링크: https://intesign-example.herokuapp.com/