pxd 0.0.4 → 0.0.6

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.
Files changed (114) hide show
  1. package/README.md +10 -76
  2. package/dist/components/button/index.vue +84 -0
  3. package/dist/components/config-provider/index.vue +26 -0
  4. package/dist/composables/useConfigProvider.d.ts +8 -0
  5. package/dist/composables/useConfigProvider.js +11 -0
  6. package/dist/index.d.ts +5 -0
  7. package/dist/index.js +12 -0
  8. package/dist/plugins/nuxt.d.ts +5 -0
  9. package/dist/plugins/nuxt.js +24 -0
  10. package/dist/plugins/resolver.d.ts +3 -3
  11. package/dist/plugins/resolver.js +19 -1
  12. package/dist/tokens.css +378 -0
  13. package/package.json +55 -37
  14. package/dist/components/_icons/CheckIcon.js +0 -1
  15. package/dist/components/_icons/ChevronDownIcon.js +0 -1
  16. package/dist/components/_icons/ExclamationTriangleIcon.js +0 -1
  17. package/dist/components/_icons/ExternalLinkIcon.js +0 -1
  18. package/dist/components/_utils/css.d.ts +0 -9
  19. package/dist/components/_utils/css.js +0 -1
  20. package/dist/components/avatar/_.js +0 -1
  21. package/dist/components/avatar/index.d.ts +0 -6
  22. package/dist/components/avatar/index.js +0 -1
  23. package/dist/components/avatar/src/avatar.d.ts +0 -22
  24. package/dist/components/avatar-group/index.d.ts +0 -7
  25. package/dist/components/avatar-group/index.js +0 -1
  26. package/dist/components/avatar-group/src/avatar-group.d.ts +0 -3
  27. package/dist/components/badge/index.d.ts +0 -1
  28. package/dist/components/badge/index.js +0 -1
  29. package/dist/components/badge/src/badge.d.ts +0 -42
  30. package/dist/components/book/index.d.ts +0 -1
  31. package/dist/components/book/index.js +0 -1
  32. package/dist/components/book/src/book.d.ts +0 -8
  33. package/dist/components/button/index.d.ts +0 -23
  34. package/dist/components/button/index.js +0 -1
  35. package/dist/components/button/src/button.d.ts +0 -29
  36. package/dist/components/checkbox/index.d.ts +0 -1
  37. package/dist/components/checkbox/index.js +0 -1
  38. package/dist/components/checkbox/src/checkbox.d.ts +0 -27
  39. package/dist/components/checkbox-group/index.d.ts +0 -4
  40. package/dist/components/checkbox-group/index.js +0 -1
  41. package/dist/components/checkbox-group/src/checkbox-group.d.ts +0 -17
  42. package/dist/components/choicebox/index.d.ts +0 -1
  43. package/dist/components/choicebox/index.js +0 -1
  44. package/dist/components/choicebox/src/choicebox.d.ts +0 -21
  45. package/dist/components/choicebox-group/index.d.ts +0 -13
  46. package/dist/components/choicebox-group/index.js +0 -1
  47. package/dist/components/choicebox-group/src/choicebox-group.d.ts +0 -25
  48. package/dist/components/collapse/index.d.ts +0 -1
  49. package/dist/components/collapse/index.js +0 -1
  50. package/dist/components/collapse/src/collapse.d.ts +0 -9
  51. package/dist/components/combobox/index.d.ts +0 -1
  52. package/dist/components/combobox/index.js +0 -1
  53. package/dist/components/combobox/src/combobox.d.ts +0 -19
  54. package/dist/components/dialog/index.d.ts +0 -1
  55. package/dist/components/dialog/index.js +0 -1
  56. package/dist/components/dialog/src/dialog.d.ts +0 -32
  57. package/dist/components/error/index.d.ts +0 -1
  58. package/dist/components/error/index.js +0 -1
  59. package/dist/components/error/src/error.d.ts +0 -22
  60. package/dist/components/input/index.d.ts +0 -4
  61. package/dist/components/input/index.js +0 -1
  62. package/dist/components/input/src/input.d.ts +0 -25
  63. package/dist/components/keyboard-input/index.d.ts +0 -1
  64. package/dist/components/keyboard-input/index.js +0 -1
  65. package/dist/components/keyboard-input/src/keyboard-input.d.ts +0 -24
  66. package/dist/components/link/index.d.ts +0 -1
  67. package/dist/components/link/index.js +0 -1
  68. package/dist/components/link/src/link.d.ts +0 -22
  69. package/dist/components/loading-dots/index.d.ts +0 -1
  70. package/dist/components/loading-dots/index.js +0 -1
  71. package/dist/components/loading-dots/src/loading-dots.d.ts +0 -19
  72. package/dist/components/overlay/index.d.ts +0 -1
  73. package/dist/components/overlay/index.js +0 -1
  74. package/dist/components/overlay/src/overlay.d.ts +0 -5
  75. package/dist/components/progress/index.d.ts +0 -1
  76. package/dist/components/progress/index.js +0 -1
  77. package/dist/components/progress/src/progress.d.ts +0 -15
  78. package/dist/components/radio/index.d.ts +0 -6
  79. package/dist/components/radio/index.js +0 -1
  80. package/dist/components/radio/src/radio.d.ts +0 -17
  81. package/dist/components/scrollbar/index.d.ts +0 -1
  82. package/dist/components/scrollbar/index.js +0 -1
  83. package/dist/components/scrollbar/src/scrollbar.d.ts +0 -16
  84. package/dist/components/select/index.d.ts +0 -1
  85. package/dist/components/select/index.js +0 -1
  86. package/dist/components/select/src/select.d.ts +0 -15
  87. package/dist/components/show-more/index.d.ts +0 -1
  88. package/dist/components/show-more/index.js +0 -1
  89. package/dist/components/show-more/src/show-more.d.ts +0 -16
  90. package/dist/components/spinner/_.js +0 -1
  91. package/dist/components/spinner/index.d.ts +0 -1
  92. package/dist/components/spinner/index.js +0 -1
  93. package/dist/components/spinner/src/spinner.d.ts +0 -5
  94. package/dist/components/status-dot/index.d.ts +0 -1
  95. package/dist/components/status-dot/index.js +0 -1
  96. package/dist/components/status-dot/src/status-dot.d.ts +0 -6
  97. package/dist/components/switch/index.d.ts +0 -1
  98. package/dist/components/switch/index.js +0 -1
  99. package/dist/components/switch/src/switch.d.ts +0 -38
  100. package/dist/components/tabs/index.d.ts +0 -8
  101. package/dist/components/tabs/index.js +0 -1
  102. package/dist/components/tabs/src/tabs.d.ts +0 -48
  103. package/dist/components/tabs-item/index.d.ts +0 -1
  104. package/dist/components/tabs-item/index.js +0 -1
  105. package/dist/components/tabs-item/src/tabs-item.d.ts +0 -34
  106. package/dist/components/textarea/index.d.ts +0 -1
  107. package/dist/components/textarea/index.js +0 -1
  108. package/dist/components/textarea/src/textarea.d.ts +0 -16
  109. package/dist/components/toggle/index.d.ts +0 -1
  110. package/dist/components/toggle/index.js +0 -1
  111. package/dist/components/toggle/src/toggle.d.ts +0 -35
  112. package/dist/plugins/tailwind-preset.d.ts +0 -193
  113. package/dist/plugins/tailwind-preset.js +0 -1
  114. package/dist/vars.css +0 -1
