Skip to content

Styling Framework

Starplot has a styling framework that lets you fully customize the appearance of your plots. The framework consists of a bunch of Pydantic models that represent different things you can style (e.g. markers, lines, labels, etc). Since they're based on Pydantic models, this means you can define new styles through Python code, a JSON, or even a YAML file.

Basic Usage

When you create a plot, you can optionally pass in an instance of a PlotStyle. This instance represents ALL the styling properties to use for the plot.

Using styles is usually a 3-step process:

  1. Create a PlotStyle instance

  2. Extend or override properties

  3. Apply the style to the plot

Example:

from starplot import MapPlot
from starplot.styles import PlotStyle, extensions

# Step 1: create a style
style = PlotStyle()

# Step 2: extend the style with a few built-in extensions
style = style.extend(
    extensions.MAP,
    extensions.BLUE_DARK
)

# Step 3: apply the style in a new map plot
mp = MapPlot(
    ra_min=3.6,
    ra_max=7.8,
    dec_min=-16,
    dec_max=23.6,
    style=style,
)

The sections below go into more detail around these steps.

Creating a Style

Creating a style is simple:

from starplot.styles import PlotStyle

style = PlotStyle()

After creating the style, you can modify properties of the style directly:

style.star.marker.color = "red"
style.star.label.visible = False

This works well when you only want to change a couple properties, but for more complex styling it's easier to use PlotStyle's extend method which is explained in the next section.

Extending a Style

Once you have an instance of a PlotStyle, then you can customize it with the PlotStyle's extend method. This method takes in one or more args of dictionaries and applies them to the original style in sequential order. In other words, when extending a PlotStyle, you only have to define style properties that you want to override from the current style — similar to how Cascading Style Sheets (CSS) work.

Starplot has a few built-in extensions for applying color schemes, hiding labels, etc. But, you can also easily create your own extensions.

Basic Example

Here's a simple example of extending a style to use a different font for Bayer labels of stars:

from starplot import PlotStyle

style = PlotStyle().extend(
    {
        "bayer_labels": {
            "font_name": "GFS Didot",
            "font_size": 10
        }
    }
)
Alternatively, you can do this:
style = PlotStyle()
style.bayer_labels.font_name = "GFS Didot"
style.bayer_labels.font_size = 10

More Complex Example

The method above works well for overriding a few style properties, but if you want to create a more complex style then it's probably easier to define it in a YAML file and use PlotStyle's load_from_file static method.

Example:

# style.yml

# hide the constellation labels/lines:
constellation:
  label:
    visible: false
  line:
    visible: false

# make the Milky Way gray
milky_way:
  alpha: 0.36
  color: '#888'

# change the color of star labels to blue and
# and change their symbol from dots to stars
star:
  label:
    font_color: '#0e69b8'
  marker:
    symbol: *

# make nebulas green and their markers diamonds
dso_nebula:
  marker:
    color: green
    symbol: D

Then, to use your new style:

from starplot import PlotStyle, MapPlot

style = PlotStyle.load_from_file("style.yml")

p = MapPlot(
    ra_min=3.6,
    ra_max=7.8,
    dec_min=-16,
    dec_max=23.6,
    style=style,
)

Built-in Style Extensions

Starplot has a bunch of built-in style extensions (all imported from starplot.styles.extensions):

  • Color Schemes
    • GRAYSCALE - Optimized for printing in grayscale (details)
    • GRAYSCALE_DARK - Like GRAYSCALE, but inverted (white stars, black background) (details)
    • BLUE_LIGHT - Light and bright colors (details)
    • BLUE_MEDIUM - Medium brightness bluish gray colors (details)
    • BLUE_DARK - Dark bluish gray colors (details)
  • Plot types
    • OPTIC - Basic styling tailored for optic plots (details)
    • MAP - Basic styling tailored for map plots (details)
    • ZENITH - Basic styling tailored for zenith plots (details)
  • Others
    • HIDE_LABELS - Hides all the labels (details)
    • MINIMAL - Hides everything except stars and DSOs (details)

Code Reference

starplot.PlotStyle

Defines the styling for a plot

background_color class-attribute instance-attribute

background_color: ColorStr = ColorStr('#fff')

bayer_labels class-attribute instance-attribute

bayer_labels: LabelStyle = LabelStyle(
    font_size=8, font_weight=LIGHT, zorder=1
)

Styling for Bayer labels of stars (see LabelStyle) - only applies to map plots

border_bg_color class-attribute instance-attribute

border_bg_color: ColorStr = ColorStr('#fff')

border_font_color class-attribute instance-attribute

border_font_color: ColorStr = ColorStr('#000')

border_font_size class-attribute instance-attribute

border_font_size: int = 18

border_font_weight class-attribute instance-attribute

border_font_weight: FontWeightEnum = BOLD

border_line_color class-attribute instance-attribute

border_line_color: ColorStr = ColorStr('#000')

celestial_equator class-attribute instance-attribute

celestial_equator: PathStyle = PathStyle(
    line=LineStyle(
        color="#999",
        width=2,
        style=DASHED_DOTS,
        alpha=0.65,
        zorder=-1024,
    ),
    label=LabelStyle(
        font_size=6,
        font_color="#999",
        font_weight=LIGHT,
        font_alpha=0.65,
    ),
)

Styling for the Celestial Equator

constellation class-attribute instance-attribute

constellation: PathStyle = PathStyle(
    line=LineStyle(color="#c8c8c8"),
    label=LabelStyle(font_size=7, font_weight=LIGHT),
)

Styling for constellations

constellation_borders class-attribute instance-attribute

constellation_borders: LineStyle = LineStyle(
    color="#000",
    width=2,
    style=DASHED,
    alpha=0.2,
    zorder=-100,
)

Styling for constellation borders (only applies to map plots)

dso class-attribute instance-attribute

dso: ObjectStyle = ObjectStyle(
    marker=MarkerStyle(symbol=TRIANGLE, size=4, fill=FULL),
    label=LabelStyle(font_size=8, font_weight=LIGHT),
)

Styling for deep sky objects (DSOs) on zenith plots

dso_association_stars class-attribute instance-attribute

dso_association_stars: ObjectStyle = ObjectStyle(
    marker=MarkerStyle(symbol=CIRCLE, size=6, fill=FULL),
    label=LabelStyle(
        font_size=8, font_weight=LIGHT, visible=False
    ),
)

Styling for associations of stars

dso_dark_nebula class-attribute instance-attribute

dso_dark_nebula: ObjectStyle = ObjectStyle(
    marker=MarkerStyle(
        symbol=SQUARE,
        size=6,
        fill=TOP,
        visible=False,
        color="#000",
    ),
    label=LabelStyle(font_size=8, visible=False),
)

Styling for dark nebulas (hidden by default)

dso_double_star class-attribute instance-attribute

dso_double_star: ObjectStyle = ObjectStyle(
    marker=MarkerStyle(symbol=CIRCLE, size=6, fill=TOP),
    label=LabelStyle(font_size=8, visible=False),
)

Styling for double stars

dso_duplicate class-attribute instance-attribute

dso_duplicate: ObjectStyle = ObjectStyle(
    marker=MarkerStyle(
        symbol=SQUARE,
        size=6,
        fill=TOP,
        visible=False,
        color="#000",
    ),
    label=LabelStyle(font_size=8, visible=False),
)

Styling for 'duplicate record' (as designated by OpenNGC) types of deep sky objects (hidden by default)

dso_galaxy class-attribute instance-attribute

dso_galaxy: ObjectStyle = ObjectStyle(
    marker=MarkerStyle(symbol=CIRCLE, size=6, fill=FULL),
    label=LabelStyle(font_size=8, visible=False),
)

Styling for galaxies

dso_globular_cluster class-attribute instance-attribute

dso_globular_cluster: ObjectStyle = ObjectStyle(
    marker=MarkerStyle(
        symbol=CIRCLE,
        size=6,
        fill=FULL,
        color="#555",
        alpha=0.8,
    ),
    label=LabelStyle(font_size=8, visible=False),
)

Styling for globular star clusters

dso_hii_ionized_region class-attribute instance-attribute

dso_hii_ionized_region: ObjectStyle = ObjectStyle(
    marker=MarkerStyle(
        symbol=SQUARE,
        size=6,
        fill=TOP,
        visible=False,
        color="#000",
    ),
    label=LabelStyle(font_size=8, visible=False),
)

Styling for HII Ionized regions (hidden by default)

dso_nebula class-attribute instance-attribute

dso_nebula: ObjectStyle = ObjectStyle(
    marker=MarkerStyle(symbol=SQUARE, size=6, fill=FULL),
    label=LabelStyle(font_size=8, visible=False),
)

Styling for nebulas

dso_nonexistant class-attribute instance-attribute

