Skip to content

Declarable CSS Theming System #8

@CameronNicolson

Description

@CameronNicolson

Overview

Introduce a CSS theming system that allows for easily swappable themes, where each theme is read by a common interface and integrates with the template rendering system.

This feature would allow for more structured and maintainable CSS theming, benefiting both developers and designers by improving flexibility and readability.

Problem Statement

Currently, there is no standardised way to declaratively associate styles with SGML elements, making it difficult to manage themes in a structured and reusable manner.


Proposed Solution

  • Element-to-style mapping: Define a system where specific SGML elements can be associated with a corresponding CSS class (e.g., tags receiving a "link" class).
  • Class-to-class mapping: Allow existing classes to be dynamically extended or modified by themes (e.g., an element with "article" can be targeted to become "article custom-article-blue").
  • Theme configuration format: Create a structured format for defining themes that can be easily edited as text documents and translated into Python objects.
  • Common interface: Ensure all themes are read by a unified system that integrates smoothly with the template rendering process.

Tasks

  • Define a configuration format (e.g., JSON, YAML) for themes.
  • Create a Python-based parser to convert theme configurations into usable style mappings.
  • Integrate with existing templating engines for seamless adoption.

Metadata

Metadata

Labels

FeatureA brand new component or idea

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions