@devalok/shilp-sutra 0.36.1 → 0.37.0-next.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/MIGRATION.md +346 -0
- package/README.md +26 -29
- package/dist/_chunks/badge-group.js +42 -42
- package/dist/_chunks/badge-group.js.map +1 -1
- package/dist/_chunks/chat.js +324 -327
- package/dist/_chunks/chat.js.map +1 -1
- package/dist/_chunks/date-picker.js +245 -245
- package/dist/_chunks/date-picker.js.map +1 -1
- package/dist/_chunks/document-preview.js +33 -33
- package/dist/_chunks/document-preview.js.map +1 -1
- package/dist/_chunks/file-preview.js +264 -264
- package/dist/_chunks/file-preview.js.map +1 -1
- package/dist/_chunks/image-preview.js +45 -45
- package/dist/_chunks/image-preview.js.map +1 -1
- package/dist/_chunks/mention-suggestion.js +85 -85
- package/dist/_chunks/mention-suggestion.js.map +1 -1
- package/dist/_chunks/motion-provider.js +13 -13
- package/dist/_chunks/motion-provider.js.map +1 -1
- package/dist/_chunks/popover.js +36 -36
- package/dist/_chunks/popover.js.map +1 -1
- package/dist/_chunks/primitives.js +489 -489
- package/dist/_chunks/primitives.js.map +1 -1
- package/dist/_chunks/rich-chat-input.js +1065 -1065
- package/dist/_chunks/rich-chat-input.js.map +1 -1
- package/dist/_chunks/shared.js +43 -43
- package/dist/_chunks/shared.js.map +1 -1
- package/dist/_chunks/text.js +432 -0
- package/dist/_chunks/text.js.map +1 -0
- package/dist/_chunks/tiptap.js +6053 -6187
- package/dist/_chunks/tiptap.js.map +1 -1
- package/dist/_chunks/tree-view.js +97 -97
- package/dist/_chunks/tree-view.js.map +1 -1
- package/dist/_chunks/use-calendar.js.map +1 -1
- package/dist/ai/ai-command-provider.d.ts.map +1 -1
- package/dist/ai/ai-command-provider.js.map +1 -1
- package/dist/ai/block-renderer.d.ts.map +1 -1
- package/dist/ai/block-renderer.js +43 -43
- package/dist/ai/block-renderer.js.map +1 -1
- package/dist/ai/blocks/block-table.d.ts.map +1 -1
- package/dist/ai/blocks/confirm.d.ts.map +1 -1
- package/dist/ai/blocks/divider.d.ts.map +1 -1
- package/dist/ai/blocks/error.d.ts.map +1 -1
- package/dist/ai/blocks/index.d.ts +5 -5
- package/dist/ai/blocks/index.d.ts.map +1 -1
- package/dist/ai/blocks/index.js +2 -2
- package/dist/ai/blocks/info.d.ts.map +1 -1
- package/dist/ai/blocks/loading.d.ts.map +1 -1
- package/dist/ai/blocks/stat-row.d.ts.map +1 -1
- package/dist/ai/blocks/success.d.ts.map +1 -1
- package/dist/ai/blocks/text.d.ts.map +1 -1
- package/dist/ai/command-bar.d.ts +0 -11
- package/dist/ai/command-bar.d.ts.map +1 -1
- package/dist/ai/command-bar.js +128 -128
- package/dist/ai/command-bar.js.map +1 -1
- package/dist/ai/conversation.d.ts +1 -1
- package/dist/ai/conversation.d.ts.map +1 -1
- package/dist/ai/conversation.js +76 -76
- package/dist/ai/conversation.js.map +1 -1
- package/dist/ai/devadoot-icon.d.ts +0 -12
- package/dist/ai/devadoot-icon.d.ts.map +1 -1
- package/dist/ai/index.d.ts +11 -11
- package/dist/ai/index.d.ts.map +1 -1
- package/dist/ai/index.js +44 -44
- package/dist/ai/index.js.map +1 -1
- package/dist/composed/activity-feed.d.ts.map +1 -1
- package/dist/composed/activity-feed.js +93 -93
- package/dist/composed/activity-feed.js.map +1 -1
- package/dist/composed/avatar-group.d.ts.map +1 -1
- package/dist/composed/avatar-group.js +50 -50
- package/dist/composed/avatar-group.js.map +1 -1
- package/dist/composed/bulk-action-bar.d.ts.map +1 -1
- package/dist/composed/bulk-action-bar.js +40 -40
- package/dist/composed/bulk-action-bar.js.map +1 -1
- package/dist/composed/command-palette.d.ts +0 -6
- package/dist/composed/command-palette.d.ts.map +1 -1
- package/dist/composed/command-palette.js +131 -131
- package/dist/composed/command-palette.js.map +1 -1
- package/dist/composed/confirm-dialog.d.ts.map +1 -1
- package/dist/composed/confirm-dialog.js.map +1 -1
- package/dist/composed/content-card.d.ts.map +1 -1
- package/dist/composed/content-card.js.map +1 -1
- package/dist/composed/date-picker/calendar-grid.d.ts.map +1 -1
- package/dist/composed/date-picker/date-picker.d.ts.map +1 -1
- package/dist/composed/date-picker/date-range-picker.d.ts.map +1 -1
- package/dist/composed/date-picker/date-time-picker.d.ts.map +1 -1
- package/dist/composed/date-picker/index.d.ts +11 -11
- package/dist/composed/date-picker/index.d.ts.map +1 -1
- package/dist/composed/date-picker/index.js +1 -1
- package/dist/composed/date-picker/month-picker.d.ts.map +1 -1
- package/dist/composed/date-picker/presets.d.ts.map +1 -1
- package/dist/composed/date-picker/time-picker.d.ts.map +1 -1
- package/dist/composed/date-picker/year-picker.d.ts.map +1 -1
- package/dist/composed/deadline-indicator.d.ts.map +1 -1
- package/dist/composed/deadline-indicator.js +25 -25
- package/dist/composed/deadline-indicator.js.map +1 -1
- package/dist/composed/emoji-picker.d.ts.map +1 -1
- package/dist/composed/emoji-picker.js +37 -37
- package/dist/composed/emoji-picker.js.map +1 -1
- package/dist/composed/empty-state.d.ts.map +1 -1
- package/dist/composed/empty-state.js +21 -21
- package/dist/composed/empty-state.js.map +1 -1
- package/dist/composed/error-boundary.d.ts +1 -1
- package/dist/composed/error-boundary.d.ts.map +1 -1
- package/dist/composed/error-boundary.js.map +1 -1
- package/dist/composed/extensions/emoji-node.d.ts.map +1 -1
- package/dist/composed/extensions/emoji-suggestion.d.ts.map +1 -1
- package/dist/composed/extensions/file-attachment.d.ts.map +1 -1
- package/dist/composed/extensions/mention-suggestion.d.ts +1 -1
- package/dist/composed/extensions/mention-suggestion.d.ts.map +1 -1
- package/dist/composed/extensions/slash-command.d.ts +1 -1
- package/dist/composed/extensions/slash-command.d.ts.map +1 -1
- package/dist/composed/file-preview/audio-preview.d.ts.map +1 -1
- package/dist/composed/file-preview/document-preview.d.ts.map +1 -1
- package/dist/composed/file-preview/embed-preview.d.ts.map +1 -1
- package/dist/composed/file-preview/image-preview.d.ts.map +1 -1
- package/dist/composed/file-preview/shared.d.ts.map +1 -1
- package/dist/composed/file-preview/video-preview.d.ts.map +1 -1
- package/dist/composed/file-preview.d.ts.map +1 -1
- package/dist/composed/filter-bar.d.ts +1 -1
- package/dist/composed/filter-bar.d.ts.map +1 -1
- package/dist/composed/filter-bar.js +54 -54
- package/dist/composed/filter-bar.js.map +1 -1
- package/dist/composed/form-section.d.ts.map +1 -1
- package/dist/composed/form-section.js +26 -26
- package/dist/composed/form-section.js.map +1 -1
- package/dist/composed/global-loading.d.ts.map +1 -1
- package/dist/composed/global-loading.js.map +1 -1
- package/dist/composed/index.d.ts +55 -55
- package/dist/composed/index.d.ts.map +1 -1
- package/dist/composed/index.js +17 -17
- package/dist/composed/inline-edit.d.ts.map +1 -1
- package/dist/composed/inline-edit.js.map +1 -1
- package/dist/composed/loading-skeleton.d.ts +1 -1
- package/dist/composed/loading-skeleton.d.ts.map +1 -1
- package/dist/composed/loading-skeleton.js.map +1 -1
- package/dist/composed/markdown-viewer.d.ts.map +1 -1
- package/dist/composed/markdown-viewer.js +3 -3
- package/dist/composed/markdown-viewer.js.map +1 -1
- package/dist/composed/master-detail.d.ts.map +1 -1
- package/dist/composed/master-detail.js +42 -42
- package/dist/composed/master-detail.js.map +1 -1
- package/dist/composed/member-picker.d.ts.map +1 -1
- package/dist/composed/member-picker.js.map +1 -1
- package/dist/composed/multi-select-popover.d.ts.map +1 -1
- package/dist/composed/multi-select-popover.js +55 -55
- package/dist/composed/multi-select-popover.js.map +1 -1
- package/dist/composed/page-header.d.ts.map +1 -1
- package/dist/composed/page-header.js.map +1 -1
- package/dist/composed/page-skeletons.d.ts.map +1 -1
- package/dist/composed/page-skeletons.js.map +1 -1
- package/dist/composed/priority-indicator.d.ts.map +1 -1
- package/dist/composed/priority-indicator.js +34 -34
- package/dist/composed/priority-indicator.js.map +1 -1
- package/dist/composed/responsive-overlay.d.ts.map +1 -1
- package/dist/composed/responsive-overlay.js.map +1 -1
- package/dist/composed/rich-chat-input/attachment-strip.d.ts.map +1 -1
- package/dist/composed/rich-chat-input/audio-player.d.ts.map +1 -1
- package/dist/composed/rich-chat-input/audio-waveform.d.ts.map +1 -1
- package/dist/composed/rich-chat-input/chat-toolbar.d.ts.map +1 -1
- package/dist/composed/rich-chat-input/recording-overlay.d.ts.map +1 -1
- package/dist/composed/rich-chat-input/reply-banner.d.ts.map +1 -1
- package/dist/composed/rich-chat-input/schedule-send.d.ts.map +1 -1
- package/dist/composed/rich-chat-input.d.ts +6 -6
- package/dist/composed/rich-chat-input.d.ts.map +1 -1
- package/dist/composed/rich-chat-input.js +1 -1
- package/dist/composed/rich-text-editor.d.ts.map +1 -1
- package/dist/composed/rich-text-editor.js +24 -24
- package/dist/composed/rich-text-editor.js.map +1 -1
- package/dist/composed/schedule-view.d.ts.map +1 -1
- package/dist/composed/schedule-view.js +53 -53
- package/dist/composed/schedule-view.js.map +1 -1
- package/dist/composed/simple-tooltip.d.ts.map +1 -1
- package/dist/composed/simple-tooltip.js.map +1 -1
- package/dist/composed/status-badge.d.ts +1 -1
- package/dist/composed/status-badge.d.ts.map +1 -1
- package/dist/composed/status-badge.js +30 -30
- package/dist/composed/status-badge.js.map +1 -1
- package/dist/hooks/index.d.ts +3 -3
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/use-color-mode.js.map +1 -1
- package/dist/hooks/use-toast.d.ts +1 -1
- package/dist/hooks/use-toast.d.ts.map +1 -1
- package/dist/motion/index.d.ts +2 -2
- package/dist/motion/index.d.ts.map +1 -1
- package/dist/motion/index.js.map +1 -1
- package/dist/motion/motion-provider.d.ts +1 -1
- package/dist/motion/motion-provider.d.ts.map +1 -1
- package/dist/motion/primitives-index.d.ts +1 -1
- package/dist/motion/primitives-index.d.ts.map +1 -1
- package/dist/motion/primitives-index.js +40 -40
- package/dist/motion/primitives-index.js.map +1 -1
- package/dist/motion/primitives.d.ts +1 -1
- package/dist/motion/primitives.d.ts.map +1 -1
- package/dist/shell/app-command-palette.d.ts +0 -8
- package/dist/shell/app-command-palette.d.ts.map +1 -1
- package/dist/shell/app-command-palette.js.map +1 -1
- package/dist/shell/bottom-navbar.d.ts +0 -6
- package/dist/shell/bottom-navbar.d.ts.map +1 -1
- package/dist/shell/bottom-navbar.js +62 -62
- package/dist/shell/bottom-navbar.js.map +1 -1
- package/dist/shell/index.d.ts +8 -8
- package/dist/shell/index.d.ts.map +1 -1
- package/dist/shell/index.js +5 -5
- package/dist/shell/link-context.d.ts +1 -1
- package/dist/shell/link-context.d.ts.map +1 -1
- package/dist/shell/notification-center.d.ts +0 -6
- package/dist/shell/notification-center.d.ts.map +1 -1
- package/dist/shell/notification-center.js +54 -54
- package/dist/shell/notification-center.js.map +1 -1
- package/dist/shell/notification-preferences.d.ts +0 -6
- package/dist/shell/notification-preferences.d.ts.map +1 -1
- package/dist/shell/notification-preferences.js +22 -22
- package/dist/shell/notification-preferences.js.map +1 -1
- package/dist/shell/sidebar.d.ts.map +1 -1
- package/dist/shell/sidebar.js.map +1 -1
- package/dist/shell/top-bar.d.ts +0 -6
- package/dist/shell/top-bar.d.ts.map +1 -1
- package/dist/shell/top-bar.js.map +1 -1
- package/dist/tailwind/index.cjs +15 -499
- package/dist/tailwind/preset.d.ts +21 -0
- package/dist/tailwind/preset.d.ts.map +1 -1
- package/dist/tailwind/preset.js +14 -489
- package/dist/tailwind/preset.js.map +1 -1
- package/dist/tokens/animations.css +139 -0
- package/dist/tokens/base.css +26 -0
- package/dist/tokens/index.css +22 -0
- package/dist/tokens/primitives.css +2 -0
- package/dist/tokens/semantic.css +500 -465
- package/dist/tokens/shilp-sutra.css +54 -0
- package/dist/tokens/typography-semantic.css +48 -41
- package/dist/tokens/utilities.css +328 -0
- package/dist/tokens/variants.css +14 -0
- package/dist/ui/accordion.d.ts +2 -2
- package/dist/ui/accordion.d.ts.map +1 -1
- package/dist/ui/accordion.js +23 -23
- package/dist/ui/accordion.js.map +1 -1
- package/dist/ui/alert-dialog.d.ts +2 -2
- package/dist/ui/alert-dialog.d.ts.map +1 -1
- package/dist/ui/alert-dialog.js +37 -37
- package/dist/ui/alert-dialog.js.map +1 -1
- package/dist/ui/alert.d.ts.map +1 -1
- package/dist/ui/alert.js +36 -36
- package/dist/ui/alert.js.map +1 -1
- package/dist/ui/aspect-ratio.d.ts +1 -1
- package/dist/ui/aspect-ratio.d.ts.map +1 -1
- package/dist/ui/aspect-ratio.js.map +1 -1
- package/dist/ui/autocomplete.d.ts +1 -1
- package/dist/ui/autocomplete.d.ts.map +1 -1
- package/dist/ui/autocomplete.js +27 -27
- package/dist/ui/autocomplete.js.map +1 -1
- package/dist/ui/avatar.d.ts +2 -2
- package/dist/ui/avatar.d.ts.map +1 -1
- package/dist/ui/avatar.js +41 -41
- package/dist/ui/avatar.js.map +1 -1
- package/dist/ui/badge-group.d.ts.map +1 -1
- package/dist/ui/badge-indicator.d.ts.map +1 -1
- package/dist/ui/badge-indicator.js +10 -10
- package/dist/ui/badge-indicator.js.map +1 -1
- package/dist/ui/badge.d.ts +2 -2
- package/dist/ui/badge.d.ts.map +1 -1
- package/dist/ui/banner.d.ts.map +1 -1
- package/dist/ui/banner.js +28 -28
- package/dist/ui/banner.js.map +1 -1
- package/dist/ui/breadcrumb.d.ts +1 -1
- package/dist/ui/breadcrumb.d.ts.map +1 -1
- package/dist/ui/breadcrumb.js.map +1 -1
- package/dist/ui/button-group.d.ts.map +1 -1
- package/dist/ui/button-group.js.map +1 -1
- package/dist/ui/button-processing.d.ts.map +1 -1
- package/dist/ui/button-processing.js +15 -15
- package/dist/ui/button-processing.js.map +1 -1
- package/dist/ui/button.d.ts.map +1 -1
- package/dist/ui/button.js +84 -84
- package/dist/ui/button.js.map +1 -1
- package/dist/ui/card.d.ts +1 -1
- package/dist/ui/card.d.ts.map +1 -1
- package/dist/ui/card.js +28 -28
- package/dist/ui/card.js.map +1 -1
- package/dist/ui/charts/_internal/axes.d.ts +1 -1
- package/dist/ui/charts/_internal/axes.d.ts.map +1 -1
- package/dist/ui/charts/_internal/grid-lines.d.ts.map +1 -1
- package/dist/ui/charts/_internal/legend.d.ts.map +1 -1
- package/dist/ui/charts/_internal/tooltip.d.ts +1 -1
- package/dist/ui/charts/_internal/tooltip.d.ts.map +1 -1
- package/dist/ui/charts/area-chart.d.ts.map +1 -1
- package/dist/ui/charts/bar-chart.d.ts +1 -1
- package/dist/ui/charts/bar-chart.d.ts.map +1 -1
- package/dist/ui/charts/chart-container.d.ts.map +1 -1
- package/dist/ui/charts/gauge-chart.d.ts.map +1 -1
- package/dist/ui/charts/index.d.ts +5 -5
- package/dist/ui/charts/index.d.ts.map +1 -1
- package/dist/ui/charts/index.js +616 -616
- package/dist/ui/charts/index.js.map +1 -1
- package/dist/ui/charts/line-chart.d.ts.map +1 -1
- package/dist/ui/charts/pie-chart.d.ts.map +1 -1
- package/dist/ui/charts/radar-chart.d.ts.map +1 -1
- package/dist/ui/charts/sparkline.d.ts.map +1 -1
- package/dist/ui/chat/date-separator.d.ts.map +1 -1
- package/dist/ui/chat/index.d.ts +4 -4
- package/dist/ui/chat/index.d.ts.map +1 -1
- package/dist/ui/chat/index.js +1 -1
- package/dist/ui/chat/message-input.d.ts.map +1 -1
- package/dist/ui/chat/message-list.d.ts.map +1 -1
- package/dist/ui/chat/message.d.ts +1 -1
- package/dist/ui/chat/message.d.ts.map +1 -1
- package/dist/ui/chat/system-message.d.ts.map +1 -1
- package/dist/ui/chat/typing-indicator.d.ts.map +1 -1
- package/dist/ui/chat/unread-separator.d.ts.map +1 -1
- package/dist/ui/checkbox.d.ts.map +1 -1
- package/dist/ui/checkbox.js +18 -18
- package/dist/ui/checkbox.js.map +1 -1
- package/dist/ui/code.d.ts.map +1 -1
- package/dist/ui/code.js.map +1 -1
- package/dist/ui/collapsible.d.ts +2 -2
- package/dist/ui/collapsible.d.ts.map +1 -1
- package/dist/ui/collapsible.js +10 -10
- package/dist/ui/collapsible.js.map +1 -1
- package/dist/ui/color-input.d.ts.map +1 -1
- package/dist/ui/color-input.js +85 -85
- package/dist/ui/color-input.js.map +1 -1
- package/dist/ui/color-swatch.d.ts.map +1 -1
- package/dist/ui/color-swatch.js.map +1 -1
- package/dist/ui/combobox.d.ts.map +1 -1
- package/dist/ui/combobox.js +58 -58
- package/dist/ui/combobox.js.map +1 -1
- package/dist/ui/container.d.ts.map +1 -1
- package/dist/ui/container.js.map +1 -1
- package/dist/ui/context-menu.d.ts +2 -2
- package/dist/ui/context-menu.d.ts.map +1 -1
- package/dist/ui/context-menu.js +47 -47
- package/dist/ui/context-menu.js.map +1 -1
- package/dist/ui/data-table-body.d.ts +1 -1
- package/dist/ui/data-table-body.d.ts.map +1 -1
- package/dist/ui/data-table-body.js +43 -43
- package/dist/ui/data-table-body.js.map +1 -1
- package/dist/ui/data-table-bulk-actions.js.map +1 -1
- package/dist/ui/data-table-card.d.ts.map +1 -1
- package/dist/ui/data-table-card.js +7 -7
- package/dist/ui/data-table-card.js.map +1 -1
- package/dist/ui/data-table-context.d.ts +1 -1
- package/dist/ui/data-table-context.d.ts.map +1 -1
- package/dist/ui/data-table-context.js.map +1 -1
- package/dist/ui/data-table-header.js +38 -38
- package/dist/ui/data-table-header.js.map +1 -1
- package/dist/ui/data-table-pagination.js.map +1 -1
- package/dist/ui/data-table-toolbar.d.ts.map +1 -1
- package/dist/ui/data-table-toolbar.js.map +1 -1
- package/dist/ui/data-table.d.ts +2 -2
- package/dist/ui/data-table.d.ts.map +1 -1
- package/dist/ui/data-table.js +5 -5
- package/dist/ui/data-table.js.map +1 -1
- package/dist/ui/devalok-grain.js +8 -8
- package/dist/ui/devalok-grain.js.map +1 -1
- package/dist/ui/dialog.d.ts +2 -2
- package/dist/ui/dialog.d.ts.map +1 -1
- package/dist/ui/dialog.js +41 -41
- package/dist/ui/dialog.js.map +1 -1
- package/dist/ui/dropdown-menu.d.ts +2 -2
- package/dist/ui/dropdown-menu.d.ts.map +1 -1
- package/dist/ui/dropdown-menu.js +46 -46
- package/dist/ui/dropdown-menu.js.map +1 -1
- package/dist/ui/file-upload.d.ts.map +1 -1
- package/dist/ui/file-upload.js +54 -54
- package/dist/ui/file-upload.js.map +1 -1
- package/dist/ui/form.d.ts.map +1 -1
- package/dist/ui/form.js +17 -17
- package/dist/ui/form.js.map +1 -1
- package/dist/ui/hover-card.d.ts +2 -2
- package/dist/ui/hover-card.d.ts.map +1 -1
- package/dist/ui/hover-card.js +19 -19
- package/dist/ui/hover-card.js.map +1 -1
- package/dist/ui/icon-button.d.ts.map +1 -1
- package/dist/ui/icon-button.js.map +1 -1
- package/dist/ui/icon-group.d.ts.map +1 -1
- package/dist/ui/icon-group.js +4 -4
- package/dist/ui/icon-group.js.map +1 -1
- package/dist/ui/icon.d.ts.map +1 -1
- package/dist/ui/icon.js +32 -32
- package/dist/ui/icon.js.map +1 -1
- package/dist/ui/index.d.ts +57 -57
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +27 -27
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/input-otp.d.ts +1 -1
- package/dist/ui/input-otp.d.ts.map +1 -1
- package/dist/ui/input-otp.js.map +1 -1
- package/dist/ui/input.d.ts.map +1 -1
- package/dist/ui/input.js +14 -14
- package/dist/ui/input.js.map +1 -1
- package/dist/ui/label.d.ts +1 -1
- package/dist/ui/label.d.ts.map +1 -1
- package/dist/ui/label.js.map +1 -1
- package/dist/ui/lib/bottom-sheet.d.ts.map +1 -1
- package/dist/ui/lib/index.d.ts +4 -4
- package/dist/ui/lib/index.d.ts.map +1 -1
- package/dist/ui/lib/slot.d.ts +1 -1
- package/dist/ui/lib/slot.d.ts.map +1 -1
- package/dist/ui/lib/utils.d.ts.map +1 -1
- package/dist/ui/lib/utils.js.map +1 -1
- package/dist/ui/link.d.ts.map +1 -1
- package/dist/ui/link.js.map +1 -1
- package/dist/ui/menubar.d.ts +2 -2
- package/dist/ui/menubar.d.ts.map +1 -1
- package/dist/ui/menubar.js +64 -64
- package/dist/ui/menubar.js.map +1 -1
- package/dist/ui/navigation-menu.d.ts +2 -2
- package/dist/ui/navigation-menu.d.ts.map +1 -1
- package/dist/ui/navigation-menu.js +72 -72
- package/dist/ui/navigation-menu.js.map +1 -1
- package/dist/ui/number-input.d.ts.map +1 -1
- package/dist/ui/number-input.js.map +1 -1
- package/dist/ui/pagination.d.ts +1 -1
- package/dist/ui/pagination.d.ts.map +1 -1
- package/dist/ui/pagination.js.map +1 -1
- package/dist/ui/popover.d.ts +2 -2
- package/dist/ui/popover.d.ts.map +1 -1
- package/dist/ui/progress-ring.d.ts +1 -1
- package/dist/ui/progress-ring.d.ts.map +1 -1
- package/dist/ui/progress-ring.js +33 -33
- package/dist/ui/progress-ring.js.map +1 -1
- package/dist/ui/progress.d.ts +2 -2
- package/dist/ui/progress.d.ts.map +1 -1
- package/dist/ui/progress.js +23 -23
- package/dist/ui/progress.js.map +1 -1
- package/dist/ui/radio.d.ts.map +1 -1
- package/dist/ui/radio.js +19 -19
- package/dist/ui/radio.js.map +1 -1
- package/dist/ui/search-input.d.ts.map +1 -1
- package/dist/ui/search-input.js +17 -17
- package/dist/ui/search-input.js.map +1 -1
- package/dist/ui/segmented-control.d.ts.map +1 -1
- package/dist/ui/segmented-control.js +18 -18
- package/dist/ui/segmented-control.js.map +1 -1
- package/dist/ui/select.d.ts +2 -2
- package/dist/ui/select.d.ts.map +1 -1
- package/dist/ui/select.js +68 -68
- package/dist/ui/select.js.map +1 -1
- package/dist/ui/separator.d.ts +1 -1
- package/dist/ui/separator.d.ts.map +1 -1
- package/dist/ui/separator.js.map +1 -1
- package/dist/ui/sheet.d.ts +2 -2
- package/dist/ui/sheet.d.ts.map +1 -1
- package/dist/ui/sheet.js +44 -44
- package/dist/ui/sheet.js.map +1 -1
- package/dist/ui/sidebar.d.ts +1 -1
- package/dist/ui/sidebar.d.ts.map +1 -1
- package/dist/ui/sidebar.js +155 -155
- package/dist/ui/sidebar.js.map +1 -1
- package/dist/ui/skeleton.d.ts +1 -1
- package/dist/ui/skeleton.d.ts.map +1 -1
- package/dist/ui/skeleton.js +2 -2
- package/dist/ui/skeleton.js.map +1 -1
- package/dist/ui/slider.d.ts +2 -2
- package/dist/ui/slider.d.ts.map +1 -1
- package/dist/ui/slider.js +5 -5
- package/dist/ui/slider.js.map +1 -1
- package/dist/ui/spinner.d.ts.map +1 -1
- package/dist/ui/spinner.js +21 -21
- package/dist/ui/spinner.js.map +1 -1
- package/dist/ui/split-button.d.ts +1 -1
- package/dist/ui/split-button.d.ts.map +1 -1
- package/dist/ui/split-button.js +28 -28
- package/dist/ui/split-button.js.map +1 -1
- package/dist/ui/stack.d.ts +1 -1
- package/dist/ui/stack.d.ts.map +1 -1
- package/dist/ui/stack.js.map +1 -1
- package/dist/ui/stat-card.d.ts.map +1 -1
- package/dist/ui/stat-card.js +73 -73
- package/dist/ui/stat-card.js.map +1 -1
- package/dist/ui/status-dot.d.ts.map +1 -1
- package/dist/ui/status-dot.js.map +1 -1
- package/dist/ui/stepper.d.ts +1 -1
- package/dist/ui/stepper.d.ts.map +1 -1
- package/dist/ui/stepper.js +48 -48
- package/dist/ui/stepper.js.map +1 -1
- package/dist/ui/switch.d.ts +1 -1
- package/dist/ui/switch.d.ts.map +1 -1
- package/dist/ui/switch.js +15 -15
- package/dist/ui/switch.js.map +1 -1
- package/dist/ui/table.d.ts +1 -1
- package/dist/ui/table.d.ts.map +1 -1
- package/dist/ui/table.js.map +1 -1
- package/dist/ui/tabs.d.ts +2 -2
- package/dist/ui/tabs.d.ts.map +1 -1
- package/dist/ui/tabs.js +52 -52
- package/dist/ui/tabs.js.map +1 -1
- package/dist/ui/text.d.ts +1 -1
- package/dist/ui/text.d.ts.map +1 -1
- package/dist/ui/text.js.map +1 -1
- package/dist/ui/textarea.d.ts.map +1 -1
- package/dist/ui/textarea.js +13 -13
- package/dist/ui/textarea.js.map +1 -1
- package/dist/ui/toast-registry.js.map +1 -1
- package/dist/ui/toast.d.ts +3 -3
- package/dist/ui/toast.d.ts.map +1 -1
- package/dist/ui/toast.js +164 -164
- package/dist/ui/toast.js.map +1 -1
- package/dist/ui/toaster.d.ts.map +1 -1
- package/dist/ui/toaster.js +6 -6
- package/dist/ui/toaster.js.map +1 -1
- package/dist/ui/toggle-group.d.ts +1 -1
- package/dist/ui/toggle-group.d.ts.map +1 -1
- package/dist/ui/toggle-group.js.map +1 -1
- package/dist/ui/toggle.d.ts +1 -1
- package/dist/ui/toggle.d.ts.map +1 -1
- package/dist/ui/toggle.js +14 -14
- package/dist/ui/toggle.js.map +1 -1
- package/dist/ui/tooltip.d.ts +2 -2
- package/dist/ui/tooltip.d.ts.map +1 -1
- package/dist/ui/tooltip.js +26 -26
- package/dist/ui/tooltip.js.map +1 -1
- package/dist/ui/tree-view/index.d.ts +2 -2
- package/dist/ui/tree-view/index.d.ts.map +1 -1
- package/dist/ui/tree-view/index.js +1 -1
- package/dist/ui/tree-view/tree-view.d.ts +1 -1
- package/dist/ui/tree-view/tree-view.d.ts.map +1 -1
- package/dist/ui/visually-hidden.d.ts.map +1 -1
- package/dist/ui/visually-hidden.js.map +1 -1
- package/docs/components/_header.md +96 -0
- package/docs/rollback.md +179 -0
- package/llms-full.txt +97 -1
- package/llms.txt +24 -2
- package/package.json +302 -277
- package/dist/_chunks/framer.js +0 -5604
- package/dist/_chunks/framer.js.map +0 -1
- package/dist/_chunks/rolldown-runtime.js +0 -21
- package/dist/_chunks/sonner.js +0 -616
- package/dist/_chunks/sonner.js.map +0 -1
- package/dist/_chunks/stat-row.js +0 -432
- package/dist/_chunks/stat-row.js.map +0 -1
package/dist/tokens/semantic.css
CHANGED
|
@@ -1,337 +1,475 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════════
|
|
2
|
+
SEMANTIC TOKENS (TW4 native)
|
|
3
|
+
|
|
4
|
+
This file expresses the design system's PUBLIC token surface as
|
|
5
|
+
Tailwind 4 `@theme` variables. Every `@theme` variable below maps
|
|
6
|
+
to an auto-generated utility class:
|
|
7
|
+
|
|
8
|
+
--color-accent-9 → bg-accent-9, text-accent-9, border-accent-9, ...
|
|
9
|
+
--spacing-ds-03 → p-ds-03, m-ds-03, gap-ds-03, w-ds-03, ...
|
|
10
|
+
--text-ds-md → text-ds-md
|
|
11
|
+
--leading-ds-relaxed → leading-ds-relaxed
|
|
12
|
+
--radius-ds-md → rounded-ds-md
|
|
13
|
+
--shadow-raised → shadow-raised
|
|
14
|
+
--ease-productive-standard → ease-productive-standard
|
|
15
|
+
--breakpoint-md → md:* variant
|
|
16
|
+
--animate-skeleton-shimmer → animate-skeleton-shimmer
|
|
17
|
+
|
|
18
|
+
Declared in @theme but utilities generated by explicit @utility blocks
|
|
19
|
+
in tokens/utilities.css (TW4 has no auto-namespace for these):
|
|
20
|
+
--z-popover → z-popover (via @utility)
|
|
21
|
+
--duration-moderate-01 → duration-moderate-01 (via @utility)
|
|
22
|
+
|
|
23
|
+
INTERNAL tokens (not utility-generating) stay in plain `:root { }`:
|
|
24
|
+
- --action-*-opacity (consumed by `opacity-action-*` via preset — moving
|
|
25
|
+
these to theme would pollute the `opacity-*` namespace)
|
|
26
|
+
- --shadow-color, --shadow-strength, --shadow-xs/sm/md/lg internals
|
|
27
|
+
- --size-*, --icon-*, --border-width-*, --border-focus-*
|
|
28
|
+
- --max-width*, --shadow-transition, --shadow-kbd
|
|
29
|
+
- --chart-* (consumed via var() in chart components, not utility)
|
|
30
|
+
- --gradient-brand-* (consumed via var() in DevalokGrain)
|
|
31
|
+
- --color-inset-glow*, --color-text-shadow, --color-overlay*
|
|
32
|
+
(consumed via var() in internal effect layers)
|
|
33
|
+
|
|
34
|
+
The `.dark { }` block below overrides theme variables for dark mode.
|
|
35
|
+
TW4 supports this cascade: an `@theme` variable re-declared under a
|
|
36
|
+
scoped selector is honored at runtime.
|
|
37
|
+
═══════════════════════════════════════════════════════════════════ */
|
|
38
|
+
|
|
1
39
|
:root {
|
|
2
40
|
color-scheme: light;
|
|
41
|
+
}
|
|
3
42
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
43
|
+
/* ═══════════════════════════════════════════════════════════════════
|
|
44
|
+
PUBLIC TOKENS (utility-generating)
|
|
45
|
+
═══════════════════════════════════════════════════════════════════ */
|
|
46
|
+
@theme {
|
|
47
|
+
/* ───────────────────────────────────────────────────────────
|
|
48
|
+
TYPOGRAPHY — font families, weights, sizes, leading, tracking
|
|
49
|
+
─────────────────────────────────────────────────────────── */
|
|
7
50
|
|
|
8
|
-
/* Font families — override
|
|
51
|
+
/* Font families — consumers override with next/font CSS variables.
|
|
52
|
+
TW4 namespace: --font-* → font-* utility */
|
|
9
53
|
--font-sans: "Inter", system-ui, sans-serif;
|
|
10
54
|
--font-display: "Inter", system-ui, sans-serif;
|
|
11
55
|
--font-body: "Inter", system-ui, sans-serif;
|
|
12
56
|
--font-accent: Ranade, sans-serif;
|
|
13
57
|
--font-mono: "SF Mono", "Fira Code", monospace;
|
|
14
58
|
|
|
15
|
-
/*
|
|
59
|
+
/* Font weights — TW4 namespace: --font-weight-* → font-* (semibold, bold, etc.) */
|
|
16
60
|
--font-weight-light: 300;
|
|
17
61
|
--font-weight-regular: 400;
|
|
18
62
|
--font-weight-medium: 500;
|
|
19
63
|
--font-weight-semibold: 600;
|
|
20
64
|
--font-weight-bold: 700;
|
|
21
65
|
|
|
22
|
-
/*
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
--
|
|
27
|
-
/* 12px */
|
|
28
|
-
--
|
|
29
|
-
/*
|
|
30
|
-
--
|
|
31
|
-
/*
|
|
32
|
-
--
|
|
33
|
-
/*
|
|
34
|
-
--
|
|
35
|
-
/*
|
|
36
|
-
--
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
--
|
|
41
|
-
|
|
42
|
-
--
|
|
43
|
-
|
|
44
|
-
--
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
/*
|
|
48
|
-
|
|
49
|
-
--
|
|
50
|
-
--
|
|
51
|
-
--
|
|
52
|
-
--
|
|
53
|
-
--
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
--tracking-tight: -0.025em;
|
|
58
|
-
--tracking-normal: 0;
|
|
59
|
-
--tracking-wide: 0.025em;
|
|
60
|
-
--tracking-wider: 0.05em;
|
|
61
|
-
--tracking-widest: 0.1em;
|
|
62
|
-
|
|
63
|
-
/* ═══════════════════════════════════════════════════════════
|
|
66
|
+
/* Type scale (rem). Base: 16px = 1rem.
|
|
67
|
+
TW4 namespace: --text-* → text-* utility.
|
|
68
|
+
We use the `ds-` prefix to avoid collision with consumer's own
|
|
69
|
+
text sizes (TW4 default supplies text-xs, text-sm, etc.). */
|
|
70
|
+
--text-ds-xs: 0.625rem; /* 10px */
|
|
71
|
+
--text-ds-sm: 0.75rem; /* 12px */
|
|
72
|
+
--text-ds-md: 0.875rem; /* 14px */
|
|
73
|
+
--text-ds-base: 1rem; /* 16px */
|
|
74
|
+
--text-ds-lg: 1.125rem; /* 18px */
|
|
75
|
+
--text-ds-xl: 1.25rem; /* 20px */
|
|
76
|
+
--text-ds-2xl: 1.5rem; /* 24px */
|
|
77
|
+
--text-ds-3xl: clamp(1.5rem, 1.125rem + 1.25vw, 2rem); /* 24→32 fluid */
|
|
78
|
+
--text-ds-4xl: clamp(1.75rem, 1.25rem + 1.5vw, 2.25rem); /* 28→36 fluid */
|
|
79
|
+
--text-ds-5xl: clamp(2rem, 1.25rem + 2.5vw, 3rem); /* 32→48 fluid */
|
|
80
|
+
--text-ds-6xl: clamp(2.25rem, 1.5rem + 3vw, 3.75rem); /* 36→60 fluid */
|
|
81
|
+
|
|
82
|
+
/* Line heights — TW4 namespace: --leading-* → leading-* utility.
|
|
83
|
+
`ds-` prefix to namespace our scale, not collide with TW4 defaults. */
|
|
84
|
+
--leading-ds-none: 1;
|
|
85
|
+
--leading-ds-tight: 1.15;
|
|
86
|
+
--leading-ds-snug: 1.25;
|
|
87
|
+
--leading-ds-normal: 1.4;
|
|
88
|
+
--leading-ds-relaxed: 1.5;
|
|
89
|
+
--leading-ds-loose: 1.6;
|
|
90
|
+
|
|
91
|
+
/* Letter spacing — TW4 namespace: --tracking-* → tracking-* utility.
|
|
92
|
+
`ds-` prefix preserves TW4 defaults (tracking-tight, tracking-wide, etc.) */
|
|
93
|
+
--tracking-ds-tighter: -0.05em;
|
|
94
|
+
--tracking-ds-tight: -0.025em;
|
|
95
|
+
--tracking-ds-normal: 0;
|
|
96
|
+
--tracking-ds-wide: 0.025em;
|
|
97
|
+
--tracking-ds-wider: 0.05em;
|
|
98
|
+
--tracking-ds-widest: 0.1em;
|
|
99
|
+
|
|
100
|
+
/* ───────────────────────────────────────────────────────────
|
|
64
101
|
ACCENT (swappable — consumers override these to rebrand)
|
|
65
|
-
|
|
66
|
-
--color-accent-1:
|
|
67
|
-
--color-accent-2:
|
|
68
|
-
--color-accent-3:
|
|
69
|
-
--color-accent-4:
|
|
70
|
-
--color-accent-5:
|
|
71
|
-
--color-accent-6:
|
|
72
|
-
--color-accent-7:
|
|
73
|
-
--color-accent-8:
|
|
74
|
-
--color-accent-9:
|
|
102
|
+
─────────────────────────────────────────────────────────── */
|
|
103
|
+
--color-accent-1: var(--pink-1);
|
|
104
|
+
--color-accent-2: var(--pink-2);
|
|
105
|
+
--color-accent-3: var(--pink-3);
|
|
106
|
+
--color-accent-4: var(--pink-4);
|
|
107
|
+
--color-accent-5: var(--pink-5);
|
|
108
|
+
--color-accent-6: var(--pink-6);
|
|
109
|
+
--color-accent-7: var(--pink-7);
|
|
110
|
+
--color-accent-8: var(--pink-8);
|
|
111
|
+
--color-accent-9: var(--pink-9);
|
|
75
112
|
--color-accent-10: var(--pink-10);
|
|
76
113
|
--color-accent-11: var(--pink-11);
|
|
77
114
|
--color-accent-12: var(--pink-12);
|
|
78
115
|
--color-accent-fg: var(--neutral-1);
|
|
79
116
|
|
|
80
|
-
/*
|
|
117
|
+
/* ───────────────────────────────────────────────────────────
|
|
81
118
|
SECONDARY ACCENT
|
|
82
|
-
|
|
83
|
-
--color-secondary-1:
|
|
84
|
-
--color-secondary-2:
|
|
85
|
-
--color-secondary-3:
|
|
86
|
-
--color-secondary-4:
|
|
87
|
-
--color-secondary-5:
|
|
88
|
-
--color-secondary-6:
|
|
89
|
-
--color-secondary-7:
|
|
90
|
-
--color-secondary-8:
|
|
91
|
-
--color-secondary-9:
|
|
119
|
+
─────────────────────────────────────────────────────────── */
|
|
120
|
+
--color-secondary-1: var(--purple-1);
|
|
121
|
+
--color-secondary-2: var(--purple-2);
|
|
122
|
+
--color-secondary-3: var(--purple-3);
|
|
123
|
+
--color-secondary-4: var(--purple-4);
|
|
124
|
+
--color-secondary-5: var(--purple-5);
|
|
125
|
+
--color-secondary-6: var(--purple-6);
|
|
126
|
+
--color-secondary-7: var(--purple-7);
|
|
127
|
+
--color-secondary-8: var(--purple-8);
|
|
128
|
+
--color-secondary-9: var(--purple-9);
|
|
92
129
|
--color-secondary-10: var(--purple-10);
|
|
93
130
|
--color-secondary-11: var(--purple-11);
|
|
94
131
|
--color-secondary-12: var(--purple-12);
|
|
95
132
|
--color-secondary-fg: var(--neutral-1);
|
|
96
133
|
|
|
97
|
-
/*
|
|
134
|
+
/* ───────────────────────────────────────────────────────────
|
|
135
|
+
NEUTRAL (primitive → @theme alias)
|
|
136
|
+
Bridges `:root`-declared `--neutral-*` primitives into the
|
|
137
|
+
TW4 `--color-*` namespace so `bg-neutral-5`, `border-neutral-7`,
|
|
138
|
+
`text-neutral-11`, etc. actually emit utilities. Without this,
|
|
139
|
+
every CVA referencing bg-neutral-* silently renders unstyled.
|
|
140
|
+
─────────────────────────────────────────────────────────── */
|
|
141
|
+
--color-neutral-1: var(--neutral-1);
|
|
142
|
+
--color-neutral-2: var(--neutral-2);
|
|
143
|
+
--color-neutral-3: var(--neutral-3);
|
|
144
|
+
--color-neutral-4: var(--neutral-4);
|
|
145
|
+
--color-neutral-5: var(--neutral-5);
|
|
146
|
+
--color-neutral-6: var(--neutral-6);
|
|
147
|
+
--color-neutral-7: var(--neutral-7);
|
|
148
|
+
--color-neutral-8: var(--neutral-8);
|
|
149
|
+
--color-neutral-9: var(--neutral-9);
|
|
150
|
+
--color-neutral-10: var(--neutral-10);
|
|
151
|
+
--color-neutral-11: var(--neutral-11);
|
|
152
|
+
--color-neutral-12: var(--neutral-12);
|
|
153
|
+
|
|
154
|
+
/* ───────────────────────────────────────────────────────────
|
|
98
155
|
SURFACE
|
|
99
|
-
|
|
100
|
-
/*
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
--color-surface-
|
|
104
|
-
--color-surface-
|
|
105
|
-
--color-surface-
|
|
156
|
+
─────────────────────────────────────────────────────────── */
|
|
157
|
+
/* Numeric layering aliases — canonical per CLAUDE.md surface rule.
|
|
158
|
+
Consumers and stories use bg-surface-1..4; without these @theme
|
|
159
|
+
entries TW4 emits zero rules for them. */
|
|
160
|
+
--color-surface-1: var(--neutral-1);
|
|
161
|
+
--color-surface-2: var(--neutral-2);
|
|
162
|
+
--color-surface-3: var(--neutral-3);
|
|
163
|
+
--color-surface-4: var(--neutral-4);
|
|
164
|
+
|
|
165
|
+
--color-surface-base: var(--neutral-2);
|
|
166
|
+
--color-surface-sunken: var(--color-surface-0);
|
|
167
|
+
--color-surface-raised: var(--neutral-1);
|
|
168
|
+
--color-surface-overlay: var(--neutral-1);
|
|
169
|
+
--color-surface-raised-hover: var(--neutral-3);
|
|
106
170
|
--color-surface-raised-active: var(--neutral-4);
|
|
107
|
-
--color-surface-inverted:
|
|
108
|
-
--color-surface-inverted-fg:
|
|
109
|
-
--color-surface-disabled:
|
|
110
|
-
--color-surface-fg-disabled:
|
|
111
|
-
|
|
112
|
-
--color-surface-fg:
|
|
113
|
-
--color-surface-fg-
|
|
114
|
-
--color-surface-
|
|
115
|
-
--color-surface-border: var(--neutral-
|
|
116
|
-
--color-surface-border-
|
|
117
|
-
--color-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
171
|
+
--color-surface-inverted: var(--neutral-12);
|
|
172
|
+
--color-surface-inverted-fg: var(--neutral-1);
|
|
173
|
+
--color-surface-disabled: var(--neutral-2);
|
|
174
|
+
--color-surface-fg-disabled: var(--neutral-8);
|
|
175
|
+
--color-surface-fg: var(--neutral-12);
|
|
176
|
+
--color-surface-fg-muted: var(--neutral-11);
|
|
177
|
+
--color-surface-fg-subtle: var(--neutral-9); /* darkened for WCAG AA 4.5:1 */
|
|
178
|
+
--color-surface-border: var(--neutral-6); /* bumped for WCAG 1.4.11 */
|
|
179
|
+
--color-surface-border-strong: var(--neutral-7);
|
|
180
|
+
--color-surface-border-subtle: var(--neutral-5);
|
|
181
|
+
--color-backdrop: oklch(0 0 0 / 0.4);
|
|
182
|
+
|
|
183
|
+
/* Overlay + disabled — promoted from internal :root into @theme so
|
|
184
|
+
`bg-overlay`, `text-overlay`, `bg-disabled`, `text-disabled` emit. */
|
|
185
|
+
--color-overlay: oklch(0 0 0 / 0.50);
|
|
186
|
+
--color-disabled: var(--neutral-5);
|
|
187
|
+
|
|
188
|
+
/* ───────────────────────────────────────────────────────────
|
|
121
189
|
STATUS — Error
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
--color-error-
|
|
127
|
-
--color-error-
|
|
128
|
-
--color-error-
|
|
190
|
+
Full step subset: 2, 3, 4, 5, 6, 7, 9, 10, 11.
|
|
191
|
+
Step 6 added in 0.37.0-next.1 (missed in original migration)
|
|
192
|
+
— SplitButton soft variants and status-dot muted tones use it.
|
|
193
|
+
─────────────────────────────────────────────────────────── */
|
|
194
|
+
--color-error-2: var(--red-2);
|
|
195
|
+
--color-error-3: var(--red-3);
|
|
196
|
+
--color-error-4: var(--red-4);
|
|
197
|
+
--color-error-5: var(--red-5);
|
|
198
|
+
--color-error-6: var(--red-6);
|
|
199
|
+
--color-error-7: var(--red-7);
|
|
200
|
+
--color-error-9: var(--red-9);
|
|
129
201
|
--color-error-10: var(--red-10);
|
|
130
202
|
--color-error-11: var(--red-11);
|
|
131
203
|
--color-error-fg: var(--neutral-1);
|
|
132
204
|
|
|
133
|
-
/*
|
|
134
|
-
--color-success-2:
|
|
135
|
-
--color-success-3:
|
|
136
|
-
--color-success-4:
|
|
137
|
-
--color-success-5:
|
|
138
|
-
--color-success-
|
|
139
|
-
--color-success-
|
|
205
|
+
/* ─── Status — Success ─── */
|
|
206
|
+
--color-success-2: var(--green-2);
|
|
207
|
+
--color-success-3: var(--green-3);
|
|
208
|
+
--color-success-4: var(--green-4);
|
|
209
|
+
--color-success-5: var(--green-5);
|
|
210
|
+
--color-success-6: var(--green-6);
|
|
211
|
+
--color-success-7: var(--green-7);
|
|
212
|
+
--color-success-9: var(--green-9);
|
|
140
213
|
--color-success-10: var(--green-10);
|
|
141
214
|
--color-success-11: var(--green-11);
|
|
142
215
|
--color-success-fg: var(--neutral-1);
|
|
143
216
|
|
|
144
|
-
/*
|
|
217
|
+
/* ─── Status — Warning (amber-bright, lightness-corrected) ─── */
|
|
145
218
|
--color-warning-2: var(--amber-bright-2);
|
|
146
219
|
--color-warning-3: var(--amber-bright-3);
|
|
147
220
|
--color-warning-4: var(--amber-bright-4);
|
|
148
221
|
--color-warning-5: var(--amber-bright-5);
|
|
222
|
+
--color-warning-6: var(--amber-bright-6);
|
|
149
223
|
--color-warning-7: var(--amber-bright-7);
|
|
150
224
|
--color-warning-9: var(--amber-bright-9);
|
|
151
225
|
--color-warning-10: var(--amber-bright-10);
|
|
152
226
|
--color-warning-11: var(--amber-bright-11);
|
|
153
227
|
--color-warning-fg: oklch(0.25 0.01 55);
|
|
154
228
|
|
|
155
|
-
/*
|
|
156
|
-
--color-info-2:
|
|
157
|
-
--color-info-3:
|
|
158
|
-
--color-info-4:
|
|
159
|
-
--color-info-5:
|
|
160
|
-
--color-info-
|
|
161
|
-
--color-info-
|
|
229
|
+
/* ─── Status — Info ─── */
|
|
230
|
+
--color-info-2: var(--blue-2);
|
|
231
|
+
--color-info-3: var(--blue-3);
|
|
232
|
+
--color-info-4: var(--blue-4);
|
|
233
|
+
--color-info-5: var(--blue-5);
|
|
234
|
+
--color-info-6: var(--blue-6);
|
|
235
|
+
--color-info-7: var(--blue-7);
|
|
236
|
+
--color-info-9: var(--blue-9);
|
|
162
237
|
--color-info-10: var(--blue-10);
|
|
163
238
|
--color-info-11: var(--blue-11);
|
|
164
239
|
--color-info-fg: var(--neutral-1);
|
|
165
240
|
|
|
166
|
-
/*
|
|
241
|
+
/* ───────────────────────────────────────────────────────────
|
|
167
242
|
LINK COLORS
|
|
168
|
-
|
|
169
|
-
--color-link:
|
|
170
|
-
--color-link-hover:
|
|
171
|
-
--color-link-visited: var(--purple-11);
|
|
243
|
+
─────────────────────────────────────────────────────────── */
|
|
244
|
+
--color-link: var(--color-accent-11);
|
|
245
|
+
--color-link-hover: var(--color-accent-12);
|
|
246
|
+
--color-link-visited: var(--purple-11);
|
|
172
247
|
|
|
173
|
-
/*
|
|
248
|
+
/* ───────────────────────────────────────────────────────────
|
|
174
249
|
CATEGORY COLORS (Sapta Varna — step subsets)
|
|
175
|
-
|
|
176
|
-
--color-category-teal-3:
|
|
177
|
-
--color-category-teal-7:
|
|
178
|
-
--color-category-teal-9:
|
|
179
|
-
--color-category-teal-11:
|
|
180
|
-
|
|
181
|
-
--color-category-amber-3:
|
|
182
|
-
--color-category-amber-7:
|
|
183
|
-
--color-category-amber-9:
|
|
184
|
-
--color-category-amber-11:
|
|
185
|
-
|
|
186
|
-
--color-category-slate-3:
|
|
187
|
-
--color-category-slate-7:
|
|
188
|
-
--color-category-slate-9:
|
|
189
|
-
--color-category-slate-11:
|
|
190
|
-
|
|
191
|
-
--color-category-indigo-3:
|
|
192
|
-
--color-category-indigo-7:
|
|
193
|
-
--color-category-indigo-9:
|
|
194
|
-
--color-category-indigo-11:
|
|
195
|
-
|
|
196
|
-
--color-category-cyan-3:
|
|
197
|
-
--color-category-cyan-7:
|
|
198
|
-
--color-category-cyan-9:
|
|
199
|
-
--color-category-cyan-11:
|
|
200
|
-
|
|
201
|
-
--color-category-orange-3:
|
|
202
|
-
--color-category-orange-7:
|
|
203
|
-
--color-category-orange-9:
|
|
204
|
-
--color-category-orange-11:
|
|
205
|
-
|
|
206
|
-
--color-category-emerald-3:
|
|
207
|
-
--color-category-emerald-7:
|
|
208
|
-
--color-category-emerald-9:
|
|
250
|
+
─────────────────────────────────────────────────────────── */
|
|
251
|
+
--color-category-teal-3: var(--teal-3);
|
|
252
|
+
--color-category-teal-7: var(--teal-7);
|
|
253
|
+
--color-category-teal-9: var(--teal-9);
|
|
254
|
+
--color-category-teal-11: var(--teal-11);
|
|
255
|
+
|
|
256
|
+
--color-category-amber-3: var(--amber-3);
|
|
257
|
+
--color-category-amber-7: var(--amber-7);
|
|
258
|
+
--color-category-amber-9: var(--amber-9);
|
|
259
|
+
--color-category-amber-11: var(--amber-11);
|
|
260
|
+
|
|
261
|
+
--color-category-slate-3: var(--slate-3);
|
|
262
|
+
--color-category-slate-7: var(--slate-7);
|
|
263
|
+
--color-category-slate-9: var(--slate-9);
|
|
264
|
+
--color-category-slate-11: var(--slate-11);
|
|
265
|
+
|
|
266
|
+
--color-category-indigo-3: var(--indigo-3);
|
|
267
|
+
--color-category-indigo-7: var(--indigo-7);
|
|
268
|
+
--color-category-indigo-9: var(--indigo-9);
|
|
269
|
+
--color-category-indigo-11: var(--indigo-11);
|
|
270
|
+
|
|
271
|
+
--color-category-cyan-3: var(--cyan-3);
|
|
272
|
+
--color-category-cyan-7: var(--cyan-7);
|
|
273
|
+
--color-category-cyan-9: var(--cyan-9);
|
|
274
|
+
--color-category-cyan-11: var(--cyan-11);
|
|
275
|
+
|
|
276
|
+
--color-category-orange-3: var(--orange-3);
|
|
277
|
+
--color-category-orange-7: var(--orange-7);
|
|
278
|
+
--color-category-orange-9: var(--orange-9);
|
|
279
|
+
--color-category-orange-11: var(--orange-11);
|
|
280
|
+
|
|
281
|
+
--color-category-emerald-3: var(--emerald-3);
|
|
282
|
+
--color-category-emerald-7: var(--emerald-7);
|
|
283
|
+
--color-category-emerald-9: var(--emerald-9);
|
|
209
284
|
--color-category-emerald-11: var(--emerald-11);
|
|
210
285
|
|
|
211
|
-
/*
|
|
286
|
+
/* ───────────────────────────────────────────────────────────
|
|
212
287
|
SKELETON
|
|
213
|
-
|
|
214
|
-
--color-skeleton-base:
|
|
288
|
+
─────────────────────────────────────────────────────────── */
|
|
289
|
+
--color-skeleton-base: var(--neutral-3);
|
|
215
290
|
--color-skeleton-shimmer: var(--neutral-2);
|
|
216
291
|
|
|
217
|
-
/*
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
--
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
--
|
|
227
|
-
--
|
|
228
|
-
--
|
|
229
|
-
--
|
|
230
|
-
--
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
--spacing-
|
|
236
|
-
--spacing-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
--spacing-
|
|
243
|
-
--spacing-
|
|
244
|
-
--spacing-
|
|
245
|
-
--spacing-
|
|
246
|
-
--spacing-
|
|
247
|
-
--spacing-
|
|
248
|
-
--spacing-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
--spacing-
|
|
260
|
-
--spacing-
|
|
261
|
-
|
|
262
|
-
|
|
292
|
+
/* ───────────────────────────────────────────────────────────
|
|
293
|
+
SPACING — numeric scale
|
|
294
|
+
Generates p-ds-* / m-ds-* / gap-ds-* / w-ds-* / h-ds-* / etc.
|
|
295
|
+
─────────────────────────────────────────────────────────── */
|
|
296
|
+
--spacing-ds-01: 2px;
|
|
297
|
+
--spacing-ds-02: 4px;
|
|
298
|
+
--spacing-ds-02b: 6px;
|
|
299
|
+
--spacing-ds-03: 8px;
|
|
300
|
+
--spacing-ds-04: 12px;
|
|
301
|
+
--spacing-ds-05: 16px;
|
|
302
|
+
--spacing-ds-05b: 20px;
|
|
303
|
+
--spacing-ds-06: 24px;
|
|
304
|
+
--spacing-ds-06b: 28px;
|
|
305
|
+
--spacing-ds-07: 32px;
|
|
306
|
+
--spacing-ds-08: 40px;
|
|
307
|
+
--spacing-ds-09: 48px;
|
|
308
|
+
--spacing-ds-10: 64px;
|
|
309
|
+
--spacing-ds-11: 80px;
|
|
310
|
+
--spacing-ds-12: 96px;
|
|
311
|
+
--spacing-ds-13: 160px;
|
|
312
|
+
|
|
313
|
+
/* Named component sizes — drive w-ds-{xs|sm|md|lg|xl}, h-ds-*, min-w-ds-*, min-h-ds-*.
|
|
314
|
+
These are the heights of Avatar, Button, Input, IconButton, etc.
|
|
315
|
+
In TW4, spacing-namespaced tokens ALSO emit w-/h-/min-w/min-h/max-* utilities,
|
|
316
|
+
so one `--spacing-ds-<name>` entry covers all sizing utilities. */
|
|
317
|
+
--spacing-ds-xs: 24px;
|
|
318
|
+
--spacing-ds-xs-plus: 28px;
|
|
319
|
+
--spacing-ds-sm: 32px;
|
|
320
|
+
--spacing-ds-sm-plus: 36px;
|
|
321
|
+
--spacing-ds-md: 40px;
|
|
322
|
+
--spacing-ds-lg: 48px;
|
|
323
|
+
--spacing-ds-xl: 56px;
|
|
324
|
+
|
|
325
|
+
/* Icon sizes — drive w-ico-{sm|md|lg|xl}, h-ico-*. Same spacing-namespace
|
|
326
|
+
rule applies: one var emits both w- and h- utilities. */
|
|
327
|
+
--spacing-ico-sm: 16px;
|
|
328
|
+
--spacing-ico-md: 20px;
|
|
329
|
+
--spacing-ico-lg: 24px;
|
|
330
|
+
--spacing-ico-xl: 32px;
|
|
331
|
+
|
|
332
|
+
/* Layout spacing (responsive via @media in :root below).
|
|
333
|
+
Generates p-page-x, p-page-y, gap-section-gap, gap-card-gap, gap-stack-gap. */
|
|
334
|
+
--spacing-page-x: var(--spacing-ds-05);
|
|
335
|
+
--spacing-page-y: var(--spacing-ds-07);
|
|
336
|
+
--spacing-section-gap: var(--spacing-ds-08);
|
|
337
|
+
--spacing-card-gap: var(--spacing-ds-05);
|
|
338
|
+
--spacing-stack-gap: var(--spacing-ds-06);
|
|
339
|
+
|
|
340
|
+
/* ───────────────────────────────────────────────────────────
|
|
263
341
|
RADIUS
|
|
264
|
-
|
|
265
|
-
--radius
|
|
266
|
-
--radius-
|
|
267
|
-
--radius-
|
|
268
|
-
--radius-md:
|
|
269
|
-
--radius-lg:
|
|
270
|
-
--radius-xl:
|
|
271
|
-
--radius-2xl:
|
|
272
|
-
--radius-full: 9999px;
|
|
273
|
-
|
|
274
|
-
/*
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
--duration-
|
|
280
|
-
--duration-
|
|
281
|
-
--duration-
|
|
282
|
-
--duration-moderate-
|
|
283
|
-
--duration-
|
|
284
|
-
--duration-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
342
|
+
─────────────────────────────────────────────────────────── */
|
|
343
|
+
--radius: 4px; /* bare `rounded` class — TW4 default namespace */
|
|
344
|
+
--radius-ds-none: 0;
|
|
345
|
+
--radius-ds-sm: 2px;
|
|
346
|
+
--radius-ds-md: 6px;
|
|
347
|
+
--radius-ds-lg: 10px;
|
|
348
|
+
--radius-ds-xl: 16px;
|
|
349
|
+
--radius-ds-2xl: 24px;
|
|
350
|
+
--radius-ds-full: 9999px;
|
|
351
|
+
|
|
352
|
+
/* ───────────────────────────────────────────────────────────
|
|
353
|
+
DURATION (Carbon-inspired scale)
|
|
354
|
+
─────────────────────────────────────────────────────────── */
|
|
355
|
+
--duration-instant: 0ms;
|
|
356
|
+
--duration-fast-01: 70ms;
|
|
357
|
+
--duration-fast-02: 110ms;
|
|
358
|
+
--duration-moderate-01: 150ms;
|
|
359
|
+
--duration-moderate-01b: 200ms;
|
|
360
|
+
--duration-moderate-02: 240ms;
|
|
361
|
+
--duration-slow-01: 400ms;
|
|
362
|
+
--duration-slow-02: 700ms;
|
|
363
|
+
|
|
364
|
+
/* ───────────────────────────────────────────────────────────
|
|
365
|
+
EASING
|
|
366
|
+
─────────────────────────────────────────────────────────── */
|
|
367
|
+
/* Productive (task-focused, utilitarian) */
|
|
289
368
|
--ease-productive-standard: cubic-bezier(0.2, 0, 0.38, 0.9);
|
|
290
369
|
--ease-productive-entrance: cubic-bezier(0, 0, 0.38, 0.9);
|
|
291
|
-
--ease-productive-exit:
|
|
292
|
-
|
|
293
|
-
/* ── Motion: Easing — Expressive (attention-grabbing, dramatic) ── */
|
|
370
|
+
--ease-productive-exit: cubic-bezier(0.2, 0, 1, 0.9);
|
|
371
|
+
/* Expressive (attention-grabbing, dramatic) */
|
|
294
372
|
--ease-expressive-standard: cubic-bezier(0.4, 0.14, 0.3, 1);
|
|
295
373
|
--ease-expressive-entrance: cubic-bezier(0, 0, 0.3, 1);
|
|
296
|
-
--ease-expressive-exit:
|
|
297
|
-
|
|
298
|
-
/* ── Motion: Easing — Utility ── */
|
|
374
|
+
--ease-expressive-exit: cubic-bezier(0.4, 0.14, 1, 1);
|
|
375
|
+
/* Utility */
|
|
299
376
|
--ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
300
377
|
--ease-linear: linear;
|
|
301
378
|
|
|
302
|
-
/*
|
|
303
|
-
|
|
304
|
-
|
|
379
|
+
/* ───────────────────────────────────────────────────────────
|
|
380
|
+
SHADOW (semantic elevation — public API)
|
|
381
|
+
─────────────────────────────────────────────────────────── */
|
|
382
|
+
--shadow-raised: var(--shadow-xs-internal);
|
|
383
|
+
--shadow-raised-hover: var(--shadow-sm-internal);
|
|
384
|
+
--shadow-floating: var(--shadow-md-internal);
|
|
385
|
+
--shadow-overlay: var(--shadow-lg-internal);
|
|
305
386
|
|
|
306
|
-
/*
|
|
307
|
-
--shadow-
|
|
308
|
-
--shadow-
|
|
387
|
+
/* Effect shadows */
|
|
388
|
+
--shadow-brand: 0 2px 8px oklch(0.55 0.19 360 / 0.20), 0 6px 20px oklch(0.55 0.19 360 / 0.15);
|
|
389
|
+
--shadow-glow: 0 0 0 1.5px oklch(0.55 0.19 360 / 0.20), 0 0 7px oklch(0.55 0.19 360 / 0.12);
|
|
390
|
+
--shadow-inset: inset 0 1px 2px oklch(var(--shadow-color) / calc(0.08 * var(--shadow-strength))), inset 0 2px 5px oklch(var(--shadow-color) / calc(0.06 * var(--shadow-strength)));
|
|
391
|
+
--shadow-ring-sm: 0 0 0 1px var(--color-surface-border);
|
|
392
|
+
--shadow-ring: 0 0 0 2px oklch(0.55 0.19 360 / 0.30);
|
|
309
393
|
|
|
310
|
-
|
|
311
|
-
--shadow-
|
|
394
|
+
--shadow-raised-inner: inset 0 1px 0 oklch(1 0 0 / 0.10), inset 0 -1px 0 oklch(0 0 0 / 0.06);
|
|
395
|
+
--shadow-pressed: 0 0 0 1px oklch(var(--shadow-color) / calc(0.04 * var(--shadow-strength)));
|
|
396
|
+
--shadow-success: 0 2px 8px oklch(0.55 0.14 145 / 0.20), 0 6px 20px oklch(0.55 0.14 145 / 0.15);
|
|
397
|
+
--shadow-error: 0 2px 8px oklch(0.55 0.18 25 / 0.20), 0 6px 20px oklch(0.55 0.18 25 / 0.15);
|
|
398
|
+
--shadow-warning: 0 2px 8px oklch(0.78 0.16 65 / 0.22), 0 6px 20px oklch(0.78 0.16 65 / 0.15);
|
|
312
399
|
|
|
313
400
|
/* Keyboard shortcut badge shadow */
|
|
314
401
|
--shadow-kbd: inset 0 -1px 0 oklch(0 0 0 / 0.1);
|
|
315
402
|
|
|
316
|
-
/*
|
|
317
|
-
|
|
403
|
+
/* ───────────────────────────────────────────────────────────
|
|
404
|
+
Z-INDEX
|
|
405
|
+
TW4 does NOT auto-generate utilities from --z-*. These vars
|
|
406
|
+
exist as named CSS custom properties; the z-base/z-raised/etc.
|
|
407
|
+
utilities are declared explicitly in tokens/utilities.css via
|
|
408
|
+
@utility blocks that reference these names.
|
|
409
|
+
─────────────────────────────────────────────────────────── */
|
|
410
|
+
--z-base: 0;
|
|
411
|
+
--z-raised: 10;
|
|
412
|
+
--z-dropdown: 1000;
|
|
413
|
+
--z-sticky: 1100;
|
|
414
|
+
--z-overlay: 1200;
|
|
415
|
+
--z-modal: 1300;
|
|
416
|
+
--z-popover: 1400;
|
|
417
|
+
--z-toast: 1500;
|
|
418
|
+
--z-tooltip: 1600;
|
|
419
|
+
|
|
420
|
+
/* ───────────────────────────────────────────────────────────
|
|
421
|
+
BREAKPOINTS (TW4 namespace: --breakpoint-* → variant)
|
|
422
|
+
─────────────────────────────────────────────────────────── */
|
|
423
|
+
--breakpoint-sm: 640px;
|
|
424
|
+
--breakpoint-md: 768px;
|
|
425
|
+
--breakpoint-lg: 1024px;
|
|
426
|
+
--breakpoint-xl: 1280px;
|
|
427
|
+
--breakpoint-2xl: 1536px;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
/* ═══════════════════════════════════════════════════════════════════
|
|
431
|
+
INTERNAL / META TOKENS (not utility-generating, consumed via var())
|
|
432
|
+
═══════════════════════════════════════════════════════════════════ */
|
|
433
|
+
:root {
|
|
434
|
+
/* Action state opacities (reflected by preset `opacity-action-*` util) */
|
|
435
|
+
--action-hover-opacity: 0.04;
|
|
436
|
+
--action-selected-opacity: 0.08;
|
|
437
|
+
--action-disabled-opacity: 0.38;
|
|
438
|
+
--action-focus-opacity: 0.12;
|
|
439
|
+
--action-active-opacity: 0.12;
|
|
440
|
+
|
|
441
|
+
/* NOTE: --color-overlay and --color-disabled have been promoted to
|
|
442
|
+
@theme above (so TW4 emits `bg-overlay`, `text-disabled`, etc.).
|
|
443
|
+
The dark-mode override below and forced-colors override further
|
|
444
|
+
down still work because TW4 honors scoped redeclarations of
|
|
445
|
+
@theme vars. */
|
|
446
|
+
|
|
447
|
+
/* Shadow internals — the `--shadow-xs-internal` etc. are composed into
|
|
448
|
+
the public `--shadow-raised`/`--shadow-floating` @theme values above.
|
|
449
|
+
They depend on `--shadow-color` (a runtime var) so they cannot live
|
|
450
|
+
in @theme (TW4 may statically-inline theme values). */
|
|
451
|
+
--shadow-color: 0.15 0.015 260; /* cool blue tint */
|
|
452
|
+
--shadow-strength: 1;
|
|
453
|
+
--shadow-transition: box-shadow var(--duration-fast-02) var(--ease-productive-standard);
|
|
454
|
+
|
|
455
|
+
--shadow-xs-internal:
|
|
318
456
|
0 0 0 1px oklch(var(--shadow-color) / calc(0.035 * var(--shadow-strength))),
|
|
319
457
|
0 0.5px 1px -0.5px oklch(var(--shadow-color) / calc(0.045 * var(--shadow-strength))),
|
|
320
458
|
0 1.5px 3px -1px oklch(var(--shadow-color) / calc(0.04 * var(--shadow-strength))),
|
|
321
459
|
0 3px 7px -2px oklch(var(--shadow-color) / calc(0.03 * var(--shadow-strength)));
|
|
322
|
-
--shadow-sm:
|
|
460
|
+
--shadow-sm-internal:
|
|
323
461
|
0 0 0 1px oklch(var(--shadow-color) / calc(0.035 * var(--shadow-strength))),
|
|
324
462
|
0 0.5px 1px -0.5px oklch(var(--shadow-color) / calc(0.04 * var(--shadow-strength))),
|
|
325
463
|
0 2px 4px -1.5px oklch(var(--shadow-color) / calc(0.045 * var(--shadow-strength))),
|
|
326
464
|
0 6px 12px -3px oklch(var(--shadow-color) / calc(0.035 * var(--shadow-strength))),
|
|
327
465
|
0 14px 28px -8px oklch(var(--shadow-color) / calc(0.025 * var(--shadow-strength)));
|
|
328
|
-
--shadow-md:
|
|
466
|
+
--shadow-md-internal:
|
|
329
467
|
0 0 0 1px oklch(var(--shadow-color) / calc(0.04 * var(--shadow-strength))),
|
|
330
468
|
0 1px 2px -1px oklch(var(--shadow-color) / calc(0.05 * var(--shadow-strength))),
|
|
331
469
|
0 4px 8px -2px oklch(var(--shadow-color) / calc(0.04 * var(--shadow-strength))),
|
|
332
470
|
0 10px 20px -5px oklch(var(--shadow-color) / calc(0.035 * var(--shadow-strength))),
|
|
333
471
|
0 24px 44px -12px oklch(var(--shadow-color) / calc(0.025 * var(--shadow-strength)));
|
|
334
|
-
--shadow-lg:
|
|
472
|
+
--shadow-lg-internal:
|
|
335
473
|
0 0 0 1px oklch(var(--shadow-color) / calc(0.04 * var(--shadow-strength))),
|
|
336
474
|
0 1px 2px -1px oklch(var(--shadow-color) / calc(0.05 * var(--shadow-strength))),
|
|
337
475
|
0 3px 6px -2px oklch(var(--shadow-color) / calc(0.045 * var(--shadow-strength))),
|
|
@@ -339,36 +477,14 @@
|
|
|
339
477
|
0 18px 34px -8px oklch(var(--shadow-color) / calc(0.03 * var(--shadow-strength))),
|
|
340
478
|
0 40px 64px -16px oklch(var(--shadow-color) / calc(0.025 * var(--shadow-strength)));
|
|
341
479
|
|
|
342
|
-
/*
|
|
343
|
-
--
|
|
344
|
-
--shadow-raised-hover: var(--shadow-sm);
|
|
345
|
-
--shadow-floating: var(--shadow-md);
|
|
346
|
-
--shadow-overlay: var(--shadow-lg);
|
|
347
|
-
|
|
348
|
-
/* Effect shadows */
|
|
349
|
-
--shadow-brand: 0 2px 8px oklch(0.55 0.19 360 / 0.20), 0 6px 20px oklch(0.55 0.19 360 / 0.15);
|
|
350
|
-
--shadow-glow: 0 0 0 1.5px oklch(0.55 0.19 360 / 0.20), 0 0 7px oklch(0.55 0.19 360 / 0.12);
|
|
351
|
-
--shadow-inset: inset 0 1px 2px oklch(var(--shadow-color) / calc(0.08 * var(--shadow-strength))), inset 0 2px 5px oklch(var(--shadow-color) / calc(0.06 * var(--shadow-strength)));
|
|
352
|
-
--shadow-ring-sm: 0 0 0 1px var(--color-surface-border);
|
|
353
|
-
--shadow-ring: 0 0 0 2px oklch(0.55 0.19 360 / 0.30);
|
|
354
|
-
|
|
355
|
-
/* Status & state effect shadows */
|
|
356
|
-
--shadow-raised-inner: inset 0 1px 0 oklch(1 0 0 / 0.10), inset 0 -1px 0 oklch(0 0 0 / 0.06);
|
|
357
|
-
--shadow-pressed: 0 0 0 1px oklch(var(--shadow-color) / calc(0.04 * var(--shadow-strength)));
|
|
358
|
-
--shadow-success: 0 2px 8px oklch(0.55 0.14 145 / 0.20), 0 6px 20px oklch(0.55 0.14 145 / 0.15);
|
|
359
|
-
--shadow-error: 0 2px 8px oklch(0.55 0.18 25 / 0.20), 0 6px 20px oklch(0.55 0.18 25 / 0.15);
|
|
360
|
-
--shadow-warning: 0 2px 8px oklch(0.78 0.16 65 / 0.22), 0 6px 20px oklch(0.78 0.16 65 / 0.15);
|
|
361
|
-
|
|
362
|
-
/* ═══════════════════════════════════════════════════════════
|
|
363
|
-
SIZES
|
|
364
|
-
═══════════════════════════════════════════════════════════ */
|
|
365
|
-
--size-xs: 24px;
|
|
480
|
+
/* Component sizes (consumed via w-ds-/h-ds- manual preset mappings) */
|
|
481
|
+
--size-xs: 24px;
|
|
366
482
|
--size-xs-plus: 28px;
|
|
367
|
-
--size-sm:
|
|
483
|
+
--size-sm: 32px;
|
|
368
484
|
--size-sm-plus: 36px;
|
|
369
|
-
--size-md:
|
|
370
|
-
--size-lg:
|
|
371
|
-
--size-xl:
|
|
485
|
+
--size-md: 40px;
|
|
486
|
+
--size-lg: 48px;
|
|
487
|
+
--size-xl: 56px;
|
|
372
488
|
--icon-sm: 16px;
|
|
373
489
|
--icon-md: 20px;
|
|
374
490
|
--icon-lg: 24px;
|
|
@@ -376,42 +492,18 @@
|
|
|
376
492
|
--border-width-sm: 1px;
|
|
377
493
|
--border-width-md: 2px;
|
|
378
494
|
--border-width-lg: 3px;
|
|
379
|
-
--border-focus-width:
|
|
495
|
+
--border-focus-width: 2px;
|
|
380
496
|
--border-focus-offset: 2px;
|
|
381
497
|
|
|
382
|
-
/*
|
|
383
|
-
|
|
384
|
-
═══════════════════════════════════════════════════════════ */
|
|
385
|
-
--z-base: 0;
|
|
386
|
-
--z-raised: 10;
|
|
387
|
-
--z-dropdown: 1000;
|
|
388
|
-
--z-sticky: 1100;
|
|
389
|
-
--z-overlay: 1200;
|
|
390
|
-
--z-modal: 1300;
|
|
391
|
-
--z-popover: 1400;
|
|
392
|
-
--z-toast: 1500;
|
|
393
|
-
--z-tooltip: 1600;
|
|
394
|
-
|
|
395
|
-
/* ── Layout ─────────────────────────────────── */
|
|
396
|
-
--max-width: 1280px;
|
|
498
|
+
/* Layout */
|
|
499
|
+
--max-width: 1280px;
|
|
397
500
|
--max-width-body: 960px;
|
|
398
501
|
|
|
399
|
-
/*
|
|
400
|
-
--breakpoint-sm: 640px;
|
|
401
|
-
--breakpoint-md: 768px;
|
|
402
|
-
--breakpoint-lg: 1024px;
|
|
403
|
-
--breakpoint-xl: 1280px;
|
|
404
|
-
--breakpoint-2xl: 1536px;
|
|
405
|
-
|
|
406
|
-
/* ═══════════════════════════════════════════════════════════
|
|
407
|
-
GRADIENTS
|
|
408
|
-
═══════════════════════════════════════════════════════════ */
|
|
502
|
+
/* Gradients (consumed via var() in DevalokGrain, not as utilities) */
|
|
409
503
|
--gradient-brand-light: linear-gradient(135deg, var(--pink-7), var(--purple-9));
|
|
410
|
-
--gradient-brand-dark:
|
|
504
|
+
--gradient-brand-dark: linear-gradient(135deg, var(--pink-8), var(--purple-10));
|
|
411
505
|
|
|
412
|
-
/*
|
|
413
|
-
CHART PALETTE
|
|
414
|
-
═══════════════════════════════════════════════════════════ */
|
|
506
|
+
/* Chart palette (consumed via var() in chart components) */
|
|
415
507
|
--chart-1: var(--pink-9);
|
|
416
508
|
--chart-2: var(--purple-9);
|
|
417
509
|
--chart-3: var(--blue-9);
|
|
@@ -421,31 +513,30 @@
|
|
|
421
513
|
--chart-7: var(--cyan-9);
|
|
422
514
|
--chart-8: var(--orange-9);
|
|
423
515
|
|
|
424
|
-
/*
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
--color-inset-glow:
|
|
428
|
-
--color-inset-glow-strong: oklch(1 0 0 / 0.16);
|
|
429
|
-
--color-inset-glow-subtle: oklch(1 0 0 / 0.10);
|
|
516
|
+
/* Inset glow & overlay (internal effect layers) */
|
|
517
|
+
--color-inset-glow: oklch(1 0 0 / 0.25);
|
|
518
|
+
--color-inset-glow-strong: oklch(1 0 0 / 0.16);
|
|
519
|
+
--color-inset-glow-subtle: oklch(1 0 0 / 0.10);
|
|
430
520
|
--color-surface-overlay-light: oklch(1 0 0 / 0.20);
|
|
431
|
-
--color-surface-overlay-dark:
|
|
432
|
-
--color-text-shadow:
|
|
521
|
+
--color-surface-overlay-dark: oklch(0 0 0 / 0.12);
|
|
522
|
+
--color-text-shadow: oklch(0 0 0 / 0.15);
|
|
433
523
|
}
|
|
434
524
|
|
|
435
|
-
/*
|
|
525
|
+
/* ═══════════════════════════════════════════════════════════════════
|
|
436
526
|
DARK MODE
|
|
437
|
-
|
|
527
|
+
TW4 supports overriding @theme variables in scoped selectors.
|
|
528
|
+
═══════════════════════════════════════════════════════════════════ */
|
|
438
529
|
.dark {
|
|
439
530
|
color-scheme: dark;
|
|
440
531
|
|
|
441
|
-
/* Foreground on solid accent/status backgrounds — pure white
|
|
442
|
-
--color-accent-fg:
|
|
532
|
+
/* Foreground on solid accent/status backgrounds — pure white in dark mode */
|
|
533
|
+
--color-accent-fg: var(--neutral-0);
|
|
443
534
|
--color-secondary-fg: var(--neutral-0);
|
|
444
|
-
--color-error-fg:
|
|
445
|
-
--color-success-fg:
|
|
446
|
-
--color-info-fg:
|
|
535
|
+
--color-error-fg: var(--neutral-0);
|
|
536
|
+
--color-success-fg: var(--neutral-0);
|
|
537
|
+
--color-info-fg: var(--neutral-0);
|
|
447
538
|
|
|
448
|
-
/* Warning: amber-bright dark ramp
|
|
539
|
+
/* Warning: amber-bright dark ramp */
|
|
449
540
|
--color-warning-2: var(--amber-bright-2);
|
|
450
541
|
--color-warning-3: var(--amber-bright-3);
|
|
451
542
|
--color-warning-4: var(--amber-bright-4);
|
|
@@ -456,50 +547,44 @@
|
|
|
456
547
|
--color-warning-11: var(--amber-bright-11);
|
|
457
548
|
--color-warning-fg: var(--neutral-0);
|
|
458
549
|
|
|
459
|
-
/*
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
--color-surface-
|
|
466
|
-
--color-
|
|
467
|
-
|
|
468
|
-
--color-surface-border: var(--neutral-4); /* was neutral-3; bumped for contrast */
|
|
469
|
-
--color-surface-border-strong: var(--neutral-5); /* was neutral-4 */
|
|
470
|
-
--color-surface-overlay: oklch(0.13 0.0002 350);
|
|
471
|
-
--color-surface-border-subtle: var(--neutral-3); /* was neutral-2 = same as raised = invisible (1:1) */
|
|
472
|
-
--color-backdrop: oklch(0 0 0 / 0.6);
|
|
550
|
+
/* Surface — dark page, lighter cards */
|
|
551
|
+
--color-surface-base: var(--neutral-1); /* 0.11L */
|
|
552
|
+
--color-surface-raised: var(--neutral-2); /* 0.17L */
|
|
553
|
+
--color-surface-border: var(--neutral-4);
|
|
554
|
+
--color-surface-border-strong: var(--neutral-5);
|
|
555
|
+
--color-surface-overlay: oklch(0.13 0.0002 350);
|
|
556
|
+
--color-surface-border-subtle: var(--neutral-3);
|
|
557
|
+
--color-backdrop: oklch(0 0 0 / 0.6);
|
|
473
558
|
|
|
474
559
|
/* Overlay */
|
|
475
560
|
--color-overlay: oklch(0 0 0 / 0.70);
|
|
476
561
|
|
|
477
|
-
/* Action
|
|
478
|
-
--action-hover-opacity:
|
|
562
|
+
/* Action state opacities (higher in dark mode) */
|
|
563
|
+
--action-hover-opacity: 0.08;
|
|
479
564
|
--action-selected-opacity: 0.12;
|
|
480
565
|
--action-disabled-opacity: 0.38;
|
|
481
|
-
--action-focus-opacity:
|
|
482
|
-
--action-active-opacity:
|
|
566
|
+
--action-focus-opacity: 0.12;
|
|
567
|
+
--action-active-opacity: 0.16;
|
|
483
568
|
|
|
484
569
|
/* Skeleton */
|
|
485
|
-
--color-skeleton-base:
|
|
570
|
+
--color-skeleton-base: var(--neutral-4);
|
|
486
571
|
--color-skeleton-shimmer: var(--neutral-3);
|
|
487
572
|
|
|
488
573
|
/* Shadows (heavier in dark mode) */
|
|
489
574
|
--shadow-strength: 2.5;
|
|
490
|
-
--shadow-brand:
|
|
491
|
-
--shadow-glow:
|
|
492
|
-
--shadow-ring:
|
|
575
|
+
--shadow-brand: 0 2px 8px oklch(0.55 0.19 360 / 0.30), 0 6px 20px oklch(0.55 0.19 360 / 0.20);
|
|
576
|
+
--shadow-glow: 0 0 0 1.5px oklch(0.55 0.19 360 / 0.35), 0 0 10px oklch(0.55 0.19 360 / 0.20);
|
|
577
|
+
--shadow-ring: 0 0 0 2px oklch(0.55 0.19 360 / 0.45);
|
|
493
578
|
--shadow-raised-inner: inset 0 1px 0 oklch(1 0 0 / 0.06), inset 0 -1px 0 oklch(0 0 0 / 0.12);
|
|
494
|
-
--shadow-success:
|
|
495
|
-
--shadow-error:
|
|
496
|
-
--shadow-warning:
|
|
579
|
+
--shadow-success: 0 2px 8px oklch(0.6 0.14 145 / 0.30), 0 6px 20px oklch(0.6 0.14 145 / 0.20);
|
|
580
|
+
--shadow-error: 0 2px 8px oklch(0.6 0.18 25 / 0.30), 0 6px 20px oklch(0.6 0.18 25 / 0.20);
|
|
581
|
+
--shadow-warning: 0 2px 8px oklch(0.78 0.16 65 / 0.30), 0 6px 20px oklch(0.78 0.16 65 / 0.20);
|
|
497
582
|
|
|
498
583
|
/* Gradients */
|
|
499
584
|
--gradient-brand-light: linear-gradient(135deg, var(--pink-9), var(--purple-9));
|
|
500
|
-
--gradient-brand-dark:
|
|
585
|
+
--gradient-brand-dark: linear-gradient(135deg, var(--pink-10), var(--purple-10));
|
|
501
586
|
|
|
502
|
-
/* Chart
|
|
587
|
+
/* Chart palette (dark — step 9 brighter) */
|
|
503
588
|
--chart-1: var(--pink-9);
|
|
504
589
|
--chart-2: var(--purple-9);
|
|
505
590
|
--chart-3: var(--blue-9);
|
|
@@ -509,68 +594,47 @@
|
|
|
509
594
|
--chart-7: var(--cyan-9);
|
|
510
595
|
--chart-8: var(--orange-9);
|
|
511
596
|
|
|
512
|
-
/* Inset
|
|
513
|
-
--color-inset-glow:
|
|
514
|
-
--color-inset-glow-strong:
|
|
515
|
-
--color-inset-glow-subtle:
|
|
597
|
+
/* Inset glow & overlay */
|
|
598
|
+
--color-inset-glow: oklch(1 0 0 / 0.10);
|
|
599
|
+
--color-inset-glow-strong: oklch(1 0 0 / 0.08);
|
|
600
|
+
--color-inset-glow-subtle: oklch(1 0 0 / 0.05);
|
|
516
601
|
--color-surface-overlay-light: oklch(1 0 0 / 0.08);
|
|
517
|
-
--color-surface-overlay-dark:
|
|
518
|
-
--color-text-shadow:
|
|
602
|
+
--color-surface-overlay-dark: oklch(0 0 0 / 0.25);
|
|
603
|
+
--color-text-shadow: oklch(0 0 0 / 0.40);
|
|
519
604
|
}
|
|
520
605
|
|
|
521
|
-
/*
|
|
522
|
-
|
|
606
|
+
/* ═══════════════════════════════════════════════════════════════════
|
|
607
|
+
Ensure Radix popper content (Select, Combobox, Popover, etc.)
|
|
608
|
+
renders above Sheet/Dialog overlays.
|
|
609
|
+
═══════════════════════════════════════════════════════════════════ */
|
|
523
610
|
[data-radix-popper-content-wrapper] {
|
|
524
611
|
z-index: var(--z-popover) !important;
|
|
525
612
|
}
|
|
526
613
|
|
|
527
|
-
/*
|
|
614
|
+
/* ═══════════════════════════════════════════════════════════════════
|
|
615
|
+
Responsive layout spacing — overrides @theme values at breakpoints.
|
|
616
|
+
TW4 permits re-declaring @theme vars under @media scope.
|
|
617
|
+
═══════════════════════════════════════════════════════════════════ */
|
|
528
618
|
@media (min-width: 768px) {
|
|
529
619
|
:root {
|
|
530
|
-
--spacing-page-x:
|
|
531
|
-
--spacing-section-gap: var(--spacing-10);
|
|
620
|
+
--spacing-page-x: var(--spacing-ds-06);
|
|
621
|
+
--spacing-section-gap: var(--spacing-ds-10);
|
|
532
622
|
}
|
|
533
623
|
}
|
|
534
624
|
|
|
535
625
|
@media (min-width: 1280px) {
|
|
536
626
|
:root {
|
|
537
|
-
--spacing-page-x: var(--spacing-08);
|
|
627
|
+
--spacing-ds-page-x: var(--spacing-ds-08);
|
|
538
628
|
}
|
|
539
629
|
}
|
|
540
630
|
|
|
541
|
-
/*
|
|
542
|
-
|
|
543
|
-
PROCESSING ANIMATIONS
|
|
544
|
-
═══════════════════════════════════════════════════════════ */
|
|
545
|
-
|
|
546
|
-
@property --border-angle {
|
|
547
|
-
syntax: "<angle>";
|
|
548
|
-
initial-value: 0deg;
|
|
549
|
-
inherits: false;
|
|
550
|
-
}
|
|
551
|
-
|
|
552
|
-
@keyframes processing-ants-rotate {
|
|
553
|
-
to {
|
|
554
|
-
--border-angle: 360deg;
|
|
555
|
-
}
|
|
556
|
-
}
|
|
557
|
-
|
|
558
|
-
@keyframes processing-ants-march {
|
|
559
|
-
to {
|
|
560
|
-
background-position: 16px 0, 100% 16px, calc(100% - 16px) 100%, 0 calc(100% - 16px);
|
|
561
|
-
}
|
|
562
|
-
}
|
|
563
|
-
|
|
564
|
-
@keyframes processing-ants-svg {
|
|
565
|
-
to {
|
|
566
|
-
stroke-dashoffset: -10;
|
|
567
|
-
}
|
|
568
|
-
}
|
|
569
|
-
|
|
570
|
-
/* ═══════════════════════════════════════════════════════════ */
|
|
631
|
+
/* ═══════════════════════════════════════════════════════════════════
|
|
632
|
+
REDUCED MOTION
|
|
571
633
|
|
|
634
|
+
@property --border-angle and @keyframes definitions moved to
|
|
635
|
+
base.css and animations.css respectively (Phase 2 of 0.37 migration).
|
|
636
|
+
═══════════════════════════════════════════════════════════════════ */
|
|
572
637
|
@media (prefers-reduced-motion: reduce) {
|
|
573
|
-
|
|
574
638
|
*,
|
|
575
639
|
*::before,
|
|
576
640
|
*::after {
|
|
@@ -581,85 +645,68 @@
|
|
|
581
645
|
}
|
|
582
646
|
}
|
|
583
647
|
|
|
584
|
-
/*
|
|
648
|
+
/* ═══════════════════════════════════════════════════════════════════
|
|
585
649
|
FORCED COLORS (Windows High Contrast, etc.)
|
|
586
|
-
|
|
650
|
+
|
|
587
651
|
When the OS forces a color scheme, browsers strip our custom
|
|
588
|
-
palette and remap to a small set of system keywords.
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
Applies to BOTH light and dark themes — forced-colors is
|
|
595
|
-
orthogonal to theme. We override both :root and .dark.
|
|
596
|
-
|
|
597
|
-
Testing: Chrome DevTools → Rendering → "Emulate CSS media
|
|
598
|
-
feature forced-colors: active". Or Windows Settings → High
|
|
599
|
-
Contrast.
|
|
600
|
-
═══════════════════════════════════════════════════════════ */
|
|
652
|
+
palette and remap to a small set of system keywords. Opt in
|
|
653
|
+
explicitly so the DS degrades legibly.
|
|
654
|
+
Applies to BOTH light and dark themes.
|
|
655
|
+
Test: Chrome DevTools → Rendering → "Emulate CSS media feature
|
|
656
|
+
forced-colors: active".
|
|
657
|
+
═══════════════════════════════════════════════════════════════════ */
|
|
601
658
|
@media (forced-colors: active) {
|
|
602
659
|
:root,
|
|
603
660
|
.dark {
|
|
604
|
-
/*
|
|
605
|
-
--color-surface-fg:
|
|
606
|
-
--color-surface-fg-muted:
|
|
607
|
-
--color-surface-fg-subtle:
|
|
608
|
-
--color-surface-fg-disabled:
|
|
609
|
-
--color-surface-base:
|
|
610
|
-
--color-surface-sunken:
|
|
611
|
-
--color-surface-raised:
|
|
612
|
-
--color-surface-raised-hover: Canvas;
|
|
661
|
+
/* Surface */
|
|
662
|
+
--color-surface-fg: CanvasText;
|
|
663
|
+
--color-surface-fg-muted: CanvasText;
|
|
664
|
+
--color-surface-fg-subtle: GrayText;
|
|
665
|
+
--color-surface-fg-disabled: GrayText;
|
|
666
|
+
--color-surface-base: Canvas;
|
|
667
|
+
--color-surface-sunken: Canvas;
|
|
668
|
+
--color-surface-raised: Canvas;
|
|
669
|
+
--color-surface-raised-hover: Canvas;
|
|
613
670
|
--color-surface-raised-active: Canvas;
|
|
614
|
-
--color-surface-overlay:
|
|
615
|
-
--color-surface-disabled:
|
|
616
|
-
--color-surface-inverted:
|
|
617
|
-
--color-surface-inverted-fg:
|
|
618
|
-
--color-surface-border:
|
|
619
|
-
--color-surface-border-strong:
|
|
620
|
-
--color-surface-border-subtle:
|
|
671
|
+
--color-surface-overlay: Canvas;
|
|
672
|
+
--color-surface-disabled: Canvas;
|
|
673
|
+
--color-surface-inverted: CanvasText;
|
|
674
|
+
--color-surface-inverted-fg: Canvas;
|
|
675
|
+
--color-surface-border: CanvasText;
|
|
676
|
+
--color-surface-border-strong: CanvasText;
|
|
677
|
+
--color-surface-border-subtle: GrayText;
|
|
621
678
|
--color-backdrop: Canvas;
|
|
622
|
-
--color-overlay:
|
|
679
|
+
--color-overlay: Canvas;
|
|
623
680
|
--color-disabled: GrayText;
|
|
624
681
|
|
|
625
|
-
/*
|
|
626
|
-
Step 9/10 (solid backgrounds) → Highlight (system selected color).
|
|
627
|
-
Step 11 (text) → LinkText for emphasis / interactive text runs.
|
|
628
|
-
Step 3-5 (hover/subtle bg) collapse to Canvas — hover is expressed
|
|
629
|
-
by system Highlight on :hover automatically. */
|
|
682
|
+
/* Accent */
|
|
630
683
|
--color-accent-1: Canvas;
|
|
631
684
|
--color-accent-2: Canvas;
|
|
632
685
|
--color-accent-3: Canvas;
|
|
633
686
|
--color-accent-4: Canvas;
|
|
634
687
|
--color-accent-5: Canvas;
|
|
635
688
|
--color-accent-6: Canvas;
|
|
636
|
-
--color-accent-7:
|
|
637
|
-
--color-accent-8:
|
|
638
|
-
--color-accent-9:
|
|
689
|
+
--color-accent-7: Highlight;
|
|
690
|
+
--color-accent-8: Highlight;
|
|
691
|
+
--color-accent-9: Highlight;
|
|
639
692
|
--color-accent-10: Highlight;
|
|
640
693
|
--color-accent-11: LinkText;
|
|
641
694
|
--color-accent-12: LinkText;
|
|
642
695
|
--color-accent-fg: HighlightText;
|
|
643
696
|
|
|
644
|
-
/*
|
|
645
|
-
--color-secondary-9:
|
|
697
|
+
/* Secondary */
|
|
698
|
+
--color-secondary-9: Highlight;
|
|
646
699
|
--color-secondary-10: Highlight;
|
|
647
700
|
--color-secondary-11: LinkText;
|
|
648
701
|
--color-secondary-12: LinkText;
|
|
649
702
|
--color-secondary-fg: HighlightText;
|
|
650
703
|
|
|
651
|
-
/*
|
|
652
|
-
Forced-colors has no distinct error/success/warning/info slots.
|
|
653
|
-
Step-11 text → CanvasText (still readable). Step-9 solid → Mark
|
|
654
|
-
(often highlighted/annotated color in system themes) for error
|
|
655
|
-
since errors are the most distinguishable need; others use
|
|
656
|
-
Highlight to stay legible. Meaning MUST be carried by iconography
|
|
657
|
-
+ text, not color, under forced-colors. */
|
|
704
|
+
/* Status (meaning carried by iconography + text, not color) */
|
|
658
705
|
--color-error-3: Canvas;
|
|
659
706
|
--color-error-4: Canvas;
|
|
660
707
|
--color-error-5: Canvas;
|
|
661
708
|
--color-error-7: CanvasText;
|
|
662
|
-
--color-error-9:
|
|
709
|
+
--color-error-9: Mark;
|
|
663
710
|
--color-error-10: Mark;
|
|
664
711
|
--color-error-11: CanvasText;
|
|
665
712
|
--color-error-fg: CanvasText;
|
|
@@ -668,7 +715,7 @@
|
|
|
668
715
|
--color-success-4: Canvas;
|
|
669
716
|
--color-success-5: Canvas;
|
|
670
717
|
--color-success-7: CanvasText;
|
|
671
|
-
--color-success-9:
|
|
718
|
+
--color-success-9: Highlight;
|
|
672
719
|
--color-success-10: Highlight;
|
|
673
720
|
--color-success-11: CanvasText;
|
|
674
721
|
--color-success-fg: HighlightText;
|
|
@@ -677,7 +724,7 @@
|
|
|
677
724
|
--color-warning-4: Canvas;
|
|
678
725
|
--color-warning-5: Canvas;
|
|
679
726
|
--color-warning-7: CanvasText;
|
|
680
|
-
--color-warning-9:
|
|
727
|
+
--color-warning-9: Highlight;
|
|
681
728
|
--color-warning-10: Highlight;
|
|
682
729
|
--color-warning-11: CanvasText;
|
|
683
730
|
--color-warning-fg: HighlightText;
|
|
@@ -686,36 +733,28 @@
|
|
|
686
733
|
--color-info-4: Canvas;
|
|
687
734
|
--color-info-5: Canvas;
|
|
688
735
|
--color-info-7: CanvasText;
|
|
689
|
-
--color-info-9:
|
|
736
|
+
--color-info-9: Highlight;
|
|
690
737
|
--color-info-10: Highlight;
|
|
691
738
|
--color-info-11: CanvasText;
|
|
692
739
|
--color-info-fg: HighlightText;
|
|
693
740
|
|
|
694
|
-
/*
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
--color-link: LinkText;
|
|
698
|
-
--color-link-hover: LinkText;
|
|
741
|
+
/* Links */
|
|
742
|
+
--color-link: LinkText;
|
|
743
|
+
--color-link-hover: LinkText;
|
|
699
744
|
--color-link-visited: VisitedText;
|
|
700
745
|
|
|
701
|
-
/*
|
|
702
|
-
--color-skeleton-base:
|
|
746
|
+
/* Skeleton collapses */
|
|
747
|
+
--color-skeleton-base: GrayText;
|
|
703
748
|
--color-skeleton-shimmer: Canvas;
|
|
704
749
|
}
|
|
705
750
|
|
|
706
|
-
/* Focus ring —
|
|
707
|
-
CAN be stripped by some UAs under forced-colors. Belt-and-suspenders:
|
|
708
|
-
enforce an `outline` too so focus is *always* visible. */
|
|
751
|
+
/* Focus ring — enforce via outline so it's never stripped */
|
|
709
752
|
*:focus-visible {
|
|
710
753
|
outline: 2px solid Highlight !important;
|
|
711
754
|
outline-offset: 2px !important;
|
|
712
755
|
}
|
|
713
756
|
|
|
714
|
-
/* Interactive elements need a visible border even when
|
|
715
|
-
background is transparent (ghost/link buttons, bare inputs). Canvas +
|
|
716
|
-
no background = invisible interactive area. Use ButtonText for
|
|
717
|
-
buttons, CanvasText for inputs — the system keywords closest in
|
|
718
|
-
intent. */
|
|
757
|
+
/* Interactive elements need a visible border even when bg collapses */
|
|
719
758
|
button,
|
|
720
759
|
[role="button"],
|
|
721
760
|
[role="menuitem"],
|
|
@@ -730,13 +769,9 @@
|
|
|
730
769
|
border: 1px solid CanvasText;
|
|
731
770
|
}
|
|
732
771
|
|
|
733
|
-
/* Decorative
|
|
734
|
-
[data-grain] {
|
|
735
|
-
display: none;
|
|
736
|
-
}
|
|
772
|
+
/* Decorative grain is pure noise in high-contrast */
|
|
773
|
+
[data-grain] { display: none; }
|
|
737
774
|
|
|
738
|
-
/* Skeleton shimmer can feel alarming in
|
|
739
|
-
[data-skeleton] {
|
|
740
|
-
animation: none !important;
|
|
741
|
-
}
|
|
775
|
+
/* Skeleton shimmer can feel alarming in HC; keep static */
|
|
776
|
+
[data-skeleton] { animation: none !important; }
|
|
742
777
|
}
|