# amnweb/yasb-themes architecture

> Architecture diagram of the GitHub repository amnweb/yasb-themes, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/amnweb/yasb-themes
- Repository: https://github.com/amnweb/yasb-themes

## Overview

This repository is a community catalog of YASB themes, with an automated contribution process rather than an application runtime. The main user journey is to browse the theme collection, or submit a theme through the GitHub issue template; maintainers also accept updates and deletions through pull requests. Theme entries contain configuration, CSS, and sometimes assets. The tree shows automation for processing submissions, checking compatibility, and rebuilding the catalog README, but source excerpts were unavailable, so their internal call relationships are not asserted.

Main entry points: [`.github/workflows`](https://github.com/amnweb/yasb-themes/tree/main/.github/workflows) (GitHub workflows), [`.github/ISSUE_TEMPLATE/create-theme.yaml`](https://github.com/amnweb/yasb-themes/blob/main/.github/ISSUE_TEMPLATE/create-theme.yaml) (Submission template), [`.github/scripts/process-theme.py`](https://github.com/amnweb/yasb-themes/blob/main/.github/scripts/process-theme.py) (Submission processor), [`.github/scripts/generate-readme.py`](https://github.com/amnweb/yasb-themes/blob/main/.github/scripts/generate-readme.py) (Catalog README)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_catalog["Theme catalog"]
  node_catalog_files["Theme collection"]
  node_catalog_index["Theme index<br/>[themes.json]"]
  node_theme_details["Theme examples"]
end

subgraph group_contribution["Theme contributions"]
  node_issue_template["Submission template<br/>[create-theme.yaml]"]
  node_pull_request["Theme update PR"]
end

subgraph group_automation["Repository automation"]
  node_actions["GitHub workflows<br/>[workflows]"]
  node_theme_processor["Submission processor<br/>[process-theme.py]"]
  node_theme_checks["Theme checks<br/>[theme_check.py]"]
  node_compatibility["Compatibility checks<br/>[theme-compat.py]"]
  node_readme_generator["Catalog README<br/>[generate-readme.py]"]
end

node_visitor(("Theme user"))
node_submitter(("Theme contributor"))

node_visitor -->|"browses"| node_catalog_files
node_visitor -->|"views theme"| node_theme_details
node_submitter -->|"submits via"| node_issue_template
node_submitter -->|"updates via"| node_pull_request
node_issue_template -->|"triggers processing"| node_actions
node_pull_request -->|"triggers checks"| node_actions
node_actions -->|"dispatches"| node_theme_processor
node_actions -->|"dispatches"| node_theme_checks
node_actions -->|"dispatches"| node_compatibility
node_actions -->|"dispatches"| node_readme_generator
node_theme_processor -->|"processes themes"| node_catalog_files
node_readme_generator -->|"reads index"| node_catalog_index

click node_catalog_files "https://github.com/amnweb/yasb-themes/tree/main/themes"
click node_catalog_index "https://github.com/amnweb/yasb-themes/blob/main/themes.json"
click node_theme_details "https://github.com/amnweb/yasb-themes/tree/main/themes/834b8315-f1ac-4fd9-a657-06a58d4f7a4e"
click node_issue_template "https://github.com/amnweb/yasb-themes/blob/main/.github/ISSUE_TEMPLATE/create-theme.yaml"
click node_actions "https://github.com/amnweb/yasb-themes/tree/main/.github/workflows"
click node_theme_processor "https://github.com/amnweb/yasb-themes/blob/main/.github/scripts/process-theme.py"
click node_theme_checks "https://github.com/amnweb/yasb-themes/blob/main/.github/scripts/theme_check.py"
click node_compatibility "https://github.com/amnweb/yasb-themes/blob/main/.github/scripts/theme-compat.py"
click node_readme_generator "https://github.com/amnweb/yasb-themes/blob/main/.github/scripts/generate-readme.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_catalog_files,node_catalog_index,node_theme_details,node_visitor toneBlue
class node_issue_template,node_pull_request toneAmber
class node_actions,node_theme_processor,node_theme_checks,node_compatibility,node_readme_generator toneMint
class node_submitter toneIndigo
```

## Components

### Theme catalog

- [Theme collection](https://github.com/amnweb/yasb-themes/tree/main/themes): `themes`
- [Theme index](https://github.com/amnweb/yasb-themes/blob/main/themes.json): `themes.json`
- [Theme examples](https://github.com/amnweb/yasb-themes/tree/main/themes/834b8315-f1ac-4fd9-a657-06a58d4f7a4e): `themes/834b8315-f1ac-4fd9-a657-06a58d4f7a4e`

### Theme contributions

- [Submission template](https://github.com/amnweb/yasb-themes/blob/main/.github/ISSUE_TEMPLATE/create-theme.yaml): `.github/ISSUE_TEMPLATE/create-theme.yaml`
- **Theme update PR**

### Repository automation

- [GitHub workflows](https://github.com/amnweb/yasb-themes/tree/main/.github/workflows): `.github/workflows`
- [Submission processor](https://github.com/amnweb/yasb-themes/blob/main/.github/scripts/process-theme.py): `.github/scripts/process-theme.py`
- [Theme checks](https://github.com/amnweb/yasb-themes/blob/main/.github/scripts/theme_check.py): `.github/scripts/theme_check.py`
- [Compatibility checks](https://github.com/amnweb/yasb-themes/blob/main/.github/scripts/theme-compat.py): `.github/scripts/theme-compat.py`
- [Catalog README](https://github.com/amnweb/yasb-themes/blob/main/.github/scripts/generate-readme.py): `.github/scripts/generate-readme.py`

### Other components

- **Theme user**
- **Theme contributor**

## Connections

- Theme user → Theme collection: browses
- Theme user → Theme examples: views theme
- Theme contributor → Submission template: submits via
- Theme contributor → Theme update PR: updates via
- Submission template → GitHub workflows: triggers processing
- Theme update PR → GitHub workflows: triggers checks
- GitHub workflows → Submission processor: dispatches
- GitHub workflows → Theme checks: dispatches
- GitHub workflows → Compatibility checks: dispatches
- GitHub workflows → Catalog README: dispatches
- Submission processor → Theme collection: processes themes
- Catalog README → Theme index: reads index
