Centralize shared stylesheets used by hero_website_lib #4

Open
opened 2026-05-18 12:37:11 +00:00 by timur · 1 comment
Owner

Context

Meeting feedback: common styling is duplicated across hero_website_framework and various service UIs. Move shared CSS / theme tokens / Bootstrap overrides into hero_web_template so every Hero UI (framework-backed or not) references the same source.

Scope

  1. Audit current CSS surface in hero_website_framework/crates/hero_website_lib/static/css/ (Bootstrap, FontAwesome, CodeMirror themes, highlight.js themes, custom admin/auth/blog CSS).
  2. Identify what is Hero-specific theming (admin tab styling, stat boxes, dark/light tokens, brand colors) vs third-party vendor CSS (Bootstrap, FontAwesome).
  3. Move Hero-specific theming into hero_web_template/webcomponent/ (or a new shared CSS asset crate — propose the layout in a comment).
  4. hero_website_lib references the shared CSS instead of carrying its own copy.
  5. Document the asset layout + how a non-framework service includes the shared CSS.

Out of scope

  • Replacing Bootstrap / FontAwesome / CodeMirror — those vendor assets stay where they are, just centralized once.
  • Restyling — this is a refactor, not a design pass.

Acceptance

  • Shared theme CSS lives in exactly one place under hero_web_template.
  • hero_website_lib pulls it at build (via rust-embed from a shared crate, or via a build-time copy step — propose in a comment).
  • A service that does NOT use hero_website_lib can still include the same shared CSS with a documented snippet.
  • hero_website_framework #hoist-components (parallel work — components and CSS travel together)
  • hero_skills web skills (update to reference new asset locations)
## Context Meeting feedback: common styling is duplicated across hero_website_framework and various service UIs. Move shared CSS / theme tokens / Bootstrap overrides into `hero_web_template` so every Hero UI (framework-backed or not) references the same source. ## Scope 1. Audit current CSS surface in `hero_website_framework/crates/hero_website_lib/static/css/` (Bootstrap, FontAwesome, CodeMirror themes, highlight.js themes, custom admin/auth/blog CSS). 2. Identify what is **Hero-specific theming** (admin tab styling, stat boxes, dark/light tokens, brand colors) vs **third-party vendor CSS** (Bootstrap, FontAwesome). 3. Move Hero-specific theming into `hero_web_template/webcomponent/` (or a new shared CSS asset crate — propose the layout in a comment). 4. `hero_website_lib` references the shared CSS instead of carrying its own copy. 5. Document the asset layout + how a non-framework service includes the shared CSS. ## Out of scope - Replacing Bootstrap / FontAwesome / CodeMirror — those vendor assets stay where they are, just centralized once. - Restyling — this is a refactor, not a design pass. ## Acceptance - Shared theme CSS lives in exactly one place under `hero_web_template`. - `hero_website_lib` pulls it at build (via `rust-embed` from a shared crate, or via a build-time copy step — propose in a comment). - A service that does NOT use `hero_website_lib` can still include the same shared CSS with a documented snippet. ## Related - hero_website_framework #hoist-components (parallel work — components and CSS travel together) - hero_skills web skills (update to reference new asset locations)
Author
Owner

Parent / context tracker: hero_skills#262 — read it before starting work on this issue. Locked decisions, reference materials, and execution order live there. Iterate via comments here; consolidation passes on the body only after feedback settles.

Parent / context tracker: [hero_skills#262](https://forge.ourworld.tf/lhumina_code/hero_skills/issues/262) — read it before starting work on this issue. Locked decisions, reference materials, and execution order live there. Iterate via comments here; consolidation passes on the body only after feedback settles.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/hero_web_template#4
No description provided.