A modular front-end framework - inspired by the server-side and Web Components.

Overview

The NX framework

Home page, Docs

NX is a modular front-end framework - built with ES6 and Web Components. The building blocks of NX are the core, the middlewares, the components and the utilities. These are all hosted in separate GitHub repos and npm packages.

The NX core is a tiny library, responsible for one thing only. It allows you to create dumb components and to augment them with middlewares. A component executes its middlewares when it is attached to the DOM and it gains all the extra functionalities from them. NX comes with some core middlewares out of the box, which you can find listed below.

  • Text interpolation: Interpolate values from the code into the view dynamically or one-time. Includes optional filters.
  • Dynamic and custom attributes: Use one-time or dynamically evaluated native attributes or define some custom ones.
  • Event handling: Add inline event handlers to listen on any event. Includes optional rate limiters.
  • Visual flow: Use conditional blocks and loops inside the HTML view.
  • Data binding: One-way, one-time or two-way data binding on any event and with no edge cases.
  • Rendering: Modularize your HTML and CSS code by moving them into separate files for each component.
  • Routing: Simple, but powerful routing with automatic parameter synchronization and router events.
  • Metadata and analytics: Handle your SPA's metadata and analytics declaratively with ease.
  • Dynamic styling: Simplify styling by passing objects to the style and class attributes.
  • Animations: Create powerful animations by using only a few HTML attributes.
  • Some other low level middlewares, mentioned in the Docs.
  • Anything else you define with the simple function middleware (elem, state, next) {} syntax.

These can be combined to create components with the desired functionality. Alternatively ready made core components can be extended and used, to avoid boilerplate code.

Resources

Installation

You can get NX from npm with the npm install @nx-js/framework command. See the installation page for other options.

Local development

You can bundle the framework locally with the npm run build command and minify it with the npm run minify command. The bundled and minified files are placed in the lib folder.

Contributing

A list of contributors

NX is very modular and every module is hosted in its own GitHub repository. Please open the issues and PRs in the relevant repositories. For example: if you have a feature request for routing, open a new issue in the route-middleware repo.

Sponsored by

