webcake-ui-kit 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,12 @@
1
+ # webcake-ui-kit
2
+
3
+ ### Requirement
4
+
5
+ - Node 14
6
+ - Python <= 3.10
7
+
8
+ ### Development
9
+
10
+ - Playground Vue2: `cd playground-vue2 && npm i`
11
+ - Storybook Vue3: `cd storybook-vue3 && npm i`
12
+ - At root: `npm run dev:vue2` | `npm run dev:vue3`
package/package.json ADDED
@@ -0,0 +1,62 @@
1
+ {
2
+ "name": "webcake-ui-kit",
3
+ "version": "1.0.0",
4
+ "description": "UI Kit for Vue 2 && 3 - Pure Options API",
5
+ "main": "src/index.js",
6
+ "files": [
7
+ "src"
8
+ ],
9
+ "scripts": {
10
+ "dev": "vite",
11
+ "build": "echo 'No need to build - shipping raw SFC'",
12
+ "dev:vue2": "cd playground-vue2 && npm run dev",
13
+ "dev:vue3": "cd playground-vue3 && npm run dev",
14
+ "preview": "concurrently --names vue3,vue2 --prefix-colors cyan,magenta \"npm:dev:vue3\" \"npm:dev:vue2\"",
15
+ "build:vue2": "cd playground-vue2 && npm run build",
16
+ "build:vue3": "cd playground-vue3 && npm run build",
17
+ "build:storybook": "cd storybook-vue3 && npm run build-storybook",
18
+ "test:build": "concurrently --kill-others-on-fail --names vue3,vue2,sb --prefix-colors cyan,magenta,yellow \"npm:build:vue3\" \"npm:build:vue2\" \"npm:build:storybook\"",
19
+ "test:storybook": "npm run build:storybook",
20
+ "format": "prettier --write .",
21
+ "format:check": "prettier --check .",
22
+ "lint": "eslint . --ext .js,.cjs,.vue",
23
+ "lint:fix": "eslint . --ext .js,.cjs,.vue --fix"
24
+ },
25
+ "lint-staged": {
26
+ "*.{js,cjs,vue}": [
27
+ "eslint --fix",
28
+ "prettier --write"
29
+ ],
30
+ "*.{css,json,md,html}": [
31
+ "prettier --write"
32
+ ]
33
+ },
34
+ "peerDependencies": {
35
+ "vue": "^2.6.0 || ^3.0.0"
36
+ },
37
+ "devDependencies": {
38
+ "@vitejs/plugin-vue": "^2.3.4",
39
+ "concurrently": "^7.6.0",
40
+ "eslint": "^8.57.1",
41
+ "eslint-config-prettier": "^9.1.2",
42
+ "eslint-plugin-vue": "^9.33.0",
43
+ "husky": "^8.0.3",
44
+ "lint-staged": "^13.3.0",
45
+ "prettier": "^3.8.3",
46
+ "vite": "^2.9.15"
47
+ },
48
+ "repository": {
49
+ "type": "git",
50
+ "url": "git+https://github.com/pancake-vn/webcake-ui-kit.git"
51
+ },
52
+ "keywords": [
53
+ "Vue Component",
54
+ "UI Component"
55
+ ],
56
+ "author": "Webcake Team",
57
+ "license": "ISC",
58
+ "bugs": {
59
+ "url": "https://github.com/pancake-vn/webcake-ui-kit/issues"
60
+ },
61
+ "homepage": "https://github.com/pancake-vn/webcake-ui-kit#readme"
62
+ }
@@ -0,0 +1,46 @@
1
+ <template>
2
+ <span :class="['ui-badge', `ui-badge--${variant}`, `ui-badge--round-${roundness}`]">
3
+ <span v-if="hasIconLeft" class="ui-badge__icon">
4
+ <slot name="icon-left"></slot>
5
+ </span>
6
+ <span class="ui-badge__label">
7
+ <slot>{{ label }}</slot>
8
+ </span>
9
+ <span v-if="hasIconRight" class="ui-badge__icon">
10
+ <slot name="icon-right"></slot>
11
+ </span>
12
+ </span>
13
+ </template>
14
+
15
+ <script>
16
+ export default {
17
+ name: 'Badge',
18
+ props: {
19
+ variant: {
20
+ type: String,
21
+ default: 'primary',
22
+ validator: v => ['primary', 'secondary', 'outline', 'ghost', 'destructive', 'info', 'warning'].includes(v)
23
+ },
24
+ roundness: {
25
+ type: String,
26
+ default: 'default',
27
+ validator: v => ['default', 'round'].includes(v)
28
+ },
29
+ label: {
30
+ type: String,
31
+ default: ''
32
+ }
33
+ },
34
+ emits: [],
35
+ computed: {
36
+ hasIconLeft() {
37
+ return !!((this.$scopedSlots && this.$scopedSlots['icon-left']) || this.$slots['icon-left'])
38
+ },
39
+ hasIconRight() {
40
+ return !!((this.$scopedSlots && this.$scopedSlots['icon-right']) || this.$slots['icon-right'])
41
+ }
42
+ }
43
+ }
44
+ </script>
45
+
46
+ <style src="./badge.css" scoped></style>
@@ -0,0 +1,74 @@
1
+ .ui-badge {
2
+ display: inline-flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ gap: var(--spacing-2xs);
6
+ padding: var(--spacing-3xs) var(--spacing-xs);
7
+ font-family: var(--font-family-body);
8
+ font-size: var(--paragraph-mini-font-size);
9
+ line-height: var(--paragraph-mini-line-height);
10
+ letter-spacing: var(--paragraph-mini-letter-spacing);
11
+ font-weight: var(--paragraph-bold-font-weight);
12
+ white-space: nowrap;
13
+ transition: box-shadow 0.15s ease;
14
+ }
15
+
16
+ .ui-badge--round-default {
17
+ border-radius: var(--rounded-lg);
18
+ }
19
+ .ui-badge--round-round {
20
+ border-radius: var(--rounded-full);
21
+ }
22
+
23
+ .ui-badge--primary {
24
+ background: var(--primary-brand-bg);
25
+ color: var(--inverse-fg);
26
+ }
27
+ .ui-badge--secondary {
28
+ background: var(--secondary-bg);
29
+ color: var(--secondary-fg);
30
+ }
31
+ .ui-badge--outline {
32
+ background: var(--outline);
33
+ color: var(--primary-fg);
34
+ border-width: 1px;
35
+ border-style: solid;
36
+ border-color: var(--border-primary);
37
+ }
38
+ .ui-badge--ghost {
39
+ background: var(--ghost);
40
+ color: var(--primary-fg);
41
+ }
42
+ .ui-badge--destructive {
43
+ background: var(--destructive);
44
+ color: var(--destructive-inverse-fg);
45
+ }
46
+ .ui-badge--info {
47
+ background: var(--info-500);
48
+ color: var(--inverse-fg);
49
+ }
50
+ .ui-badge--warning {
51
+ background: var(--warning-500);
52
+ color: var(--inverse-fg);
53
+ }
54
+
55
+ .ui-badge:focus-visible {
56
+ outline: none;
57
+ box-shadow: var(--shadow-focus-ring);
58
+ }
59
+ .ui-badge--destructive:focus-visible {
60
+ box-shadow: var(--shadow-focus-ring-error);
61
+ }
62
+
63
+ .ui-badge__icon {
64
+ display: inline-flex;
65
+ align-items: center;
66
+ justify-content: center;
67
+ flex-shrink: 0;
68
+ width: 12px;
69
+ height: 12px;
70
+ }
71
+
72
+ .ui-badge__label {
73
+ display: inline-flex;
74
+ }
@@ -0,0 +1,37 @@
1
+ <template>
2
+ <button :class="['ui-btn', `ui-btn--${type}`, `ui-btn--${size}`]" :disabled="disabled" @click="handleClick">
3
+ <slot></slot>
4
+ </button>
5
+ </template>
6
+
7
+ <script>
8
+ export default {
9
+ name: 'Button',
10
+ props: {
11
+ type: {
12
+ type: String,
13
+ default: 'primary',
14
+ validator: value => ['primary', 'secondary', 'danger', 'success'].includes(value)
15
+ },
16
+ size: {
17
+ type: String,
18
+ default: 'medium',
19
+ validator: value => ['small', 'medium', 'large'].includes(value)
20
+ },
21
+ disabled: {
22
+ type: Boolean,
23
+ default: false
24
+ }
25
+ },
26
+ emits: ['click'],
27
+ methods: {
28
+ handleClick(e) {
29
+ if (!this.disabled) {
30
+ this.$emit('click', e)
31
+ }
32
+ }
33
+ }
34
+ }
35
+ </script>
36
+
37
+ <style src="./button.css" scoped></style>
@@ -0,0 +1,42 @@
1
+ .ui-btn {
2
+ padding: 8px 16px;
3
+ border: none;
4
+ border-radius: 6px;
5
+ cursor: pointer;
6
+ font-weight: 500;
7
+ }
8
+
9
+ .ui-btn--primary {
10
+ background: #3b82f6;
11
+ color: white;
12
+ }
13
+ .ui-btn--secondary {
14
+ background: #6b7280;
15
+ color: white;
16
+ }
17
+ .ui-btn--danger {
18
+ background: #ef4444;
19
+ color: white;
20
+ }
21
+ .ui-btn--success {
22
+ background: #10b981;
23
+ color: white;
24
+ }
25
+
26
+ .ui-btn--small {
27
+ padding: 6px 12px;
28
+ font-size: 14px;
29
+ }
30
+ .ui-btn--medium {
31
+ padding: 8px 16px;
32
+ font-size: 16px;
33
+ }
34
+ .ui-btn--large {
35
+ padding: 12px 20px;
36
+ font-size: 18px;
37
+ }
38
+
39
+ .ui-btn:disabled {
40
+ opacity: 0.6;
41
+ cursor: not-allowed;
42
+ }
package/src/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export { default as Badge } from './components/badge/Badge.vue'
2
+ export { default as Button } from './components/button/Button.vue'
@@ -0,0 +1,39 @@
1
+ @layer base {
2
+ :root {
3
+ /* ========================= White Alpha ========================= */
4
+ --color-white-alpha-0: rgb(255 255 255 / 0%);
5
+ --color-white-alpha-001: rgb(255 255 255 / 0.01%);
6
+ --color-white-alpha-333: rgb(255 255 255 / 3.33%);
7
+ --color-white-alpha-5: rgb(255 255 255 / 5%);
8
+ --color-white-alpha-10: rgb(255 255 255 / 10%);
9
+ --color-white-alpha-15: rgb(255 255 255 / 15%);
10
+ --color-white-alpha-20: rgb(255 255 255 / 20%);
11
+ --color-white-alpha-30: rgb(255 255 255 / 30%);
12
+ --color-white-alpha-40: rgb(255 255 255 / 40%);
13
+ --color-white-alpha-50: rgb(255 255 255 / 50%);
14
+ --color-white-alpha-60: rgb(255 255 255 / 60%);
15
+ --color-white-alpha-70: rgb(255 255 255 / 70%);
16
+ --color-white-alpha-80: rgb(255 255 255 / 80%);
17
+ --color-white-alpha-90: rgb(255 255 255 / 90%);
18
+ --color-white-alpha-95: rgb(255 255 255 / 95%);
19
+ --color-white-alpha-100: rgb(255 255 255 / 100%);
20
+
21
+ /* ========================= Black Alpha ========================= */
22
+ --color-black-alpha-0: rgb(0 0 0 / 0%);
23
+ --color-black-alpha-001: rgb(0 0 0 / 0.01%);
24
+ --color-black-alpha-333: rgb(0 0 0 / 3.33%);
25
+ --color-black-alpha-5: rgb(0 0 0 / 5%);
26
+ --color-black-alpha-10: rgb(0 0 0 / 10%);
27
+ --color-black-alpha-15: rgb(0 0 0 / 15%);
28
+ --color-black-alpha-20: rgb(0 0 0 / 20%);
29
+ --color-black-alpha-30: rgb(0 0 0 / 30%);
30
+ --color-black-alpha-40: rgb(0 0 0 / 40%);
31
+ --color-black-alpha-50: rgb(0 0 0 / 50%);
32
+ --color-black-alpha-60: rgb(0 0 0 / 60%);
33
+ --color-black-alpha-70: rgb(0 0 0 / 70%);
34
+ --color-black-alpha-80: rgb(0 0 0 / 80%);
35
+ --color-black-alpha-90: rgb(0 0 0 / 90%);
36
+ --color-black-alpha-95: rgb(0 0 0 / 95%);
37
+ --color-black-alpha-100: rgb(0 0 0 / 100%);
38
+ }
39
+ }
@@ -0,0 +1,25 @@
1
+ @layer base {
2
+ :root {
3
+ --radius-0: 0px;
4
+ --radius-2: 2px;
5
+ --radius-4: 4px;
6
+ --radius-6: 6px;
7
+ --radius-8: 8px;
8
+ --radius-10: 10px;
9
+ --radius-12: 12px;
10
+ --radius-16: 16px;
11
+ --radius-24: 24px;
12
+ --radius-infinite: 9999px;
13
+
14
+ --rounded-none: 0;
15
+ --rounded-xs: var(--radius-0);
16
+ --rounded-sm: var(--radius-2);
17
+ --rounded-md: var(--radius-4);
18
+ --rounded-lg: var(--radius-6);
19
+ --radius: var(--radius-8);
20
+ --rounded-xl: var(--radius-12);
21
+ --rounded-2xl: var(--radius-16);
22
+ --rounded-3xl: var(--radius-24);
23
+ --rounded-full: var(--radius-infinite);
24
+ }
25
+ }
@@ -0,0 +1,42 @@
1
+ @layer base {
2
+ :root {
3
+ /* Primary color scale — mapped from brand-shades (emerald) */
4
+ --color-brand-neutrals-50: var(--color-neutral-50);
5
+ --color-brand-neutrals-100: var(--color-neutral-100);
6
+ --color-brand-neutrals-200: var(--color-neutral-200);
7
+ --color-brand-neutrals-300: var(--color-neutral-300);
8
+ --color-brand-neutrals-400: var(--color-neutral-400);
9
+ --color-brand-neutrals-500: var(--color-neutral-500);
10
+ --color-brand-neutrals-600: var(--color-neutral-600);
11
+ --color-brand-neutrals-700: var(--color-neutral-700);
12
+ --color-brand-neutrals-800: var(--color-neutral-800);
13
+ --color-brand-neutrals-900: var(--color-neutral-900);
14
+ --color-brand-neutrals-950: var(--color-neutral-950);
15
+
16
+ /* ========================= Brand Shades ========================= */
17
+ --color-brand-shades-50: var(--color-emerald-50);
18
+ --color-brand-shades-100: var(--color-emerald-100);
19
+ --color-brand-shades-200: var(--color-emerald-200);
20
+ --color-brand-shades-300: var(--color-emerald-300);
21
+ --color-brand-shades-400: var(--color-emerald-400);
22
+ --color-brand-shades-500: var(--color-emerald-500);
23
+ --color-brand-shades-600: var(--color-emerald-600);
24
+ --color-brand-shades-700: var(--color-emerald-700);
25
+ --color-brand-shades-800: var(--color-emerald-800);
26
+ --color-brand-shades-900: var(--color-emerald-900);
27
+ --color-brand-shades-950: var(--color-emerald-950);
28
+
29
+ /* ========================= Primary Landing ========================= */
30
+ --color-primary-landing-50: #f0fdf4;
31
+ --color-primary-landing-100: #dbfde6;
32
+ --color-primary-landing-200: #baf8cf;
33
+ --color-primary-landing-300: #84f1aa;
34
+ --color-primary-landing-400: #48e07d;
35
+ --color-primary-landing-500: #1db954;
36
+ --color-primary-landing-600: #14a547;
37
+ --color-primary-landing-700: #13823b;
38
+ --color-primary-landing-800: #156633;
39
+ --color-primary-landing-900: #13542c;
40
+ --color-primary-landing-950: #042f15;
41
+ }
42
+ }
@@ -0,0 +1,35 @@
1
+ @layer base {
2
+ :root {
3
+ /* Chart */
4
+ --chart-1: #f54a00;
5
+ --chart-2: #009689;
6
+ --chart-3: #104e64;
7
+ --chart-4: #ffb900;
8
+ --chart-5: #fe9a00;
9
+
10
+ --positive: #009689;
11
+ --negative: #f54a00;
12
+
13
+ --fill: #bfdeffb3;
14
+ --stroke: #8ec5ff;
15
+ --fill-2: #aaccffb3;
16
+ --stroke-2: #3f8dff;
17
+ }
18
+
19
+ .dark {
20
+ /* Chart */
21
+ --chart-1: #1447e6;
22
+ --chart-2: #00bc7d;
23
+ --chart-3: #fd9a00;
24
+ --chart-4: #ad46ff;
25
+ --chart-5: #ff2056;
26
+
27
+ --positive: #00bc7d;
28
+ --negative: #ff2056;
29
+
30
+ --fill: #475d75b3;
31
+ --stroke: #8ec5ff;
32
+ --fill-2: #1f4176b3;
33
+ --stroke-2: #3f8dff;
34
+ }
35
+ }
@@ -0,0 +1,202 @@
1
+ @layer base {
2
+ .theme {
3
+ --font-heading: var(--font-sans);
4
+ --color-destructive: var(--color-red-600);
5
+ }
6
+
7
+ :root {
8
+ /* General */
9
+ --primary-bg: var(--color-white-alpha-100);
10
+ --secondary-bg: var(--color-neutral-100);
11
+ --tertiary-bg: var(--color-neutral-200);
12
+ --accent-bg: var(--color-neutral-50);
13
+ --muted-bg: var(--color-neutral-100);
14
+ --primary-fg: var(--color-neutral-950);
15
+ --secondary-fg: var(--color-neutral-700);
16
+ --accent-fg: var(--color-brand-shades-900);
17
+ --muted-fg: var(--color-neutral-500);
18
+ --primary-brand-bg: var(--color-brand-shades-600);
19
+ --primary-brand-fg: var(--color-brand-shades-600);
20
+ --inverse-fg: var(--color-white-alpha-100);
21
+ --destructive: var(--color-red-600);
22
+ --destructive-inverse-fg: var(--color-white-alpha-100);
23
+ --border-primary: var(--color-neutral-200);
24
+ --border-secondary: var(--color-neutral-100);
25
+ --border-focus: var(--color-neutral-300);
26
+ --border-brand: var(--color-brand-shades-600);
27
+
28
+ /* Start: Unofficial */
29
+ --primary-hover: var(--color-neutral-50);
30
+ --secondary-hover: var(--color-neutral-50);
31
+ --primary-brand-hover: var(--color-brand-shades-800);
32
+ --negative-subtle: var(--color-red-50);
33
+ --destructive-border: var(--color-red-500);
34
+ --destructive-text: var(--color-red-600);
35
+ --ghost: var(--color-white-alpha-001);
36
+ --ghost-foreground: var(--color-neutral-700);
37
+ --ghost-hover: var(--color-black-alpha-5);
38
+ --outline: var(--color-white-alpha-10);
39
+ --outline-hover: var(--color-black-alpha-333);
40
+ --outline-active: var(--color-white-alpha-5);
41
+ --accent-0: var(--color-neutral-50);
42
+ --accent-1: var(--color-neutral-100);
43
+ --accent-2: var(--color-neutral-200);
44
+ --border-0: var(--color-neutral-50);
45
+ --border-1: var(--color-neutral-100);
46
+ --border-2: var(--color-neutral-200);
47
+ --border-3: var(--color-neutral-300);
48
+ --border-5: var(--color-neutral-500);
49
+ --mid-alt: var(--color-neutral-600);
50
+ --backdrop: var(--color-black-alpha-60);
51
+ --foreground-alt: var(--color-neutral-700);
52
+ --body-background: var(--color-white-alpha-100);
53
+ --neutral-50: var(--color-neutral-50);
54
+ --neutral-100: var(--color-neutral-100);
55
+ --neutral-200: var(--color-neutral-200);
56
+ --neutral-300: var(--color-neutral-300);
57
+ --neutral-400: var(--color-neutral-400);
58
+ --neutral-500: var(--color-neutral-500);
59
+ --neutral-600: var(--color-neutral-600);
60
+ --neutral-700: var(--color-neutral-700);
61
+ --neutral-800: var(--color-neutral-800);
62
+ /* Notification */
63
+ --positive-500: var(--color-green-500);
64
+ --info-500: var(--color-blue-500);
65
+ --warning-500: var(--color-yellow-500);
66
+ /* Brand */
67
+ --brand-50: var(--color-brand-shades-50);
68
+ --brand-100: var(--color-brand-shades-100);
69
+ --brand-200: var(--color-brand-shades-200);
70
+ --brand-300: var(--color-brand-shades-300);
71
+ --brand-400: var(--color-brand-shades-400);
72
+ --brand-500: var(--color-brand-shades-500);
73
+ --brand-600: var(--color-brand-shades-600);
74
+ --brand-700: var(--color-brand-shades-700);
75
+ --brand-800: var(--color-brand-shades-800);
76
+ /* End: Unofficial */
77
+
78
+ /* Components */
79
+ --card: var(--color-white-alpha-100);
80
+ --card-foreground: var(--color-neutral-950);
81
+
82
+ --popover: var(--color-white-alpha-100);
83
+ --popover-foreground: var(--color-black-alpha-100);
84
+
85
+ --sidebar: var(--color-neutral-50);
86
+ --sidebar-muted: var(--color-neutral-500);
87
+ --sidebar-acccent: var(--color-neutral-200);
88
+ --sidebar-foreground: var(--color-neutral-700);
89
+ --sidebar-accent-foreground: var(--color-neutral-900);
90
+ --sidebar-primary: var(--color-neutral-900);
91
+ --sidebar-primary-foreground: var(--color-neutral-50);
92
+ --sidebar-border: var(--color-neutral-200);
93
+ --sidebar-ring: var(--color-neutral-300);
94
+
95
+ --input: var(--color-white-alpha-100);
96
+
97
+ /* Effect */
98
+ --ring: var(--color-neutral-200);
99
+ --ring-error: var(--color-red-300);
100
+ }
101
+
102
+ .dark {
103
+ /* General */
104
+ --primary-bg: var(--color-black-alpha-100);
105
+ --secondary-bg: var(--color-neutral-800);
106
+ --tertiary-bg: var(--color-neutral-700);
107
+ --accent-bg: var(--color-neutral-900);
108
+ --muted-bg: var(--color-neutral-900);
109
+ --primary-fg: var(--color-neutral-50);
110
+ --secondary-fg: var(--color-neutral-300);
111
+ --accent-fg: var(--color-brand-shades-100);
112
+ --muted-fg: var(--color-neutral-400);
113
+ --primary-brand-bg: var(--color-brand-shades-500);
114
+ --primary-brand-fg: var(--color-brand-shades-500);
115
+ --inverse-fg: var(--color-white-alpha-100);
116
+ --destructive: #9e4042;
117
+ --destructive-inverse-fg: var(--color-white-alpha-100);
118
+ --border-primary: var(--color-neutral-700);
119
+ --border-secondary: var(--color-neutral-800);
120
+ --border-focus: var(--color-neutral-600);
121
+ --border-brand: var(--color-brand-shades-400);
122
+
123
+ /* Start: Unofficial */
124
+ --primary-hover: var(--color-neutral-950);
125
+ --secondary-hover: var(--color-neutral-900);
126
+ --primary-brand-hover: var(--color-brand-shades-300);
127
+ --negative-subtle: var(--color-red-950);
128
+ --destructive-border: var(--color-red-500);
129
+ --destructive-text: var(--color-red-400);
130
+ --ghost: var(--color-white-alpha-001);
131
+ --ghost-foreground: var(--color-neutral-200);
132
+ --ghost-hover: var(--color-black-alpha-10);
133
+ --outline: var(--color-white-alpha-5);
134
+ --outline-hover: var(--color-black-alpha-10);
135
+ --outline-active: var(--color-white-alpha-15);
136
+ --accent-0: var(--color-neutral-950);
137
+ --accent-1: var(--color-neutral-800);
138
+ --accent-2: var(--color-neutral-800);
139
+ --border-0: var(--color-neutral-950);
140
+ --border-1: var(--color-neutral-900);
141
+ --border-2: var(--color-neutral-700);
142
+ --border-3: var(--color-neutral-600);
143
+ --border-5: var(--color-neutral-500);
144
+ --mid-alt: var(--color-neutral-400);
145
+ --foreground-alt: var(--color-neutral-300);
146
+ --backdrop: var(--color-black-alpha-60);
147
+ --body-background: var(--color-neutral-950);
148
+
149
+ --neutral-50: var(--color-neutral-950);
150
+ --neutral-100: var(--color-neutral-900);
151
+ --neutral-200: var(--color-neutral-800);
152
+ --neutral-300: var(--color-neutral-700);
153
+ --neutral-400: var(--color-neutral-600);
154
+ --neutral-500: var(--color-neutral-500);
155
+ --neutral-600: var(--color-neutral-400);
156
+ --neutral-700: var(--color-neutral-300);
157
+ --neutral-800: var(--color-neutral-200);
158
+
159
+ --green-500: var(--color-green-500);
160
+ --blue-500: var(--color-blue-500);
161
+ --yellow-500: var(--color-yellow-500);
162
+
163
+ --positive-500: var(--color-green-500);
164
+ --info-500: var(--color-blue-500);
165
+ --warning-500: var(--color-yellow-500);
166
+
167
+ /* Brand */
168
+ --brand-50: var(--color-brand-shades-950);
169
+ --brand-100: var(--color-brand-shades-900);
170
+ --brand-200: var(--color-brand-shades-800);
171
+ --brand-300: var(--color-brand-shades-700);
172
+ --brand-400: var(--color-brand-shades-600);
173
+ --brand-500: var(--color-brand-shades-500);
174
+ --brand-600: var(--color-brand-shades-400);
175
+ --brand-700: var(--color-brand-shades-300);
176
+ --brand-800: var(--color-brand-shades-200);
177
+ /* End: Unofficial */
178
+
179
+ /* Components */
180
+ /* card */
181
+ --card: var(--color-neutral-900);
182
+ --card-foreground: var(--color-white-alpha-100);
183
+
184
+ --popover: var(--color-black-alpha-100);
185
+ --popover-foreground: var(--color-white-alpha-100);
186
+
187
+ --sidebar: var(--color-neutral-950);
188
+ --sidebar-muted: var(--color-neutral-500);
189
+ --sidebar-acccent: var(--color-neutral-800);
190
+ --sidebar-foreground: var(--color-neutral-300);
191
+ --sidebar-accent-foreground: var(--color-neutral-100);
192
+ --sidebar-primary: var(--color-neutral-50);
193
+ --sidebar-primary-foreground: var(--color-neutral-900);
194
+ --sidebar-border: var(--color-neutral-800);
195
+ --sidebar-ring: var(--color-neutral-700);
196
+ --input: var(--color-white-alpha-5);
197
+
198
+ /* Effect */
199
+ --ring: var(--color-neutral-700);
200
+ --ring-error: #6d2e2f;
201
+ }
202
+ }
@@ -0,0 +1,18 @@
1
+ @import './alpha_colors.css';
2
+ @import './border_radius.css';
3
+ @import './brand_colors.css';
4
+ @import './chart_colors.css';
5
+ @import './color_general.css';
6
+ @import './raw_colors.css';
7
+ @import './shadow.css';
8
+ @import './typography.css';
9
+ @import './spacing.css';
10
+ @import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap');
11
+
12
+ * {
13
+ padding: 0;
14
+ margin: 0;
15
+ box-sizing: border-box;
16
+ font-family: var(--font-family-sans);
17
+ border: 0 solid var(--border-primary);
18
+ }
@@ -0,0 +1,292 @@
1
+ @layer base {
2
+ :root {
3
+ --color-white: #ffffff;
4
+ --color-black: #000000;
5
+
6
+ /* ========================= Brand Neutrals ========================= */
7
+ --color-neutral-50: #f7f7f7;
8
+ --color-neutral-100: #f5f5f5;
9
+ --color-neutral-200: #ebebeb;
10
+ --color-neutral-300: #d1d1d1;
11
+ --color-neutral-400: #a3a3a3;
12
+ --color-neutral-500: #7b7b7b;
13
+ --color-neutral-600: #5c5c5c;
14
+ --color-neutral-700: #333333;
15
+ --color-neutral-800: #262626;
16
+ --color-neutral-900: #1c1c1c;
17
+ --color-neutral-950: #171717;
18
+
19
+ /* ========================= Red ========================= */
20
+ --color-red-50: #fef2f2;
21
+ --color-red-100: #ffe2e2;
22
+ --color-red-200: #fecaca;
23
+ --color-red-300: #fca5a5;
24
+ --color-red-400: #f87171;
25
+ --color-red-500: #ef4444;
26
+ --color-red-600: #dc2626;
27
+ --color-red-700: #b91c1c;
28
+ --color-red-800: #991b1b;
29
+ --color-red-900: #7f1d1d;
30
+ --color-red-950: #450a0a;
31
+
32
+ /* ========================= Blue ========================= */
33
+ --color-blue-50: #eff6ff;
34
+ --color-blue-100: #dbeafe;
35
+ --color-blue-200: #bfdbfe;
36
+ --color-blue-300: #93c5fd;
37
+ --color-blue-400: #60a5fa;
38
+ --color-blue-500: #3b82f6;
39
+ --color-blue-600: #2563eb;
40
+ --color-blue-700: #1d4ed8;
41
+ --color-blue-800: #1e40af;
42
+ --color-blue-900: #1e3a8a;
43
+ --color-blue-950: #172554;
44
+
45
+ /* ========================= Slate ========================= */
46
+ --color-slate-50: #f8fafc;
47
+ --color-slate-100: #f1f5f9;
48
+ --color-slate-200: #e2e8f0;
49
+ --color-slate-300: #cbd5e1;
50
+ --color-slate-400: #94a3b8;
51
+ --color-slate-500: #64748b;
52
+ --color-slate-600: #475569;
53
+ --color-slate-700: #334155;
54
+ --color-slate-800: #1e293b;
55
+ --color-slate-900: #0f172a;
56
+ --color-slate-950: #020617;
57
+
58
+ /* ========================= Gray ========================= */
59
+ --color-gray-50: #f9fafb;
60
+ --color-gray-100: #f3f4f6;
61
+ --color-gray-200: #e5e7eb;
62
+ --color-gray-300: #d1d5db;
63
+ --color-gray-400: #9ca3af;
64
+ --color-gray-500: #6b7280;
65
+ --color-gray-600: #4b5563;
66
+ --color-gray-700: #374151;
67
+ --color-gray-800: #1f2937;
68
+ --color-gray-900: #111827;
69
+ --color-gray-950: #030712;
70
+
71
+ /* ========================= Zinc ========================= */
72
+ --color-zinc-50: #fafafa;
73
+ --color-zinc-100: #f4f4f5;
74
+ --color-zinc-200: #e4e4e7;
75
+ --color-zinc-300: #d4d4d8;
76
+ --color-zinc-400: #a1a1aa;
77
+ --color-zinc-500: #71717a;
78
+ --color-zinc-600: #52525b;
79
+ --color-zinc-700: #3f3f46;
80
+ --color-zinc-800: #27272a;
81
+ --color-zinc-900: #18181b;
82
+ --color-zinc-950: #09090b;
83
+
84
+ /* ========================= Stone ========================= */
85
+ --color-stone-50: #fafaf9;
86
+ --color-stone-100: #f5f5f4;
87
+ --color-stone-200: #e7e5e4;
88
+ --color-stone-300: #d6d3d1;
89
+ --color-stone-400: #a8a29e;
90
+ --color-stone-500: #78716c;
91
+ --color-stone-600: #57534e;
92
+ --color-stone-700: #44403c;
93
+ --color-stone-800: #292524;
94
+ --color-stone-900: #1c1917;
95
+ --color-stone-950: #0c0a09;
96
+
97
+ /* ========================= Orange ========================= */
98
+ --color-orange-50: #fff7ed;
99
+ --color-orange-100: #ffedd5;
100
+ --color-orange-200: #fed7aa;
101
+ --color-orange-300: #fdba74;
102
+ --color-orange-400: #fb923c;
103
+ --color-orange-500: #f97316;
104
+ --color-orange-600: #ea580c;
105
+ --color-orange-700: #c2410c;
106
+ --color-orange-800: #9a3412;
107
+ --color-orange-900: #7c2d12;
108
+ --color-orange-950: #431407;
109
+
110
+ /* ========================= Amber ========================= */
111
+ --color-amber-50: #fffbeb;
112
+ --color-amber-100: #fef3c7;
113
+ --color-amber-200: #fde68a;
114
+ --color-amber-300: #fcd34d;
115
+ --color-amber-400: #fbbf24;
116
+ --color-amber-500: #f59e0b;
117
+ --color-amber-600: #d97706;
118
+ --color-amber-700: #b45309;
119
+ --color-amber-800: #92400e;
120
+ --color-amber-900: #78350f;
121
+ --color-amber-950: #451a03;
122
+
123
+ /* ========================= Lime ========================= */
124
+ --color-lime-50: #f7fee7;
125
+ --color-lime-100: #ecfccb;
126
+ --color-lime-200: #d9f99d;
127
+ --color-lime-300: #bef264;
128
+ --color-lime-400: #a3e635;
129
+ --color-lime-500: #84cc16;
130
+ --color-lime-600: #65a30d;
131
+ --color-lime-700: #4d7c0f;
132
+ --color-lime-800: #3f6212;
133
+ --color-lime-900: #365314;
134
+ --color-lime-950: #1a2e05;
135
+
136
+ /* ========================= Emerald ========================= */
137
+ --color-emerald-50: #ecfdf5;
138
+ --color-emerald-100: #d1fae5;
139
+ --color-emerald-200: #a7f3d0;
140
+ --color-emerald-300: #6ee7b7;
141
+ --color-emerald-400: #34d399;
142
+ --color-emerald-500: #10b981;
143
+ --color-emerald-600: #059669;
144
+ --color-emerald-700: #047857;
145
+ --color-emerald-800: #065f46;
146
+ --color-emerald-900: #064e3b;
147
+ --color-emerald-950: #022c22;
148
+
149
+ /* ========================= Teal ========================= */
150
+ --color-teal-50: #f0fdfa;
151
+ --color-teal-100: #ccfbf1;
152
+ --color-teal-200: #99f6e4;
153
+ --color-teal-300: #5eead4;
154
+ --color-teal-400: #2dd4bf;
155
+ --color-teal-500: #14b8a6;
156
+ --color-teal-600: #0d9488;
157
+ --color-teal-700: #0f766e;
158
+ --color-teal-800: #115e59;
159
+ --color-teal-900: #134e4a;
160
+ --color-teal-950: #042f2e;
161
+
162
+ /* ========================= Cyan ========================= */
163
+ --color-cyan-50: #ecfeff;
164
+ --color-cyan-100: #cffafe;
165
+ --color-cyan-200: #a5f3fc;
166
+ --color-cyan-300: #67e8f9;
167
+ --color-cyan-400: #22d3ee;
168
+ --color-cyan-500: #06b6d4;
169
+ --color-cyan-600: #0891b2;
170
+ --color-cyan-700: #0e7490;
171
+ --color-cyan-800: #155e75;
172
+ --color-cyan-900: #164e63;
173
+ --color-cyan-950: #083344;
174
+
175
+ /* ========================= Sky ========================= */
176
+ --color-sky-50: #f0f9ff;
177
+ --color-sky-100: #e0f2fe;
178
+ --color-sky-200: #bae6fd;
179
+ --color-sky-300: #7dd3fc;
180
+ --color-sky-400: #38bdf8;
181
+ --color-sky-500: #0ea5e9;
182
+ --color-sky-600: #0284c7;
183
+ --color-sky-700: #0369a1;
184
+ --color-sky-800: #075985;
185
+ --color-sky-900: #0c4a6e;
186
+ --color-sky-950: #082f49;
187
+
188
+ /* ========================= Indigo ========================= */
189
+ --color-indigo-50: #eef2ff;
190
+ --color-indigo-100: #e0e7ff;
191
+ --color-indigo-200: #c7d2fe;
192
+ --color-indigo-300: #a5b4fc;
193
+ --color-indigo-400: #818cf8;
194
+ --color-indigo-500: #6366f1;
195
+ --color-indigo-600: #4f46e5;
196
+ --color-indigo-700: #4338ca;
197
+ --color-indigo-800: #3730a3;
198
+ --color-indigo-900: #312e81;
199
+ --color-indigo-950: #1e1b4b;
200
+
201
+ /* ========================= Violet ========================= */
202
+ --color-violet-50: #f5f3ff;
203
+ --color-violet-100: #ede9fe;
204
+ --color-violet-200: #ddd6fe;
205
+ --color-violet-300: #c4b5fd;
206
+ --color-violet-400: #a78bfa;
207
+ --color-violet-500: #8b5cf6;
208
+ --color-violet-600: #7c3aed;
209
+ --color-violet-700: #6d28d9;
210
+ --color-violet-800: #5b21b6;
211
+ --color-violet-900: #4c1d95;
212
+ --color-violet-950: #2e1065;
213
+
214
+ /* ========================= Purple ========================= */
215
+ --color-purple-50: #faf5ff;
216
+ --color-purple-100: #f3e8ff;
217
+ --color-purple-200: #e9d5ff;
218
+ --color-purple-300: #d8b4fe;
219
+ --color-purple-400: #c084fc;
220
+ --color-purple-500: #a855f7;
221
+ --color-purple-600: #9333ea;
222
+ --color-purple-700: #7e22ce;
223
+ --color-purple-800: #6b21a8;
224
+ --color-purple-900: #581c87;
225
+ --color-purple-950: #3b0764;
226
+
227
+ /* ========================= Fuchsia ========================= */
228
+ --color-fuchsia-50: #fdf4ff;
229
+ --color-fuchsia-100: #fae8ff;
230
+ --color-fuchsia-200: #f5d0fe;
231
+ --color-fuchsia-300: #f0abfc;
232
+ --color-fuchsia-400: #e879f9;
233
+ --color-fuchsia-500: #d946ef;
234
+ --color-fuchsia-600: #c026d3;
235
+ --color-fuchsia-700: #a21caf;
236
+ --color-fuchsia-800: #86198f;
237
+ --color-fuchsia-900: #701a75;
238
+ --color-fuchsia-950: #4a044e;
239
+
240
+ /* ========================= Pink ========================= */
241
+ --color-pink-50: #fdf2f8;
242
+ --color-pink-100: #fce7f3;
243
+ --color-pink-200: #fbcfe8;
244
+ --color-pink-300: #f9a8d4;
245
+ --color-pink-400: #f472b6;
246
+ --color-pink-500: #ec4899;
247
+ --color-pink-600: #db2777;
248
+ --color-pink-700: #be185d;
249
+ --color-pink-800: #9d174d;
250
+ --color-pink-900: #831843;
251
+ --color-pink-950: #500724;
252
+
253
+ /* ========================= Rose ========================= */
254
+ --color-rose-50: #fff1f2;
255
+ --color-rose-100: #ffe4e6;
256
+ --color-rose-200: #fecdd3;
257
+ --color-rose-300: #fda4af;
258
+ --color-rose-400: #fb7185;
259
+ --color-rose-500: #f43f5e;
260
+ --color-rose-600: #e11d48;
261
+ --color-rose-700: #be123c;
262
+ --color-rose-800: #9f1239;
263
+ --color-rose-900: #881337;
264
+ --color-rose-950: #4c0519;
265
+
266
+ /* ========================= Green ========================= */
267
+ --color-green-50: #f0fdf4;
268
+ --color-green-100: #dcfce7;
269
+ --color-green-200: #bbf7d0;
270
+ --color-green-300: #86efac;
271
+ --color-green-400: #4ade80;
272
+ --color-green-500: #22c55e;
273
+ --color-green-600: #16a34a;
274
+ --color-green-700: #15803d;
275
+ --color-green-800: #166534;
276
+ --color-green-900: #14532d;
277
+ --color-green-950: #052e16;
278
+
279
+ /* ========================= Yellow ========================= */
280
+ --color-yellow-50: #fefce8;
281
+ --color-yellow-100: #fef9c3;
282
+ --color-yellow-200: #fef08a;
283
+ --color-yellow-300: #fde047;
284
+ --color-yellow-400: #facc15;
285
+ --color-yellow-500: #eab308;
286
+ --color-yellow-600: #ca8a04;
287
+ --color-yellow-700: #a16207;
288
+ --color-yellow-800: #854d0e;
289
+ --color-yellow-900: #713f12;
290
+ --color-yellow-950: #422006;
291
+ }
292
+ }
@@ -0,0 +1,16 @@
1
+ @import './alpha_colors.css';
2
+
3
+ @layer base {
4
+ :root {
5
+ --shadow-2xs: 0px 1px 0px 0px var(--color-black-alpha-5);
6
+ --shadow-xs: 0px 1px 2px 0px var(--color-black-alpha-5);
7
+ --shadow-sm: 0px 1px 3px 0px var(--color-black-alpha-10), 0px 1px 2px -1px var(--color-black-alpha-10);
8
+ --shadow-md: 0px 4px 6px -1px var(--color-black-alpha-10), 0px 2px 4px -2px var(--color-black-alpha-10);
9
+ --shadow-lg: 0px 10px 15px -3px var(--color-black-alpha-10), 0px 4px 6px -4px var(--color-black-alpha-10);
10
+ --shadow-xl: 0px 20px 25px -5px var(--color-black-alpha-10), 0px 8px 10px -6px var(--color-black-alpha-10);
11
+ --shadow-2xl: 0px 25px 50px -12px var(--color-black-alpha-10);
12
+
13
+ --shadow-focus-ring: 0 0 0 3px var(--ring);
14
+ --shadow-focus-ring-error: 0 0 0 3px var(--ring-error);
15
+ }
16
+ }
@@ -0,0 +1,34 @@
1
+ @layer base {
2
+ :root {
3
+ /* ========================= Spacing Scale ========================= */
4
+ --spacing-3xs: 2px;
5
+ --spacing-2xs: 4px;
6
+ --spacing-xs: 8px;
7
+ --spacing-sm: 12px;
8
+ --spacing-md: 16px;
9
+ --spacing-lg: 20px;
10
+ --spacing-xl: 24px;
11
+ --spacing-2xl: 32px;
12
+ --spacing-3xl: 40px;
13
+ --spacing-4xl: 48px;
14
+ --spacing-5xl: 64px;
15
+ --spacing-6xl: 80px;
16
+ --spacing-7xl: 96px;
17
+ --spacing-8xl: 112px;
18
+ --spacing-9xl: 128px;
19
+ --spacing-10xl: 144px;
20
+ /* ========================= Hacks to Fit Scale ========================= */
21
+ --spacing-3: 3px;
22
+ --spacing-5: 5px;
23
+ --spacing-5p5: 5.5px;
24
+ --spacing-6: 6px;
25
+ --spacing-7: 7px;
26
+ --spacing-7p5: 7.5px;
27
+ --spacing-8p5: 8.5px;
28
+ --spacing-9: 9px;
29
+ --spacing-9p5: 9.5px;
30
+ --spacing-10: 10px;
31
+ --spacing-14: 14px;
32
+ --spacing-15p5: 15.5px;
33
+ }
34
+ }
@@ -0,0 +1,91 @@
1
+ @layer base {
2
+ :root {
3
+ /* font definations */
4
+ --font-family-sans: 'Inter';
5
+ --font-family-serif: 'Inter';
6
+ --font-family-heading: var(--font-family-sans);
7
+ --font-family-body: var(--font-family-sans);
8
+ --font-family-monospace: 'Geist Mono';
9
+
10
+ /* Heading 1 */
11
+ --heading-1-font-family: var(--font-family-heading);
12
+ --heading-1-font-size: 48px;
13
+ --heading-1-line-height: 48px;
14
+ --heading-1-font-weight: 600;
15
+ --heading-1-letter-spacing: -1.5px;
16
+
17
+ /* ========================= Heading 2 ========================= */
18
+ --heading-2-font-family: var(--font-family-heading);
19
+ --heading-2-font-size: 30px;
20
+ --heading-2-line-height: 30px;
21
+ --heading-2-font-weight: 600;
22
+ --heading-2-letter-spacing: -1px;
23
+
24
+ /* ========================= Heading 3 ========================= */
25
+ --heading-3-font-family: var(--font-family-heading);
26
+ --heading-3-font-size: 24px;
27
+ --heading-3-line-height: 28.8px;
28
+ --heading-3-font-weight: 600;
29
+ --heading-3-letter-spacing: -1px;
30
+
31
+ /* ========================= Heading 4 ========================= */
32
+ --heading-4-font-family: var(--font-family-heading);
33
+ --heading-4-font-size: 20px;
34
+ --heading-4-line-height: 24px;
35
+ --heading-4-font-weight: 600;
36
+ --heading-4-letter-spacing: 0px;
37
+
38
+ /* ========================= Monospaced ========================= */
39
+ --monospaced-font-family: var(--font-family-mono);
40
+ --monospaced-font-size: 16px;
41
+ --monospaced-line-height: 24px;
42
+ --monospaced-font-weight: 400;
43
+ --monospaced-letter-spacing: 0px;
44
+
45
+ /* ========================= Caption ========================= */
46
+ --caption-font-family: var(--font-family-body);
47
+ --caption-font-size: 14px;
48
+ --caption-line-height: 21px;
49
+ --caption-font-weight: 400;
50
+ --caption-letter-spacing: 1.5px;
51
+
52
+ /* ========================= Caption Mini ========================= */
53
+ --caption-mini-font-family: var(--font-family-body);
54
+ --caption-mini-font-size: 10px;
55
+ --caption-mini-line-height: 16px;
56
+ --caption-mini-font-weight: 400;
57
+ --caption-mini-letter-spacing: 0px;
58
+
59
+ /* ========================= Paragraph Weights ========================= */
60
+ --paragraph-font-weight: 400;
61
+ --paragraph-medium-font-weight: 500;
62
+ --paragraph-bold-font-weight: 600;
63
+
64
+ /* ========================= Paragraph Large ========================= */
65
+ --paragraph-large-font-family: var(--font-family-body);
66
+ --paragraph-large-font-size: 18px;
67
+ --paragraph-large-line-height: 27px;
68
+ --paragraph-large-letter-spacing: 0px;
69
+
70
+ /* ========================= Paragraph Regular ========================= */
71
+ --paragraph-regular-font-family: var(--font-family-body);
72
+ --paragraph-regular-font-size: 16px;
73
+ --paragraph-regular-line-height: 24px;
74
+ --paragraph-regular-letter-spacing: 0px;
75
+ --paragraph-regular-spacing: 16px;
76
+
77
+ /* ========================= Paragraph Small ========================= */
78
+ --paragraph-small-font-family: var(--font-family-body);
79
+ --paragraph-small-font-size: 14px;
80
+ --paragraph-small-line-height: 20px;
81
+ --paragraph-small-letter-spacing: 0px;
82
+ --paragraph-small-spacing: 14px;
83
+
84
+ /* ========================= Paragraph Mini ========================= */
85
+ --paragraph-mini-font-family: var(--font-family-body);
86
+ --paragraph-mini-font-size: 12px;
87
+ --paragraph-mini-line-height: 16px;
88
+ --paragraph-mini-letter-spacing: 0px;
89
+ --paragraph-mini-spacing: 12px;
90
+ }
91
+ }