dso_nonexistant: ObjectStyle = ObjectStyle(
    marker=MarkerStyle(
        symbol=SQUARE,
        size=6,
        fill=TOP,
        visible=False,
        color="#000",
    ),
    label=LabelStyle(font_size=8, visible=False),
)

Styling for 'nonexistent' (as designated by OpenNGC) deep sky objects (hidden by default)

dso_nova_star class-attribute instance-attribute

dso_nova_star: ObjectStyle = ObjectStyle(
    marker=MarkerStyle(
        symbol=SQUARE,
        size=6,
        fill=TOP,
        visible=False,
        color="#000",
    ),
    label=LabelStyle(font_size=8, visible=False),
)

Styling for nova stars (hidden by default)

dso_open_cluster class-attribute instance-attribute

dso_open_cluster: ObjectStyle = ObjectStyle(
    marker=MarkerStyle(symbol=CIRCLE, size=6, fill=FULL),
    label=LabelStyle(
        font_size=8, font_weight=LIGHT, visible=False
    ),
)

Styling for open star clusters

dso_supernova_remnant class-attribute instance-attribute

dso_supernova_remnant: ObjectStyle = ObjectStyle(
    marker=MarkerStyle(
        symbol=SQUARE,
        size=6,
        fill=TOP,
        visible=False,
        color="#000",
    ),
    label=LabelStyle(font_size=8, visible=False),
)

Styling for supernova remnants (hidden by default)

dso_unknown class-attribute instance-attribute

dso_unknown: ObjectStyle = ObjectStyle(
    marker=MarkerStyle(
        symbol=SQUARE,
        size=6,
        fill=TOP,
        visible=False,
        color="#000",
    ),
    label=LabelStyle(font_size=8, visible=False),
)

Styling for 'unknown' (as designated by OpenNGC) types of deep sky objects (hidden by default)

ecliptic class-attribute instance-attribute

ecliptic: PathStyle = PathStyle(
    line=LineStyle(
        color="#777",
        width=1,
        style=DOTTED,
        dash_capstyle=ROUND,
        alpha=0.75,
        zorder=-20,
    ),
    label=LabelStyle(
        font_size=4,
        font_color="#777",
        font_weight=LIGHT,
        font_alpha=1,
    ),
)

Styling for the Ecliptic

gridlines class-attribute instance-attribute

gridlines: PathStyle = PathStyle(
    line=LineStyle(
        color="#888",
        width=1,
        style=SOLID,
        alpha=0.8,
        zorder=-10000,
    ),
    label=LabelStyle(
        font_size=11,
        font_color="#000",
        font_weight=LIGHT,
        font_alpha=1,
    ),
)

Styling for gridlines (including Right Ascension / Declination labels). Only applies to map plots.

info_text class-attribute instance-attribute

info_text: LabelStyle = LabelStyle(
    font_size=10,
    zorder=1,
    family="monospace",
    line_spacing=2,
)

Styling for info text (only applies to zenith and optic plots)

legend class-attribute instance-attribute

Styling for legend - (see LegendStyle)

milky_way class-attribute instance-attribute

milky_way: PolygonStyle = PolygonStyle(
    color="#d9d9d9", alpha=0.36, edge_width=0, zorder=-10000
)

Styling for the Milky Way (only applies to map plots)

moon class-attribute instance-attribute

moon: ObjectStyle = ObjectStyle(
    marker=MarkerStyle(
        symbol=CIRCLE,
        size=14,
        fill=FULL,
        color="#c8c8c8",
        alpha=0.5,
        visible=False,
    ),
    label=LabelStyle(
        font_size=8, font_weight=BOLD, visible=False
    ),
)

Styling for the moon

planets class-attribute instance-attribute

planets: ObjectStyle = ObjectStyle(
    marker=MarkerStyle(symbol=CIRCLE, size=4, fill=LEFT),
    label=LabelStyle(font_size=8, font_weight=BOLD),
)

Styling for planets

star class-attribute instance-attribute

star: ObjectStyle = ObjectStyle(
    marker=MarkerStyle(
        fill=FULL, zorder=1, size=20, edge_color=None
    ),
    label=LabelStyle(
        font_size=9, font_weight=BOLD, zorder=1
    ),
)

Styling for stars (see ObjectStyle)

text_border_width class-attribute instance-attribute

text_border_width: int = 2

text_offset_x class-attribute instance-attribute

text_offset_x: float = 0.005

text_offset_y class-attribute instance-attribute

text_offset_y: float = 0.005

tick_marks class-attribute instance-attribute

