SVG rendering

The chess.svg module renders SVG Tiny images (mostly for IPython/Jupyter Notebook integration). The piece images by Colin M.L. Burnett are triple licensed under the GFDL, BSD and GPL.

chess.svg.piece(piece: chess.Piece, size: Optional[int] = None) → str[source]

Renders the given chess.Piece as an SVG image.

>>> import chess
>>> import chess.svg
>>>
>>> chess.svg.piece(chess.Piece.from_symbol("R"))  
R
chess.svg.board(board: Optional[chess.BaseBoard] = None, *, squares: Optional[chess.IntoSquareSet] = None, flipped: bool = False, coordinates: bool = True, lastmove: Optional[chess.Move] = None, check: Optional[chess.Square] = None, arrows: Iterable[Union[chess.svg.Arrow, Tuple[chess.Square, chess.Square]]] = [], size: Optional[int] = None, colors: Dict[str, str] = {}, style: Optional[str] = None) → str[source]

Renders a board with pieces and/or selected squares as an SVG image.

Parameters
  • board – A chess.BaseBoard for a chessboard with pieces or None (the default) for a chessboard without pieces.

  • squares – A chess.SquareSet with selected squares.

  • flipped – Pass True to flip the board.

  • coordinates – Pass False to disable the coordinate margin.

  • lastmove – A chess.Move to be highlighted.

  • check – A square to be marked as check.

  • arrows – A list of Arrow objects like [chess.svg.Arrow(chess.E2, chess.E4)] or a list of tuples like [(chess.E2, chess.E4)]. An arrow from a square pointing to the same square is drawn as a circle, like [(chess.E2, chess.E2)].

  • size – The size of the image in pixels (e.g., 400 for a 400 by 400 board) or None (the default) for no size limit.

  • colors – A dictionary to override default colors. Possible keys are square light, square dark, square light lastmove, square dark lastmove, margin, coord, arrow green, arrow blue, arrow red, and arrow yellow. Values should look like #ffce9e (opaque) or #15781B80 (transparent).

  • style – A CSS stylesheet to include in the SVG image.

>>> import chess
>>> import chess.svg
>>>
>>> board = chess.Board("8/8/8/8/4N3/8/8/8 w - - 0 1")
>>> squares = board.attacks(chess.E4)
>>> chess.svg.board(board=board, squares=squares)  
8/8/8/8/4N3/8/8/8
class chess.svg.Arrow(tail: chess.Square, head: chess.Square, *, color: str = 'green')[source]

Details of an arrow to be drawn.

tail: chess.Square

Start square of the arrow.

head: chess.Square

End square of the arrow.

color = 'green'

Arrow color.