Giter Club home page Giter Club logo

fanaro_sabaki_theme_collection's Introduction

Fanaro's Sabaki Theme Collection

I've written a companion article on my website about the motivation behind this repo. If also features a TLDR version of this documentation.

This collection is still under construction. And, at any rate, even if you think some of the themes are bad, they still serve the purpose of illustrating bad practices — like too much constrast.

Some more variants and themes for having a more lively Go experience.

Unexpectedly, having a dark goban is actually refreshing. Even though we don't see the lines as easily, it becomes clear that they are not that necessary, as most of the time we place stones relative to one another. Not having to pay that much attention to lines is quite liberating and leaves a cleaner design. However, it is true that neon/oversaturated colors can tire the eyes much more easily; in that case, choose a dark theme with less saturated colors.

I haven't yet been able to incorporate Sabaki background images into the themes themselves. So far, I've been using the backgrounds folder to manage that.

Some of my inspirations are:

References

  • The documentation on how to create and package a theme can be found here.
  • Sabaki's CSS styling can be found here.
  • A good example of a theme is the fantastic Photorealistic theme, by Yichuan Shen himself.
  • Some advanced CSS for Sabaki can be found here. In short:
    /* Stones texture */
    .shudan-stone-image.shudan-sign_1 {background-image: url('0.png');}
    .shudan-stone-image.shudan-sign_-1 {background-image: url('1.png');}
    .shudan-stone-image.shudan-sign_-1.shudan-random_1 {background-image: url('2.png');}
    .shudan-stone-image.shudan-sign_-1.shudan-random_2 {background-image: url('3.png');}
    .shudan-stone-image.shudan-sign_-1.shudan-random_3 {background-image: url('4.png');}
    .shudan-stone-image.shudan-sign_-1.shudan-random_4 {background-image: url('5.png');}
    
    /* 100% stones size */
    .shudan-vertex .shudan-stone {top: 0; left: 0; width: 100%; height: 100%;}
    
    /* Black lines and disable borders */
    .shudan-goban {--shudan-board-border-width: 0; --shudan-board-foreground-color: #000;}
    .shudan-goban:not(.shudan-coordinates) {padding: 0;}
    
    /* Board texture */
    .shudan-goban-image {background-image: url('board1.png');}
    
    /* Disable stones shadow */
    .shudan-vertex:not(.shudan-sign_0) .shudan-shadow {background: none; box-shadow: none;}
    
    /* Disable bar */
    #bar {visibility: hidden;}
    main {bottom: 0; background: #f0f0f0 url('background1.png') left top;}
    
    /* Disable goban shadow */
    #goban {box-shadow: none;}
    
    /* Disable last move marker */
    .shudan-vertex.shudan-marker_point.shudan-sign_1 .shudan-marker {background: none;}
    .shudan-vertex.shudan-marker_point.shudan-sign_-1 .shudan-marker {background: none;}
    
    /* Heat map */
    .shudan-vertex .shudan-heat {transition: opacity 0s, box-shadow 0s;}
    .shudan-vertex.shudan-heat_9 .shudan-heat {background: #009900; box-shadow: 0 0 0 .5em #009900; opacity: 1;}
    .shudan-vertex.shudan-heat_8 .shudan-heat {background: none; box-shadow: none; opacity: 1;}
    .shudan-vertex.shudan-heat_7 .shudan-heat {background: none; box-shadow: none; opacity: 1;}
    .shudan-vertex.shudan-heat_6 .shudan-heat {background: none; box-shadow: none; opacity: 1;}
    .shudan-vertex.shudan-heat_5 .shudan-heat {background: none; box-shadow: none; opacity: 1;}
    .shudan-vertex.shudan-heat_4 .shudan-heat {background: none; box-shadow: none; opacity: 1;}
    .shudan-vertex.shudan-heat_3 .shudan-heat {background: none; box-shadow: none; opacity: 1;}
    .shudan-vertex.shudan-heat_2 .shudan-heat {background: none; box-shadow: none; opacity: 1;}
    .shudan-vertex.shudan-heat_1 .shudan-heat {background: none; box-shadow: none; opacity: 1;}
    .shudan-vertex .shudan-heatlabel {color: white; font-size: .38em; line-height: 1; text-shadow: none; opacity: 1;}

Debugging Tips

  • Sabaki seems to cache the .asar file if it has the same name as the previously loaded one. So, if you make a modification to an element and repackage the whole theme with the same name, the modification might not appear on Sabaki. To avoid this:
    1. Uninstall your current theme.
    2. Close Sabaki.
    3. Reopen Sabaki and reinstall your theme.

Standard Organization

The organization of my themes reflects the one found in the Photorealistic theme:

  • projects/: where I store the files intended to be manipulated with GUI image editors, like Adobe Illustrator, GIMP, Inkscape, etc.
  • theme/: where the theme is.
  • theme/img/: where you will find the .png files with the final form of the assets.
  • theme/style.css: the CSS styling of the theme.
  • theme/package.json: the metadata for the theme.
  • <theme>.asar: the binary with the packaged theme.

Themes

The screenshots below were taken from the game between Shibano Toramaru 9p and Hane Naoki 9p, on 2021-04-02, on move 80 — the file can be found inside the assets folder.

Theme Example
Bluish Purple bluish-purple
Bluish Purple Squared bluish-purple-squared
Bookish bookish
Bookish No Border bookish-no-border
Subdued Bookish subdued-bookish
Reverse Bookish reverse-bookish
Reverse Bookish Light Grid reverse-bookish-light-grid
Fire & Ice fire-and-ice
Squared squared

fanaro_sabaki_theme_collection's People

Contributors

psygo avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

fanaro_sabaki_theme_collection's Issues

Night Bookish Theme

The Tsumego Pro app on Android has a nightly theme for its book theme, the only difference is that it has a grey background apparently.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.