@ctrl-ui/react 0.8.1 → 0.8.4
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/README.md +32 -23
- package/dist/action-bar.d.ts +11 -12
- package/dist/activity.d.ts +24 -25
- package/dist/audio-recorder.d.ts +16 -16
- package/dist/audio-visualizer.d.ts +3 -4
- package/dist/blocks/chat.d.ts +3 -4
- package/dist/blocks/chat.js +6 -3
- package/dist/blocks/coding-agent.d.ts +11 -12
- package/dist/blocks/coding-agent.js +10 -9
- package/dist/blocks/file-explorer-data.d.ts +11 -12
- package/dist/blocks/file-explorer.d.ts +3 -3
- package/dist/blocks/settings-data.d.ts +8 -9
- package/dist/blocks/settings.d.ts +4 -4
- package/dist/blocks/theme-toggle.d.ts +11 -12
- package/dist/blocks/theme-toggle.js +14 -4
- package/dist/chat-composer-attachment.d.ts +20 -21
- package/dist/chat-composer-attachment.js +24 -20
- package/dist/chat-composer-editor/extensions/mention.d.ts +5 -6
- package/dist/chat-composer-editor/ghost.d.ts +3 -4
- package/dist/chat-composer-editor/schema.d.ts +2 -3
- package/dist/chat-composer-editor/serialize.d.ts +3 -4
- package/dist/chat-composer-editor/types.d.ts +5 -6
- package/dist/chat-composer-editor.d.ts +2 -3
- package/dist/chat-composer-editor.js +18 -4
- package/dist/chat-composer.d.ts +17 -18
- package/dist/chat-composer.js +14 -8
- package/dist/chat-layout.d.ts +12 -21
- package/dist/chat-layout.js +28 -83
- package/dist/chat-message.d.ts +14 -15
- package/dist/context-model.d.ts +7 -8
- package/dist/context.d.ts +21 -22
- package/dist/control-props.d.ts +10 -11
- package/dist/control-variants.d.ts +6 -7
- package/dist/dynamic-notification-glass.d.ts +3 -4
- package/dist/dynamic-notification-liquid.d.ts +3 -4
- package/dist/dynamic-notification-siri-wave.d.ts +2 -3
- package/dist/dynamic-notification.d.ts +28 -29
- package/dist/email/email.d.ts +6 -7
- package/dist/email/email.js +12 -3
- package/dist/email/length.d.ts +3 -0
- package/dist/email/length.js +34 -0
- package/dist/email/templates.d.ts +7 -8
- package/dist/email/templates.js +5 -5
- package/dist/email/theme.d.ts +16 -5
- package/dist/email/theme.js +21 -6
- package/dist/environment-variables.d.ts +35 -36
- package/dist/extensions/create-track-highlight.d.ts +3 -4
- package/dist/extensions/supports-anchor-transitions.d.ts +2 -3
- package/dist/extensions/track-highlight.d.ts +3 -4
- package/dist/hooks/use-audio-recorder.d.ts +14 -15
- package/dist/hooks/use-chat-composer.d.ts +5 -6
- package/dist/hooks/use-chat-message.d.ts +7 -8
- package/dist/hooks/use-color-area.d.ts +5 -6
- package/dist/hooks/use-copy-to-clipboard.d.ts +7 -8
- package/dist/hooks/use-dropzone.d.ts +11 -12
- package/dist/hooks/use-dynamic-notification.d.ts +6 -7
- package/dist/hooks/use-environment-variables.d.ts +9 -10
- package/dist/hooks/use-keyboard-navigation.d.ts +3 -0
- package/dist/hooks/use-keyboard-navigation.js +22 -0
- package/dist/hooks/use-mobile.d.ts +2 -3
- package/dist/hooks/use-textarea-trigger-menu.d.ts +2 -3
- package/dist/hooks/use-trigger-menu.d.ts +7 -8
- package/dist/hooks/use-user-ask.d.ts +6 -7
- package/dist/inline-attachment.d.ts +16 -17
- package/dist/inline-citation.d.ts +22 -23
- package/dist/knob-contracts/accordion-knobs.d.ts +3 -4
- package/dist/knob-contracts/accordion-knobs.js +1 -0
- package/dist/knob-contracts/action-bar-knobs.d.ts +3 -4
- package/dist/knob-contracts/activity-knobs.d.ts +3 -4
- package/dist/knob-contracts/alert-knobs.d.ts +3 -4
- package/dist/knob-contracts/alert-knobs.js +12 -1
- package/dist/knob-contracts/audio-recorder-knobs.d.ts +3 -4
- package/dist/knob-contracts/audio-visualizer-knobs.d.ts +3 -4
- package/dist/knob-contracts/avatar-knobs.d.ts +3 -4
- package/dist/knob-contracts/avatar-knobs.js +2 -1
- package/dist/knob-contracts/badge-knobs.d.ts +3 -4
- package/dist/knob-contracts/button-group-knobs.d.ts +3 -4
- package/dist/knob-contracts/button-knobs.d.ts +3 -4
- package/dist/knob-contracts/button-knobs.js +1 -0
- package/dist/knob-contracts/calendar-knobs.d.ts +3 -4
- package/dist/knob-contracts/card-knobs.d.ts +3 -4
- package/dist/knob-contracts/chat-composer-attachment-knobs.d.ts +3 -4
- package/dist/knob-contracts/chat-composer-attachment-knobs.js +3 -1
- package/dist/knob-contracts/chat-composer-knobs.d.ts +3 -4
- package/dist/knob-contracts/chat-composer-knobs.js +1 -0
- package/dist/knob-contracts/chat-layout-knobs.d.ts +3 -4
- package/dist/knob-contracts/chat-layout-knobs.js +2 -3
- package/dist/knob-contracts/chat-message-knobs.d.ts +3 -4
- package/dist/knob-contracts/choice-knobs.d.ts +3 -4
- package/dist/knob-contracts/choice-knobs.js +2 -1
- package/dist/knob-contracts/code-diff-knobs.d.ts +3 -4
- package/dist/knob-contracts/code-diff-knobs.js +1 -0
- package/dist/knob-contracts/code-knobs.d.ts +3 -4
- package/dist/knob-contracts/code-knobs.js +3 -1
- package/dist/knob-contracts/collapsible-knobs.d.ts +3 -4
- package/dist/knob-contracts/color-picker-knobs.d.ts +3 -4
- package/dist/knob-contracts/context-knobs.d.ts +3 -4
- package/dist/knob-contracts/dockable-panel-knobs.d.ts +3 -4
- package/dist/knob-contracts/dockable-panel-knobs.js +1 -0
- package/dist/knob-contracts/dropzone-knobs.d.ts +3 -4
- package/dist/knob-contracts/dropzone-knobs.js +1 -0
- package/dist/knob-contracts/dynamic-notification-knobs.d.ts +3 -4
- package/dist/knob-contracts/empty-knobs.d.ts +3 -4
- package/dist/knob-contracts/empty-knobs.js +14 -1
- package/dist/knob-contracts/environment-variables-knobs.d.ts +3 -4
- package/dist/knob-contracts/environment-variables-knobs.js +2 -1
- package/dist/knob-contracts/field-knobs.d.ts +3 -4
- package/dist/knob-contracts/gradient-editor-knobs.d.ts +3 -4
- package/dist/knob-contracts/gradient-editor-knobs.js +3 -1
- package/dist/knob-contracts/infinite-canvas-knobs.d.ts +3 -4
- package/dist/knob-contracts/inline-attachment-knobs.d.ts +3 -4
- package/dist/knob-contracts/inline-attachment-knobs.js +2 -1
- package/dist/knob-contracts/inline-citation-knobs.d.ts +3 -4
- package/dist/knob-contracts/inline-citation-knobs.js +1 -0
- package/dist/knob-contracts/item-knobs.d.ts +3 -4
- package/dist/knob-contracts/kbd-knobs.d.ts +3 -4
- package/dist/knob-contracts/markdown-block-knobs.d.ts +3 -4
- package/dist/knob-contracts/markdown-block-knobs.js +2 -0
- package/dist/knob-contracts/markdown-knobs.d.ts +3 -4
- package/dist/knob-contracts/markdown-knobs.js +1 -0
- package/dist/knob-contracts/morphing-panel-knobs.d.ts +3 -4
- package/dist/knob-contracts/pagination-knobs.d.ts +3 -4
- package/dist/knob-contracts/phone-input-knobs.d.ts +3 -4
- package/dist/knob-contracts/phone-input-knobs.js +1 -0
- package/dist/knob-contracts/popup-knobs.d.ts +3 -4
- package/dist/knob-contracts/progressive-blur-knobs.d.ts +3 -4
- package/dist/knob-contracts/progressive-blur-knobs.js +1 -0
- package/dist/knob-contracts/range-knobs.d.ts +3 -4
- package/dist/knob-contracts/resizable-knobs.d.ts +3 -4
- package/dist/knob-contracts/resizable-knobs.js +1 -0
- package/dist/knob-contracts/rich-tooltip-knobs.d.ts +3 -4
- package/dist/knob-contracts/scroll-area-knobs.d.ts +3 -4
- package/dist/knob-contracts/separator-knobs.d.ts +3 -4
- package/dist/knob-contracts/sidebar-knobs.d.ts +3 -4
- package/dist/knob-contracts/sidebar-knobs.js +1 -0
- package/dist/knob-contracts/skeleton-knobs.d.ts +3 -4
- package/dist/knob-contracts/skeleton-knobs.js +9 -1
- package/dist/knob-contracts/source-badge-knobs.d.ts +3 -4
- package/dist/knob-contracts/spinner-knobs.d.ts +3 -4
- package/dist/knob-contracts/stepper-knobs.d.ts +3 -4
- package/dist/knob-contracts/stepper-knobs.js +1 -0
- package/dist/knob-contracts/switch-knobs.d.ts +3 -4
- package/dist/knob-contracts/switch-knobs.js +7 -1
- package/dist/knob-contracts/table-knobs.d.ts +3 -4
- package/dist/knob-contracts/table-of-contents-knobs.d.ts +3 -4
- package/dist/knob-contracts/table-of-contents-knobs.js +25 -0
- package/dist/knob-contracts/tabs-knobs.d.ts +3 -4
- package/dist/knob-contracts/tabs-knobs.js +2 -1
- package/dist/knob-contracts/task-list-knobs.d.ts +3 -4
- package/dist/knob-contracts/task-list-knobs.js +1 -0
- package/dist/knob-contracts/thread-rail-knobs.d.ts +3 -4
- package/dist/knob-contracts/timeline-knobs.d.ts +3 -4
- package/dist/knob-contracts/toolbar-knobs.d.ts +3 -4
- package/dist/knob-contracts/toolbar-knobs.js +1 -0
- package/dist/knob-contracts/track-highlight-knobs.d.ts +3 -4
- package/dist/knob-contracts/transcript-divider-knobs.d.ts +3 -4
- package/dist/knob-contracts/tree-knobs.d.ts +3 -4
- package/dist/knob-contracts/user-ask-knobs.d.ts +3 -4
- package/dist/knob-contracts/user-ask-knobs.js +1 -0
- package/dist/lib/cn.d.ts +2 -3
- package/dist/lib/code-tokens.d.ts +12 -13
- package/dist/lib/color.d.ts +26 -27
- package/dist/lib/contrast.d.ts +12 -13
- package/dist/lib/diff.d.ts +14 -15
- package/dist/lib/dropzone-validation.d.ts +25 -26
- package/dist/lib/env-file.d.ts +12 -13
- package/dist/lib/format-audio-recorder-duration.d.ts +2 -3
- package/dist/lib/liquid-glass-optics.d.ts +2 -3
- package/dist/lib/phone-input-format.d.ts +3 -4
- package/dist/lib/phone-input-format.js +1 -1
- package/dist/lib/phone-number.d.ts +8 -9
- package/dist/lib/trigger-detect.d.ts +4 -5
- package/dist/markdown-block.d.ts +11 -12
- package/dist/scripts/contrast-eval.d.ts +16 -17
- package/dist/scripts/contrast-eval.js +13 -7
- package/dist/skin-provider.d.ts +14 -0
- package/dist/skin-provider.js +21 -0
- package/dist/skin.d.ts +14 -33
- package/dist/skin.js +3 -46
- package/dist/source-badge.d.ts +7 -8
- package/dist/styles/index.css +2 -4
- package/dist/styles/recipes/accordion.css +8 -2
- package/dist/styles/recipes/action-bar.css +5 -2
- package/dist/styles/recipes/alert.css +95 -16
- package/dist/styles/recipes/avatar.css +17 -1
- package/dist/styles/recipes/badge.css +0 -1
- package/dist/styles/recipes/button.css +34 -8
- package/dist/styles/recipes/calendar.css +0 -6
- package/dist/styles/recipes/chat-composer-attachment.css +51 -53
- package/dist/styles/recipes/chat-composer.css +26 -21
- package/dist/styles/recipes/chat-layout.css +21 -62
- package/dist/styles/recipes/chat-message.css +11 -5
- package/dist/styles/recipes/choice.css +9 -2
- package/dist/styles/recipes/code-diff.css +8 -1
- package/dist/styles/recipes/code.css +39 -17
- package/dist/styles/recipes/collapsible.css +0 -3
- package/dist/styles/recipes/color-picker-details.css +1 -2
- package/dist/styles/recipes/color-picker-values.css +0 -4
- package/dist/styles/recipes/dockable-panel.css +8 -1
- package/dist/styles/recipes/dropzone.css +9 -2
- package/dist/styles/recipes/empty.css +118 -17
- package/dist/styles/recipes/environment-variables.css +8 -1
- package/dist/styles/recipes/field-parts.css +1 -6
- package/dist/styles/recipes/field.css +9 -5
- package/dist/styles/recipes/gradient-editor.css +16 -5
- package/dist/styles/recipes/inline-attachment.css +13 -8
- package/dist/styles/recipes/inline-citation.css +8 -4
- package/dist/styles/recipes/item.css +1 -1
- package/dist/styles/recipes/kbd.css +8 -0
- package/dist/styles/recipes/markdown-block.css +16 -2
- package/dist/styles/recipes/markdown.css +12 -0
- package/dist/styles/recipes/morphing-panel.css +1 -1
- package/dist/styles/recipes/pagination.css +0 -4
- package/dist/styles/recipes/phone-input.css +8 -4
- package/dist/styles/recipes/popup-lists.css +11 -0
- package/dist/styles/recipes/popup-toast.css +1 -29
- package/dist/styles/recipes/popup.css +2 -2
- package/dist/styles/recipes/progressive-blur.css +28 -7
- package/dist/styles/recipes/range.css +50 -1
- package/dist/styles/recipes/resizable.css +8 -10
- package/dist/styles/recipes/rich-tooltip.css +0 -4
- package/dist/styles/recipes/scroll-area.css +8 -2
- package/dist/styles/recipes/sidebar-menu.css +150 -0
- package/dist/styles/recipes/sidebar.css +56 -110
- package/dist/styles/recipes/skeleton.css +85 -3
- package/dist/styles/recipes/source-badge.css +0 -3
- package/dist/styles/recipes/stepper.css +8 -1
- package/dist/styles/recipes/switch.css +89 -17
- package/dist/styles/recipes/table-of-contents.css +211 -45
- package/dist/styles/recipes/table.css +0 -1
- package/dist/styles/recipes/tabs.css +19 -2
- package/dist/styles/recipes/task-list.css +8 -2
- package/dist/styles/recipes/thread-rail.css +0 -4
- package/dist/styles/recipes/toolbar.css +18 -4
- package/dist/styles/recipes/track-highlight.css +63 -5
- package/dist/styles/recipes/tree.css +2 -0
- package/dist/styles/recipes/user-ask.css +8 -4
- package/dist/styles/theme.css +130 -138
- package/dist/surface-variants.d.ts +4 -5
- package/dist/task-list.d.ts +16 -17
- package/dist/thread-rail.d.ts +21 -22
- package/dist/transcript-divider.d.ts +6 -7
- package/dist/ui/accordion.d.ts +10 -11
- package/dist/ui/alert-dialog.d.ts +11 -12
- package/dist/ui/alert-dialog.js +8 -6
- package/dist/ui/alert.d.ts +9 -10
- package/dist/ui/alert.js +3 -3
- package/dist/ui/aspect-ratio.d.ts +3 -4
- package/dist/ui/autocomplete.d.ts +19 -20
- package/dist/ui/autocomplete.js +5 -3
- package/dist/ui/avatar.d.ts +9 -10
- package/dist/ui/badge.d.ts +9 -10
- package/dist/ui/button-group.d.ts +7 -8
- package/dist/ui/button-group.js +3 -2
- package/dist/ui/button.d.ts +17 -18
- package/dist/ui/button.js +20 -5
- package/dist/ui/calendar.d.ts +3 -4
- package/dist/ui/card.d.ts +16 -17
- package/dist/ui/checkbox-group.d.ts +4 -5
- package/dist/ui/checkbox-group.js +3 -2
- package/dist/ui/checkbox.d.ts +3 -4
- package/dist/ui/code-diff.d.ts +8 -9
- package/dist/ui/code.d.ts +32 -23
- package/dist/ui/code.js +41 -20
- package/dist/ui/collapsible.d.ts +7 -8
- package/dist/ui/color-picker.d.ts +40 -41
- package/dist/ui/color-picker.js +5 -3
- package/dist/ui/combobox-disabled-selection.d.ts +3 -4
- package/dist/ui/combobox.d.ts +21 -20
- package/dist/ui/combobox.js +5 -3
- package/dist/ui/command.d.ts +19 -18
- package/dist/ui/command.js +38 -12
- package/dist/ui/context-menu.d.ts +30 -31
- package/dist/ui/context-menu.js +8 -5
- package/dist/ui/dialog.d.ts +13 -13
- package/dist/ui/dialog.js +10 -8
- package/dist/ui/dockable-panel-geometry.d.ts +7 -8
- package/dist/ui/dockable-panel.d.ts +21 -22
- package/dist/ui/drawer.d.ts +17 -18
- package/dist/ui/drawer.js +7 -6
- package/dist/ui/dropdown-menu.d.ts +36 -29
- package/dist/ui/dropdown-menu.js +116 -9
- package/dist/ui/dropzone.d.ts +24 -24
- package/dist/ui/empty.d.ts +14 -14
- package/dist/ui/empty.js +3 -3
- package/dist/ui/field.d.ts +26 -27
- package/dist/ui/form.d.ts +4 -5
- package/dist/ui/gradient-editor.d.ts +16 -17
- package/dist/ui/hover-card.d.ts +6 -7
- package/dist/ui/hover-card.js +5 -3
- package/dist/ui/infinite-canvas.d.ts +11 -12
- package/dist/ui/input-group.d.ts +6 -7
- package/dist/ui/input-otp.d.ts +7 -8
- package/dist/ui/input.d.ts +3 -4
- package/dist/ui/item.d.ts +20 -21
- package/dist/ui/kbd.d.ts +7 -5
- package/dist/ui/kbd.js +4 -2
- package/dist/ui/markdown-elements.d.ts +20 -21
- package/dist/ui/markdown.d.ts +5 -6
- package/dist/ui/menubar.d.ts +25 -26
- package/dist/ui/menubar.js +8 -5
- package/dist/ui/meter.d.ts +11 -12
- package/dist/ui/morphing-panel.d.ts +8 -9
- package/dist/ui/native-select.d.ts +3 -4
- package/dist/ui/native-select.js +1 -1
- package/dist/ui/navigation-menu.d.ts +17 -18
- package/dist/ui/navigation-menu.js +5 -3
- package/dist/ui/number-field.d.ts +15 -16
- package/dist/ui/pagination.d.ts +10 -11
- package/dist/ui/phone-input.d.ts +5 -6
- package/dist/ui/phone-input.js +40 -37
- package/dist/ui/popover.d.ts +11 -12
- package/dist/ui/popover.js +5 -3
- package/dist/ui/progress.d.ts +11 -12
- package/dist/ui/progressive-blur.d.ts +4 -5
- package/dist/ui/radio-group.d.ts +5 -6
- package/dist/ui/resizable.d.ts +12 -13
- package/dist/ui/responsive-dialog.d.ts +11 -12
- package/dist/ui/rich-tooltip-tour.d.ts +5 -6
- package/dist/ui/rich-tooltip.d.ts +21 -23
- package/dist/ui/rich-tooltip.js +5 -5
- package/dist/ui/scroll-area.d.ts +7 -8
- package/dist/ui/scroll-area.js +9 -6
- package/dist/ui/select.d.ts +21 -14
- package/dist/ui/select.js +7 -4
- package/dist/ui/separator.d.ts +2 -3
- package/dist/ui/sheet.d.ts +8 -9
- package/dist/ui/sheet.js +7 -5
- package/dist/ui/sidebar-menu.d.ts +24 -15
- package/dist/ui/sidebar-menu.js +30 -4
- package/dist/ui/sidebar-provider.d.ts +32 -7
- package/dist/ui/sidebar-provider.js +82 -22
- package/dist/ui/sidebar-resize-rail.d.ts +8 -0
- package/dist/ui/sidebar-resize-rail.js +192 -0
- package/dist/ui/sidebar.d.ts +20 -14
- package/dist/ui/sidebar.js +122 -57
- package/dist/ui/skeleton.d.ts +7 -4
- package/dist/ui/skeleton.js +9 -2
- package/dist/ui/slider.d.ts +6 -5
- package/dist/ui/slider.js +16 -13
- package/dist/ui/spinner.d.ts +3 -4
- package/dist/ui/stepper.d.ts +22 -23
- package/dist/ui/switch.d.ts +3 -4
- package/dist/ui/switch.js +12 -1
- package/dist/ui/table-of-contents.d.ts +7 -8
- package/dist/ui/table-of-contents.js +4 -2
- package/dist/ui/table.d.ts +17 -18
- package/dist/ui/tabs.d.ts +14 -11
- package/dist/ui/textarea.d.ts +3 -4
- package/dist/ui/timeline.d.ts +18 -19
- package/dist/ui/toast.d.ts +9 -9
- package/dist/ui/toast.js +21 -14
- package/dist/ui/toggle.d.ts +5 -6
- package/dist/ui/toggle.js +3 -2
- package/dist/ui/toolbar.d.ts +15 -16
- package/dist/ui/toolbar.js +15 -4
- package/dist/ui/tooltip.d.ts +6 -13
- package/dist/ui/tooltip.js +7 -8
- package/dist/ui/tree.d.ts +18 -19
- package/dist/ui/tree.js +3 -2
- package/dist/ui/trigger-menu.d.ts +15 -16
- package/dist/ui/trigger-menu.js +5 -3
- package/dist/ui/use-switch-drag.d.ts +7 -0
- package/dist/ui/use-switch-drag.js +104 -0
- package/dist/user-ask.d.ts +24 -25
- package/package.json +15 -15
- package/dist/code-block-editor.d.ts +0 -59
- package/dist/code-block-editor.js +0 -250
- package/dist/knob-contracts/code-block-editor-knobs.d.ts +0 -5
- package/dist/knob-contracts/code-block-editor-knobs.js +0 -11
- package/dist/lib/code-block-shiki.d.ts +0 -9
- package/dist/lib/code-block-shiki.js +0 -6
- package/dist/skin.config.d.ts +0 -5
- package/dist/skin.config.js +0 -12
- package/dist/styles/recipes/code-block-editor.css +0 -136
- package/dist/styles/skin-theme.css +0 -137
- package/dist/styles/skin.css +0 -143
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
[data-skin="refined"][data-skin] {
|
|
2
|
-
/* Geist via next/font (--font-geist-sans); host without it falls to system stack. */
|
|
3
|
-
--font-sans: var(--font-geist-sans, "Geist"), ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
4
|
-
--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, "Liberation Mono", monospace;
|
|
5
|
-
|
|
6
|
-
--text-label: 0.75rem; /* 12px — form labels + small chrome (nav item, tooltip, shortcut) */
|
|
7
|
-
|
|
8
|
-
/* Headings run medium, not bold, and pull tight — Geist at -0.03em is the whole voice. */
|
|
9
|
-
--text-heading-4--font-weight: 500;
|
|
10
|
-
--text-heading-3--font-weight: 500;
|
|
11
|
-
--text-heading-2--font-weight: 500;
|
|
12
|
-
--text-heading-1--font-weight: 500;
|
|
13
|
-
--text-heading-1--letter-spacing: -0.03em;
|
|
14
|
-
--text-display--font-weight: 500;
|
|
15
|
-
--text-display--letter-spacing: -0.03em;
|
|
16
|
-
|
|
17
|
-
/* shadcn base names, full colors, authored in oklch (wider gamut, matches Tailwind/shadcn v4); any format still works.
|
|
18
|
-
Refined brand = four warm-paper neutrals (#FFF / #F5F4F3 / #F4F2F0 / #EEECEA) under a cool ink (#060612), so the
|
|
19
|
-
page reads as pressed paper and every edge comes from light, not from a line. */
|
|
20
|
-
--background: oklch(0.984 0.0018 68);
|
|
21
|
-
--foreground: oklch(0.1304 0.0277 282);
|
|
22
|
-
--card: oklch(1 0 0);
|
|
23
|
-
--card-foreground: oklch(0.1304 0.0277 282);
|
|
24
|
-
--popover: oklch(1 0 0);
|
|
25
|
-
--popover-foreground: oklch(0.1304 0.0277 282);
|
|
26
|
-
--primary: oklch(0.1304 0.0277 282);
|
|
27
|
-
--primary-foreground: oklch(1 0 0);
|
|
28
|
-
--muted: oklch(0.9441 0.0034 68);
|
|
29
|
-
--muted-foreground: oklch(0.5202 0.0094 294);
|
|
30
|
-
--secondary: oklch(0.9621 0.0034 68);
|
|
31
|
-
--secondary-foreground: oklch(0.1304 0.0277 282);
|
|
32
|
-
--accent: oklch(0.9441 0.0034 68);
|
|
33
|
-
--accent-foreground: oklch(0.1304 0.0277 282);
|
|
34
|
-
--destructive: oklch(0.568 0.1961 32);
|
|
35
|
-
--destructive-foreground: oklch(1 0 0);
|
|
36
|
-
--border: oklch(0.915 0.004 68 / var(--ring-opacity));
|
|
37
|
-
--input: oklch(0.915 0.004 68);
|
|
38
|
-
/* The brand orange only ever lands on the focus ring: white-on-#FF6321 is 2.98:1, so it can never be a fill
|
|
39
|
-
that carries text. --focus-ring darkens to their button rim (#CF4E17) to clear 3:1 against the paper. */
|
|
40
|
-
--ring: oklch(0.6931 0.2032 40);
|
|
41
|
-
--focus-ring: oklch(0.5911 0.1746 40);
|
|
42
|
-
--primary-text: oklch(0.48 0.16 40); /* links and primary-tone text: the orange darkened until it clears 4.5:1 on paper */
|
|
43
|
-
|
|
44
|
-
/* Page canvas, a level below --background/--card/--popover (all elevated surfaces); GitHub Primer calls this `canvas`.
|
|
45
|
-
Keep it clear of --muted (0.9441): when the two match, every muted surface dropped straight onto the page — a
|
|
46
|
-
standalone Code block, say — reads as nothing but its ring. Light ladder: muted < secondary < canvas < background < card. */
|
|
47
|
-
--canvas: oklch(0.9676 0.0017 68);
|
|
48
|
-
|
|
49
|
-
/* popover/dropdown/select/dialog all read bg-popover, so this pair frosts them together. 1 = solid; <1 + blur = glass. */
|
|
50
|
-
--popover-opacity: 1;
|
|
51
|
-
--backdrop-blur-popover: 0px;
|
|
52
|
-
|
|
53
|
-
/* modal overlay (dialog backdrop) — dim and blur are theme-driven; color derives from foreground/background. */
|
|
54
|
-
--overlay-opacity: 0.2;
|
|
55
|
-
--backdrop-blur-overlay: 1px;
|
|
56
|
-
|
|
57
|
-
/* Edge-fade depth shared by scroll-surface masks. 0 = hard edges. */
|
|
58
|
-
--scroll-fade-size: 2rem;
|
|
59
|
-
|
|
60
|
-
/* elevation controls */
|
|
61
|
-
--shadow-color: oklch(0.1304 0.0277 282); /* hue every shadow tints with — the ink itself, cool near-black */
|
|
62
|
-
/* Top-light stays at the alpha their raised chrome uses (white 0.08): invisible on a white card, a bare catch on ink.
|
|
63
|
-
Recipes scale it by opacity/size knobs too, so --shadow-size:0 extinguishes it with everything else. */
|
|
64
|
-
--shadow-highlight: oklch(1 0 0 / 0.08);
|
|
65
|
-
--shadow-size: 1; /* global geometry multiplier: 1 = default depth, 0 = flat */
|
|
66
|
-
--shadow-opacity: 1; /* global alpha multiplier: 1 = default density, 0 = invisible */
|
|
67
|
-
|
|
68
|
-
/* THE radius knob; @theme surface scale + --radius-control both derive from it — squares (0) or rounds whole UI. */
|
|
69
|
-
--radius: 0.5rem;
|
|
70
|
-
/* Controls sit at THE radius, not a multiple of it: an 8px corner on a 36px button is the rounded rect they use everywhere. */
|
|
71
|
-
--radius-control: var(--radius);
|
|
72
|
-
|
|
73
|
-
/* Progressive enhancement over border-radius; `round` = current look, squircle/superellipse(2)/scoop reshape Control UI surfaces. */
|
|
74
|
-
/* Squircle reads ~half as round as a circular arc at same radius; browsers w/o corner-shape support fall back to
|
|
75
|
-
plain round and look over-rounded. This ratio shrinks the fallback radius (squircle only, see @supports not
|
|
76
|
-
below) to keep cross-browser look close. 1 = no change, 0.5 = halve. */
|
|
77
|
-
|
|
78
|
-
/* Floating-list (select/dropdown) concentric corners: container radius = row radius + padding, so hovered row nests exactly. */
|
|
79
|
-
--popover-padding: 0.25rem; /* gap between container edge and rows (also = p-* on the popup) */
|
|
80
|
-
--radius-popup-item: calc(var(--radius-control) * 0.6); /* select/menu row corner */
|
|
81
|
-
/* Container corner = fitted row radius + padding - 1px: ring-clip nests concentric rows with slack,
|
|
82
|
-
1px tighter hugs snugly (~1.6px clearance); clamp collapses offset to 0 when --radius is 0. */
|
|
83
|
-
|
|
84
|
-
/* content density for the rounded surfaces (bubble / composer field) */
|
|
85
|
-
--padding-x: 1rem;
|
|
86
|
-
--padding-y: 0.625rem;
|
|
87
|
-
|
|
88
|
-
/* One base height; xs/sm/md/lg are computed (proportional ramp), shared by button/select/menu/input.
|
|
89
|
-
--padding-y stays for content-sized surfaces (bubble/composer). */
|
|
90
|
-
--control-h: 2.25rem; /* md — THE base height; ramp derives from it */
|
|
91
|
-
/* round() snaps to whole px: unrounded step ceils scrollHeight past clientHeight, Base UI reads as phantom 1px overflow. */
|
|
92
|
-
|
|
93
|
-
/* motion — curves are raw vars so they can be swapped live */
|
|
94
|
-
--ease-standard: cubic-bezier(0.2, 0, 0, 1);
|
|
95
|
-
--ease-emphasized: cubic-bezier(0.16, 1, 0.3, 1);
|
|
96
|
-
--duration-fast: 150ms;
|
|
97
|
-
--duration-base: 200ms;
|
|
98
|
-
--duration-slow: 300ms;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/* Semantic rungs re-declared on the skin root so portal-scoped radius changes resolve locally;
|
|
102
|
-
the sm–2xl scale is a derived-tier default in core theme.css. */
|
|
103
|
-
[data-skin="refined"][data-skin] {
|
|
104
|
-
--radius-field: var(--radius); /* user bubble, composer shell */
|
|
105
|
-
/* Kraftbase rounds every content surface the same 8px; only the scene-scale frames go bigger. */
|
|
106
|
-
--radius-panel: var(--radius);
|
|
107
|
-
--radius-scene: calc(var(--radius) * 2); /* scene frame, large media */
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
:where(.dark) [data-skin="refined"][data-skin],
|
|
111
|
-
.dark[data-skin="refined"][data-skin] {
|
|
112
|
-
--background: oklch(0.1852 0.0113 250);
|
|
113
|
-
--foreground: oklch(0.9645 0.0033 250);
|
|
114
|
-
--card: oklch(0.2153 0.0121 250);
|
|
115
|
-
--card-foreground: oklch(0.9645 0.0033 250);
|
|
116
|
-
--popover: oklch(0.2153 0.0121 250);
|
|
117
|
-
--popover-foreground: oklch(0.9645 0.0033 250);
|
|
118
|
-
--primary: oklch(0.9645 0.0033 250);
|
|
119
|
-
--primary-foreground: oklch(0.1852 0.0113 250);
|
|
120
|
-
--muted: oklch(0.2668 0.0128 250);
|
|
121
|
-
--muted-foreground: oklch(0.7405 0.0104 260);
|
|
122
|
-
--secondary: oklch(0.2412 0.0124 250);
|
|
123
|
-
--secondary-foreground: oklch(0.9645 0.0033 250);
|
|
124
|
-
--accent: oklch(0.2864 0.0132 250);
|
|
125
|
-
--accent-foreground: oklch(0.9645 0.0033 250);
|
|
126
|
-
--destructive: oklch(0.551 0.1799 32);
|
|
127
|
-
--destructive-foreground: oklch(0.9645 0.0033 250);
|
|
128
|
-
--border: oklch(0.3082 0.0139 250 / var(--ring-opacity));
|
|
129
|
-
--input: oklch(0.3082 0.0139 250);
|
|
130
|
-
--ring: oklch(0.6931 0.2032 40);
|
|
131
|
-
--focus-ring: oklch(0.72 0.19 42);
|
|
132
|
-
--primary-text: oklch(0.78 0.16 42);
|
|
133
|
-
--canvas: oklch(0.1322 0.0113 250);
|
|
134
|
-
--shadow-color: oklch(0 0 0);
|
|
135
|
-
/* In dark the inner top light is a faint edge catch, not a glow. */
|
|
136
|
-
--shadow-highlight: oklch(1 0 0 / 0.055);
|
|
137
|
-
}
|
package/dist/styles/skin.css
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
/* Only what Tailwind classes cannot say — everything else lives in skin.config or theme.css. */
|
|
2
|
-
|
|
3
|
-
/* Refined separates surfaces with light, never a line. Raised chrome catches a top gloss and drops a soft shadow;
|
|
4
|
-
recessed chrome sinks under an inner one. Recess comes in two depths because blur has to match the anatomy: a
|
|
5
|
-
diffuse well fills a 20px chip with haze instead of reading as depth, so small chrome gets a tight top lip.
|
|
6
|
-
All of it is pack vars, not contract tokens: --shadow-inset is one recess depth, and refined needs two. */
|
|
7
|
-
[data-skin="refined"] {
|
|
8
|
-
/* Every surface is rimmed: the rim draws the edge, the shadow gives it depth. A recessed edge catches the
|
|
9
|
-
light, so its rim is a step lighter than the surface it cuts into — which lands on white over paper and on
|
|
10
|
-
a faint lift in the dark. Raised chrome keeps the plain --border hairline; without both halves the well
|
|
11
|
-
reads as a smudge instead of an engraving. */
|
|
12
|
-
--refined-rim: oklch(from var(--secondary) calc(l + 0.04) c h);
|
|
13
|
-
|
|
14
|
-
--refined-gloss: inset 0 1.4px 1px 0 var(--shadow-highlight);
|
|
15
|
-
--refined-lift: 0 2px 4px 0 oklch(from var(--shadow-color) l c h / 0.05), 0 14px 20px 0 oklch(from var(--shadow-color) l c h / 0.05);
|
|
16
|
-
--refined-lift-sm: 0 2.5px 6px 0 oklch(from var(--shadow-color) l c h / 0.1);
|
|
17
|
-
|
|
18
|
-
/* Surfaces deep enough to hold content sink all round; anything shorter takes the lip instead. */
|
|
19
|
-
--refined-well: inset 0 0 6px 0 oklch(from var(--shadow-color) l c h / 0.18);
|
|
20
|
-
--refined-press:
|
|
21
|
-
inset 0 2px 4px -2px oklch(from var(--shadow-color) l c h / 0.18), inset 0 1px 1px 0 oklch(from var(--shadow-color) l c h / 0.18);
|
|
22
|
-
|
|
23
|
-
/* A solid button carries no drop shadow at all — it reads raised from a rim one step lighter than its own fill. */
|
|
24
|
-
--refined-solid-rim: 0 0 0 1.4px oklch(from var(--primary) calc(l + 0.28) c h);
|
|
25
|
-
|
|
26
|
-
/* A saturated fill swallows both: the rim has to go darker than the fill to survive, and the drop needs three
|
|
27
|
-
times the density to show under it. Ring, gloss and drop together are the only place all three stack. */
|
|
28
|
-
--refined-tint-emboss:
|
|
29
|
-
0 0 0 1px oklch(from var(--destructive) calc(l - 0.11) c h), inset 0 1.4px 1px 0 oklch(1 0 0 / 0.12),
|
|
30
|
-
0 1.4px 4px 0 oklch(from var(--shadow-color) l c h / 0.3);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/* Ink and paper swap, so the rim that was lighter than the fill has to go darker to stay a rim. */
|
|
34
|
-
:where(.dark) [data-skin="refined"],
|
|
35
|
-
.dark[data-skin="refined"] {
|
|
36
|
-
--refined-solid-rim: 0 0 0 1.4px oklch(from var(--primary) calc(l - 0.28) c h);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
@layer base {
|
|
40
|
-
/* Body-level, not a utility: type rendering is inherited, so portalled popups pick it up too. */
|
|
41
|
-
:root[data-skin="refined"] body {
|
|
42
|
-
-webkit-font-smoothing: antialiased;
|
|
43
|
-
-moz-osx-font-smoothing: grayscale;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
@layer components {
|
|
48
|
-
/* ── raised ─────────────────────────────────────────────────────────────── */
|
|
49
|
-
|
|
50
|
-
[data-skin="refined"] :where([data-control-family="card"][data-slot="root"]) {
|
|
51
|
-
--cui-card-shadow: var(--refined-lift);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
[data-skin="refined"]
|
|
55
|
-
:where(
|
|
56
|
-
[data-control-family="popup"][data-popup-part="surface"],
|
|
57
|
-
[data-control-family="popup"][data-popup-part="list-surface"],
|
|
58
|
-
[data-control-family="popup"][data-popup-part="bar"]
|
|
59
|
-
) {
|
|
60
|
-
--cui-popup-shadow: var(--refined-lift);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
[data-skin="refined"]
|
|
64
|
-
:where(
|
|
65
|
-
[data-control-ui="button"][data-slot="root"][data-variant="solid"][data-control-family="button"],
|
|
66
|
-
[data-control-ui="toggle"][data-slot="root"][data-variant="solid"][data-control-family="button"]
|
|
67
|
-
) {
|
|
68
|
-
--cui-button-shadow: var(--refined-gloss), var(--refined-solid-rim);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
[data-skin="refined"] :where([data-control-family="button"][data-tone="danger"][data-variant="solid"]) {
|
|
72
|
-
--cui-button-shadow: var(--refined-tint-emboss);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
[data-skin="refined"]
|
|
76
|
-
:where(
|
|
77
|
-
[data-control-ui="button"][data-slot="root"][data-variant="surface"][data-control-family="button"],
|
|
78
|
-
[data-control-ui="toggle"][data-slot="root"][data-variant="surface"][data-control-family="button"]
|
|
79
|
-
) {
|
|
80
|
-
--cui-button-background: var(--card);
|
|
81
|
-
--cui-button-shadow: inset 0 0 0 1px var(--border), var(--refined-lift-sm);
|
|
82
|
-
--cui-button-active-shadow: inset 0 0 0 1px oklch(from var(--primary) l c h / 0.6), var(--refined-lift-sm);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
[data-skin="refined"] :where([data-control-family="range"][data-slot="root"]) {
|
|
86
|
-
--cui-range-thumb-shadow: var(--refined-lift-sm);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/* ── recessed ───────────────────────────────────────────────────────────── */
|
|
90
|
-
|
|
91
|
-
[data-skin="refined"] :where([data-control-family="field"][data-control="true"]) {
|
|
92
|
-
--cui-field-background: var(--secondary);
|
|
93
|
-
--cui-field-border-color: var(--refined-rim);
|
|
94
|
-
--cui-field-focus-border-color: var(--focus-ring);
|
|
95
|
-
--cui-field-shadow: var(--refined-well);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
[data-skin="refined"] :where([data-control-family="code"][data-slot="root"]) {
|
|
99
|
-
--cui-code-background: var(--secondary);
|
|
100
|
-
--cui-code-border-color: var(--refined-rim);
|
|
101
|
-
--cui-code-shadow: var(--refined-well);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
[data-skin="refined"] :where([data-control-family="tabs"][data-slot="root"]) {
|
|
105
|
-
--cui-tabs-list-background: var(--secondary);
|
|
106
|
-
--cui-tabs-list-shadow: inset 0 0 0 1px var(--refined-rim), var(--refined-well);
|
|
107
|
-
--cui-tabs-indicator-shadow: var(--refined-lift-sm);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
[data-skin="refined"] :where([data-control-family="kbd"][data-slot="root"]) {
|
|
111
|
-
--cui-kbd-background: var(--secondary);
|
|
112
|
-
--cui-kbd-border-color: var(--refined-rim);
|
|
113
|
-
--cui-kbd-shadow: var(--refined-press);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
/* A chip is neither raised nor sunk — it is delineated. Kraftbase rims every pill and shadows none. */
|
|
117
|
-
[data-skin="refined"] :where([data-control-family="badge"][data-slot="root"]) {
|
|
118
|
-
--cui-badge-border-color: var(--border);
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
[data-skin="refined"]
|
|
122
|
-
:where(
|
|
123
|
-
[data-control-family="range"][data-range-kind="slider"][data-slot="track"],
|
|
124
|
-
[data-control-family="range"][data-range-kind="progress"][data-slot="track"],
|
|
125
|
-
[data-control-family="range"][data-range-kind="meter"][data-slot="track"]
|
|
126
|
-
) {
|
|
127
|
-
box-shadow:
|
|
128
|
-
inset 0 0 0 1px var(--refined-rim),
|
|
129
|
-
var(--refined-press);
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
/* A switch is the one control that inverts on state: the track is a groove until it fills, then it is a lit key. */
|
|
133
|
-
[data-skin="refined"] :where([data-control-family="switch"][data-slot="root"]) {
|
|
134
|
-
--cui-switch-thumb-shadow: var(--refined-lift-sm);
|
|
135
|
-
box-shadow:
|
|
136
|
-
inset 0 0 0 1px var(--refined-rim),
|
|
137
|
-
var(--refined-press);
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
[data-skin="refined"] :where([data-control-family="switch"][data-slot="root"][data-checked]) {
|
|
141
|
-
box-shadow: var(--refined-gloss), var(--refined-solid-rim);
|
|
142
|
-
}
|
|
143
|
-
}
|