@zendir/ui 0.2.21 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +183 -1
- package/README.md +70 -28
- package/dist/index.d.ts +1 -1
- package/dist/index.js +73 -64
- package/dist/index.js.map +1 -1
- package/dist/react/3d/CesiumCaptureSource.d.ts +1 -1
- package/dist/react/3d/CesiumCaptureSource.js +1 -1
- package/dist/react/3d/CesiumCaptureSource.js.map +1 -1
- package/dist/react/3d/ZenSpace3D.js +1254 -0
- package/dist/react/3d/ZenSpace3D.js.map +1 -0
- package/dist/react/3d/ZenSpace3DCesium.js +579 -0
- package/dist/react/3d/ZenSpace3DCesium.js.map +1 -0
- package/dist/react/3d/ZenSpace3DShaders.js +478 -0
- package/dist/react/3d/ZenSpace3DShaders.js.map +1 -0
- package/dist/react/3d/ZenSpace3DTypes.d.ts +28 -1
- package/dist/react/3d/ZenSpace3DUtils.d.ts +17 -173
- package/dist/react/3d/ZenSpace3DUtils.js +20 -1
- package/dist/react/3d/ZenSpace3DUtils.js.map +1 -1
- package/dist/react/3d/capturePngAnalysis.js +42 -0
- package/dist/react/3d/capturePngAnalysis.js.map +1 -0
- package/dist/react/3d/index.d.ts +6 -12
- package/dist/react/3d/index.js +57 -0
- package/dist/react/3d/index.js.map +1 -0
- package/dist/react/3d/threeLoader.js +22 -0
- package/dist/react/3d/threeLoader.js.map +1 -0
- package/dist/react/astro/ClassificationBanner.js +1 -1
- package/dist/react/astro/GlobalStatusBar.js +1 -1
- package/dist/react/astro/MissionClock.js +8 -5
- package/dist/react/astro/MissionClock.js.map +1 -1
- package/dist/react/astro/MonitoringIcon.js +2 -2
- package/dist/react/astro/MonitoringIcon.js.map +1 -1
- package/dist/react/astro/Notification.js +1 -1
- package/dist/react/astro/Progress.js +1 -1
- package/dist/react/astro/SimulationControls.js +3 -3
- package/dist/react/astro/SimulationControls.js.map +1 -1
- package/dist/react/astro/StatusIndicator.js +1 -1
- package/dist/react/astro/UnifiedTimeline.js +5 -5
- package/dist/react/astro/UnifiedTimeline.js.map +1 -1
- package/dist/react/astro/index.js +34 -0
- package/dist/react/astro/index.js.map +1 -0
- package/dist/react/cards/AccessCard.js +410 -0
- package/dist/react/cards/AccessCard.js.map +1 -0
- package/dist/react/cards/OrbitCard.js +372 -0
- package/dist/react/cards/OrbitCard.js.map +1 -0
- package/dist/react/cards/SpacecraftCard.js +941 -0
- package/dist/react/cards/SpacecraftCard.js.map +1 -0
- package/dist/react/cards/TelemetryCard.js +742 -0
- package/dist/react/cards/TelemetryCard.js.map +1 -0
- package/dist/react/cards/TelemetryStreamCard.js +309 -0
- package/dist/react/cards/TelemetryStreamCard.js.map +1 -0
- package/dist/react/cards/index.js +13 -0
- package/dist/react/cards/index.js.map +1 -0
- package/dist/react/charts/GroundTrackMap.d.ts +2 -15
- package/dist/react/charts/GroundTrackMap.js +1 -1
- package/dist/react/charts/GroundTrackMap.js.map +1 -1
- package/dist/react/charts/GroundTrackMapLeaflet.js +1 -1
- package/dist/react/charts/index.js +104 -0
- package/dist/react/charts/index.js.map +1 -0
- package/dist/react/charts/unified/AstroChart.js +35 -14
- package/dist/react/charts/unified/AstroChart.js.map +1 -1
- package/dist/react/charts/unified/PowerOverviewChart.js +488 -0
- package/dist/react/charts/unified/PowerOverviewChart.js.map +1 -0
- package/dist/react/charts/unified/domain.js +3168 -0
- package/dist/react/charts/unified/domain.js.map +1 -0
- package/dist/react/charts/unified/generators.js +518 -0
- package/dist/react/charts/unified/generators.js.map +1 -0
- package/dist/react/charts/unified/presets.js +1000 -0
- package/dist/react/charts/unified/presets.js.map +1 -0
- package/dist/react/charts/unified/sync.js +219 -0
- package/dist/react/charts/unified/sync.js.map +1 -0
- package/dist/react/charts/unified/theme.js +331 -4
- package/dist/react/charts/unified/theme.js.map +1 -1
- package/dist/react/charts/unified/useChartStream.js +226 -0
- package/dist/react/charts/unified/useChartStream.js.map +1 -0
- package/dist/react/chatgpt/AppCard.d.ts +0 -4
- package/dist/react/chatgpt/index.d.ts +0 -19
- package/dist/react/chatgpt/index.js +163 -0
- package/dist/react/chatgpt/index.js.map +1 -0
- package/dist/react/context/SpatialSelectionContext.d.ts +40 -0
- package/dist/react/context/SpatialSelectionContext.js +10 -0
- package/dist/react/context/SpatialSelectionContext.js.map +1 -0
- package/dist/react/context/index.d.ts +2 -0
- package/dist/react/core/{DataTable.d.ts → data/DataTable.d.ts} +1 -1
- package/dist/react/core/{DataTable.js → data/DataTable.js} +4 -4
- package/dist/react/core/data/DataTable.js.map +1 -0
- package/dist/react/core/{DataValue.d.ts → data/DataValue.d.ts} +2 -2
- package/dist/react/core/{DataValue.js → data/DataValue.js} +2 -2
- package/dist/react/core/data/DataValue.js.map +1 -0
- package/dist/react/core/{propertyConfig.d.ts → data/propertyConfig.d.ts} +2 -2
- package/dist/react/core/data/propertyConfig.js.map +1 -0
- package/dist/react/core/{AstroIcon.js → display/AstroIcon.js} +1 -1
- package/dist/react/core/display/AstroIcon.js.map +1 -0
- package/dist/react/core/{Badge.d.ts → display/Badge.d.ts} +1 -1
- package/dist/react/core/{Badge.js → display/Badge.js} +2 -2
- package/dist/react/core/display/Badge.js.map +1 -0
- package/dist/react/core/{CardHeader.d.ts → display/CardHeader.d.ts} +1 -1
- package/dist/react/core/{CardHeader.js → display/CardHeader.js} +2 -2
- package/dist/react/core/display/CardHeader.js.map +1 -0
- package/dist/react/core/{Container.d.ts → display/Container.d.ts} +1 -1
- package/dist/react/core/{Container.js → display/Container.js} +3 -3
- package/dist/react/core/display/Container.js.map +1 -0
- package/dist/react/core/{CopyButton.js → display/CopyButton.js} +1 -1
- package/dist/react/core/display/CopyButton.js.map +1 -0
- package/dist/react/core/{GlassCard.d.ts → display/GlassCard.d.ts} +1 -1
- package/dist/react/core/{GlassCard.js → display/GlassCard.js} +2 -2
- package/dist/react/core/display/GlassCard.js.map +1 -0
- package/dist/react/core/{HeaderIconWithStatus.d.ts → display/HeaderIconWithStatus.d.ts} +1 -1
- package/dist/react/core/{HeaderIconWithStatus.js → display/HeaderIconWithStatus.js} +1 -1
- package/dist/react/core/display/HeaderIconWithStatus.js.map +1 -0
- package/dist/react/core/{Icon.d.ts → display/Icon.d.ts} +1 -1
- package/dist/react/core/{Icon.js → display/Icon.js} +1 -1
- package/dist/react/core/display/Icon.js.map +1 -0
- package/dist/react/core/{Typography.d.ts → display/Typography.d.ts} +13 -4
- package/dist/react/core/{Typography.js → display/Typography.js} +1 -1
- package/dist/react/core/display/Typography.js.map +1 -0
- package/dist/react/core/{ConfirmDialog.js → feedback/ConfirmDialog.js} +1 -1
- package/dist/react/core/feedback/ConfirmDialog.js.map +1 -0
- package/dist/react/core/{Dialog.js → feedback/Dialog.js} +2 -2
- package/dist/react/core/feedback/Dialog.js.map +1 -0
- package/dist/react/core/{Toast.js → feedback/Toast.js} +3 -3
- package/dist/react/core/feedback/Toast.js.map +1 -0
- package/dist/react/core/index.d.ts +85 -85
- package/dist/react/core/index.js +161 -0
- package/dist/react/core/index.js.map +1 -0
- package/dist/react/core/{Button.js → inputs/Button.js} +2 -2
- package/dist/react/core/inputs/Button.js.map +1 -0
- package/dist/react/core/{Checkbox.js → inputs/Checkbox.js} +2 -2
- package/dist/react/core/inputs/Checkbox.js.map +1 -0
- package/dist/react/core/{Input.d.ts → inputs/Input.d.ts} +1 -1
- package/dist/react/core/{Input.js → inputs/Input.js} +3 -3
- package/dist/react/core/inputs/Input.js.map +1 -0
- package/dist/react/core/{LimitsBar.js → inputs/LimitsBar.js} +1 -1
- package/dist/react/core/inputs/LimitsBar.js.map +1 -0
- package/dist/react/core/{NumberInput.d.ts → inputs/NumberInput.d.ts} +2 -2
- package/dist/react/core/{NumberInput.js → inputs/NumberInput.js} +3 -3
- package/dist/react/core/inputs/NumberInput.js.map +1 -0
- package/dist/react/core/{PinInput.js → inputs/PinInput.js} +2 -2
- package/dist/react/core/inputs/PinInput.js.map +1 -0
- package/dist/react/core/{Select.js → inputs/Select.js} +3 -3
- package/dist/react/core/inputs/Select.js.map +1 -0
- package/dist/react/core/{Toggle.js → inputs/Toggle.js} +2 -2
- package/dist/react/core/inputs/Toggle.js.map +1 -0
- package/dist/react/core/layout/Box.js +1 -1
- package/dist/react/core/layout/Flex.js +1 -1
- package/dist/react/core/layout/Grid.js +1 -1
- package/dist/react/core/layout/Stack.js +1 -1
- package/dist/react/core/{AppBar.d.ts → navigation/AppBar.d.ts} +1 -1
- package/dist/react/core/{AppBar.js → navigation/AppBar.js} +7 -7
- package/dist/react/core/navigation/AppBar.js.map +1 -0
- package/dist/react/core/{Pagination.js → navigation/Pagination.js} +2 -2
- package/dist/react/core/navigation/Pagination.js.map +1 -0
- package/dist/react/core/{SideNav.d.ts → navigation/SideNav.d.ts} +1 -1
- package/dist/react/core/{SideNav.js → navigation/SideNav.js} +3 -3
- package/dist/react/core/navigation/SideNav.js.map +1 -0
- package/dist/react/core/{Tabs.js → navigation/Tabs.js} +2 -2
- package/dist/react/core/navigation/Tabs.js.map +1 -0
- package/dist/react/core/{Popover.js → overlays/Popover.js} +1 -1
- package/dist/react/core/overlays/Popover.js.map +1 -0
- package/dist/react/core/{SidePanel.js → overlays/SidePanel.js} +3 -3
- package/dist/react/core/overlays/SidePanel.js.map +1 -0
- package/dist/react/core/{Tooltip.js → overlays/Tooltip.js} +2 -2
- package/dist/react/core/overlays/Tooltip.js.map +1 -0
- package/dist/react/core/{ActivityPlanner.js → widgets/ActivityPlanner.js} +1 -1
- package/dist/react/core/widgets/ActivityPlanner.js.map +1 -0
- package/dist/react/core/{Capture.js → widgets/Capture.js} +3 -3
- package/dist/react/core/widgets/Capture.js.map +1 -0
- package/dist/react/core/{ChatPanel.d.ts → widgets/ChatPanel.d.ts} +1 -1
- package/dist/react/core/{ChatPanel.js → widgets/ChatPanel.js} +2 -2
- package/dist/react/core/widgets/ChatPanel.js.map +1 -0
- package/dist/react/core/{ColorPickerPanel.d.ts → widgets/ColorPickerPanel.d.ts} +1 -1
- package/dist/react/core/{ColorPickerPanel.js → widgets/ColorPickerPanel.js} +3 -3
- package/dist/react/core/widgets/ColorPickerPanel.js.map +1 -0
- package/dist/react/core/{CommandBuilder.js → widgets/CommandBuilder.js} +1 -1
- package/dist/react/core/widgets/CommandBuilder.js.map +1 -0
- package/dist/react/core/{ConnectionForm.d.ts → widgets/ConnectionForm.d.ts} +1 -1
- package/dist/react/core/{ConnectionForm.js → widgets/ConnectionForm.js} +2 -2
- package/dist/react/core/widgets/ConnectionForm.js.map +1 -0
- package/dist/react/core/{FileExplorer.js → widgets/FileExplorer.js} +2 -2
- package/dist/react/core/widgets/FileExplorer.js.map +1 -0
- package/dist/react/core/{HexViewer.js → widgets/HexViewer.js} +1 -1
- package/dist/react/core/widgets/HexViewer.js.map +1 -0
- package/dist/react/core/{ImageGallery.d.ts → widgets/ImageGallery.d.ts} +1 -1
- package/dist/react/core/{ImageGallery.js → widgets/ImageGallery.js} +3 -3
- package/dist/react/core/widgets/ImageGallery.js.map +1 -0
- package/dist/react/core/{LogViewer.d.ts → widgets/LogViewer.d.ts} +13 -3
- package/dist/react/core/{LogViewer.js → widgets/LogViewer.js} +28 -8
- package/dist/react/core/widgets/LogViewer.js.map +1 -0
- package/dist/react/core/{MessageStream.d.ts → widgets/MessageStream.d.ts} +2 -2
- package/dist/react/core/{MessageStream.js → widgets/MessageStream.js} +4 -4
- package/dist/react/core/widgets/MessageStream.js.map +1 -0
- package/dist/react/core/{MissionCalendar.js → widgets/MissionCalendar.js} +2 -2
- package/dist/react/core/widgets/MissionCalendar.js.map +1 -0
- package/dist/react/core/{PacketViewer.js → widgets/PacketViewer.js} +1 -1
- package/dist/react/core/widgets/PacketViewer.js.map +1 -0
- package/dist/react/core/widgets/capture-placeholder.png.js.map +1 -0
- package/dist/react/hooks/index.d.ts +9 -11
- package/dist/react/hooks/useAccessWindows.d.ts +15 -19
- package/dist/react/hooks/useCompactMode.js +1 -1
- package/dist/react/hooks/useGroundTrackHistory.d.ts +34 -0
- package/dist/react/hooks/useSimulationScene.d.ts +141 -0
- package/dist/react/hooks/useSimulationScene.js +401 -0
- package/dist/react/hooks/useSimulationScene.js.map +1 -0
- package/dist/react/hooks/useZendirSession.d.ts +44 -69
- package/dist/react/index.d.ts +7 -3
- package/dist/react/panels/LayerControlPanel.d.ts +54 -0
- package/dist/react/panels/LayerControlPanel.js +184 -0
- package/dist/react/panels/LayerControlPanel.js.map +1 -0
- package/dist/react/panels/ObjectInventoryPanel.d.ts +57 -0
- package/dist/react/panels/ObjectInventoryPanel.js +261 -0
- package/dist/react/panels/ObjectInventoryPanel.js.map +1 -0
- package/dist/react/panels/index.d.ts +15 -0
- package/dist/react/panels/index.js +8 -0
- package/dist/react/panels/index.js.map +1 -0
- package/dist/react/theme/ThemeProvider.d.ts +2 -0
- package/dist/react/theme/ThemeProvider.js +50 -72
- package/dist/react/theme/ThemeProvider.js.map +1 -1
- package/dist/react/theme/config.js +30 -0
- package/dist/react/theme/config.js.map +1 -0
- package/dist/react/theme/index.js +19 -0
- package/dist/react/theme/index.js.map +1 -0
- package/dist/react/types.d.ts +32 -3
- package/dist/react/types.js.map +1 -1
- package/dist/react/utils/index.js +8 -0
- package/dist/react/utils/index.js.map +1 -1
- package/dist/react.js +73 -64
- package/dist/react.js.map +1 -1
- package/dist/shaders/atmosphere.frag.js +5 -0
- package/dist/shaders/atmosphere.frag.js.map +1 -0
- package/dist/shaders/atmosphere.vert.js +5 -0
- package/dist/shaders/atmosphere.vert.js.map +1 -0
- package/dist/shaders/stars.frag.js +5 -0
- package/dist/shaders/stars.frag.js.map +1 -0
- package/dist/shaders/stars.vert.js +5 -0
- package/dist/shaders/stars.vert.js.map +1 -0
- package/dist/style.css +6 -4
- package/dist/tokens/css-vars.d.ts +91 -0
- package/dist/tokens/css-vars.js +228 -0
- package/dist/tokens/css-vars.js.map +1 -0
- package/dist/tokens/index.d.ts +71 -18
- package/dist/tokens/index.js +206 -97
- package/dist/tokens/index.js.map +1 -1
- package/dist/tokens/tokens.css +50 -50
- package/package.json +70 -58
- package/sdk-stub.js +10 -5
- package/dist/react/3d/EarthViewer.d.ts +0 -46
- package/dist/react/3d/SolarSystemViewer.d.ts +0 -43
- package/dist/react/chatgpt/ChatGPTCard.d.ts +0 -6
- package/dist/react/core/ActivityPlanner.js.map +0 -1
- package/dist/react/core/AppBar.js.map +0 -1
- package/dist/react/core/AstroIcon.js.map +0 -1
- package/dist/react/core/Badge.js.map +0 -1
- package/dist/react/core/Button.js.map +0 -1
- package/dist/react/core/Capture.js.map +0 -1
- package/dist/react/core/CardHeader.js.map +0 -1
- package/dist/react/core/ChatPanel.js.map +0 -1
- package/dist/react/core/Checkbox.js.map +0 -1
- package/dist/react/core/ColorPickerPanel.js.map +0 -1
- package/dist/react/core/CommandBuilder.js.map +0 -1
- package/dist/react/core/ConfirmDialog.js.map +0 -1
- package/dist/react/core/ConnectionForm.js.map +0 -1
- package/dist/react/core/Container.js.map +0 -1
- package/dist/react/core/CopyButton.js.map +0 -1
- package/dist/react/core/DataTable.js.map +0 -1
- package/dist/react/core/DataValue.js.map +0 -1
- package/dist/react/core/Dialog.js.map +0 -1
- package/dist/react/core/FileExplorer.js.map +0 -1
- package/dist/react/core/GlassCard.js.map +0 -1
- package/dist/react/core/HeaderIconWithStatus.js.map +0 -1
- package/dist/react/core/HexViewer.js.map +0 -1
- package/dist/react/core/Icon.js.map +0 -1
- package/dist/react/core/ImageGallery.js.map +0 -1
- package/dist/react/core/Input.js.map +0 -1
- package/dist/react/core/LimitsBar.js.map +0 -1
- package/dist/react/core/LogViewer.js.map +0 -1
- package/dist/react/core/MessageStream.js.map +0 -1
- package/dist/react/core/MissionCalendar.js.map +0 -1
- package/dist/react/core/NumberInput.js.map +0 -1
- package/dist/react/core/PacketViewer.js.map +0 -1
- package/dist/react/core/Pagination.js.map +0 -1
- package/dist/react/core/PinInput.js.map +0 -1
- package/dist/react/core/Popover.js.map +0 -1
- package/dist/react/core/Select.js.map +0 -1
- package/dist/react/core/SideNav.js.map +0 -1
- package/dist/react/core/SidePanel.js.map +0 -1
- package/dist/react/core/Tabs.js.map +0 -1
- package/dist/react/core/Toast.js.map +0 -1
- package/dist/react/core/Toggle.js.map +0 -1
- package/dist/react/core/Tooltip.js.map +0 -1
- package/dist/react/core/Typography.js.map +0 -1
- package/dist/react/core/capture-placeholder.png.js.map +0 -1
- package/dist/react/core/propertyConfig.js.map +0 -1
- package/dist/react/hooks/useSimulationTime.d.ts +0 -61
- package/dist/react/hooks/useSpacecraftPosition.d.ts +0 -50
- package/dist/react/hooks/useTelemetry.d.ts +0 -55
- package/dist/types.d.ts +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- /package/dist/react/core/{propertyConfig.js → data/propertyConfig.js} +0 -0
- /package/dist/react/core/{AstroIcon.d.ts → display/AstroIcon.d.ts} +0 -0
- /package/dist/react/core/{CopyButton.d.ts → display/CopyButton.d.ts} +0 -0
- /package/dist/react/core/{ConfirmDialog.d.ts → feedback/ConfirmDialog.d.ts} +0 -0
- /package/dist/react/core/{Dialog.d.ts → feedback/Dialog.d.ts} +0 -0
- /package/dist/react/core/{Toast.d.ts → feedback/Toast.d.ts} +0 -0
- /package/dist/react/core/{Button.d.ts → inputs/Button.d.ts} +0 -0
- /package/dist/react/core/{Checkbox.d.ts → inputs/Checkbox.d.ts} +0 -0
- /package/dist/react/core/{LimitsBar.d.ts → inputs/LimitsBar.d.ts} +0 -0
- /package/dist/react/core/{PinInput.d.ts → inputs/PinInput.d.ts} +0 -0
- /package/dist/react/core/{Select.d.ts → inputs/Select.d.ts} +0 -0
- /package/dist/react/core/{Toggle.d.ts → inputs/Toggle.d.ts} +0 -0
- /package/dist/react/core/{Pagination.d.ts → navigation/Pagination.d.ts} +0 -0
- /package/dist/react/core/{Tabs.d.ts → navigation/Tabs.d.ts} +0 -0
- /package/dist/react/core/{Popover.d.ts → overlays/Popover.d.ts} +0 -0
- /package/dist/react/core/{SidePanel.d.ts → overlays/SidePanel.d.ts} +0 -0
- /package/dist/react/core/{Tooltip.d.ts → overlays/Tooltip.d.ts} +0 -0
- /package/dist/react/core/{ActivityPlanner.d.ts → widgets/ActivityPlanner.d.ts} +0 -0
- /package/dist/react/core/{Capture.d.ts → widgets/Capture.d.ts} +0 -0
- /package/dist/react/core/{CommandBuilder.d.ts → widgets/CommandBuilder.d.ts} +0 -0
- /package/dist/react/core/{FileExplorer.d.ts → widgets/FileExplorer.d.ts} +0 -0
- /package/dist/react/core/{HexViewer.d.ts → widgets/HexViewer.d.ts} +0 -0
- /package/dist/react/core/{MissionCalendar.d.ts → widgets/MissionCalendar.d.ts} +0 -0
- /package/dist/react/core/{PacketViewer.d.ts → widgets/PacketViewer.d.ts} +0 -0
- /package/dist/react/core/{capture-placeholder.png.js → widgets/capture-placeholder.png.js} +0 -0
package/dist/tokens/index.js
CHANGED
|
@@ -77,19 +77,29 @@ const colors = {
|
|
|
77
77
|
}
|
|
78
78
|
};
|
|
79
79
|
const spacing = {
|
|
80
|
+
xxs: "2px",
|
|
80
81
|
xs: "4px",
|
|
81
82
|
sm: "8px",
|
|
83
|
+
smd: "12px",
|
|
82
84
|
md: "16px",
|
|
85
|
+
mdl: "20px",
|
|
83
86
|
lg: "24px",
|
|
84
87
|
xl: "32px",
|
|
85
88
|
xxl: "48px"
|
|
86
89
|
};
|
|
87
90
|
const borderRadius = {
|
|
88
91
|
none: "0",
|
|
92
|
+
xs: "1px",
|
|
89
93
|
sm: "2px",
|
|
90
94
|
md: "4px",
|
|
91
95
|
lg: "8px",
|
|
92
|
-
|
|
96
|
+
/**
|
|
97
|
+
* 12px. Sized for surfaces (Container, Card, SidePanel). Matches the
|
|
98
|
+
* value already in use across zendir-ui components and the operator's
|
|
99
|
+
* LandingPage. Was 16px in earlier docs — corrected here so the JS
|
|
100
|
+
* tokens and the auto-generated CSS variables agree.
|
|
101
|
+
*/
|
|
102
|
+
xl: "12px",
|
|
93
103
|
full: "9999px"
|
|
94
104
|
};
|
|
95
105
|
const typography = {
|
|
@@ -101,31 +111,39 @@ const typography = {
|
|
|
101
111
|
/** Monospace font: Roboto Mono for data/code */
|
|
102
112
|
mono: '"Roboto Mono", "SF Mono", "Consolas", "Liberation Mono", monospace'
|
|
103
113
|
},
|
|
114
|
+
/**
|
|
115
|
+
* Convenience numeric scale used by ~300+ existing zendir-ui components
|
|
116
|
+
* via `tokens.typography.fontSize.*`. Density-tuned for data-rich UIs.
|
|
117
|
+
*
|
|
118
|
+
* For semantically-named typographic styles (display1/2, h1-h6, body1-3,
|
|
119
|
+
* control1) use the `display` / `heading` / `body` / `control` preset
|
|
120
|
+
* objects on `<ThemeProvider>` instead — those follow the canonical
|
|
121
|
+
* AstroUXDS scale.
|
|
122
|
+
*/
|
|
104
123
|
fontSize: {
|
|
105
124
|
// Compact sizes for dense UIs (cards, badges, data labels)
|
|
106
125
|
micro: "0.5625rem",
|
|
107
126
|
// 9px - very tight spaces
|
|
108
127
|
xxs: "0.625rem",
|
|
109
128
|
// 10px - compact labels
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
// 48px - display2
|
|
129
|
+
xs: "0.625rem",
|
|
130
|
+
// 10px - compact (alias of xxs, kept for back-compat)
|
|
131
|
+
sm: "0.75rem",
|
|
132
|
+
// 12px - body 3
|
|
133
|
+
base: "0.875rem",
|
|
134
|
+
// 14px - body 2
|
|
135
|
+
md: "0.875rem",
|
|
136
|
+
// 14px - body 2 (alias of base)
|
|
137
|
+
lg: "1rem",
|
|
138
|
+
// 16px - body 1
|
|
139
|
+
xl: "1.25rem",
|
|
140
|
+
// 20px - heading 3/4
|
|
141
|
+
xxl: "1.5rem",
|
|
142
|
+
// 24px - heading 2
|
|
143
|
+
xxxl: "2.125rem",
|
|
144
|
+
// 34px - heading 1
|
|
127
145
|
display: "3.75rem"
|
|
128
|
-
// 60px -
|
|
146
|
+
// 60px - display 1
|
|
129
147
|
},
|
|
130
148
|
/**
|
|
131
149
|
* Font weights per AstroUXDS specification
|
|
@@ -161,87 +179,176 @@ const animation = {
|
|
|
161
179
|
normal: "250ms ease",
|
|
162
180
|
slow: "400ms ease"
|
|
163
181
|
};
|
|
164
|
-
function
|
|
182
|
+
function buildInvariantBlock() {
|
|
183
|
+
return [
|
|
184
|
+
" /* ============================================================",
|
|
185
|
+
" * STATUS COLORS (Astro UX Compliant)",
|
|
186
|
+
" * ============================================================ */",
|
|
187
|
+
` --zendir-status-critical: ${colors.status.critical};`,
|
|
188
|
+
` --zendir-status-serious: ${colors.status.serious};`,
|
|
189
|
+
` --zendir-status-caution: ${colors.status.caution};`,
|
|
190
|
+
` --zendir-status-normal: ${colors.status.normal};`,
|
|
191
|
+
` --zendir-status-standby: ${colors.status.standby};`,
|
|
192
|
+
` --zendir-status-off: ${colors.status.off};`,
|
|
193
|
+
"",
|
|
194
|
+
" /* Light-theme status fill colors */",
|
|
195
|
+
` --zendir-status-critical-light: ${colors.statusLightFill.critical};`,
|
|
196
|
+
` --zendir-status-serious-light: ${colors.statusLightFill.serious};`,
|
|
197
|
+
` --zendir-status-caution-light: ${colors.statusLightFill.caution};`,
|
|
198
|
+
` --zendir-status-normal-light: ${colors.statusLightFill.normal};`,
|
|
199
|
+
` --zendir-status-standby-light: ${colors.statusLightFill.standby};`,
|
|
200
|
+
` --zendir-status-off-light: ${colors.statusLightFill.off};`,
|
|
201
|
+
"",
|
|
202
|
+
" /* Light-theme status border colors */",
|
|
203
|
+
` --zendir-status-critical-border: ${colors.statusLightBorder.critical};`,
|
|
204
|
+
` --zendir-status-serious-border: ${colors.statusLightBorder.serious};`,
|
|
205
|
+
` --zendir-status-caution-border: ${colors.statusLightBorder.caution};`,
|
|
206
|
+
` --zendir-status-normal-border: ${colors.statusLightBorder.normal};`,
|
|
207
|
+
` --zendir-status-standby-border: ${colors.statusLightBorder.standby};`,
|
|
208
|
+
` --zendir-status-off-border: ${colors.statusLightBorder.off};`,
|
|
209
|
+
"",
|
|
210
|
+
" /* ============================================================",
|
|
211
|
+
" * ACCENT COLORS",
|
|
212
|
+
" * ============================================================ */",
|
|
213
|
+
` --zendir-accent-primary: ${colors.accent.primary};`,
|
|
214
|
+
` --zendir-accent-secondary: ${colors.accent.secondary};`,
|
|
215
|
+
` --zendir-accent-tertiary: ${colors.accent.tertiary};`,
|
|
216
|
+
"",
|
|
217
|
+
" /* ============================================================",
|
|
218
|
+
" * SPACING",
|
|
219
|
+
" * ============================================================ */",
|
|
220
|
+
` --zendir-spacing-xs: ${spacing.xs};`,
|
|
221
|
+
` --zendir-spacing-sm: ${spacing.sm};`,
|
|
222
|
+
` --zendir-spacing-md: ${spacing.md};`,
|
|
223
|
+
` --zendir-spacing-lg: ${spacing.lg};`,
|
|
224
|
+
` --zendir-spacing-xl: ${spacing.xl};`,
|
|
225
|
+
` --zendir-spacing-xxl: ${spacing.xxl};`,
|
|
226
|
+
"",
|
|
227
|
+
" /* ============================================================",
|
|
228
|
+
" * BORDER RADIUS",
|
|
229
|
+
" * ============================================================ */",
|
|
230
|
+
` --zendir-radius-none: ${borderRadius.none};`,
|
|
231
|
+
` --zendir-radius-sm: ${borderRadius.sm};`,
|
|
232
|
+
` --zendir-radius-md: ${borderRadius.md};`,
|
|
233
|
+
` --zendir-radius-lg: ${borderRadius.lg};`,
|
|
234
|
+
` --zendir-radius-xl: ${borderRadius.xl};`,
|
|
235
|
+
` --zendir-radius-full: ${borderRadius.full};`,
|
|
236
|
+
"",
|
|
237
|
+
" /* ============================================================",
|
|
238
|
+
" * TYPOGRAPHY",
|
|
239
|
+
" * Public Sans leads body, Sora leads headings, Roboto is the",
|
|
240
|
+
" * AstroUXDS-compliant fallback. OS-native fonts complete the chain.",
|
|
241
|
+
" * @see https://www.astrouxds.com/foundations/typography/",
|
|
242
|
+
" * ============================================================ */",
|
|
243
|
+
` --zendir-font-primary: ${typography.fontFamily.primary};`,
|
|
244
|
+
` --zendir-font-heading: ${typography.fontFamily.heading};`,
|
|
245
|
+
` --zendir-font-mono: ${typography.fontFamily.mono};`,
|
|
246
|
+
"",
|
|
247
|
+
" /* Font sizes (rem-based, AstroUXDS scale) */",
|
|
248
|
+
` --zendir-font-size-micro: ${typography.fontSize.micro};`,
|
|
249
|
+
` --zendir-font-size-xxs: ${typography.fontSize.xxs};`,
|
|
250
|
+
` --zendir-font-size-xs: ${typography.fontSize.xs};`,
|
|
251
|
+
` --zendir-font-size-sm: ${typography.fontSize.sm};`,
|
|
252
|
+
` --zendir-font-size-base: ${typography.fontSize.base};`,
|
|
253
|
+
` --zendir-font-size-md: ${typography.fontSize.md};`,
|
|
254
|
+
` --zendir-font-size-lg: ${typography.fontSize.lg};`,
|
|
255
|
+
` --zendir-font-size-xl: ${typography.fontSize.xl};`,
|
|
256
|
+
` --zendir-font-size-xxl: ${typography.fontSize.xxl};`,
|
|
257
|
+
` --zendir-font-size-xxxl: ${typography.fontSize.xxxl};`,
|
|
258
|
+
` --zendir-font-size-display: ${typography.fontSize.display};`,
|
|
259
|
+
"",
|
|
260
|
+
" /* Font weights — AstroUXDS supports only 300/400/500/700 */",
|
|
261
|
+
` --zendir-font-weight-light: ${typography.fontWeight.light};`,
|
|
262
|
+
` --zendir-font-weight-normal: ${typography.fontWeight.normal};`,
|
|
263
|
+
` --zendir-font-weight-medium: ${typography.fontWeight.medium};`,
|
|
264
|
+
` --zendir-font-weight-bold: ${typography.fontWeight.bold};`,
|
|
265
|
+
"",
|
|
266
|
+
" /* Line heights */",
|
|
267
|
+
` --zendir-line-height-tight: ${typography.lineHeight.tight};`,
|
|
268
|
+
` --zendir-line-height-normal: ${typography.lineHeight.normal};`,
|
|
269
|
+
` --zendir-line-height-relaxed: ${typography.lineHeight.relaxed};`,
|
|
270
|
+
"",
|
|
271
|
+
" /* ============================================================",
|
|
272
|
+
" * SHADOWS",
|
|
273
|
+
" * ============================================================ */",
|
|
274
|
+
` --zendir-shadow-none: ${shadows.none};`,
|
|
275
|
+
` --zendir-shadow-sm: ${shadows.sm};`,
|
|
276
|
+
` --zendir-shadow-md: ${shadows.md};`,
|
|
277
|
+
` --zendir-shadow-lg: ${shadows.lg};`,
|
|
278
|
+
` --zendir-shadow-xl: ${shadows.xl};`,
|
|
279
|
+
` --zendir-shadow-glow: ${shadows.glow};`,
|
|
280
|
+
"",
|
|
281
|
+
" /* ============================================================",
|
|
282
|
+
" * ANIMATION",
|
|
283
|
+
" * ============================================================ */",
|
|
284
|
+
` --zendir-animation-fast: ${animation.fast};`,
|
|
285
|
+
` --zendir-animation-normal: ${animation.normal};`,
|
|
286
|
+
` --zendir-animation-slow: ${animation.slow};`
|
|
287
|
+
].join("\n");
|
|
288
|
+
}
|
|
289
|
+
function buildModeBlock(mode) {
|
|
165
290
|
const bg = colors.background[mode];
|
|
166
291
|
const txt = colors.text[mode];
|
|
167
292
|
const bdr = colors.border[mode];
|
|
168
|
-
return
|
|
169
|
-
:
|
|
170
|
-
|
|
171
|
-
--zendir-
|
|
172
|
-
--zendir-
|
|
173
|
-
|
|
174
|
-
--zendir-
|
|
175
|
-
--zendir-
|
|
176
|
-
--zendir-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
--zendir-
|
|
180
|
-
--zendir-
|
|
181
|
-
--zendir-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
--zendir-accent-tertiary: ${colors.accent.tertiary};
|
|
194
|
-
|
|
195
|
-
/* Border */
|
|
196
|
-
--zendir-border-default: ${bdr.default};
|
|
197
|
-
--zendir-border-muted: ${bdr.muted};
|
|
198
|
-
--zendir-border-focus: ${bdr.focus};
|
|
199
|
-
|
|
200
|
-
/* Spacing */
|
|
201
|
-
--zendir-spacing-xs: ${spacing.xs};
|
|
202
|
-
--zendir-spacing-sm: ${spacing.sm};
|
|
203
|
-
--zendir-spacing-md: ${spacing.md};
|
|
204
|
-
--zendir-spacing-lg: ${spacing.lg};
|
|
205
|
-
--zendir-spacing-xl: ${spacing.xl};
|
|
206
|
-
--zendir-spacing-xxl: ${spacing.xxl};
|
|
207
|
-
|
|
208
|
-
/* Border Radius */
|
|
209
|
-
--zendir-radius-sm: ${borderRadius.sm};
|
|
210
|
-
--zendir-radius-md: ${borderRadius.md};
|
|
211
|
-
--zendir-radius-lg: ${borderRadius.lg};
|
|
212
|
-
--zendir-radius-xl: ${borderRadius.xl};
|
|
213
|
-
--zendir-radius-full: ${borderRadius.full};
|
|
214
|
-
|
|
215
|
-
/* Typography - AstroUXDS Compliant */
|
|
216
|
-
--zendir-font-primary: ${typography.fontFamily.primary};
|
|
217
|
-
--zendir-font-mono: ${typography.fontFamily.mono};
|
|
218
|
-
--zendir-font-size-micro: ${typography.fontSize.micro};
|
|
219
|
-
--zendir-font-size-xxs: ${typography.fontSize.xxs};
|
|
220
|
-
--zendir-font-size-xs: ${typography.fontSize.xs};
|
|
221
|
-
--zendir-font-size-sm: ${typography.fontSize.sm};
|
|
222
|
-
--zendir-font-size-base: ${typography.fontSize.base};
|
|
223
|
-
--zendir-font-size-md: ${typography.fontSize.md};
|
|
224
|
-
--zendir-font-size-lg: ${typography.fontSize.lg};
|
|
225
|
-
--zendir-font-size-xl: ${typography.fontSize.xl};
|
|
226
|
-
--zendir-font-size-xxl: ${typography.fontSize.xxl};
|
|
227
|
-
--zendir-font-weight-light: ${typography.fontWeight.light};
|
|
228
|
-
--zendir-font-weight-normal: ${typography.fontWeight.normal};
|
|
229
|
-
--zendir-font-weight-medium: ${typography.fontWeight.medium};
|
|
230
|
-
--zendir-font-weight-bold: ${typography.fontWeight.bold};
|
|
231
|
-
|
|
232
|
-
/* Shadows */
|
|
233
|
-
--zendir-shadow-sm: ${shadows.sm};
|
|
234
|
-
--zendir-shadow-md: ${shadows.md};
|
|
235
|
-
--zendir-shadow-lg: ${shadows.lg};
|
|
236
|
-
--zendir-shadow-xl: ${shadows.xl};
|
|
237
|
-
--zendir-shadow-glow: ${shadows.glow};
|
|
238
|
-
|
|
239
|
-
/* Animation */
|
|
240
|
-
--zendir-animation-fast: ${animation.fast};
|
|
241
|
-
--zendir-animation-normal: ${animation.normal};
|
|
242
|
-
--zendir-animation-slow: ${animation.slow};
|
|
293
|
+
return [
|
|
294
|
+
` --zendir-bg-base: ${bg.base};`,
|
|
295
|
+
` --zendir-bg-surface: ${bg.surface};`,
|
|
296
|
+
` --zendir-bg-elevated: ${bg.elevated};`,
|
|
297
|
+
` --zendir-bg-overlay: ${bg.overlay};`,
|
|
298
|
+
"",
|
|
299
|
+
` --zendir-text-primary: ${txt.primary};`,
|
|
300
|
+
` --zendir-text-secondary: ${txt.secondary};`,
|
|
301
|
+
` --zendir-text-tertiary: ${txt.tertiary};`,
|
|
302
|
+
` --zendir-text-muted: ${txt.muted};`,
|
|
303
|
+
"",
|
|
304
|
+
` --zendir-border-default: ${bdr.default};`,
|
|
305
|
+
` --zendir-border-muted: ${bdr.muted};`,
|
|
306
|
+
` --zendir-border-focus: ${bdr.focus};`
|
|
307
|
+
].join("\n");
|
|
308
|
+
}
|
|
309
|
+
function generateCSSVariables(mode = "dark") {
|
|
310
|
+
return [
|
|
311
|
+
":root {",
|
|
312
|
+
buildInvariantBlock(),
|
|
313
|
+
"",
|
|
314
|
+
` /* ${mode === "dark" ? "Dark" : "Light"}-theme color overrides */`,
|
|
315
|
+
buildModeBlock(mode),
|
|
316
|
+
"}"
|
|
317
|
+
].join("\n");
|
|
243
318
|
}
|
|
244
|
-
|
|
319
|
+
function generateCSSStylesheet() {
|
|
320
|
+
return [
|
|
321
|
+
"/**",
|
|
322
|
+
" * @zendir/ui — CSS Design Tokens",
|
|
323
|
+
" *",
|
|
324
|
+
" * AUTO-GENERATED from src/tokens/index.ts. DO NOT EDIT BY HAND.",
|
|
325
|
+
" * Regenerate with: npm run build:tokens",
|
|
326
|
+
" *",
|
|
327
|
+
" * Usage:",
|
|
328
|
+
" * @import '@zendir/ui/tokens/css';",
|
|
329
|
+
" * .my-component { background: var(--zendir-bg-surface); }",
|
|
330
|
+
" */",
|
|
331
|
+
"",
|
|
332
|
+
":root {",
|
|
333
|
+
buildInvariantBlock(),
|
|
334
|
+
"}",
|
|
335
|
+
"",
|
|
336
|
+
"/* ============================================================",
|
|
337
|
+
" * DARK THEME (default)",
|
|
338
|
+
" * ============================================================ */",
|
|
339
|
+
":root,",
|
|
340
|
+
'[data-theme="dark"] {',
|
|
341
|
+
buildModeBlock("dark"),
|
|
342
|
+
"}",
|
|
343
|
+
"",
|
|
344
|
+
"/* ============================================================",
|
|
345
|
+
" * LIGHT THEME",
|
|
346
|
+
" * ============================================================ */",
|
|
347
|
+
'[data-theme="light"] {',
|
|
348
|
+
buildModeBlock("light"),
|
|
349
|
+
"}",
|
|
350
|
+
""
|
|
351
|
+
].join("\n");
|
|
245
352
|
}
|
|
246
353
|
const index = {
|
|
247
354
|
colors,
|
|
@@ -250,13 +357,15 @@ const index = {
|
|
|
250
357
|
typography,
|
|
251
358
|
shadows,
|
|
252
359
|
animation,
|
|
253
|
-
generateCSSVariables
|
|
360
|
+
generateCSSVariables,
|
|
361
|
+
generateCSSStylesheet
|
|
254
362
|
};
|
|
255
363
|
export {
|
|
256
364
|
animation,
|
|
257
365
|
borderRadius,
|
|
258
366
|
colors,
|
|
259
367
|
index as default,
|
|
368
|
+
generateCSSStylesheet,
|
|
260
369
|
generateCSSVariables,
|
|
261
370
|
shadows,
|
|
262
371
|
spacing,
|
package/dist/tokens/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/tokens/index.ts"],"sourcesContent":["/**\n * @zendir/ui - Design Tokens\n * \n * Exportable design tokens for use in CSS and JavaScript.\n * Based on Astro UX Design System.\n */\n\nexport const colors = {\n // Status Colors (Dark Theme)\n status: {\n critical: '#ff3838',\n serious: '#ffb302',\n caution: '#fce83a',\n normal: '#56f000',\n standby: '#2dccff',\n off: '#a4abb6',\n },\n \n // Status Colors (Light Theme - Fill)\n statusLightFill: {\n critical: '#ff2a04',\n serious: '#ffaf3d',\n caution: '#fad800',\n normal: '#00e200',\n standby: '#64d9ff',\n off: '#7b8089',\n },\n \n // Status Colors (Light Theme - Border)\n statusLightBorder: {\n critical: '#661102',\n serious: '#664618',\n caution: '#645600',\n normal: '#005a00',\n standby: '#285766',\n off: '#3c3e42',\n },\n \n // Background Colors\n background: {\n dark: {\n base: '#101923',\n surface: '#1b2d3e',\n elevated: '#243647',\n overlay: 'rgba(0, 0, 0, 0.7)',\n },\n light: {\n base: '#f5f6f9',\n surface: '#ffffff',\n elevated: '#ffffff',\n overlay: 'rgba(0, 0, 0, 0.5)',\n },\n },\n \n // Text Colors\n text: {\n dark: {\n primary: '#ffffff',\n secondary: '#9ea7ad',\n tertiary: '#6b7175',\n muted: '#52595f',\n },\n light: {\n primary: '#1b2d3e',\n secondary: '#4c5a67',\n tertiary: '#7a8891',\n muted: '#a4adb5',\n },\n },\n \n // Accent Colors\n accent: {\n primary: '#4dacff',\n secondary: '#3d8ddb',\n tertiary: '#2e6eb3',\n },\n \n // Border Colors\n border: {\n dark: {\n default: '#3c4b5a',\n muted: '#2b3d4e',\n focus: '#4dacff',\n },\n light: {\n default: '#c4c8cc',\n muted: '#e1e4e8',\n focus: '#4dacff',\n },\n },\n} as const;\n\nexport const spacing = {\n xs: '4px',\n sm: '8px',\n md: '16px',\n lg: '24px',\n xl: '32px',\n xxl: '48px',\n} as const;\n\nexport const borderRadius = {\n none: '0',\n sm: '2px',\n md: '4px',\n lg: '8px',\n xl: '16px',\n full: '9999px',\n} as const;\n\n/**\n * Typography tokens following AstroUXDS Design System\n * @see https://www.astrouxds.com/foundations/typography/\n * \n * Font weights per Astro spec: 300 (Light), 400 (Regular), 500 (Medium), 700 (Bold)\n * Note: Astro does NOT use 600 (semibold) - use 500 (medium) or 700 (bold) instead\n */\nexport const typography = {\n fontFamily: {\n /** Heading font: Sora (Zendir Brand Standard) */\n heading: '\"Sora\", \"Roboto\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Helvetica Neue\", Arial, sans-serif',\n /** Primary font: Public Sans (Zendir Brand Standard) */\n primary: '\"Public Sans\", \"Roboto\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Helvetica Neue\", Arial, sans-serif',\n /** Monospace font: Roboto Mono for data/code */\n mono: '\"Roboto Mono\", \"SF Mono\", \"Consolas\", \"Liberation Mono\", monospace',\n },\n fontSize: {\n // Compact sizes for dense UIs (cards, badges, data labels)\n micro: '0.5625rem', // 9px - very tight spaces\n xxs: '0.625rem', // 10px - compact labels\n // Standard sizes\n xs: '0.75rem', // 12px - small text, body3\n sm: '0.875rem', // 14px - body2\n base: '1rem', // 16px - body1\n md: '1.125rem', // 18px - h5/h6\n lg: '1.25rem', // 20px - h3/h4\n xl: '1.5rem', // 24px - h2\n xxl: '2.125rem', // 34px - h1\n xxxl: '3rem', // 48px - display2\n display: '3.75rem', // 60px - display1\n },\n /**\n * Font weights per AstroUXDS specification\n * Only 300, 400, 500, 700 are officially supported\n */\n fontWeight: {\n light: 300,\n normal: 400,\n regular: 400, // Alias for normal\n medium: 500,\n bold: 700,\n // DEPRECATED: semibold is not in Astro spec, use medium (500) instead\n /** @deprecated Use medium (500) instead - Astro spec only supports 300, 400, 500, 700 */\n semibold: 500,\n },\n lineHeight: {\n tight: 1.25,\n normal: 1.5,\n relaxed: 1.75,\n },\n} as const;\n\nexport const shadows = {\n none: 'none',\n sm: '0 1px 2px rgba(0, 0, 0, 0.3)',\n md: '0 2px 8px rgba(0, 0, 0, 0.3)',\n lg: '0 4px 16px rgba(0, 0, 0, 0.3)',\n xl: '0 8px 32px rgba(0, 0, 0, 0.4)',\n glow: '0 0 20px rgba(77, 172, 255, 0.4)',\n} as const;\n\nexport const animation = {\n fast: '150ms ease',\n normal: '250ms ease',\n slow: '400ms ease',\n} as const;\n\n// CSS Custom Properties generator\nexport function generateCSSVariables(mode: 'dark' | 'light' = 'dark'): string {\n const bg = colors.background[mode];\n const txt = colors.text[mode];\n const bdr = colors.border[mode];\n \n return `\n:root {\n /* Status Colors */\n --zendir-status-critical: ${colors.status.critical};\n --zendir-status-serious: ${colors.status.serious};\n --zendir-status-caution: ${colors.status.caution};\n --zendir-status-normal: ${colors.status.normal};\n --zendir-status-standby: ${colors.status.standby};\n --zendir-status-off: ${colors.status.off};\n \n /* Background */\n --zendir-bg-base: ${bg.base};\n --zendir-bg-surface: ${bg.surface};\n --zendir-bg-elevated: ${bg.elevated};\n --zendir-bg-overlay: ${bg.overlay};\n \n /* Text */\n --zendir-text-primary: ${txt.primary};\n --zendir-text-secondary: ${txt.secondary};\n --zendir-text-tertiary: ${txt.tertiary};\n --zendir-text-muted: ${txt.muted};\n \n /* Accent */\n --zendir-accent-primary: ${colors.accent.primary};\n --zendir-accent-secondary: ${colors.accent.secondary};\n --zendir-accent-tertiary: ${colors.accent.tertiary};\n \n /* Border */\n --zendir-border-default: ${bdr.default};\n --zendir-border-muted: ${bdr.muted};\n --zendir-border-focus: ${bdr.focus};\n \n /* Spacing */\n --zendir-spacing-xs: ${spacing.xs};\n --zendir-spacing-sm: ${spacing.sm};\n --zendir-spacing-md: ${spacing.md};\n --zendir-spacing-lg: ${spacing.lg};\n --zendir-spacing-xl: ${spacing.xl};\n --zendir-spacing-xxl: ${spacing.xxl};\n \n /* Border Radius */\n --zendir-radius-sm: ${borderRadius.sm};\n --zendir-radius-md: ${borderRadius.md};\n --zendir-radius-lg: ${borderRadius.lg};\n --zendir-radius-xl: ${borderRadius.xl};\n --zendir-radius-full: ${borderRadius.full};\n \n /* Typography - AstroUXDS Compliant */\n --zendir-font-primary: ${typography.fontFamily.primary};\n --zendir-font-mono: ${typography.fontFamily.mono};\n --zendir-font-size-micro: ${typography.fontSize.micro};\n --zendir-font-size-xxs: ${typography.fontSize.xxs};\n --zendir-font-size-xs: ${typography.fontSize.xs};\n --zendir-font-size-sm: ${typography.fontSize.sm};\n --zendir-font-size-base: ${typography.fontSize.base};\n --zendir-font-size-md: ${typography.fontSize.md};\n --zendir-font-size-lg: ${typography.fontSize.lg};\n --zendir-font-size-xl: ${typography.fontSize.xl};\n --zendir-font-size-xxl: ${typography.fontSize.xxl};\n --zendir-font-weight-light: ${typography.fontWeight.light};\n --zendir-font-weight-normal: ${typography.fontWeight.normal};\n --zendir-font-weight-medium: ${typography.fontWeight.medium};\n --zendir-font-weight-bold: ${typography.fontWeight.bold};\n \n /* Shadows */\n --zendir-shadow-sm: ${shadows.sm};\n --zendir-shadow-md: ${shadows.md};\n --zendir-shadow-lg: ${shadows.lg};\n --zendir-shadow-xl: ${shadows.xl};\n --zendir-shadow-glow: ${shadows.glow};\n \n /* Animation */\n --zendir-animation-fast: ${animation.fast};\n --zendir-animation-normal: ${animation.normal};\n --zendir-animation-slow: ${animation.slow};\n}\n`.trim();\n}\n\nexport default {\n colors,\n spacing,\n borderRadius,\n typography,\n shadows,\n animation,\n generateCSSVariables,\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/tokens/index.ts"],"sourcesContent":["/**\n * @zendir/ui - Design Tokens\n * \n * Exportable design tokens for use in CSS and JavaScript.\n * Based on Astro UX Design System.\n */\n\nexport const colors = {\n // Status Colors (Dark Theme)\n status: {\n critical: '#ff3838',\n serious: '#ffb302',\n caution: '#fce83a',\n normal: '#56f000',\n standby: '#2dccff',\n off: '#a4abb6',\n },\n \n // Status Colors (Light Theme - Fill)\n statusLightFill: {\n critical: '#ff2a04',\n serious: '#ffaf3d',\n caution: '#fad800',\n normal: '#00e200',\n standby: '#64d9ff',\n off: '#7b8089',\n },\n \n // Status Colors (Light Theme - Border)\n statusLightBorder: {\n critical: '#661102',\n serious: '#664618',\n caution: '#645600',\n normal: '#005a00',\n standby: '#285766',\n off: '#3c3e42',\n },\n \n // Background Colors\n background: {\n dark: {\n base: '#101923',\n surface: '#1b2d3e',\n elevated: '#243647',\n overlay: 'rgba(0, 0, 0, 0.7)',\n },\n light: {\n base: '#f5f6f9',\n surface: '#ffffff',\n elevated: '#ffffff',\n overlay: 'rgba(0, 0, 0, 0.5)',\n },\n },\n \n // Text Colors\n text: {\n dark: {\n primary: '#ffffff',\n secondary: '#9ea7ad',\n tertiary: '#6b7175',\n muted: '#52595f',\n },\n light: {\n primary: '#1b2d3e',\n secondary: '#4c5a67',\n tertiary: '#7a8891',\n muted: '#a4adb5',\n },\n },\n \n // Accent Colors\n accent: {\n primary: '#4dacff',\n secondary: '#3d8ddb',\n tertiary: '#2e6eb3',\n },\n \n // Border Colors\n border: {\n dark: {\n default: '#3c4b5a',\n muted: '#2b3d4e',\n focus: '#4dacff',\n },\n light: {\n default: '#c4c8cc',\n muted: '#e1e4e8',\n focus: '#4dacff',\n },\n },\n} as const;\n\nexport const spacing = {\n xxs: '2px',\n xs: '4px',\n sm: '8px',\n smd: '12px',\n md: '16px',\n mdl: '20px',\n lg: '24px',\n xl: '32px',\n xxl: '48px',\n} as const;\n\nexport const borderRadius = {\n none: '0',\n xs: '1px',\n sm: '2px',\n md: '4px',\n lg: '8px',\n /**\n * 12px. Sized for surfaces (Container, Card, SidePanel). Matches the\n * value already in use across zendir-ui components and the operator's\n * LandingPage. Was 16px in earlier docs — corrected here so the JS\n * tokens and the auto-generated CSS variables agree.\n */\n xl: '12px',\n full: '9999px',\n} as const;\n\n/**\n * Typography tokens following AstroUXDS Design System\n * @see https://www.astrouxds.com/foundations/typography/\n * \n * Font weights per Astro spec: 300 (Light), 400 (Regular), 500 (Medium), 700 (Bold)\n * Note: Astro does NOT use 600 (semibold) - use 500 (medium) or 700 (bold) instead\n */\nexport const typography = {\n fontFamily: {\n /** Heading font: Sora (Zendir Brand Standard) */\n heading: '\"Sora\", \"Roboto\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Helvetica Neue\", Arial, sans-serif',\n /** Primary font: Public Sans (Zendir Brand Standard) */\n primary: '\"Public Sans\", \"Roboto\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Helvetica Neue\", Arial, sans-serif',\n /** Monospace font: Roboto Mono for data/code */\n mono: '\"Roboto Mono\", \"SF Mono\", \"Consolas\", \"Liberation Mono\", monospace',\n },\n /**\n * Convenience numeric scale used by ~300+ existing zendir-ui components\n * via `tokens.typography.fontSize.*`. Density-tuned for data-rich UIs.\n *\n * For semantically-named typographic styles (display1/2, h1-h6, body1-3,\n * control1) use the `display` / `heading` / `body` / `control` preset\n * objects on `<ThemeProvider>` instead — those follow the canonical\n * AstroUXDS scale.\n */\n fontSize: {\n // Compact sizes for dense UIs (cards, badges, data labels)\n micro: '0.5625rem', // 9px - very tight spaces\n xxs: '0.625rem', // 10px - compact labels\n xs: '0.625rem', // 10px - compact (alias of xxs, kept for back-compat)\n sm: '0.75rem', // 12px - body 3\n base: '0.875rem', // 14px - body 2\n md: '0.875rem', // 14px - body 2 (alias of base)\n lg: '1rem', // 16px - body 1\n xl: '1.25rem', // 20px - heading 3/4\n xxl: '1.5rem', // 24px - heading 2\n xxxl: '2.125rem', // 34px - heading 1\n display: '3.75rem', // 60px - display 1\n },\n /**\n * Font weights per AstroUXDS specification\n * Only 300, 400, 500, 700 are officially supported\n */\n fontWeight: {\n light: 300,\n normal: 400,\n regular: 400, // Alias for normal\n medium: 500,\n bold: 700,\n // DEPRECATED: semibold is not in Astro spec, use medium (500) instead\n /** @deprecated Use medium (500) instead - Astro spec only supports 300, 400, 500, 700 */\n semibold: 500,\n },\n lineHeight: {\n tight: 1.25,\n normal: 1.5,\n relaxed: 1.75,\n },\n} as const;\n\nexport const shadows = {\n none: 'none',\n sm: '0 1px 2px rgba(0, 0, 0, 0.3)',\n md: '0 2px 8px rgba(0, 0, 0, 0.3)',\n lg: '0 4px 16px rgba(0, 0, 0, 0.3)',\n xl: '0 8px 32px rgba(0, 0, 0, 0.4)',\n glow: '0 0 20px rgba(77, 172, 255, 0.4)',\n} as const;\n\nexport const animation = {\n fast: '150ms ease',\n normal: '250ms ease',\n slow: '400ms ease',\n} as const;\n\n// ============================================================================\n// CSS Custom Properties generator\n//\n// Single source of truth for the tokens.css file. Run via\n// `npm run build:tokens` (scripts/build-tokens.ts) — it imports this file\n// and writes the result to src/tokens/tokens.css.\n//\n// Two callable surfaces:\n// • generateCSSVariables(mode) — single :root block for one mode\n// (legacy, kept for backward-compat)\n// • generateCSSStylesheet() — full tokens.css equivalent with\n// mode-invariant block + dark + light\n// [data-theme=\"…\"] overrides. This is\n// what scripts/build-tokens.ts uses.\n// ============================================================================\n\n/**\n * Build a CSS rule body for the mode-invariant tokens (status, accent,\n * spacing, radius, typography, shadows, animation). These don't change\n * between light/dark — they're shared.\n */\nfunction buildInvariantBlock(): string {\n return [\n ' /* ============================================================',\n ' * STATUS COLORS (Astro UX Compliant)',\n ' * ============================================================ */',\n ` --zendir-status-critical: ${colors.status.critical};`,\n ` --zendir-status-serious: ${colors.status.serious};`,\n ` --zendir-status-caution: ${colors.status.caution};`,\n ` --zendir-status-normal: ${colors.status.normal};`,\n ` --zendir-status-standby: ${colors.status.standby};`,\n ` --zendir-status-off: ${colors.status.off};`,\n '',\n ' /* Light-theme status fill colors */',\n ` --zendir-status-critical-light: ${colors.statusLightFill.critical};`,\n ` --zendir-status-serious-light: ${colors.statusLightFill.serious};`,\n ` --zendir-status-caution-light: ${colors.statusLightFill.caution};`,\n ` --zendir-status-normal-light: ${colors.statusLightFill.normal};`,\n ` --zendir-status-standby-light: ${colors.statusLightFill.standby};`,\n ` --zendir-status-off-light: ${colors.statusLightFill.off};`,\n '',\n ' /* Light-theme status border colors */',\n ` --zendir-status-critical-border: ${colors.statusLightBorder.critical};`,\n ` --zendir-status-serious-border: ${colors.statusLightBorder.serious};`,\n ` --zendir-status-caution-border: ${colors.statusLightBorder.caution};`,\n ` --zendir-status-normal-border: ${colors.statusLightBorder.normal};`,\n ` --zendir-status-standby-border: ${colors.statusLightBorder.standby};`,\n ` --zendir-status-off-border: ${colors.statusLightBorder.off};`,\n '',\n ' /* ============================================================',\n ' * ACCENT COLORS',\n ' * ============================================================ */',\n ` --zendir-accent-primary: ${colors.accent.primary};`,\n ` --zendir-accent-secondary: ${colors.accent.secondary};`,\n ` --zendir-accent-tertiary: ${colors.accent.tertiary};`,\n '',\n ' /* ============================================================',\n ' * SPACING',\n ' * ============================================================ */',\n ` --zendir-spacing-xs: ${spacing.xs};`,\n ` --zendir-spacing-sm: ${spacing.sm};`,\n ` --zendir-spacing-md: ${spacing.md};`,\n ` --zendir-spacing-lg: ${spacing.lg};`,\n ` --zendir-spacing-xl: ${spacing.xl};`,\n ` --zendir-spacing-xxl: ${spacing.xxl};`,\n '',\n ' /* ============================================================',\n ' * BORDER RADIUS',\n ' * ============================================================ */',\n ` --zendir-radius-none: ${borderRadius.none};`,\n ` --zendir-radius-sm: ${borderRadius.sm};`,\n ` --zendir-radius-md: ${borderRadius.md};`,\n ` --zendir-radius-lg: ${borderRadius.lg};`,\n ` --zendir-radius-xl: ${borderRadius.xl};`,\n ` --zendir-radius-full: ${borderRadius.full};`,\n '',\n ' /* ============================================================',\n ' * TYPOGRAPHY',\n ' * Public Sans leads body, Sora leads headings, Roboto is the',\n ' * AstroUXDS-compliant fallback. OS-native fonts complete the chain.',\n ' * @see https://www.astrouxds.com/foundations/typography/',\n ' * ============================================================ */',\n ` --zendir-font-primary: ${typography.fontFamily.primary};`,\n ` --zendir-font-heading: ${typography.fontFamily.heading};`,\n ` --zendir-font-mono: ${typography.fontFamily.mono};`,\n '',\n ' /* Font sizes (rem-based, AstroUXDS scale) */',\n ` --zendir-font-size-micro: ${typography.fontSize.micro};`,\n ` --zendir-font-size-xxs: ${typography.fontSize.xxs};`,\n ` --zendir-font-size-xs: ${typography.fontSize.xs};`,\n ` --zendir-font-size-sm: ${typography.fontSize.sm};`,\n ` --zendir-font-size-base: ${typography.fontSize.base};`,\n ` --zendir-font-size-md: ${typography.fontSize.md};`,\n ` --zendir-font-size-lg: ${typography.fontSize.lg};`,\n ` --zendir-font-size-xl: ${typography.fontSize.xl};`,\n ` --zendir-font-size-xxl: ${typography.fontSize.xxl};`,\n ` --zendir-font-size-xxxl: ${typography.fontSize.xxxl};`,\n ` --zendir-font-size-display: ${typography.fontSize.display};`,\n '',\n ' /* Font weights — AstroUXDS supports only 300/400/500/700 */',\n ` --zendir-font-weight-light: ${typography.fontWeight.light};`,\n ` --zendir-font-weight-normal: ${typography.fontWeight.normal};`,\n ` --zendir-font-weight-medium: ${typography.fontWeight.medium};`,\n ` --zendir-font-weight-bold: ${typography.fontWeight.bold};`,\n '',\n ' /* Line heights */',\n ` --zendir-line-height-tight: ${typography.lineHeight.tight};`,\n ` --zendir-line-height-normal: ${typography.lineHeight.normal};`,\n ` --zendir-line-height-relaxed: ${typography.lineHeight.relaxed};`,\n '',\n ' /* ============================================================',\n ' * SHADOWS',\n ' * ============================================================ */',\n ` --zendir-shadow-none: ${shadows.none};`,\n ` --zendir-shadow-sm: ${shadows.sm};`,\n ` --zendir-shadow-md: ${shadows.md};`,\n ` --zendir-shadow-lg: ${shadows.lg};`,\n ` --zendir-shadow-xl: ${shadows.xl};`,\n ` --zendir-shadow-glow: ${shadows.glow};`,\n '',\n ' /* ============================================================',\n ' * ANIMATION',\n ' * ============================================================ */',\n ` --zendir-animation-fast: ${animation.fast};`,\n ` --zendir-animation-normal: ${animation.normal};`,\n ` --zendir-animation-slow: ${animation.slow};`,\n ].join('\\n');\n}\n\n/** Build the mode-specific block (background + text + border). */\nfunction buildModeBlock(mode: 'dark' | 'light'): string {\n const bg = colors.background[mode];\n const txt = colors.text[mode];\n const bdr = colors.border[mode];\n return [\n ` --zendir-bg-base: ${bg.base};`,\n ` --zendir-bg-surface: ${bg.surface};`,\n ` --zendir-bg-elevated: ${bg.elevated};`,\n ` --zendir-bg-overlay: ${bg.overlay};`,\n '',\n ` --zendir-text-primary: ${txt.primary};`,\n ` --zendir-text-secondary: ${txt.secondary};`,\n ` --zendir-text-tertiary: ${txt.tertiary};`,\n ` --zendir-text-muted: ${txt.muted};`,\n '',\n ` --zendir-border-default: ${bdr.default};`,\n ` --zendir-border-muted: ${bdr.muted};`,\n ` --zendir-border-focus: ${bdr.focus};`,\n ].join('\\n');\n}\n\n/**\n * Single-mode generator. Emits one `:root { … }` block with the\n * mode-invariant tokens AND the chosen mode's bg/text/border.\n *\n * Useful for runtime injection — `<style>` tags written by SSR helpers\n * that target a single mode.\n */\nexport function generateCSSVariables(mode: 'dark' | 'light' = 'dark'): string {\n return [\n ':root {',\n buildInvariantBlock(),\n '',\n ` /* ${mode === 'dark' ? 'Dark' : 'Light'}-theme color overrides */`,\n buildModeBlock(mode),\n '}',\n ].join('\\n');\n}\n\n/**\n * Full stylesheet generator. Emits the complete tokens.css equivalent —\n * mode-invariant `:root` block plus `:root, [data-theme=\"dark\"]` and\n * `[data-theme=\"light\"]` mode overrides. This is what scripts/build-tokens.ts\n * writes to src/tokens/tokens.css.\n */\nexport function generateCSSStylesheet(): string {\n return [\n '/**',\n ' * @zendir/ui — CSS Design Tokens',\n ' *',\n ' * AUTO-GENERATED from src/tokens/index.ts. DO NOT EDIT BY HAND.',\n ' * Regenerate with: npm run build:tokens',\n ' *',\n ' * Usage:',\n \" * @import '@zendir/ui/tokens/css';\",\n ' * .my-component { background: var(--zendir-bg-surface); }',\n ' */',\n '',\n ':root {',\n buildInvariantBlock(),\n '}',\n '',\n '/* ============================================================',\n ' * DARK THEME (default)',\n ' * ============================================================ */',\n ':root,',\n '[data-theme=\"dark\"] {',\n buildModeBlock('dark'),\n '}',\n '',\n '/* ============================================================',\n ' * LIGHT THEME',\n ' * ============================================================ */',\n '[data-theme=\"light\"] {',\n buildModeBlock('light'),\n '}',\n '',\n ].join('\\n');\n}\n\nexport default {\n colors,\n spacing,\n borderRadius,\n typography,\n shadows,\n animation,\n generateCSSVariables,\n generateCSSStylesheet,\n};\n"],"names":[],"mappings":"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"}
|
package/dist/tokens/tokens.css
CHANGED
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @zendir/ui
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* @zendir/ui — CSS Design Tokens
|
|
3
|
+
*
|
|
4
|
+
* AUTO-GENERATED from src/tokens/index.ts. DO NOT EDIT BY HAND.
|
|
5
|
+
* Regenerate with: npm run build:tokens
|
|
6
|
+
*
|
|
6
7
|
* Usage:
|
|
7
8
|
* @import '@zendir/ui/tokens/css';
|
|
8
|
-
*
|
|
9
|
-
* .my-component {
|
|
10
|
-
* background: var(--zendir-bg-surface);
|
|
11
|
-
* color: var(--zendir-text-primary);
|
|
12
|
-
* }
|
|
9
|
+
* .my-component { background: var(--zendir-bg-surface); }
|
|
13
10
|
*/
|
|
14
11
|
|
|
15
12
|
:root {
|
|
16
|
-
/*
|
|
13
|
+
/* ============================================================
|
|
17
14
|
* STATUS COLORS (Astro UX Compliant)
|
|
18
|
-
*
|
|
15
|
+
* ============================================================ */
|
|
19
16
|
--zendir-status-critical: #ff3838;
|
|
20
17
|
--zendir-status-serious: #ffb302;
|
|
21
18
|
--zendir-status-caution: #fce83a;
|
|
@@ -23,7 +20,7 @@
|
|
|
23
20
|
--zendir-status-standby: #2dccff;
|
|
24
21
|
--zendir-status-off: #a4abb6;
|
|
25
22
|
|
|
26
|
-
/* Light
|
|
23
|
+
/* Light-theme status fill colors */
|
|
27
24
|
--zendir-status-critical-light: #ff2a04;
|
|
28
25
|
--zendir-status-serious-light: #ffaf3d;
|
|
29
26
|
--zendir-status-caution-light: #fad800;
|
|
@@ -31,7 +28,7 @@
|
|
|
31
28
|
--zendir-status-standby-light: #64d9ff;
|
|
32
29
|
--zendir-status-off-light: #7b8089;
|
|
33
30
|
|
|
34
|
-
/* Light
|
|
31
|
+
/* Light-theme status border colors */
|
|
35
32
|
--zendir-status-critical-border: #661102;
|
|
36
33
|
--zendir-status-serious-border: #664618;
|
|
37
34
|
--zendir-status-caution-border: #645600;
|
|
@@ -39,16 +36,16 @@
|
|
|
39
36
|
--zendir-status-standby-border: #285766;
|
|
40
37
|
--zendir-status-off-border: #3c3e42;
|
|
41
38
|
|
|
42
|
-
/*
|
|
39
|
+
/* ============================================================
|
|
43
40
|
* ACCENT COLORS
|
|
44
|
-
*
|
|
41
|
+
* ============================================================ */
|
|
45
42
|
--zendir-accent-primary: #4dacff;
|
|
46
43
|
--zendir-accent-secondary: #3d8ddb;
|
|
47
44
|
--zendir-accent-tertiary: #2e6eb3;
|
|
48
45
|
|
|
49
|
-
/*
|
|
46
|
+
/* ============================================================
|
|
50
47
|
* SPACING
|
|
51
|
-
*
|
|
48
|
+
* ============================================================ */
|
|
52
49
|
--zendir-spacing-xs: 4px;
|
|
53
50
|
--zendir-spacing-sm: 8px;
|
|
54
51
|
--zendir-spacing-md: 16px;
|
|
@@ -56,50 +53,53 @@
|
|
|
56
53
|
--zendir-spacing-xl: 32px;
|
|
57
54
|
--zendir-spacing-xxl: 48px;
|
|
58
55
|
|
|
59
|
-
/*
|
|
56
|
+
/* ============================================================
|
|
60
57
|
* BORDER RADIUS
|
|
61
|
-
*
|
|
58
|
+
* ============================================================ */
|
|
62
59
|
--zendir-radius-none: 0;
|
|
63
60
|
--zendir-radius-sm: 2px;
|
|
64
61
|
--zendir-radius-md: 4px;
|
|
65
62
|
--zendir-radius-lg: 8px;
|
|
66
|
-
--zendir-radius-xl:
|
|
63
|
+
--zendir-radius-xl: 12px;
|
|
67
64
|
--zendir-radius-full: 9999px;
|
|
68
65
|
|
|
69
|
-
/*
|
|
70
|
-
* TYPOGRAPHY
|
|
66
|
+
/* ============================================================
|
|
67
|
+
* TYPOGRAPHY
|
|
68
|
+
* Public Sans leads body, Sora leads headings, Roboto is the
|
|
69
|
+
* AstroUXDS-compliant fallback. OS-native fonts complete the chain.
|
|
71
70
|
* @see https://www.astrouxds.com/foundations/typography/
|
|
72
|
-
*
|
|
73
|
-
--zendir-font-primary:
|
|
74
|
-
--zendir-font-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
--zendir-font-size-
|
|
79
|
-
|
|
80
|
-
--zendir-font-size-xs: 0.
|
|
81
|
-
--zendir-font-size-sm: 0.
|
|
82
|
-
--zendir-font-size-base:
|
|
83
|
-
--zendir-font-size-md:
|
|
84
|
-
--zendir-font-size-lg:
|
|
85
|
-
--zendir-font-size-xl: 1.
|
|
86
|
-
--zendir-font-size-xxl:
|
|
87
|
-
--zendir-font-size-xxxl: 2.
|
|
88
|
-
|
|
89
|
-
|
|
71
|
+
* ============================================================ */
|
|
72
|
+
--zendir-font-primary: "Public Sans", "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
|
|
73
|
+
--zendir-font-heading: "Sora", "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
|
|
74
|
+
--zendir-font-mono: "Roboto Mono", "SF Mono", "Consolas", "Liberation Mono", monospace;
|
|
75
|
+
|
|
76
|
+
/* Font sizes (rem-based, AstroUXDS scale) */
|
|
77
|
+
--zendir-font-size-micro: 0.5625rem;
|
|
78
|
+
--zendir-font-size-xxs: 0.625rem;
|
|
79
|
+
--zendir-font-size-xs: 0.625rem;
|
|
80
|
+
--zendir-font-size-sm: 0.75rem;
|
|
81
|
+
--zendir-font-size-base: 0.875rem;
|
|
82
|
+
--zendir-font-size-md: 0.875rem;
|
|
83
|
+
--zendir-font-size-lg: 1rem;
|
|
84
|
+
--zendir-font-size-xl: 1.25rem;
|
|
85
|
+
--zendir-font-size-xxl: 1.5rem;
|
|
86
|
+
--zendir-font-size-xxxl: 2.125rem;
|
|
87
|
+
--zendir-font-size-display: 3.75rem;
|
|
88
|
+
|
|
89
|
+
/* Font weights — AstroUXDS supports only 300/400/500/700 */
|
|
90
90
|
--zendir-font-weight-light: 300;
|
|
91
91
|
--zendir-font-weight-normal: 400;
|
|
92
92
|
--zendir-font-weight-medium: 500;
|
|
93
|
-
--zendir-font-weight-semibold: 500; /* Use medium (500) - Astro doesn't support 600 */
|
|
94
93
|
--zendir-font-weight-bold: 700;
|
|
95
94
|
|
|
95
|
+
/* Line heights */
|
|
96
96
|
--zendir-line-height-tight: 1.25;
|
|
97
97
|
--zendir-line-height-normal: 1.5;
|
|
98
98
|
--zendir-line-height-relaxed: 1.75;
|
|
99
99
|
|
|
100
|
-
/*
|
|
100
|
+
/* ============================================================
|
|
101
101
|
* SHADOWS
|
|
102
|
-
*
|
|
102
|
+
* ============================================================ */
|
|
103
103
|
--zendir-shadow-none: none;
|
|
104
104
|
--zendir-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
|
|
105
105
|
--zendir-shadow-md: 0 2px 8px rgba(0, 0, 0, 0.3);
|
|
@@ -107,17 +107,17 @@
|
|
|
107
107
|
--zendir-shadow-xl: 0 8px 32px rgba(0, 0, 0, 0.4);
|
|
108
108
|
--zendir-shadow-glow: 0 0 20px rgba(77, 172, 255, 0.4);
|
|
109
109
|
|
|
110
|
-
/*
|
|
110
|
+
/* ============================================================
|
|
111
111
|
* ANIMATION
|
|
112
|
-
*
|
|
112
|
+
* ============================================================ */
|
|
113
113
|
--zendir-animation-fast: 150ms ease;
|
|
114
114
|
--zendir-animation-normal: 250ms ease;
|
|
115
115
|
--zendir-animation-slow: 400ms ease;
|
|
116
116
|
}
|
|
117
117
|
|
|
118
|
-
/*
|
|
119
|
-
* DARK THEME (
|
|
120
|
-
*
|
|
118
|
+
/* ============================================================
|
|
119
|
+
* DARK THEME (default)
|
|
120
|
+
* ============================================================ */
|
|
121
121
|
:root,
|
|
122
122
|
[data-theme="dark"] {
|
|
123
123
|
--zendir-bg-base: #101923;
|
|
@@ -135,9 +135,9 @@
|
|
|
135
135
|
--zendir-border-focus: #4dacff;
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
-
/*
|
|
138
|
+
/* ============================================================
|
|
139
139
|
* LIGHT THEME
|
|
140
|
-
*
|
|
140
|
+
* ============================================================ */
|
|
141
141
|
[data-theme="light"] {
|
|
142
142
|
--zendir-bg-base: #f5f6f9;
|
|
143
143
|
--zendir-bg-surface: #ffffff;
|