单核
LUNA主题系统的基础类型包。 它提供主题类型,颜色ID/键常数和转换公用,以及主题分辨率(resolver)API.
此软件包不会传送任何混凝土颜色值 。 颜色值存在于其中 @dugyu/luna-tokens 作为真理的唯一来源.
安装
pnpm add @dugyu/luna-core
内部是什么
- 主题密钥 :
LunaThemeKey编号 :LunaThemeVariant编号 :LunaThemeMode外加可扩展的自定义空间LunaCustomThemeKey - 主题符号类型 :
LunaThemeTokens编号 :LunaCustomThemeTokens编号 :LunaCustomThemeMeta - 颜色系统 :
LunaColorId(婴儿箱),LunaColorKey(骆驼案),LUNA_COLOR_IDS编号 :LUNA_COLOR_KEYS,以及colorIdToColorKey编号 :colorKeyToColorId - 主题解析器 :
resolveThemeKeyFromList编号 :resolveThemeObjectFromList编号 :inferThemeMode
使用量
与托肯斯对等( 获得混凝土颜色值)
import type { LunaThemeTokens } from '@dugyu/luna-core';
import { lunarisDarkTokens } from '@dugyu/luna-tokens';
const theme: LunaThemeTokens = lunarisDarkTokens;
const primary = theme.colors['primary'];
const contentMuted = theme.colors['content-muted'];
颜色Id/ 颜色密钥
LunaColorId 是符号(kebab- case)中使用的颜色 id,例如. primary-content。 。 。 . LunaColorKey 是用于运行时组件/鼠标的骆驼Case变体,例如:. primaryContent。 。 。 .
import {
LUNA_COLOR_IDS,
LUNA_COLOR_KEYS,
colorIdToColorKey,
colorKeyToColorId,
createEmptyLunaColors,
} from '@dugyu/luna-core';
const firstId = LUNA_COLOR_IDS[0];
const key = colorIdToColorKey('primary-content');
const id = colorKeyToColorId('primaryContent');
const emptyColors = createEmptyLunaColors();
emptyColors.primary = '#ff8ab5';
主题解析器( 从允许列表中选择最佳匹配)
import { resolveThemeKeyFromList } from '@dugyu/luna-core';
const allowed = ['luna-light', 'lunaris-dark'] as const;
const resolved1 = resolveThemeKeyFromList(allowed, 'lunaris-light');
const resolved2 = resolveThemeKeyFromList(allowed, 'luna-dark');
LUNA 软件包
@dugyu/luna-tokens象征价值的真相来源@dugyu/luna-core符号和主题类型定义(本套件)@dugyu/luna-styles——CSS变量输出@dugyu/luna-tailwind• 尾风公用事业产出@dugyu/luna-reactlynx—— ReactLynx 运行时间集成