@lumaui/tokens 0.1.6 → 0.3.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.
@@ -7,64 +7,103 @@
7
7
  */
8
8
 
9
9
  export const LUMA_COMPONENT_CLASSES = [
10
- 'active:lm-bg-button-danger-bg-active',
11
- 'active:lm-bg-button-primary-bg-active',
10
+ 'active:bg-destructive/95',
11
+ 'active:bg-primary/10',
12
+ 'active:bg-primary/90',
13
+ 'active:bg-primary/95',
14
+ 'active:bg-secondary/90',
15
+ 'active:scale-95',
16
+ 'bg-black/80',
17
+ 'bg-card',
18
+ 'bg-destructive',
19
+ 'bg-destructive/10',
20
+ 'bg-muted',
21
+ 'bg-popover',
22
+ 'bg-primary',
23
+ 'bg-primary-2',
24
+ 'bg-primary/10',
25
+ 'bg-secondary',
26
+ 'bg-success/10',
12
27
  'bg-transparent',
28
+ 'bg-warning/15',
29
+ 'bg-white',
13
30
  'border',
31
+ 'border-b',
32
+ 'border-b-2',
33
+ 'border-border',
34
+ 'border-destructive/30',
35
+ 'border-gray-200',
36
+ 'border-primary',
37
+ 'border-primary-7',
38
+ 'border-primary/30',
39
+ 'border-success/30',
40
+ 'border-transparent',
41
+ 'border-warning/30',
14
42
  'disabled:cursor-not-allowed',
43
+ 'disabled:opacity-30',
15
44
  'disabled:opacity-50',
16
- 'focus-visible:lm-ring-button-focus',
45
+ 'disabled:pointer-events-none',
46
+ 'focus-visible:outline-none',
47
+ 'focus-visible:ring-2',
48
+ 'focus-visible:ring-offset-2',
49
+ 'focus-visible:ring-primary',
50
+ 'focus-visible:ring-ring',
17
51
  'focus:outline-none',
52
+ 'focus:ring-2',
53
+ 'focus:ring-offset-2',
54
+ 'focus:ring-primary',
55
+ 'focus:ring-primary-9',
18
56
  'font-medium',
19
- 'hover:lm-bg-button-danger-bg-hover',
20
- 'hover:lm-bg-button-ghost-bg-hover',
21
- 'hover:lm-bg-button-outline-bg-hover',
22
- 'hover:lm-bg-button-primary-bg-hover',
23
- 'hover:lm-border-button-outline-border-hover',
57
+ 'hover:bg-destructive/90',
58
+ 'hover:bg-primary/10',
59
+ 'hover:bg-primary/90',
60
+ 'hover:bg-secondary/80',
61
+ 'hover:opacity-100',
62
+ 'hover:opacity-80',
63
+ 'hover:text-foreground',
64
+ 'hover:text-primary',
24
65
  'inline-flex',
25
66
  'items-center',
26
67
  'justify-center',
27
- 'leading-snug',
28
- 'lm-bg-button-danger-bg',
29
- 'lm-bg-button-ghost-bg',
30
- 'lm-bg-button-primary-bg',
31
- 'lm-bg-card-background',
32
- 'lm-bg-card-nested',
33
- 'lm-bg-card-preview',
34
- 'lm-bg-card-shadow',
35
- 'lm-border-button-outline-border',
36
- 'lm-border-card-nested',
37
- 'lm-border-card-preview',
38
- 'lm-border-card-shadow',
39
- 'lm-border-neutral-60',
40
- 'lm-p-card',
41
- 'lm-rounded-button',
42
- 'lm-rounded-card-nested',
43
- 'lm-rounded-card-preview',
44
- 'lm-rounded-card-shadow',
45
- 'lm-rounded-lg',
46
- 'lm-shadow-card-shadow',
47
- 'lm-text-button-danger-text',
48
- 'lm-text-button-ghost-text',
49
- 'lm-text-button-outline-text',
50
- 'lm-text-button-primary-text',
51
- 'lm-text-primary',
52
- 'lm-text-secondary',
53
- 'lm-text-size-base',
54
- 'mb-1',
55
- 'mb-5',
56
- 'px-[var(--luma-button-padding-x-lg)]',
57
- 'px-[var(--luma-button-padding-x-md)]',
58
- 'px-[var(--luma-button-padding-x-sm)]',
59
- 'py-[var(--luma-button-padding-y-lg)]',
60
- 'py-[var(--luma-button-padding-y-md)]',
61
- 'py-[var(--luma-button-padding-y-sm)]',
68
+ 'mb-2',
62
69
  'relative',
70
+ 'rounded-[var(--radius-4)]',
71
+ 'rounded-[var(--radius-5)]',
72
+ 'rounded-[var(--radius-6)]',
73
+ 'rounded-full',
74
+ 'rounded-lg',
75
+ 'rounded-md',
76
+ 'rounded-none',
77
+ 'rounded-sm',
63
78
  'text-2xl',
64
79
  'text-base',
80
+ 'text-card-foreground',
81
+ 'text-center',
82
+ 'text-destructive',
83
+ 'text-destructive-foreground',
84
+ 'text-destructive/80',
85
+ 'text-gray-600',
86
+ 'text-gray-900',
87
+ 'text-left',
65
88
  'text-lg',
89
+ 'text-muted-foreground',
90
+ 'text-popover-foreground',
91
+ 'text-primary',
92
+ 'text-primary-12',
93
+ 'text-primary/85',
94
+ 'text-secondary-foreground',
66
95
  'text-sm',
96
+ 'text-success',
97
+ 'text-success/75',
98
+ 'text-warning',
99
+ 'text-warning/70',
100
+ 'text-white',
101
+ 'text-xl',
67
102
  'text-xs',
68
- 'transition-[color_var(--luma-button-transition-duration)_var(--luma-button-transition-timing)]',
103
+ 'transition-[grid-template-rows]',
104
+ 'transition-all',
105
+ 'transition-colors',
106
+ 'transition-opacity',
107
+ 'transition-transform',
69
108
  'w-full'
70
109
  ];
