@noxlovette/material 0.5.1 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/material-claude-skill.js +31 -0
- package/claude-skill/material-design/SKILL.md +68 -0
- package/claude-skill/material-design/references/accessibility-checklist.md +29 -0
- package/claude-skill/material-design/references/component-patterns.md +55 -0
- package/claude-skill/material-design/references/motion-guide.md +163 -0
- package/claude-skill/material-design/references/tokens-and-styles.md +68 -0
- package/dist/animation/Shapes.stories.svelte +10 -6
- package/dist/animation/TransitionPatterns.stories.svelte +30 -20
- package/dist/animation/containerTransform.d.ts +4 -2
- package/dist/animation/containerTransform.js +4 -2
- package/dist/animation/enterExit.js +5 -2
- package/dist/animation/skeleton.d.ts +1 -1
- package/dist/animation/skeleton.js +1 -1
- package/dist/components/badge/Badge.mdx +70 -0
- package/dist/components/badge/Badge.stories.svelte +38 -20
- package/dist/components/badge/Badge.svelte +12 -5
- package/dist/components/badge/theme.d.ts +30 -7
- package/dist/components/badge/theme.js +25 -5
- package/dist/components/badge/types.d.ts +18 -4
- package/dist/components/buttons/Button.mdx +85 -0
- package/dist/components/buttons/Button.stories.svelte +62 -27
- package/dist/components/buttons/Button.svelte +29 -25
- package/dist/components/buttons/Button.svelte.d.ts +11 -9
- package/dist/components/buttons/ButtonIcon.mdx +52 -0
- package/dist/components/buttons/ButtonIcon.stories.svelte +72 -48
- package/dist/components/buttons/ButtonIcon.svelte +58 -36
- package/dist/components/buttons/ButtonIcon.svelte.d.ts +9 -7
- package/dist/components/buttons/FAB.mdx +84 -0
- package/dist/components/buttons/FAB.stories.svelte +103 -24
- package/dist/components/buttons/FAB.stories.svelte.d.ts +2 -17
- package/dist/components/buttons/FAB.svelte +353 -29
- package/dist/components/buttons/FAB.svelte.d.ts +11 -6
- package/dist/components/buttons/FABMenu.svelte +27 -8
- package/dist/components/buttons/FABMenu.svelte.d.ts +7 -3
- package/dist/components/buttons/FABMenuItem.svelte +20 -16
- package/dist/components/buttons/FABMenuItem.svelte.d.ts +3 -3
- package/dist/components/buttons/Toggle.stories.svelte +31 -23
- package/dist/components/buttons/Toggle.stories.svelte.d.ts +2 -17
- package/dist/components/buttons/Toggle.svelte +28 -25
- package/dist/components/buttons/Toggle.svelte.d.ts +5 -5
- package/dist/components/buttons/button-group/ButtonGroup.mdx +39 -0
- package/dist/components/buttons/button-group/ButtonGroup.stories.svelte +62 -43
- package/dist/components/buttons/button-group/ButtonGroup.stories.svelte.d.ts +2 -17
- package/dist/components/buttons/button-group/ButtonGroup.svelte +102 -8
- package/dist/components/buttons/button-group/ButtonGroup.svelte.d.ts +6 -7
- package/dist/components/buttons/button-group/theme.d.ts +46 -16
- package/dist/components/buttons/button-group/theme.js +14 -9
- package/dist/components/buttons/button-group/types.d.ts +13 -7
- package/dist/components/buttons/connected/ConnectedButtonGroup.mdx +43 -0
- package/dist/components/buttons/connected/ConnectedButtonGroup.stories.svelte +56 -74
- package/dist/components/buttons/connected/ConnectedButtonGroup.stories.svelte.d.ts +2 -17
- package/dist/components/buttons/connected/ConnectedButtonGroup.svelte +16 -4
- package/dist/components/buttons/connected/ConnectedButtonGroup.svelte.d.ts +4 -4
- package/dist/components/buttons/connected/ConnectedButtonGroupItem.svelte +35 -8
- package/dist/components/buttons/connected/ConnectedButtonGroupItem.svelte.d.ts +2 -3
- package/dist/components/buttons/connected/theme.d.ts +34 -19
- package/dist/components/buttons/connected/theme.js +33 -10
- package/dist/components/buttons/connected/types.d.ts +36 -9
- package/dist/components/buttons/shapeMorph.d.ts +26 -0
- package/dist/components/buttons/shapeMorph.js +142 -0
- package/dist/components/buttons/split-button/SplitButton.mdx +48 -0
- package/dist/components/buttons/split-button/SplitButton.stories.svelte +9 -14
- package/dist/components/buttons/split-button/SplitButton.svelte +66 -49
- package/dist/components/buttons/split-button/SplitButton.svelte.d.ts +6 -11
- package/dist/components/buttons/split-button/theme.d.ts +111 -18
- package/dist/components/buttons/split-button/theme.js +75 -17
- package/dist/components/buttons/split-button/types.d.ts +24 -18
- package/dist/components/buttons/theme.d.ts +423 -231
- package/dist/components/buttons/theme.js +287 -381
- package/dist/components/buttons/types.d.ts +130 -125
- package/dist/components/cards/Card.mdx +44 -0
- package/dist/components/cards/Card.stories.svelte +11 -11
- package/dist/components/cards/theme.js +6 -6
- package/dist/components/chips/Chip.mdx +68 -0
- package/dist/components/chips/Chip.stories.svelte +4 -4
- package/dist/components/chips/theme.d.ts +1 -1
- package/dist/components/chips/theme.js +4 -4
- package/dist/components/containers/action-rail/ActionRail.stories.svelte +1 -0
- package/dist/components/containers/action-rail/theme.d.ts +1 -1
- package/dist/components/containers/action-rail/theme.js +2 -2
- package/dist/components/containers/app/theme.d.ts +1 -1
- package/dist/components/containers/app/theme.js +1 -1
- package/dist/components/containers/bottom-sheet/BottomSheet.mdx +64 -0
- package/dist/components/containers/bottom-sheet/BottomSheet.stories.svelte +108 -12
- package/dist/components/containers/bottom-sheet/BottomSheet.svelte +179 -109
- package/dist/components/containers/bottom-sheet/BottomSheet.svelte.d.ts +10 -5
- package/dist/components/containers/bottom-sheet/index.d.ts +1 -0
- package/dist/components/containers/bottom-sheet/index.js +1 -0
- package/dist/components/containers/bottom-sheet/theme.d.ts +45 -0
- package/dist/components/containers/bottom-sheet/theme.js +42 -0
- package/dist/components/containers/bottom-sheet/types.d.ts +37 -5
- package/dist/components/containers/carousel/Carousel.mdx +80 -0
- package/dist/components/containers/carousel/Carousel.stories.svelte +131 -0
- package/dist/components/containers/carousel/Carousel.stories.svelte.d.ts +4 -0
- package/dist/components/containers/carousel/Carousel.svelte +194 -0
- package/dist/components/containers/carousel/Carousel.svelte.d.ts +25 -0
- package/dist/components/containers/carousel/index.d.ts +3 -0
- package/dist/components/containers/{stack → carousel}/index.js +1 -2
- package/dist/components/containers/carousel/keylines.d.ts +32 -0
- package/dist/components/containers/carousel/keylines.js +88 -0
- package/dist/components/containers/carousel/theme.d.ts +162 -0
- package/dist/components/containers/carousel/theme.js +67 -0
- package/dist/components/containers/carousel/types.d.ts +52 -0
- package/dist/components/containers/context-menu/ContextMenu.stories.svelte +1 -0
- package/dist/components/containers/context-menu/ContextMenu.svelte +2 -2
- package/dist/components/containers/context-menu/ContextMenu.svelte.d.ts +1 -1
- package/dist/components/containers/context-menu/theme.d.ts +1 -1
- package/dist/components/containers/context-menu/theme.js +11 -11
- package/dist/components/containers/dialogue/Dialogue.mdx +65 -0
- package/dist/components/containers/dialogue/Dialogue.stories.svelte +4 -4
- package/dist/components/containers/dialogue/Dialogue.svelte +2 -2
- package/dist/components/containers/dialogue/theme.d.ts +1 -1
- package/dist/components/containers/dialogue/theme.js +4 -4
- package/dist/components/containers/dialogue/types.d.ts +1 -1
- package/dist/components/containers/divider/Divider.stories.svelte +2 -1
- package/dist/components/containers/divider/Divider.svelte +2 -2
- package/dist/components/containers/divider/theme.d.ts +7 -7
- package/dist/components/containers/divider/theme.js +3 -3
- package/dist/components/containers/index.d.ts +1 -1
- package/dist/components/containers/index.js +1 -1
- package/dist/components/containers/link-preview/theme.d.ts +1 -1
- package/dist/components/containers/link-preview/theme.js +3 -3
- package/dist/components/containers/list/List.svelte +18 -0
- package/dist/components/containers/list/List.svelte.d.ts +4 -0
- package/dist/components/containers/list/ListItem.mdx +100 -0
- package/dist/components/containers/list/ListItem.stories.svelte +177 -42
- package/dist/components/containers/list/ListItem.stories.svelte.d.ts +2 -17
- package/dist/components/containers/list/ListItem.svelte +92 -37
- package/dist/components/containers/list/ListItem.svelte.d.ts +1 -1
- package/dist/components/containers/list/context.d.ts +6 -0
- package/dist/components/containers/list/context.js +4 -0
- package/dist/components/containers/list/index.d.ts +1 -0
- package/dist/components/containers/list/index.js +1 -0
- package/dist/components/containers/list/theme.d.ts +487 -12
- package/dist/components/containers/list/theme.js +141 -14
- package/dist/components/containers/list/types.d.ts +39 -5
- package/dist/components/containers/menu/Menu.mdx +52 -0
- package/dist/components/containers/menu/Menu.stories.svelte +14 -14
- package/dist/components/containers/menu/Menu.svelte +2 -2
- package/dist/components/containers/menu/MenuGroup.svelte +1 -1
- package/dist/components/containers/menu/MenuGroup.svelte.d.ts +1 -1
- package/dist/components/containers/menu/MenuSub.svelte +1 -1
- package/dist/components/containers/menu/menu-item/MenuItem.svelte +1 -1
- package/dist/components/containers/menu/theme.d.ts +1 -1
- package/dist/components/containers/menu/theme.js +9 -9
- package/dist/components/containers/pane/DraggablePane.stories.svelte +4 -3
- package/dist/components/containers/pane/DraggablePane.svelte +2 -2
- package/dist/components/containers/pane/Pane.stories.svelte +11 -10
- package/dist/components/containers/pane/Pane.svelte +24 -2
- package/dist/components/containers/pane/PaneGrid.stories.svelte +19 -18
- package/dist/components/containers/pane/PaneGrid.svelte +3 -2
- package/dist/components/containers/pane/PaneGrid.svelte.d.ts +2 -1
- package/dist/components/containers/pane/PaneHandle.svelte +48 -2
- package/dist/components/containers/pane/PaneHandle.svelte.d.ts +4 -0
- package/dist/components/containers/pane/resizeStore.svelte.d.ts +10 -1
- package/dist/components/containers/pane/resizeStore.svelte.js +13 -2
- package/dist/components/containers/pane/theme.d.ts +1 -1
- package/dist/components/containers/pane/theme.js +131 -47
- package/dist/components/containers/pane/types.d.ts +3 -2
- package/dist/components/containers/popover/Popover.mdx +45 -0
- package/dist/components/containers/popover/Popover.stories.svelte +1 -1
- package/dist/components/containers/popover/Popover.svelte +1 -1
- package/dist/components/containers/popover/theme.d.ts +1 -1
- package/dist/components/containers/popover/theme.js +4 -4
- package/dist/components/containers/scroll-area/theme.js +3 -3
- package/dist/components/containers/side-sheet/SideSheet.mdx +71 -0
- package/dist/components/containers/side-sheet/SideSheet.stories.svelte +113 -17
- package/dist/components/containers/side-sheet/SideSheet.svelte +113 -66
- package/dist/components/containers/side-sheet/SideSheet.svelte.d.ts +8 -7
- package/dist/components/containers/side-sheet/index.d.ts +1 -0
- package/dist/components/containers/side-sheet/index.js +1 -0
- package/dist/components/containers/side-sheet/theme.d.ts +108 -0
- package/dist/components/containers/side-sheet/theme.js +72 -0
- package/dist/components/containers/side-sheet/types.d.ts +35 -7
- package/dist/components/date/DateField.stories.svelte +4 -3
- package/dist/components/date/DateField.svelte +11 -2
- package/dist/components/date/DateRangeField.stories.svelte +4 -3
- package/dist/components/date/DateRangeField.svelte +12 -3
- package/dist/components/date/theme.d.ts +8 -8
- package/dist/components/date/theme.js +32 -32
- package/dist/components/forms/checkbox/Checkbox.mdx +35 -0
- package/dist/components/forms/checkbox/Checkbox.stories.svelte +2 -2
- package/dist/components/forms/checkbox/Checkbox.svelte +1 -1
- package/dist/components/forms/checkbox/theme.d.ts +1 -1
- package/dist/components/forms/checkbox/theme.js +4 -4
- package/dist/components/forms/command/Command.stories.svelte +1 -0
- package/dist/components/forms/command/theme.d.ts +1 -1
- package/dist/components/forms/command/theme.js +10 -10
- package/dist/components/forms/pin/theme.d.ts +1 -1
- package/dist/components/forms/pin/theme.js +5 -5
- package/dist/components/forms/radio-group/RadioGroup.svelte +1 -1
- package/dist/components/forms/radio-group/theme.d.ts +1 -1
- package/dist/components/forms/radio-group/theme.js +6 -6
- package/dist/components/forms/search/Search.mdx +38 -0
- package/dist/components/forms/search/Search.stories.svelte +19 -9
- package/dist/components/forms/search/Search.svelte +40 -17
- package/dist/components/forms/search/Search.svelte.d.ts +2 -2
- package/dist/components/forms/search/theme.d.ts +46 -13
- package/dist/components/forms/search/theme.js +14 -9
- package/dist/components/forms/search/types.d.ts +18 -12
- package/dist/components/forms/select/Select.mdx +53 -0
- package/dist/components/forms/select/Select.stories.svelte +4 -4
- package/dist/components/forms/select/Select.svelte +12 -4
- package/dist/components/forms/select/SelectItem.svelte +1 -1
- package/dist/components/forms/select/theme.d.ts +1 -1
- package/dist/components/forms/select/theme.js +14 -14
- package/dist/components/forms/slider/Slider.mdx +85 -0
- package/dist/components/forms/slider/Slider.stories.svelte +7 -7
- package/dist/components/forms/slider/Slider.svelte +46 -28
- package/dist/components/forms/slider/theme.d.ts +15 -1
- package/dist/components/forms/slider/theme.js +29 -18
- package/dist/components/forms/slider/types.d.ts +3 -2
- package/dist/components/forms/switch/Switch.mdx +38 -0
- package/dist/components/forms/switch/Switch.stories.svelte +3 -3
- package/dist/components/forms/switch/theme.d.ts +1 -1
- package/dist/components/forms/switch/theme.js +7 -7
- package/dist/components/forms/textfield/Textfield.mdx +53 -0
- package/dist/components/forms/textfield/Textfield.stories.svelte +6 -6
- package/dist/components/forms/textfield/Textfield.svelte +1 -0
- package/dist/components/forms/textfield/theme.d.ts +1 -1
- package/dist/components/forms/textfield/theme.js +20 -20
- package/dist/components/forms/toggle-group/theme.d.ts +1 -1
- package/dist/components/forms/toggle-group/theme.js +3 -3
- package/dist/components/forms/tooltip/Tooltip.stories.svelte +1 -0
- package/dist/components/forms/tooltip/theme.d.ts +1 -1
- package/dist/components/forms/tooltip/theme.js +4 -4
- package/dist/components/misc/Avatar.stories.svelte +5 -4
- package/dist/components/misc/ThemeSettings.svelte +9 -9
- package/dist/components/misc/ThemeSwitcher.svelte +3 -3
- package/dist/components/misc/theme.js +5 -5
- package/dist/components/nav/appbar/AppBar.mdx +71 -0
- package/dist/components/nav/appbar/AppBar.stories.svelte +93 -3
- package/dist/components/nav/appbar/AppBar.stories.svelte.d.ts +2 -17
- package/dist/components/nav/appbar/AppBar.svelte +90 -37
- package/dist/components/nav/appbar/AppBar.svelte.d.ts +9 -2
- package/dist/components/nav/appbar/theme.d.ts +86 -19
- package/dist/components/nav/appbar/theme.js +160 -24
- package/dist/components/nav/appbar/types.d.ts +46 -9
- package/dist/components/nav/breadcrumb/Breadcrumb.stories.svelte +1 -0
- package/dist/components/nav/breadcrumb/theme.d.ts +1 -1
- package/dist/components/nav/breadcrumb/theme.js +6 -6
- package/dist/components/nav/navbar/Navbar.mdx +38 -0
- package/dist/components/nav/navbar/Navbar.svelte +1 -1
- package/dist/components/nav/navbar/NavbarItem.svelte +12 -9
- package/dist/components/nav/navbar/theme.d.ts +3 -3
- package/dist/components/nav/navbar/theme.js +7 -7
- package/dist/components/nav/rail/Rail.mdx +73 -0
- package/dist/components/nav/rail/Rail.stories.svelte +3 -7
- package/dist/components/nav/rail/Rail.svelte +5 -2
- package/dist/components/nav/rail/RailItem.svelte +12 -9
- package/dist/components/nav/rail/theme.d.ts +1 -1
- package/dist/components/nav/rail/theme.js +14 -14
- package/dist/components/nav/rail/types.d.ts +8 -1
- package/dist/components/nav/tabs/Tabs.mdx +62 -0
- package/dist/components/nav/tabs/Tabs.stories.svelte +1 -1
- package/dist/components/nav/tabs/theme.d.ts +1 -1
- package/dist/components/nav/tabs/theme.js +5 -5
- package/dist/components/pill/Pill.mdx +32 -0
- package/dist/components/pill/Pill.stories.svelte +1 -1
- package/dist/components/pill/theme.d.ts +2 -2
- package/dist/components/pill/theme.js +2 -2
- package/dist/components/progress/LinearProgress.svelte +2 -2
- package/dist/components/progress/Progress.mdx +50 -0
- package/dist/components/progress/Progress.stories.svelte +6 -6
- package/dist/components/snackbar/Snackbar.mdx +52 -0
- package/dist/components/snackbar/Snackbar.stories.svelte +5 -5
- package/dist/components/snackbar/Snackbar.svelte +1 -1
- package/dist/components/snackbar/theme.d.ts +4 -4
- package/dist/components/snackbar/theme.js +5 -5
- package/dist/components/table/Table.stories.svelte +1 -0
- package/dist/components/table/TableHeader.svelte +1 -1
- package/dist/components/table/theme.d.ts +1 -1
- package/dist/components/table/theme.js +4 -4
- package/dist/components/time/TimeField.stories.svelte +3 -2
- package/dist/components/time/TimeField.svelte +2 -2
- package/dist/components/time/TimepickerInput.svelte +1 -1
- package/dist/components/time/theme.d.ts +1 -1
- package/dist/components/time/theme.js +6 -6
- package/dist/components/toolbar/Toolbar.stories.svelte +1 -0
- package/dist/components/toolbar/Toolbar.svelte +1 -1
- package/dist/components/toolbar/Toolbar.svelte.d.ts +1 -1
- package/dist/components/toolbar/theme.d.ts +1 -1
- package/dist/components/toolbar/theme.js +15 -15
- package/dist/components/typography/Typography.mdx +67 -0
- package/dist/components/typography/body/Body.stories.svelte +2 -1
- package/dist/components/typography/body/theme.d.ts +16 -13
- package/dist/components/typography/body/theme.js +20 -5
- package/dist/components/typography/body/types.d.ts +2 -1
- package/dist/components/typography/display/Display.stories.svelte +2 -1
- package/dist/components/typography/display/theme.d.ts +16 -13
- package/dist/components/typography/display/theme.js +20 -5
- package/dist/components/typography/display/types.d.ts +2 -1
- package/dist/components/typography/headline/Headline.stories.svelte +2 -1
- package/dist/components/typography/headline/theme.d.ts +16 -13
- package/dist/components/typography/headline/theme.js +20 -5
- package/dist/components/typography/headline/types.d.ts +2 -1
- package/dist/components/typography/kbd/Kbd.stories.svelte +2 -1
- package/dist/components/typography/kbd/theme.d.ts +5 -5
- package/dist/components/typography/kbd/theme.js +3 -3
- package/dist/components/typography/label/Label.stories.svelte +2 -1
- package/dist/components/typography/label/theme.d.ts +15 -12
- package/dist/components/typography/label/theme.js +20 -5
- package/dist/components/typography/label/types.d.ts +2 -1
- package/dist/components/typography/title/Title.stories.svelte +2 -1
- package/dist/components/typography/title/theme.d.ts +16 -13
- package/dist/components/typography/title/theme.js +20 -5
- package/dist/components/typography/title/types.d.ts +2 -1
- package/dist/index.css +2 -0
- package/dist/styles/component.css +78 -175
- package/dist/styles/elevation.css +9 -0
- package/dist/styles/layers.css +33 -0
- package/dist/styles/spacing.css +29 -0
- package/dist/styles/typescale.css +635 -20
- package/dist/utils/Layer.svelte +1 -1
- package/dist/utils/icon/Icon.svelte +8 -6
- package/dist/utils/icon/theme.d.ts +1 -1
- package/dist/utils/icon/theme.js +1 -1
- package/dist/utils/tv.d.ts +6 -0
- package/dist/utils/tv.js +12 -0
- package/package.json +19 -15
- package/dist/components/containers/stack/HStack.svelte +0 -23
- package/dist/components/containers/stack/HStack.svelte.d.ts +0 -5
- package/dist/components/containers/stack/VStack.svelte +0 -23
- package/dist/components/containers/stack/VStack.svelte.d.ts +0 -5
- package/dist/components/containers/stack/index.d.ts +0 -4
- package/dist/components/containers/stack/theme.d.ts +0 -66
- package/dist/components/containers/stack/theme.js +0 -26
- package/dist/components/containers/stack/types.d.ts +0 -12
- /package/dist/components/containers/{stack → carousel}/types.js +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { tv } from '
|
|
1
|
+
import { tv } from '../../utils/tv.js';
|
|
2
2
|
export const timepicker = tv({
|
|
3
3
|
slots: {
|
|
4
|
-
base: 'bg-md-sys-color-surface-container-high shadow-elevation-3 rounded-xl max-w-fit p-
|
|
5
|
-
clockDiv: 'flex gap-
|
|
6
|
-
buttonDiv: 'items-center flex justify-between -mb-
|
|
4
|
+
base: 'bg-md-sys-color-surface-container-high shadow-elevation-3 rounded-xl max-w-fit p-spacing-300 group relative',
|
|
5
|
+
clockDiv: 'flex gap-spacing-100 mb-spacing-300 mt-spacing-250',
|
|
6
|
+
buttonDiv: 'items-center flex justify-between -mb-spacing-200 -mx-spacing-250',
|
|
7
7
|
headline: 'text-md-sys-color-on-surface-variant md-sys-typescale-label-medium',
|
|
8
|
-
inputWrapper: 'space-y-
|
|
8
|
+
inputWrapper: 'space-y-spacing-100',
|
|
9
9
|
fieldSeparator: 'text-md-sys-color-on-surface md-sys-typescale-display-large ',
|
|
10
|
-
timeInput: 'bg-md-sys-color-surface-container-highest rounded-sm outline outline-md-sys-color-outline w-24 h-
|
|
10
|
+
timeInput: 'bg-md-sys-color-surface-container-highest rounded-sm outline outline-md-sys-color-outline w-24 h-spacing-900 md-sys-typescale-display-medium text-md-sys-color-on-surface hover:text-md-sys-color-on-surface state-layer before:bg-md-sys-color-on-surface/8 md-sys-state-focus-indicator inline-flex items-center justify-center cursor-text focus:text-md-sys-color-on-primary-container focus:outline-md-sys-color-primary focus:bg-md-sys-color-primary-container relative',
|
|
11
11
|
timeInputSupportingText: 'text-md-sys-color-on-surface-variant md-sys-typescale-body-small'
|
|
12
12
|
}
|
|
13
13
|
});
|
|
@@ -4,7 +4,7 @@ Toolbar provides a horizontal (or vertical) container for grouped actions.
|
|
|
4
4
|
|
|
5
5
|
- variant="floating" — elevated, rounded, inline (default)
|
|
6
6
|
- variant="docked" — full-width, flat, anchored to top/bottom
|
|
7
|
-
- ghost — renders a h-
|
|
7
|
+
- ghost — renders a h-spacing-800 spacer after the toolbar to prevent content scroll-under
|
|
8
8
|
- color="standard" — surface-container background
|
|
9
9
|
- color="vibrant" — secondary-container background with inverted toggle selection
|
|
10
10
|
- fab snippet — renders a FAB at the trailing edge (canonical for docked bottom bars)
|
|
@@ -5,7 +5,7 @@ import type { ToolbarProps } from './types.js';
|
|
|
5
5
|
*
|
|
6
6
|
* - variant="floating" — elevated, rounded, inline (default)
|
|
7
7
|
* - variant="docked" — full-width, flat, anchored to top/bottom
|
|
8
|
-
* - ghost — renders a h-
|
|
8
|
+
* - ghost — renders a h-spacing-800 spacer after the toolbar to prevent content scroll-under
|
|
9
9
|
* - color="standard" — surface-container background
|
|
10
10
|
* - color="vibrant" — secondary-container background with inverted toggle selection
|
|
11
11
|
* - fab snippet — renders a FAB at the trailing edge (canonical for docked bottom bars)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type VariantProps } from '
|
|
1
|
+
import { type VariantProps } from '../../utils/tv.js';
|
|
2
2
|
export type ToolbarVariants = VariantProps<typeof toolbar>;
|
|
3
3
|
export type ToolbarButtonVariants = VariantProps<typeof toolbarButton>;
|
|
4
4
|
export type ToolbarGroupItemVariants = VariantProps<typeof toolbarGroupItem>;
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { tv } from '
|
|
1
|
+
import { tv } from '../../utils/tv.js';
|
|
2
2
|
export const toolbar = tv({
|
|
3
3
|
slots: {
|
|
4
4
|
// Layout/position only — no paint. Holds one implicit `segment` by default, or,
|
|
5
5
|
// with `sections`, whatever ToolbarSection/ToolbarSpacer children the consumer supplies.
|
|
6
|
-
root: 'flex items-center gap-
|
|
6
|
+
root: 'flex items-center gap-spacing-100',
|
|
7
7
|
// The pill/bar surface itself — bg, shape, elevation, chrome padding. Toolbar renders
|
|
8
8
|
// exactly one of these around `children` by default; ToolbarSection renders one per
|
|
9
9
|
// cluster when `sections` splits the toolbar into independently painted groups.
|
|
10
|
-
segment: 'inline-flex items-center gap-
|
|
11
|
-
group: 'inline-flex items-center gap-
|
|
10
|
+
segment: 'inline-flex items-center gap-spacing-50 p-spacing-100 justify-between',
|
|
11
|
+
group: 'inline-flex items-center gap-spacing-50',
|
|
12
12
|
divider: 'shrink-0 bg-md-sys-color-outline-variant',
|
|
13
13
|
// A marker gap between ToolbarSections under `sections` — same size as `root`'s own
|
|
14
|
-
// `gap-
|
|
14
|
+
// `gap-spacing-100`, it does not grow, so it doesn't push sections apart to opposite edges.
|
|
15
15
|
spacer: '',
|
|
16
|
-
fabSlot: 'ml-auto flex items-center ps-
|
|
17
|
-
ghost: 'h-
|
|
16
|
+
fabSlot: 'ml-auto flex items-center ps-spacing-100',
|
|
17
|
+
ghost: 'h-spacing-800 w-full shrink-0 pointer-events-none'
|
|
18
18
|
},
|
|
19
19
|
variants: {
|
|
20
20
|
orientation: {
|
|
@@ -22,18 +22,18 @@ export const toolbar = tv({
|
|
|
22
22
|
root: 'flex-row',
|
|
23
23
|
segment: 'flex-row h-13',
|
|
24
24
|
group: 'flex-row',
|
|
25
|
-
divider: 'mx-
|
|
25
|
+
divider: 'mx-spacing-50 h-spacing-300 w-px'
|
|
26
26
|
},
|
|
27
27
|
vertical: {
|
|
28
28
|
root: 'flex-col h-max',
|
|
29
|
-
segment: 'flex-col w-
|
|
29
|
+
segment: 'flex-col w-spacing-700',
|
|
30
30
|
group: 'flex-col',
|
|
31
|
-
divider: 'my-
|
|
31
|
+
divider: 'my-spacing-50 h-px w-spacing-300'
|
|
32
32
|
}
|
|
33
33
|
},
|
|
34
34
|
variant: {
|
|
35
35
|
floating: { root: 'inline-flex', segment: 'rounded-full shadow-elevation-1' },
|
|
36
|
-
docked: { root: 'fixed left-0 z-
|
|
36
|
+
docked: { root: 'fixed left-spacing-0 z-layer-bar w-full', segment: 'w-full rounded-none' }
|
|
37
37
|
},
|
|
38
38
|
color: {
|
|
39
39
|
standard: { segment: 'bg-md-sys-color-surface-container' },
|
|
@@ -48,8 +48,8 @@ export const toolbar = tv({
|
|
|
48
48
|
});
|
|
49
49
|
export const toolbarButton = tv({
|
|
50
50
|
slots: {
|
|
51
|
-
base: 'layer-container state-layer before:rounded-full relative inline-flex size-
|
|
52
|
-
icon: 'size-
|
|
51
|
+
base: 'layer-container state-layer before:rounded-full relative inline-flex size-spacing-500 items-center justify-center rounded-full outline-none transition-colors md-sys-motion-fast-effects disabled:cursor-not-allowed disabled:opacity-38',
|
|
52
|
+
icon: 'size-spacing-250 text-[20px]'
|
|
53
53
|
},
|
|
54
54
|
variants: {
|
|
55
55
|
color: {
|
|
@@ -61,8 +61,8 @@ export const toolbarButton = tv({
|
|
|
61
61
|
});
|
|
62
62
|
export const toolbarGroupItem = tv({
|
|
63
63
|
slots: {
|
|
64
|
-
base: 'layer-container state-layer before:rounded-full relative inline-flex size-
|
|
65
|
-
icon: 'size-
|
|
64
|
+
base: 'layer-container state-layer before:rounded-full relative inline-flex size-spacing-500 items-center justify-center rounded-full outline-none transition-colors md-sys-motion-fast-effects disabled:cursor-not-allowed disabled:opacity-38',
|
|
65
|
+
icon: 'size-spacing-250 text-[20px]'
|
|
66
66
|
},
|
|
67
67
|
variants: {
|
|
68
68
|
color: {
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Meta, Canvas } from '@storybook/addon-docs/blocks';
|
|
2
|
+
import * as DisplayStories from './display/Display.stories.svelte';
|
|
3
|
+
import * as HeadlineStories from './headline/Headline.stories.svelte';
|
|
4
|
+
import * as TitleStories from './title/Title.stories.svelte';
|
|
5
|
+
import * as BodyStories from './body/Body.stories.svelte';
|
|
6
|
+
import * as LabelStories from './label/Label.stories.svelte';
|
|
7
|
+
|
|
8
|
+
<Meta title="Typography/Overview" />
|
|
9
|
+
|
|
10
|
+
# Typography
|
|
11
|
+
|
|
12
|
+
[M3 type scale](https://m3.material.io/styles/typography/type-scale-tokens) ·
|
|
13
|
+
`import { Display, Headline, Title, Body, Label } from '@noxlovette/material';`
|
|
14
|
+
|
|
15
|
+
Five components implement the M3 type scale. They share one prop shape, `size` (`small`,
|
|
16
|
+
`medium` by default, or `large`) and `emphasized`, and differ in role and element:
|
|
17
|
+
|
|
18
|
+
| Component | Element | Use for |
|
|
19
|
+
| ---------- | ------- | -------------------------------------------------------------------------------------------------- |
|
|
20
|
+
| `Display` | `<h1>` | Short, high-impact text or numerals: a hero, a splash screen, a big stat. Once per screen at most |
|
|
21
|
+
| `Headline` | `<h2>` | Page and section titles that need more weight than `Title` |
|
|
22
|
+
| `Title` | `<h3>` | Medium-emphasis text: section headers, card titles, list-item leads |
|
|
23
|
+
| `Body` | `<p>` | Running text. `medium` for most copy, `small` for dense UI text, `large` for lead paragraphs |
|
|
24
|
+
| `Label` | `<p>` | Standalone captions and custom controls. Buttons, tabs and chips already set their own label style |
|
|
25
|
+
|
|
26
|
+
Their element is fixed by role, not size. If the heading level doesn't fit the page outline,
|
|
27
|
+
pick the component that matches the level and adjust `size`; keep levels sequential.
|
|
28
|
+
|
|
29
|
+
## Emphasized
|
|
30
|
+
|
|
31
|
+
`emphasized` switches to the M3 emphasized style of the same size: the same size, line height and
|
|
32
|
+
tracking, with a heavier weight (400 → 500, or 500 → 700 for title-medium/small and labels). Use
|
|
33
|
+
it for selected, active or unread states, and for editorial emphasis. Don't add `font-bold` to a
|
|
34
|
+
baseline style instead.
|
|
35
|
+
|
|
36
|
+
<Canvas of={TitleStories.Sizes} />
|
|
37
|
+
|
|
38
|
+
## Utility classes
|
|
39
|
+
|
|
40
|
+
Outside these components, apply the styles as classes: `md-sys-typescale-<role>-<size>`, and
|
|
41
|
+
`md-sys-typescale-emphasized-<role>-<size>`. Each class sets font, weight, size, line height and
|
|
42
|
+
tracking together; don't combine it with `text-*`, `leading-*`, `tracking-*` or `font-*`.
|
|
43
|
+
|
|
44
|
+
The typefaces come from `--md-ref-typeface-brand` (display, headline, title-large) and
|
|
45
|
+
`--md-ref-typeface-plain` (everything else). Both default to `--font-sans`.
|
|
46
|
+
|
|
47
|
+
## Language height
|
|
48
|
+
|
|
49
|
+
Line heights follow the language of each element: medium by default, small for Latin, Cyrillic,
|
|
50
|
+
Greek and Hebrew languages, and taller for Burmese, Telugu and Urdu. Set `lang` on your `<html>`
|
|
51
|
+
(SvelteKit's template does) and on any passage in another language. To force a category, set
|
|
52
|
+
`data-md-language-height="small|medium|large|extra-large"` on an element.
|
|
53
|
+
|
|
54
|
+
## Accessibility
|
|
55
|
+
|
|
56
|
+
- **Headings.** `Display`, `Headline` and `Title` are headings; `Body` and `Label` never are. Use
|
|
57
|
+
a heading component for anything that titles a section.
|
|
58
|
+
- **Color.** None of them sets a color. Pair them with an `on-*` color role for the surface
|
|
59
|
+
they're on, especially at label sizes, where contrast matters most.
|
|
60
|
+
|
|
61
|
+
<Canvas of={DisplayStories.Sizes} />
|
|
62
|
+
|
|
63
|
+
<Canvas of={HeadlineStories.Sizes} />
|
|
64
|
+
|
|
65
|
+
<Canvas of={BodyStories.Sizes} />
|
|
66
|
+
|
|
67
|
+
<Canvas of={LabelStories.Sizes} />
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
const { Story } = defineMeta({
|
|
6
6
|
title: 'Typography/Body',
|
|
7
|
+
tags: ['autodocs'],
|
|
7
8
|
component: Body,
|
|
8
9
|
argTypes: {
|
|
9
10
|
size: {
|
|
@@ -22,7 +23,7 @@
|
|
|
22
23
|
<Story name="Playground">Body text used for longer passages of content.</Story>
|
|
23
24
|
|
|
24
25
|
<Story name="Sizes" asChild>
|
|
25
|
-
<div class="flex flex-col
|
|
26
|
+
<div class="gap-spacing-200 p-spacing-300 flex flex-col">
|
|
26
27
|
<Body size="small">Body small</Body>
|
|
27
28
|
<Body size="medium">Body medium</Body>
|
|
28
29
|
<Body size="large">Body large</Body>
|
|
@@ -1,30 +1,33 @@
|
|
|
1
|
-
import { type VariantProps } from '
|
|
1
|
+
import { type VariantProps } from '../../../utils/tv.js';
|
|
2
2
|
export type BodyVariants = VariantProps<typeof body>;
|
|
3
3
|
export declare const body: import("tailwind-variants").TVReturnType<{
|
|
4
4
|
emphasized: {
|
|
5
|
-
true: "
|
|
5
|
+
true: "";
|
|
6
|
+
false: "";
|
|
6
7
|
};
|
|
7
8
|
size: {
|
|
8
|
-
small: "
|
|
9
|
-
medium: "
|
|
10
|
-
large: "
|
|
9
|
+
small: "";
|
|
10
|
+
medium: "";
|
|
11
|
+
large: "";
|
|
11
12
|
};
|
|
12
13
|
}, undefined, "", {
|
|
13
14
|
emphasized: {
|
|
14
|
-
true: "
|
|
15
|
+
true: "";
|
|
16
|
+
false: "";
|
|
15
17
|
};
|
|
16
18
|
size: {
|
|
17
|
-
small: "
|
|
18
|
-
medium: "
|
|
19
|
-
large: "
|
|
19
|
+
small: "";
|
|
20
|
+
medium: "";
|
|
21
|
+
large: "";
|
|
20
22
|
};
|
|
21
23
|
}, undefined, import("tailwind-variants").TVReturnTypeLike<{
|
|
22
24
|
emphasized: {
|
|
23
|
-
true: "
|
|
25
|
+
true: "";
|
|
26
|
+
false: "";
|
|
24
27
|
};
|
|
25
28
|
size: {
|
|
26
|
-
small: "
|
|
27
|
-
medium: "
|
|
28
|
-
large: "
|
|
29
|
+
small: "";
|
|
30
|
+
medium: "";
|
|
31
|
+
large: "";
|
|
29
32
|
};
|
|
30
33
|
}, undefined>>;
|
|
@@ -1,14 +1,29 @@
|
|
|
1
|
-
import { tv } from '
|
|
1
|
+
import { tv } from '../../../utils/tv.js';
|
|
2
2
|
export const body = tv({
|
|
3
3
|
base: '',
|
|
4
4
|
variants: {
|
|
5
|
+
// `emphasized` swaps in the M3 emphasized style of the same size (heavier weight, same
|
|
6
|
+
// metrics). The class is picked in compoundVariants so only one typescale class is ever set.
|
|
5
7
|
emphasized: {
|
|
6
|
-
true: '
|
|
8
|
+
true: '',
|
|
9
|
+
false: ''
|
|
7
10
|
},
|
|
8
11
|
size: {
|
|
9
|
-
small: '
|
|
10
|
-
medium: '
|
|
11
|
-
large: '
|
|
12
|
+
small: '',
|
|
13
|
+
medium: '',
|
|
14
|
+
large: ''
|
|
12
15
|
}
|
|
16
|
+
},
|
|
17
|
+
compoundVariants: [
|
|
18
|
+
{ size: 'small', emphasized: false, class: 'md-sys-typescale-body-small' },
|
|
19
|
+
{ size: 'small', emphasized: true, class: 'md-sys-typescale-emphasized-body-small' },
|
|
20
|
+
{ size: 'medium', emphasized: false, class: 'md-sys-typescale-body-medium' },
|
|
21
|
+
{ size: 'medium', emphasized: true, class: 'md-sys-typescale-emphasized-body-medium' },
|
|
22
|
+
{ size: 'large', emphasized: false, class: 'md-sys-typescale-body-large' },
|
|
23
|
+
{ size: 'large', emphasized: true, class: 'md-sys-typescale-emphasized-body-large' }
|
|
24
|
+
],
|
|
25
|
+
defaultVariants: {
|
|
26
|
+
emphasized: false,
|
|
27
|
+
size: 'medium'
|
|
13
28
|
}
|
|
14
29
|
});
|
|
@@ -10,7 +10,8 @@ export interface BodyProps extends BodyVariants, HTMLAttributes<HTMLParagraphEle
|
|
|
10
10
|
*/
|
|
11
11
|
children: Snippet;
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
13
|
+
* Use the M3 emphasized style (`md-sys-typescale-emphasized-body-*`): same size, heavier weight.
|
|
14
|
+
* Use it for selected, active, or unread states, or for editorial emphasis.
|
|
14
15
|
*/
|
|
15
16
|
emphasized?: boolean;
|
|
16
17
|
/**
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
const { Story } = defineMeta({
|
|
6
6
|
title: 'Typography/Display',
|
|
7
|
+
tags: ['autodocs'],
|
|
7
8
|
component: Display,
|
|
8
9
|
argTypes: {
|
|
9
10
|
size: {
|
|
@@ -22,7 +23,7 @@
|
|
|
22
23
|
<Story name="Playground">Display text</Story>
|
|
23
24
|
|
|
24
25
|
<Story name="Sizes" asChild>
|
|
25
|
-
<div class="flex flex-col
|
|
26
|
+
<div class="gap-spacing-200 p-spacing-300 flex flex-col">
|
|
26
27
|
<Display size="small">Display small</Display>
|
|
27
28
|
<Display size="medium">Display medium</Display>
|
|
28
29
|
<Display size="large">Display large</Display>
|
|
@@ -1,30 +1,33 @@
|
|
|
1
|
-
import { type VariantProps } from '
|
|
1
|
+
import { type VariantProps } from '../../../utils/tv.js';
|
|
2
2
|
export type DisplayVariants = VariantProps<typeof display>;
|
|
3
3
|
export declare const display: import("tailwind-variants").TVReturnType<{
|
|
4
4
|
emphasized: {
|
|
5
|
-
true: "
|
|
5
|
+
true: "";
|
|
6
|
+
false: "";
|
|
6
7
|
};
|
|
7
8
|
size: {
|
|
8
|
-
small: "
|
|
9
|
-
medium: "
|
|
10
|
-
large: "
|
|
9
|
+
small: "";
|
|
10
|
+
medium: "";
|
|
11
|
+
large: "";
|
|
11
12
|
};
|
|
12
13
|
}, undefined, "", {
|
|
13
14
|
emphasized: {
|
|
14
|
-
true: "
|
|
15
|
+
true: "";
|
|
16
|
+
false: "";
|
|
15
17
|
};
|
|
16
18
|
size: {
|
|
17
|
-
small: "
|
|
18
|
-
medium: "
|
|
19
|
-
large: "
|
|
19
|
+
small: "";
|
|
20
|
+
medium: "";
|
|
21
|
+
large: "";
|
|
20
22
|
};
|
|
21
23
|
}, undefined, import("tailwind-variants").TVReturnTypeLike<{
|
|
22
24
|
emphasized: {
|
|
23
|
-
true: "
|
|
25
|
+
true: "";
|
|
26
|
+
false: "";
|
|
24
27
|
};
|
|
25
28
|
size: {
|
|
26
|
-
small: "
|
|
27
|
-
medium: "
|
|
28
|
-
large: "
|
|
29
|
+
small: "";
|
|
30
|
+
medium: "";
|
|
31
|
+
large: "";
|
|
29
32
|
};
|
|
30
33
|
}, undefined>>;
|
|
@@ -1,14 +1,29 @@
|
|
|
1
|
-
import { tv } from '
|
|
1
|
+
import { tv } from '../../../utils/tv.js';
|
|
2
2
|
export const display = tv({
|
|
3
3
|
base: '',
|
|
4
4
|
variants: {
|
|
5
|
+
// `emphasized` swaps in the M3 emphasized style of the same size (heavier weight, same
|
|
6
|
+
// metrics). The class is picked in compoundVariants so only one typescale class is ever set.
|
|
5
7
|
emphasized: {
|
|
6
|
-
true: '
|
|
8
|
+
true: '',
|
|
9
|
+
false: ''
|
|
7
10
|
},
|
|
8
11
|
size: {
|
|
9
|
-
small: '
|
|
10
|
-
medium: '
|
|
11
|
-
large: '
|
|
12
|
+
small: '',
|
|
13
|
+
medium: '',
|
|
14
|
+
large: ''
|
|
12
15
|
}
|
|
16
|
+
},
|
|
17
|
+
compoundVariants: [
|
|
18
|
+
{ size: 'small', emphasized: false, class: 'md-sys-typescale-display-small' },
|
|
19
|
+
{ size: 'small', emphasized: true, class: 'md-sys-typescale-emphasized-display-small' },
|
|
20
|
+
{ size: 'medium', emphasized: false, class: 'md-sys-typescale-display-medium' },
|
|
21
|
+
{ size: 'medium', emphasized: true, class: 'md-sys-typescale-emphasized-display-medium' },
|
|
22
|
+
{ size: 'large', emphasized: false, class: 'md-sys-typescale-display-large' },
|
|
23
|
+
{ size: 'large', emphasized: true, class: 'md-sys-typescale-emphasized-display-large' }
|
|
24
|
+
],
|
|
25
|
+
defaultVariants: {
|
|
26
|
+
emphasized: false,
|
|
27
|
+
size: 'medium'
|
|
13
28
|
}
|
|
14
29
|
});
|
|
@@ -10,7 +10,8 @@ export type DisplayProps = DisplayVariants & HTMLAttributes<HTMLElement> & {
|
|
|
10
10
|
*/
|
|
11
11
|
children: Snippet;
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
13
|
+
* Use the M3 emphasized style (`md-sys-typescale-emphasized-display-*`): same size, heavier weight.
|
|
14
|
+
* Use it for selected, active, or unread states, or for editorial emphasis.
|
|
14
15
|
*/
|
|
15
16
|
emphasized?: boolean;
|
|
16
17
|
/**
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
const { Story } = defineMeta({
|
|
6
6
|
title: 'Typography/Headline',
|
|
7
|
+
tags: ['autodocs'],
|
|
7
8
|
component: Headline,
|
|
8
9
|
argTypes: {
|
|
9
10
|
size: {
|
|
@@ -22,7 +23,7 @@
|
|
|
22
23
|
<Story name="Playground">Headline text</Story>
|
|
23
24
|
|
|
24
25
|
<Story name="Sizes" asChild>
|
|
25
|
-
<div class="flex flex-col
|
|
26
|
+
<div class="gap-spacing-200 p-spacing-300 flex flex-col">
|
|
26
27
|
<Headline size="small">Headline small</Headline>
|
|
27
28
|
<Headline size="medium">Headline medium</Headline>
|
|
28
29
|
<Headline size="large">Headline large</Headline>
|
|
@@ -1,30 +1,33 @@
|
|
|
1
|
-
import { type VariantProps } from '
|
|
1
|
+
import { type VariantProps } from '../../../utils/tv.js';
|
|
2
2
|
export type HeadlineVariants = VariantProps<typeof headline>;
|
|
3
3
|
export declare const headline: import("tailwind-variants").TVReturnType<{
|
|
4
4
|
emphasized: {
|
|
5
|
-
true: "
|
|
5
|
+
true: "";
|
|
6
|
+
false: "";
|
|
6
7
|
};
|
|
7
8
|
size: {
|
|
8
|
-
small: "
|
|
9
|
-
medium: "
|
|
10
|
-
large: "
|
|
9
|
+
small: "";
|
|
10
|
+
medium: "";
|
|
11
|
+
large: "";
|
|
11
12
|
};
|
|
12
13
|
}, undefined, "", {
|
|
13
14
|
emphasized: {
|
|
14
|
-
true: "
|
|
15
|
+
true: "";
|
|
16
|
+
false: "";
|
|
15
17
|
};
|
|
16
18
|
size: {
|
|
17
|
-
small: "
|
|
18
|
-
medium: "
|
|
19
|
-
large: "
|
|
19
|
+
small: "";
|
|
20
|
+
medium: "";
|
|
21
|
+
large: "";
|
|
20
22
|
};
|
|
21
23
|
}, undefined, import("tailwind-variants").TVReturnTypeLike<{
|
|
22
24
|
emphasized: {
|
|
23
|
-
true: "
|
|
25
|
+
true: "";
|
|
26
|
+
false: "";
|
|
24
27
|
};
|
|
25
28
|
size: {
|
|
26
|
-
small: "
|
|
27
|
-
medium: "
|
|
28
|
-
large: "
|
|
29
|
+
small: "";
|
|
30
|
+
medium: "";
|
|
31
|
+
large: "";
|
|
29
32
|
};
|
|
30
33
|
}, undefined>>;
|
|
@@ -1,14 +1,29 @@
|
|
|
1
|
-
import { tv } from '
|
|
1
|
+
import { tv } from '../../../utils/tv.js';
|
|
2
2
|
export const headline = tv({
|
|
3
3
|
base: '',
|
|
4
4
|
variants: {
|
|
5
|
+
// `emphasized` swaps in the M3 emphasized style of the same size (heavier weight, same
|
|
6
|
+
// metrics). The class is picked in compoundVariants so only one typescale class is ever set.
|
|
5
7
|
emphasized: {
|
|
6
|
-
true: '
|
|
8
|
+
true: '',
|
|
9
|
+
false: ''
|
|
7
10
|
},
|
|
8
11
|
size: {
|
|
9
|
-
small: '
|
|
10
|
-
medium: '
|
|
11
|
-
large: '
|
|
12
|
+
small: '',
|
|
13
|
+
medium: '',
|
|
14
|
+
large: ''
|
|
12
15
|
}
|
|
16
|
+
},
|
|
17
|
+
compoundVariants: [
|
|
18
|
+
{ size: 'small', emphasized: false, class: 'md-sys-typescale-headline-small' },
|
|
19
|
+
{ size: 'small', emphasized: true, class: 'md-sys-typescale-emphasized-headline-small' },
|
|
20
|
+
{ size: 'medium', emphasized: false, class: 'md-sys-typescale-headline-medium' },
|
|
21
|
+
{ size: 'medium', emphasized: true, class: 'md-sys-typescale-emphasized-headline-medium' },
|
|
22
|
+
{ size: 'large', emphasized: false, class: 'md-sys-typescale-headline-large' },
|
|
23
|
+
{ size: 'large', emphasized: true, class: 'md-sys-typescale-emphasized-headline-large' }
|
|
24
|
+
],
|
|
25
|
+
defaultVariants: {
|
|
26
|
+
emphasized: false,
|
|
27
|
+
size: 'medium'
|
|
13
28
|
}
|
|
14
29
|
});
|
|
@@ -10,7 +10,8 @@ export type HeadlineProps = HeadlineVariants & HTMLAttributes<HTMLElement> & {
|
|
|
10
10
|
*/
|
|
11
11
|
children: Snippet;
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
13
|
+
* Use the M3 emphasized style (`md-sys-typescale-emphasized-headline-*`): same size, heavier weight.
|
|
14
|
+
* Use it for selected, active, or unread states, or for editorial emphasis.
|
|
14
15
|
*/
|
|
15
16
|
emphasized?: boolean;
|
|
16
17
|
/**
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
const { Story } = defineMeta({
|
|
11
11
|
title: 'Typography/Kbd',
|
|
12
|
+
tags: ['autodocs'],
|
|
12
13
|
component: Kbd,
|
|
13
14
|
argTypes: {
|
|
14
15
|
position: { control: 'select', options: ['relative', 'absolute'] }
|
|
@@ -33,7 +34,7 @@
|
|
|
33
34
|
|
|
34
35
|
<Story name="Anchored in a Search Field" asChild>
|
|
35
36
|
<div
|
|
36
|
-
class="bg-md-sys-color-surface-container-high md-sys-typescale-body-large text-md-sys-color-on-surface-variant relative flex
|
|
37
|
+
class="bg-md-sys-color-surface-container-high md-sys-typescale-body-large text-md-sys-color-on-surface-variant h-spacing-600 px-spacing-200 relative flex w-80 items-center rounded-full"
|
|
37
38
|
>
|
|
38
39
|
Search...
|
|
39
40
|
<Kbd position="absolute">⌘K</Kbd>
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { type VariantProps } from '
|
|
1
|
+
import { type VariantProps } from '../../../utils/tv.js';
|
|
2
2
|
export type KbdVariants = VariantProps<typeof kbd>;
|
|
3
3
|
export declare const kbd: import("tailwind-variants").TVReturnType<{
|
|
4
4
|
position: {
|
|
5
|
-
absolute: "right-
|
|
5
|
+
absolute: "right-spacing-75 bottom-spacing-75 hidden md:absolute md:right-spacing-100 md:bottom-spacing-100 md:inline-flex";
|
|
6
6
|
relative: "";
|
|
7
7
|
};
|
|
8
|
-
}, undefined, "md-sys-typescale-label-small
|
|
8
|
+
}, undefined, "md-sys-typescale-emphasized-label-small text-md-sys-color-on-surface-variant", {
|
|
9
9
|
position: {
|
|
10
|
-
absolute: "right-
|
|
10
|
+
absolute: "right-spacing-75 bottom-spacing-75 hidden md:absolute md:right-spacing-100 md:bottom-spacing-100 md:inline-flex";
|
|
11
11
|
relative: "";
|
|
12
12
|
};
|
|
13
13
|
}, undefined, import("tailwind-variants").TVReturnTypeLike<{
|
|
14
14
|
position: {
|
|
15
|
-
absolute: "right-
|
|
15
|
+
absolute: "right-spacing-75 bottom-spacing-75 hidden md:absolute md:right-spacing-100 md:bottom-spacing-100 md:inline-flex";
|
|
16
16
|
relative: "";
|
|
17
17
|
};
|
|
18
18
|
}, undefined>>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { tv } from '
|
|
1
|
+
import { tv } from '../../../utils/tv.js';
|
|
2
2
|
export const kbd = tv({
|
|
3
|
-
base: 'md-sys-typescale-label-small
|
|
3
|
+
base: 'md-sys-typescale-emphasized-label-small text-md-sys-color-on-surface-variant',
|
|
4
4
|
variants: {
|
|
5
5
|
position: {
|
|
6
|
-
absolute: 'right-
|
|
6
|
+
absolute: 'right-spacing-75 bottom-spacing-75 hidden md:absolute md:right-spacing-100 md:bottom-spacing-100 md:inline-flex',
|
|
7
7
|
relative: ''
|
|
8
8
|
}
|
|
9
9
|
}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
const { Story } = defineMeta({
|
|
6
6
|
title: 'Typography/Label',
|
|
7
|
+
tags: ['autodocs'],
|
|
7
8
|
component: Label,
|
|
8
9
|
argTypes: {
|
|
9
10
|
size: {
|
|
@@ -22,7 +23,7 @@
|
|
|
22
23
|
<Story name="Playground">Label text</Story>
|
|
23
24
|
|
|
24
25
|
<Story name="Sizes" asChild>
|
|
25
|
-
<div class="flex flex-col
|
|
26
|
+
<div class="gap-spacing-200 p-spacing-300 flex flex-col">
|
|
26
27
|
<Label size="small">Label small</Label>
|
|
27
28
|
<Label size="medium">Label medium</Label>
|
|
28
29
|
<Label size="large">Label large</Label>
|