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:
-
Create a
PlotStyle
instance -
Extend or override properties
-
Apply the style to the plot
Example:
The sections below go into more detail around these steps.
Creating a Style
Creating a style is simple:
After creating the style, you can modify properties of the style directly:
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 and optimizing different plot types. 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": "Literata",
"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
# 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: star
# make nebulas green and their markers diamonds
dso_nebula:
marker:
color: green
symbol: diamond
Then, to use your new style:
from starplot import PlotStyle, MapPlot
style = PlotStyle.load_from_file("style.yml")
p = MapPlot(
ra_min=4,
ra_max=8,
dec_min=0,
dec_max=20,
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
- LikeGRAYSCALE
, but inverted (white stars, black background) (details)BLUE_LIGHT
- Light and bright colors (details)BLUE_MEDIUM
- Medium brightness blue colors (details)BLUE_DARK
- Dark blue and contrasting colors (details)ANTIQUE
- Antique map inspired colors (details)NORD
- Nord-inspired colors (details)
- Plot types
Overriding Styles When Plotting
After you create a plot instance and start plotting stuff (e.g. stars, DSOs, etc), then you may want to override the plot's style sometimes. For example, you may want to plot the brightest stars with one style and the dimmer stars with a different style (see the example map of Sagittarius which uses different markers for brighter stars). Luckily, Starplot provides two easy ways to do this:
-
Via
All plotting calls have an optionalstyle
kwargstyle
kwarg that lets you pass in a dictionary of any styles you want to override for that plotting call. For example, here's how you can plot bright stars with a different marker and color than the plot's style: -
Via
style__*
kwargsWhen you only want to override one or two style properties, it can be tedious to create a dictionary, so Starplot also lets you specify overrides through keyword arguments that start with
style__
and separate each level by__
. For example, we could re-write the previous example like this:
When overriding styles like this, you only have to define style properties you want to override. Other properties will be inherited from the plot's style.
Code Reference
starplot.PlotStyle
Defines the styling for a plot
background_color
class-attribute
instance-attribute
Background color of the map region
bayer_labels
class-attribute
instance-attribute
bayer_labels: LabelStyle = LabelStyle(
font_size=21,
font_weight=LIGHT,
font_name="GFS Didot",
zorder=LAYER_4,
anchor_point=TOP_LEFT,
offset_x="auto",
offset_y="auto",
)
Styling for Bayer labels of stars
celestial_equator
class-attribute
instance-attribute
celestial_equator: PathStyle = PathStyle(
line=LineStyle(
color="#999", width=3, style=DASHED_DOTS, alpha=0.65, zorder=LAYER_3
),
label=LabelStyle(
font_size=22,
font_color="#999",
font_weight=LIGHT,
font_alpha=0.65,
zorder=LAYER_3,
),
)
Styling for the Celestial Equator
constellation
class-attribute
instance-attribute
constellation: PathStyle = PathStyle(
line=LineStyle(color="#c8c8c8"),
label=LabelStyle(
font_size=21, font_weight=NORMAL, zorder=LAYER_3, anchor_point=TOP_RIGHT
),
)
Styling for constellation lines and labels (only applies to map plots)
constellation_borders
class-attribute
instance-attribute
constellation_borders: LineStyle = LineStyle(
color="#000", width=1.5, style=DASHED, alpha=0.4, zorder=LAYER_3
)
Styling for constellation borders (only applies to map plots)
dso_association_stars
class-attribute
instance-attribute
dso_association_stars: ObjectStyle = ObjectStyle(
marker=MarkerStyle(
symbol=CIRCLE,
fill=FULL,
line_style=(0, (1, 2)),
edge_width=1.3,
zorder=LAYER_3 - 1,
),
label=LabelStyle(font_weight=LIGHT, offset_x=7, offset_y=-6),
)
Styling for associations of stars
dso_dark_nebula
class-attribute
instance-attribute
dso_dark_nebula: ObjectStyle = ObjectStyle(
marker=MarkerStyle(
symbol=SQUARE, fill=TOP, color="#000", zorder=LAYER_3 - 1
),
label=LabelStyle(),
)
Styling for dark nebulas
dso_double_star
class-attribute
instance-attribute
dso_double_star: ObjectStyle = ObjectStyle(
marker=MarkerStyle(symbol=CIRCLE_LINE, fill=TOP, zorder=LAYER_3 - 1),
label=LabelStyle(offset_x=1, offset_y=-1),
)
Styling for double stars
dso_duplicate
class-attribute
instance-attribute
dso_duplicate: ObjectStyle = ObjectStyle(
marker=MarkerStyle(
symbol=SQUARE, fill=TOP, color="#000", zorder=LAYER_3 - 1
),
label=LabelStyle(),
)
Styling for 'duplicate record' (as designated by OpenNGC) types of deep sky objects
dso_galaxy
class-attribute
instance-attribute
dso_galaxy: ObjectStyle = ObjectStyle(
marker=MarkerStyle(symbol=ELLIPSE, fill=FULL, zorder=LAYER_3 - 1),
label=LabelStyle(offset_x=1, offset_y=-1),
)
Styling for galaxies
dso_globular_cluster
class-attribute
instance-attribute
dso_globular_cluster: ObjectStyle = ObjectStyle(
marker=MarkerStyle(
symbol=CIRCLE_CROSS,
fill=FULL,
color="#555",
alpha=0.8,
edge_width=1.2,
zorder=LAYER_3 - 1,
),
label=LabelStyle(offset_x=7, offset_y=-6),
)
Styling for globular star clusters
dso_hii_ionized_region
class-attribute
instance-attribute
dso_hii_ionized_region: ObjectStyle = ObjectStyle(
marker=MarkerStyle(
symbol=SQUARE, fill=TOP, color="#000", zorder=LAYER_3 - 1
),
label=LabelStyle(),
)
Styling for HII Ionized regions
dso_nebula
class-attribute
instance-attribute
dso_nebula: ObjectStyle = ObjectStyle(
marker=MarkerStyle(symbol=SQUARE, fill=FULL, zorder=LAYER_3 - 1),
label=LabelStyle(offset_x=1, offset_y=-1),
)
Styling for nebulas
dso_nonexistant
class-attribute
instance-attribute
dso_nonexistant: ObjectStyle = ObjectStyle(
marker=MarkerStyle(
symbol=SQUARE, fill=TOP, color="#000", zorder=LAYER_3 - 1
),
label=LabelStyle(),
)
Styling for 'nonexistent' (as designated by OpenNGC) deep sky objects
dso_nova_star
class-attribute
instance-attribute
dso_nova_star: ObjectStyle = ObjectStyle(
marker=MarkerStyle(
symbol=SQUARE, fill=TOP, color="#000", zorder=LAYER_3 - 1
),
label=LabelStyle(),
)
Styling for nova stars
dso_open_cluster
class-attribute
instance-attribute
dso_open_cluster: ObjectStyle = ObjectStyle(
marker=MarkerStyle(
symbol=CIRCLE,
fill=FULL,
line_style=(0, (1, 2)),
edge_width=1.3,
zorder=LAYER_3 - 1,
),
label=LabelStyle(offset_x="auto", offset_y="auto"),
)
Styling for open star clusters
dso_planetary_nebula
class-attribute
instance-attribute
dso_planetary_nebula: ObjectStyle = ObjectStyle(
marker=MarkerStyle(
symbol=CIRCLE_CROSSHAIR,
fill=FULL,
edge_width=1.6,
size=26,
zorder=LAYER_3 - 1,
),
label=LabelStyle(offset_x=1, offset_y=-1),
)
Styling for planetary nebulas
dso_supernova_remnant
class-attribute
instance-attribute
dso_supernova_remnant: ObjectStyle = ObjectStyle(
marker=MarkerStyle(
symbol=SQUARE, fill=TOP, color="#000", zorder=LAYER_3 - 1
),
label=LabelStyle(),
)
Styling for supernova remnants
dso_unknown
class-attribute
instance-attribute
dso_unknown: ObjectStyle = ObjectStyle(
marker=MarkerStyle(
symbol=SQUARE, fill=TOP, color="#000", zorder=LAYER_3 - 1
),
label=LabelStyle(),
)
Styling for 'unknown' (as designated by OpenNGC) types of deep sky objects
ecliptic
class-attribute
instance-attribute
ecliptic: PathStyle = PathStyle(
line=LineStyle(
color="#777",
width=3,
style=DOTTED,
dash_capstyle=ROUND,
alpha=1,
zorder=LAYER_3,
),
label=LabelStyle(
font_size=22, font_color="#777", font_alpha=1, zorder=LAYER_3
),
)
Styling for the Ecliptic
figure_background_color
class-attribute
instance-attribute
flamsteed_labels
class-attribute
instance-attribute
flamsteed_labels: LabelStyle = LabelStyle(
font_size=13,
font_weight=NORMAL,
zorder=LAYER_4,
anchor_point=BOTTOM_LEFT,
offset_x="auto",
offset_y="auto",
)
Styling for Flamsteed number labels of stars
gridlines
class-attribute
instance-attribute
gridlines: PathStyle = PathStyle(
line=LineStyle(
color="#888", width=1, style=SOLID, alpha=0.8, zorder=LAYER_2
),
label=LabelStyle(
font_size=18,
font_color="#000",
font_alpha=1,
anchor_point=BOTTOM_CENTER,
),
)
Styling for gridlines (including Right Ascension / Declination labels). Only applies to map plots.
horizon
class-attribute
instance-attribute
horizon: PathStyle = PathStyle(
line=LineStyle(
color="#fff",
width=80,
edge_width=4,
edge_color="#000",
style=SOLID,
dash_capstyle=BUTT,
alpha=1,
zorder=LAYER_5,
),
label=LabelStyle(
anchor_point=CENTER,
font_color="#000",
font_size=64,
font_weight=BOLD,
zorder=LAYER_5,
),
)
Styling for the horizon
info_text
class-attribute
instance-attribute
info_text: LabelStyle = LabelStyle(
font_size=30,
zorder=LAYER_5,
font_family="Inter",
line_spacing=1.2,
anchor_point=BOTTOM_CENTER,
)
Styling for info text (only applies to zenith and optic plots)
milky_way
class-attribute
instance-attribute
milky_way: PolygonStyle = PolygonStyle(
fill_color="#d9d9d9", alpha=0.36, edge_width=0, zorder=LAYER_1
)
Styling for the Milky Way (only applies to map plots)
moon
class-attribute
instance-attribute
moon: ObjectStyle = ObjectStyle(
marker=MarkerStyle(
symbol=CIRCLE,
size=50,
fill=FULL,
color="#c8c8c8",
alpha=1,
zorder=LAYER_4,
),
label=LabelStyle(
font_size=28, font_weight=BOLD, offset_x="auto", offset_y="auto"
),
)
Styling for the moon
planets
class-attribute
instance-attribute
planets: ObjectStyle = ObjectStyle(
marker=MarkerStyle(symbol=CIRCLE, size=50, fill=LEFT),
label=LabelStyle(
font_size=28, font_weight=BOLD, offset_x="auto", offset_y="auto"
),
)
Styling for planets
star
class-attribute
instance-attribute
star: ObjectStyle = ObjectStyle(
marker=MarkerStyle(fill=FULL, zorder=LAYER_3 + 1, size=40, edge_color=None),
label=LabelStyle(
font_size=24,
font_weight=BOLD,
zorder=LAYER_3 + 2,
offset_x="auto",
offset_y="auto",
),
)
Styling for stars (see ObjectStyle
)
sun
class-attribute
instance-attribute
sun: ObjectStyle = ObjectStyle(
marker=MarkerStyle(
symbol=SUN, size=80, fill=FULL, color="#000", zorder=LAYER_4 - 100
),
label=LabelStyle(font_size=28, font_weight=BOLD),
)
Styling for the Sun
text_anchor_fallbacks
class-attribute
instance-attribute
text_anchor_fallbacks: List[AnchorPointEnum] = [
BOTTOM_RIGHT,
TOP_LEFT,
TOP_RIGHT,
BOTTOM_LEFT,
BOTTOM_CENTER,
TOP_CENTER,
]
If a label's preferred anchor point results in a collision, then these fallbacks will be tried in sequence until a collision-free position is found.
text_border_width
class-attribute
instance-attribute
Text border (aka halos) width. This will apply to all text labels on the plot. If you'd like to control these borders by object type, then set this global width to 0
and refer to the label style's border_width
and border_color
properties.
title
class-attribute
instance-attribute
title: LabelStyle = LabelStyle(
font_size=20,
font_weight=BOLD,
zorder=LAYER_5,
line_spacing=48,
anchor_point=BOTTOM_CENTER,
)
Styling for info text (only applies to zenith and optic plots)
zenith
class-attribute
instance-attribute
zenith: ObjectStyle = ObjectStyle(
marker=MarkerStyle(
symbol=TRIANGLE, size=24, fill=FULL, color="#000", alpha=0.8
),
label=LabelStyle(font_size=14, font_weight=BOLD),
)
Styling for the zenith marker
dump_to_file
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 the light blue color scheme, map optimizations, and change the constellation line color to red:
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.
color
class-attribute
instance-attribute
Fill color of marker. Can be a hex, rgb, hsl, or word string.
dash_capstyle
class-attribute
instance-attribute
Style of dash endpoints
edge_color
class-attribute
instance-attribute
Edge color of marker. Can be a hex, rgb, hsl, or word string.
edge_width
class-attribute
instance-attribute
Edge width of marker, in points. Not available for all marker symbols.
line_style
class-attribute
instance-attribute
line_style: Union[LineStyleEnum, tuple] = SOLID
Edge line style. Can be a predefined value in LineStyleEnum
or a Matplotlib linestyle tuple.
starplot.styles.LineStyle
Styling properties for lines.
color
class-attribute
instance-attribute
Color of the line. Can be a hex, rgb, hsl, or word string.
dash_capstyle
class-attribute
instance-attribute
Style of dash endpoints
edge_color
class-attribute
instance-attribute
Edge color of the line. If the width or color is falsey then the line will NOT be drawn with an edge.
edge_width
class-attribute
instance-attribute
Width of the line's edge in points. If the width or color is falsey then the line will NOT be drawn with an edge.
style
class-attribute
instance-attribute
style: Union[LineStyleEnum, tuple] = SOLID
Style of the line (e.g. solid, dashed, etc). Can be a predefined value in LineStyleEnum
or a Matplotlib linestyle tuple.
starplot.styles.PolygonStyle
Styling properties for polygons.
color
class-attribute
instance-attribute
If specified, this will be the fill color AND edge color of the polygon
edge_color
class-attribute
instance-attribute
Edge color of the polygon
edge_width
class-attribute
instance-attribute
Width of the polygon's edge in points
fill_color
class-attribute
instance-attribute
Fill color of the polygon
line_style
class-attribute
instance-attribute
line_style: Union[LineStyleEnum, tuple] = SOLID
Edge line style. Can be a predefined value in LineStyleEnum
or a Matplotlib linestyle tuple.
starplot.styles.LabelStyle
Styling properties for a label.
anchor_point
class-attribute
instance-attribute
anchor_point: AnchorPointEnum = BOTTOM_RIGHT
Anchor point of label
border_color
class-attribute
instance-attribute
Color of border (also known as 'halos') around the text
border_width
class-attribute
instance-attribute
Width of border (also known as 'halos') around the text, in points
font_family
class-attribute
instance-attribute
Font family (e.g. 'monospace', 'sans-serif', 'serif', etc)
font_name
class-attribute
instance-attribute
Name of the font to use
font_size
class-attribute
instance-attribute
Font size of the label, in points
font_style
class-attribute
instance-attribute
font_style: FontStyleEnum = NORMAL
Style of the label (e.g. normal, italic, etc)
font_weight
class-attribute
instance-attribute
font_weight: FontWeightEnum = NORMAL
Font weight (e.g. normal, bold, ultra bold, etc)
line_spacing
class-attribute
instance-attribute
Spacing between lines of text
offset_x
class-attribute
instance-attribute
Horizontal offset of the label, in points. Negative values supported.
Auto Mode (experimental): If the label is plotted as part of a marker (e.g. stars, via marker()
, etc), then you can also
specify the offset as "auto"
which will calculate the offset automatically based on the marker's size and place
the label just outside the marker (avoiding overlapping). To enable "auto" mode you have to specify BOTH offsets (x and y) as "auto."
offset_y
class-attribute
instance-attribute
Vertical offset of the label, in points. Negative values supported.
Auto Mode (experimental): If the label is plotted as part of a marker (e.g. stars, via marker()
, etc), then you can also
specify the offset as "auto"
which will calculate the offset automatically based on the marker's size and place
the label just outside the marker (avoiding overlapping). To enable "auto" mode you have to specify BOTH offsets (x and y) as "auto."
starplot.styles.ObjectStyle
Defines the style for a sky object (e.g. star, DSO)
label
class-attribute
instance-attribute
label: LabelStyle = LabelStyle()
Style for the object's label (see LabelStyle)
marker
class-attribute
instance-attribute
marker: MarkerStyle = MarkerStyle()
Style for the object's marker (see MarkerStyle)
starplot.styles.PathStyle
Defines the style for a path (e.g. constellation lines)
label
class-attribute
instance-attribute
label: LabelStyle = LabelStyle()
Style for the path's label (see LabelStyle)
starplot.styles.LegendStyle
Defines the style for the map legend. Only applies to map plots.
background_alpha
class-attribute
instance-attribute
Background's alpha (transparency)
background_color
class-attribute
instance-attribute
Background color of the legend box
border_padding
class-attribute
instance-attribute
Padding around legend border
expand
class-attribute
instance-attribute
If True, the legend will be expanded to fit the full width of the map
font_color
class-attribute
instance-attribute
Font color for legend labels
font_size
class-attribute
instance-attribute
Font size of the legend labels, in points
label_padding
class-attribute
instance-attribute
Padding between legend labels
location
class-attribute
instance-attribute
location: LegendLocationEnum = OUTSIDE_BOTTOM
Location of the legend, relative to the map area (inside or outside)
symbol_padding
class-attribute
instance-attribute
Padding between each symbol and its label
symbol_size
class-attribute
instance-attribute
Size of symbols in the legend, in points
starplot.styles.FillStyleEnum
Constants that represent the possible fill styles for markers.
NONE
class-attribute
instance-attribute
Do not fill the marker. It'll still have an edge, but the inside will be transparent.
starplot.styles.FontStyleEnum
starplot.styles.FontWeightEnum
Options for font weight.
starplot.styles.LineStyleEnum
starplot.styles.MarkerSymbolEnum
Options for marker symbols
CIRCLE_CROSSHAIR
class-attribute
instance-attribute
No preview available, but this is the standard symbol for planetary nebulae
SQUARE_STRIPES_DIAGONAL
class-attribute
instance-attribute
▨
starplot.styles.LegendLocationEnum
Options for the location of the map legend
starplot.styles.AnchorPointEnum
Options for the anchor point of labels
starplot.styles.ZOrderEnum
Z Order presets for managing layers
Style Extensions
- Color Schemes
GRAYSCALE
- Optimized for printing in grayscale (details)GRAYSCALE_DARK
- LikeGRAYSCALE
, 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 "Starplot blue" colors (details)ANTIQUE
- Antique map inspired colors (details)NORD
- Nord-inspired colors (details)
- Plot types
GRAYSCALE
Optimized for printing in grayscale
Source
background_color: '#fff'
text_border_color: '#fff'
border_bg_color: '#fff'
border_font_color: '#000'
border_line_color: '#000'
title:
font_color: '#000'
celestial_equator:
label:
font_color: '#999'
line:
color: '#999'
constellation:
line:
color: '#c8c8c8'
star:
marker:
edge_color: '#fff'
dso_double_star:
marker:
color: '#000'
dso_galaxy:
marker:
color: null
fill: none
alpha: 1
symbol: ellipse
dso_nebula:
marker:
color: '#c8c8c8'
fill: full
alpha: 1
dso_planetary_nebula:
marker:
color: null
fill: none
alpha: 1
dso_open_cluster:
marker:
color: null
edge_color: '#000'
fill: none
alpha: 1
# other DSOs
dso_unknown: &DSO
marker:
color: '#000'
alpha: 0.28
dso_dark_nebula: *DSO
dso_hii_ionized_region: *DSO
dso_supernova_remnant: *DSO
dso_nova_star: *DSO
dso_nonexistant: *DSO
dso_unknown: *DSO
dso_duplicate: *DSO
ecliptic:
label:
font_color: '#777'
line:
color: '#777'
milky_way:
alpha: 0.28
fill_color: '#d9d9d9'
edge_width: 0
planets:
marker:
color: '#000'
fill: left
sun:
marker:
color: '#000'
edge_color: '#000'
legend:
background_color: '#fff'
horizon:
line:
color: 'white'
edge_color: 'black'
label:
font_color: 'black'
zenith:
marker:
color: black
label:
font_color: black
GRAYSCALE_DARK
Like GRAYSCALE
, but inverted (white stars, black background)
Source
background_color: hsl(136, 0%, 10%)
figure_background_color: hsl(136, 0%, 100%)
text_border_color: hsl(136, 0%, 10%)
border_bg_color: hsl(136, 0%, 20%)
border_font_color: hsl(136, 0%, 90%)
border_line_color: hsl(136, 0%, 54%)
horizon:
line:
color: hsl(136, 0%, 20%)
edge_color: hsl(136, 0%, 54%)
label:
font_color: hsl(136, 0%, 90%)
zenith:
marker:
color: hsl(136, 0%, 90%)
label:
font_color: hsl(136, 0%, 90%)
title:
font_color: hsl(136, 0%, 0%)
info_text:
font_color: hsl(136, 0%, 0%)
star:
label:
font_color: hsl(136, 0%, 78%)
marker:
color: hsl(136, 0%, 92%)
edge_color: hsl(136, 0%, 10%)
sun:
label:
font_color: hsl(136, 0%, 90%)
marker:
color: hsl(136, 0%, 97%)
edge_color: hsl(136, 0%, 97%)
bayer_labels:
font_color: hsl(136, 0%, 80%)
flamsteed_labels:
font_color: hsl(136, 0%, 80%)
celestial_equator:
label:
font_color: '#999'
line:
color: '#999'
constellation:
label:
font_color: hsl(136, 0%, 77%)
line:
color: hsl(136, 0%, 30%)
constellation_borders:
color: hsl(136, 0%, 42%)
alpha: 0.5
dso_double_star:
label:
font_color: hsl(136, 0%, 97%)
marker:
color: 'hsl(136, 0%, 97%)'
dso_galaxy:
label:
font_color: hsl(136, 0%, 97%)
marker:
color: 'hsl(136, 0%, 97%)'
alpha: 0.8
symbol: diamond
fill: top
dso_nebula:
label:
font_color: hsl(136, 0%, 97%)
marker:
color: 'hsl(136, 0%, 97%)'
alpha: 0.28
dso_planetary_nebula:
label:
font_color: hsl(136, 0%, 97%)
marker:
color: 'hsl(136, 0%, 97%)'
alpha: 0.28
dso_open_cluster:
label:
font_color: hsl(136, 0%, 97%)
marker:
edge_color: 'hsl(136, 0%, 97%)'
fill: none
alpha: 0.8
dso_association_stars:
label:
font_color: hsl(136, 0%, 97%)
marker:
edge_color: 'hsl(136, 0%, 97%)'
fill: none
alpha: 0.8
# other DSOs
dso_unknown: &DSO
label:
font_color: hsl(136, 0%, 97%)
marker:
color: 'hsl(136, 0%, 97%)'
alpha: 0.28
dso_dark_nebula: *DSO
dso_hii_ionized_region: *DSO
dso_supernova_remnant: *DSO
dso_nova_star: *DSO
dso_nonexistant: *DSO
dso_unknown: *DSO
dso_duplicate: *DSO
ecliptic:
label:
font_color: '#777'
line:
color: '#777'
milky_way:
alpha: 0.1
fill_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%, 0%)
legend:
background_color: hsl(136, 0%, 64%)
BLUE_LIGHT
Light and bright colors
Source
background_color: '#fff'
text_border_color: '#fff'
border_bg_color: '#b5cbe3'
border_font_color: '#2f4358'
border_line_color: '#2f4358'
horizon:
line:
color: '#b5cbe3'
edge_color: '#2f4358'
label:
font_color: '#2f4358'
zenith:
marker:
color: hsl(18, 68%, 75%)
label:
font_color: hsl(18, 68%, 75%)
title:
font_color: '#2f4358'
star:
marker:
edge_color: '#fff'
celestial_equator:
label:
font_color: '#2d5ec2'
line:
color: '#2d5ec2'
constellation:
label:
font_alpha: 0.27
font_color: '#000'
line:
alpha: 0.52
color: '#6ba832'
width: 3
dso_double_star:
marker:
alpha: 1
dso_galaxy:
marker:
alpha: 1
color: hsl(330, 80%, 85%)
edge_color: hsl(330, 34%, 43%)
# edge_color: hsl(18, 68%, 40%)
label:
font_color: hsl(330, 34%, 43%)
# font_color: hsl(18, 68%, 40%)
dso_nebula: &DSO-NEB
marker:
alpha: 1
color: hsl(98, 68%, 82%)
edge_color: hsl(91, 63%, 24%)
label:
font_color: hsl(91, 63%, 29%)
dso_planetary_nebula:
marker:
alpha: 1
color: hsl(96, 76%, 82%)
edge_color: hsl(91, 63%, 24%)
label:
font_color: hsl(91, 63%, 29%)
dso_open_cluster: &DSO-OC
marker:
alpha: 1
color: hsl(58, 98%, 77%)
edge_color: "#000"
label:
font_color: hsl(58, 98%, 20%)
dso_association_stars: *DSO-OC
dso_globular_cluster:
marker:
alpha: 1
color: hsl(58, 98%, 77%)
edge_color: "#000"
label:
font_color: '#989400'
# other DSOs
dso_unknown: &DSO
marker:
alpha: 0.76
color: hsl(91, 53%, 75%)
edge_color: hsl(91, 53%, 40%)
label:
font_color: hsl(91, 53%, 40%)
dso_dark_nebula: *DSO
dso_hii_ionized_region: *DSO
dso_supernova_remnant: *DSO
dso_nova_star: *DSO
dso_nonexistant: *DSO
dso_unknown: *DSO
dso_duplicate: *DSO
ecliptic:
label:
font_color: '#e33b3b'
line:
# color: hsl(360, 100%, 50%)
color: hsl(359, 98%, 49%)
alpha: 1
style: [0, [0.14, 2]]
milky_way:
alpha: 0.2
fill_color: hsl(203, 70%, 83%)
edge_width: 0
planets:
marker:
alpha: 0.4
color: '#f89d00'
fill: full
legend:
background_color: '#fff'
BLUE_MEDIUM
Medium brightness bluish gray colors
Source
# blue_medium
background_color: hsl(218, 85%, 97%)
figure_background_color: '#fff'
text_border_color: '#f1f6ff'
border_bg_color: '#7997b9'
border_font_color: '#f1f6ff'
border_line_color: '#2f4358'
title:
font_color: '#f1f6ff'
star:
marker:
edge_color: '#f1f6ff'
bayer_labels:
font_alpha: 1
font_color: '#000'
constellation:
label:
font_alpha: 0.8
font_color: hsl(212, 20%, 10%)
line:
alpha: 0.48
color: '#6ba832'
celestial_equator:
label:
font_color: '#2d5ec2'
line:
color: hsl(220, 62%, 47%)
alpha: 0.8
ecliptic:
label:
font_color: '#e33b3b'
line:
color: hsl(360, 85%, 56%)
alpha: 0.9
planets:
marker:
alpha: 0.4
color: '#f89d00'
fill: full
milky_way:
alpha: 0.14
fill_color: '#94c5e3'
edge_width: 0
gridlines:
label:
font_alpha: 1
font_color: '#2f4358'
font_weight: light
line:
alpha: 0.6
color: '#888'
style: solid
sun:
marker:
color: '#ffd22e'
edge_color: 'hsl(47, 100%, 29%)'
horizon:
line:
color: '#7997b9'
edge_color: '#2f4358'
label:
font_color: '#f1f6ff'
zenith:
marker:
color: '#b979b7'
label:
font_color: '#b979b7'
# DSOs
dso_galaxy:
marker:
alpha: 1
color: hsl(330, 80%, 85%)
edge_color: hsl(330, 34%, 33%)
label:
font_color: hsl(330, 34%, 33%)
dso_nebula: &DSO-NEB
marker:
alpha: 1
color: hsl(98, 68%, 82%)
edge_color: hsl(91, 63%, 24%)
label:
font_color: hsl(91, 63%, 29%)
dso_planetary_nebula:
marker:
alpha: 1
color: hsl(96, 76%, 82%)
edge_color: hsl(91, 63%, 24%)
label:
font_color: hsl(91, 63%, 29%)
dso_open_cluster: &DSO-OC
marker:
alpha: 1
color: hsl(58, 98%, 77%)
edge_color: "#000"
label:
font_color: hsl(58, 98%, 20%)
dso_association_stars: *DSO-OC
dso_globular_cluster:
marker:
alpha: 1
color: hsl(58, 98%, 77%)
edge_color: "#000"
label:
font_color: '#989400'
# other DSOs
dso_unknown: &DSO
marker:
alpha: 1
color: hsl(91, 62%, 82%)
edge_color: hsl(91, 53%, 40%)
label:
font_color: hsl(91, 53%, 40%)
dso_dark_nebula: *DSO
dso_hii_ionized_region: *DSO
dso_supernova_remnant: *DSO
dso_nova_star: *DSO
dso_nonexistant: *DSO
dso_unknown: *DSO
dso_duplicate: *DSO
legend:
background_color: '#f1f6ff'
BLUE_DARK
Dark bluish gray colors
Source
background_color: hsl(209, 50%, 24%)
figure_background_color: hsl(209, 43%, 15%)
text_border_color: hsl(209, 50%, 24%)
border_bg_color: hsl(209, 50%, 20%)
border_font_color: hsl(209, 56%, 86%)
border_line_color: hsl(209, 38%, 50%)
horizon:
line:
color: hsl(209, 50%, 20%)
edge_color: hsl(209, 38%, 50%)
label:
font_color: hsl(209, 56%, 86%)
zenith:
marker:
color: hsl(209, 20%, 75%)
label:
font_color: hsl(209, 20%, 75%)
title:
font_color: hsl(209, 56%, 86%)
bayer_labels:
font_alpha: 0.8
font_color: hsl(209, 53%, 82%)
celestial_equator:
label:
font_color: hsl(209, 30%, 80%)
line:
color: hsl(209, 30%, 80%)
ecliptic:
label:
font_color: '#e33b3b'
line:
color: '#e33b3b'
alpha: 1
constellation:
label:
font_alpha: 0.37
font_color: hsl(209, 23%, 80%)
font_weight: light
line:
alpha: 0.36
color: hsl(209, 23%, 76%)
constellation_borders:
width: 2
color: hsl(209, 50%, 74%)
dso_double_star:
label:
font_color: hsl(209, 23%, 72%)
marker:
alpha: 0.8
color: '#88c0d0'
edge_color: '#88c0d0'
dso_galaxy:
marker:
alpha: 1
color: hsl(330, 70%, 66%)
edge_color: hsl(330, 54%, 30%)
label:
font_color: hsl(330, 34%, 73%)
dso_nebula: &DSO-NEB
marker:
alpha: 1
# color: hsl(98, 63%, 66%)
color: hsl(110, 52%, 62%)
edge_color: hsl(91, 53%, 10%)
label:
font_color: hsl(91, 63%, 89%)
dso_planetary_nebula: *DSO-NEB
dso_open_cluster: &DSO-OC
marker:
alpha: 1
color: hsl(58, 64%, 50%)
edge_color: "#000"
label:
font_color: hsl(58, 98%, 20%)
dso_association_stars: *DSO-OC
dso_globular_cluster:
marker:
alpha: 1
color: hsl(58, 64%, 50%)
edge_color: "#000"
label:
font_color: hsl(209, 23%, 72%)
# other DSOs
dso_unknown: &DSO
label:
font_color: hsl(209, 23%, 72%)
marker:
alpha: 0.46
color: hsl(209, 50%, 78%)
edge_color: hsl(209, 50%, 20%)
zorder: -500
dso_dark_nebula: *DSO
dso_hii_ionized_region: *DSO
dso_supernova_remnant: *DSO
dso_nova_star: *DSO
dso_nonexistant: *DSO
dso_unknown: *DSO
dso_duplicate: *DSO
info_text:
font_color: hsl(209, 53%, 90%)
gridlines:
label:
font_alpha: 1
font_color: hsl(209, 53%, 94%)
font_weight: light
line:
alpha: 0.7
color: hsl(209, 53%, 37%)
style: solid
width: 1
milky_way:
alpha: 0.26
fill_color: hsl(209, 50%, 54%)
edge_width: 0
planets:
label:
font_color: hsl(209, 20%, 80%)
marker:
alpha: 0.8
color: hsl(209, 20%, 78%)
fill: full
moon:
label:
font_color: '#f2f2f2'
font_alpha: 0.8
marker:
color: '#e9e9e9'
star:
label:
font_color: hsl(209, 23%, 84%)
font_weight: bold
marker:
color: hsl(209, 50%, 94%)
edge_color: hsl(209, 50%, 24%)
sun:
label:
font_color: hsl(209, 23%, 80%)
font_size: 9
font_weight: bold
marker:
color: hsl(209, 50%, 94%)
edge_color: hsl(209, 50%, 94%)
legend:
background_color: hsl(209, 50%, 26%)
background_alpha: 1.0
font_color: hsl(209, 50%, 88%)
ANTIQUE
Antique map inspired colors
Source
# Yellow Sat - hsl(49, 92%, 77%)
# Yellow unsat - hsl(48, 80%, 92%)
# blue - hsl(188, 35%, 76%)
# blue gray - hsl(225, 25%, 88%)
# green - hsl(71, 58%, 76%)
# red - hsl(26, 93%, 82%)
background_color: hsl(48, 80%, 96%)
figure_background_color: hsl(60, 9%, 29%)
text_border_color: hsl(48, 80%, 96%)
border_bg_color: hsl(60, 3%, 32%)
border_font_color: hsl(60, 20%, 93%)
border_line_color: hsl(60, 20%, 53%)
horizon:
line:
color: hsl(60, 3%, 32%)
edge_color: hsl(60, 20%, 53%)
label:
font_color: hsl(60, 20%, 93%)
zenith:
marker:
color: hsl(26, 93%, 82%)
label:
font_color: hsl(26, 93%, 82%)
title:
font_color: hsl(60, 20%, 93%)
bayer_labels:
font_alpha: 0.9
font_color: hsl(60, 3%, 17%)
flamsteed_labels:
font_alpha: 0.9
font_color: hsl(60, 3%, 17%)
celestial_equator:
label:
font_color: hsl(188, 35%, 56%)
line:
color: hsl(188, 35%, 76%)
alpha: 0.62
constellation:
label:
font_weight: light
font_color: hsl(60, 3%, 52%)
font_alpha: 0.46
font_name: "serif"
line:
alpha: 0.3
color: hsl(48, 80%, 14%)
constellation_borders:
color: hsl(37, 33%, 40%)
alpha: 0.8
zorder: -500
ecliptic:
label:
font_color: hsl(26, 63%, 50%)
line:
color: hsl(26, 90%, 62%)
alpha: 1
milky_way:
alpha: 0.2
fill_color: hsl(48, 40%, 75%)
gridlines:
label:
font_alpha: 0.8
font_color: hsl(60, 3%, 92%)
font_size: 8
font_weight: light
line:
alpha: 0.6
color: hsl(68, 11%, 71%)
style: solid
width: 1
star:
marker:
color: hsl(60, 12%, 24%)
edge_color: hsl(48, 80%, 96%)
label:
font_color: hsl(60, 3%, 24%)
planets:
marker:
symbol: circle
alpha: 0.68
fill: full
color: hsl(26, 93%, 82%)
edge_color: hsl(26, 93%, 52%)
label:
font_color: hsl(60, 3%, 42%)
sun:
label:
font_color: hsl(60, 3%, 42%)
marker:
color: hsl(60, 12%, 32%)
edge_color: hsl(60, 12%, 32%)
moon:
label:
font_color: hsl(60, 3%, 42%)
marker:
color: hsl(48, 80%, 96%)
edge_color: hsl(60, 12%, 32%)
# DSOs
dso_double_star:
marker:
alpha: 0.9
dso_galaxy:
marker:
alpha: 1
color: hsl(26, 93%, 82%)
edge_color: hsl(26, 93%, 32%)
label:
font_color: hsl(26, 93%, 32%)
dso_nebula:
marker:
alpha: 1
color: hsl(71, 58%, 80%)
edge_color: hsl(71, 58%, 30%)
label:
font_color: hsl(71, 58%, 30%)
dso_planetary_nebula:
marker:
alpha: 1
color: hsl(71, 58%, 80%)
edge_color: hsl(71, 58%, 30%)
label:
font_color: hsl(71, 58%, 30%)
dso_open_cluster: &DSO-OC
marker:
alpha: 1
color: hsl(49, 96%, 76%)
edge_color: hsl(49, 92%, 17%)
label:
font_color: hsl(49, 92%, 17%)
dso_association_stars: *DSO-OC
dso_globular_cluster:
marker:
alpha: 1
color: hsl(49, 96%, 76%)
edge_color: hsl(49, 92%, 17%)
label:
font_color: hsl(49, 92%, 17%)
# other DSOs
dso_unknown: &DSO
marker:
alpha: 0.8
color: hsl(71, 58%, 76%)
edge_color: hsl(71, 58%, 36%)
label:
font_color: hsl(71, 58%, 36%)
dso_dark_nebula: *DSO
dso_hii_ionized_region: *DSO
dso_supernova_remnant: *DSO
dso_nova_star: *DSO
dso_nonexistant: *DSO
dso_unknown: *DSO
dso_duplicate: *DSO
legend:
background_color: hsl(48, 50%, 98%)
NORD
Nord inspired colors
Source
background_color: '#4c566a'
text_border_color: '#4c566a'
border_bg_color: '#2e3440'
border_font_color: '#a3be8c'
border_line_color: '#a3be8c'
horizon:
line:
color: '#2e3440'
edge_color: '#a3be8c'
label:
font_color: '#a3be8c'
zenith:
marker:
color: '#D99CBA'
label:
font_color: '#D99CBA'
title:
font_color: '#a3be8c'
celestial_equator:
label:
font_color: '#77A67F'
line:
color: '#77A67F'
constellation:
label:
font_alpha: 0.7
font_color: rgb(230, 204, 147)
line:
alpha: 0.36
color: rgb(230, 204, 147)
constellation_borders:
color: hsl(220, 16%, 12%)
alpha: 0.8
dso_double_star:
marker:
alpha: 0.9
color: '#88c0d0'
edge_color: '#88c0d0'
label:
font_color: '#88c0d0'
dso_galaxy:
marker:
alpha: 0.7
color: hsl(330, 45%, 74%)
edge_color: hsl(330, 45%, 63%)
label:
font_color: hsl(330, 45%, 63%)
dso_nebula:
marker:
alpha: 0.7
color: hsl(172, 15%, 56%)
edge_color: hsl(172, 15%, 50%)
label:
font_color: hsl(172, 15%, 56%)
dso_planetary_nebula:
marker:
alpha: 0.7
color: hsl(172, 15%, 56%)
edge_color: hsl(172, 15%, 50%)
label:
font_color: hsl(172, 15%, 56%)
dso_open_cluster: &DSO-OC
marker:
alpha: 0.7
color: hsl(61, 45%, 73%)
edge_color: hsl(61, 45%, 5%)
label:
font_color: '#9d9f3c'
dso_association_stars: *DSO-OC
dso_globular_cluster:
marker:
alpha: 0.7
color: '#c7c7c7'
edge_color: '#444'
label:
font_color: '#444'
# other DSOs
dso_unknown: &DSO
marker:
alpha: 0.7
color: '#9CD9BB'
edge_color: '#52896e'
label:
font_color: '#52896e'
dso_dark_nebula: *DSO
dso_hii_ionized_region: *DSO
dso_supernova_remnant: *DSO
dso_nova_star: *DSO
dso_nonexistant: *DSO
dso_unknown: *DSO
dso_duplicate: *DSO
ecliptic:
label:
font_color: '#D99CBA'
line:
color: '#D99CBA'
gridlines:
label:
font_alpha: 0.8
font_color: '#c2d2f3'
font_weight: light
line:
alpha: 0.8
color: '#888'
style: solid
milky_way:
alpha: 0.16
fill_color: '#95a3bf'
planets:
label:
font_color: '#D99CCF'
marker:
alpha: 0.8
color: '#D99CCF'
fill: full
star:
label:
font_color: '#88c0d0'
font_weight: bold
marker:
color: '#88c0d0'
edge_color: '#4c566a'
sun:
label:
font_color: '#88c0d0'
font_weight: bold
marker:
color: '#88c0d0'
edge_color: '#88c0d0'
moon:
label:
font_color: '#88c0d0'
font_weight: bold
marker:
color: '#88c0d0'
bayer_labels:
font_alpha: 0.9
font_color: '#85c9de'
legend:
background_color: '#515e76'
background_alpha: 1.0
font_color: '#d5e0f5'
OPTIC
Basic styling tailored for optic plots