###### tags: `Guide To Contibuting` # TGUI ## Introduction tgui is a robust user interface framework of /tg/station. tgui is very different from most UIs you will encounter in BYOND programming. It is heavily reliant on Javascript and web technologies as opposed to DM. If you are familiar with NanoUI (a library which can be found on almost every other SS13 codebase), tgui should be fairly easy to pick up. ### Practical Tutorial If you are completely new to frontend and prefer to **learn by doing**, start with our [practical tutorial](https://github.com/Citadel-Station-13/Citadel-Station-13/tgui/docs/tutorial-and-examples.md). ### Guides This project uses **Inferno** - a very fast UI rendering engine with a similar API to React. Take your time to read these guides: - [React guide](https://reactjs.org/docs/hello-world.html) - [Inferno documentation](https://infernojs.org/docs/guides/components) - highlights differences with React. If you were already familiar with an older, Ractive-based tgui, and want to translate concepts between old and new tgui, read this [interface conversion guide](docs/converting-old-tgui-interfaces.md). ## Pre-requisites You will need these programs to start developing in tgui: - [Node v12.13+](https://nodejs.org/en/download/) - [Yarn v1.19+](https://yarnpkg.com/en/docs/install) - [MSys2](https://www.msys2.org/) (optional) > MSys2 closely replicates a unix-like environment which is necessary for > the `bin/tgui` script to run. It comes with a robust "mintty" terminal > emulator which is better than any standard Windows shell, it supports > "git" out of the box (almost like Git for Windows, but better), has > a "pacman" package manager, and you can install a text editor like "vim" > for a full boomer experience.