Comments
  • Handling model data inside a component

    Handling model data inside a component

    Hi, I'm playing with the framework and trying to port some apps I have to nx. So far I didn't have any issues, but recently I've been trying to replicate a custom component (a component I created for another framework) with NX and failed.

    The component is what I call a "repeater". Basically, you drop the component into the page, assign an "item template" to it and bind the component to an iterable source (an array, for example).

    The component then iterates the source and renders each entry using the template. This is the easy part since I only have to use the @repeat attr and I'm done.

    Now, the component has to have two other functionalities:

    • Be able to delete a row.
    • Be able to add a row.

    In my component, I handle the first by deleting the corresponding item from the array, and the second by firing an event and on that event adding the item to the array (I'm doing that because I don't know beforehand the type of item I would need to add). But here I don't have access to the binded property inside my component... How should I handle this?

    opened by CheloXL 10
  • Hide elements until they are resolved.

    Hide elements until they are resolved.

    Based on the line:

    https://www.html5rocks.com/en/tutorials/webcomponents/customelements/#unresolvedels

    I would suggest to have a global style,

     :unresolved {
        display: none;
      }
    

    something like https://docs.angularjs.org/api/ng/directive/ngCloak

    wdyt?

    opened by vivekimsit 8
  • Reference to element in the component

    Reference to element in the component

    I was just reading about NX - found it an interesting framework. However, from the docs, I could not find out if it's possible to get a reference for the DOM element the component is managing, for example if I want to do specific changes to the DOM (outside the framework) using jQuery. Could you provide an example of using NX along side of jQuery?

    question 
    opened by antonioaguilar 5
  • Add disabled attribute.

    Add disabled attribute.

    The index.html is just for demo purpose and will be removed after approval.

    Changelog:

    1. Add disabled attribute to disable elements on boolean conditions.
    2. Add pre-checks and throw error if element cannot have the above attribute.

    Issue:

    At present the disabled attribute is applied to all the option attribute of the select element and hence throws err.

    opened by vivekimsit 5
  • Plans for wider browser support

    Plans for wider browser support

    As you may know some browsers are not yet supported, because of the use of unpolyfillable ES6 Proxies in this helper library. This is a proposal to add a fallback for those browsers.

    The NX core sets up hooks (middlewares) on DOM element attachments. Other then this it does a few other things, like transforming the state object into an observable object (this is where Proxies are used).

    I plan to move everything other then the hook definitions out of the core into separate middlewares. I would move the code using the Proxy into a middleware called observe and create an alternative legacy-observe middleware that uses getters/setter instead of Proxies for data binding.

    This way, the only thing you would have to do to achieve wider browser support is replacing comp.useOnContent(observe) with comp.useOnContent(legacyObserve) in the app component you use. The limitation of using legacyObserve would be not being able to bind on getters/setters and expando properties (this is a big one.) These limitations are present with all current data binding techniques that I know of others than the Proxy method.

    What is your opinion, is it understandable?

    enhancement discussion 
    opened by solkimicreb 3
  • Uncaught ReferenceError: module is not defined

    Uncaught ReferenceError: module is not defined

    This error occurs here, and I don't know why as it works as expected. There should be more defensive code. https://github.com/janat08/blockrazor/tree/createButton

    opened by janat08 2
  • Roadmap until beta

    Roadmap until beta

    These are the changes I would like to happen before NX beta is released. In my opinion the beta should be as stable as possible to let us focus on bug fixes and documentation improvements. With a good pace the below changes should take around 2-3 months. What is your opinion? Would you like to see a stricter roadmap with rough deadlines?

    Framework changes:

    • form validation middleware POSTPONED
    • transition/animation middleware DONE
    • change Custom Elements polyfill to a subset of the official v1 polyfill POSTPONED (native implementation of type extension is buggy)
    • Shadow DOM support (requires changes in core and the render middleware) DONE
    • Scoped styles support DONE
    • optimize the nx-compile and nx-observe helper libraries for speed DONE
    • determine a list of officially supported browsers with exact versions
    • get 100% test coverage with all supported browsers
    • setup a linter

    Small fixes and refactors:

    • refactor core and all middlewares one by one: main goal is speed and readabilty DONE
    • fix all reported bugs (naturally)

    Docs and utilities:

    • NX-CLI for project seed generation
    • complex example apps and walk throughs written in NX IN PROGRESS
    • home page cleanup and public release for contributors (the home page is an NX app)
    • documentation for contributors
    • separate, short API documentation instead of 'cheat sheets'

    What comes after the beta:

    • unofficial API freeze, breaking changes will happen only if unavoidable
    • release a distributed version of NX, where every middleware is in its own repo (something similar to what Express is doing)
    opened by solkimicreb 2
  • npm install issues

    npm install issues

    NX relies heavily on peer dependencies and semver internally, because of its modular nature. If you find issues with the npm install please post them here. Thx!

    opened by solkimicreb 0
  • 402: Payment required

    402: Payment required

    Trying to hit https://nx-framework.com/ gives me 402 Error. I think the popularity of the app grows every second and thus you will need to add more quota to your account :)))

    Regrads, @Stradivario

    opened by Stradivario 1
  • history error

    history error

    tries to access state.history.params, and while it's defined before and after the access, it will fail if there's another router being used.

    typeNX.js:2385 Uncaught TypeError: Cannot read property 'params' of null
        at syncStatesWithParams (typeNX.js:2385)
        at eval (typeNX.js:2352)
        at SmartWizard._setURLHash (/node_modules/smartwizard/dist/js/jquery.smartWizard.js:544)
        at SmartWizard._transitPage (/node_modules/smartwizard/dist/js/jquery.smartWizard.js:460)
        at SmartWizard._loadStepContent (/node_modules/smartwizard/dist/js/jquery.smartWizard.js:404)
        at SmartWizard._showStep (/node_modules/smartwizard/dist/js/jquery.smartWizard.js:354)
        at SmartWizard.init (/node_modules/smartwizard/dist/js/jquery.smartWizard.js:121)
        at new SmartWizard (/node_modules/smartwizard/dist/js/jquery.smartWizard.js:88)
        at HTMLDivElement.eval (/node_modules/smartwizard/dist/js/jquery.smartWizard.js:638)
        at Function.each (modules.js?hash=fa65c5222d37ccb63afe46b49c068a2095600027:6549)
    
    opened by janat08 3
  • Surviving contact with jquery and its libraries

    Surviving contact with jquery and its libraries

    Ive been on the lookout for a reactive first library that can handle jquery, and I think it's a major and great quality in a library especially where js fatigue is concerned.

    opened by janat08 0
  • DOM node attribute changes not caught by handler

    DOM node attribute changes not caught by handler

    using nx beta 2.0.0 downloaded from https://nx-framework.com/install, running on Mac OSX 10.10.5, Chrome 60.0.3112.113 (Official Build) (64-bit). both of these are the newest versions as of writing this.

    minimal code to illustrate the problem:

    <fs-browser address="old"></fs-browser><script>
      let node;nx.components.app().use((n)=>{
        (node=n).$attribute("address",(address)=>console.info(`address changed to ${address}`));
      }).register("fs-browser");setTimeout(()=>node.setAttribute("address","new"));
    </script>
    

    console output when running the above example was: address changed to old and nothing more. why changes made to the attribute is not caught, am I missing something here?


    P.S.: nx is the best framework I've found so far, Vue has too many "edge cases". but development is too slow for this project, a lot of promised changes seems missing, so I'd like to work on this project to speed things up. what I'd like to do first is to restructure the project as it seems to scattered to me: I'd like to make a new branch to nx-js/framework, and make every middleware (which are in their individual repos, most of them can be made into in a single file) a separate file inside nx-js/framework/middlewares, and move in other dependencies too. I think by doing this, it allows easier collaborations and will speed up development, in the same time not sacrificing modularity too much. is this ok to you?

    opened by revintec 3
