@signal9/era-ui 1.1.2
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/dist/dev/audit/audits/_helpers.d.ts +5 -0
- package/dist/dev/audit/audits/_helpers.js +11 -0
- package/dist/dev/audit/audits/concentric-inset.d.ts +2 -0
- package/dist/dev/audit/audits/concentric-inset.js +33 -0
- package/dist/dev/audit/audits/index.d.ts +4 -0
- package/dist/dev/audit/audits/index.js +9 -0
- package/dist/dev/audit/audits/uniform-sibling-gaps.d.ts +2 -0
- package/dist/dev/audit/audits/uniform-sibling-gaps.js +29 -0
- package/dist/dev/audit/audits/wall-matches-gap.d.ts +2 -0
- package/dist/dev/audit/audits/wall-matches-gap.js +30 -0
- package/dist/dev/audit/index.d.ts +4 -0
- package/dist/dev/audit/index.js +3 -0
- package/dist/dev/audit/registry.d.ts +13 -0
- package/dist/dev/audit/registry.js +50 -0
- package/dist/dev/audit/runner.d.ts +3 -0
- package/dist/dev/audit/runner.js +27 -0
- package/dist/dev/audit/types.d.ts +28 -0
- package/dist/dev/audit/types.js +7 -0
- package/dist/dev/audit-overlay.svelte +125 -0
- package/dist/dev/audit-overlay.svelte.d.ts +9 -0
- package/dist/dev/index.d.ts +2 -0
- package/dist/dev/index.js +2 -0
- package/dist/docs/badge.md +18 -0
- package/dist/docs/bits-ui-audit.md +58 -0
- package/dist/docs/button.md +18 -0
- package/dist/docs/chip.md +20 -0
- package/dist/docs/component-docs-core.d.ts +8 -0
- package/dist/docs/component-docs-core.js +72 -0
- package/dist/docs/component-docs.d.ts +2 -0
- package/dist/docs/component-docs.js +25 -0
- package/dist/docs/component-source-scanners.d.ts +18 -0
- package/dist/docs/component-source-scanners.js +46 -0
- package/dist/docs/extract-props.d.ts +13 -0
- package/dist/docs/extract-props.js +324 -0
- package/dist/docs/generated-docs.d.ts +4 -0
- package/dist/docs/generated-docs.js +23 -0
- package/dist/docs/index.d.ts +5 -0
- package/dist/docs/index.js +62 -0
- package/dist/docs/llms-txt.d.ts +2 -0
- package/dist/docs/llms-txt.js +84 -0
- package/dist/docs/quickstart.md +43 -0
- package/dist/docs/separator.md +20 -0
- package/dist/docs/table.md +35 -0
- package/dist/era-ui.css +2 -0
- package/dist/generated-docs/accordion.md +57 -0
- package/dist/generated-docs/alert-dialog.md +81 -0
- package/dist/generated-docs/aspect-ratio.md +17 -0
- package/dist/generated-docs/avatar.md +39 -0
- package/dist/generated-docs/badge.md +38 -0
- package/dist/generated-docs/bar.md +19 -0
- package/dist/generated-docs/button-group.md +19 -0
- package/dist/generated-docs/button.md +46 -0
- package/dist/generated-docs/calendar.md +126 -0
- package/dist/generated-docs/card.md +26 -0
- package/dist/generated-docs/checkbox.md +42 -0
- package/dist/generated-docs/chip.md +40 -0
- package/dist/generated-docs/code-block.md +20 -0
- package/dist/generated-docs/collapsible.md +30 -0
- package/dist/generated-docs/combobox.md +74 -0
- package/dist/generated-docs/command.md +123 -0
- package/dist/generated-docs/context-menu.md +94 -0
- package/dist/generated-docs/date-field.md +49 -0
- package/dist/generated-docs/date-picker.md +180 -0
- package/dist/generated-docs/date-range-field.md +50 -0
- package/dist/generated-docs/date-range-picker.md +180 -0
- package/dist/generated-docs/dialog.md +70 -0
- package/dist/generated-docs/draggable.md +3 -0
- package/dist/generated-docs/dropdown-menu.md +94 -0
- package/dist/generated-docs/file-upload.md +18 -0
- package/dist/generated-docs/input.md +18 -0
- package/dist/generated-docs/kv.md +20 -0
- package/dist/generated-docs/label.md +17 -0
- package/dist/generated-docs/link-preview.md +30 -0
- package/dist/generated-docs/llms-full.txt +3104 -0
- package/dist/generated-docs/llms.txt +34 -0
- package/dist/generated-docs/manifest.json +812 -0
- package/dist/generated-docs/menu.md +11 -0
- package/dist/generated-docs/menubar.md +103 -0
- package/dist/generated-docs/meter.md +17 -0
- package/dist/generated-docs/mode.md +24 -0
- package/dist/generated-docs/navigation-menu.md +11 -0
- package/dist/generated-docs/pagination.md +55 -0
- package/dist/generated-docs/pane.md +30 -0
- package/dist/generated-docs/pin-input.md +31 -0
- package/dist/generated-docs/popover.md +43 -0
- package/dist/generated-docs/progress.md +17 -0
- package/dist/generated-docs/quickstart.md +47 -0
- package/dist/generated-docs/radio-group.md +31 -0
- package/dist/generated-docs/range-calendar.md +11 -0
- package/dist/generated-docs/rating-group.md +31 -0
- package/dist/generated-docs/scroll-area.md +57 -0
- package/dist/generated-docs/select.md +49 -0
- package/dist/generated-docs/separator.md +39 -0
- package/dist/generated-docs/sheet.md +11 -0
- package/dist/generated-docs/skeleton.md +18 -0
- package/dist/generated-docs/slider.md +71 -0
- package/dist/generated-docs/surfaces.md +3 -0
- package/dist/generated-docs/switch.md +18 -0
- package/dist/generated-docs/table.md +113 -0
- package/dist/generated-docs/tabs.md +48 -0
- package/dist/generated-docs/time-field.md +49 -0
- package/dist/generated-docs/time-range-field.md +50 -0
- package/dist/generated-docs/toggle-group.md +30 -0
- package/dist/generated-docs/toggle.md +20 -0
- package/dist/generated-docs/toolbar.md +11 -0
- package/dist/generated-docs/tooltip.md +30 -0
- package/dist/generated-docs/video-player.md +73 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/styles/density.css +274 -0
- package/dist/styles/index.css +77 -0
- package/dist/styles/motion.css +56 -0
- package/dist/styles/surfaces/base.css +103 -0
- package/dist/styles/surfaces/bevel.css +71 -0
- package/dist/styles/surfaces/cartoon.css +27 -0
- package/dist/styles/surfaces/glass.css +127 -0
- package/dist/styles/themes.css +351 -0
- package/dist/styles/typography.css +28 -0
- package/dist/ui/accordion/accordion-content.svelte +15 -0
- package/dist/ui/accordion/accordion-content.svelte.d.ts +4 -0
- package/dist/ui/accordion/accordion-header.svelte +8 -0
- package/dist/ui/accordion/accordion-header.svelte.d.ts +4 -0
- package/dist/ui/accordion/accordion-item.svelte +12 -0
- package/dist/ui/accordion/accordion-item.svelte.d.ts +4 -0
- package/dist/ui/accordion/accordion-trigger.svelte +24 -0
- package/dist/ui/accordion/accordion-trigger.svelte.d.ts +5 -0
- package/dist/ui/accordion/accordion.svelte +8 -0
- package/dist/ui/accordion/accordion.svelte.d.ts +4 -0
- package/dist/ui/accordion/index.d.ts +5 -0
- package/dist/ui/accordion/index.js +5 -0
- package/dist/ui/alert-dialog/alert-dialog-action.svelte +41 -0
- package/dist/ui/alert-dialog/alert-dialog-action.svelte.d.ts +9 -0
- package/dist/ui/alert-dialog/alert-dialog-cancel.svelte +39 -0
- package/dist/ui/alert-dialog/alert-dialog-cancel.svelte.d.ts +9 -0
- package/dist/ui/alert-dialog/alert-dialog-content.svelte +25 -0
- package/dist/ui/alert-dialog/alert-dialog-content.svelte.d.ts +4 -0
- package/dist/ui/alert-dialog/alert-dialog-description.svelte +16 -0
- package/dist/ui/alert-dialog/alert-dialog-description.svelte.d.ts +4 -0
- package/dist/ui/alert-dialog/alert-dialog-overlay.svelte +16 -0
- package/dist/ui/alert-dialog/alert-dialog-overlay.svelte.d.ts +4 -0
- package/dist/ui/alert-dialog/alert-dialog-title.svelte +12 -0
- package/dist/ui/alert-dialog/alert-dialog-title.svelte.d.ts +4 -0
- package/dist/ui/alert-dialog/alert-dialog-trigger.svelte +28 -0
- package/dist/ui/alert-dialog/alert-dialog-trigger.svelte.d.ts +9 -0
- package/dist/ui/alert-dialog/index.d.ts +10 -0
- package/dist/ui/alert-dialog/index.js +10 -0
- package/dist/ui/aspect-ratio/aspect-ratio.svelte +19 -0
- package/dist/ui/aspect-ratio/aspect-ratio.svelte.d.ts +5 -0
- package/dist/ui/aspect-ratio/index.d.ts +1 -0
- package/dist/ui/aspect-ratio/index.js +1 -0
- package/dist/ui/avatar/avatar-fallback.svelte +22 -0
- package/dist/ui/avatar/avatar-fallback.svelte.d.ts +5 -0
- package/dist/ui/avatar/avatar-image.svelte +8 -0
- package/dist/ui/avatar/avatar-image.svelte.d.ts +4 -0
- package/dist/ui/avatar/avatar-root.svelte +22 -0
- package/dist/ui/avatar/avatar-root.svelte.d.ts +5 -0
- package/dist/ui/avatar/index.d.ts +3 -0
- package/dist/ui/avatar/index.js +3 -0
- package/dist/ui/badge/badge.svelte +40 -0
- package/dist/ui/badge/badge.svelte.d.ts +32 -0
- package/dist/ui/badge/index.d.ts +1 -0
- package/dist/ui/badge/index.js +1 -0
- package/dist/ui/bar/bar.svelte +45 -0
- package/dist/ui/bar/bar.svelte.d.ts +30 -0
- package/dist/ui/bar/index.d.ts +1 -0
- package/dist/ui/bar/index.js +1 -0
- package/dist/ui/button/button.svelte +53 -0
- package/dist/ui/button/button.svelte.d.ts +21 -0
- package/dist/ui/button/index.d.ts +12 -0
- package/dist/ui/button/index.js +3 -0
- package/dist/ui/button/variants.d.ts +70 -0
- package/dist/ui/button/variants.js +97 -0
- package/dist/ui/button-group/button-group.svelte +31 -0
- package/dist/ui/button-group/button-group.svelte.d.ts +10 -0
- package/dist/ui/button-group/index.d.ts +1 -0
- package/dist/ui/button-group/index.js +1 -0
- package/dist/ui/calendar/calendar-cell.svelte +8 -0
- package/dist/ui/calendar/calendar-cell.svelte.d.ts +4 -0
- package/dist/ui/calendar/calendar-day.svelte +15 -0
- package/dist/ui/calendar/calendar-day.svelte.d.ts +4 -0
- package/dist/ui/calendar/calendar-grid-body.svelte +7 -0
- package/dist/ui/calendar/calendar-grid-body.svelte.d.ts +4 -0
- package/dist/ui/calendar/calendar-grid-head.svelte +7 -0
- package/dist/ui/calendar/calendar-grid-head.svelte.d.ts +4 -0
- package/dist/ui/calendar/calendar-grid-row.svelte +8 -0
- package/dist/ui/calendar/calendar-grid-row.svelte.d.ts +4 -0
- package/dist/ui/calendar/calendar-grid.svelte +8 -0
- package/dist/ui/calendar/calendar-grid.svelte.d.ts +4 -0
- package/dist/ui/calendar/calendar-head-cell.svelte +15 -0
- package/dist/ui/calendar/calendar-head-cell.svelte.d.ts +4 -0
- package/dist/ui/calendar/calendar-header.svelte +12 -0
- package/dist/ui/calendar/calendar-header.svelte.d.ts +4 -0
- package/dist/ui/calendar/calendar-heading.svelte +8 -0
- package/dist/ui/calendar/calendar-heading.svelte.d.ts +4 -0
- package/dist/ui/calendar/calendar-next-button.svelte +30 -0
- package/dist/ui/calendar/calendar-next-button.svelte.d.ts +9 -0
- package/dist/ui/calendar/calendar-prev-button.svelte +30 -0
- package/dist/ui/calendar/calendar-prev-button.svelte.d.ts +9 -0
- package/dist/ui/calendar/calendar-root.svelte +30 -0
- package/dist/ui/calendar/calendar-root.svelte.d.ts +4 -0
- package/dist/ui/calendar/index.d.ts +12 -0
- package/dist/ui/calendar/index.js +12 -0
- package/dist/ui/card/card.svelte +159 -0
- package/dist/ui/card/card.svelte.d.ts +63 -0
- package/dist/ui/card/index.d.ts +1 -0
- package/dist/ui/card/index.js +1 -0
- package/dist/ui/checkbox/checkbox-group-label.svelte +12 -0
- package/dist/ui/checkbox/checkbox-group-label.svelte.d.ts +4 -0
- package/dist/ui/checkbox/checkbox-group.svelte +18 -0
- package/dist/ui/checkbox/checkbox-group.svelte.d.ts +4 -0
- package/dist/ui/checkbox/checkbox.svelte +33 -0
- package/dist/ui/checkbox/checkbox.svelte.d.ts +4 -0
- package/dist/ui/checkbox/index.d.ts +3 -0
- package/dist/ui/checkbox/index.js +3 -0
- package/dist/ui/chip/chip.svelte +66 -0
- package/dist/ui/chip/chip.svelte.d.ts +26 -0
- package/dist/ui/chip/index.d.ts +1 -0
- package/dist/ui/chip/index.js +1 -0
- package/dist/ui/code-block/code-block.svelte +58 -0
- package/dist/ui/code-block/code-block.svelte.d.ts +11 -0
- package/dist/ui/code-block/index.d.ts +1 -0
- package/dist/ui/code-block/index.js +1 -0
- package/dist/ui/collapsible/collapsible-content.svelte +15 -0
- package/dist/ui/collapsible/collapsible-content.svelte.d.ts +5 -0
- package/dist/ui/collapsible/collapsible-trigger.svelte +22 -0
- package/dist/ui/collapsible/collapsible-trigger.svelte.d.ts +5 -0
- package/dist/ui/collapsible/index.d.ts +4 -0
- package/dist/ui/collapsible/index.js +4 -0
- package/dist/ui/combobox/combobox-content.svelte +25 -0
- package/dist/ui/combobox/combobox-content.svelte.d.ts +5 -0
- package/dist/ui/combobox/combobox-empty.svelte +22 -0
- package/dist/ui/combobox/combobox-empty.svelte.d.ts +8 -0
- package/dist/ui/combobox/combobox-group-heading.svelte +19 -0
- package/dist/ui/combobox/combobox-group-heading.svelte.d.ts +5 -0
- package/dist/ui/combobox/combobox-group.svelte +8 -0
- package/dist/ui/combobox/combobox-group.svelte.d.ts +4 -0
- package/dist/ui/combobox/combobox-input.svelte +15 -0
- package/dist/ui/combobox/combobox-input.svelte.d.ts +4 -0
- package/dist/ui/combobox/combobox-item.svelte +17 -0
- package/dist/ui/combobox/combobox-item.svelte.d.ts +4 -0
- package/dist/ui/combobox/combobox-trigger.svelte +27 -0
- package/dist/ui/combobox/combobox-trigger.svelte.d.ts +5 -0
- package/dist/ui/combobox/index.d.ts +10 -0
- package/dist/ui/combobox/index.js +10 -0
- package/dist/ui/command/command-empty.svelte +15 -0
- package/dist/ui/command/command-empty.svelte.d.ts +4 -0
- package/dist/ui/command/command-group-heading.svelte +16 -0
- package/dist/ui/command/command-group-heading.svelte.d.ts +4 -0
- package/dist/ui/command/command-group-items.svelte +12 -0
- package/dist/ui/command/command-group-items.svelte.d.ts +4 -0
- package/dist/ui/command/command-group.svelte +7 -0
- package/dist/ui/command/command-group.svelte.d.ts +4 -0
- package/dist/ui/command/command-input.svelte +45 -0
- package/dist/ui/command/command-input.svelte.d.ts +10 -0
- package/dist/ui/command/command-item.svelte +15 -0
- package/dist/ui/command/command-item.svelte.d.ts +4 -0
- package/dist/ui/command/command-link-item.svelte +15 -0
- package/dist/ui/command/command-link-item.svelte.d.ts +4 -0
- package/dist/ui/command/command-list.svelte +12 -0
- package/dist/ui/command/command-list.svelte.d.ts +4 -0
- package/dist/ui/command/command-loading.svelte +15 -0
- package/dist/ui/command/command-loading.svelte.d.ts +4 -0
- package/dist/ui/command/command-root.svelte +21 -0
- package/dist/ui/command/command-root.svelte.d.ts +4 -0
- package/dist/ui/command/command-separator.svelte +12 -0
- package/dist/ui/command/command-separator.svelte.d.ts +4 -0
- package/dist/ui/command/command-viewport.svelte +8 -0
- package/dist/ui/command/command-viewport.svelte.d.ts +4 -0
- package/dist/ui/command/index.d.ts +12 -0
- package/dist/ui/command/index.js +12 -0
- package/dist/ui/context-menu/context-menu-checkbox-item.svelte +21 -0
- package/dist/ui/context-menu/context-menu-checkbox-item.svelte.d.ts +4 -0
- package/dist/ui/context-menu/context-menu-content.svelte +27 -0
- package/dist/ui/context-menu/context-menu-content.svelte.d.ts +4 -0
- package/dist/ui/context-menu/context-menu-group-heading.svelte +16 -0
- package/dist/ui/context-menu/context-menu-group-heading.svelte.d.ts +4 -0
- package/dist/ui/context-menu/context-menu-item.svelte +22 -0
- package/dist/ui/context-menu/context-menu-item.svelte.d.ts +5 -0
- package/dist/ui/context-menu/context-menu-radio-item.svelte +19 -0
- package/dist/ui/context-menu/context-menu-radio-item.svelte.d.ts +4 -0
- package/dist/ui/context-menu/context-menu-separator.svelte +16 -0
- package/dist/ui/context-menu/context-menu-separator.svelte.d.ts +4 -0
- package/dist/ui/context-menu/context-menu-sub-content.svelte +26 -0
- package/dist/ui/context-menu/context-menu-sub-content.svelte.d.ts +5 -0
- package/dist/ui/context-menu/context-menu-sub-trigger.svelte +24 -0
- package/dist/ui/context-menu/context-menu-sub-trigger.svelte.d.ts +5 -0
- package/dist/ui/context-menu/context-menu-trigger.svelte +12 -0
- package/dist/ui/context-menu/context-menu-trigger.svelte.d.ts +4 -0
- package/dist/ui/context-menu/index.d.ts +14 -0
- package/dist/ui/context-menu/index.js +14 -0
- package/dist/ui/date-field/date-field-input.svelte +15 -0
- package/dist/ui/date-field/date-field-input.svelte.d.ts +4 -0
- package/dist/ui/date-field/date-field-label.svelte +8 -0
- package/dist/ui/date-field/date-field-label.svelte.d.ts +4 -0
- package/dist/ui/date-field/date-field-root.svelte +11 -0
- package/dist/ui/date-field/date-field-root.svelte.d.ts +3 -0
- package/dist/ui/date-field/date-field-segment.svelte +15 -0
- package/dist/ui/date-field/date-field-segment.svelte.d.ts +4 -0
- package/dist/ui/date-field/index.d.ts +4 -0
- package/dist/ui/date-field/index.js +4 -0
- package/dist/ui/date-picker/date-picker-calendar.svelte +16 -0
- package/dist/ui/date-picker/date-picker-calendar.svelte.d.ts +4 -0
- package/dist/ui/date-picker/date-picker-cell.svelte +8 -0
- package/dist/ui/date-picker/date-picker-cell.svelte.d.ts +4 -0
- package/dist/ui/date-picker/date-picker-content.svelte +25 -0
- package/dist/ui/date-picker/date-picker-content.svelte.d.ts +5 -0
- package/dist/ui/date-picker/date-picker-day.svelte +15 -0
- package/dist/ui/date-picker/date-picker-day.svelte.d.ts +4 -0
- package/dist/ui/date-picker/date-picker-grid-body.svelte +11 -0
- package/dist/ui/date-picker/date-picker-grid-body.svelte.d.ts +4 -0
- package/dist/ui/date-picker/date-picker-grid-head.svelte +11 -0
- package/dist/ui/date-picker/date-picker-grid-head.svelte.d.ts +4 -0
- package/dist/ui/date-picker/date-picker-grid-row.svelte +8 -0
- package/dist/ui/date-picker/date-picker-grid-row.svelte.d.ts +4 -0
- package/dist/ui/date-picker/date-picker-grid.svelte +8 -0
- package/dist/ui/date-picker/date-picker-grid.svelte.d.ts +4 -0
- package/dist/ui/date-picker/date-picker-head-cell.svelte +19 -0
- package/dist/ui/date-picker/date-picker-head-cell.svelte.d.ts +4 -0
- package/dist/ui/date-picker/date-picker-header.svelte +12 -0
- package/dist/ui/date-picker/date-picker-header.svelte.d.ts +4 -0
- package/dist/ui/date-picker/date-picker-heading.svelte +12 -0
- package/dist/ui/date-picker/date-picker-heading.svelte.d.ts +4 -0
- package/dist/ui/date-picker/date-picker-input.svelte +15 -0
- package/dist/ui/date-picker/date-picker-input.svelte.d.ts +4 -0
- package/dist/ui/date-picker/date-picker-label.svelte +8 -0
- package/dist/ui/date-picker/date-picker-label.svelte.d.ts +4 -0
- package/dist/ui/date-picker/date-picker-next-button.svelte +30 -0
- package/dist/ui/date-picker/date-picker-next-button.svelte.d.ts +9 -0
- package/dist/ui/date-picker/date-picker-prev-button.svelte +30 -0
- package/dist/ui/date-picker/date-picker-prev-button.svelte.d.ts +9 -0
- package/dist/ui/date-picker/date-picker-root.svelte +19 -0
- package/dist/ui/date-picker/date-picker-root.svelte.d.ts +3 -0
- package/dist/ui/date-picker/date-picker-segment.svelte +15 -0
- package/dist/ui/date-picker/date-picker-segment.svelte.d.ts +4 -0
- package/dist/ui/date-picker/date-picker-trigger.svelte +27 -0
- package/dist/ui/date-picker/date-picker-trigger.svelte.d.ts +5 -0
- package/dist/ui/date-picker/index.d.ts +18 -0
- package/dist/ui/date-picker/index.js +18 -0
- package/dist/ui/date-range-field/date-range-field-input.svelte +19 -0
- package/dist/ui/date-range-field/date-range-field-input.svelte.d.ts +4 -0
- package/dist/ui/date-range-field/date-range-field-label.svelte +12 -0
- package/dist/ui/date-range-field/date-range-field-label.svelte.d.ts +4 -0
- package/dist/ui/date-range-field/date-range-field-root.svelte +13 -0
- package/dist/ui/date-range-field/date-range-field-root.svelte.d.ts +4 -0
- package/dist/ui/date-range-field/date-range-field-segment.svelte +19 -0
- package/dist/ui/date-range-field/date-range-field-segment.svelte.d.ts +3 -0
- package/dist/ui/date-range-field/index.d.ts +4 -0
- package/dist/ui/date-range-field/index.js +4 -0
- package/dist/ui/date-range-picker/date-range-picker-calendar.svelte +16 -0
- package/dist/ui/date-range-picker/date-range-picker-calendar.svelte.d.ts +4 -0
- package/dist/ui/date-range-picker/date-range-picker-cell.svelte +12 -0
- package/dist/ui/date-range-picker/date-range-picker-cell.svelte.d.ts +4 -0
- package/dist/ui/date-range-picker/date-range-picker-content.svelte +25 -0
- package/dist/ui/date-range-picker/date-range-picker-content.svelte.d.ts +5 -0
- package/dist/ui/date-range-picker/date-range-picker-day.svelte +19 -0
- package/dist/ui/date-range-picker/date-range-picker-day.svelte.d.ts +4 -0
- package/dist/ui/date-range-picker/date-range-picker-grid-body.svelte +12 -0
- package/dist/ui/date-range-picker/date-range-picker-grid-body.svelte.d.ts +4 -0
- package/dist/ui/date-range-picker/date-range-picker-grid-head.svelte +12 -0
- package/dist/ui/date-range-picker/date-range-picker-grid-head.svelte.d.ts +4 -0
- package/dist/ui/date-range-picker/date-range-picker-grid-row.svelte +12 -0
- package/dist/ui/date-range-picker/date-range-picker-grid-row.svelte.d.ts +4 -0
- package/dist/ui/date-range-picker/date-range-picker-grid.svelte +16 -0
- package/dist/ui/date-range-picker/date-range-picker-grid.svelte.d.ts +4 -0
- package/dist/ui/date-range-picker/date-range-picker-head-cell.svelte +19 -0
- package/dist/ui/date-range-picker/date-range-picker-head-cell.svelte.d.ts +4 -0
- package/dist/ui/date-range-picker/date-range-picker-header.svelte +16 -0
- package/dist/ui/date-range-picker/date-range-picker-header.svelte.d.ts +4 -0
- package/dist/ui/date-range-picker/date-range-picker-heading.svelte +16 -0
- package/dist/ui/date-range-picker/date-range-picker-heading.svelte.d.ts +4 -0
- package/dist/ui/date-range-picker/date-range-picker-input.svelte +19 -0
- package/dist/ui/date-range-picker/date-range-picker-input.svelte.d.ts +4 -0
- package/dist/ui/date-range-picker/date-range-picker-label.svelte +12 -0
- package/dist/ui/date-range-picker/date-range-picker-label.svelte.d.ts +4 -0
- package/dist/ui/date-range-picker/date-range-picker-next-button.svelte +30 -0
- package/dist/ui/date-range-picker/date-range-picker-next-button.svelte.d.ts +9 -0
- package/dist/ui/date-range-picker/date-range-picker-prev-button.svelte +30 -0
- package/dist/ui/date-range-picker/date-range-picker-prev-button.svelte.d.ts +9 -0
- package/dist/ui/date-range-picker/date-range-picker-root.svelte +19 -0
- package/dist/ui/date-range-picker/date-range-picker-root.svelte.d.ts +4 -0
- package/dist/ui/date-range-picker/date-range-picker-segment.svelte +19 -0
- package/dist/ui/date-range-picker/date-range-picker-segment.svelte.d.ts +3 -0
- package/dist/ui/date-range-picker/date-range-picker-trigger.svelte +27 -0
- package/dist/ui/date-range-picker/date-range-picker-trigger.svelte.d.ts +5 -0
- package/dist/ui/date-range-picker/index.d.ts +18 -0
- package/dist/ui/date-range-picker/index.js +18 -0
- package/dist/ui/dialog/dialog-close.svelte +39 -0
- package/dist/ui/dialog/dialog-close.svelte.d.ts +9 -0
- package/dist/ui/dialog/dialog-content.svelte +25 -0
- package/dist/ui/dialog/dialog-content.svelte.d.ts +5 -0
- package/dist/ui/dialog/dialog-description.svelte +12 -0
- package/dist/ui/dialog/dialog-description.svelte.d.ts +4 -0
- package/dist/ui/dialog/dialog-overlay.svelte +12 -0
- package/dist/ui/dialog/dialog-overlay.svelte.d.ts +4 -0
- package/dist/ui/dialog/dialog-title.svelte +8 -0
- package/dist/ui/dialog/dialog-title.svelte.d.ts +4 -0
- package/dist/ui/dialog/dialog-trigger.svelte +28 -0
- package/dist/ui/dialog/dialog-trigger.svelte.d.ts +9 -0
- package/dist/ui/dialog/index.d.ts +9 -0
- package/dist/ui/dialog/index.js +9 -0
- package/dist/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +21 -0
- package/dist/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte.d.ts +4 -0
- package/dist/ui/dropdown-menu/dropdown-menu-content.svelte +27 -0
- package/dist/ui/dropdown-menu/dropdown-menu-content.svelte.d.ts +5 -0
- package/dist/ui/dropdown-menu/dropdown-menu-group-heading.svelte +16 -0
- package/dist/ui/dropdown-menu/dropdown-menu-group-heading.svelte.d.ts +4 -0
- package/dist/ui/dropdown-menu/dropdown-menu-item.svelte +22 -0
- package/dist/ui/dropdown-menu/dropdown-menu-item.svelte.d.ts +5 -0
- package/dist/ui/dropdown-menu/dropdown-menu-radio-item.svelte +19 -0
- package/dist/ui/dropdown-menu/dropdown-menu-radio-item.svelte.d.ts +4 -0
- package/dist/ui/dropdown-menu/dropdown-menu-separator.svelte +16 -0
- package/dist/ui/dropdown-menu/dropdown-menu-separator.svelte.d.ts +4 -0
- package/dist/ui/dropdown-menu/dropdown-menu-sub-content.svelte +26 -0
- package/dist/ui/dropdown-menu/dropdown-menu-sub-content.svelte.d.ts +5 -0
- package/dist/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +24 -0
- package/dist/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte.d.ts +5 -0
- package/dist/ui/dropdown-menu/dropdown-menu-trigger.svelte +24 -0
- package/dist/ui/dropdown-menu/dropdown-menu-trigger.svelte.d.ts +5 -0
- package/dist/ui/dropdown-menu/index.d.ts +14 -0
- package/dist/ui/dropdown-menu/index.js +14 -0
- package/dist/ui/file-upload/file-upload.svelte +98 -0
- package/dist/ui/file-upload/file-upload.svelte.d.ts +8 -0
- package/dist/ui/file-upload/index.d.ts +1 -0
- package/dist/ui/file-upload/index.js +1 -0
- package/dist/ui/index.d.ts +58 -0
- package/dist/ui/index.js +62 -0
- package/dist/ui/input/index.d.ts +2 -0
- package/dist/ui/input/index.js +2 -0
- package/dist/ui/input/input.svelte +23 -0
- package/dist/ui/input/input.svelte.d.ts +7 -0
- package/dist/ui/input/textarea.svelte +23 -0
- package/dist/ui/input/textarea.svelte.d.ts +7 -0
- package/dist/ui/kv/index.d.ts +1 -0
- package/dist/ui/kv/index.js +1 -0
- package/dist/ui/kv/kv.svelte +33 -0
- package/dist/ui/kv/kv.svelte.d.ts +10 -0
- package/dist/ui/label/index.d.ts +1 -0
- package/dist/ui/label/index.js +1 -0
- package/dist/ui/label/label.svelte +15 -0
- package/dist/ui/label/label.svelte.d.ts +5 -0
- package/dist/ui/link-preview/index.d.ts +7 -0
- package/dist/ui/link-preview/index.js +7 -0
- package/dist/ui/link-preview/link-preview-content.svelte +26 -0
- package/dist/ui/link-preview/link-preview-content.svelte.d.ts +5 -0
- package/dist/ui/link-preview/link-preview-trigger.svelte +19 -0
- package/dist/ui/link-preview/link-preview-trigger.svelte.d.ts +5 -0
- package/dist/ui/menu/index.d.ts +1 -0
- package/dist/ui/menu/index.js +3 -0
- package/dist/ui/menubar/index.d.ts +16 -0
- package/dist/ui/menubar/index.js +16 -0
- package/dist/ui/menubar/menubar-checkbox-item.svelte +21 -0
- package/dist/ui/menubar/menubar-checkbox-item.svelte.d.ts +4 -0
- package/dist/ui/menubar/menubar-content.svelte +27 -0
- package/dist/ui/menubar/menubar-content.svelte.d.ts +5 -0
- package/dist/ui/menubar/menubar-group-heading.svelte +16 -0
- package/dist/ui/menubar/menubar-group-heading.svelte.d.ts +4 -0
- package/dist/ui/menubar/menubar-item.svelte +22 -0
- package/dist/ui/menubar/menubar-item.svelte.d.ts +5 -0
- package/dist/ui/menubar/menubar-radio-item.svelte +15 -0
- package/dist/ui/menubar/menubar-radio-item.svelte.d.ts +4 -0
- package/dist/ui/menubar/menubar-root.svelte +15 -0
- package/dist/ui/menubar/menubar-root.svelte.d.ts +4 -0
- package/dist/ui/menubar/menubar-separator.svelte +12 -0
- package/dist/ui/menubar/menubar-separator.svelte.d.ts +4 -0
- package/dist/ui/menubar/menubar-sub-content.svelte +26 -0
- package/dist/ui/menubar/menubar-sub-content.svelte.d.ts +5 -0
- package/dist/ui/menubar/menubar-sub-trigger.svelte +24 -0
- package/dist/ui/menubar/menubar-sub-trigger.svelte.d.ts +5 -0
- package/dist/ui/menubar/menubar-trigger.svelte +22 -0
- package/dist/ui/menubar/menubar-trigger.svelte.d.ts +5 -0
- package/dist/ui/meter/index.d.ts +1 -0
- package/dist/ui/meter/index.js +1 -0
- package/dist/ui/meter/meter.svelte +32 -0
- package/dist/ui/meter/meter.svelte.d.ts +4 -0
- package/dist/ui/mode/index.d.ts +1 -0
- package/dist/ui/mode/index.js +1 -0
- package/dist/ui/mode/mode.svelte +61 -0
- package/dist/ui/mode/mode.svelte.d.ts +18 -0
- package/dist/ui/navigation-menu/index.d.ts +10 -0
- package/dist/ui/navigation-menu/index.js +10 -0
- package/dist/ui/pagination/index.d.ts +4 -0
- package/dist/ui/pagination/index.js +4 -0
- package/dist/ui/pagination/pagination-next-button.svelte +30 -0
- package/dist/ui/pagination/pagination-next-button.svelte.d.ts +9 -0
- package/dist/ui/pagination/pagination-page.svelte +32 -0
- package/dist/ui/pagination/pagination-page.svelte.d.ts +9 -0
- package/dist/ui/pagination/pagination-prev-button.svelte +30 -0
- package/dist/ui/pagination/pagination-prev-button.svelte.d.ts +9 -0
- package/dist/ui/pagination/pagination-root.svelte +18 -0
- package/dist/ui/pagination/pagination-root.svelte.d.ts +4 -0
- package/dist/ui/pane/index.d.ts +1 -0
- package/dist/ui/pane/index.js +1 -0
- package/dist/ui/pane/pane.svelte +145 -0
- package/dist/ui/pane/pane.svelte.d.ts +34 -0
- package/dist/ui/pin-input/index.d.ts +2 -0
- package/dist/ui/pin-input/index.js +2 -0
- package/dist/ui/pin-input/pin-input-cell.svelte +30 -0
- package/dist/ui/pin-input/pin-input-cell.svelte.d.ts +4 -0
- package/dist/ui/pin-input/pin-input-root.svelte +18 -0
- package/dist/ui/pin-input/pin-input-root.svelte.d.ts +4 -0
- package/dist/ui/popover/index.d.ts +7 -0
- package/dist/ui/popover/index.js +7 -0
- package/dist/ui/popover/popover-close.svelte +27 -0
- package/dist/ui/popover/popover-close.svelte.d.ts +9 -0
- package/dist/ui/popover/popover-content.svelte +24 -0
- package/dist/ui/popover/popover-content.svelte.d.ts +5 -0
- package/dist/ui/popover/popover-trigger.svelte +41 -0
- package/dist/ui/popover/popover-trigger.svelte.d.ts +9 -0
- package/dist/ui/progress/index.d.ts +1 -0
- package/dist/ui/progress/index.js +1 -0
- package/dist/ui/progress/progress.svelte +47 -0
- package/dist/ui/progress/progress.svelte.d.ts +4 -0
- package/dist/ui/provider/axes.d.ts +74 -0
- package/dist/ui/provider/axes.js +70 -0
- package/dist/ui/provider/index.d.ts +6 -0
- package/dist/ui/provider/index.js +6 -0
- package/dist/ui/provider/modes.d.ts +12 -0
- package/dist/ui/provider/modes.js +14 -0
- package/dist/ui/provider/surfaces.d.ts +45 -0
- package/dist/ui/provider/surfaces.js +24 -0
- package/dist/ui/radio-group/index.d.ts +2 -0
- package/dist/ui/radio-group/index.js +2 -0
- package/dist/ui/radio-group/radio-group-item.svelte +19 -0
- package/dist/ui/radio-group/radio-group-item.svelte.d.ts +4 -0
- package/dist/ui/radio-group/radio-group-root.svelte +18 -0
- package/dist/ui/radio-group/radio-group-root.svelte.d.ts +4 -0
- package/dist/ui/range-calendar/index.d.ts +15 -0
- package/dist/ui/range-calendar/index.js +15 -0
- package/dist/ui/rating-group/index.d.ts +2 -0
- package/dist/ui/rating-group/index.js +2 -0
- package/dist/ui/rating-group/rating-group-item.svelte +17 -0
- package/dist/ui/rating-group/rating-group-item.svelte.d.ts +4 -0
- package/dist/ui/rating-group/rating-group-root.svelte +20 -0
- package/dist/ui/rating-group/rating-group-root.svelte.d.ts +4 -0
- package/dist/ui/scroll-area/index.d.ts +5 -0
- package/dist/ui/scroll-area/index.js +5 -0
- package/dist/ui/scroll-area/scroll-area-corner.svelte +7 -0
- package/dist/ui/scroll-area/scroll-area-corner.svelte.d.ts +4 -0
- package/dist/ui/scroll-area/scroll-area-scrollbar.svelte +19 -0
- package/dist/ui/scroll-area/scroll-area-scrollbar.svelte.d.ts +4 -0
- package/dist/ui/scroll-area/scroll-area-thumb.svelte +12 -0
- package/dist/ui/scroll-area/scroll-area-thumb.svelte.d.ts +4 -0
- package/dist/ui/scroll-area/scroll-area-viewport.svelte +12 -0
- package/dist/ui/scroll-area/scroll-area-viewport.svelte.d.ts +4 -0
- package/dist/ui/scroll-area/scroll-area.svelte +18 -0
- package/dist/ui/scroll-area/scroll-area.svelte.d.ts +4 -0
- package/dist/ui/select/index.d.ts +6 -0
- package/dist/ui/select/index.js +6 -0
- package/dist/ui/select/select-content.svelte +25 -0
- package/dist/ui/select/select-content.svelte.d.ts +5 -0
- package/dist/ui/select/select-item.svelte +17 -0
- package/dist/ui/select/select-item.svelte.d.ts +4 -0
- package/dist/ui/select/select-trigger.svelte +24 -0
- package/dist/ui/select/select-trigger.svelte.d.ts +5 -0
- package/dist/ui/select/select-value.svelte +71 -0
- package/dist/ui/select/select-value.svelte.d.ts +9 -0
- package/dist/ui/separator/index.d.ts +1 -0
- package/dist/ui/separator/index.js +1 -0
- package/dist/ui/separator/separator.svelte +31 -0
- package/dist/ui/separator/separator.svelte.d.ts +8 -0
- package/dist/ui/sheet/index.d.ts +2 -0
- package/dist/ui/sheet/index.js +5 -0
- package/dist/ui/sheet/sheet-content.svelte +41 -0
- package/dist/ui/sheet/sheet-content.svelte.d.ts +31 -0
- package/dist/ui/skeleton/index.d.ts +1 -0
- package/dist/ui/skeleton/index.js +1 -0
- package/dist/ui/skeleton/skeleton.svelte +43 -0
- package/dist/ui/skeleton/skeleton.svelte.d.ts +27 -0
- package/dist/ui/slider/index.d.ts +6 -0
- package/dist/ui/slider/index.js +6 -0
- package/dist/ui/slider/slider-range.svelte +40 -0
- package/dist/ui/slider/slider-range.svelte.d.ts +13 -0
- package/dist/ui/slider/slider-root.svelte +29 -0
- package/dist/ui/slider/slider-root.svelte.d.ts +4 -0
- package/dist/ui/slider/slider-thumb-label.svelte +12 -0
- package/dist/ui/slider/slider-thumb-label.svelte.d.ts +4 -0
- package/dist/ui/slider/slider-thumb.svelte +15 -0
- package/dist/ui/slider/slider-thumb.svelte.d.ts +4 -0
- package/dist/ui/slider/slider-tick-label.svelte +12 -0
- package/dist/ui/slider/slider-tick-label.svelte.d.ts +4 -0
- package/dist/ui/slider/slider-tick.svelte +15 -0
- package/dist/ui/slider/slider-tick.svelte.d.ts +4 -0
- package/dist/ui/switch/index.d.ts +1 -0
- package/dist/ui/switch/index.js +1 -0
- package/dist/ui/switch/switch.svelte +36 -0
- package/dist/ui/switch/switch.svelte.d.ts +4 -0
- package/dist/ui/table/index.d.ts +6 -0
- package/dist/ui/table/index.js +6 -0
- package/dist/ui/table/table-body.svelte +18 -0
- package/dist/ui/table/table-body.svelte.d.ts +9 -0
- package/dist/ui/table/table-cell.svelte +26 -0
- package/dist/ui/table/table-cell.svelte.d.ts +9 -0
- package/dist/ui/table/table-head-cell.svelte +26 -0
- package/dist/ui/table/table-head-cell.svelte.d.ts +9 -0
- package/dist/ui/table/table-head.svelte +18 -0
- package/dist/ui/table/table-head.svelte.d.ts +9 -0
- package/dist/ui/table/table-root.svelte +36 -0
- package/dist/ui/table/table-root.svelte.d.ts +17 -0
- package/dist/ui/table/table-row.svelte +26 -0
- package/dist/ui/table/table-row.svelte.d.ts +9 -0
- package/dist/ui/tabs/index.d.ts +4 -0
- package/dist/ui/tabs/index.js +4 -0
- package/dist/ui/tabs/tabs-content.svelte +7 -0
- package/dist/ui/tabs/tabs-content.svelte.d.ts +4 -0
- package/dist/ui/tabs/tabs-list.svelte +7 -0
- package/dist/ui/tabs/tabs-list.svelte.d.ts +4 -0
- package/dist/ui/tabs/tabs-trigger.svelte +7 -0
- package/dist/ui/tabs/tabs-trigger.svelte.d.ts +4 -0
- package/dist/ui/tabs/tabs.svelte +7 -0
- package/dist/ui/tabs/tabs.svelte.d.ts +4 -0
- package/dist/ui/time-field/index.d.ts +4 -0
- package/dist/ui/time-field/index.js +4 -0
- package/dist/ui/time-field/time-field-input.svelte +15 -0
- package/dist/ui/time-field/time-field-input.svelte.d.ts +4 -0
- package/dist/ui/time-field/time-field-label.svelte +8 -0
- package/dist/ui/time-field/time-field-label.svelte.d.ts +4 -0
- package/dist/ui/time-field/time-field-root.svelte +11 -0
- package/dist/ui/time-field/time-field-root.svelte.d.ts +4 -0
- package/dist/ui/time-field/time-field-segment.svelte +15 -0
- package/dist/ui/time-field/time-field-segment.svelte.d.ts +4 -0
- package/dist/ui/time-range-field/index.d.ts +4 -0
- package/dist/ui/time-range-field/index.js +4 -0
- package/dist/ui/time-range-field/time-range-field-input.svelte +19 -0
- package/dist/ui/time-range-field/time-range-field-input.svelte.d.ts +4 -0
- package/dist/ui/time-range-field/time-range-field-label.svelte +12 -0
- package/dist/ui/time-range-field/time-range-field-label.svelte.d.ts +4 -0
- package/dist/ui/time-range-field/time-range-field-root.svelte +13 -0
- package/dist/ui/time-range-field/time-range-field-root.svelte.d.ts +4 -0
- package/dist/ui/time-range-field/time-range-field-segment.svelte +19 -0
- package/dist/ui/time-range-field/time-range-field-segment.svelte.d.ts +3 -0
- package/dist/ui/toggle/index.d.ts +1 -0
- package/dist/ui/toggle/index.js +1 -0
- package/dist/ui/toggle/toggle.svelte +27 -0
- package/dist/ui/toggle/toggle.svelte.d.ts +9 -0
- package/dist/ui/toggle-group/index.d.ts +2 -0
- package/dist/ui/toggle-group/index.js +2 -0
- package/dist/ui/toggle-group/toggle-group-item.svelte +17 -0
- package/dist/ui/toggle-group/toggle-group-item.svelte.d.ts +4 -0
- package/dist/ui/toggle-group/toggle-group-root.svelte +19 -0
- package/dist/ui/toggle-group/toggle-group-root.svelte.d.ts +5 -0
- package/dist/ui/toolbar/index.d.ts +6 -0
- package/dist/ui/toolbar/index.js +6 -0
- package/dist/ui/tooltip/index.d.ts +7 -0
- package/dist/ui/tooltip/index.js +7 -0
- package/dist/ui/tooltip/tooltip-content.svelte +26 -0
- package/dist/ui/tooltip/tooltip-content.svelte.d.ts +5 -0
- package/dist/ui/tooltip/tooltip-trigger.svelte +7 -0
- package/dist/ui/tooltip/tooltip-trigger.svelte.d.ts +4 -0
- package/dist/ui/video-player/index.d.ts +1 -0
- package/dist/ui/video-player/index.js +1 -0
- package/dist/ui/video-player/video-player.svelte +1377 -0
- package/dist/ui/video-player/video-player.svelte.d.ts +107 -0
- package/dist/utils/index.d.ts +15 -0
- package/dist/utils/index.js +24 -0
- package/package.json +115 -0
- package/readme +127 -0
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Era UI — Density Tokens
|
|
3
|
+
*
|
|
4
|
+
* Four modes: dense, balanced, spacious, touch. sp = 8 / 10 / 12 / 16.
|
|
5
|
+
*
|
|
6
|
+
* TIER LADDER
|
|
7
|
+
* ===========
|
|
8
|
+
*
|
|
9
|
+
* xs = sp + 6 (icon tier — the glyph itself; thumbs, dismiss, icon button)
|
|
10
|
+
* xxs = sp + 10 (pill that nests inside md — badge, chip in a button/trigger)
|
|
11
|
+
* sm = 2·sp + 6 (standalone pill — switch track, KV row, free badge/chip)
|
|
12
|
+
* md = 3·sp (buttons, inputs, selects, triggers)
|
|
13
|
+
* lg = 4·sp (bars, containers)
|
|
14
|
+
*
|
|
15
|
+
* xs carries a +6 floor so icons stay legible (≥14px) at every sp. xxs sits
|
|
16
|
+
* 4px above xs so 14px text has just enough pill around it while fitting
|
|
17
|
+
* inside an md container with a visible concentric gap (≥3px at dense). sm
|
|
18
|
+
* keeps the generous 2·sp + 6 that gives switch thumbs their sp/2 slot and
|
|
19
|
+
* KV rows their padded feel. md and lg are pure sp multiples so button and
|
|
20
|
+
* bar heights don't inflate.
|
|
21
|
+
*
|
|
22
|
+
* Concentric nesting gaps:
|
|
23
|
+
* sm ⊃ xs = sp/2 (4/5/6 at dense/balanced/spacious)
|
|
24
|
+
* lg ⊃ md = sp/2 (4/5/6)
|
|
25
|
+
* md ⊃ sm = (sp−6)/2 (1/2/3 — tight but present)
|
|
26
|
+
* md ⊃ xxs = (2sp−10)/2 (3/5/7 — the "pill inside a button" gap)
|
|
27
|
+
* xxs ⊃ xs = 2 (flat; xxs is sized around text, not as a
|
|
28
|
+
* container for xs content)
|
|
29
|
+
*
|
|
30
|
+
* Invariant xs < xxs < sm < md < lg holds for sp ≥ 7. Canonical range is
|
|
31
|
+
* sp ∈ [8, 16] so this is mode-bounded.
|
|
32
|
+
*
|
|
33
|
+
* xs IS the icon tier — no separate "icon" token. "Container for an icon"
|
|
34
|
+
* and "the icon itself" are the same thing; any padding lives on the parent
|
|
35
|
+
* (xxs / sm / md / lg).
|
|
36
|
+
*
|
|
37
|
+
* Dense values: 14, 18, 22, 24, 32.
|
|
38
|
+
* Touch values: 22, 26, 38, 48, 64 (md ≥ 44px tap-target floor).
|
|
39
|
+
*
|
|
40
|
+
* INSETS
|
|
41
|
+
* ======
|
|
42
|
+
*
|
|
43
|
+
* --era-px-{sm,md,lg} sp/2 — tier-to-tier nesting padding
|
|
44
|
+
* --era-gap sp/2 — inter-element gap
|
|
45
|
+
* --era-inset-{xxs,sm,md} (T − text)/2 — text-symmetric content padding
|
|
46
|
+
* --era-xs-inset-sm (sm − xs)/2 = sp/2 — centering an xs element inside sm
|
|
47
|
+
*
|
|
48
|
+
* OPTICAL PADDING (unbounded content containers)
|
|
49
|
+
* ==============================================
|
|
50
|
+
*
|
|
51
|
+
* Geometric insets above are dictated by tier heights: centering a child of
|
|
52
|
+
* height C inside a container of height T is (T − C)/2, linear in sp. But
|
|
53
|
+
* cards, dialogs, and content panels have no bounding tier — their padding
|
|
54
|
+
* is optical, and linear-in-sp padding falls behind as modes loosen: controls
|
|
55
|
+
* grow linearly while text stays 14px, so whitespace must grow SUPER-linearly
|
|
56
|
+
* to hold the same perceived balance. (The tokens that already feel right
|
|
57
|
+
* across modes — inset-md 5→17, content-p 16→48 — are exactly the convex
|
|
58
|
+
* ones; the cramped ones — card's old sp/2 = 4→8 — are the linear ones.)
|
|
59
|
+
*
|
|
60
|
+
* The optical unit is the mean of the linear and quadratic scales:
|
|
61
|
+
*
|
|
62
|
+
* d = sp / sp₀ (density factor; sp₀ = 8px dense baseline)
|
|
63
|
+
* so = sp · (1 + d) / 2 = 8 / 11.25 / 15 / 24
|
|
64
|
+
*
|
|
65
|
+
* At dense (d = 1) so = sp, so nothing changes where the ladder is anchored;
|
|
66
|
+
* by touch (d = 2) it runs 1.5× ahead of linear. 2·so = 16/22.5/30/48
|
|
67
|
+
* reproduces the empirically-tuned old content-p curve (16/24/32/48), so this
|
|
68
|
+
* names the law the system had already converged on rather than inventing one.
|
|
69
|
+
*
|
|
70
|
+
* --era-pad-sm so/2 4 / 5.6 / 7.5 / 12 — compact shells, menu panels
|
|
71
|
+
* --era-pad-md so 8 / 11.25 / 15 / 24 — cards, card sections, dialogs, popovers
|
|
72
|
+
* --era-pad-lg 2·so 16 / 22.5 / 30 / 48 — full content panels (docs sections)
|
|
73
|
+
*
|
|
74
|
+
* Whitespace share rises with mode: pad-md / h-md = 0.33 dense → 0.50 touch.
|
|
75
|
+
* --era-content-p is kept as an alias of --era-pad-lg.
|
|
76
|
+
*
|
|
77
|
+
* IDENTITY USED AT NESTING SITES
|
|
78
|
+
* ==============================
|
|
79
|
+
*
|
|
80
|
+
* A flush xxs pill at an md-container edge needs −(inset-xxs) margin so
|
|
81
|
+
* the horizontal gap equals the vertical concentric gap. Proof:
|
|
82
|
+
* inset-md − xxs-inset-md
|
|
83
|
+
* = (md − text)/2 − (md − xxs)/2
|
|
84
|
+
* = (xxs − text)/2
|
|
85
|
+
* = inset-xxs.
|
|
86
|
+
*
|
|
87
|
+
* RADII (concentric progression, sp-derived)
|
|
88
|
+
* ==========================================
|
|
89
|
+
*
|
|
90
|
+
* rd-T = scale · (R + (h-T − h-xs) / 2) where R = sp / φ²
|
|
91
|
+
*
|
|
92
|
+
* Both R and the per-tier concentric term are multiplied by scale. The corners
|
|
93
|
+
* toggle flips scale 1 ↔ 0 so every rd collapses together. Because scale is
|
|
94
|
+
* declared via @property as <number>, a transition on :root animates it when
|
|
95
|
+
* the toggle fires — sp changes don't trigger the transition, so scrubbing
|
|
96
|
+
* stays snappy while the corners flip is smooth.
|
|
97
|
+
*
|
|
98
|
+
* SUBTREE OVERRIDES
|
|
99
|
+
* =================
|
|
100
|
+
*
|
|
101
|
+
* The ladder and radii are declared on the universal selector (*) rather
|
|
102
|
+
* than :root, so every element re-evaluates the calc() chain against its
|
|
103
|
+
* own inherited --era-sp / --era-roundness-scale. Setting data-mode="spacious"
|
|
104
|
+
* on an arbitrary subtree bumps only --era-sp on that element; the derived
|
|
105
|
+
* heights, insets, and radii recompute per-element via inheritance. Same
|
|
106
|
+
* mechanism handles data-corners on any subtree.
|
|
107
|
+
*
|
|
108
|
+
* Without the * selector this wouldn't work: custom-property var() refs
|
|
109
|
+
* resolve at computed-value time. If --era-h-lg = calc(4 * var(--era-sp)) were
|
|
110
|
+
* declared only on :root, descendants would inherit root's already-resolved
|
|
111
|
+
* 2rem and no subtree override of --era-sp could retroactively change it.
|
|
112
|
+
*/
|
|
113
|
+
|
|
114
|
+
/* Typed custom property so the corners toggle animates smoothly. */
|
|
115
|
+
@property --era-roundness-scale {
|
|
116
|
+
syntax: '<number>';
|
|
117
|
+
inherits: true;
|
|
118
|
+
initial-value: 1;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/* -------------------------------------------------- */
|
|
122
|
+
/* Derivation — one formula per token, re-evaluated */
|
|
123
|
+
/* per element so data-mode / data-corners overrides */
|
|
124
|
+
/* on any subtree flow through to the full ladder. */
|
|
125
|
+
/* -------------------------------------------------- */
|
|
126
|
+
* {
|
|
127
|
+
/* Tier heights */
|
|
128
|
+
--era-h-xs: calc(var(--era-sp) + 0.375rem); /* 14/16/18 = sp + 6 (icon tier) */
|
|
129
|
+
--era-h-xxs: calc(var(--era-sp) + 0.625rem); /* 18/20/22 = sp + 10 (nested pill tier) */
|
|
130
|
+
--era-h-sm: calc(2 * var(--era-sp) + 0.375rem); /* 22/26/30 = 2·sp + 6 (standalone pill) */
|
|
131
|
+
--era-h-md: calc(3 * var(--era-sp)); /* 24/30/36 = 3·sp */
|
|
132
|
+
--era-h-lg: calc(4 * var(--era-sp)); /* 32/40/48 = 4·sp */
|
|
133
|
+
|
|
134
|
+
/* Tier horizontal padding */
|
|
135
|
+
--era-px-sm: calc(var(--era-sp) * 0.5); /* 4/5/6 */
|
|
136
|
+
--era-px-md: calc(var(--era-sp) * 0.5); /* 4/5/6 */
|
|
137
|
+
--era-px-lg: calc(var(--era-sp) * 0.5); /* 4/5/6 */
|
|
138
|
+
|
|
139
|
+
/* Inter-item gap */
|
|
140
|
+
--era-gap: calc(var(--era-sp) * 0.5); /* 4/5/6 */
|
|
141
|
+
|
|
142
|
+
/* Content insets — text-symmetric padding (vertical centering, reused as
|
|
143
|
+
horizontal only where the content is a single square glyph). */
|
|
144
|
+
--era-inset-xxs: max(0px, calc((var(--era-h-xxs) - var(--era-text)) / 2)); /* 2/3/4 */
|
|
145
|
+
--era-inset-sm: max(0px, calc((var(--era-h-sm) - var(--era-text)) / 2)); /* 4/6/8 */
|
|
146
|
+
--era-inset-md: max(0px, calc((var(--era-h-md) - var(--era-text)) / 2)); /* 5/8/11 */
|
|
147
|
+
|
|
148
|
+
/* Pill side padding — horizontal breathing room for badge/chip text.
|
|
149
|
+
Text wants MORE horizontal than vertical padding: line-height adds
|
|
150
|
+
invisible vertical space, so equal padding reads as cramped sides
|
|
151
|
+
(Refactoring UI / Material / Bootstrap all land near a 2:1 ratio). We
|
|
152
|
+
DERIVE it rather than guess: center the monospace glyph ADVANCE
|
|
153
|
+
(~0.6em) the way the insets center the 1em line box. Because the glyph
|
|
154
|
+
is narrower than the line, this comes out ~2× the vertical inset on its
|
|
155
|
+
own — and a lone glyph still measures exactly the tier width, so the
|
|
156
|
+
"single glyph = square" floor (min-w = h) is preserved, not broken. */
|
|
157
|
+
--era-pill-xxs: max(0px, calc((var(--era-h-xxs) - 0.6 * var(--era-text)) / 2)); /* 4.8/5.8/6.8 */
|
|
158
|
+
--era-pill-sm: max(0px, calc((var(--era-h-sm) - 0.6 * var(--era-text)) / 2)); /* 6.8/8.8/10.8 */
|
|
159
|
+
|
|
160
|
+
/* Concentric insets — center a smaller tier element inside a larger one. */
|
|
161
|
+
/* --era-xs-inset-sm stays at sp/2 by construction (sm − xs = sp), which is
|
|
162
|
+
what switch thumbs and KV icons rely on. --era-xxs-inset-md is the "pill
|
|
163
|
+
inside a button" concentric gap used both vertically (trigger padding)
|
|
164
|
+
and horizontally (inter-chip gap inside multi-select Value). */
|
|
165
|
+
--era-xs-inset-sm: calc((var(--era-h-sm) - var(--era-h-xs)) / 2); /* 4/5/6 = sp/2 */
|
|
166
|
+
--era-xxs-inset-md: calc((var(--era-h-md) - var(--era-h-xxs)) / 2); /* 3/5/7 = sp − 5 */
|
|
167
|
+
|
|
168
|
+
/* Roundness ladder — golden base + concentric progression, both gated by scale. */
|
|
169
|
+
/* rd-T = scale · (R + (h-T − h-xs) / 2). R = sp / φ². max(0px, …) clamps tier
|
|
170
|
+
inversion at sp < 6 where h-md/h-lg drop below h-xs. data-corners="square"
|
|
171
|
+
sets scale to 0 (animated via @property), zeroing every radius. */
|
|
172
|
+
--era-roundness: calc(var(--era-roundness-scale) * var(--era-sp) / 2.618);
|
|
173
|
+
--era-rd-xs: max(0px, var(--era-roundness));
|
|
174
|
+
--era-rd-xxs: max(
|
|
175
|
+
0px,
|
|
176
|
+
calc(
|
|
177
|
+
var(--era-roundness) + var(--era-roundness-scale) * (var(--era-h-xxs) - var(--era-h-xs)) / 2
|
|
178
|
+
)
|
|
179
|
+
);
|
|
180
|
+
--era-rd-sm: max(
|
|
181
|
+
0px,
|
|
182
|
+
calc(
|
|
183
|
+
var(--era-roundness) + var(--era-roundness-scale) * (var(--era-h-sm) - var(--era-h-xs)) / 2
|
|
184
|
+
)
|
|
185
|
+
);
|
|
186
|
+
--era-rd-md: max(
|
|
187
|
+
0px,
|
|
188
|
+
calc(
|
|
189
|
+
var(--era-roundness) + var(--era-roundness-scale) * (var(--era-h-md) - var(--era-h-xs)) / 2
|
|
190
|
+
)
|
|
191
|
+
);
|
|
192
|
+
--era-rd-lg: max(
|
|
193
|
+
0px,
|
|
194
|
+
calc(
|
|
195
|
+
var(--era-roundness) + var(--era-roundness-scale) * (var(--era-h-lg) - var(--era-h-xs)) / 2
|
|
196
|
+
)
|
|
197
|
+
);
|
|
198
|
+
|
|
199
|
+
/* Optical padding — so = sp·(1 + d)/2; see OPTICAL PADDING above. */
|
|
200
|
+
--era-so: calc(var(--era-sp) * (1 + var(--era-density)) / 2); /* 8/11.25/15/24 */
|
|
201
|
+
--era-pad-sm: calc(var(--era-so) / 2); /* 4/5.6/7.5/12 */
|
|
202
|
+
--era-pad-md: var(--era-so); /* 8/11.25/15/24 */
|
|
203
|
+
--era-pad-lg: calc(var(--era-so) * 2); /* 16/22.5/30/48 */
|
|
204
|
+
|
|
205
|
+
/* Content padding — alias of pad-lg (formerly 4·sp − 16 ≈ the same curve) */
|
|
206
|
+
--era-content-p: var(--era-pad-lg);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/* -------------------------------------------------- */
|
|
210
|
+
/* Mode inputs — just --era-sp (and static --era-text). */
|
|
211
|
+
/* The derivation above re-runs per element wherever */
|
|
212
|
+
/* --era-sp is overridden. Animation timing is NOT here */
|
|
213
|
+
/* — it's the motion axis (motion.css), orthogonal to */
|
|
214
|
+
/* density, so --era-duration must never live in a */
|
|
215
|
+
/* [data-mode] block (see motion.css for why). */
|
|
216
|
+
/* -------------------------------------------------- */
|
|
217
|
+
/* Roundness scale is the CORNERS axis, orthogonal to density — it must NOT
|
|
218
|
+
* live in the dense block. If it did, any data-mode="dense" subtree (the
|
|
219
|
+
* layout shell, a pinned-dense Pane handle) would re-assert scale=1 and
|
|
220
|
+
* defeat an inherited data-corners="square" from an ancestor. Declared on
|
|
221
|
+
* :root alone, BEFORE [data-corners='square'] below, so square wins on the
|
|
222
|
+
* root while dense subtrees just inherit whatever corners are in force. */
|
|
223
|
+
:root {
|
|
224
|
+
--era-roundness-scale: 1;
|
|
225
|
+
}
|
|
226
|
+
:root,
|
|
227
|
+
[data-mode='dense'] {
|
|
228
|
+
--era-sp: 0.5rem; /* 8px */
|
|
229
|
+
--era-density: 1; /* d = sp / 8px */
|
|
230
|
+
--era-text: 0.875rem; /* 14px — static across modes */
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
[data-mode='balanced'] {
|
|
234
|
+
--era-sp: 0.625rem; /* 10px */
|
|
235
|
+
--era-density: 1.25;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
[data-mode='spacious'] {
|
|
239
|
+
--era-sp: 0.75rem; /* 12px */
|
|
240
|
+
--era-density: 1.5;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
[data-mode='touch'] {
|
|
244
|
+
--era-sp: 1rem; /* 16px — md tier becomes 48px to clear the 44px tap-target floor */
|
|
245
|
+
--era-density: 2;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
/* Touch mode goes full pill. Setting roundness to scale · h-xs / 2 makes the
|
|
249
|
+
existing concentric term (h-T − h-xs)/2 sum to h-T/2 for every tier, so
|
|
250
|
+
rd-xs … rd-lg all equal h-T/2. Needs the descendant selector because
|
|
251
|
+
--era-roundness is declared on * and would otherwise overwrite this on
|
|
252
|
+
children. Square toggle still collapses everything via scale = 0. */
|
|
253
|
+
[data-mode='touch'],
|
|
254
|
+
[data-mode='touch'] * {
|
|
255
|
+
--era-roundness: calc(var(--era-roundness-scale) * var(--era-h-xs) / 2);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/* -------------------------------------------------- */
|
|
259
|
+
/* Corners — orthogonal toggle. Default is rounded; */
|
|
260
|
+
/* square flips scale to 0 so all --era-rd-* collapse */
|
|
261
|
+
/* without touching sizing. */
|
|
262
|
+
/* -------------------------------------------------- */
|
|
263
|
+
[data-corners='square'] {
|
|
264
|
+
--era-roundness-scale: 0;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/* Animate the roundness scale itself — not border-radius. sp changes snap
|
|
268
|
+
instantly (responsive scrub); the corners toggle animates scale 1 ↔ 0,
|
|
269
|
+
which cascades through the rd-* calc chain to every element at 60 fps.
|
|
270
|
+
Timed by the motion axis, so instant motion (or reduced-motion) snaps the
|
|
271
|
+
corners flip too. */
|
|
272
|
+
:root {
|
|
273
|
+
transition: --era-roundness-scale var(--era-duration) var(--era-ease);
|
|
274
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
@import './themes.css';
|
|
2
|
+
@import './density.css';
|
|
3
|
+
/* Motion axis (data-motion) — owns --era-duration + --era-ease. Imported before
|
|
4
|
+
* surfaces so a [data-surface] block can override --era-ease as a delta. */
|
|
5
|
+
@import './motion.css';
|
|
6
|
+
/* Surfaces: base contract first, then each surface's deltas. Order matters —
|
|
7
|
+
* the base block and a surface's block target the same element, and the
|
|
8
|
+
* surface's declarations must win. */
|
|
9
|
+
@import './surfaces/base.css';
|
|
10
|
+
@import './surfaces/glass.css';
|
|
11
|
+
@import './surfaces/bevel.css';
|
|
12
|
+
@import './surfaces/cartoon.css';
|
|
13
|
+
@import './typography.css';
|
|
14
|
+
|
|
15
|
+
/* vidstack base layout + slider/button primitives for the VideoPlayer component.
|
|
16
|
+
* Scoped internally to `:where(media-player)` so these rules don't affect
|
|
17
|
+
* anything outside of a media-player subtree. Design-token theming is applied
|
|
18
|
+
* on the component itself via CSS variables. */
|
|
19
|
+
@import 'vidstack/styles/base.css';
|
|
20
|
+
@import 'vidstack/styles/ui/buttons.css';
|
|
21
|
+
@import 'vidstack/styles/ui/sliders.css';
|
|
22
|
+
@import 'vidstack/styles/ui/buffering.css';
|
|
23
|
+
@import 'vidstack/styles/ui/captions.css';
|
|
24
|
+
@import 'vidstack/styles/ui/live.css';
|
|
25
|
+
@import 'vidstack/styles/ui/menus.css';
|
|
26
|
+
@import 'vidstack/styles/ui/tooltips.css';
|
|
27
|
+
|
|
28
|
+
/* Tell Tailwind to scan this package's components for utility classes */
|
|
29
|
+
@source '../ui';
|
|
30
|
+
|
|
31
|
+
/* Shared interactive-state recipe: quiet focus, disabled affordance.
|
|
32
|
+
* Equivalent to `focus:outline-none disabled:cursor-not-allowed disabled:opacity-50`. */
|
|
33
|
+
@utility era-interactive {
|
|
34
|
+
&:focus {
|
|
35
|
+
outline: none;
|
|
36
|
+
}
|
|
37
|
+
&:disabled {
|
|
38
|
+
cursor: not-allowed;
|
|
39
|
+
opacity: 0.5;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/* Register color tokens as Tailwind theme values for autocomplete and bare utility usage */
|
|
44
|
+
@theme inline {
|
|
45
|
+
/* Density-derived body size: `text-body` replaces text-[length:var(--era-text)] */
|
|
46
|
+
--text-body: var(--era-text);
|
|
47
|
+
/* Surface divider colors: border-divider, bg-divider-faded, … */
|
|
48
|
+
--color-divider: var(--era-divider-color);
|
|
49
|
+
--color-divider-faded: var(--era-divider-faded);
|
|
50
|
+
--color-background: var(--color-1);
|
|
51
|
+
--color-foreground: var(--color-fg);
|
|
52
|
+
--color-1: var(--color-1);
|
|
53
|
+
--color-2: var(--color-2);
|
|
54
|
+
--color-3: var(--color-3);
|
|
55
|
+
--color-4: var(--color-4);
|
|
56
|
+
--color-5: var(--color-5);
|
|
57
|
+
--color-6: var(--color-6);
|
|
58
|
+
--color-7: var(--color-7);
|
|
59
|
+
--color-8: var(--color-8);
|
|
60
|
+
--color-9: var(--color-9);
|
|
61
|
+
--color-10: var(--color-10);
|
|
62
|
+
--color-11: var(--color-11);
|
|
63
|
+
--color-12: var(--color-12);
|
|
64
|
+
--color-border: var(--color-border);
|
|
65
|
+
--color-surface: var(--color-surface);
|
|
66
|
+
--color-hover: var(--color-hover);
|
|
67
|
+
--color-fg: var(--color-fg);
|
|
68
|
+
--color-bright: var(--color-bright);
|
|
69
|
+
--color-muted: var(--color-muted);
|
|
70
|
+
--color-primary: var(--color-primary);
|
|
71
|
+
--color-primary-fg: var(--color-primary-fg);
|
|
72
|
+
--color-primary-hover: var(--color-primary-hover);
|
|
73
|
+
--color-destructive: var(--color-destructive);
|
|
74
|
+
--color-destructive-fg: var(--color-destructive-fg);
|
|
75
|
+
--color-success: var(--color-success);
|
|
76
|
+
--color-success-fg: var(--color-success-fg);
|
|
77
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Era UI — Motion axis (data-motion)
|
|
3
|
+
*
|
|
4
|
+
* Animation timing is its OWN axis, orthogonal to density. Three levels:
|
|
5
|
+
*
|
|
6
|
+
* instant no motion (0s) — snap; also the reduced-motion fallback
|
|
7
|
+
* normal the default — quick, decisive transitions
|
|
8
|
+
* extra longer, with a gentle overshoot for characterful motion
|
|
9
|
+
*
|
|
10
|
+
* The axis owns two tokens every animating component reads:
|
|
11
|
+
*
|
|
12
|
+
* --era-duration transition/animation duration (was coupled to density)
|
|
13
|
+
* --era-ease the timing function
|
|
14
|
+
*
|
|
15
|
+
* ARCHITECTURE (mirrors the corners axis in density.css)
|
|
16
|
+
* ======================================================
|
|
17
|
+
* The default is declared on :root ALONE — never inside a [data-mode] block.
|
|
18
|
+
* If a density block set --era-duration (as it used to), any data-mode subtree
|
|
19
|
+
* (the layout shell, a pinned-dense Pane handle) would re-assert its own
|
|
20
|
+
* duration and defeat an inherited data-motion from an ancestor. Keeping it
|
|
21
|
+
* off the density blocks is what makes the two axes truly independent.
|
|
22
|
+
*
|
|
23
|
+
* Surfaces may override --era-ease (or a component-scoped ease token) as a
|
|
24
|
+
* delta — motion.css is imported BEFORE surfaces/, so a [data-surface] block
|
|
25
|
+
* wins. See surfaces/base.css for the surface-animation recipe.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/* Named easing curves — design constants, referenced by the levels below. */
|
|
29
|
+
:root {
|
|
30
|
+
--era-ease-standard: cubic-bezier(0.2, 0, 0, 1); /* decisive ease-out */
|
|
31
|
+
--era-ease-expressive: cubic-bezier(0.34, 1.35, 0.6, 1); /* gentle overshoot */
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
:root,
|
|
35
|
+
[data-motion='normal'] {
|
|
36
|
+
--era-duration: 150ms;
|
|
37
|
+
--era-ease: var(--era-ease-standard);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
[data-motion='instant'] {
|
|
41
|
+
--era-duration: 0s;
|
|
42
|
+
--era-ease: var(--era-ease-standard);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
[data-motion='extra'] {
|
|
46
|
+
--era-duration: 260ms;
|
|
47
|
+
--era-ease: var(--era-ease-expressive);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* Accessibility: honor the OS setting regardless of the chosen level. */
|
|
51
|
+
@media (prefers-reduced-motion: reduce) {
|
|
52
|
+
:root,
|
|
53
|
+
[data-motion] {
|
|
54
|
+
--era-duration: 0s !important;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Era UI — Surface Contract (base) + flat defaults
|
|
3
|
+
*
|
|
4
|
+
* A surface answers, through tokens alone: what do fills, edges, wells,
|
|
5
|
+
* pressed faces, transient highlights, and menu geometry look like here?
|
|
6
|
+
* Values are hand-authored per surface (design is sculpting); this file
|
|
7
|
+
* centralizes the contract every surface answers against.
|
|
8
|
+
*
|
|
9
|
+
* ARCHITECTURE
|
|
10
|
+
* ============
|
|
11
|
+
*
|
|
12
|
+
* The selector pairs :root (page default = flat) with [data-surface], so
|
|
13
|
+
* every element that DECLARES a surface re-baselines the full contract —
|
|
14
|
+
* a bevel subtree nested inside glass inherits nothing frosted, and a
|
|
15
|
+
* surface file only writes its deltas.
|
|
16
|
+
*
|
|
17
|
+
* Same-element var() defaults: --era-shadow-well, --era-shadow-pressed, and
|
|
18
|
+
* --era-highlight-shadow default to var(--era-shadow). Because a surface's own
|
|
19
|
+
* block and this base block apply to the SAME element, the var() resolves
|
|
20
|
+
* against that surface's shadow — no literal duplication, and a surface
|
|
21
|
+
* only overrides these when its wells/press/shine genuinely differ.
|
|
22
|
+
*
|
|
23
|
+
* Colors use light-dark(<light>, <dark>) instead of duplicated
|
|
24
|
+
* @media/.light blocks. Themes set color-scheme (including on scoped
|
|
25
|
+
* .light/.dark subtrees), which drives resolution per element.
|
|
26
|
+
*
|
|
27
|
+
* TOKEN GLOSSARY
|
|
28
|
+
* ==============
|
|
29
|
+
*
|
|
30
|
+
* --era-surface-bg / -elevated surface fills (resting / raised tier)
|
|
31
|
+
* --era-shadow / --era-shadow-lg resting edge chrome (controls / floating)
|
|
32
|
+
* --era-shadow-well recessed container (inputs, tracks, checks)
|
|
33
|
+
* --era-shadow-pressed a control's :active or latched face
|
|
34
|
+
* --era-press-shift how far a pressed face nudges down-right
|
|
35
|
+
* --era-highlight TRANSIENT feedback fill (hover, focus,
|
|
36
|
+
* keyboard, drag-over). LATCHED states
|
|
37
|
+
* (toggled on, open trigger, active page,
|
|
38
|
+
* pill fills) stay on opaque bg-hover — a
|
|
39
|
+
* held state reads solid, a passing state
|
|
40
|
+
* reads as light.
|
|
41
|
+
* --era-highlight-shadow the material half of transient feedback;
|
|
42
|
+
* paired as hover:shadow-(--era-highlight-shadow)
|
|
43
|
+
* --era-panel-inset menu-panel padding so row highlights stay
|
|
44
|
+
* inside the surface's frame
|
|
45
|
+
* --era-item-rd-scale 0/1: whether menu rows carry a concentric
|
|
46
|
+
* radius (see --era-item-rd below)
|
|
47
|
+
* --era-divider-color / -faded separator lines
|
|
48
|
+
* --era-overlay-bg modal scrim
|
|
49
|
+
* --era-blur / --era-saturate backdrop-filter inputs (glass-blur utility)
|
|
50
|
+
*/
|
|
51
|
+
:root,
|
|
52
|
+
[data-surface] {
|
|
53
|
+
--era-border-color: transparent;
|
|
54
|
+
--era-divider-color: var(--color-border);
|
|
55
|
+
--era-divider-faded: color-mix(in oklch, var(--era-divider-color) 40%, transparent);
|
|
56
|
+
--era-surface-bg: var(--color-2);
|
|
57
|
+
/* Same-element default: tracks --era-surface-bg unless a surface splits
|
|
58
|
+
* the tiers (glass is the only one that does). */
|
|
59
|
+
--era-surface-bg-elevated: var(--era-surface-bg);
|
|
60
|
+
--era-shadow: none;
|
|
61
|
+
--era-shadow-lg: none;
|
|
62
|
+
--era-shadow-well: var(--era-shadow);
|
|
63
|
+
--era-shadow-pressed: var(--era-shadow);
|
|
64
|
+
--era-highlight: var(--color-hover);
|
|
65
|
+
--era-highlight-shadow: var(--era-shadow);
|
|
66
|
+
--era-press-shift: 0px;
|
|
67
|
+
--era-panel-inset: 0px;
|
|
68
|
+
--era-item-rd-scale: 0;
|
|
69
|
+
--era-overlay-bg: color-mix(in oklch, var(--color-1) 60%, transparent);
|
|
70
|
+
--era-blur: 0px;
|
|
71
|
+
--era-saturate: 100%;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/* Concentric radius for row highlights inside an inset panel: the panel
|
|
75
|
+
* radius minus the inset, gated by the surface's scale switch. Declared on
|
|
76
|
+
* the universal selector (like the density ladder) so it re-derives against
|
|
77
|
+
* each element's own --era-rd-md — density subtree overrides stay correct. */
|
|
78
|
+
* {
|
|
79
|
+
--era-item-rd: calc(
|
|
80
|
+
var(--era-item-rd-scale) * max(0px, calc(var(--era-rd-md) - var(--era-panel-inset)))
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/*
|
|
85
|
+
* SURFACE-TAILORED ANIMATION — recipe
|
|
86
|
+
* ===================================
|
|
87
|
+
* Timing belongs to the MOTION axis (motion.css): components read
|
|
88
|
+
* --era-duration and --era-ease, so speed and curve follow data-motion for
|
|
89
|
+
* free — a surface never sets duration.
|
|
90
|
+
*
|
|
91
|
+
* A surface can shape motion two ways:
|
|
92
|
+
* • FEEL — override --era-ease inside the surface's [data-surface] block.
|
|
93
|
+
* motion.css is imported before surfaces, so a surface delta wins;
|
|
94
|
+
* e.g. a surface could soften or sharpen every transition's curve.
|
|
95
|
+
* • STRATEGY — for a genuinely different technique (a glass crossfade vs.
|
|
96
|
+
* a bevel thumb sliding along a track), scope a rule to the surface and
|
|
97
|
+
* target the component's stable part, e.g. in the surface's own file:
|
|
98
|
+
* [data-surface='<name>'] [data-slot='switch-thumb'] { … }
|
|
99
|
+
* Keyframes and surface-only utilities live in that surface's file
|
|
100
|
+
* (precedent: the `glass-blur` @utility in glass.css).
|
|
101
|
+
*
|
|
102
|
+
* Reduced-motion is handled centrally in motion.css — surfaces need not.
|
|
103
|
+
*/
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Bevel — chiseled, tactile material (the Win95 lineage)
|
|
3
|
+
*
|
|
4
|
+
* Every surface is a slab lit from the top-left: raised faces catch light
|
|
5
|
+
* on top/left and cast a hard 1px shade on bottom/right; wells invert the
|
|
6
|
+
* bevel to read as recessed; a pressed control flips its bevel and its
|
|
7
|
+
* face nudges 1px down-right — what makes clicks feel physical. Edge
|
|
8
|
+
* colors are a step of white or black mixed over the surface color, so
|
|
9
|
+
* the chisel keeps each theme's hue; light mode raises the contrast the
|
|
10
|
+
* way the original did on pale gray. Shadows are hard-edged (0 blur):
|
|
11
|
+
* crispness is this material's signature. Elevation is expressed by the
|
|
12
|
+
* chisel, not tone (Win95 menus were the same gray as buttons — and
|
|
13
|
+
* color-3 would collide with --color-hover, hiding row highlights).
|
|
14
|
+
*/
|
|
15
|
+
[data-surface='bevel'] {
|
|
16
|
+
--era-shadow:
|
|
17
|
+
inset 1px 1px 0 0
|
|
18
|
+
light-dark(
|
|
19
|
+
color-mix(in oklch, oklch(1 0 0) 70%, var(--color-2)),
|
|
20
|
+
color-mix(in oklch, oklch(1 0 0) 12%, var(--color-2))
|
|
21
|
+
),
|
|
22
|
+
inset -1px -1px 0 0
|
|
23
|
+
light-dark(
|
|
24
|
+
color-mix(in oklch, oklch(0 0 0) 28%, var(--color-2)),
|
|
25
|
+
color-mix(in oklch, oklch(0 0 0) 40%, var(--color-2))
|
|
26
|
+
);
|
|
27
|
+
/* Floating slab: double chisel + hard offset drop — period-correct
|
|
28
|
+
* separation without soft blur. */
|
|
29
|
+
--era-shadow-lg:
|
|
30
|
+
inset 1px 1px 0 0
|
|
31
|
+
light-dark(
|
|
32
|
+
color-mix(in oklch, oklch(1 0 0) 80%, var(--color-2)),
|
|
33
|
+
color-mix(in oklch, oklch(1 0 0) 14%, var(--color-2))
|
|
34
|
+
),
|
|
35
|
+
inset -1px -1px 0 0
|
|
36
|
+
light-dark(
|
|
37
|
+
color-mix(in oklch, oklch(0 0 0) 34%, var(--color-2)),
|
|
38
|
+
color-mix(in oklch, oklch(0 0 0) 45%, var(--color-2))
|
|
39
|
+
),
|
|
40
|
+
inset 2px 2px 0 0
|
|
41
|
+
light-dark(
|
|
42
|
+
color-mix(in oklch, oklch(1 0 0) 40%, var(--color-2)),
|
|
43
|
+
color-mix(in oklch, oklch(1 0 0) 6%, var(--color-2))
|
|
44
|
+
),
|
|
45
|
+
inset -2px -2px 0 0
|
|
46
|
+
light-dark(
|
|
47
|
+
color-mix(in oklch, oklch(0 0 0) 16%, var(--color-2)),
|
|
48
|
+
color-mix(in oklch, oklch(0 0 0) 22%, var(--color-2))
|
|
49
|
+
),
|
|
50
|
+
4px 4px 0 0 light-dark(oklch(0 0 0 / 0.18), oklch(0 0 0 / 0.25));
|
|
51
|
+
/* Recessed well: the raised bevel inverted, highlight dimmed so the
|
|
52
|
+
* bottom rim reads as catching less light than a raised top edge. */
|
|
53
|
+
--era-shadow-well:
|
|
54
|
+
inset 1px 1px 0 0
|
|
55
|
+
light-dark(
|
|
56
|
+
color-mix(in oklch, oklch(0 0 0) 28%, var(--color-2)),
|
|
57
|
+
color-mix(in oklch, oklch(0 0 0) 40%, var(--color-2))
|
|
58
|
+
),
|
|
59
|
+
inset -1px -1px 0 0
|
|
60
|
+
light-dark(
|
|
61
|
+
color-mix(in oklch, oklch(1 0 0) 55%, var(--color-2)),
|
|
62
|
+
color-mix(in oklch, oklch(1 0 0) 8%, var(--color-2))
|
|
63
|
+
);
|
|
64
|
+
--era-shadow-pressed: var(--era-shadow-well);
|
|
65
|
+
--era-press-shift: 1px;
|
|
66
|
+
/* Floating panels wear a 2-layer chisel frame; row highlights inset past
|
|
67
|
+
* it with a concentric radius (square under data-corners="square", as
|
|
68
|
+
* the era had it — Win95 drew its selection bar inside the border). */
|
|
69
|
+
--era-panel-inset: 2px;
|
|
70
|
+
--era-item-rd-scale: 1;
|
|
71
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Cartoon — inked outline, sticker shadow
|
|
3
|
+
*
|
|
4
|
+
* Every surface is a drawn shape: a solid ink outline (ring shadow, so it
|
|
5
|
+
* follows border-radius) and a hard offset shadow like a sticker lifted
|
|
6
|
+
* off the page. Wells are outlined boxes with a penciled inner shade —
|
|
7
|
+
* drawn, not carved. A pressed control loses its offset shadow and shifts
|
|
8
|
+
* onto the spot where the shadow was: the sticker gets pushed flat.
|
|
9
|
+
*
|
|
10
|
+
* All ink is --color-bright, which flips white-on-dark / black-on-light
|
|
11
|
+
* with the theme — no light-dark() calls needed anywhere in this surface.
|
|
12
|
+
*/
|
|
13
|
+
[data-surface='cartoon'] {
|
|
14
|
+
--era-divider-color: color-mix(in oklch, var(--color-bright) 55%, transparent);
|
|
15
|
+
|
|
16
|
+
--era-shadow: 0 0 0 1.5px var(--color-bright), 2px 2px 0 0 var(--color-bright);
|
|
17
|
+
--era-shadow-lg: 0 0 0 2px var(--color-bright), 5px 5px 0 0 var(--color-bright);
|
|
18
|
+
--era-shadow-well:
|
|
19
|
+
0 0 0 1.5px var(--color-bright),
|
|
20
|
+
inset 2px 2px 0 0 color-mix(in oklch, var(--color-bright) 18%, var(--color-2));
|
|
21
|
+
/* Offset shadow vanishes; --era-press-shift moves the face exactly onto
|
|
22
|
+
* where the shadow sat. */
|
|
23
|
+
--era-shadow-pressed: 0 0 0 1.5px var(--color-bright);
|
|
24
|
+
--era-press-shift: 2px;
|
|
25
|
+
--era-panel-inset: 2px;
|
|
26
|
+
--era-item-rd-scale: 1;
|
|
27
|
+
}
|