@@ -1,57 +1,65 @@
1
- /* Luma Design System - Dark Theme */
1
+ @import "tailwindcss";
2
+
2
3
  .dark {
3
- --luma-color-primary-50: oklch(0.70 0.14 232.13);
4
- --luma-color-primary-60: oklch(0.64 0.13 232.13);
5
- --luma-color-primary-70: oklch(0.58 0.12 232.13);
6
- --luma-color-primary-80: oklch(0.52 0.11 232.13);
7
- --luma-color-neutral-50: oklch(0.20 0.005 265);
8
- --luma-color-neutral-60: oklch(0.25 0.008 265);
9
- --luma-color-neutral-70: oklch(0.30 0.01 265);
10
- --luma-color-neutral-80: oklch(0.70 0.01 265);
11
- --luma-color-neutral-90: oklch(0.70 0.01 265);
12
- --luma-color-neutral-100: oklch(0.90 0.01 265);
13
- --luma-color-success-50: oklch(0.80 0.10 150);
14
- --luma-color-success-60: oklch(0.72 0.09 150);
15
- --luma-color-success-70: oklch(0.65 0.08 150);
16
- --luma-color-success-80: oklch(0.58 0.07 150);
17
- --luma-color-warning-50: oklch(0.85 0.12 85);
18
- --luma-color-warning-60: oklch(0.78 0.11 85);
19
- --luma-color-warning-70: oklch(0.72 0.10 85);
20
- --luma-color-warning-80: oklch(0.65 0.09 85);
21
- --luma-color-error-50: oklch(0.70 0.13 25);
22
- --luma-color-error-60: oklch(0.62 0.12 25);
23
- --luma-color-error-70: oklch(0.56 0.11 25);
24
- --luma-color-error-80: oklch(0.50 0.10 25);
25
- --luma-color-surface-base: oklch(0.15 0.005 265);
26
- --luma-color-text-primary: oklch(0.90 0.01 265);
27
- --luma-color-text-secondary: oklch(0.70 0.01 265);
28
- --luma-focus-ring-color: oklch(0.70 0.14 232.13 / 0.45);
29
- --luma-button-primary-bg: oklch(0.70 0.14 232.13);
30
- --luma-button-primary-bg-hover: oklch(0.58 0.12 232.13);
31
- --luma-button-primary-bg-active: oklch(0.52 0.11 232.13);
32
- --luma-button-primary-text: oklch(0.1 0 0);
33
- --luma-button-outline-border: oklch(0.25 0.008 265);
34
- --luma-button-outline-border-hover: oklch(0.70 0.01 265);
35
- --luma-button-outline-bg-hover: oklch(0.20 0.005 265);
36
- --luma-button-outline-text: oklch(0.90 0.01 265);
37
- --luma-button-ghost-bg: rgba(0, 0, 0, 0);
38
- --luma-button-ghost-bg-hover: oklch(0.20 0.005 265);
39
- --luma-button-ghost-text: oklch(0.90 0.01 265);
40
- --luma-button-danger-bg: oklch(0.70 0.13 25);
41
- --luma-button-danger-bg-hover: oklch(0.56 0.11 25);
42
- --luma-button-danger-bg-active: oklch(0.50 0.10 25);
43
- --luma-button-danger-text: oklch(0.1 0 0);
44
- --luma-button-focus-ring-color: oklch(0.70 0.14 232.13 / 0.45);
45
- --luma-card-shadow-background: oklch(0.18 0.005 265);
46
- --luma-card-shadow-border: oklch(0.25 0.008 265);
47
- --luma-card-shadow-shadow: 0 8px 24px oklch(0 0 0 / 0.25);
48
- --luma-card-nested-background: oklch(0.20 0.005 265);
49
- --luma-card-nested-border: oklch(0.25 0.008 265);
50
- --luma-card-preview-background: oklch(0.20 0.005 265);
51
- --luma-card-preview-border: oklch(0.25 0.008 265);
52
- --luma-card-background: oklch(0.17 0.005 265);
53
- --luma-card-box-shadow: 0px 2px 0 0px oklch(0 0 0 / 0.3);
54
- --luma-code-background: oklch(0.08 0.005 265);
55
- --luma-code-border: oklch(0.20 0.008 265);
56
- --luma-badge-bg: oklch(0.64 0.12 230 / 0.15);
4
+ /* Luma Design System - Purple Theme (Dark) */
5
+
6
+ /* Primary Color Scale (12-step Radix-inspired) */
7
+ --color-primary-1: oklch(0.13 0.030 300);
8
+ --color-primary-2: oklch(0.18 0.045 300);
9
+ --color-primary-3: oklch(0.23 0.055 300);
10
+ --color-primary-4: oklch(0.33 0.075 300);
11
+ --color-primary-5: oklch(0.72 0.120 300);
12
+ --color-primary-6: oklch(0.78 0.125 300);
13
+ --color-primary-7: oklch(0.83 0.115 300);
14
+ --color-primary-8: oklch(0.88 0.100 300);
15
+ --color-primary-9: oklch(0.91 0.080 300);
16
+ --color-primary-10: oklch(0.94 0.060 300);
17
+ --color-primary-11: oklch(0.96 0.040 300);
18
+ --color-primary-12: oklch(0.98 0.020 300);
19
+
20
+ /* Semantic Primary Mappings */
21
+ --color-primary: oklch(0.72 0.120 300);
22
+ --color-primary-foreground: oklch(0.98 0.020 300);
23
+ --color-secondary: oklch(0.18 0.045 300);
24
+ --color-secondary-foreground: oklch(0.98 0.020 300);
25
+ --color-accent: oklch(0.33 0.075 300);
26
+ --color-accent-foreground: oklch(0.98 0.020 300);
27
+ --color-input: oklch(0.18 0.045 300);
28
+ --color-ring: oklch(0.78 0.125 300 / 0.35);
29
+
30
+ /* Gray Color Scale (12-step Radix UI) */
31
+ --color-gray-1: oklch(0.13 0.000 0);
32
+ --color-gray-2: oklch(0.16 0.000 0);
33
+ --color-gray-3: oklch(0.20 0.000 0);
34
+ --color-gray-4: oklch(0.23 0.000 0);
35
+ --color-gray-5: oklch(0.26 0.000 0);
36
+ --color-gray-6: oklch(0.30 0.000 0);
37
+ --color-gray-7: oklch(0.35 0.000 0);
38
+ --color-gray-8: oklch(0.45 0.000 0);
39
+ --color-gray-9: oklch(0.50 0.000 0);
40
+ --color-gray-10: oklch(0.54 0.000 0);
41
+ --color-gray-11: oklch(0.74 0.000 0);
42
+ --color-gray-12: oklch(0.94 0.000 0);
43
+
44
+ /* Semantic Gray Mappings */
45
+ --color-border: oklch(0.20 0.000 0);
46
+ --color-muted-foreground: oklch(0.74 0.000 0);
47
+
48
+ /* Surface Colors */
49
+ --color-background: oklch(0.16 0.006 290);
50
+ --color-card: oklch(0.16 0.006 290);
51
+ --color-muted: oklch(0.16 0.006 290);
52
+ --color-foreground: oklch(0.92 0.01 290);
53
+ --color-card-foreground: oklch(0.92 0.01 290);
54
+ --color-popover: oklch(0.98 0.020 300);
55
+ --color-popover-foreground: oklch(0.16 0.006 290);
56
+
57
+ /* Semantic States (from shared/semantic.json) */
58
+ --color-destructive: oklch(0.63 0.10 28);
59
+ --color-destructive-foreground: oklch(1 0 0);
60
+ --color-warning: oklch(0.80 0.09 95);
61
+ --color-warning-foreground: oklch(0.22 0.014 290);
62
+ --color-success: oklch(0.72 0.07 155);
63
+ --color-success-foreground: oklch(1 0 0);
64
+
57
65
  }
