• Stars
    star
    203
  • Rank 188,836 (Top 4 %)
  • Language
    JavaScript
  • Created over 3 years ago
  • Updated about 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,152
star
2

node-gtk

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

kui.nvim

UI neovim framework for kitty
C
180
star
4

todoist.nvim

A todoist extension for neovim
JavaScript
160
star
5

kirby.nvim

Fuzzy picker for neovim - using kitty graphics protocol
Lua
140
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

winteract.vim

Interactive window mode
Vim Script
69
star
9

react-fast-memo

A faster React.memo()
JavaScript
50
star
10

github-light.vim

Github colorscheme for vim
Vim Script
36
star
11

nvim

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

termrk

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

xedel

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

2d-geometry

Performant & ergonomic 2D geometry in Typescript
TypeScript
26
star
15

searchReplace.vim

Search & Replace, simply & efficiently [neovim only]
Vim Script
26
star
16

lister

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

node-todoist

nodejs implementation of todoist sync API
TypeScript
21
star
18

replace.vim

Replace operator for Vim
Vim Script
20
star
19

equal.operator

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

react-drop-zone

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

vim-exeline

Execute a command on save
Vim Script
11
star
22

node-gtk-template

A node-gtk application template
JavaScript
10
star
23

pp.vim

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

kui-demo.nvim

kui.nvim demo
Lua
8
star
25

babel-plugin-fast-jsx

Inline react jsx calls
JavaScript
8
star
26

solid-base-components

Barely styled components for solidjs.
TypeScript
7
star
27

tree-sitter.vim

JavaScript
5
star
28

node-loompy

Create loompy files with Nodejs
JavaScript
5
star
29

blog-romgrk

MDX
5
star
30

yama-neovim

JavaScript
4
star
31

pencil

High performance & low bundle size 2D canvas drawing library
TypeScript
4
star
32

tree-sitter-grain

C
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

wasm-js

A webassembly javascript interpreter
JavaScript
3
star
36

bioinformatics-parser

Simple nodejs fasta/fastq parser
JavaScript
2
star
37

kyntell.vim

dark colorscheme
Vim Script
2
star
38

keykit

npm module for keyevents etc.
CoffeeScript
2
star
39

git-config

JavaScript
1
star
40

node-fzy

Native fzy binding for nodejs
C
1
star
41

pg_fzy

The fzy function for PostgreSQL
C
1
star
42

ol-resources

Functions & examples for OL related stuff
JavaScript
1
star
43

physic_engine

basic java 2D physic simulation engine
Java
1
star
44

columnMove.vim

Move along the vertical axis
Vim Script
1
star
45

pepiniere

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

zsh

Shell
1
star
47

coffee-nvim

coffeescript host & lib for scripting neovim
CoffeeScript
1
star
48

sqlite-objects

Usable wrappers around SQLite
JavaScript
1
star
49

cv-generator

TypeScript
1
star
50

edcc

JavaScript
1
star
51

dotfiles

Shell
1
star