kerykeion 4.14.11__py3-none-any.whl → 4.16.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of kerykeion might be problematic. Click here for more details.

@@ -812,3 +812,7 @@ if __name__ == "__main__":
812
812
  # Test Mean Lilith
813
813
  johnny = AstrologicalSubject("Johnny Depp", 1963, 6, 9, 0, 0, "Owensboro", "US", disable_chiron_and_lilith=True)
814
814
  print(johnny.mean_lilith)
815
+
816
+ # Offline mode
817
+ johnny = AstrologicalSubject("Johnny Depp", 1963, 6, 9, 0, 0, "Owensboro", "US", online=False, tz_str="America/New_York", lng=-87.1111, lat=37.7711)
818
+ print(johnny.json(dump=True, indent=2))
@@ -1,7 +1,7 @@
1
1
  import math
2
2
  import datetime
3
3
  from kerykeion.kr_types import KerykeionException, ChartType
4
- from typing import Union
4
+ from typing import Union, Literal
5
5
  from kerykeion.kr_types.kr_models import AspectModel, KerykeionPointModel
6
6
  from kerykeion.kr_types.settings_models import KerykeionLanguageCelestialPointModel, KerykeionSettingsAspectModel
7
7
 
@@ -314,46 +314,43 @@ def draw_elements_percentages(
314
314
 
315
315
  return (
316
316
  f'<g transform="translate(-30,79)">'
317
- f'<text y="0" style="fill:#ff6600; font-size: 10px;">{fire_label} {str(fire_percentage)}%</text>'
318
- f'<text y="12" style="fill:#6a2d04; font-size: 10px;">{earth_label} {str(earth_percentage)}%</text>'
319
- f'<text y="24" style="fill:#6f76d1; font-size: 10px;">{air_label} {str(air_percentage)}%</text>'
320
- f'<text y="36" style="fill:#630e73; font-size: 10px;">{water_label} {str(water_percentage)}%</text>'
317
+ f'<text y="0" style="fill: var(--kerykeion-chart-color-fire-percentage); font-size: 10px;">{fire_label} {str(fire_percentage)}%</text>'
318
+ f'<text y="12" style="fill: var(--kerykeion-chart-color-earth-percentage); font-size: 10px;">{earth_label} {str(earth_percentage)}%</text>'
319
+ f'<text y="24" style="fill: var(--kerykeion-chart-color-air-percentage); font-size: 10px;">{air_label} {str(air_percentage)}%</text>'
320
+ f'<text y="36" style="fill: var(--kerykeion-chart-color-water-percentage); font-size: 10px;">{water_label} {str(water_percentage)}%</text>'
321
321
  f"</g>"
322
322
  )
323
323
 
324
324
 
325
- def convert_decimal_to_degree_string(dec: float, type="3") -> str:
325
+ def convert_decimal_to_degree_string(dec: float, format_type: Literal["1", "2", "3"] = "3") -> str:
326
326
  """
327
- Coverts decimal float to degrees in format a°b'c".
327
+ Converts a decimal float to a degrees string in the specified format.
328
328
 
329
329
  Args:
330
- - dec (float): decimal float
331
- - type (str): type of format:
332
- - 1: a°
333
- - 2: a°b'
334
- - 3: a°b'c"
330
+ dec (float): The decimal float to convert.
331
+ format_type (str): The format type:
332
+ - "1": a°
333
+ - "2": a°b'
334
+ - "3": a°b'c" (default)
335
335
 
336
336
  Returns:
337
- str: degrees in format a°b'c"
337
+ str: The degrees string in the specified format.
338
338
  """
339
-
339
+ # Ensure the input is a float
340
340
  dec = float(dec)
341
- a = int(dec)
342
- a_new = (dec - float(a)) * 60.0
343
- b_rounded = int(round(a_new))
344
- b = int(a_new)
345
- c = int(round((a_new - float(b)) * 60.0))
346
-
347
- if type == "3":
348
- out = f"{a:02d}&#176;{b:02d}&#39;{c:02d}&#34;"
349
- elif type == "2":
350
- out = f"{a:02d}&#176;{b_rounded:02d}&#39;"
351
- elif type == "1":
352
- out = f"{a:02d}&#176;"
353
- else:
354
- raise KerykeionException(f"Wrong type: {type}, it must be 1, 2 or 3.")
355
341
 
356
- return str(out)
342
+ # Calculate degrees, minutes, and seconds
343
+ degrees = int(dec)
344
+ minutes = int((dec - degrees) * 60)
345
+ seconds = int(round((dec - degrees - minutes / 60) * 3600))
346
+
347
+ # Format the output based on the specified type
348
+ if format_type == "1":
349
+ return f"{degrees}°"
350
+ elif format_type == "2":
351
+ return f"{degrees}°{minutes:02d}'"
352
+ elif format_type == "3":
353
+ return f"{degrees}°{minutes:02d}'{seconds:02d}\""
357
354
 
358
355
 
359
356
  def draw_transit_ring_degree_steps(r: Union[int, float], seventh_house_degree_ut: Union[int, float]) -> str:
@@ -675,7 +672,7 @@ def draw_houses_cusps_and_text_number(
675
672
 
676
673
  # Add the house number text for the first subject
677
674
  path += f'<g kr:node="HouseNumber">'
678
- path += f'<text style="fill: #f00; fill-opacity: .6; font-size: 14px"><tspan x="{xtext - 3}" y="{ytext + 3}">{i + 1}</tspan></text>'
675
+ path += f'<text style="fill: var(--kerykeion-chart-color-house-number); fill-opacity: .6; font-size: 14px"><tspan x="{xtext - 3}" y="{ytext + 3}">{i + 1}</tspan></text>'
679
676
  path += f"</g>"
680
677
 
681
678
  return path
@@ -750,13 +747,13 @@ def draw_aspect_transit_grid(
750
747
  inner_path += f"</g>"
751
748
 
752
749
  # difference in degrees
753
- inner_path += f'<text y="8" x="45" style="fill:#000000; font-size: 10px;">{convert_decimal_to_degree_string(aspects_list[i]["orbit"])}</text>'
750
+ inner_path += f'<text y="8" x="45" style="fill: var(--kerykeion-chart-color-paper-0); font-size: 10px;">{convert_decimal_to_degree_string(aspects_list[i]["orbit"])}</text>'
754
751
  # line
755
752
  inner_path += f"</g>"
756
753
  line = line + 14
757
754
 
758
755
  out = f'<g style="transform: translate(47%, 61%) scale({scale})">'
759
- out += f'<text y="-15" x="0" style="fill:#000000; font-size: 14px;">{grid_title}:</text>'
756
+ out += f'<text y="-15" x="0" style="fill: var(--kerykeion-chart-color-paper-0); font-size: 14px;">{grid_title}:</text>'
760
757
  out += inner_path
761
758
  out += "</g>"
762
759
 
@@ -765,10 +762,7 @@ def draw_aspect_transit_grid(
765
762
 
766
763
  def draw_moon_phase(
767
764
  degrees_between_sun_and_moon: float,
768
- latitude: float,
769
- lunar_phase_outline_color: str = "#000000",
770
- dark_color: str = "#000000",
771
- light_color: str = "#ffffff",
765
+ latitude: float
772
766
  ) -> str:
773
767
  """
774
768
  Draws the moon phase based on the degrees between the sun and the moon.
@@ -786,8 +780,6 @@ def draw_moon_phase(
786
780
  deg = degrees_between_sun_and_moon
787
781
 
788
782
  # Initialize variables for lunar phase properties
789
- fill_color_foreground = None
790
- fill_color_background = None
791
783
  circle_center_x = None
792
784
  circle_radius = None
793
785
 
@@ -798,8 +790,6 @@ def draw_moon_phase(
798
790
  max_radius = max_radius * max_radius
799
791
  circle_center_x = 20.0 + (deg / 90.0) * (max_radius + 10.0)
800
792
  circle_radius = 10.0 + (deg / 90.0) * max_radius
801
- fill_color_foreground = dark_color
802
- fill_color_background = light_color
803
793
 
804
794
  elif deg < 180.0:
805
795
  max_radius = 180.0 - deg
@@ -807,8 +797,6 @@ def draw_moon_phase(
807
797
  max_radius = max_radius * max_radius
808
798
  circle_center_x = 20.0 + ((deg - 90.0) / 90.0 * (max_radius + 10.0)) - (max_radius + 10.0)
809
799
  circle_radius = 10.0 + max_radius - ((deg - 90.0) / 90.0 * max_radius)
810
- fill_color_foreground = light_color
811
- fill_color_background = dark_color
812
800
 
813
801
  elif deg < 270.0:
814
802
  max_radius = deg - 180.0
@@ -816,8 +804,6 @@ def draw_moon_phase(
816
804
  max_radius = max_radius * max_radius
817
805
  circle_center_x = 20.0 + ((deg - 180.0) / 90.0 * (max_radius + 10.0))
818
806
  circle_radius = 10.0 + ((deg - 180.0) / 90.0 * max_radius)
819
- fill_color_foreground = light_color
820
- fill_color_background = dark_color
821
807
 
822
808
  elif deg < 361.0:
823
809
  max_radius = 360.0 - deg
@@ -825,8 +811,6 @@ def draw_moon_phase(
825
811
  max_radius = max_radius * max_radius
826
812
  circle_center_x = 20.0 + ((deg - 270.0) / 90.0 * (max_radius + 10.0)) - (max_radius + 10.0)
827
813
  circle_radius = 10.0 + max_radius - ((deg - 270.0) / 90.0 * max_radius)
828
- fill_color_foreground = dark_color
829
- fill_color_background = light_color
830
814
 
831
815
  else:
832
816
  raise KerykeionException(f"Invalid degree value: {deg}")
@@ -843,9 +827,9 @@ def draw_moon_phase(
843
827
  f' <circle cx="20" cy="10" r="10" />'
844
828
  f' </clipPath>'
845
829
  f' </defs>'
846
- f' <circle cx="20" cy="10" r="10" style="fill: {fill_color_background}" />'
847
- f' <circle cx="{circle_center_x}" cy="10" r="{circle_radius}" style="fill: {fill_color_foreground}" clip-path="url(#moonPhaseCutOffCircle)" />'
848
- f' <circle cx="20" cy="10" r="10" style="fill: none; stroke: {lunar_phase_outline_color}; stroke-width: 0.5px; stroke-opacity: 0.5" />'
830
+ f' <circle cx="20" cy="10" r="10" style="fill: var(--kerykeion-chart-color-lunar-phase-0)" />'
831
+ f' <circle cx="{circle_center_x}" cy="10" r="{circle_radius}" style="fill: var(--kerykeion-chart-color-lunar-phase-1)" clip-path="url(#moonPhaseCutOffCircle)" />'
832
+ f' <circle cx="20" cy="10" r="10" style="fill: none; stroke: var(--kerykeion-chart-color-lunar-phase-0); stroke-width: 0.5px; stroke-opacity: 0.5" />'
849
833
  f'</g>'
850
834
  )
851
835
 
@@ -375,7 +375,7 @@ def draw_planets(
375
375
  degree = int(t_offset)
376
376
  output += f'<g transform="translate({deg_x},{deg_y})">'
377
377
  output += f'<text transform="rotate({rotate})" text-anchor="{textanchor}'
378
- output += f'" style="fill: {available_planets_setting[i]["color"]}; font-size: 10px;">{convert_decimal_to_degree_string(t_points_deg[i], type="1")}'
378
+ output += f'" style="fill: {available_planets_setting[i]["color"]}; font-size: 10px;">{convert_decimal_to_degree_string(t_points_deg[i], format_type="1")}'
379
379
  output += "</text></g>"
380
380
 
381
381
  # check transit
@@ -15,6 +15,7 @@ from kerykeion.kr_types import KerykeionException, ChartType, KerykeionPointMode
15
15
  from kerykeion.kr_types import ChartTemplateDictionary
16
16
  from kerykeion.kr_types.kr_models import AstrologicalSubjectModel
17
17
  from kerykeion.kr_types.settings_models import KerykeionSettingsCelestialPointModel
18
+ from kerykeion.kr_types.kr_literals import KerykeionChartTheme
18
19
  from kerykeion.charts.charts_utils import (
19
20
  draw_zodiac_slice,
20
21
  convert_latitude_coordinate_to_string,
@@ -39,11 +40,10 @@ from kerykeion.utilities import get_houses_list
39
40
  from pathlib import Path
40
41
  from scour.scour import scourString
41
42
  from string import Template
42
- from typing import Union, List
43
+ from typing import Union, List, Literal
43
44
  from datetime import datetime
44
45
 
45
46
 
46
-
47
47
  class KerykeionChartSVG:
48
48
  """
49
49
  Creates the instance that can generate the chart with the
@@ -56,6 +56,8 @@ class KerykeionChartSVG:
56
56
  - new_output_directory: Set the output directory (default: home directory).
57
57
  - new_settings_file: Set the settings file (default: kr.config.json).
58
58
  In the settings file you can set the language, colors, planets, aspects, etc.
59
+ - theme: Set the theme for the chart (default: classic). If None the <style> tag will be empty.
60
+ That's useful if you want to use your own CSS file customizing the value of the default theme variables.
59
61
  """
60
62
 
61
63
  # Constants
@@ -103,6 +105,7 @@ class KerykeionChartSVG:
103
105
  second_obj: Union[AstrologicalSubject, AstrologicalSubjectModel, None] = None,
104
106
  new_output_directory: Union[str, None] = None,
105
107
  new_settings_file: Union[Path, None] = None,
108
+ theme: Union[KerykeionChartTheme, None] = "classic",
106
109
  ):
107
110
  # Directories:
108
111
  self.homedir = Path.home()
@@ -187,6 +190,25 @@ class KerykeionChartSVG:
187
190
  # Calculate element points from planets
188
191
  self._calculate_elements_points_from_planets()
189
192
 
193
+ # Set up theme
194
+ if theme not in get_args(KerykeionChartTheme) and theme is not None:
195
+ raise KerykeionException(f"Theme {theme} is not available. Set None for default theme.")
196
+
197
+ self.set_up_theme(theme)
198
+
199
+ def set_up_theme(self, theme: Union[KerykeionChartTheme, None] = None) -> None:
200
+ """
201
+ Set the theme for the chart.
202
+ """
203
+ if theme is None:
204
+ self.color_style_tag = ""
205
+ return
206
+
207
+ theme_dir = Path(__file__).parent / "themes"
208
+
209
+ with open(theme_dir / f"{theme}.css", "r") as f:
210
+ self.color_style_tag = f.read()
211
+
190
212
  def set_output_directory(self, dir_path: Path) -> None:
191
213
  """
192
214
  Sets the output direcotry and returns it's path.
@@ -325,6 +347,9 @@ class KerykeionChartSVG:
325
347
  # Initialize template dictionary
326
348
  template_dict: ChartTemplateDictionary = dict() # type: ignore
327
349
 
350
+ # Set the color style tag
351
+ template_dict["color_style_tag"] = self.color_style_tag
352
+
328
353
  # Set chart dimensions
329
354
  template_dict["chart_height"] = self.height
330
355
  template_dict["chart_width"] = self.width
@@ -376,7 +401,10 @@ class KerykeionChartSVG:
376
401
  template_dict["bottomLeft4"] = f'{self.t_user.perspective_type}'
377
402
 
378
403
  # Draw moon phase
379
- template_dict['moon_phase'] = draw_moon_phase(self.user.lunar_phase["degrees_between_s_m"], self.geolat)
404
+ template_dict['moon_phase'] = draw_moon_phase(
405
+ self.user.lunar_phase["degrees_between_s_m"],
406
+ self.geolat
407
+ )
380
408
 
381
409
  # Set location string
382
410
  if len(self.location) > 35:
@@ -651,4 +679,22 @@ if __name__ == "__main__":
651
679
  topocentric_chart = KerykeionChartSVG(topocentric_subject)
652
680
  topocentric_chart.makeSVG()
653
681
 
654
-
682
+ # Minified SVG
683
+ minified_subject = AstrologicalSubject("John Lennon - Minified", 1940, 10, 9, 18, 30, "Liverpool", "GB")
684
+ minified_chart = KerykeionChartSVG(minified_subject)
685
+ minified_chart.makeSVG(minify=True)
686
+
687
+ # Dark Theme Natal Chart
688
+ dark_theme_subject = AstrologicalSubject("John Lennon - Dark Theme", 1940, 10, 9, 18, 30, "Liverpool", "GB")
689
+ dark_theme_natal_chart = KerykeionChartSVG(dark_theme_subject, theme="dark")
690
+ dark_theme_natal_chart.makeSVG()
691
+
692
+ # Dark High Contrast Theme Natal Chart
693
+ dark_high_contrast_theme_subject = AstrologicalSubject("John Lennon - Dark High Contrast Theme", 1940, 10, 9, 18, 30, "Liverpool", "GB")
694
+ dark_high_contrast_theme_natal_chart = KerykeionChartSVG(dark_high_contrast_theme_subject, theme="dark-high-contrast")
695
+ dark_high_contrast_theme_natal_chart.makeSVG()
696
+
697
+ # Light Theme Natal Chart
698
+ light_theme_subject = AstrologicalSubject("John Lennon - Light Theme", 1940, 10, 9, 18, 30, "Liverpool", "GB")
699
+ light_theme_natal_chart = KerykeionChartSVG(light_theme_subject, theme="light")
700
+ light_theme_natal_chart.makeSVG()
@@ -8,8 +8,15 @@
8
8
  height="100%"
9
9
  viewBox="$viewbox"
10
10
  preserveAspectRatio="xMidYMid"
11
+ style="background-color: $paper_color_1"
11
12
  >
12
13
  <title>$stringTitle | Kerykeion</title>
14
+
15
+ <!-- Colors -->
16
+ <style kr:node="Theme_Colors_Tag">
17
+ $color_style_tag
18
+ </style>
19
+
13
20
  <!--- Main Chart -->
14
21
  <g kr:node="Main_Chart">
15
22
 
@@ -29,73 +36,73 @@
29
36
  <text x="20" y="508" style="fill: $paper_color_0; font-size: 10px">$bottomLeft4</text>
30
37
  </g>
31
38
 
32
- <!-- Lunar Phase -->
39
+ <!-- Lunar Phase -->
33
40
  <g kr:node="Lunar_Phase" transform="translate(20,518)">
34
41
  $moon_phase
35
42
  </g>
36
43
 
37
44
  <g kr:node="Main_Content" transform="translate(50,50)">
38
- <!-- Zodiac -->
45
+ <!-- Zodiac -->
39
46
  <g kr:node="Zodiac">
40
47
  $makeZodiac
41
48
  </g>
42
49
 
43
- <!-- First Circle -->
50
+ <!-- First Circle -->
44
51
  <g kr:node="First_Circle">
45
52
  $first_circle
46
53
  </g>
47
54
 
48
- <!-- Second Circle -->
55
+ <!-- Second Circle -->
49
56
  <g kr:node="Second_Circle">
50
57
  $second_circle
51
58
  </g>
52
59
 
53
- <!-- Third Circle -->
60
+ <!-- Third Circle -->
54
61
  <g kr:node="Third_Circle">
55
62
  $third_circle
56
63
  </g>
57
64
 
58
- <!-- Transit_Ring -->
65
+ <!-- Transit_Ring -->
59
66
  <g kr:node="Transint_Ring">
60
67
  $transitRing
61
68
  </g>
62
69
 
63
- <!-- Degree Ring -->
70
+ <!-- Degree Ring -->
64
71
  <g kr:node="Degree_Ring">
65
72
  $degreeRing
66
73
  </g>
67
74
 
68
- <!-- Houses -->
75
+ <!-- Houses -->
69
76
  <g kr:node="Houses_Wheel">
70
77
  $makeHouses
71
78
  </g>
72
79
 
73
- <!-- Planets -->
80
+ <!-- Planets -->
74
81
  <g kr:node="Planets_Wheel">
75
82
  $makePlanets
76
83
  </g>
77
84
 
78
- <!-- Aspects -->
85
+ <!-- Aspects -->
79
86
  <g kr:node="Aspects_Wheel">
80
87
  $makeAspects
81
88
  </g>
82
89
 
83
- <!-- AspectGrid -->
90
+ <!-- AspectGrid -->
84
91
  <g kr:node="Aspect_Grid">
85
92
  $makeAspectGrid
86
93
  </g>
87
94
 
88
- <!-- Elements -->
95
+ <!-- Elements -->
89
96
  <g kr:node="Elements_Percentages">
90
97
  $elements_percentages
91
98
  </g>
92
99
 
93
- <!-- Planet Grid -->
100
+ <!-- Planet Grid -->
94
101
  <g kr:node="Planet_Grid">
95
102
  $makePlanetGrid
96
103
  </g>
97
104
 
98
- <!-- Houses Grid -->
105
+ <!-- Houses Grid -->
99
106
  <g kr:node="Houses_Grid">
100
107
  $makeHousesGrid
101
108
  </g>
@@ -103,9 +110,9 @@
103
110
 
104
111
  </g>
105
112
 
106
- <!-- Symbols Definitions -->
113
+ <!-- Symbols Definitions -->
107
114
  <defs>
108
- <!-- Planets (24x24) -->
115
+ <!-- Planets (24x24) -->
109
116
  <symbol id="Sun">
110
117
  <g transform="translate(1,4)">
111
118
  <circle cx="10" cy="10" r="9"
@@ -251,7 +258,7 @@
251
258
  <symbol id="Fourth_House">
252
259
  <text y="20" style="font-size: 22px; fill: $planets_color_15">Ic</text>
253
260
  </symbol>
254
- <!-- Zodiac -->
261
+ <!-- Zodiac -->
255
262
  <symbol id="Ari">
256
263
  <path
257
264
  d="M 14.833536,31 C 14.832186,29.72825 14.845936,28.45584 14.780346,27.18523 C 14.640926,24.23046 14.271927,21.28979 13.761657,18.3776 C 13.321987,15.91911 12.787787,13.46983 11.990517,11.10075 C 11.530267,9.76243 10.992887,8.44912 10.357087,7.1849 C 9.7764065,6.054 9.1143465,4.94296 8.2160065,4.03494 C 7.6282465,3.4465 6.9007265,2.94535 6.0649765,2.81624 C 5.3237266,2.70142 4.5304666,2.87571 3.9356966,3.34384 C 3.2136565,3.90519 2.7654365,4.75625 2.5438365,5.63289 C 2.3053765,6.59995 2.2959765,7.61358 2.4292165,8.5973 C 2.6464465,10.15587 3.2689665,11.63258 4.0815466,12.96908 C 3.2924465,12.96908 2.5033465,12.96908 1.7142465,12.96908 C 0.89724651,11.48481 0.25799651,9.87299 0.060256514,8.17899 C -0.071203486,7.00695 0.0037165138,5.79903 0.37149651,4.67421 C 0.76442651,3.47499 1.5195865,2.3932 2.5232565,1.6304 C 3.2809665,1.05478 4.2059366,0.71268 5.1519466,0.63781 C 6.1938265,0.54496 7.2610465,0.74619 8.1909265,1.22976 C 9.3998665,1.85021 10.363677,2.85944 11.145277,3.95766 C 12.190347,5.44147 12.965067,7.10101 13.584287,8.80382 C 14.630766,11.7176 15.212626,14.77861 15.575146,17.84795 C 15.664836,18.61648 15.739556,19.38675 15.801446,20.15803 C 15.933606,20.15803 16.065776,20.15803 16.197936,20.15803 C 16.431516,16.78332 16.919066,13.40761 17.920236,10.17029 C 18.536746,8.19886 19.343216,6.2733 20.460106,4.53209 C 21.232966,3.34246 22.178396,2.22691 23.393236,1.47473 C 24.303946,0.906 25.375406,0.59315 26.449836,0.61744 C 27.406076,0.6265 28.366336,0.88414 29.173386,1.40571 C 29.918276,1.88417 30.536726,2.54825 31.007306,3.29688 C 31.640376,4.30981 31.942786,5.5036 31.990526,6.69149 C 32.064366,8.24898 31.700306,9.79841 31.118136,11.23409 C 30.878056,11.82774 30.600746,12.40584 30.296796,12.96908 C 29.503806,12.96908 28.710826,12.96908 27.917836,12.96908 C 28.695646,11.56825 29.330906,10.06044 29.565756,8.46485 C 29.705436,7.49053 29.689976,6.48739 29.469736,5.52616 C 29.266586,4.67296 28.870956,3.83354 28.201276,3.25079 C 27.718386,2.82263 27.078466,2.59021 26.436216,2.58446 C 25.680306,2.56059 24.950086,2.87303 24.358336,3.32879 C 23.494556,3.99307 22.844986,4.89198 22.282956,5.81679 C 21.451756,7.21072 20.811436,8.71018 20.250396,10.23124 C 19.437586,12.49802 18.893326,14.85166 18.440286,17.21432 C 17.839016,20.40325 17.413216,23.6291 17.246136,26.8715 C 17.183796,28.01857 17.173966,29.16745 17.177516,30.31595 C 17.177516,30.54397 17.177516,30.77198 17.177516,31 C 16.396186,31 15.614856,31 14.833536,31 z"
@@ -324,7 +331,7 @@
324
331
  style="fill: $zodiac_color_11"
325
332
  />
326
333
  </symbol>
327
- <!-- Aspects 12x12 -->
334
+ <!-- Aspects 12x12 -->
328
335
  <symbol id="orb0">
329
336
  <path
330
337
  d="M 6.0697539,7.3234852 C 6.0697539,8.7354882 4.9173651,9.8801442 3.4958214,9.8801442 C 2.0742775,9.8801442 0.92188857,8.7354882 0.92188857,7.3234852 C 0.92188857,5.9114822 2.0742775,4.7668272 3.4958214,4.7668272 C 4.9173651,4.7668272 6.0697539,5.9114822 6.0697539,7.3234852 L 6.0697539,7.3234852 z M 5.6252609,5.2113202 C 10.07019,0.76639018 10.07019,0.76639018 10.07019,0.76639018"
@@ -522,7 +529,7 @@
522
529
  "
523
530
  />
524
531
  </symbol>
525
- <!-- retrograde symbol (12x12) -->
532
+ <!-- retrograde symbol (12x12) -->
526
533
  <symbol id="retrograde">
527
534
  <path
528
535
  d="M 5.1695089,0.06514307 C 3.7597989,0.21597207 2.3317349,0.33149007 0.91358191,0.23513107 C 1.5490329,0.81902207 1.4024849,1.7100011 1.4228379,2.4700431 C 1.4174159,5.2174481 1.4337709,7.9652731 1.4145019,10.712411 C 1.5149409,11.170848 0.96799791,11.834471 0.90284691,11.964302 C 1.9976889,11.964302 3.0925299,11.964302 4.1873719,11.964302 C 3.6018439,11.577975 3.6510929,10.820034 3.6417399,10.219838 C 3.6417399,8.8974601 3.6417399,7.5750831 3.6417399,6.2527051 C 4.5026259,7.3972911 5.3635109,8.5418771 6.2243959,9.6864631 C 5.6030699,10.013049 5.0721439,10.497354 4.3692489,10.672393 C 4.5753769,10.955706 4.7815039,11.23902 4.9876319,11.522333 C 5.4939219,11.018036 6.1426389,10.672218 6.7336529,10.264421 C 7.3897039,11.216912 8.4697479,12.048392 9.7419399,12.011579 C 10.143603,12.002199 11.067691,11.885824 11.063775,11.676075 C 9.9004969,11.128054 9.0018849,10.179085 8.4069229,9.1085041 C 8.9670439,8.6756641 9.5056289,8.1870051 10.177382,7.9086731 C 10.419881,7.8661501 10.031668,7.5763571 9.9815039,7.4190951 C 9.7896089,6.9062931 9.6214379,7.4694661 9.2950839,7.6239451 C 8.8453989,7.8927681 8.3078839,8.3646011 7.8614459,8.4454351 C 7.2551369,7.5898671 6.6488279,6.7342991 6.0425199,5.8787321 C 7.2451939,5.6174351 8.5827839,5.0853891 9.0704409,3.9368981 C 9.4063139,3.1120211 9.2637339,2.1667931 8.9107889,1.3734701 C 8.1684869,0.41091107 6.8692049,-0.072451931 5.6199729,0.02510607 C 5.4693279,0.03287207 5.3190519,0.04651007 5.1695089,0.06514307 L 5.1695089,0.06514307 z M 4.0054949,0.98307806 C 4.9274209,0.87516007 6.0752839,0.95659406 6.6119469,1.7769821 C 7.1995489,2.7436231 6.9771779,4.0277241 6.2388859,4.8694001 C 5.6053289,5.5549031 4.5521059,5.6780771 3.6417399,5.5727531 C 3.6417399,4.0655271 3.6417399,2.5583001 3.6417399,1.0510731 C 3.7629919,1.0284081 3.8842429,1.0057431 4.0054949,0.98307806 z"
@@ -0,0 +1,82 @@
1
+ :root {
2
+ /* Main Colors */
3
+ --kerykeion-chart-color-paper-0: #000000;
4
+ --kerykeion-chart-color-paper-1: #ffffff;
5
+ --kerykeion-chart-color-zodiac-bg-0: #ff7200;
6
+ --kerykeion-chart-color-zodiac-bg-1: #6b3d00;
7
+ --kerykeion-chart-color-zodiac-bg-2: #69acf1;
8
+ --kerykeion-chart-color-zodiac-bg-3: #2b4972;
9
+ --kerykeion-chart-color-zodiac-bg-4: #ff7200;
10
+ --kerykeion-chart-color-zodiac-bg-5: #6b3d00;
11
+ --kerykeion-chart-color-zodiac-bg-6: #69acf1;
12
+ --kerykeion-chart-color-zodiac-bg-7: #2b4972;
13
+ --kerykeion-chart-color-zodiac-bg-8: #ff7200;
14
+ --kerykeion-chart-color-zodiac-bg-9: #6b3d00;
15
+ --kerykeion-chart-color-zodiac-bg-10: #69acf1;
16
+ --kerykeion-chart-color-zodiac-bg-11: #2b4972;
17
+ --kerykeion-chart-color-zodiac-icon-0: #ff7200;
18
+ --kerykeion-chart-color-zodiac-icon-1: #6b3d00;
19
+ --kerykeion-chart-color-zodiac-icon-2: #69acf1;
20
+ --kerykeion-chart-color-zodiac-icon-3: #2b4972;
21
+ --kerykeion-chart-color-zodiac-icon-4: #ff7200;
22
+ --kerykeion-chart-color-zodiac-icon-5: #6b3d00;
23
+ --kerykeion-chart-color-zodiac-icon-6: #69acf1;
24
+ --kerykeion-chart-color-zodiac-icon-7: #2b4972;
25
+ --kerykeion-chart-color-zodiac-icon-8: #ff7200;
26
+ --kerykeion-chart-color-zodiac-icon-9: #6b3d00;
27
+ --kerykeion-chart-color-zodiac-icon-10: #69acf1;
28
+ --kerykeion-chart-color-zodiac-icon-11: #2b4972;
29
+ --kerykeion-chart-color-zodiac-radix-ring-0: #ff0000;
30
+ --kerykeion-chart-color-zodiac-radix-ring-1: #ff0000;
31
+ --kerykeion-chart-color-zodiac-radix-ring-2: #ff0000;
32
+ --kerykeion-chart-color-zodiac-transit-ring-0: #ff0000;
33
+ --kerykeion-chart-color-zodiac-transit-ring-1: #ff0000;
34
+ --kerykeion-chart-color-zodiac-transit-ring-2: #0000ff;
35
+ --kerykeion-chart-color-zodiac-transit-ring-3: #0000ff;
36
+ --kerykeion-chart-color-houses-radix-line: #ff0000;
37
+ --kerykeion-chart-color-houses-transit-line: #0000ff;
38
+ --kerykeion-chart-color-lunar-phase-0: #000000;
39
+ --kerykeion-chart-color-lunar-phase-1: #ffffff;
40
+
41
+ /* Aspects */
42
+ --kerykeion-chart-color-conjunction: #5757e2;
43
+ --kerykeion-chart-color-semi-sextile: #810757;
44
+ --kerykeion-chart-color-semi-square: #b14e58;
45
+ --kerykeion-chart-color-sextile: #d59e28;
46
+ --kerykeion-chart-color-quintile: #1f99b3;
47
+ --kerykeion-chart-color-square: #dc0000;
48
+ --kerykeion-chart-color-trine: #36d100;
49
+ --kerykeion-chart-color-sesquiquadrate: #985a10;
50
+ --kerykeion-chart-color-biquintile: #7a9810;
51
+ --kerykeion-chart-color-quincunx: #26bbcf;
52
+ --kerykeion-chart-color-opposition: #510060;
53
+
54
+ /* Planets */
55
+ --kerykeion-chart-color-sun: #984b00;
56
+ --kerykeion-chart-color-moon: #150052;
57
+ --kerykeion-chart-color-mercury: #520800;
58
+ --kerykeion-chart-color-venus: #400052;
59
+ --kerykeion-chart-color-mars: #540000;
60
+ --kerykeion-chart-color-jupiter: #47133d;
61
+ --kerykeion-chart-color-saturn: #124500;
62
+ --kerykeion-chart-color-uranus: #6f0766;
63
+ --kerykeion-chart-color-neptune: #06537f;
64
+ --kerykeion-chart-color-pluto: #713f04;
65
+ --kerykeion-chart-color-mean-node: #4c1541;
66
+ --kerykeion-chart-color-true-node: #4c1541;
67
+ --kerykeion-chart-color-chiron: #666f06;
68
+ --kerykeion-chart-color-first-house: #ff7e00;
69
+ --kerykeion-chart-color-tenth-house: #ff0000;
70
+ --kerykeion-chart-color-seventh-house: #0000ff;
71
+ --kerykeion-chart-color-fourth-house: #000000;
72
+ --kerykeion-chart-color-mean-lilith: #000000;
73
+
74
+ /* Elements Percentage */
75
+ --kerykeion-chart-color-air-percentage: #6f76d1;
76
+ --kerykeion-chart-color-earth-percentage: #6a2d04;
77
+ --kerykeion-chart-color-fire-percentage: #ff6600;
78
+ --kerykeion-chart-color-water-percentage: #630e73;
79
+
80
+ /* Other */
81
+ --kerykeion-chart-color-house-number: #f00;
82
+ }
@@ -0,0 +1,121 @@
1
+ :root {
2
+ /* -------- */
3
+ /* General */
4
+ /* ------- */
5
+ --kerykeion-color-black: #000000;
6
+ --kerykeion-color-white: #ffffff;
7
+
8
+ --kerykeion-color-neutral-content: #c8cbd0;
9
+ --kerykeion-color-base-content: #ccd0d4;
10
+ --kerykeion-color-primary: #38bdf8;
11
+ --kerykeion-color-secondary: #818cf8;
12
+ --kerykeion-color-accent: #f471b5;
13
+ --kerykeion-color-neutral: #1e293b;
14
+ --kerykeion-color-base-100: #0f172a;
15
+ --kerykeion-color-info: #0ca5e9;
16
+ --kerykeion-color-info-content: #000000;
17
+ --kerykeion-color-success: #2dd4bf;
18
+ --kerykeion-color-warning: #f4bf50;
19
+ --kerykeion-color-error: #fb7085;
20
+
21
+ /* Zodiac */
22
+ --kerykeion-color-base-200: #0a1020;
23
+ --kerykeion-color-base-300: #27303c;
24
+
25
+ /* ----------- */
26
+ /* Chart Color */
27
+ /* ----------- */
28
+
29
+ /* Main colors */
30
+ --kerykeion-chart-color-paper-0: var(--kerykeion-color-neutral-content);
31
+ --kerykeion-chart-color-paper-1: var(--kerykeion-color-base-100);
32
+
33
+ /* Zodiac Sign Sectors */
34
+ --kerykeion-chart-color-zodiac-bg-0: var(--kerykeion-color-base-200);
35
+ --kerykeion-chart-color-zodiac-bg-1: var(--kerykeion-color-base-300);
36
+ --kerykeion-chart-color-zodiac-bg-2: var(--kerykeion-color-base-200);
37
+ --kerykeion-chart-color-zodiac-bg-3: var(--kerykeion-color-base-300);
38
+ --kerykeion-chart-color-zodiac-bg-4: var(--kerykeion-color-base-200);
39
+ --kerykeion-chart-color-zodiac-bg-5: var(--kerykeion-color-base-300);
40
+ --kerykeion-chart-color-zodiac-bg-6: var(--kerykeion-color-base-200);
41
+ --kerykeion-chart-color-zodiac-bg-7: var(--kerykeion-color-base-300);
42
+ --kerykeion-chart-color-zodiac-bg-8: var(--kerykeion-color-base-200);
43
+ --kerykeion-chart-color-zodiac-bg-9: var(--kerykeion-color-base-300);
44
+ --kerykeion-chart-color-zodiac-bg-10: var(--kerykeion-color-base-200);
45
+ --kerykeion-chart-color-zodiac-bg-11: var(--kerykeion-color-base-300);
46
+
47
+ /* Zodiac Sign Rings */
48
+ --kerykeion-chart-color-zodiac-radix-ring-0: var(--kerykeion-color-neutral);
49
+ --kerykeion-chart-color-zodiac-radix-ring-1: var(--kerykeion-color-neutral);
50
+ --kerykeion-chart-color-zodiac-radix-ring-2: var(--kerykeion-color-neutral);
51
+ --kerykeion-chart-color-zodiac-transit-ring-0: var(--kerykeion-color-neutral);
52
+ --kerykeion-chart-color-zodiac-transit-ring-1: var(--kerykeion-color-neutral);
53
+ --kerykeion-chart-color-zodiac-transit-ring-2: var(--kerykeion-color-neutral);
54
+ --kerykeion-chart-color-zodiac-transit-ring-3: var(--kerykeion-color-neutral);
55
+ --kerykeion-chart-color-houses-radix-line: var(
56
+ --kerykeion-color-base-content
57
+ );
58
+ --kerykeion-chart-color-houses-transit-line: var(
59
+ --kerykeion-color-base-content
60
+ );
61
+
62
+ /* Aspects */
63
+ --kerykeion-chart-color-conjunction: var(--kerykeion-color-success);
64
+ --kerykeion-chart-color-semi-sextile: var(--kerykeion-color-success);
65
+ --kerykeion-chart-color-semi-square: var(--kerykeion-color-error);
66
+ --kerykeion-chart-color-sextile: var(--kerykeion-color-success);
67
+ --kerykeion-chart-color-quintile: var(--kerykeion-color-secondary);
68
+ --kerykeion-chart-color-square: var(--kerykeion-color-error);
69
+ --kerykeion-chart-color-trine: var(--kerykeion-color-success);
70
+ --kerykeion-chart-color-sesquiquadrate: var(--kerykeion-color-error);
71
+ --kerykeion-chart-color-biquintile: var(--kerykeion-color-secondary);
72
+ --kerykeion-chart-color-quincunx: var(--kerykeion-color-secondary);
73
+ --kerykeion-chart-color-opposition: var(--kerykeion-color-error);
74
+
75
+ /* Planets */
76
+ --kerykeion-chart-color-sun: var(--kerykeion-color-warning);
77
+ --kerykeion-chart-color-moon: var(--kerykeion-color-secondary);
78
+ --kerykeion-chart-color-mercury: var(--kerykeion-color-primary);
79
+ --kerykeion-chart-color-venus: var(--kerykeion-color-accent);
80
+ --kerykeion-chart-color-mars: var(--kerykeion-color-warning);
81
+ --kerykeion-chart-color-jupiter: var(--kerykeion-color-primary);
82
+ --kerykeion-chart-color-saturn: var(--kerykeion-color-secondary);
83
+ --kerykeion-chart-color-uranus: var(--kerykeion-color-accent);
84
+ --kerykeion-chart-color-neptune: var(--kerykeion-color-primary);
85
+ --kerykeion-chart-color-pluto: var(--kerykeion-color-secondary);
86
+ --kerykeion-chart-color-mean-node: var(--kerykeion-color-warning);
87
+ --kerykeion-chart-color-true-node: var(--kerykeion-color-warning);
88
+ --kerykeion-chart-color-chiron: var(--kerykeion-color-secondary);
89
+ --kerykeion-chart-color-first-house: var(--kerykeion-color-warning);
90
+ --kerykeion-chart-color-tenth-house: var(--kerykeion-color-warning);
91
+ --kerykeion-chart-color-seventh-house: var(--kerykeion-color-warning);
92
+ --kerykeion-chart-color-fourth-house: var(--kerykeion-color-warning);
93
+ --kerykeion-chart-color-mean-lilith: var(--kerykeion-color-secondary);
94
+
95
+ /* Zodiac Signs */
96
+ --kerykeion-chart-color-zodiac-icon-0: var(--kerykeion-color-accent);
97
+ --kerykeion-chart-color-zodiac-icon-1: var(--kerykeion-color-warning);
98
+ --kerykeion-chart-color-zodiac-icon-2: var(--kerykeion-color-primary);
99
+ --kerykeion-chart-color-zodiac-icon-3: var(--kerykeion-color-secondary);
100
+ --kerykeion-chart-color-zodiac-icon-4: var(--kerykeion-color-accent);
101
+ --kerykeion-chart-color-zodiac-icon-5: var(--kerykeion-color-warning);
102
+ --kerykeion-chart-color-zodiac-icon-6: var(--kerykeion-color-primary);
103
+ --kerykeion-chart-color-zodiac-icon-7: var(--kerykeion-color-secondary);
104
+ --kerykeion-chart-color-zodiac-icon-8: var(--kerykeion-color-accent);
105
+ --kerykeion-chart-color-zodiac-icon-9: var(--kerykeion-color-warning);
106
+ --kerykeion-chart-color-zodiac-icon-10: var(--kerykeion-color-primary);
107
+ --kerykeion-chart-color-zodiac-icon-11: var(--kerykeion-color-secondary);
108
+
109
+ /* Elements Percentage */
110
+ --kerykeion-chart-color-air-percentage: var(--kerykeion-color-primary);
111
+ --kerykeion-chart-color-earth-percentage: var(--kerykeion-color-warning);
112
+ --kerykeion-chart-color-fire-percentage: var(--kerykeion-color-accent);
113
+ --kerykeion-chart-color-water-percentage: var(--kerykeion-color-secondary);
114
+
115
+ /* Aspects */
116
+ --kerykeion-chart-color-lunar-phase-0: var(--kerykeion-color-black);
117
+ --kerykeion-chart-color-lunar-phase-1: var(--kerykeion-color-white);
118
+
119
+ /* Houses Numbers */
120
+ --kerykeion-chart-color-house-number: var(--kerykeion-color-base-content);
121
+ }