package/build/luma.css CHANGED
@@ -1,611 +1,84 @@
1
1
  @import "tailwindcss";
2
2
 
3
3
  @theme {
4
- /* Luma Design System Tokens */
4
+ /* Luma Design System - Purple Theme (Light) */
5
+
6
+ /* Primary Color Scale (12-step Radix-inspired) */
7
+ --color-primary-1: oklch(1 0 300);
8
+ --color-primary-2: oklch(0.94 0.020 300);
9
+ --color-primary-3: oklch(0.88 0.035 300);
10
+ --color-primary-4: oklch(0.78 0.060 300);
11
+ --color-primary-5: oklch(0.48 0.090 300);
12
+ --color-primary-6: oklch(0.43 0.085 300);
13
+ --color-primary-7: oklch(0.38 0.080 300);
14
+ --color-primary-8: oklch(0.33 0.075 300);
15
+ --color-primary-9: oklch(0.28 0.065 300);
16
+ --color-primary-10: oklch(0.23 0.055 300);
17
+ --color-primary-11: oklch(0.18 0.045 300);
18
+ --color-primary-12: oklch(0.13 0.030 300);
19
+
20
+ /* Semantic Primary Mappings */
21
+ --color-primary: oklch(0.48 0.090 300);
22
+ --color-primary-foreground: oklch(0.13 0.030 300);
23
+ --color-secondary: oklch(0.94 0.020 300);
24
+ --color-secondary-foreground: oklch(0.13 0.030 300);
25
+ --color-accent: oklch(0.78 0.060 300);
26
+ --color-accent-foreground: oklch(0.13 0.030 300);
27
+ --color-input: oklch(0.94 0.020 300);
28
+ --color-ring: oklch(0.43 0.085 300 / 0.35);
29
+
30
+ /* Gray Color Scale (12-step Radix UI) */
31
+ --color-gray-1: oklch(0.99 0.000 0);
32
+ --color-gray-2: oklch(0.98 0.000 0);
33
+ --color-gray-3: oklch(0.95 0.000 0);
34
+ --color-gray-4: oklch(0.92 0.000 0);
35
+ --color-gray-5: oklch(0.89 0.000 0);
36
+ --color-gray-6: oklch(0.86 0.000 0);
37
+ --color-gray-7: oklch(0.82 0.000 0);
38
+ --color-gray-8: oklch(0.76 0.000 0);
39
+ --color-gray-9: oklch(0.60 0.000 0);
40
+ --color-gray-10: oklch(0.57 0.000 0);
41
+ --color-gray-11: oklch(0.45 0.000 0);
42
+ --color-gray-12: oklch(0.20 0.000 0);
43
+
44
+ /* Semantic Gray Mappings */
45
+ --color-border: oklch(0.95 0.000 0);
46
+ --color-muted-foreground: oklch(0.45 0.000 0);
47
+
48
+ /* Surface Colors */
49
+ --color-background: oklch(1 0 0);
50
+ --color-card: oklch(1 0 0);
51
+ --color-muted: oklch(1 0 0);
52
+ --color-foreground: oklch(0.22 0.014 290);
53
+ --color-card-foreground: oklch(0.22 0.014 290);
54
+ --color-popover: oklch(0.13 0.030 300);
55
+ --color-popover-foreground: oklch(1 0 0);
56
+
57
+ /* Semantic States (from shared/semantic.json) */
58
+ --color-destructive: oklch(0.63 0.10 28);
59
+ --color-destructive-foreground: oklch(1 0 0);
60
+ --color-warning: oklch(0.80 0.09 95);
61
+ --color-warning-foreground: oklch(0.22 0.014 290);
62
+ --color-success: oklch(0.72 0.07 155);
63
+ --color-success-foreground: oklch(1 0 0);
64
+
65
+ /* Typography (from shared/typography.json) */
66
+ --font-family-base: 'Google Sans', sans-serif;
67
+
68
+ /* Border Radius (from shared/radius.json) */
69
+ --radius-1: 0.125rem;
70
+ --radius-2: 0.25rem;
71
+ --radius-3: 0.375rem;
72
+ --radius-4: 0.5rem;
73
+ --radius-5: 0.75rem;
74
+ --radius-6: 1rem;
75
+
76
+ /* Box Shadow (from shared/shadow.json) */
77
+ --shadow-1: inset 0 0 0 1px oklch(0.5 0 0 / 0.03);
78
+ --shadow-2: 0 1px 2px 0 oklch(0 0 0 / 0.03), 0 0 0 1px oklch(0.5 0 0 / 0.02);
79
+ --shadow-3: 0 2px 4px 0 oklch(0 0 0 / 0.04), 0 0 0 1px oklch(0.5 0 0 / 0.02);
80
+ --shadow-4: 0 4px 8px 0 oklch(0 0 0 / 0.06), 0 0 0 1px oklch(0.5 0 0 / 0.02);
81
+ --shadow-5: 0 8px 16px 0 oklch(0 0 0 / 0.08), 0 0 0 1px oklch(0.5 0 0 / 0.02);
82
+ --shadow-6: 0 16px 32px 0 oklch(0 0 0 / 0.10), 0 0 0 1px oklch(0.5 0 0 / 0.02);
5
83
 
6
- /* Color */
7
- --luma-color-primary-50: oklch(0.63 0.14 232.13);
8
- --luma-color-primary-60: oklch(0.56 0.13 232.13);
9
- --luma-color-primary-70: oklch(0.49 0.12 232.13);
10
- --luma-color-primary-80: oklch(0.43 0.11 232.13);
11
- --luma-color-neutral-50: oklch(0.99 0 0);
12
- --luma-color-neutral-60: oklch(0.92 0.008 265);
13
- --luma-color-neutral-70: oklch(0.85 0.01 265);
14
- --luma-color-neutral-80: oklch(0.45 0.01 265);
15
- --luma-color-neutral-90: oklch(0.45 0.01 265);
16
- --luma-color-neutral-100: oklch(0.22 0.01 265);
17
- --luma-color-success-50: oklch(0.72 0.08 150);
18
- --luma-color-success-60: oklch(0.65 0.07 150);
19
- --luma-color-success-70: oklch(0.58 0.06 150);
20
- --luma-color-success-80: oklch(0.52 0.05 150);
21
- --luma-color-warning-50: oklch(0.78 0.10 85);
22
- --luma-color-warning-60: oklch(0.72 0.09 85);
23
- --luma-color-warning-70: oklch(0.65 0.08 85);
24
- --luma-color-warning-80: oklch(0.58 0.07 85);
25
- --luma-color-error-50: oklch(0.62 0.11 25);
26
- --luma-color-error-60: oklch(0.56 0.10 25);
27
- --luma-color-error-70: oklch(0.50 0.09 25);
28
- --luma-color-error-80: oklch(0.44 0.08 25);
29
- --luma-color-surface-base: oklch(1 0 0);
30
- --luma-color-text-primary: oklch(0.22 0.01 265);
31
- --luma-color-text-secondary: oklch(0.45 0.01 265);
32
-
33
- /* Focus */
34
- --luma-focus-ring-color: oklch(0.63 0.14 232.13 / 0.45);
35
- --luma-focus-ring-width: 2px;
36
- --luma-focus-ring-offset: 2px;
37
-
38
- /* Spacing */
39
- --luma-spacing-xs: 0.25rem;
40
- --luma-spacing-sm: 0.5rem;
41
- --luma-spacing-md: 1rem;
42
- --luma-spacing-lg: 1.5rem;
43
- --luma-spacing-xl: 2.5rem;
44
-
45
- /* Radius */
46
- --luma-radius-sm: 6px;
47
- --luma-radius-md: 10px;
48
- --luma-radius-lg: 18px;
49
- --luma-radius-full: 9999px;
50
-
51
- /* Font */
52
- --luma-font-family-base: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
53
- --luma-font-weight-regular: 400;
54
- --luma-font-weight-medium: 500;
55
- --luma-font-weight-semibold: 600;
56
-
57
- /* Text */
58
- --luma-text-sm: 0.75rem;
59
- --luma-text-base: 1rem;
60
- --luma-text-lg: 1.875rem;
61
-
62
- /* Line-height */
63
- --luma-line-height-none: 1;
64
- --luma-line-height-snug: 1.375;
65
- --luma-line-height-relaxed: 1.625;
66
-
67
- /* Duration */
68
- --luma-duration-fast: 150ms;
69
- --luma-duration-base: 200ms;
70
-
71
- /* Transition */
72
- --luma-transition-ease: ease-out;
73
-
74
- /* Button */
75
- --luma-button-primary-bg: oklch(0.63 0.14 232.13);
76
- --luma-button-primary-bg-hover: oklch(0.49 0.12 232.13);
77
- --luma-button-primary-bg-active: oklch(0.43 0.11 232.13);
78
- --luma-button-primary-text: oklch(1 0 0);
79
- --luma-button-outline-border: oklch(0.92 0.008 265);
80
- --luma-button-outline-border-hover: oklch(0.45 0.01 265);
81
- --luma-button-outline-bg-hover: oklch(0.99 0 0);
82
- --luma-button-outline-text: oklch(0.22 0.01 265);
83
- --luma-button-ghost-bg: rgba(0, 0, 0, 0);
84
- --luma-button-ghost-bg-hover: oklch(0.99 0 0);
85
- --luma-button-ghost-text: oklch(0.22 0.01 265);
86
- --luma-button-danger-bg: oklch(0.62 0.11 25);
87
- --luma-button-danger-bg-hover: oklch(0.50 0.09 25);
88
- --luma-button-danger-bg-active: oklch(0.44 0.08 25);
89
- --luma-button-danger-text: oklch(1 0 0);
90
- --luma-button-padding-x-sm: 1rem;
91
- --luma-button-padding-x-md: 1.5rem;
92
- --luma-button-padding-x-lg: 2rem;
93
- --luma-button-padding-y-sm: 0.5rem;
94
- --luma-button-padding-y-md: 0.75rem;
95
- --luma-button-padding-y-lg: 1rem;
96
- --luma-button-radius: 10px;
97
- --luma-button-transition-duration: 200ms;
98
- --luma-button-transition-timing: ease-out;
99
- --luma-button-focus-ring-width: 2px;
100
- --luma-button-focus-ring-color: oklch(0.63 0.14 232.13 / 0.45);
101
-
102
- /* Card */
103
- --luma-card-shadow-background: oklch(1 0 0);
104
- --luma-card-shadow-border: oklch(0.92 0.008 265);
105
- --luma-card-shadow-shadow: 0 8px 24px oklch(0.22 0.01 265 / 0.06);
106
- --luma-card-shadow-radius: 16px;
107
- --luma-card-nested-background: oklch(0.99 0 0);
108
- --luma-card-nested-border: oklch(0.99 0 0);
109
- --luma-card-nested-radius: 12px;
110
- --luma-card-preview-background: oklch(0.99 0 0);
111
- --luma-card-preview-border: oklch(0.92 0.008 265);
112
- --luma-card-preview-radius: 12px;
113
- --luma-card-background: oklch(1 0 0);
114
- --luma-card-padding: 1.5rem;
115
- --luma-card-box-shadow: 0px 2px 0 0px #e4e4e4;
116
-
117
- /* Code */
118
- --luma-code-background: oklch(0.12 0.005 265);
119
- --luma-code-text: oklch(0.9 0 0);
120
- --luma-code-border: oklch(0.25 0.008 265);
121
- --luma-code-radius: 8px;
122
-
123
- /* Badge */
124
- --luma-badge-color: oklch(0.63 0.14 232.13);
125
- --luma-badge-bg: oklch(0.54 0.1 230 / 0.1);
126
- --luma-badge-padding-x: 0.625rem;
127
- --luma-badge-padding-y: 0.25rem;
128
- --luma-badge-font-size: 0.75rem;
129
- --luma-badge-font-weight: 500;
130
-
131
- }
132
-
133
- /* Tailwind Utilities - All prefixed with lm- */
134
-
135
- /* Scale-Based Color Utilities */
136
- @utility lm-bg-primary-50 {
137
- background-color: var(--luma-color-primary-50);
138
- }
139
-
140
- @utility lm-text-primary-50 {
141
- color: var(--luma-color-primary-50);
142
- }
143
-
144
- @utility lm-border-primary-50 {
145
- border-color: var(--luma-color-primary-50);
146
- }
147
-
148
- @utility lm-bg-primary-60 {
149
- background-color: var(--luma-color-primary-60);
150
- }
151
-
152
- @utility lm-text-primary-60 {
153
- color: var(--luma-color-primary-60);
154
- }
155
-
156
- @utility lm-border-primary-60 {
157
- border-color: var(--luma-color-primary-60);
158
- }
159
-
160
- @utility lm-bg-primary-70 {
161
- background-color: var(--luma-color-primary-70);
162
- }
163
-
164
- @utility lm-text-primary-70 {
165
- color: var(--luma-color-primary-70);
166
- }
167
-
168
- @utility lm-border-primary-70 {
169
- border-color: var(--luma-color-primary-70);
170
- }
171
-
172
- @utility lm-bg-primary-80 {
173
- background-color: var(--luma-color-primary-80);
174
- }
175
-
176
- @utility lm-text-primary-80 {
177
- color: var(--luma-color-primary-80);
178
- }
179
-
180
- @utility lm-border-primary-80 {
181
- border-color: var(--luma-color-primary-80);
182
- }
183
-
184
- @utility lm-bg-neutral-50 {
185
- background-color: var(--luma-color-neutral-50);
186
- }
187
-
188
- @utility lm-text-neutral-50 {
189
- color: var(--luma-color-neutral-50);
190
- }
191
-
192
- @utility lm-border-neutral-50 {
193
- border-color: var(--luma-color-neutral-50);
194
- }
195
-
196
- @utility lm-bg-neutral-60 {
197
- background-color: var(--luma-color-neutral-60);
198
- }
199
-
200
- @utility lm-text-neutral-60 {
201
- color: var(--luma-color-neutral-60);
202
- }
203
-
204
- @utility lm-border-neutral-60 {
205
- border-color: var(--luma-color-neutral-60);
206
- }
207
-
208
- @utility lm-bg-neutral-70 {
209
- background-color: var(--luma-color-neutral-70);
210
- }
211
-
212
- @utility lm-text-neutral-70 {
213
- color: var(--luma-color-neutral-70);
214
- }
215
-
216
- @utility lm-border-neutral-70 {
217
- border-color: var(--luma-color-neutral-70);
218
- }
219
-
220
- @utility lm-bg-neutral-80 {
221
- background-color: var(--luma-color-neutral-80);
222
- }
223
-
224
- @utility lm-text-neutral-80 {
225
- color: var(--luma-color-neutral-80);
226
- }
227
-
228
- @utility lm-border-neutral-80 {
229
- border-color: var(--luma-color-neutral-80);
230
84
  }