tick_marks: LabelStyle = LabelStyle(
    font_size=5,
    font_color="#000",
    font_alpha=1,
    zorder=-100,
)

Styling for tick marks on map plots.

dump_to_file

dump_to_file(filename: str) -> None

Save the style to a YAML file. ALL style properties will be written to the file.

Parameters:

  • filename (str) –

    Filename of style file

extend

extend(*args, **kwargs) -> PlotStyle

Adds one or more dicts of style overrides to the style and returns a new instance with those overrides.

Styles are added in sequential order, so if the first style arg has a property that is also in the last style arg, then the resulting style will have the value from the last style (similar to how CSS works).

Example Usage

Create an extension of the default style with map optimizations, light blue color scheme, and hide the constellation borders and Milky Way:

new_style = PlotStyle().extend(
    styles.extensions.MAP,
    styles.extensions.BLUE_LIGHT,
    {
        "constellation_borders": {"visible": False},
        "milky_way": {"visible": False},
    },
)

Parameters:

  • args

    One or more dicts of styles to add

Returns:

  • PlotStyle ( PlotStyle ) –

    A new instance of a PlotStyle

load_from_file staticmethod

load_from_file(filename: str) -> PlotStyle

Load a style from a YAML file. The returned style is an extension of the default PlotStyle (see PlotStyle.extend), so you only need to define properties you want to override from the default.

Parameters:

  • filename (str) –

    Filename of style file

Returns:

  • PlotStyle ( PlotStyle ) –

    A new instance of a PlotStyle


starplot.styles.MarkerStyle

Styling properties for markers.

Example Usage

Creates a style for a red triangle marker:

m = MarkerStyle(
    color="#b13737",
    symbol=MarkerStyleSymbolEnum.TRIANGLE,
    size=8,
    fill=FillStyleEnum.FULL,
    alpha=1.0,
    visible=True,
    zorder=100,
)

alpha: float = 1.0 class-attribute instance-attribute

Alpha value (controls transparency)

color: Optional[ColorStr] = ColorStr('#000') class-attribute instance-attribute

Fill color of marker. Can be a hex, rgb, hsl, or word string.

edge_color: Optional[ColorStr] = ColorStr('#000') class-attribute instance-attribute

Edge color of marker. Can be a hex, rgb, hsl, or word string.

fill: FillStyleEnum = FillStyleEnum.NONE class-attribute instance-attribute

Fill style of marker

size: int = 4 class-attribute instance-attribute

Relative size of marker

symbol: MarkerSymbolEnum = MarkerSymbolEnum.POINT class-attribute instance-attribute

Symbol for marker

visible: bool = True class-attribute instance-attribute

If true, the marker will be plotted

zorder: int = -1 class-attribute instance-attribute

Zorder of marker

starplot.styles.LineStyle

Styling properties for lines.

Example Usage

Creates a style for a dashed green line:

ls = LineStyle(
    width=2,
    color="#6ba832",
    style=LineStyleEnum.DASHED,
    alpha=0.2,
    zorder=-10,
)

alpha: float = 1.0 class-attribute instance-attribute

Alpha value (controls transparency)

color: ColorStr = ColorStr('#000') class-attribute instance-attribute

Color of the line. Can be a hex, rgb, hsl, or word string.

dash_capstyle: DashCapStyleEnum = DashCapStyleEnum.PROJECTING class-attribute instance-attribute

Style of dash endpoints

style: LineStyleEnum = LineStyleEnum.SOLID class-attribute instance-attribute

Style of the line (e.g. solid, dashed, etc).

visible: bool = True class-attribute instance-attribute

If True, the line will be plotted

width: int = 2 class-attribute instance-attribute

Width of line

zorder: int = -1 class-attribute instance-attribute

Zorder of the line

starplot.styles.PolygonStyle

Styling properties for polygons.

Example Usage

Creates a style for a partially transparent blue polygon:

ps = PolygonStyle(
        color="#d9d9d9",
        alpha=0.36,
        edge_width=0,
        zorder=-10000,
)

alpha: float = 1.0 class-attribute instance-attribute

Alpha value (controls transparency)

color: Optional[ColorStr] = None class-attribute instance-attribute

If specified, this will be the fill color AND edge color of the polygon

edge_color: Optional[ColorStr] = None class-attribute instance-attribute

Edge color of the polygon

edge_width: int = 1 class-attribute instance-attribute

Width of the polygon's edge

fill_color: Optional[ColorStr] = None class-attribute instance-attribute

Fill color of the polygon

