123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- import { computed, ref, watch } from 'vue';
- import { preferences } from '@vben/preferences';
- export function useDesignTokens() {
- const rootStyles = getComputedStyle(document.documentElement);
- const colorPrimary = ref('');
- const colorError = ref('');
- const colorSuccess = ref('');
- const colorWarning = ref('');
- const colorInfo = ref('');
- const colorBgBase = ref('');
- const colorTextBase = ref('');
- const colorBgContainer = ref('');
- const colorBgElevated = ref('');
- const colorBgLayout = ref('');
- const colorBgMask = ref('');
- const colorBorder = ref('');
- const borderRadius = ref<any>('');
- const getCssVariableValue = (variable: string, isColor: boolean = true) => {
- const value = rootStyles.getPropertyValue(variable);
- return isColor ? `hsl(${value})` : value;
- };
- watch(
- () => preferences.theme,
- () => {
- colorInfo.value = colorPrimary.value = getCssVariableValue('--primary');
- colorError.value = getCssVariableValue('--destructive');
- colorWarning.value = getCssVariableValue('--warning');
- colorSuccess.value = getCssVariableValue('--success');
- colorBgBase.value = getCssVariableValue('--background');
- colorBgLayout.value = getCssVariableValue('--background-deep');
- colorBgMask.value = getCssVariableValue('--overlay');
- colorBorder.value = getCssVariableValue('--border');
- colorTextBase.value = getCssVariableValue('--foreground');
- colorBgElevated.value = getCssVariableValue('--popover');
- colorBgContainer.value = getCssVariableValue('--card');
- borderRadius.value = getCssVariableValue('--radius', false);
- },
- { immediate: true },
- );
- const antDesignTokens = computed(() => {
- return {
- borderRadius: borderRadius.value,
- colorBgBase: colorBgBase.value,
- colorBgContainer: colorBgContainer.value,
- colorBgElevated: colorBgElevated.value,
- colorBgLayout: colorBgLayout.value,
- colorBgMask: colorBgMask.value,
- colorBorder: colorBorder.value,
- colorError: colorError.value,
- colorInfo: colorInfo.value,
- colorPrimary: colorPrimary.value,
- colorSuccess: colorSuccess.value,
- colorTextBase: colorTextBase.value,
- colorWarning: colorWarning.value,
- };
- });
- return {
- antDesignTokens,
- borderRadius,
- colorBgBase,
- colorBgContainer,
- colorBgElevated,
- colorBorder,
- colorError,
- colorInfo,
- colorPrimary,
- colorSuccess,
- colorTextBase,
- colorWarning,
- };
- }
|