Releases(v1.0.0-beta.2.0.0)
  • v1.0.0-beta.2.0.0(Feb 10, 2017)

    Breaking changes

    • The app component now extends the page component, and it has the render, meta and params middlewares added by default.
    • The $hasAttribute method is removed from the attribute middleware.
    • Changed attribute handling order. Custom attributes are handled synchronously before native prefixed attributes. Until now it was the other way around.
    • The $unobserve and $queue methods are removed from the observe middleware and observer util. The $observe method returns an object signal and signal.unobserve() should be called instead.
    • Functions passed to $observe run synchronously for the first time, previously they were always async.
    • The $route method of the ref middleware has an object parameter from now on.
    • Parameters of the params middleware are no longer reflected in the URL by default, you have to pass the new url: true config to keep this behavior.

    Features

    • Added the new props middleware.
    • Added the new display and control components.
    • Added the new router utility.
    • Active anchors - which point to the current page and parameters - receive the active CSS class automatically from now on.
    • Added the url and durable config options to the params middleware.
    • Added an params event, which is fired before synchronization on parameter changes.
    • The template config is now optional in the render middleware config.
    • Added a level property to the route event's detail.
    • The $attribute method of the attributes middleware optionally accepts an object with more granular control.

    Fixes

    • Elements now have correct width and height during their leave-animation.
    • The to (previously path) config is now optional in the $route method.
    • Fixed occasional double routing.
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0-beta.1.1.0(Jan 16, 2017)

  • v1.0.0-beta.1.0.0(Jan 9, 2017)

    Breaking changes

    • Changed to framework's npm package from @risingstack/nx-framework to @nx-js/framework.
    • Removed the content, expression and code low level middlewares. content is moved into @nx-js/dom-util, expression and code is moved into @nx-js/compiler-util.

    Refactor

    • Moved every module (core and middlewares) into its own GitHub repo and npm package, this opens up the possibility for custom frameworks.

    Fixes

    • Fixed URI encoding and decoding in params-middleware.

    Docs

    • Docs are completely rewritten and there is a new Getting started guide.
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0-alpha.6.1.0(Dec 21, 2016)

    Features

    • Added elem.$hasAttribute method (added by attributes middleware).
    • Added elem.$queue method (added by observe middleware). It queues a function to be executed together with the triggered observed functions.

    Fixes

    • Fixed for in loop and built in object (Map, Set, WeakMap, Date, etc) observation.

    Performance

    • Changed observed function execution to be always async (no more synchronous first run).
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0-alpha.6.0.0(Dec 13, 2016)

    Breaking

    • track-by="$index" is deprecated. You can pass a function to track-by instead with $track-by="fn" or track-by="fn". See the relevant docs for details.
    • node.$root points to the nearest root element or shadow root for every node, instead of being a boolean. (Low level API change).

    Features

    • Added an nx.supported boolean flag, which indicates if NX is supported in the current browser.

    Fixes

    • Fixed attribute processing order in attributes middleware. From now the processing order is
      1. Every $ or @ prefixed attribute without a special handler. (Like @hidden or $required)
      2. Attributes that have a handler in handler definition order. This means the order of elem.$attribute(name, handler) calls. (Like repeat-key and @repeat).
    • Fixed observable.$raw sometimes not pointing to the raw (non observable) object in case of nested observables.

    Performance

    • Refactored the router, params, ref, animate, render, bind and bindable middlewares for better performance.

    Others

    • Adding content middlewares to and isolated: true component will log a warning instead of throwing an error from now on.
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0-alpha.5.0.0(Dec 3, 2016)

    Breaking

    • The default isolate setting of app component is changed from undefined to 'middlewares'.
    • The style passed to the render middleware is parsed and attached as a scoped style by default.
    • The throttle limiter is tweaked a bit. Previously it could emit a final event even after the triggering events are finished. This won't happen anymore.
    • The cache setting is removed from the render middleware. Templates are now always cached internally. (Should not affect you.)

    Features

    • Added shadow DOM support to the render middleware. It is toggleable with the shadow boolean config property.
    • Added scoped style support to the render middleware.

    Fixes

    • Fixed throttle limiter sometimes not triggering at all.
    • Fixed incorrect animation default durations in firefox.
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0-alpha.4.0.0(Nov 24, 2016)

    This update contains mainly low level and performance related changes.

    Breaking

    • Renamed the repeat-key attribute to track-by.
    • Changed the filter and limiter middlewares to be regular functions instead. They are accessible as nx.middlewares.expression.filter and nx.middlewares.code.limiter. See this and this pages for details.
    • Observability is moved from the core to the new observe middleware. Most others middlewares depend on it. observe is added to the app component.
    • Changed the $use and $require core methods to be middleware function properties instead. From function middleware (elem) { elem.$require('name'); elem.$use('name') } to function middleware () {} middleware.$require = ['name']; middleware.$name = 'name'

    Features

    • If the track-by attribute is set to $index (or the value of repeat-index), the repeat attribute will cause minimal DOM changes. Make sure to always combine this feature with dynamic @ attributes and interpolations instead of single $ ones in the content for proper updating.
    • $observe accepts any number of injectable arguments after the passed function. It also returns a singnal, which should be passed to unobserve (similarly to setTimeout, clearTimeout). See this page for details.
    • $compileCode accepts a second object argument, which may contain temporary variables for the compiled function. See this page for details.
    • $cleanup accpepts any number of injectable arguments, similarly to $observe.
    • The this context is now the element everywhere (in middlewares and $cleanup, $observe and $attribute callbacks.)
    • $normalizeContent is now added by the content middleware. It removes empty text nodes from the node content.

    Performance

    The core and observe, code, expression, interpolate, attributes, events, flow, style and content middleware performance has be greatly improved.

    Source code(tar.gz)
    Source code(zip)
  • v1.0.0-alpha.3.0.1(Oct 20, 2016)

    Fixed

    • Fixed double Web Component registration in browsers not supporting native Web Components.
    • Fixed a flickering issue with Safari (caused by a native Safari bug, which incorrectly queues some microtask as task when Promises and MutationObservers interact with eachother).
    • Fixed the animationFillMode in Firefox to default to 'both'.
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0-alpha.3.0.0(Oct 18, 2016)

    Breaking changes and new features

    • Added the animate middleware.
    • Removed the compose option from the render middleware. It is always true from now on. If it finds a slot element it composes.
    • Added a style option to the render middleware, which expects a css string.
    • Added the default and required options to the params middleware config.
    • Removed element.$schedule.
    • The attributes middleware supports boolean attributes from now on, by removing the attribute if it has a falsy value.
    • Removed the show attribute, use the native hidden boolean attributes instead.
    • Calling next() asynchronously in middlewares won't work anymore.
    • next() calls can be omitted if it is at the end of the middleware. It is called automatically when the middleware finishes execution.
    • Added a repeat-key attribute for performance optimizations with loops in the view.
    • Added state.$raw to every state, which provides acces to the raw, unreactive version of the state.
    • The core filters and limiters are exposed on nx.filters and nx.limiters.
    • Inline JS expressions will return undefined instead of throwing a TypeError when you try to access a property of undefined (a not yet fetched object).

    Fixed

    • The ref attribute triggers correctly, when a descendant element of the link is clicked.
    • The href attribute is generated correctly from iref attributes.

    Performance

    • The Web Components polyfill is replaced by a smaller and more performant subset.
    • The core is reworked to make execution order more predictable and less bug prone.
    • The repeat attribute is refactored to reuse existing DOM nodes more efficiently.
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0-alpha.2.3.1(Sep 13, 2016)

    Fixed

    • Fixed the repeat attribute not mapping arrays correctly some times.
    • Inline event handlers are now triggered in the capture phase of events. This makes them works with events, which has no bubbling phase (scroll event for example).

    Performance

    • Internal improvement by removing Object.setPrototype(). Currently it improves repeat attribute performance only.
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0-alpha.2.3.0(Sep 5, 2016)

    New

    • The repeat attribute now accepts any iterable (map, set, array, custom), not just arrays.
    • The key limiter became a lot smarter regarding special key names. It now works with the common aliases and ignores upper/lower case. For example esc and Escape are both working.

    Fixed

    • Fixed an issue with the router double routing sometimes.
    • Inline event handlers (defined with the #event="handler()" syntax) are now correctly triggered when a child element dispatches the required event.

    Performance

    • The list rendering performance of the repeat attribute is dramatically improved.
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0-alpha.2.2.0(Aug 25, 2016)

    New

    • It is now possible to define real relative routes in iref attributes and the $route method by ../ and ./.
    • Routers fire a route event before routing.

    Fixed

    • Fixed an issue with the params middleware always pushing a new history state if it reaches the first state.
    • Fixed an issue with the key limiter displaying a deprecated warning.
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0-alpha.2.1.0(Aug 9, 2016)

    New

    • It is now possible to list multiple events after the # prefix in inline event handlers to trigger the handler on nay of them.
    • The data binding on option now accepts any native or custom event name or a list of comma separated events. Looks like this: bind="two-way change,click,my-event string".
    • Added a new rate limiter, called key. In case of a keyboard event it triggers the handler only for the passed keys.
    • You can access the current event inside custom rate limiters. It is exposed on context.$event.

    Fixed

    • Fixed custom elements, which extend a native type being processed to early sometimes.
    • Fixed an issue with data bound inputs, which caused the text cursor to jump to the end of the text while typing.
    • Fixed an issue with some event handlers not triggering in case of multiple different event handlers for the same event on a single element.
    • The unit filter will only interpret the number 1 as singular from now on.
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0-alpha.2.0.0(Aug 3, 2016)

    Breaking changes

    • Existing special attributes renamed from nx-attr to simply attr
    • Bind syntax changed from nx-sync, nx-cync-on, nx-sync-mode and nx-sync-type to a single bind="mode on type".
    • Inline event handling syntax changed from nx-eventName to #eventName.
    • Renamed nx-ref, nx-ref-params and nx-ref-options to iref, iref-params and iref-options.
    • iref, iref-params and iref-options will only work on anchor elements from now on.

    New

    • Improved data binding. Simpler syntax, more flexibility, dynamic binding options and custom bindable elements.
    • Improved attributes. Now any attribute can be prefixed by @ or $ similarly to interpolation.
    • Attribute shorthand syntax: @class="class" is equal to @class.
    • Improved inline event handlers. Now works with any events.
    • Added rate limiters, which can be used with event handlers.
    • Added the capitalize, lowercase, uppercase, json, slice, unit, date, datetime and time filters.
    • Added the debounce, delay, if, throttle rate limiters.
    • Anchor elements with an iref attribute gets a fake href attribute from NX, which helps web crawlers.
    • class and style attributes now accept an object as value
    • Added the show attribute, which toggles element visibility.

    Fixed

    • Fixed an error hiding issue. Errors thrown inside developer code won't be hidden by NX.
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0-alpha.1.1.0(Aug 3, 2016)

  • v1.0.0-alpha.1.0.0(Aug 3, 2016)

Owner
NX framework
NX is a modular front-end framework - inspired by the server-side and Web Components.
NX framework
Web-Technology with Aj Zero Coding. In this tutorial we learn front-end and back-end development.

Installation through NPM: The jQWidgets framework is available as NPM package: jQuery, Javascript, Angular, Vue, React, Web Components: https://www

Ajay Dhangar 3 Nov 19, 2022
Pass trust from a front-end Algorand WalletConnect session, to a back-end web service

AlgoAuth Authenticate to a website using only your Algorand wallet Pass trust from a front-end Algorand WalletConnect session, to a back-end web servi

Nullable Labs 16 Dec 15, 2022
Fast and minimal JS server-side writer and client-side manager.

unihead Fast and minimal JS <head> server-side writer and client-side manager. Nearly every SSR framework out there relies on server-side components t

Jonas Galvez 24 Sep 4, 2022
Easy server-side and client-side validation for FormData, URLSearchParams and JSON data in your Fresh app 🍋

Fresh Validation ??     Easily validate FormData, URLSearchParams and JSON data in your Fresh app server-side or client-side! Validation Fresh Validat

Steven Yung 20 Dec 23, 2022
Dweon, a community platform for gamers. This is front-end only. Inspired by Discord, Spotify, Twitch. (Not finished yet)

What's Dweon? Dweon is a community platform that has Music+, Stream+, Chat+ for gamers. Dweon is not a real project. It has nothing but user interface

Eren Oğuz 8 Sep 4, 2022
Personal Blog - a project developed with Angular for the front-end interface and Wordpress for the back-end API served with Docker containers

PersonalBlog This project was generated with Angular CLI version 13.0.1. Front-end Interface Development server Run ng serve or ng serve --configurati

null 9 Oct 5, 2022
It consists of a recreation of Twitter, to put into practice both Front-end and Back-end knowledge by implementing the MERN Stack together with other technologies to add more value to the project.

Twitter-Clone_Back-end ✨ Demo. ?? About the project. ?? Descriptions. It consists of a recreation of Twitter, to put into practice knowledge of both F

Mario Quirós Luna 5 Apr 12, 2022
It consists of a recreation of Twitter, to put into practice knowledge of both Front-end and Back-end implementing the MERN Stack along with other technologies to add more value to the project.

Twitter-Clone_Front-end ✨ Demo. Login Home Profile Message Notifications Deployed in: https://twitter-clone-front-end.vercel.app/ ?? About the project

Mario Quirós Luna 5 Jun 26, 2022
A JSDOM alternative with support for server side rendering of web components

About A JSDOM alternative with support for server side rendering of web components. Happy DOM aim to support the most common functionality of a web br

David Ortner 1.6k Dec 30, 2022
A Web end-to-end testing framework.

一款舒适的自动化测试框架 文档 XBell 站点 特性 基于 playwright 的异步测试框架 基于 TypeScript 提供多功能装饰器 多套数据环境支持 快速开始 # 初始化一个项目 $ npm create xbell # 进入项目 $ cd <your-project-name> #

X-Bell 10 Dec 15, 2022
Front end code + minimal express server for mannys.game

mannys-game Front end code + minimal express server for mannys.game. Documentation For full documentation and examples, visit mannys.game/docs. Quick

Manny404 26 Oct 14, 2022
front-end framework for fast and powerful configuration of utilities and intuitive UI

front-end framework for fast and powerful configuration of utilities and intuitive UI Getting Started with Vector → Getting started A variety of optio

Skill Class 12 Jun 29, 2022
front-end framework for fast and powerful configuration of utilities and intuitive UI

front-end framework for fast and powerful configuration of utilities and intuitive UI Getting Started with Vector → Getting started A variety of optio

DE:MO 12 Jun 29, 2022
Access the internals of React components from Cypress end-to-end tests

cypress-react-app-actions Access the internals of React components from Cypress end-to-end tests Read Access React Components From Cypress E2E Tests a

Gleb Bahmutov 5 May 12, 2022
An inheritable and strong logic template front-end mvvm framework.

Intact 文档 Documents 简介 Intact作为一个可继承,并且拥有强逻辑模板的前端MVVM框架,有着如下特色: 充分利用组合与继承的思想,来最高限度地复用代码 同时支持数据驱动和组件实例化调用,来最便捷地实现功能 强逻辑模板,赋予模板更多功能和职责,来完成业务逻辑和表现逻辑分离 安装

Javey 55 Oct 21, 2022
The front-end CSS framework for building experiences for Office and Microsoft 365.

Office UI Fabric Core The front-end framework for building experiences for Office and Office 365. Fabric is a responsive, mobile-first collection of s

Office Developer 3.7k Dec 20, 2022
The most advanced responsive front-end framework in the world. Quickly create prototypes and production code for sites that work on any kind of device.

Install | Documentation | Releases | Contributing Foundation is the most advanced responsive front-end framework in the world. Quickly go from prototy

Foundation 29.4k Jan 4, 2023
Fast & Robust Front-End Micro-framework based on modern standards

Chat on gitter Hello slim.js - your declarative web components library import { Slim } from 'slim-js'; import { tag, template } from 'slim-js/decorato

slim.js 942 Dec 30, 2022
Make drag-and-drop easier using DropPoint. Drag content without having to open side-by-side windows

Make drag-and-drop easier using DropPoint! DropPoint helps you drag content without having to open side-by-side windows Works on Windows, Linux and Ma

Sudev Suresh Sreedevi 391 Dec 29, 2022