Source code for betty.project.extension.cotton_candy.config
"""
Provide configuration for the Cotton Candy extension.
"""
from __future__ import annotations
from typing import Sequence, TYPE_CHECKING
from typing_extensions import override
from betty.assertion import assert_record, OptionalField
from betty.config import Configuration
from betty.model.config import EntityReference, EntityReferenceSequence
from betty.project.extension._theme import ColorConfiguration
if TYPE_CHECKING:
from betty.serde.dump import Dump, DumpMapping
from betty.model import UserFacingEntity, Entity
[docs]
class CottonCandyConfiguration(Configuration):
"""
Provide configuration for the :py:class:`betty.project.extension.cotton_candy.CottonCandy` extension.
"""
DEFAULT_PRIMARY_INACTIVE_COLOR = "#ffc0cb"
DEFAULT_PRIMARY_ACTIVE_COLOR = "#ff69b4"
DEFAULT_LINK_INACTIVE_COLOR = "#149988"
DEFAULT_LINK_ACTIVE_COLOR = "#2a615a"
@property
def featured_entities(self) -> EntityReferenceSequence[UserFacingEntity & Entity]:
"""
The entities featured on the front page.
"""
return self._featured_entities
@property
def primary_inactive_color(self) -> ColorConfiguration:
"""
The color for inactive primary/CTA elements.
"""
return self._primary_inactive_color
@property
def primary_active_color(self) -> ColorConfiguration:
"""
The color for active primary/CTA elements.
"""
return self._primary_active_color
@property
def link_inactive_color(self) -> ColorConfiguration:
"""
The color for inactive hyperlinks.
"""
return self._link_inactive_color
@property
def link_active_color(self) -> ColorConfiguration:
"""
The color for active hyperlinks.
"""
return self._link_active_color