line_style: LineStyleEnum = LineStyleEnum.SOLID class-attribute instance-attribute

Edge line style

visible: bool = True class-attribute instance-attribute

If True, the polygon will be plotted

zorder: int = -1 class-attribute instance-attribute

Zorder of the polygon

starplot.styles.LabelStyle

Styling properties for a label.

Example Usage

Creates a style for a bold blue label:

ls = LabelStyle(
        font_color="blue",
        font_weight=FontWeightEnum.BOLD,
        zorder=1,
)

font_alpha: float = 1 class-attribute instance-attribute

Font's alpha (transparency)

font_color: ColorStr = ColorStr('#000') class-attribute instance-attribute

Font's color

font_family: Optional[str] = None class-attribute instance-attribute

Font family (e.g. 'monospace', 'sans-serif', 'serif', etc)

font_name: Optional[str] = None class-attribute instance-attribute

Name of the font to use

font_size: int = 8 class-attribute instance-attribute

Relative font size of the label

font_style: FontStyleEnum = FontStyleEnum.NORMAL class-attribute instance-attribute

Style of the label (e.g. normal, italic, etc)

font_weight: FontWeightEnum = FontWeightEnum.NORMAL class-attribute instance-attribute

Font weight (e.g. normal, bold, ultra bold, etc)

line_spacing: Optional[int] = None class-attribute instance-attribute

Spacing between lines of text

visible: bool = True class-attribute instance-attribute

If True, the label will be plotted

zorder: int = 1 class-attribute instance-attribute

Zorder of the label


starplot.styles.ObjectStyle

Defines the style for a SkyObject

label: LabelStyle = LabelStyle() class-attribute instance-attribute

Style for the object's label (see LabelStyle)

marker: MarkerStyle = MarkerStyle() class-attribute instance-attribute

Style for the object's marker (see MarkerStyle)

starplot.styles.PathStyle

Defines the style for a path (e.g. constellation lines)

label: LabelStyle = LabelStyle() class-attribute instance-attribute

Style for the path's label (see LabelStyle)

line: LineStyle = LineStyle() class-attribute instance-attribute

Style for the line (see LineStyle)

starplot.styles.LegendStyle

Defines the style for the map legend. Only applies to map plots.

background_alpha: float = 1.0 class-attribute instance-attribute

Background's alpha (transparency)

background_color: ColorStr = ColorStr('#fff') class-attribute instance-attribute

Background color of the legend box

border_padding: float = 1.28 class-attribute instance-attribute

Padding around legend border

expand: bool = False class-attribute instance-attribute

If True, the legend will be expanded to fit the full width of the map

font_color: ColorStr = ColorStr('#000') class-attribute instance-attribute

Font color for legend labels

font_size: int = 9 class-attribute instance-attribute

Relative font size of the legend labels

label_padding: float = 1.6 class-attribute instance-attribute

Padding between legend labels

location: LegendLocationEnum = LegendLocationEnum.OUTSIDE_BOTTOM class-attribute instance-attribute

Location of the legend, relative to the map area (inside or outside)

num_columns: int = 8 class-attribute instance-attribute

Number of columns in the legend

symbol_padding: float = 0.2 class-attribute instance-attribute

Padding between each symbol and its label

visible: bool = True class-attribute instance-attribute

If True, the legend will be plotted


starplot.styles.FillStyleEnum

Constants that represent the possible fill styles for markers.

BOTTOM = 'bottom' class-attribute instance-attribute

Fill the bottom half

FULL = 'full' class-attribute instance-attribute

Fill the marker completely

LEFT = 'left' class-attribute instance-attribute

Fill the left half of the marker

NONE = 'none' class-attribute instance-attribute

Do not fill the marker. It'll still have an edge, but the inside will be transparent.

RIGHT = 'right' class-attribute instance-attribute

Fill the right half of the marker

TOP = 'top' class-attribute instance-attribute

Fill the top half

starplot.styles.FontStyleEnum

ITALIC = 'italic' class-attribute instance-attribute

NORMAL = 'normal' class-attribute instance-attribute

OBLIQUE = 'oblique' class-attribute instance-attribute

starplot.styles.FontWeightEnum

Options for font weight.

BOLD = 'bold' class-attribute instance-attribute

HEAVY = 'heavy' class-attribute instance-attribute

LIGHT = 'light' class-attribute instance-attribute

NORMAL = 'normal' class-attribute instance-attribute

ULTRA_BOLD = 'ultrabold' class-attribute instance-attribute

