34 lines
950 B
TypeScript
34 lines
950 B
TypeScript
import React from "react";
|
|
import ReactDOM from "react-dom/client";
|
|
import App from "./App";
|
|
import { ErrorBoundary } from "./components/ErrorBoundary";
|
|
|
|
// 设计 Token(视觉规范 v1.2,唯一品味依据)
|
|
import "./tokens/color.css";
|
|
import "./tokens/typography.css";
|
|
import "./tokens/space.css";
|
|
import "./tokens/motion.css";
|
|
import "./tokens/effects.css";
|
|
import "./tokens/tiers.css";
|
|
import "./styles/global.css";
|
|
|
|
/** 性能档位自动判定(架构 §8.3 / 视觉规范 §5) */
|
|
function applyFxTier(): void {
|
|
const html = document.documentElement;
|
|
const reduce = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
|
|
const cores = navigator.hardwareConcurrency ?? 8;
|
|
if (reduce || cores <= 4) {
|
|
html.dataset.fxTier = "low";
|
|
}
|
|
}
|
|
|
|
applyFxTier();
|
|
|
|
ReactDOM.createRoot(document.getElementById("root")!).render(
|
|
<React.StrictMode>
|
|
<ErrorBoundary>
|
|
<App />
|
|
</ErrorBoundary>
|
|
</React.StrictMode>,
|
|
);
|