All Projects → gu-io → Gu

gu-io / Gu

Licence: mit
A web ui library for Go. [DEPRECATED]

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Gu

React Multi Select
A Multi Select component built with and for React
Stars: ✭ 111 (+8.82%)
Mutual labels:  component, ui-components, components
Startup Landing
Collection of free top of the line startup landing templates built using react/nextjs/gatsby. Free to download, simply edit and deploy! Updated weekly!
Stars: ✭ 176 (+72.55%)
Mutual labels:  ui-components, components, webapp
React Components
React components
Stars: ✭ 47 (-53.92%)
Mutual labels:  component, components
Gomponents
Declarative view components in Go, that can render to HTML5.
Stars: ✭ 49 (-51.96%)
Mutual labels:  component, ui-components
React Native Elements App
Demo app for React Native Elements (w/ React Native Web)
Stars: ✭ 1,159 (+1036.27%)
Mutual labels:  ui-components, components
Re Jok
A React UI Component library built with styled-components
Stars: ✭ 102 (+0%)
Mutual labels:  ui-components, components
Tail Kit
Tail-kit is a free and open source components and templates kit fully coded with Tailwind css 2.0.
Stars: ✭ 997 (+877.45%)
Mutual labels:  ui-components, components
Taiga Ui
Angular UI Kit and components library for awesome people
Stars: ✭ 1,353 (+1226.47%)
Mutual labels:  ui-components, components
Ui Box
Blazing Fast React UI Primitive
Stars: ✭ 847 (+730.39%)
Mutual labels:  component, ui-components
Rn Components Kit
A series of commonly used react-native components
Stars: ✭ 79 (-22.55%)
Mutual labels:  component, ui-components
Kendo React
Issue tracker - KendoReact http://www.telerik.com/kendo-react-ui/
Stars: ✭ 77 (-24.51%)
Mutual labels:  ui-components, components
Ui
React Styled Components with bootstrap grid system
Stars: ✭ 89 (-12.75%)
Mutual labels:  ui-components, components
Components
Example Components (Built with Tonic)
Stars: ✭ 42 (-58.82%)
Mutual labels:  ui-components, components
Webrix
Powerful building blocks for React-based web applications
Stars: ✭ 41 (-59.8%)
Mutual labels:  ui-components, components
Antv
Ant Design of Vue.js 2.0
Stars: ✭ 99 (-2.94%)
Mutual labels:  ui-components, components
Elm Ui
UI library for making web applications with Elm
Stars: ✭ 878 (+760.78%)
Mutual labels:  ui-components, components
Made With Love
🚀 An experimental project which demonstrates an Angular Package which contains Angular Elements and Schematics
Stars: ✭ 67 (-34.31%)
Mutual labels:  component, components
Xmui
基于vue2,为公司产品打(zao)造(lun)的(zi)可复用UI组件,文档:
Stars: ✭ 94 (-7.84%)
Mutual labels:  component, ui-components
React Fontawesome
A React Font Awesome component.
Stars: ✭ 662 (+549.02%)
Mutual labels:  component, components
Awesome Ui Component Library
Curated list of framework component libraries for UI styles/toolkit
Stars: ✭ 702 (+588.24%)
Mutual labels:  ui-components, components

I would encourage you to use Vecty instead.

Gu [DEPRECATED]

Go Report Card Build Status

A component rendering library for Go. It efficiently renders standard HTML both on the frontend and backend.

Install

First go get gopherjs, as we can not bundle it due to certain restrictions in the way gopherjs works.

go get github.com/gopherjs/gopherjs

Once done, then go get this package and you are ready to go.

go get github.com/gu-io/gu/...

Do check out the Concepts section to get to know how Gu works.

Example

Greeter Example Components Example

CLI

Gu provides a cli tooling which is installed when go get is done for this package, the tooling provides easier means of generating a project and components using the gu project, among other features.

It is provided to both improve the workflow of the user, as well as to provide quick setup of your project. Provided below are examples of workflows which are generally done when developing with Gu.

  • Creating a Gu project
> ➜ gu app box
- Creating package directory: "box"
- Creating package directory: "box/public"
- Creating package directory: "box/public/less"
- Add file to package directory: "box/public/less/box.less"
- Add file to package directory: "box/settings.toml"
- Add file to package directory: "box/settings_bundle.go"
- Add file to package directory: "box/public_bundle.go"
- Add file to package directory: "box/public/box_bundle.go"
- Add file to package directory: "box/box.go"

➜ cd box
➜ gu driver js
- Creating package directory: "driver/js"
- Add file to package directory: "driver/js/main.go"
- Add file to package directory: "public/index.html"

  • Add a component with initial boilerplate

➜ gu component sugarbar
- Creating package directory: "/home/ewe/devlabs/src/github.com/gu-io/box/sugarbar"
- Add file to package directory: "sugarbar/sugarbar.go"
- Add file to package directory: "sugarbar/sugarbar_bundle.go"
- Add file to package directory: "sugarbar/generate.go"

The generated package can be found here https://github.com/gu-io/box.

Goals

  • Dead Simple API.
  • Embeddable Resources.
  • Simplicity and Flexibility as core philosophies.
  • Able to render on both front and back end.
  • Quickly craft your UI without touching HTML.
  • Share code between backend and frontend.
  • Efficient and extendable asset bundling for all possible file types.

Advantages

  • Complex component libraries can be built up and shared as Golang packages.
  • Components are hierarchical allowing further reuse.
  • Event handling is simple and strongly typed.
  • Compile time safety
  • Bundles all assets (with less files natively converted)
  • Minify all css outputs.

Examples

The github repo Components contains gu style components that showcases how to build components with gu.

Concepts

Gu is fundamentally a library built to provide rendering capabilities with simple principles in building components that make up your application. There exists certain concepts which should be grasped due to the architecture and these do make it easier to reason and thinking when using the library. To fully grasp these concept, there is set below a series of short explanations about the different core pieces that make up the libray and I hope these will help in the use of this libray and it's examples.

How to Contribute

Please read the contribution guidelines Contribution Guidelines

Limitations

Gu by it's very design and architecture is "Simple". It lacks the bells and whistles of similar frameworks and libraries. It's geared towards solving your rendering needs and due to this, certain limitations exist with it.

  • Gu provides no react like flux structure.

  • Gu only focuses on providing you sets of structures able to work on the client and server for HTML/HTML5 rendering markup rendering with diffing support.

  • Gu component are simply Go types that implements Gu's set of interfaces and nothing else.

Once these limitations are not a problem, I believe using the library should help in achieving the end product and design you wish to build.

Last Note

Please feel free to make issues on suggestions, questions, changes, bugs or improvements for the library. They all will be gladly received with much fan-fare.

God bless.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].