ULTRA_LIGHT = 'ultralight' class-attribute instance-attribute

starplot.styles.LineStyleEnum

DASHED = 'dashed' class-attribute instance-attribute

DASHED_DOTS = 'dashdot' class-attribute instance-attribute

DOTTED = 'dotted' class-attribute instance-attribute

SOLID = 'solid' class-attribute instance-attribute

starplot.styles.MarkerSymbolEnum

Options for marker symbols

CIRCLE = 'o' class-attribute instance-attribute

CIRCLE_CROSS = '$\\bigoplus$' class-attribute instance-attribute

DIAMOND = 'D' class-attribute instance-attribute

POINT = '.' class-attribute instance-attribute

SQUARE = 's' class-attribute instance-attribute

STAR = '*' class-attribute instance-attribute

TRIANGLE = '^' class-attribute instance-attribute

starplot.styles.LegendLocationEnum

Options for the location of the map legend

INSIDE_BOTTOM = 'lower center' class-attribute instance-attribute

INSIDE_BOTTOM_LEFT = 'lower left' class-attribute instance-attribute

INSIDE_BOTTOM_RIGHT = 'lower right' class-attribute instance-attribute

INSIDE_TOP = 'upper center' class-attribute instance-attribute

INSIDE_TOP_LEFT = 'upper left' class-attribute instance-attribute

INSIDE_TOP_RIGHT = 'upper right' class-attribute instance-attribute

OUTSIDE_BOTTOM = 'outside lower center' class-attribute instance-attribute

OUTSIDE_TOP = 'outside upper center' class-attribute instance-attribute


Style Extensions

  • Color Schemes
    • GRAYSCALE - Optimized for printing in grayscale (details)
    • GRAYSCALE_DARK - Like GRAYSCALE, but inverted (white stars, black background) (details)
    • BLUE_LIGHT - Light and bright colors (details)
    • BLUE_MEDIUM - Medium brightness bluish gray colors (details)
    • BLUE_DARK - Dark bluish gray colors (details)
  • Plot types
    • OPTIC - Basic styling tailored for optic plots (details)
    • MAP - Basic styling tailored for map plots (details)
    • ZENITH - Basic styling tailored for zenith plots (details)
  • Others
    • HIDE_LABELS - Hides all the labels (details)
    • MINIMAL - Hides everything except stars and DSOs (details)

GRAYSCALE

Optimized for printing in grayscale

Source
background_color: '#fff'
border_bg_color: '#fff'
border_font_color: '#000'
border_line_color: '#000'
celestial_equator:
  label:
    font_color: '#999'
  line:
    color: '#999'
constellation:
  line:
    color: '#c8c8c8'
dso_double_star:
  marker:
    color: '#000'
dso_galaxy:
  marker:
    color: '#000'
    alpha: 0.6
    symbol: D
    fill: top
dso_nebula:
  marker:
    color: '#000'
    alpha: 0.36
dso_open_cluster:
  marker:
    color: null
    edge_color: '#000'
    fill: none
    alpha: 0.8
ecliptic:
  label:
    font_color: '#777'
  line:
    color: '#777'
milky_way:
  alpha: 0.28
  color: '#d9d9d9'
  edge_width: 0
planets:
  marker:
    color: '#000'
    fill: left

legend:
  background_color: '#fff'

GRAYSCALE_DARK

Like GRAYSCALE, but inverted (white stars, black background)

Source
background_color: 'hsl(136, 0%, 10%)'
border_bg_color: 'hsl(136, 0%, 20%)'
border_font_color: 'hsl(136, 0%, 97%)'
border_line_color: 'hsl(136, 0%, 97%)'
star:
  label:
    font_color: hsl(136, 0%, 97%)
  marker:
    color: hsl(136, 0%, 97%)
bayer_labels:
  font_color: hsl(136, 0%, 77%)
celestial_equator:
  label:
    font_color: '#999'
  line:
    color: '#999'
constellation:
  label:
    font_color: hsl(136, 0%, 77%)
  line:
    color: hsl(136, 0%, 42%)
constellation_borders:
  color: hsl(136, 0%, 42%)
  alpha: 0.5
dso_double_star:
  marker:
    color: 'hsl(136, 0%, 97%)'
dso_galaxy:
  marker:
    color: 'hsl(136, 0%, 97%)'
    alpha: 0.8
    symbol: D
    fill: top
dso_nebula:
  marker:
    color: 'hsl(136, 0%, 97%)'
    alpha: 0.34
