Skip to content

unviva/jusi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jusi 🦩

JS only, app development framework

no HTML, no CSS. all handled by jusi!

Follows a syntax similar to vNodes of Vue, but entirely in VanillaJS.

Layouts

jusi.layouts.login = (fields) => {
  return [
    main({
      contains: fields
    })
  ]
}

Pages

jusi.pages.about = jusi.layouts.default([
  pageHeader({
    title: 'About',
    actions: []
  }),
  jusi.els.formPostEdit
])

Components

/* Close button */
jusi.components.closeButton = (clickFn) => {
  return span({ text: 'X', classList: ['close-btn'], events: { click: clickFn } })
}

/* Modal */
jusi.components.modal = (slots = {}) => {
  const modal = div({ classList: ['modal-overlay'] })
  slots.header.push(jusi.components.closeButton(() => {
    modal.remove()
  }))

  jusi.el.addTo(modal, div({
    classList: ['modal'],
    contains: [
      div({ classList: ['modal-header'], contains: slots.header }),
      div({ classList: ['modal-body'], contains: slots.body }),
      div({ classList: ['modal-footer'], contains: slots.footer }),
    ]
  }))
  return modal
}

-- roadmap: building styles/css by JS

reactivity implementation

PWA imp.

--

public.

About

JS only, app development framework. no HTML, no CSS. all handled by jusi!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published