@skewedaspect/sleekspace-ui 0.2.0-beta.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/LICENSE +21 -0
- package/README.md +111 -0
- package/dist/sleekspace-ui.css +12844 -0
- package/dist/sleekspace-ui.es.js +19021 -0
- package/dist/sleekspace-ui.umd.js +19040 -0
- package/docs/components/accordion.md +92 -0
- package/docs/components/alert.md +72 -0
- package/docs/components/avatar.md +69 -0
- package/docs/components/breadcrumbs.md +65 -0
- package/docs/components/button/_meta.yaml +12 -0
- package/docs/components/button/accessibility.md +16 -0
- package/docs/components/button/custom-colors.md +18 -0
- package/docs/components/button/icons.md +31 -0
- package/docs/components/button/intro.md +8 -0
- package/docs/components/button/kinds.md +25 -0
- package/docs/components/button/sizes.md +14 -0
- package/docs/components/button/states.md +12 -0
- package/docs/components/button/usage.md +23 -0
- package/docs/components/button/variants.md +14 -0
- package/docs/components/button.md +110 -0
- package/docs/components/card.md +87 -0
- package/docs/components/checkbox.md +77 -0
- package/docs/components/collapsible.md +71 -0
- package/docs/components/divider.md +62 -0
- package/docs/components/dropdown.md +88 -0
- package/docs/components/field.md +80 -0
- package/docs/components/group.md +41 -0
- package/docs/components/input.md +84 -0
- package/docs/components/listbox.md +82 -0
- package/docs/components/modal.md +101 -0
- package/docs/components/navbar.md +64 -0
- package/docs/components/number-input.md +78 -0
- package/docs/components/page.md +77 -0
- package/docs/components/pagination.md +88 -0
- package/docs/components/panel.md +74 -0
- package/docs/components/popover.md +93 -0
- package/docs/components/progress.md +76 -0
- package/docs/components/radio.md +86 -0
- package/docs/components/sidebar.md +74 -0
- package/docs/components/skeleton.md +76 -0
- package/docs/components/slider.md +94 -0
- package/docs/components/spinner.md +59 -0
- package/docs/components/switch.md +97 -0
- package/docs/components/table.md +91 -0
- package/docs/components/tabs.md +108 -0
- package/docs/components/tag.md +75 -0
- package/docs/components/tags-input.md +88 -0
- package/docs/components/textarea.md +80 -0
- package/docs/components/theme.md +65 -0
- package/docs/components/toast.md +95 -0
- package/docs/components/tooltip.md +90 -0
- package/docs/guides/custom-colors.md +84 -0
- package/docs/guides/design-tokens.md +105 -0
- package/docs/guides/getting-started.md +144 -0
- package/docs/guides/installation.md +62 -0
- package/docs/guides/theming.md +101 -0
- package/package.json +76 -0
- package/src/components/Accordion/SkAccordion.vue +133 -0
- package/src/components/Accordion/SkAccordionItem.vue +131 -0
- package/src/components/Accordion/index.ts +3 -0
- package/src/components/Accordion/types.ts +9 -0
- package/src/components/Alert/SkAlert.vue +137 -0
- package/src/components/Alert/types.ts +10 -0
- package/src/components/Avatar/SkAvatar.vue +141 -0
- package/src/components/Avatar/index.ts +8 -0
- package/src/components/Avatar/types.ts +31 -0
- package/src/components/Breadcrumbs/SkBreadcrumbItem.vue +76 -0
- package/src/components/Breadcrumbs/SkBreadcrumbSeparator.vue +38 -0
- package/src/components/Breadcrumbs/SkBreadcrumbs.vue +93 -0
- package/src/components/Breadcrumbs/index.ts +10 -0
- package/src/components/Breadcrumbs/types.ts +36 -0
- package/src/components/Button/SkButton.vue +148 -0
- package/src/components/Button/types.ts +21 -0
- package/src/components/Card/SkCard.vue +144 -0
- package/src/components/Card/types.ts +12 -0
- package/src/components/Checkbox/SkCheckbox.vue +136 -0
- package/src/components/Checkbox/index.ts +8 -0
- package/src/components/Checkbox/types.ts +10 -0
- package/src/components/Collapsible/SkCollapsible.vue +159 -0
- package/src/components/Collapsible/index.ts +2 -0
- package/src/components/Collapsible/types.ts +8 -0
- package/src/components/Divider/SkDivider.vue +63 -0
- package/src/components/Divider/types.ts +15 -0
- package/src/components/Dropdown/SkDropdown.vue +150 -0
- package/src/components/Dropdown/SkDropdownMenuItem.vue +58 -0
- package/src/components/Dropdown/SkDropdownMenuSeparator.vue +26 -0
- package/src/components/Dropdown/SkDropdownSubmenu.vue +107 -0
- package/src/components/Dropdown/index.ts +11 -0
- package/src/components/Dropdown/types.ts +11 -0
- package/src/components/Field/SkField.vue +152 -0
- package/src/components/Field/index.ts +8 -0
- package/src/components/Field/types.ts +7 -0
- package/src/components/Group/SkGroup.vue +52 -0
- package/src/components/Group/types.ts +10 -0
- package/src/components/Input/SkInput.vue +117 -0
- package/src/components/Input/index.ts +8 -0
- package/src/components/Input/types.ts +11 -0
- package/src/components/Listbox/SkListbox.vue +164 -0
- package/src/components/Listbox/SkListboxItem.vue +68 -0
- package/src/components/Listbox/SkListboxSeparator.vue +26 -0
- package/src/components/Listbox/index.ts +10 -0
- package/src/components/Listbox/types.ts +10 -0
- package/src/components/Modal/SkModal.vue +231 -0
- package/src/components/Modal/index.ts +8 -0
- package/src/components/Modal/types.ts +12 -0
- package/src/components/NavBar/SkNavBar.vue +83 -0
- package/src/components/NavBar/index.ts +8 -0
- package/src/components/NavBar/types.ts +15 -0
- package/src/components/NumberInput/SkNumberInput.vue +168 -0
- package/src/components/NumberInput/index.ts +8 -0
- package/src/components/NumberInput/types.ts +10 -0
- package/src/components/Page/SkPage.vue +94 -0
- package/src/components/Page/index.ts +8 -0
- package/src/components/Page/types.ts +21 -0
- package/src/components/Pagination/SkPagination.vue +185 -0
- package/src/components/Pagination/SkPaginationItem.vue +107 -0
- package/src/components/Pagination/index.ts +9 -0
- package/src/components/Pagination/types.ts +40 -0
- package/src/components/Panel/SkPanel.vue +96 -0
- package/src/components/Panel/types.ts +15 -0
- package/src/components/Popover/SkPopover.vue +185 -0
- package/src/components/Popover/index.ts +8 -0
- package/src/components/Popover/types.ts +11 -0
- package/src/components/Progress/SkProgress.vue +144 -0
- package/src/components/Progress/index.ts +8 -0
- package/src/components/Progress/types.ts +34 -0
- package/src/components/Radio/SkRadio.vue +110 -0
- package/src/components/Radio/SkRadioGroup.vue +92 -0
- package/src/components/Radio/index.ts +9 -0
- package/src/components/Radio/types.ts +11 -0
- package/src/components/Sidebar/README.md +405 -0
- package/src/components/Sidebar/SkSidebar.vue +88 -0
- package/src/components/Sidebar/SkSidebarItem.vue +58 -0
- package/src/components/Sidebar/SkSidebarSection.vue +40 -0
- package/src/components/Sidebar/types.ts +3 -0
- package/src/components/Skeleton/SkSkeleton.vue +171 -0
- package/src/components/Skeleton/index.ts +8 -0
- package/src/components/Skeleton/types.ts +31 -0
- package/src/components/Slider/SkSlider.vue +165 -0
- package/src/components/Slider/index.ts +8 -0
- package/src/components/Slider/types.ts +44 -0
- package/src/components/Spinner/SkSpinner.vue +105 -0
- package/src/components/Spinner/index.ts +8 -0
- package/src/components/Spinner/types.ts +28 -0
- package/src/components/Switch/SkSwitch.vue +215 -0
- package/src/components/Switch/index.ts +8 -0
- package/src/components/Switch/types.ts +12 -0
- package/src/components/Table/SkTable.vue +109 -0
- package/src/components/Table/index.ts +2 -0
- package/src/components/Table/types.ts +15 -0
- package/src/components/Tabs/README.md +331 -0
- package/src/components/Tabs/SkTab.vue +84 -0
- package/src/components/Tabs/SkTabList.vue +62 -0
- package/src/components/Tabs/SkTabPanel.vue +47 -0
- package/src/components/Tabs/SkTabPanels.vue +23 -0
- package/src/components/Tabs/SkTabs.vue +124 -0
- package/src/components/Tabs/types.ts +21 -0
- package/src/components/Tag/SkTag.vue +129 -0
- package/src/components/Tag/types.ts +15 -0
- package/src/components/TagsInput/SkTagsInput.vue +184 -0
- package/src/components/TagsInput/index.ts +8 -0
- package/src/components/TagsInput/types.ts +10 -0
- package/src/components/Textarea/SkTextarea.vue +117 -0
- package/src/components/Textarea/index.ts +8 -0
- package/src/components/Textarea/types.ts +10 -0
- package/src/components/Theme/SkTheme.vue +47 -0
- package/src/components/Theme/types.ts +17 -0
- package/src/components/Theme/useTheme.ts +131 -0
- package/src/components/Toast/SkToast.vue +156 -0
- package/src/components/Toast/SkToastProvider.vue +180 -0
- package/src/components/Toast/index.ts +15 -0
- package/src/components/Toast/types.ts +63 -0
- package/src/components/Toast/useToast.ts +78 -0
- package/src/components/Tooltip/SkTooltip.vue +162 -0
- package/src/components/Tooltip/SkTooltipProvider.vue +114 -0
- package/src/components/Tooltip/index.ts +9 -0
- package/src/components/Tooltip/types.ts +13 -0
- package/src/composables/useCustomColors.test.ts +505 -0
- package/src/composables/useCustomColors.ts +124 -0
- package/src/composables/usePortalContext.test.ts +402 -0
- package/src/composables/usePortalContext.ts +95 -0
- package/src/global.d.ts +76 -0
- package/src/index.ts +259 -0
- package/src/styles/_scrollbar.scss +100 -0
- package/src/styles/base/_fonts.scss +105 -0
- package/src/styles/base/_global.scss +47 -0
- package/src/styles/base/_index.scss +24 -0
- package/src/styles/base/_reset.scss +11 -0
- package/src/styles/base/_typography.scss +178 -0
- package/src/styles/components/_accordion.scss +250 -0
- package/src/styles/components/_alert.scss +239 -0
- package/src/styles/components/_avatar.scss +133 -0
- package/src/styles/components/_breadcrumbs.scss +137 -0
- package/src/styles/components/_button.scss +731 -0
- package/src/styles/components/_card.scss +141 -0
- package/src/styles/components/_checkbox.scss +232 -0
- package/src/styles/components/_collapsible.scss +158 -0
- package/src/styles/components/_divider.scss +121 -0
- package/src/styles/components/_field.scss +87 -0
- package/src/styles/components/_group.scss +138 -0
- package/src/styles/components/_index.scss +46 -0
- package/src/styles/components/_input.scss +205 -0
- package/src/styles/components/_listbox.scss +453 -0
- package/src/styles/components/_menu.scss +216 -0
- package/src/styles/components/_modal.scss +329 -0
- package/src/styles/components/_navbar.scss +258 -0
- package/src/styles/components/_number-input.scss +352 -0
- package/src/styles/components/_page.scss +98 -0
- package/src/styles/components/_pagination.scss +411 -0
- package/src/styles/components/_panel.scss +281 -0
- package/src/styles/components/_popover.scss +258 -0
- package/src/styles/components/_progress.scss +280 -0
- package/src/styles/components/_radio.scss +255 -0
- package/src/styles/components/_sidebar.scss +92 -0
- package/src/styles/components/_skeleton.scss +138 -0
- package/src/styles/components/_slider.scss +262 -0
- package/src/styles/components/_spinner.scss +331 -0
- package/src/styles/components/_switch.scss +370 -0
- package/src/styles/components/_table.scss +405 -0
- package/src/styles/components/_tabs.scss +486 -0
- package/src/styles/components/_tag.scss +425 -0
- package/src/styles/components/_tags-input.scss +279 -0
- package/src/styles/components/_textarea.scss +208 -0
- package/src/styles/components/_toast.scss +331 -0
- package/src/styles/components/_tooltip.scss +206 -0
- package/src/styles/fonts/Titillium_Web/OFL.txt +93 -0
- package/src/styles/fonts/Titillium_Web/TitilliumWeb-Black.ttf +0 -0
- package/src/styles/fonts/Titillium_Web/TitilliumWeb-Bold.ttf +0 -0
- package/src/styles/fonts/Titillium_Web/TitilliumWeb-BoldItalic.ttf +0 -0
- package/src/styles/fonts/Titillium_Web/TitilliumWeb-ExtraLight.ttf +0 -0
- package/src/styles/fonts/Titillium_Web/TitilliumWeb-ExtraLightItalic.ttf +0 -0
- package/src/styles/fonts/Titillium_Web/TitilliumWeb-Italic.ttf +0 -0
- package/src/styles/fonts/Titillium_Web/TitilliumWeb-Light.ttf +0 -0
- package/src/styles/fonts/Titillium_Web/TitilliumWeb-LightItalic.ttf +0 -0
- package/src/styles/fonts/Titillium_Web/TitilliumWeb-Regular.ttf +0 -0
- package/src/styles/fonts/Titillium_Web/TitilliumWeb-SemiBold.ttf +0 -0
- package/src/styles/fonts/Titillium_Web/TitilliumWeb-SemiBoldItalic.ttf +0 -0
- package/src/styles/index.scss +17 -0
- package/src/styles/mixins/_cut-border.scss +254 -0
- package/src/styles/mixins/_index.scss +7 -0
- package/src/styles/theme/_variables.scss +42 -0
- package/src/styles/themes/README.md +127 -0
- package/src/styles/themes/_colorful.scss +58 -0
- package/src/styles/themes/_greyscale.scss +58 -0
- package/src/styles/themes/index.scss +9 -0
- package/src/styles/tokens/README.md +268 -0
- package/src/styles/tokens/_foundation-borders.scss +26 -0
- package/src/styles/tokens/_foundation-colors.scss +169 -0
- package/src/styles/tokens/_foundation-glow.scss +36 -0
- package/src/styles/tokens/_foundation-radius.scss +53 -0
- package/src/styles/tokens/_foundation-scrollbar.scss +31 -0
- package/src/styles/tokens/_foundation-shadows.scss +37 -0
- package/src/styles/tokens/_foundation-space.scss +36 -0
- package/src/styles/tokens/_foundation-transitions.scss +37 -0
- package/src/styles/tokens/_foundation-typography.scss +58 -0
- package/src/styles/tokens/_semantic-color-kinds.scss +112 -0
- package/src/styles/tokens/_semantic-colors.scss +10 -0
- package/src/styles/tokens/_semantic-interactive.scss +29 -0
- package/src/styles/tokens/_semantic-scrollbar.scss +48 -0
- package/src/styles/tokens/_semantic-surfaces.scss +36 -0
- package/src/styles/tokens/index.scss +38 -0
- package/src/styles/tokens.scss +268 -0
- package/src/styles/utilities/_index.scss +9 -0
- package/src/styles/utilities/_typography.scss +121 -0
- package/src/types.ts +50 -0
- package/web-types.json +3524 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Semantic Tokens - Surfaces
|
|
3
|
+
*
|
|
4
|
+
* Background and text colors for surfaces and general use.
|
|
5
|
+
* These provide a consistent color system independent of component kinds.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
:root
|
|
9
|
+
{
|
|
10
|
+
/* ===================================================================
|
|
11
|
+
* Background Colors
|
|
12
|
+
* For page backgrounds, card surfaces, etc.
|
|
13
|
+
* =================================================================== */
|
|
14
|
+
|
|
15
|
+
--sk-surface-base: var(--sk-color-gray-90); /* Main background */
|
|
16
|
+
--sk-surface-raised: var(--sk-color-gray-95); /* Elevated surfaces (cards, panels) */
|
|
17
|
+
--sk-surface-overlay: var(--sk-color-gray-80); /* Overlays (modals, dropdowns) */
|
|
18
|
+
|
|
19
|
+
/* ===================================================================
|
|
20
|
+
* Text Colors
|
|
21
|
+
* For body text, secondary text, disabled text, etc.
|
|
22
|
+
* =================================================================== */
|
|
23
|
+
|
|
24
|
+
--sk-text-primary: oklch(1 0 0); /* Primary body text */
|
|
25
|
+
--sk-text-secondary: var(--sk-color-gray-30); /* Secondary/muted text */
|
|
26
|
+
--sk-text-tertiary: var(--sk-color-gray-50); /* Tertiary/placeholder text */
|
|
27
|
+
--sk-text-disabled: var(--sk-color-gray-60); /* Disabled text */
|
|
28
|
+
|
|
29
|
+
/* ===================================================================
|
|
30
|
+
* Border Colors
|
|
31
|
+
* For borders, dividers, etc.
|
|
32
|
+
* =================================================================== */
|
|
33
|
+
|
|
34
|
+
--sk-border-normal: var(--sk-color-gray-70); /* Standard borders */
|
|
35
|
+
--sk-border-subtle: var(--sk-color-gray-80); /* Subtle borders/dividers */
|
|
36
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Design Tokens - Main Entry
|
|
3
|
+
*
|
|
4
|
+
* This file imports all design token categories in the correct order.
|
|
5
|
+
* Foundation tokens must be loaded before semantic tokens,
|
|
6
|
+
* and semantic tokens must be loaded before component tokens.
|
|
7
|
+
*
|
|
8
|
+
* Token Hierarchy:
|
|
9
|
+
* Foundation → Semantic → Component
|
|
10
|
+
*
|
|
11
|
+
* @see DESIGN_TOKENS_PROPOSAL.md for complete documentation
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/* ===================================================================
|
|
15
|
+
* Foundation Tokens
|
|
16
|
+
* Global primitives that all other tokens derive from
|
|
17
|
+
* =================================================================== */
|
|
18
|
+
|
|
19
|
+
@use 'foundation-colors';
|
|
20
|
+
@use 'foundation-space';
|
|
21
|
+
@use 'foundation-radius';
|
|
22
|
+
@use 'foundation-borders';
|
|
23
|
+
@use 'foundation-shadows';
|
|
24
|
+
@use 'foundation-glow';
|
|
25
|
+
@use 'foundation-transitions';
|
|
26
|
+
@use 'foundation-typography';
|
|
27
|
+
@use 'foundation-scrollbar';
|
|
28
|
+
|
|
29
|
+
/* ===================================================================
|
|
30
|
+
* Semantic Tokens
|
|
31
|
+
* Contextual meanings that reference foundation tokens
|
|
32
|
+
* =================================================================== */
|
|
33
|
+
|
|
34
|
+
@use 'semantic-colors';
|
|
35
|
+
@use 'semantic-color-kinds';
|
|
36
|
+
@use 'semantic-surfaces';
|
|
37
|
+
@use 'semantic-interactive';
|
|
38
|
+
@use 'semantic-scrollbar';
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
2
|
+
// SleekSpace UI - Tokens Only
|
|
3
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
4
|
+
// This file provides ONLY CSS custom properties (design tokens) without any component styles.
|
|
5
|
+
// Perfect for Tailwind CSS users who want to use SleekSpace tokens with Tailwind utilities.
|
|
6
|
+
//
|
|
7
|
+
// Usage with Tailwind v4:
|
|
8
|
+
//
|
|
9
|
+
// @import "tailwindcss";
|
|
10
|
+
// @import "@skewedaspect/sleekspace-ui/tokens.css";
|
|
11
|
+
//
|
|
12
|
+
// Then use in your templates:
|
|
13
|
+
// <div class="bg-sk-primary text-sk-primary-text">SleekSpace + Tailwind!</div>
|
|
14
|
+
// <div class="bg-sk-purple-50 text-white">Neon purple</div>
|
|
15
|
+
//
|
|
16
|
+
// Or with arbitrary values:
|
|
17
|
+
// <div class="bg-[var(--sk-primary-base)]">Direct CSS variable</div>
|
|
18
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
19
|
+
|
|
20
|
+
@use "tokens/index" as tokens-module;
|
|
21
|
+
|
|
22
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
23
|
+
// Tailwind v4 Theme Integration
|
|
24
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
25
|
+
// Map SleekSpace CSS variables to Tailwind's @theme system for standard utilities
|
|
26
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
27
|
+
|
|
28
|
+
@theme inline {
|
|
29
|
+
/* Semantic Colors (theme-aware - change based on SkTheme) */
|
|
30
|
+
/* Each semantic color gets a full shade range using oklch lightness modifications */
|
|
31
|
+
|
|
32
|
+
/* Neutral */
|
|
33
|
+
--color-sk-neutral: var(--sk-neutral-base);
|
|
34
|
+
--color-sk-neutral-text: var(--sk-neutral-text);
|
|
35
|
+
--color-sk-neutral-5: oklch(from var(--sk-neutral-base) 0.95 c h);
|
|
36
|
+
--color-sk-neutral-10: oklch(from var(--sk-neutral-base) 0.90 c h);
|
|
37
|
+
--color-sk-neutral-20: oklch(from var(--sk-neutral-base) 0.85 c h);
|
|
38
|
+
--color-sk-neutral-30: oklch(from var(--sk-neutral-base) 0.80 c h);
|
|
39
|
+
--color-sk-neutral-40: oklch(from var(--sk-neutral-base) 0.75 c h);
|
|
40
|
+
--color-sk-neutral-50: var(--sk-neutral-base);
|
|
41
|
+
--color-sk-neutral-60: oklch(from var(--sk-neutral-base) calc(l * 0.85) c h);
|
|
42
|
+
--color-sk-neutral-70: oklch(from var(--sk-neutral-base) calc(l * 0.70) c h);
|
|
43
|
+
--color-sk-neutral-80: oklch(from var(--sk-neutral-base) calc(l * 0.55) c h);
|
|
44
|
+
--color-sk-neutral-90: oklch(from var(--sk-neutral-base) calc(l * 0.40) c h);
|
|
45
|
+
--color-sk-neutral-95: oklch(from var(--sk-neutral-base) calc(l * 0.25) c h);
|
|
46
|
+
|
|
47
|
+
/* Primary */
|
|
48
|
+
--color-sk-primary: var(--sk-primary-base);
|
|
49
|
+
--color-sk-primary-text: var(--sk-primary-text);
|
|
50
|
+
--color-sk-primary-5: oklch(from var(--sk-primary-base) 0.95 c h);
|
|
51
|
+
--color-sk-primary-10: oklch(from var(--sk-primary-base) 0.90 c h);
|
|
52
|
+
--color-sk-primary-20: oklch(from var(--sk-primary-base) 0.85 c h);
|
|
53
|
+
--color-sk-primary-30: oklch(from var(--sk-primary-base) 0.80 c h);
|
|
54
|
+
--color-sk-primary-40: oklch(from var(--sk-primary-base) 0.75 c h);
|
|
55
|
+
--color-sk-primary-50: var(--sk-primary-base);
|
|
56
|
+
--color-sk-primary-60: oklch(from var(--sk-primary-base) calc(l * 0.85) c h);
|
|
57
|
+
--color-sk-primary-70: oklch(from var(--sk-primary-base) calc(l * 0.70) c h);
|
|
58
|
+
--color-sk-primary-80: oklch(from var(--sk-primary-base) calc(l * 0.55) c h);
|
|
59
|
+
--color-sk-primary-90: oklch(from var(--sk-primary-base) calc(l * 0.40) c h);
|
|
60
|
+
--color-sk-primary-95: oklch(from var(--sk-primary-base) calc(l * 0.25) c h);
|
|
61
|
+
|
|
62
|
+
/* Accent */
|
|
63
|
+
--color-sk-accent: var(--sk-accent-base);
|
|
64
|
+
--color-sk-accent-text: var(--sk-accent-text);
|
|
65
|
+
--color-sk-accent-5: oklch(from var(--sk-accent-base) 0.95 c h);
|
|
66
|
+
--color-sk-accent-10: oklch(from var(--sk-accent-base) 0.90 c h);
|
|
67
|
+
--color-sk-accent-20: oklch(from var(--sk-accent-base) 0.85 c h);
|
|
68
|
+
--color-sk-accent-30: oklch(from var(--sk-accent-base) 0.80 c h);
|
|
69
|
+
--color-sk-accent-40: oklch(from var(--sk-accent-base) 0.75 c h);
|
|
70
|
+
--color-sk-accent-50: var(--sk-accent-base);
|
|
71
|
+
--color-sk-accent-60: oklch(from var(--sk-accent-base) calc(l * 0.85) c h);
|
|
72
|
+
--color-sk-accent-70: oklch(from var(--sk-accent-base) calc(l * 0.70) c h);
|
|
73
|
+
--color-sk-accent-80: oklch(from var(--sk-accent-base) calc(l * 0.55) c h);
|
|
74
|
+
--color-sk-accent-90: oklch(from var(--sk-accent-base) calc(l * 0.40) c h);
|
|
75
|
+
--color-sk-accent-95: oklch(from var(--sk-accent-base) calc(l * 0.25) c h);
|
|
76
|
+
|
|
77
|
+
/* Info */
|
|
78
|
+
--color-sk-info: var(--sk-info-base);
|
|
79
|
+
--color-sk-info-text: var(--sk-info-text);
|
|
80
|
+
--color-sk-info-5: oklch(from var(--sk-info-base) 0.95 c h);
|
|
81
|
+
--color-sk-info-10: oklch(from var(--sk-info-base) 0.90 c h);
|
|
82
|
+
--color-sk-info-20: oklch(from var(--sk-info-base) 0.85 c h);
|
|
83
|
+
--color-sk-info-30: oklch(from var(--sk-info-base) 0.80 c h);
|
|
84
|
+
--color-sk-info-40: oklch(from var(--sk-info-base) 0.75 c h);
|
|
85
|
+
--color-sk-info-50: var(--sk-info-base);
|
|
86
|
+
--color-sk-info-60: oklch(from var(--sk-info-base) calc(l * 0.85) c h);
|
|
87
|
+
--color-sk-info-70: oklch(from var(--sk-info-base) calc(l * 0.70) c h);
|
|
88
|
+
--color-sk-info-80: oklch(from var(--sk-info-base) calc(l * 0.55) c h);
|
|
89
|
+
--color-sk-info-90: oklch(from var(--sk-info-base) calc(l * 0.40) c h);
|
|
90
|
+
--color-sk-info-95: oklch(from var(--sk-info-base) calc(l * 0.25) c h);
|
|
91
|
+
|
|
92
|
+
/* Success */
|
|
93
|
+
--color-sk-success: var(--sk-success-base);
|
|
94
|
+
--color-sk-success-text: var(--sk-success-text);
|
|
95
|
+
--color-sk-success-5: oklch(from var(--sk-success-base) 0.95 c h);
|
|
96
|
+
--color-sk-success-10: oklch(from var(--sk-success-base) 0.90 c h);
|
|
97
|
+
--color-sk-success-20: oklch(from var(--sk-success-base) 0.85 c h);
|
|
98
|
+
--color-sk-success-30: oklch(from var(--sk-success-base) 0.80 c h);
|
|
99
|
+
--color-sk-success-40: oklch(from var(--sk-success-base) 0.75 c h);
|
|
100
|
+
--color-sk-success-50: var(--sk-success-base);
|
|
101
|
+
--color-sk-success-60: oklch(from var(--sk-success-base) calc(l * 0.85) c h);
|
|
102
|
+
--color-sk-success-70: oklch(from var(--sk-success-base) calc(l * 0.70) c h);
|
|
103
|
+
--color-sk-success-80: oklch(from var(--sk-success-base) calc(l * 0.55) c h);
|
|
104
|
+
--color-sk-success-90: oklch(from var(--sk-success-base) calc(l * 0.40) c h);
|
|
105
|
+
--color-sk-success-95: oklch(from var(--sk-success-base) calc(l * 0.25) c h);
|
|
106
|
+
|
|
107
|
+
/* Warning */
|
|
108
|
+
--color-sk-warning: var(--sk-warning-base);
|
|
109
|
+
--color-sk-warning-text: var(--sk-warning-text);
|
|
110
|
+
--color-sk-warning-5: oklch(from var(--sk-warning-base) 0.95 c h);
|
|
111
|
+
--color-sk-warning-10: oklch(from var(--sk-warning-base) 0.90 c h);
|
|
112
|
+
--color-sk-warning-20: oklch(from var(--sk-warning-base) 0.85 c h);
|
|
113
|
+
--color-sk-warning-30: oklch(from var(--sk-warning-base) 0.80 c h);
|
|
114
|
+
--color-sk-warning-40: oklch(from var(--sk-warning-base) 0.75 c h);
|
|
115
|
+
--color-sk-warning-50: var(--sk-warning-base);
|
|
116
|
+
--color-sk-warning-60: oklch(from var(--sk-warning-base) calc(l * 0.85) c h);
|
|
117
|
+
--color-sk-warning-70: oklch(from var(--sk-warning-base) calc(l * 0.70) c h);
|
|
118
|
+
--color-sk-warning-80: oklch(from var(--sk-warning-base) calc(l * 0.55) c h);
|
|
119
|
+
--color-sk-warning-90: oklch(from var(--sk-warning-base) calc(l * 0.40) c h);
|
|
120
|
+
--color-sk-warning-95: oklch(from var(--sk-warning-base) calc(l * 0.25) c h);
|
|
121
|
+
|
|
122
|
+
/* Danger */
|
|
123
|
+
--color-sk-danger: var(--sk-danger-base);
|
|
124
|
+
--color-sk-danger-text: var(--sk-danger-text);
|
|
125
|
+
--color-sk-danger-5: oklch(from var(--sk-danger-base) 0.95 c h);
|
|
126
|
+
--color-sk-danger-10: oklch(from var(--sk-danger-base) 0.90 c h);
|
|
127
|
+
--color-sk-danger-20: oklch(from var(--sk-danger-base) 0.85 c h);
|
|
128
|
+
--color-sk-danger-30: oklch(from var(--sk-danger-base) 0.80 c h);
|
|
129
|
+
--color-sk-danger-40: oklch(from var(--sk-danger-base) 0.75 c h);
|
|
130
|
+
--color-sk-danger-50: var(--sk-danger-base);
|
|
131
|
+
--color-sk-danger-60: oklch(from var(--sk-danger-base) calc(l * 0.85) c h);
|
|
132
|
+
--color-sk-danger-70: oklch(from var(--sk-danger-base) calc(l * 0.70) c h);
|
|
133
|
+
--color-sk-danger-80: oklch(from var(--sk-danger-base) calc(l * 0.55) c h);
|
|
134
|
+
--color-sk-danger-90: oklch(from var(--sk-danger-base) calc(l * 0.40) c h);
|
|
135
|
+
--color-sk-danger-95: oklch(from var(--sk-danger-base) calc(l * 0.25) c h);
|
|
136
|
+
|
|
137
|
+
/* Color Palette - Gray */
|
|
138
|
+
--color-sk-gray-5: var(--sk-color-gray-05);
|
|
139
|
+
--color-sk-gray-10: var(--sk-color-gray-10);
|
|
140
|
+
--color-sk-gray-20: var(--sk-color-gray-20);
|
|
141
|
+
--color-sk-gray-30: var(--sk-color-gray-30);
|
|
142
|
+
--color-sk-gray-40: var(--sk-color-gray-40);
|
|
143
|
+
--color-sk-gray-50: var(--sk-color-gray-50);
|
|
144
|
+
--color-sk-gray-60: var(--sk-color-gray-60);
|
|
145
|
+
--color-sk-gray-70: var(--sk-color-gray-70);
|
|
146
|
+
--color-sk-gray-80: var(--sk-color-gray-80);
|
|
147
|
+
--color-sk-gray-90: var(--sk-color-gray-90);
|
|
148
|
+
--color-sk-gray-95: var(--sk-color-gray-95);
|
|
149
|
+
|
|
150
|
+
/* Color Palette - Blue */
|
|
151
|
+
--color-sk-blue-5: var(--sk-color-blue-05);
|
|
152
|
+
--color-sk-blue-10: var(--sk-color-blue-10);
|
|
153
|
+
--color-sk-blue-20: var(--sk-color-blue-20);
|
|
154
|
+
--color-sk-blue-30: var(--sk-color-blue-30);
|
|
155
|
+
--color-sk-blue-40: var(--sk-color-blue-40);
|
|
156
|
+
--color-sk-blue-50: var(--sk-color-blue-50);
|
|
157
|
+
--color-sk-blue-60: var(--sk-color-blue-60);
|
|
158
|
+
--color-sk-blue-70: var(--sk-color-blue-70);
|
|
159
|
+
--color-sk-blue-80: var(--sk-color-blue-80);
|
|
160
|
+
--color-sk-blue-90: var(--sk-color-blue-90);
|
|
161
|
+
--color-sk-blue-95: var(--sk-color-blue-95);
|
|
162
|
+
|
|
163
|
+
/* Color Palette - Red */
|
|
164
|
+
--color-sk-red-5: var(--sk-color-red-05);
|
|
165
|
+
--color-sk-red-10: var(--sk-color-red-10);
|
|
166
|
+
--color-sk-red-20: var(--sk-color-red-20);
|
|
167
|
+
--color-sk-red-30: var(--sk-color-red-30);
|
|
168
|
+
--color-sk-red-40: var(--sk-color-red-40);
|
|
169
|
+
--color-sk-red-50: var(--sk-color-red-50);
|
|
170
|
+
--color-sk-red-60: var(--sk-color-red-60);
|
|
171
|
+
--color-sk-red-70: var(--sk-color-red-70);
|
|
172
|
+
--color-sk-red-80: var(--sk-color-red-80);
|
|
173
|
+
--color-sk-red-90: var(--sk-color-red-90);
|
|
174
|
+
--color-sk-red-95: var(--sk-color-red-95);
|
|
175
|
+
|
|
176
|
+
/* Color Palette - Orange */
|
|
177
|
+
--color-sk-orange-5: var(--sk-color-orange-05);
|
|
178
|
+
--color-sk-orange-10: var(--sk-color-orange-10);
|
|
179
|
+
--color-sk-orange-20: var(--sk-color-orange-20);
|
|
180
|
+
--color-sk-orange-30: var(--sk-color-orange-30);
|
|
181
|
+
--color-sk-orange-40: var(--sk-color-orange-40);
|
|
182
|
+
--color-sk-orange-50: var(--sk-color-orange-50);
|
|
183
|
+
--color-sk-orange-60: var(--sk-color-orange-60);
|
|
184
|
+
--color-sk-orange-70: var(--sk-color-orange-70);
|
|
185
|
+
--color-sk-orange-80: var(--sk-color-orange-80);
|
|
186
|
+
--color-sk-orange-90: var(--sk-color-orange-90);
|
|
187
|
+
--color-sk-orange-95: var(--sk-color-orange-95);
|
|
188
|
+
|
|
189
|
+
/* Color Palette - Yellow */
|
|
190
|
+
--color-sk-yellow-5: var(--sk-color-yellow-05);
|
|
191
|
+
--color-sk-yellow-10: var(--sk-color-yellow-10);
|
|
192
|
+
--color-sk-yellow-20: var(--sk-color-yellow-20);
|
|
193
|
+
--color-sk-yellow-30: var(--sk-color-yellow-30);
|
|
194
|
+
--color-sk-yellow-40: var(--sk-color-yellow-40);
|
|
195
|
+
--color-sk-yellow-50: var(--sk-color-yellow-50);
|
|
196
|
+
--color-sk-yellow-60: var(--sk-color-yellow-60);
|
|
197
|
+
--color-sk-yellow-70: var(--sk-color-yellow-70);
|
|
198
|
+
--color-sk-yellow-80: var(--sk-color-yellow-80);
|
|
199
|
+
--color-sk-yellow-90: var(--sk-color-yellow-90);
|
|
200
|
+
--color-sk-yellow-95: var(--sk-color-yellow-95);
|
|
201
|
+
|
|
202
|
+
/* Color Palette - Green */
|
|
203
|
+
--color-sk-green-5: var(--sk-color-green-05);
|
|
204
|
+
--color-sk-green-10: var(--sk-color-green-10);
|
|
205
|
+
--color-sk-green-20: var(--sk-color-green-20);
|
|
206
|
+
--color-sk-green-30: var(--sk-color-green-30);
|
|
207
|
+
--color-sk-green-40: var(--sk-color-green-40);
|
|
208
|
+
--color-sk-green-50: var(--sk-color-green-50);
|
|
209
|
+
--color-sk-green-60: var(--sk-color-green-60);
|
|
210
|
+
--color-sk-green-70: var(--sk-color-green-70);
|
|
211
|
+
--color-sk-green-80: var(--sk-color-green-80);
|
|
212
|
+
--color-sk-green-90: var(--sk-color-green-90);
|
|
213
|
+
--color-sk-green-95: var(--sk-color-green-95);
|
|
214
|
+
|
|
215
|
+
/* Color Palette - Mint */
|
|
216
|
+
--color-sk-mint-5: var(--sk-color-mint-05);
|
|
217
|
+
--color-sk-mint-10: var(--sk-color-mint-10);
|
|
218
|
+
--color-sk-mint-20: var(--sk-color-mint-20);
|
|
219
|
+
--color-sk-mint-30: var(--sk-color-mint-30);
|
|
220
|
+
--color-sk-mint-40: var(--sk-color-mint-40);
|
|
221
|
+
--color-sk-mint-50: var(--sk-color-mint-50);
|
|
222
|
+
--color-sk-mint-60: var(--sk-color-mint-60);
|
|
223
|
+
--color-sk-mint-70: var(--sk-color-mint-70);
|
|
224
|
+
--color-sk-mint-80: var(--sk-color-mint-80);
|
|
225
|
+
--color-sk-mint-90: var(--sk-color-mint-90);
|
|
226
|
+
--color-sk-mint-95: var(--sk-color-mint-95);
|
|
227
|
+
|
|
228
|
+
/* Color Palette - Cyan */
|
|
229
|
+
--color-sk-cyan-5: var(--sk-color-cyan-05);
|
|
230
|
+
--color-sk-cyan-10: var(--sk-color-cyan-10);
|
|
231
|
+
--color-sk-cyan-20: var(--sk-color-cyan-20);
|
|
232
|
+
--color-sk-cyan-30: var(--sk-color-cyan-30);
|
|
233
|
+
--color-sk-cyan-40: var(--sk-color-cyan-40);
|
|
234
|
+
--color-sk-cyan-50: var(--sk-color-cyan-50);
|
|
235
|
+
--color-sk-cyan-60: var(--sk-color-cyan-60);
|
|
236
|
+
--color-sk-cyan-70: var(--sk-color-cyan-70);
|
|
237
|
+
--color-sk-cyan-80: var(--sk-color-cyan-80);
|
|
238
|
+
--color-sk-cyan-90: var(--sk-color-cyan-90);
|
|
239
|
+
--color-sk-cyan-95: var(--sk-color-cyan-95);
|
|
240
|
+
|
|
241
|
+
/* Color Palette - Purple */
|
|
242
|
+
--color-sk-purple-5: var(--sk-color-purple-05);
|
|
243
|
+
--color-sk-purple-10: var(--sk-color-purple-10);
|
|
244
|
+
--color-sk-purple-20: var(--sk-color-purple-20);
|
|
245
|
+
--color-sk-purple-30: var(--sk-color-purple-30);
|
|
246
|
+
--color-sk-purple-40: var(--sk-color-purple-40);
|
|
247
|
+
--color-sk-purple-50: var(--sk-color-purple-50);
|
|
248
|
+
--color-sk-purple-60: var(--sk-color-purple-60);
|
|
249
|
+
--color-sk-purple-70: var(--sk-color-purple-70);
|
|
250
|
+
--color-sk-purple-80: var(--sk-color-purple-80);
|
|
251
|
+
--color-sk-purple-90: var(--sk-color-purple-90);
|
|
252
|
+
--color-sk-purple-95: var(--sk-color-purple-95);
|
|
253
|
+
|
|
254
|
+
/* Color Palette - Pink */
|
|
255
|
+
--color-sk-pink-5: var(--sk-color-pink-05);
|
|
256
|
+
--color-sk-pink-10: var(--sk-color-pink-10);
|
|
257
|
+
--color-sk-pink-20: var(--sk-color-pink-20);
|
|
258
|
+
--color-sk-pink-30: var(--sk-color-pink-30);
|
|
259
|
+
--color-sk-pink-40: var(--sk-color-pink-40);
|
|
260
|
+
--color-sk-pink-50: var(--sk-color-pink-50);
|
|
261
|
+
--color-sk-pink-60: var(--sk-color-pink-60);
|
|
262
|
+
--color-sk-pink-70: var(--sk-color-pink-70);
|
|
263
|
+
--color-sk-pink-80: var(--sk-color-pink-80);
|
|
264
|
+
--color-sk-pink-90: var(--sk-color-pink-90);
|
|
265
|
+
--color-sk-pink-95: var(--sk-color-pink-95);
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
2
|
+
// Utilities
|
|
3
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
4
|
+
// Utility classes for rapid development and common styling patterns
|
|
5
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
6
|
+
|
|
7
|
+
@forward 'typography';
|
|
8
|
+
|
|
9
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
2
|
+
// Typography Utilities
|
|
3
|
+
// Provides styling for inline code, keyboard shortcuts, and other text elements
|
|
4
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
5
|
+
|
|
6
|
+
@use '../theme/variables' as *;
|
|
7
|
+
|
|
8
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
9
|
+
// Code and Kbd Base Styles (NO beveled corners - using rounded corners instead)
|
|
10
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
11
|
+
|
|
12
|
+
code,
|
|
13
|
+
kbd
|
|
14
|
+
{
|
|
15
|
+
font-family: var(--sk-font-family-mono);
|
|
16
|
+
padding: 0.125rem 0.375rem;
|
|
17
|
+
border-radius: 0.25rem;
|
|
18
|
+
font-size: 0.875em;
|
|
19
|
+
line-height: 1;
|
|
20
|
+
|
|
21
|
+
// Default neutral styling
|
|
22
|
+
color: white;
|
|
23
|
+
background: color-mix(in oklch, var(--sk-neutral-base), black 50%);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
kbd
|
|
27
|
+
{
|
|
28
|
+
// Slightly different style for keyboard keys
|
|
29
|
+
font-weight: 600;
|
|
30
|
+
padding: 0.25rem 0.5rem;
|
|
31
|
+
border: 1px dashed color-mix(in oklch, var(--sk-neutral-base), black 50%);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
35
|
+
// Code/Kbd Color Kinds
|
|
36
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
37
|
+
|
|
38
|
+
@each $kind in $kinds
|
|
39
|
+
{
|
|
40
|
+
code.sk-#{ "" + $kind },
|
|
41
|
+
kbd.sk-#{ "" + $kind }
|
|
42
|
+
{
|
|
43
|
+
color: var(--sk-#{ $kind }-base);
|
|
44
|
+
background: color-mix(in oklch, var(--sk-#{ $kind }-base), black 70%);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
kbd.sk-#{ "" + $kind }
|
|
48
|
+
{
|
|
49
|
+
border-color: color-mix(in oklch, var(--sk-#{ $kind }-base), black 50%);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Special case for neutral - use white text and lighter background
|
|
54
|
+
code.sk-neutral,
|
|
55
|
+
kbd.sk-neutral
|
|
56
|
+
{
|
|
57
|
+
color: white;
|
|
58
|
+
background: color-mix(in oklch, var(--sk-neutral-base), black 50%);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
62
|
+
// Text Color Utilities
|
|
63
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
64
|
+
|
|
65
|
+
@each $kind in $kinds
|
|
66
|
+
{
|
|
67
|
+
.text-#{ "" + $kind }
|
|
68
|
+
{
|
|
69
|
+
color: var(--sk-#{ $kind }-base) !important;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.text-#{ "" + $kind }-subtle
|
|
73
|
+
{
|
|
74
|
+
color: color-mix(in oklch, var(--sk-#{ $kind }-base), transparent 50%) !important;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
79
|
+
// Header Utilities
|
|
80
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
81
|
+
|
|
82
|
+
.h1,
|
|
83
|
+
.h2,
|
|
84
|
+
.h3,
|
|
85
|
+
.h4,
|
|
86
|
+
.h5,
|
|
87
|
+
.h6
|
|
88
|
+
{
|
|
89
|
+
margin-top: 0;
|
|
90
|
+
margin-bottom: 0.5rem;
|
|
91
|
+
font-weight: 600;
|
|
92
|
+
line-height: 1.2;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.h1 { font-size: 2.5rem; }
|
|
96
|
+
.h2 { font-size: 2rem; }
|
|
97
|
+
.h3 { font-size: 1.75rem; }
|
|
98
|
+
.h4 { font-size: 1.5rem; }
|
|
99
|
+
.h5 { font-size: 1.25rem; }
|
|
100
|
+
.h6 { font-size: 1rem; }
|
|
101
|
+
|
|
102
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
103
|
+
// Header Underline Utilities
|
|
104
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
105
|
+
|
|
106
|
+
@each $kind in $kinds
|
|
107
|
+
{
|
|
108
|
+
.underline-#{ "" + $kind }
|
|
109
|
+
{
|
|
110
|
+
border-bottom: 2px solid var(--sk-#{ $kind }-base);
|
|
111
|
+
padding-bottom: 0.5rem;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.underline-#{ "" + $kind }-subtle
|
|
115
|
+
{
|
|
116
|
+
border-bottom: 2px solid color-mix(in oklch, var(--sk-#{ $kind }-base), transparent 50%);
|
|
117
|
+
padding-bottom: 0.5rem;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
//----------------------------------------------------------------------------------------------------------------------
|
package/src/types.ts
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
2
|
+
// Common Types
|
|
3
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
4
|
+
|
|
5
|
+
// Common component sizes
|
|
6
|
+
export type ComponentSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
7
|
+
|
|
8
|
+
// Semantic kinds (themeable, colors with meaning)
|
|
9
|
+
export type SemanticKind = 'neutral' | 'primary' | 'accent' | 'danger' | 'info' | 'success' | 'warning';
|
|
10
|
+
|
|
11
|
+
// Color kinds (non-themeable, direct palette access)
|
|
12
|
+
export type ColorKind = 'boulder' | 'neon-blue' | 'light-blue' | 'neon-orange' | 'neon-purple' | 'neon-green'
|
|
13
|
+
| 'neon-mint' | 'neon-pink' | 'yellow' | 'red';
|
|
14
|
+
|
|
15
|
+
// All component kinds (semantic + color)
|
|
16
|
+
export type ComponentKind = SemanticKind | ColorKind;
|
|
17
|
+
|
|
18
|
+
// Common button/interactive variants
|
|
19
|
+
export type ComponentVariant = 'solid' | 'outline' | 'subtle' | 'ghost' | 'link';
|
|
20
|
+
|
|
21
|
+
//----------------------------------------------------------------------------------------------------------------------
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Custom color props interface for components.
|
|
25
|
+
* Allows overriding component colors with any valid CSS color value.
|
|
26
|
+
*/
|
|
27
|
+
export interface ComponentCustomColors
|
|
28
|
+
{
|
|
29
|
+
/**
|
|
30
|
+
* Base color for the component.
|
|
31
|
+
* Accepts any valid CSS color value including:
|
|
32
|
+
* - Hex colors: "#8B5CF6"
|
|
33
|
+
* - OKLCH colors: "oklch(0.7 0.25 300)"
|
|
34
|
+
* - RGB/HSL: "rgb(139, 92, 246)", "hsl(258, 90%, 66%)"
|
|
35
|
+
* - CSS variables: "var(--color-neon-green-200)"
|
|
36
|
+
* - Named colors: "rebeccapurple"
|
|
37
|
+
*
|
|
38
|
+
* When provided, this overrides the color from the `kind` prop.
|
|
39
|
+
*/
|
|
40
|
+
baseColor ?: string;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Text/foreground color for the component.
|
|
44
|
+
* If not provided, automatically calculated for optimal contrast with the base color.
|
|
45
|
+
* Accepts the same CSS color formats as baseColor.
|
|
46
|
+
*/
|
|
47
|
+
textColor ?: string;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
//----------------------------------------------------------------------------------------------------------------------
|