npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

svelte-chessground

v2.0.3

Published

Svelte chessboard component. A Svelte wrapper for the full-featured Chessground chess UI.

Downloads

142

Readme

Svelte Chessground

A Svelte chessboard component. Svelte-chessground is a wrapper around the full-featured Chessground, the open source chess UI developed for Lichess.

Chessground screenshots in 2D and 3D

Take a look at the live demos.

Note: Chessground does not contain chess logic. If you want a chessboard with legal moves and pawn promotion without additional code, you're looking for svelte-chess.

Usage

Install:

npm install svelte-chessground

Display a chessboard where any pieces can be moved:

<script>
    import {Chessground} from 'svelte-chessground';
</script>    

<Chessground />

The component expands to maximum width. Chessground is extensively configurable through props. Parameters and descriptions can be found in the original Chessground's config.ts. For instance, to display a specific position and flip the board:

<script>
    import {Chessground} from 'svelte-chessground';
    let fen = '7k/5K2/7P/6pP/8/8/8/8 w - - 0 1'; // Forsyth-Edwards Notation
    let orientation = 'black';
</script>    

<Chessground {fen} {orientation}/>

These props enjoy the usual svelte reactivity magic: changing orientation or fen at any time will change the board. You can find more examples in the svelte-chessground-examples, including:

Chessground contains no chess logic, and as such can be used for chess variations. Examples that require chess logic import chess.js.

Styling

Chessground can be completely restyled through CSS. The component imports default stylesheets. To apply your own, you have two options:

  1. Override specific CSS commands with a scoped :global and !important:

     <div class="override_background">
         <Chessground />
     </div>
     <style>
         div.override_background :global(.cg-wrap cg-board) {
             background-image:url("/my-board.jpg") !important; /* replace chessboard image */
         }
     </style>
  2. Apply your own full chessground stylesheet instead of the defaults by setting the class prop and importing your own stylesheet. By changing the class name from the default, none of the default stylesheets will apply, not even the piece SVGs. Additionally, you can use the provided ChessgroundUnstyled component, which is completely unstyled.

     <script>
         import {ChessgroundUnstyled} from 'svelte-chessground';
         import '$lib/my-chessboard.css';
     </script>
     <ChessgroundUnstyled class="my-chessboard" />

You can find working code for both approaches in the custom styles examples.

Building the package

To build the package yourself:

$ git clone https://github.com/gtim/svelte-chessground.git
$ cd svelte-chessground
$ npm run build