• Stars
    star
    210
  • Rank 187,585 (Top 4 %)
  • Language
    JavaScript
  • Created almost 4 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A web UI framework based on GTK's Adwaita theme

web-toolkit

A GTK inspired React UI framework

This is a web toolkit using GTK's default theme, Adwaita. The framework is currently usable but is to be considered in alpha state, as a few parts are still raw and the API is subject to change until the 1.0.0 release.

Installation • Demo • 📖 Docs • Help Wanted • License

Why

There are quite a few alternatives, such as bootstrap, material-ui, semantic-ui or ant-design. I've however found that most of them fail in one way or another to satisfy what I'm looking for in a UI framework. Most important than anything, I want something that looks stunning by default, while being functional.

Showcase

demo-1 demo-2 demo-3 demo-4

Installation

npm install web-toolkit
import React from 'react'
import {
  Box,
  Button,
  Input,
  Paned,
} from 'web-toolkit'
import 'web-toolkit/lib/index.css'

function App() {
  return (
    <div className='App background Box vertical compact'>
      <Paned defaultSize={200} fill border='handle'>
        <Box vertical>
          I'm a sidebar
        </Box>
        <Box fill vertical>
          <Input.Group>
            <Input />
            <Button>Submit</Button>
          </Input.Group>
        </Box>
      </Paned>
    </div>
  )
}

export default App

At the moment, the source code for the live demo is the best place to understand how to use the framework.

Some documentation is also available but is a work in progress and not complete yet.

Help Wanted!

I need help to make this into a production-ready library. Come help me! Checkout the open issues or ask here if you're unsure how you can help.

Roadmap

All of the required components for a first usable version have been implemented. Some more complex components are being implemented, and the documention still needs to be completed. While the components are usable, most of them are missing accessibility ARIA attributes and may need fine-tuning for keyboard usage.

Contributions

To start coding, clone the project, go to ./packages/web-toolkit, run pnpm install, then run pnpm start to spawn the dev server. You need to have sassc installed.

IMPORTANT: This project uses pnpm for development.

License

MIT

More Repositories

1

barbar.nvim

The neovim tabline plugin.
Lua
2,297
star
2

node-gtk

GTK+ bindings for NodeJS (via GObject introspection)
C++
494
star
3

kui.nvim

UI neovim framework for kitty
C
185
star
4

todoist.nvim

A todoist extension for neovim
JavaScript
164
star
5

kirby.nvim

Fuzzy picker for neovim - using kitty graphics protocol
Lua
144
star
6

fzy-lua-native

Luajit FFI bindings to FZY
Lua
117
star
7

doom-one.vim

A dark colorschme for vim, ported from doom-emacs' doom-one theme.
Vim Script
104
star
8

color-bits

High-performance javascript color library
TypeScript
89
star
9

winteract.vim

Interactive window mode
Vim Script
69
star
10

react-fast-memo

A faster React.memo()
JavaScript
53
star
11

github-light.vim

Github colorscheme for vim
Vim Script
36
star
12

nvim

local rc files - feel free to explore
Vim Script
35
star
13

2d-geometry

Performant & ergonomic 2D geometry in Typescript
TypeScript
35
star
14

termrk

Terminal for atom, using pty.js & term.js
CoffeeScript
33
star
15

xedel

Keyboard-centric modal code editor, built with nodejs and GTK
JavaScript
26
star
16

searchReplace.vim

Search & Replace, simply & efficiently [neovim only]
Vim Script
25
star
17

lister

An experimental Gtk-based fuzzy-finder (with support for neovim)
JavaScript
22
star
18

node-todoist

nodejs implementation of todoist sync API
TypeScript
21
star
19

replace.vim

Replace operator for Vim
Vim Script
20
star
20

react-drop-zone

Simple, elegant & efficient drop-zone component
JavaScript
17
star
21

equal.operator

A text-object for LHS/RHS of assignment.
Vim Script
16
star
22

node-gtk-template

A node-gtk application template
JavaScript
11
star
23

vim-exeline

Execute a command on save
Vim Script
11
star
24

kui-demo.nvim

kui.nvim demo
Lua
9
star
25

pp.vim

pretty-printer with real colors.
Vim Script
8
star
26

pencil

High performance & low bundle size 2D canvas drawing library
TypeScript
8
star
27

solid-base-components

Barely styled components for solidjs.
TypeScript
7
star
28

babel-plugin-fast-jsx

Inline react jsx calls
JavaScript
7
star
29

blog-romgrk

MDX
6
star
30

tree-sitter.vim

JavaScript
5
star
31

node-loompy

Create loompy files with Nodejs
JavaScript
5
star
32

yama-neovim

JavaScript
4
star
33

lib.kom

Vim short#() libraries for scripting - hi#(), win#(), buf#(), color#()
Vim Script
4
star
34

pxm

Long-running background commands runner
TypeScript
3
star
35

kyntell.vim

dark colorscheme
Vim Script
3
star
36

tree-sitter-grain

C
3
star
37

wasm-js

A webassembly javascript interpreter
JavaScript
3
star
38

aoe4-villager-enforcer

Age of Empires IV training tool
Rust
3
star
39

bioinformatics-parser

Simple nodejs fasta/fastq parser
JavaScript
2
star
40

keykit

npm module for keyevents etc.
CoffeeScript
2
star
41

git-config

JavaScript
1
star
42

node-fzy

Native fzy binding for nodejs
C
1
star
43

pg_fzy

The fzy function for PostgreSQL
C
1
star
44

ol-resources

Functions & examples for OL related stuff
JavaScript
1
star
45

physic_engine

basic java 2D physic simulation engine
Java
1
star
46

columnMove.vim

Move along the vertical axis
Vim Script
1
star
47

pepiniere

Simple PWA that tracks time spent on tasks
JavaScript
1
star
48

zsh

Shell
1
star
49

sqlite-objects

Usable wrappers around SQLite
JavaScript
1
star
50

coffee-nvim

coffeescript host & lib for scripting neovim
CoffeeScript
1
star
51

cv-generator

TypeScript
1
star
52

js-benchmark

JavaScript
1
star
53

edcc

JavaScript
1
star
54

dotfiles

Shell
1
star