dso_open_cluster:
  marker:
    edge_color: 'hsl(136, 0%, 97%)'
    fill: none
    alpha: 0.86
dso_association_stars:
  marker:
    edge_color: 'hsl(136, 0%, 97%)'
    fill: none
    alpha: 0.86
ecliptic:
  label:
    font_color: '#777'
  line:
    color: '#777'
milky_way:
  alpha: 0.1
  color: hsl(136, 0%, 62%)
  edge_width: 0
planets:
  label:
    font_color: hsl(136, 0%, 97%)
  marker:
    color: hsl(136, 0%, 97%)
    fill: bottom
    edge_color: hsl(136, 0%, 97%)
moon:
  label:
    font_color: hsl(136, 0%, 97%)
gridlines:
  label:
    font_color: hsl(136, 0%, 97%)
tick_marks:
  font_color: hsl(136, 0%, 97%)
legend:
  background_color: hsl(136, 0%, 64%)

BLUE_LIGHT

Light and bright colors

Source
background_color: '#fff'
border_bg_color: '#fff'
border_font_color: '#2f4358'
border_line_color: '#2f4358'
celestial_equator:
  label:
    font_color: '#2d5ec2'
  line:
    color: '#2d5ec2'
constellation:
  label:
    font_color: '#c5c5c5'
  line:
    alpha: 0.3
    color: '#6ba832'
    width: 3
dso_double_star:
  marker:
    alpha: 0.6
dso_galaxy:
  marker:
    alpha: 0.5
    color: hsl(18, 68%, 75%)
    edge_color: hsl(18, 68%, 40%)
dso_nebula:
  marker:
    alpha: 0.5
    color: hsl(91, 53%, 75%)
    edge_color: hsl(91, 53%, 40%)
dso_open_cluster:
  label:
    visible: false
  marker:
    alpha: 0.3
    color: '#fffb68'
    edge_color: '#989400'
dso_association_stars:
  label:
    visible: false
  marker:
    alpha: 0.3
    color: '#fffb68'
    edge_color: '#989400'
ecliptic:
  label:
    font_color: '#e33b3b'
  line:
    color: '#e33b3b'
milky_way:
  alpha: 0.16
  color: '#94c5e3'
  edge_width: 0
planets:
  marker:
    alpha: 0.4
    color: '#f89d00'
    fill: full

legend:
  background_color: '#fff'

BLUE_MEDIUM

Medium brightness bluish gray colors

Source
background_color: '#f1f6ff'
border_bg_color: '#7997b9'
border_font_color: '#f1f6ff'
border_line_color: '#2f4358'
bayer_labels:
  font_alpha: 0.8
  font_color: '#000'
celestial_equator:
  label:
    font_color: '#2d5ec2'
  line:
    color: '#2d5ec2'
constellation:
  label:
    font_size: 7
    font_weight: light
  line:
    alpha: 0.2
    color: '#6ba832'
    width: 3
ecliptic:
  label:
    font_color: '#e33b3b'
  line:
    color: '#e33b3b'
planets:
  marker:
    alpha: 0.4
    color: '#f89d00'
    fill: full
milky_way:
  alpha: 0.14
  color: '#94c5e3'
  edge_width: 0
gridlines:
  label:
    font_alpha: 0.8
    font_color: '#f1f6ff'
    font_size: 8
    font_weight: light
  line:
    alpha: 0.6
    color: '#888'
    style: solid
    width: 1
    zorder: -10000

# DSOs
dso_double_star:
  marker:
    alpha: 0.6
dso_galaxy:
  marker:
    alpha: 0.45
    color: '#D99CBA'
    edge_color: '#b15d87'
dso_nebula:
  marker:
    alpha: 0.56
    color: hsl(91, 62%, 82%)
    edge_color: hsl(91, 53%, 40%)
dso_open_cluster:
  label:
    visible: false
  marker:
    alpha: 0.4
    color: '#fffb68'
    edge_color: '#989400'
dso_association_stars:
  label:
    visible: false
  marker:
    alpha: 0.4
    color: '#fffb68'
    edge_color: '#989400'
dso_globular_cluster:
  marker:
    alpha: 0.8
    color: '#c7c7c7'
    edge_color: '#444'

legend:
  background_color: '#f1f6ff'

BLUE_DARK

Dark bluish gray colors

Source
background_color: '#4c566a'
bayer_labels:
  font_alpha: 0.8
  font_color: '#85c9de'
