Deep theme system knowledge: createMuiTheme factory, dark/light palette tokens, typography scale, ThemeProvider color-scheme application, and tss-react/mui styling conventions.
74%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./.github/skills/theme/SKILL.mdHow colors, typography, and the overall visual design are managed via Material-UI (MUI) theming.
packages/theme/src/
├── index.ts (package entry, re-exports)
├── createMuiTheme.ts (MUI theme factory)
├── palette.ts (dark & light color definitions)
├── typography.ts (font families & sizes)
└── components/ (MUI component overrides)| File | Role |
|---|---|
packages/theme/src/createMuiTheme.ts | Factory that builds the full MUI theme |
packages/theme/src/palette.ts | Dark and light palette color definitions |
packages/theme/src/typography.ts | Font families (Inter, IBM Plex Mono) and scale |
packages/theme/src/index.ts | Package entry, re-exports |
Treat
palette.ts/typography.tsas the source of truth for exact token values (hex codes, font sizes). Read them directly rather than hardcoding specific values elsewhere.
Lichtblick supports two schemes: dark (default) and light. Each is defined as a palette
object (mode, primary, secondary, error, warning, info, success, background,
text, …) in palette.ts.
colorScheme setting)ThemeProvider reads the preference from contextcreateMuiTheme(colorScheme) is called with "dark" or "light"ThemeProvider wraps the entire app with the resulting themefunction createMuiTheme(colorScheme: "dark" | "light"): Theme {
const palette = colorScheme === "dark" ? darkPalette : lightPalette;
return createTheme({ palette, typography, components: { /* MUI overrides */ } });
}The scale (h1, h2, body1, body2, …) is defined in typography.ts.
Components are styled with tss-react/mui — not @emotion/styled, MUI's styled(), Box, or
the sx prop. Styles live in ComponentName.style.ts files.
import { makeStyles } from "tss-react/mui";
const useStyles = makeStyles()((theme) => ({
root: {
backgroundColor: theme.palette.background.paper,
color: theme.palette.text.primary,
fontFamily: theme.typography.fontFamily,
},
highlight: { color: theme.palette.primary.main },
}));colorScheme delivery in RenderState: load panel-extension-api skilllichtblick-suite/lichtblick
9589f38
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.