https://github.com/dechristopher/octadground
Mobile / Web octad UI for lioctad.org
https://github.com/dechristopher/octadground
Last synced: about 1 year ago
JSON representation
Mobile / Web octad UI for lioctad.org
- Host: GitHub
- URL: https://github.com/dechristopher/octadground
- Owner: dechristopher
- License: gpl-3.0
- Created: 2021-02-27T12:26:04.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2025-03-13T07:50:25.000Z (over 1 year ago)
- Last Synced: 2025-03-28T19:44:55.392Z (about 1 year ago)
- Language: TypeScript
- Size: 10.4 MB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Octadground
_Octadground_ is a free/libre open source octad UI developed for
[lioctad.org](https://lioctad.org).
It targets modern browsers and is based off of the open source [Chessground](https://github.com/ornicar/chessground)
library.

## License
Octadground is distributed under the **GPL-3.0 license** (or any later version,
at your option).
When you use Octadground for your website, your combined work may be
distributed only under the GPL. **You must release your source code** to the
users of your website.
Please read more about GPL for JavaScript on [greendrake.info/#nfy0](http://greendrake.info/#nfy0).
## Features
Octadground is designed to fulfill all lioctad.org web and mobile apps needs, so it is pretty featureful.
- Well typed with TypeScript
- Fast. Uses a custom DOM diff algorithm to reduce DOM writes to the absolute minimum.
- Small footprint: 10K gzipped (31K unzipped). No dependencies.
- SVG drawing of circles, arrows, and custom user shapes on the board
- Arrows snap to valid moves. Freehand arrows can be drawn by dragging the mouse off the board and back while drawing an arrow.
- Entirely configurable and reconfigurable at any time
- Styling with CSS only: board and pieces can be changed by simply switching a class
- Fluid layout: board can be resized at any time
- Support for 3D pieces and boards
- Full mobile support (touchstart, touchmove, touchend)
- Move pieces by click
- Move pieces by drag & drop
- Minimum distance before drag
- Centralisation of the piece under the cursor
- Piece ghost element
- Drop off revert or trash
- Premove by click or drag
- Animation of pieces: moving and fading away
- Display last move, check, move destinations, and premove destinations (hover effects possible)
- Import and export positions in OFEN notation
- User callbacks
## Installation
```sh
npm install --save octadground
```
### Usage
```js
const Octadground = require('octadground').Octadground;
const config = {};
const ground = Octadground(document.body, config);
```
## Documentation
- [Config types](https://github.com/dechristopher/octadground/tree/master/src/config.ts)
- [Default config values](https://github.com/dechristopher/octadground/tree/master/src/state.ts)
- [API type signatures](https://github.com/dechristopher/octadground/tree/master/src/api.ts)
## Development
Install build dependencies:
```sh
yarn install
```
To build the node module:
```sh
yarn run compile -- --watch
```
To build the standalone:
```sh
yarn run dist -- --watch
```