231
-
232
- @utility lm-bg-neutral-90 {
233
- background-color: var(--luma-color-neutral-90);
234
- }
235
-
236
- @utility lm-text-neutral-90 {
237
- color: var(--luma-color-neutral-90);
238
- }
239
-
240
- @utility lm-border-neutral-90 {
241
- border-color: var(--luma-color-neutral-90);
242
- }
243
-
244
- @utility lm-bg-neutral-100 {
245
- background-color: var(--luma-color-neutral-100);
246
- }
247
-
248
- @utility lm-text-neutral-100 {
249
- color: var(--luma-color-neutral-100);
250
- }
251
-
252
- @utility lm-border-neutral-100 {
253
- border-color: var(--luma-color-neutral-100);
254
- }
255
-
256
- @utility lm-bg-success-50 {
257
- background-color: var(--luma-color-success-50);
258
- }
259
-
260
- @utility lm-text-success-50 {
261
- color: var(--luma-color-success-50);
262
- }
263
-
264
- @utility lm-border-success-50 {
265
- border-color: var(--luma-color-success-50);
266
- }
267
-
268
- @utility lm-bg-success-60 {
269
- background-color: var(--luma-color-success-60);
270
- }
271
-
272
- @utility lm-text-success-60 {
273
- color: var(--luma-color-success-60);
274
- }
275
-
276
- @utility lm-border-success-60 {
277
- border-color: var(--luma-color-success-60);
278
- }
279
-
280
- @utility lm-bg-success-70 {
281
- background-color: var(--luma-color-success-70);
282
- }
283
-
284
- @utility lm-text-success-70 {
285
- color: var(--luma-color-success-70);
286
- }
287
-
288
- @utility lm-border-success-70 {
289
- border-color: var(--luma-color-success-70);
290
- }
291
-
292
- @utility lm-bg-success-80 {
293
- background-color: var(--luma-color-success-80);
294
- }
295
-
296
- @utility lm-text-success-80 {
297
- color: var(--luma-color-success-80);
298
- }
299
-
300
- @utility lm-border-success-80 {
301
- border-color: var(--luma-color-success-80);
302
- }
303
-
304
- @utility lm-bg-warning-50 {
305
- background-color: var(--luma-color-warning-50);
306
- }
307
-
308
- @utility lm-text-warning-50 {
309
- color: var(--luma-color-warning-50);
310
- }
311
-
312
- @utility lm-border-warning-50 {
313
- border-color: var(--luma-color-warning-50);
314
- }
315
-
316
- @utility lm-bg-warning-60 {
317
- background-color: var(--luma-color-warning-60);
318
- }
319
-
320
- @utility lm-text-warning-60 {
321
- color: var(--luma-color-warning-60);
322
- }
323
-
324
- @utility lm-border-warning-60 {
325
- border-color: var(--luma-color-warning-60);
326
- }
327
-
328
- @utility lm-bg-warning-70 {
329
- background-color: var(--luma-color-warning-70);
330
- }
331
-
332
- @utility lm-text-warning-70 {
333
- color: var(--luma-color-warning-70);
334
- }
335
-
336
- @utility lm-border-warning-70 {
337
- border-color: var(--luma-color-warning-70);
338
- }
339
-
340
- @utility lm-bg-warning-80 {
341
- background-color: var(--luma-color-warning-80);
342
- }
343
-
344
- @utility lm-text-warning-80 {
345
- color: var(--luma-color-warning-80);
346
- }
347
-
348
- @utility lm-border-warning-80 {
349
- border-color: var(--luma-color-warning-80);
350
- }
351
-
352
- @utility lm-bg-error-50 {
353
- background-color: var(--luma-color-error-50);
354
- }
355
-
356
- @utility lm-text-error-50 {
357
- color: var(--luma-color-error-50);
358
- }
359
-
360
- @utility lm-border-error-50 {
361
- border-color: var(--luma-color-error-50);
362
- }
363
-
364
- @utility lm-bg-error-60 {
365
- background-color: var(--luma-color-error-60);
366
- }
367
-
368
- @utility lm-text-error-60 {
369
- color: var(--luma-color-error-60);
370
- }
371
-
372
- @utility lm-border-error-60 {
373
- border-color: var(--luma-color-error-60);
374
- }
375
-
376
- @utility lm-bg-error-70 {
377
- background-color: var(--luma-color-error-70);
378
- }
379
-
380
- @utility lm-text-error-70 {
381
- color: var(--luma-color-error-70);
382
- }
383
-
384
- @utility lm-border-error-70 {
385
- border-color: var(--luma-color-error-70);
386
- }
387
-
388
- @utility lm-bg-error-80 {
389
- background-color: var(--luma-color-error-80);
390
- }
391
-
392
- @utility lm-text-error-80 {
393
- color: var(--luma-color-error-80);
394
- }
395
-
396
- @utility lm-border-error-80 {
397
- border-color: var(--luma-color-error-80);
398
- }
399
-
400
- /* Semantic Text Utilities */
401
- @utility lm-text-primary {
402
- color: var(--luma-color-text-primary);
403
- }
404
-
405
- @utility lm-text-secondary {
406
- color: var(--luma-color-text-secondary);
407
- }
408
-
409
- @utility lm-bg-surface-base {
410
- background-color: var(--luma-color-surface-base);
411
- }
412
-
413
- /* Global Focus Ring */
414
- @utility lm-ring-focus {
415
- outline: var(--luma-focus-ring-width) solid var(--luma-focus-ring-color);
416
- outline-offset: var(--luma-focus-ring-offset);
417
- }
418
-
419
- /* Button Background Colors */
420
- @utility lm-bg-button-primary-bg {
421
- background-color: var(--luma-button-primary-bg);
422
- }
423
-
424
- @utility lm-bg-button-primary-bg-hover {
425
- background-color: var(--luma-button-primary-bg-hover);
426
- }
427
-
428
- @utility lm-bg-button-primary-bg-active {
429
- background-color: var(--luma-button-primary-bg-active);
430
- }
431
-
432
- @utility lm-bg-button-outline-bg-hover {
433
- background-color: var(--luma-button-outline-bg-hover);
434
- }
435
-
436
- @utility lm-bg-button-ghost-bg {
437
- background-color: var(--luma-button-ghost-bg);
438
- }
439
-
440
- @utility lm-bg-button-ghost-bg-hover {
441
- background-color: var(--luma-button-ghost-bg-hover);
442
- }
443
-
444
- @utility lm-bg-button-danger-bg {
445
- background-color: var(--luma-button-danger-bg);
446
- }
447
-
448
- @utility lm-bg-button-danger-bg-hover {
449
- background-color: var(--luma-button-danger-bg-hover);
450
- }
451
-
452
- @utility lm-bg-button-danger-bg-active {
453
- background-color: var(--luma-button-danger-bg-active);
454
- }
455
-
456
- /* Button Text Colors */
457
- @utility lm-text-button-primary-text {
458
- color: var(--luma-button-primary-text);
459
- }
460
-
461
- @utility lm-text-button-outline-text {
462
- color: var(--luma-button-outline-text);
463
- }
464
-
465
- @utility lm-text-button-ghost-text {
466
- color: var(--luma-button-ghost-text);
467
- }
468
-
469
- @utility lm-text-button-danger-text {
470
- color: var(--luma-button-danger-text);
471
- }
472
-
473
- /* Button Border Colors */
474
- @utility lm-border-button-outline-border {
475
- border-color: var(--luma-button-outline-border);
476
- }
477
-
478
- @utility lm-border-button-outline-border-hover {
479
- border-color: var(--luma-button-outline-border-hover);
480
- }
481
-
482
- /* Button Focus Ring */
483
- @utility lm-ring-button-focus {
484
- outline: var(--luma-button-focus-ring-width) solid var(--luma-button-focus-ring-color);
485
- outline-offset: 2px;
486
- }
487
-
488
- /* Button Radius */
489
- @utility lm-rounded-button {
490
- border-radius: var(--luma-button-radius);
491
- }
492
-
493
- /* Card Variant Utilities */
494
- @utility lm-bg-card-shadow {
495
- background-color: var(--luma-card-shadow-background);
496
- }
497
-
498
- @utility lm-border-card-shadow {
499
- border-color: var(--luma-card-shadow-border);
500
- }
501
-
502
- @utility lm-shadow-card-shadow {
503
- box-shadow: var(--luma-card-shadow-shadow);
504
- }
505
-
506
- @utility lm-rounded-card-shadow {
507
- border-radius: var(--luma-card-shadow-radius);
508
- }
509
-
510
- @utility lm-bg-card-nested {
511
- background-color: var(--luma-card-nested-background);
512
- }
513
-
514
- @utility lm-border-card-nested {
515
- border-color: var(--luma-card-nested-border);
516
- }
517
-
518
- @utility lm-rounded-card-nested {
519
- border-radius: var(--luma-card-nested-radius);
520
- }
521
-
522
- @utility lm-bg-card-preview {
523
- background-color: var(--luma-card-preview-background);
524
- }
525
-
526
- @utility lm-border-card-preview {
527
- border-color: var(--luma-card-preview-border);
528
- }
529
-
530
- @utility lm-rounded-card-preview {
531
- border-radius: var(--luma-card-preview-radius);
532
- }
533
-
534
- /* Card Legacy Utilities (gradient wrapper) */
535
- @utility lm-bg-card-background {
536
- background-color: var(--luma-card-background);
537
- }
538
-
539
- @utility lm-p-card {
540
- padding: var(--luma-card-padding);
541
- }
542
-
543
- @utility lm-shadow-card {
544
- box-shadow: var(--luma-card-box-shadow);
545
- }
546
-
547
- /* Code Block Utilities */
548
- @utility lm-bg-code {
549
- background-color: var(--luma-code-background);
550
- }
551
-
552
- @utility lm-text-code {
553
- color: var(--luma-code-text);
554
- }
555
-
556
- @utility lm-border-code {
557
- border-color: var(--luma-code-border);
558
- }
559
-
560
- @utility lm-rounded-code {
561
- border-radius: var(--luma-code-radius);
562
- }
563
-
564
- /* Border Radius */
565
- @utility lm-rounded-sm {
566
- border-radius: var(--luma-radius-sm);
567
- }
568
-
569
- @utility lm-rounded-md {
570
- border-radius: var(--luma-radius-md);
571
- }
572
-
573
- @utility lm-rounded-lg {
574
- border-radius: var(--luma-radius-lg);
575
- }
576
-
577
- @utility lm-rounded-full {
578
- border-radius: var(--luma-radius-full);
579
- }
580
-
581
- /* Font Sizes */
582
- @utility lm-text-size-sm {
583
- font-size: var(--luma-text-sm);
584
- }
585
-
586
- @utility lm-text-size-base {
587
- font-size: var(--luma-text-base);
588
- }
589
-
590
- @utility lm-text-size-lg {
591
- font-size: var(--luma-text-lg);
592
- }
593
-
594
- /* Transitions */
595
- @utility lm-duration-fast {
596
- transition-duration: var(--luma-duration-fast);
597
- }
598
-
599
- @utility lm-duration-base {
600
- transition-duration: var(--luma-duration-base);
601
- }
602
-
603
- /* Badge */
604
- @utility lm-bg-badge {
605
- background-color: var(--luma-badge-bg);
606
- }
607
-
608
- @utility lm-text-badge {
609
- color: var(--luma-badge-color);
610
- }
611
-
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lumaui/tokens",
3
- "version": "0.1.6",
3
+ "version": "0.3.1",
4
4
  "description": "Design tokens for Luma UI - Neo-Minimal design system",
5
5
  "type": "module",
6
6
  "main": "./build/luma-complete.css",
@@ -17,12 +17,12 @@
17
17
  ],
18
18
  "scripts": {
19
19
  "build": "npm run build:light && npm run build:dark && npm run build:manifest",
20
+ "postbuild": "node scripts/copy-to-docs.js",
20
21
  "build:light": "style-dictionary build --config config.js",
21
22
  "build:dark": "style-dictionary build --config config.dark.js",
22
23
  "build:manifest": "npx ts-node --esm ../../tools/generate-class-manifest.ts",
23
- "watch": "npm run build && npm run watch:light & npm run watch:dark",
24
- "watch:light": "style-dictionary build --config config.js --watch",
25
- "watch:dark": "style-dictionary build --config config.dark.js --watch"
24
+ "dev": "npm run build",
25
+ "watch": "npm run build"
26
26
  },
27
27
  "keywords": [
28
28
  "design-tokens",