package/README.md CHANGED
@@ -1,84 +1,18 @@
1
1
  # PXD
2
- Vue component library based on radix-vue and geist design system. Everything is just right.
2
+ A universal UI component library for Vue2&3
3
3
 
4
- > [!IMPORTANT]
5
- > The library is still under development and may undergo major changes at any time.
4
+ ## Contribution
6
5
 
7
- > [!IMPORTANT]
8
- > This is a COMMUNITY PROJECT, not associated with Vercel, originating from [Vercel design system](https://vercel.com/geist/introduction). Did not strictly follow its implementation, and added some personal ideas.
6
+ ### Dev
7
+ ```shell
8
+ pnpm install
9
9
 
10
- ## Install
10
+ pnpm dev:lib
11
11
 
12
- ```bash
13
- pnpm i pxd
12
+ pnpm dev
14
13
  ```
15
14
 
16
- ## Usage
17
-
18
- ### Styles
19
- ```js
20
- // tailwind.config.js
21
-
22
- export default {
23
- content: [
24
- './src/**/*.{ts,tsx,vue}',
25
- './node_modules/pxd/dist/components/**/*.js',
26
- ]
27
- }
28
- ```
29
-
30
- ### vars.css
31
-
32
- ```js
33
- // main.ts
34
- import 'pxd/vars.css'
35
- ```
36
-
37
- ### Auto import
38
-
39
- ```js
40
- // vite.config.js
41
- import PxResolver from 'pxd/resolver'
42
- import VueComponents from 'unplugin-vue-components/vite'
43
- import { defineConfig } from 'vite'
44
-
45
- export default defineConfig({
46
- plugins: [
47
- VueComponents({
48
- resolvers: [
49
- PxResolver()
50
- ]
51
- })
52
- ]
53
- })
15
+ ### Build
16
+ ```shell
17
+ pnpm build
54
18
  ```
55
-
56
- ### Global import
57
- We strongly recommend using automatic import because it can significantly reduce the package size.
58
-
59
- ## Manual Import
60
- ```js
61
- // main.ts
62
-
63
- // All components only need to import this style file.
64
- import 'pxd/vars.css'
65
- ```
66
-
67
- ```vue
68
- <script setup>
69
- import Button from 'pxd/components/button/index.js'
70
- </script>
71
-
72
- <template>
73
- <Button>
74
- Button
75
- </Button>
76
- </template>
77
- ```
78
-
79
- ## Acknowledgement
80
- rankings are in no particular order, they are all very important to this project.
81
-
82
- - Vite: https://vitejs.dev/
83
- - Iconify: https://iconify.design/
84
- - Geist Design System: https://vercel.com/geist/introduction
@@ -0,0 +1,84 @@
1
+ <script lang="ts" setup>
2
+ import { useConfigProvider } from '../../composables/useConfigProvider'
3
+ import { computed } from 'vue'
4
+
5
+ interface Props {
6
+ variant?: keyof typeof VARIANTS
7
+ size?: keyof typeof SIZES
8
+ disabled?: boolean
9
+ block?: boolean
10
+ href?: string
11
+ shape?: 'square' | 'rounded'
12
+ }
13
+
14
+ defineOptions({
15
+ name: 'PButton',
16
+ })
17
+
18
+ const props = withDefaults(
19
+ defineProps<Props>(),
20
+ {
21
+ variant: 'outline',
22
+ },
23
+ )
24
+
25
+ const config = useConfigProvider()
26
+
27
+ const SIZES = {
28
+ xs: 'px-1 rounded-md h-6 text-sm ',
29
+ sm: 'px-1.5 rounded-md h-7 text-sm ',
30
+ md: 'px-2.5 rounded-md h-8 text-sm ',
31
+ lg: 'px-3.5 rounded-lg h-9 text-base ',
32
+ }
33
+
34
+ const VARIANTS = {
35
+ outline: 'bg-background text-foreground hover:bg-background-hover active:bg-background-active border border-input ',
36
+ ghost: 'bg-transparent text-foreground hover:bg-gray-alpha-200 active:bg-gray-alpha-300 ',
37
+ primary: 'bg-foreground text-background hover:bg-foreground/80 active:bg-foreground ',
38
+ error: 'bg-red-800 text-white hover:bg-red-700 active:bg-red-800 ',
39
+ warning: 'bg-amber-800 text-black hover:bg-amber-700 active:bg-amber-800 ',
40
+ success: 'bg-green-800 text-white hover:bg-green-700 active:bg-green-800 ',
41
+ }
42
+
43
+ const DISABLED_CLASS_NAMES = 'disabled:bg-gray-100 !text-gray-700 border-none shadow-[0_0_0_1px_hsl(var(--gray-200-value))] !cursor-not-allowed '
44
+
45
+ const computedClassNames = computed(() => {
46
+ let classNames = 'cursor-pointer transition-colors items-center justify-center '
47
+
48
+ classNames += VARIANTS[props.variant]
49
+
50
+ classNames += SIZES[props.size || config.size]
51
+
52
+ classNames += props.block ? 'flex ' : 'inline-flex '
53
+
54
+ if (props.disabled) {
55
+ classNames += DISABLED_CLASS_NAMES
56
+ }
57
+
58
+ if (props.shape === 'square') {
59
+ classNames += '!rounded-none '
60
+ }
61
+ else if (props.shape === 'rounded') {
62
+ classNames += '!rounded-full '
63
+ }
64
+
65
+ return classNames
66
+ })
67
+ </script>
68
+
69
+ <template>
70
+ <Component
71
+ :is="props.href ? 'router-link' : 'button'"
72
+ class="pxd-button" :class="computedClassNames"
73
+ :disabled="disabled"
74
+ :to="href"
75
+ >
76
+ <slot name="prefix" />
77
+
78
+ <span class="px-1 inline-flex truncate">
79
+ <slot />
80
+ </span>
81
+
82
+ <slot name="suffix" />
83
+ </Component>
84
+ </template>
@@ -0,0 +1,26 @@
1
+ <script lang="ts" setup>
2
+ import type { VNode } from 'vue'
3
+ import { provideConfigProvider, type ComponentSize } from '../../composables/useConfigProvider'
4
+
5
+ interface Props {
6
+ as?: keyof HTMLElementTagNameMap | VNode
7
+ size?: ComponentSize
8
+ }
9
+
10
+ const props = withDefaults(
11
+ defineProps<Props>(),
12
+ { as: 'div', size: 'md' },
13
+ )
14
+
15
+ defineOptions({
16
+ name: 'PConfigProvider',
17
+ })
18
+
19
+ provideConfigProvider(props)
20
+ </script>
21
+
22
+ <template>
23
+ <component :is="as">
24
+ <slot />
25
+ </component>
26
+ </template>
@@ -0,0 +1,8 @@
1
+ export declare const injectionKey = "configProvider";
2
+ export type ComponentSize = 'xs' | 'sm' | 'md' | 'lg';
3
+ export interface ConfigProviderProps {
4
+ size?: ComponentSize;
5
+ }
6
+ export declare const defaultConfig: Required<ConfigProviderProps>;
7
+ export declare function provideConfigProvider(configProvider: ConfigProviderProps): void;
8
+ export declare function useConfigProvider(): Required<ConfigProviderProps>;
@@ -0,0 +1,11 @@
1
+ import { inject, provide } from "vue";
2
+ export const injectionKey = "configProvider";
3
+ export const defaultConfig = {
4
+ size: "md"
5
+ };
6
+ export function provideConfigProvider(configProvider) {
7
+ provide(injectionKey, configProvider);
8
+ }
9
+ export function useConfigProvider() {
10
+ return inject(injectionKey, defaultConfig);
11
+ }
@@ -0,0 +1,5 @@
1
+ import type { App } from 'vue';
2
+ import Button from './components/button/index.vue';
3
+ import ConfigProvider from './components/config-provider/index.vue';
4
+ export default function install(app: App): void;
5
+ export { Button, ConfigProvider, };
package/dist/index.js ADDED
@@ -0,0 +1,12 @@
1
+ import Button from "./components/button/index.vue";
2
+ import ConfigProvider from "./components/config-provider/index.vue";
3
+ const components = [Button, ConfigProvider];
4
+ export default function install(app) {
5
+ components.forEach((component) => {
6
+ app.component(component.name, component);
7
+ });
8
+ }
9
+ export {
10
+ Button,
11
+ ConfigProvider
12
+ };
@@ -0,0 +1,5 @@
1
+ export interface ModuleOptions {
2
+ prefix: string;
3
+ }
4
+ declare const _default: import("@nuxt/schema").NuxtModule<ModuleOptions, ModuleOptions, false>;
5
+ export default _default;
@@ -0,0 +1,24 @@
1
+ import { addComponent, defineNuxtModule } from "@nuxt/kit";
2
+ import * as components from "../index.js";
3
+ import { name } from "../../package.json";
4
+ export default defineNuxtModule({
5
+ meta: {
6
+ name: "pxd",
7
+ configKey: "pxd",
8
+ compatibility: {
9
+ nuxt: ">=3.0.0"
10
+ }
11
+ },
12
+ defaults: {
13
+ prefix: ""
14
+ },
15
+ async setup(options) {
16
+ for (const component in components) {
17
+ addComponent({
18
+ name: `${options.prefix}${component}`,
19
+ export: component,
20
+ filePath: name
21
+ });
22
+ }
23
+ }
24
+ });
@@ -1,3 +1,3 @@
1
- import { ComponentResolver } from 'unplugin-vue-components';
2
- declare function PxdResolver(): ComponentResolver;
3
- export default PxdResolver;
1
+ import type { ComponentResolver } from 'unplugin-vue-components';
2
+ declare function resolver(): ComponentResolver;
3
+ export default resolver;
@@ -1 +1,19 @@
1
- const n="pxd",o=n[0].toUpperCase(),s=`${n}/dist`,c=(()=>{const e=".js";return t=>`${s}/components/${t}/index${e}`})();function p(){return{type:"component",resolve:e=>{const t=new RegExp(`^${o}[A-Z]`);if(!e.match(t))return;const r=e.replace(new RegExp(o,"i"),"").replace(/([A-Z])/g,"-$1").toLowerCase().slice(1);return{importName:e,from:c(r),sideEffects:[]}}}}export{p as default};
1
+ const LIBRARY_NAME = "pxd";
2
+ const NAMESPACE = LIBRARY_NAME[0].toUpperCase();
3
+ function resolver() {
4
+ const prefixRegex = /^P[A-Z]/;
5
+ return {
6
+ type: "component",
7
+ resolve(name) {
8
+ if (!prefixRegex.test(name)) {
9
+ return;
10
+ }
11
+ const partialName = name.replace(new RegExp(NAMESPACE, "i"), "").replace(/([A-Z])/g, "-$1").toLowerCase().slice(1);
12
+ return {
13
+ importName: name,
14
+ from: `pxd/components/${partialName}`
15
+ };
16
+ }
17
+ };
18
+ }
19
+ export default resolver;
@@ -0,0 +1,378 @@
1
+ @custom-variant dark (&:is(.dark *));
2
+
3
+ @utility scrollbar-hidden {
4
+ &::-webkit-scrollbar {
5
+ display: none;
6
+ }
7
+ }
8
+
9
+ :root {
10
+ --radius: 0.5rem;
11
+
12
+ --background-100: #fff;
13
+ --background-200: #fafafa;
14
+
15
+ --accents-1: #fafafa;
16
+ --accents-2: #eaeaea;
17
+ --accents-3: #999;
18
+ --accents-4: #888;
19
+ --accents-5: #666;
20
+ --accents-6: #444;
21
+ --accents-7: #333;
22
+ --accents-8: #111;
23
+
24
+ --gray-alpha-100: hsla(0, 0%, 0%, 0.05);
25
+ --gray-alpha-200: hsla(0, 0%, 0%, 0.08);
26
+ --gray-alpha-300: hsla(0, 0%, 0%, 0.12);
27
+ --gray-alpha-400: hsla(0, 0%, 0%, 0.17);
28
+ --gray-alpha-500: hsla(0, 0%, 0%, 0.21);
29
+ --gray-alpha-600: hsla(0, 0%, 0%, 0.34);
30
+ --gray-alpha-700: hsla(0, 0%, 0%, 0.44);
31
+ --gray-alpha-800: hsla(0, 0%, 0%, 0.51);
32
+ --gray-alpha-900: hsla(0, 0%, 0%, 0.61);
33
+ --gray-alpha-1000: hsla(0, 0%, 0%, 0.91);
34
+
35
+ --gray-100-value: 0, 0%, 95%;
36
+ --gray-200-value: 0, 0%, 93%;
37
+ --gray-300-value: 0, 0%, 90%;
38
+ --gray-400-value: 0, 0%, 85%;
39
+ --gray-500-value: 0, 0%, 79%;
40
+ --gray-600-value: 0, 0%, 66%;
41
+ --gray-700-value: 0, 0%, 56%;
42
+ --gray-800-value: 0, 0%, 49%;
43
+ --gray-900-value: 0, 0%, 40%;
44
+ --gray-1000-value: 0, 0%, 9%;
45
+
46
+ --blue-100-value: 212, 100%, 97%;
47
+ --blue-200-value: 210, 100%, 96%;
48
+ --blue-300-value: 210, 100%, 94%;
49
+ --blue-400-value: 209, 100%, 90%;
50
+ --blue-500-value: 209, 100%, 80%;
51
+ --blue-600-value: 208, 100%, 66%;
52
+ --blue-700-value: 212, 100%, 48%;
53
+ --blue-800-value: 212, 100%, 41%;
54
+ --blue-900-value: 211, 100%, 42%;
55
+ --blue-1000-value: 211, 100%, 15%;
56
+
57
+ --red-100-value: 0, 100%, 97%;
58
+ --red-200-value: 0, 100%, 96%;
59
+ --red-300-value: 0, 100%, 95%;
60
+ --red-400-value: 0, 90%, 92%;
61
+ --red-500-value: 0, 82%, 85%;
62
+ --red-600-value: 359, 90%, 71%;
63
+ --red-700-value: 358, 75%, 59%;
64
+ --red-800-value: 358, 70%, 52%;
65
+ --red-900-value: 358, 66%, 48%;
66
+ --red-1000-value: 355, 49%, 15%;
67
+
68
+ --amber-100-value: 39, 100%, 95%;
69
+ --amber-200-value: 44, 100%, 92%;
70
+ --amber-300-value: 43, 96%, 90%;
71
+ --amber-400-value: 42, 100%, 78%;
72
+ --amber-500-value: 38, 100%, 71%;
73
+ --amber-600-value: 36, 90%, 62%;
74
+ --amber-700-value: 39, 100%, 57%;
75
+ --amber-800-value: 35, 100%, 52%;
76
+ --amber-900-value: 30, 100%, 32%;
77
+ --amber-1000-value: 20, 79%, 17%;
78
+
79
+ --green-100-value: 120, 60%, 96%;
80
+ --green-200-value: 120, 60%, 95%;
81
+ --green-300-value: 120, 60%, 91%;
82
+ --green-400-value: 122, 60%, 86%;
83
+ --green-500-value: 124, 60%, 75%;
84
+ --green-600-value: 125, 60%, 64%;
85
+ --green-700-value: 131, 41%, 46%;
86
+ --green-800-value: 132, 43%, 39%;
87
+ --green-900-value: 133, 50%, 32%;
88
+ --green-1000-value: 128, 29%, 15%;
89
+
90
+ --teal-100-value: 169, 70%, 96%;
91
+ --teal-200-value: 167, 70%, 94%;
92
+ --teal-300-value: 168, 70%, 90%;
93
+ --teal-400-value: 170, 70%, 85%;
94
+ --teal-500-value: 170, 70%, 72%;
95
+ --teal-600-value: 170, 70%, 57%;
96
+ --teal-700-value: 173, 80%, 36%;
97
+ --teal-800-value: 173, 83%, 30%;
98
+ --teal-900-value: 174, 91%, 25%;
99
+ --teal-1000-value: 171, 80%, 13%;
100
+
101
+ --purple-100-value: 276, 100%, 97%;
102
+ --purple-200-value: 277, 87%, 97%;
103
+ --purple-300-value: 274, 78%, 95%;
104
+ --purple-400-value: 276, 71%, 92%;
105
+ --purple-500-value: 274, 70%, 82%;
106
+ --purple-600-value: 273, 72%, 73%;
107
+ --purple-700-value: 272, 51%, 54%;
108
+ --purple-800-value: 272, 47%, 45%;
109
+ --purple-900-value: 274, 71%, 43%;
110
+ --purple-1000-value: 276, 100%, 15%;
111
+
112
+ --pink-100-value: 330, 100%, 96%;
113
+ --pink-200-value: 340, 90%, 96%;
114
+ --pink-300-value: 340, 82%, 94%;
115
+ --pink-400-value: 341, 76%, 91%;
116
+ --pink-500-value: 340, 75%, 84%;
117
+ --pink-600-value: 341, 75%, 73%;
118
+ --pink-700-value: 336, 80%, 58%;
119
+ --pink-800-value: 336, 74%, 51%;
120
+ --pink-900-value: 336, 65%, 45%;
121
+ --pink-1000-value: 333, 74%, 15%;
122
+
123
+ font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;
124
+ line-height: 1.5;
125
+ font-weight: 400;
126
+ color-scheme: light dark;
127
+ }
128
+
129
+ .dark {
130
+ --background-100: #0a0a0a;
131
+ --background-200: #000;
132
+
133
+ --accents-1: #111;
134
+ --accents-2: #333;
135
+ --accents-3: #444;
136
+ --accents-4: #666;
137
+ --accents-5: #888;
138
+ --accents-6: #999;
139
+ --accents-7: #eaeaea;
140
+ --accents-8: #fafafa;
141
+
142
+ --gray-100-value: 0, 0%, 10%;
143
+ --gray-200-value: 0, 0%, 12%;
144
+ --gray-300-value: 0, 0%, 16%;
145
+ --gray-400-value: 0, 0%, 18%;
146
+ --gray-500-value: 0, 0%, 27%;
147
+ --gray-600-value: 0, 0%, 53%;
148
+ --gray-700-value: 0, 0%, 56%;
149
+ --gray-800-value: 0, 0%, 49%;
150
+ --gray-900-value: 0, 0%, 63%;
151
+ --gray-1000-value: 0, 0%, 93%;
152
+
153
+ --blue-100-value: 216, 50%, 12%;
154
+ --blue-200-value: 214, 59%, 15%;
155
+ --blue-300-value: 213, 71%, 20%;
156
+ --blue-400-value: 212, 78%, 23%;
157
+ --blue-500-value: 211, 86%, 27%;
158
+ --blue-600-value: 206, 100%, 50%;
159
+ --blue-700-value: 212, 100%, 48%;
160
+ --blue-800-value: 212, 100%, 41%;
161
+ --blue-900-value: 210, 100%, 66%;
162
+ --blue-1000-value: 206, 100%, 96%;
163
+
164
+ --red-100-value: 357, 37%, 12%;
165
+ --red-200-value: 357, 46%, 16%;
166
+ --red-300-value: 356, 54%, 22%;
167
+ --red-400-value: 357, 55%, 26%;
168
+ --red-500-value: 357, 60%, 32%;
169
+ --red-600-value: 358, 75%, 59%;
170
+ --red-700-value: 358, 75%, 59%;
171
+ --red-800-value: 358, 69%, 52%;
172
+ --red-900-value: 358, 100%, 69%;
173
+ --red-1000-value: 353, 90%, 96%;
174
+
175
+ --amber-100-value: 35, 100%, 8%;
176
+ --amber-200-value: 32, 100%, 10%;
177
+ --amber-300-value: 33, 100%, 15%;
178
+ --amber-400-value: 35, 100%, 17%;
179
+ --amber-500-value: 35, 91%, 22%;
180
+ --amber-600-value: 39, 85%, 49%;
181
+ --amber-700-value: 39, 100%, 57%;
182
+ --amber-800-value: 35, 100%, 52%;
183
+ --amber-900-value: 39, 90%, 50%;
184
+ --amber-1000-value: 40, 94%, 93%;
185
+
186
+ --green-100-value: 136, 50%, 9%;
187
+ --green-200-value: 137, 50%, 12%;
188
+ --green-300-value: 136, 50%, 14%;
189
+ --green-400-value: 135, 70%, 16%;
190
+ --green-500-value: 135, 70%, 23%;
191
+ --green-600-value: 135, 70%, 34%;
192
+ --green-700-value: 131, 41%, 46%;
193
+ --green-800-value: 132, 43%, 39%;
194
+ --green-900-value: 131, 43%, 57%;
195
+ --green-1000-value: 136, 73%, 94%;
196
+
197
+ --teal-100-value: 169, 78%, 7%;
198
+ --teal-200-value: 170, 74%, 9%;
199
+ --teal-300-value: 171, 75%, 13%;
200
+ --teal-400-value: 171, 85%, 13%;
201
+ --teal-500-value: 172, 85%, 20%;
202
+ --teal-600-value: 172, 85%, 32%;
203
+ --teal-700-value: 173, 80%, 36%;
204
+ --teal-800-value: 173, 83%, 30%;
205
+ --teal-900-value: 174, 90%, 41%;
206
+ --teal-1000-value: 166, 71%, 93%;
207
+
208
+ --purple-100-value: 283, 30%, 12%;
209
+ --purple-200-value: 281, 38%, 16%;
210
+ --purple-300-value: 279, 44%, 23%;
211
+ --purple-400-value: 277, 46%, 28%;
212
+ --purple-500-value: 274, 49%, 35%;
213
+ --purple-600-value: 272, 51%, 54%;
214
+ --purple-700-value: 272, 51%, 54%;
215
+ --purple-800-value: 272, 47%, 45%;
216
+ --purple-900-value: 275, 80%, 71%;
217
+ --purple-1000-value: 281, 73%, 96%;
218
+
219
+ --pink-100-value: 335, 32%, 12%;
220
+ --pink-200-value: 335, 43%, 16%;
221
+ --pink-300-value: 335, 47%, 21%;
222
+ --pink-400-value: 335, 51%, 22%;
223
+ --pink-500-value: 335, 57%, 27%;
224
+ --pink-600-value: 336, 75%, 40%;
225
+ --pink-700-value: 336, 80%, 58%;
226
+ --pink-800-value: 336, 74%, 51%;
227
+ --pink-900-value: 341, 90%, 67%;
228
+ --pink-1000-value: 333, 90%, 96%;
229
+
230
+ --gray-alpha-100: hsla(0, 0%, 100%, .06);
231
+ --gray-alpha-200: hsla(0, 0%, 100%, .09);
232
+ --gray-alpha-300: hsla(0, 0%, 100%, .13);
233
+ --gray-alpha-400: hsla(0, 0%, 100%, .14);
234
+ --gray-alpha-500: hsla(0, 0%, 100%, .24);
235
+ --gray-alpha-600: hsla(0, 0%, 100%, .51);
236
+ --gray-alpha-700: hsla(0, 0%, 100%, .54);
237
+ --gray-alpha-800: hsla(0, 0%, 100%, .47);
238
+ --gray-alpha-900: hsla(0, 0%, 100%, .61);
239
+ --gray-alpha-1000: hsla(0, 0%, 100%, .92);
240
+ }
241
+
242
+ @theme inline {
243
+ --color-foreground: hsl(var(--gray-1000-value));
244
+ --color-background: var(--background-100);
245
+ --color-background-secondary: var(--background-200);
246
+ --color-background-muted: hsl(var(--gray-100-value));
247
+ --color-background-hover: hsl(var(--gray-200-value));
248
+ --color-background-active: hsl(var(--gray-300-value));
249
+
250
+ --color-primary: hsl(var(--blue-700-value));
251
+ --color-secondary: hsl(var(--gray-700-value));
252
+ --color-muted: var(--gray-alpha-800);
253
+ --color-accent: hsl(var(--green-700-value));
254
+ --color-destructive: hsl(var(--red-700-value));
255
+
256
+ --color-border: hsl(var(--gray-300-value));
257
+ --color-border-hover: hsl(var(--gray-500-value));
258
+ --color-border-active: hsl(var(--gray-600-value));
259
+
260
+ --color-input: var(--gray-alpha-400);
261
+ --color-ring: hsl(var(--blue-900-value));
262
+
263
+ --color-gray-100: hsl(var(--gray-100-value));
264
+ --color-gray-200: hsl(var(--gray-200-value));
265
+ --color-gray-300: hsl(var(--gray-300-value));
266
+ --color-gray-400: hsl(var(--gray-400-value));
267
+ --color-gray-500: hsl(var(--gray-500-value));
268
+ --color-gray-600: hsl(var(--gray-600-value));
269
+ --color-gray-700: hsl(var(--gray-700-value));
270
+ --color-gray-800: hsl(var(--gray-800-value));
271
+ --color-gray-900: hsl(var(--gray-900-value));
272
+ --color-gray-1000: hsl(var(--gray-1000-value));
273
+
274
+ --color-gray-alpha-100: var(--gray-alpha-100);
275
+ --color-gray-alpha-200: var(--gray-alpha-200);
276
+ --color-gray-alpha-300: var(--gray-alpha-300);
277
+ --color-gray-alpha-400: var(--gray-alpha-400);
278
+ --color-gray-alpha-500: var(--gray-alpha-500);
279
+ --color-gray-alpha-600: var(--gray-alpha-600);
280
+ --color-gray-alpha-700: var(--gray-alpha-700);
281
+ --color-gray-alpha-800: var(--gray-alpha-800);
282
+ --color-gray-alpha-900: var(--gray-alpha-900);
283
+ --color-gray-alpha-1000: var(--gray-alpha-1000);
284
+
285
+ --color-red-100: hsl(var(--red-100-value));
286
+ --color-red-200: hsl(var(--red-200-value));
287
+ --color-red-300: hsl(var(--red-300-value));
288
+ --color-red-400: hsl(var(--red-400-value));
289
+ --color-red-500: hsl(var(--red-500-value));
290
+ --color-red-600: hsl(var(--red-600-value));
291
+ --color-red-700: hsl(var(--red-700-value));
292
+ --color-red-800: hsl(var(--red-800-value));
293
+ --color-red-900: hsl(var(--red-900-value));
294
+ --color-red-1000: hsl(var(--red-1000-value));
295
+
296
+ --color-blue-100: hsl(var(--blue-100-value));
297
+ --color-blue-200: hsl(var(--blue-200-value));
298
+ --color-blue-300: hsl(var(--blue-300-value));
299
+ --color-blue-400: hsl(var(--blue-400-value));
300
+ --color-blue-500: hsl(var(--blue-500-value));
301
+ --color-blue-600: hsl(var(--blue-600-value));
302
+ --color-blue-700: hsl(var(--blue-700-value));
303
+ --color-blue-800: hsl(var(--blue-800-value));
304
+ --color-blue-900: hsl(var(--blue-900-value));
305
+ --color-blue-1000: hsl(var(--blue-1000-value));
306
+
307
+ --color-amber-100: hsl(var(--amber-100-value));
308
+ --color-amber-200: hsl(var(--amber-200-value));
309
+ --color-amber-300: hsl(var(--amber-300-value));
310
+ --color-amber-400: hsl(var(--amber-400-value));
311
+ --color-amber-500: hsl(var(--amber-500-value));
312
+ --color-amber-600: hsl(var(--amber-600-value));
313
+ --color-amber-700: hsl(var(--amber-700-value));
314
+ --color-amber-800: hsl(var(--amber-800-value));
315
+ --color-amber-900: hsl(var(--amber-900-value));
316
+ --color-amber-1000: hsl(var(--amber-1000-value));
317
+
318
+ --color-green-100: hsl(var(--green-100-value));
319
+ --color-green-200: hsl(var(--green-200-value));
320
+ --color-green-300: hsl(var(--green-300-value));
321
+ --color-green-400: hsl(var(--green-400-value));
322
+ --color-green-500: hsl(var(--green-500-value));
323
+ --color-green-600: hsl(var(--green-600-value));
324
+ --color-green-700: hsl(var(--green-700-value));
325
+ --color-green-800: hsl(var(--green-800-value));
326
+ --color-green-900: hsl(var(--green-900-value));
327
+ --color-green-1000: hsl(var(--green-1000-value));
328
+
329
+ --color-teal-100: hsl(var(--teal-100-value));
330
+ --color-teal-200: hsl(var(--teal-200-value));
331
+ --color-teal-300: hsl(var(--teal-300-value));
332
+ --color-teal-400: hsl(var(--teal-400-value));
333
+ --color-teal-500: hsl(var(--teal-500-value));
334
+ --color-teal-600: hsl(var(--teal-600-value));
335
+ --color-teal-700: hsl(var(--teal-700-value));
336
+ --color-teal-800: hsl(var(--teal-800-value));
337
+ --color-teal-900: hsl(var(--teal-900-value));
338
+ --color-teal-1000: hsl(var(--teal-1000-value));
339
+
340
+ --color-purple-100: hsl(var(--purple-100-value));
341
+ --color-purple-200: hsl(var(--purple-200-value));
342
+ --color-purple-300: hsl(var(--purple-300-value));
343
+ --color-purple-400: hsl(var(--purple-400-value));
344
+ --color-purple-500: hsl(var(--purple-500-value));
345
+ --color-purple-600: hsl(var(--purple-600-value));
346
+ --color-purple-700: hsl(var(--purple-700-value));
347
+ --color-purple-800: hsl(var(--purple-800-value));
348
+ --color-purple-900: hsl(var(--purple-900-value));
349
+ --color-purple-1000: hsl(var(--purple-1000-value));
350
+
351
+ --color-pink-100: hsl(var(--pink-100-value));
352
+ --color-pink-200: hsl(var(--pink-200-value));
353
+ --color-pink-300: hsl(var(--pink-300-value));
354
+ --color-pink-400: hsl(var(--pink-400-value));
355
+ --color-pink-500: hsl(var(--pink-500-value));
356
+ --color-pink-600: hsl(var(--pink-600-value));
357
+ --color-pink-700: hsl(var(--pink-700-value));
358
+ --color-pink-800: hsl(var(--pink-800-value));
359
+ --color-pink-900: hsl(var(--pink-900-value));
360
+ --color-pink-1000: hsl(var(--pink-1000-value));
361
+
362
+ --radius-sm: calc(var(--radius) - 4px);
363
+ --radius-md: calc(var(--radius) - 2px);
364
+ --radius-lg: var(--radius);
365
+ --radius-xl: calc(var(--radius) + 4px);
366
+ }
367
+
368
+
369
+ @layer base {
370
+ * {
371
+ @apply border-border outline-ring/50;
372
+ }
373
+
374
+ body {
375
+ background-color: var(--color-background);
376
+ color: var(--color-foreground);
377
+ }
378
+ }