border_bg_color: '#2e3440'
border_font_color: '#a3be8c'
border_line_color: '#a3be8c'
celestial_equator:
  label:
    font_color: '#77A67F'
  line:
    color: '#77A67F'
constellation:
  label:
    font_alpha: 0.6
    font_color: rgb(230, 204, 147)
    font_size: 7
    font_weight: light
  line:
    alpha: 0.36
    color: rgb(230, 204, 147)
    width: 2

dso:
  label:
    font_alpha: 0.6
    font_color: rgb(230, 204, 147)
    font_size: 7
    font_weight: light
  marker:
    alpha: 0.46
    color: rgb(230, 204, 147)
    edge_color: '#d2a441'
    fill: full
    size: 4
dso_double_star:
  marker:
    alpha: 0.8
    color: '#88c0d0'
    edge_color: '#88c0d0'
dso_galaxy:
  marker:
    alpha: 0.6
    color: '#D99CBA'
    edge_color: '#bd5187'
dso_nebula:
  marker:
    alpha: 0.32
    color: '#9CD9BB'
    edge_color: '#52896e'
dso_open_cluster:
  label:
    visible: false
  marker:
    alpha: 0.32
    color: '#d8d99c'
    edge_color: '#9d9f3c'
dso_association_stars:
  label:
    visible: false
  marker:
    alpha: 0.32
    color: '#d8d99c'
    edge_color: '#9d9f3c'
dso_globular_cluster:
  marker:
    alpha: 0.5
    color: '#c7c7c7'
    edge_color: '#444'

ecliptic:
  label:
    font_color: '#D99CBA'
  line:
    color: '#D99CBA'
gridlines:
  label:
    font_alpha: 0.8
    font_color: '#c2d2f3'
    font_size: 8
    font_weight: light
  line:
    alpha: 0.8
    color: '#888'
    style: solid
    width: 1
    zorder: -10000
tick_marks:
  font_color: '#888'
milky_way:
  alpha: 0.14
  color: '#95a3bf'
  edge_width: 0
  zorder: -10000
planets:
  label:
    font_color: '#D99CCF'
  marker:
    alpha: 0.8
    color: '#D99CCF'
    fill: full
moon:
  label:
    font_color: '#f2f2f2'
    font_alpha: 0.8
  marker:
    color: '#e9e9e9'
star:
  label:
    font_color: '#88c0d0'
    font_size: 9
    font_weight: bold
  marker:
    color: '#88c0d0'

legend:
  background_color: '#515e76'
  background_alpha: 1.0
  font_color: '#d5e0f5'

OPTIC

Basic styling tailored for optic plots

Source
star:
  marker:
    size: 14
planets:
  label:
    visible: true
  marker:
    size: 11
moon:
  label:
    visible: true
  marker:
    visible: true
legend:
  location: "lower center"
  visible: false

MAP

Basic styling tailored for map plots

Source
bayer_labels:
  font_size: 7
constellation:
  label:
    font_alpha: 0.75
    font_size: 12
    font_weight: light
  line:
    width: 3
ecliptic:
  line:
    alpha: 0.8
    width: 2
gridlines:
  label:
    font_size: 9
    font_weight: light
  line:
    alpha: 0.8
    width: 1
    zorder: -10000
star:
  label:
    font_size: 8

ZENITH

Basic styling tailored for zenith plots

Source
ecliptic:
  label:
    visible: false
  line:
    visible: false
celestial_equator:
  label:
    visible: false
  line:
    visible: false
milky_way:
  visible: false
legend:
  visible: false
moon:
  marker:
    visible: true
  label:
    visible: true

HIDE_LABELS

Hides all the labels

Source
bayer_labels:
  visible: false
constellation:
  label:
    visible: false
dso:
  label:
    visible: false
gridlines:
  label:
    visible: false
star:
  label:
    visible: false
planets:
  label:
    visible: false
ecliptic:
  label:
    visible: false
celestial_equator:
  label:
    visible: false

MINIMAL

Hides everything except stars and DSOs. Good for plotting scope fields of view.

Source
bayer_labels:
  visible: false
constellation:
  label:
    visible: false
  line:
    visible: false
constellation_borders:
  visible: false
dso:
  label:
    visible: false
gridlines:
  label:
    visible: false
  line:
    visible: false
star:
  label:
    visible: false
planets:
  label:
    visible: false
ecliptic:
  label:
    visible: false
  line:
    visible: false
celestial_equator:
  label:
    visible: false
  line:
    visible: false
legend:
  visible: false
tick_marks:
  visible: false
milky_way:
  visible: false