framework-ui-internals

Documents internal rules for editing theme.css, base classes, and ui-kit components in client/ui-kit.

1|Updated Jun 25, 2026
One-click install
npx skills add https://github.com/IgorAIvanov/altera03 --skill framework-ui-internals-igoraivanov
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: framework-ui-internals
Source: https://github.com/IgorAIvanov/altera03/tree/main/skills/src/framework-ui-internals
Command: npx skills add https://github.com/IgorAIvanov/altera03 --skill framework-ui-internals-igoraivanov

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Prevents recurring regressions when editing the client/ui-kit framework: theme rules silently overriding daisyUI variants, chunk-graph bloat from value imports, Lit/TypeScript pitfalls in base classes, and type checks that miss dynamically loaded screens. ## Core Features & Use Cases - Theme cascade rules: Explains why the layerless theme.css beats daisyUI layers, why background-color must replace background, and why states and variants must be declared in the theme itself. - Chunk graph discipline: Defines what may become a shared module (types and pure functions only) and how to verify bundles with deno task build:front plus grep on emitted chunks. - Lit/TypeScript pitfalls in base classes: Covers protected-name collisions with ARIAMixin, field-vs-getter overrides, svg vs html tags, backticks inside template literals, focus timing after updateComplete, and static styles inheritance. - Use Case: Before editing QueryTableBase or adding a button variant to theme.css, consult this Skill to avoid invisible checkboxes, dead variant classes, or a picker chunk dragging in the entire list module. ## Quick Start Review the relevant section of this Skill before modifying theme.css, BaseUI, QueryTableBase, ModelListBase, ModelPickerBase, or any ui-kit component, then run the full pre-commit checks it lists.

Frequently Asked Questions about framework-ui-internals

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
Why do daisyUI variants like btn-ghost not work in my theme?

A layerless theme.css loaded after Tailwind and daisyUI overrides any layered rule regardless of specificity. If the theme sets background, border, and color unconditionally on .btn, variants must be redeclared in the theme with a two-class selector like .btn.btn-ghost.

How do I prevent chunk bloat when sharing code between Lit components?

Share only types and pure functions in common modules, never classes or components, since side-effect imports that register custom elements cannot be tree-shaken. Verify with deno task build:front and grep the emitted chunk imports.

Why does my SVG icon not render inside a Lit template?

The html tag creates elements in the HTML namespace, so an interpolated <path> inside <svg> is unknown to the browser. Build SVG content with Lit's svg tag instead; the failure is silent with no console error.

Why does deno check app/main.ts miss errors in screen files?

Screens load dynamically through view-manifest, so they are outside the entry graph along with base classes like query-table-base. Run deno task check across the whole tree instead, since Vite build does not type-check either.

When should code move into a base class like QueryTableBase?

Only code already duplicated in both subclasses moves into the base; speculative additions create flag-based branching. The base holds mechanics without policy, and markup is split into separate render methods rather than one render() with conditionals.