@astryx-vue/themes 0.0.0-stage → 0.1.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.
Files changed (56) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +14 -2
  3. package/THIRD_PARTY_NOTICES.md +41 -0
  4. package/css.d.ts +3 -0
  5. package/fonts.css +6 -0
  6. package/neutral/alert-dialog.css +9 -0
  7. package/neutral/avatar-group.css +10 -0
  8. package/neutral/avatar.css +16 -0
  9. package/neutral/badge.css +36 -0
  10. package/neutral/banner.css +16 -0
  11. package/neutral/base.css +254 -0
  12. package/neutral/bottom-sheet.css +17 -0
  13. package/neutral/button.css +34 -0
  14. package/neutral/card.css +33 -0
  15. package/neutral/center.css +8 -0
  16. package/neutral/chat.css +28 -0
  17. package/neutral/checkbox.css +13 -0
  18. package/neutral/citation.css +16 -0
  19. package/neutral/code.css +36 -0
  20. package/neutral/collapsible.css +11 -0
  21. package/neutral/context-menu.css +19 -0
  22. package/neutral/dialog.css +14 -0
  23. package/neutral/divider.css +10 -0
  24. package/neutral/dropdown-menu.css +18 -0
  25. package/neutral/empty-state.css +10 -0
  26. package/neutral/field.css +1 -0
  27. package/neutral/grid.css +8 -0
  28. package/neutral/heading.css +24 -0
  29. package/neutral/hover-card.css +14 -0
  30. package/neutral/icon.css +24 -0
  31. package/neutral/input.css +22 -0
  32. package/neutral/kbd.css +10 -0
  33. package/neutral/link.css +10 -0
  34. package/neutral/list.css +13 -0
  35. package/neutral/mobile-nav.css +8 -0
  36. package/neutral/more-menu.css +20 -0
  37. package/neutral/nav-menu.css +8 -0
  38. package/neutral/overlay.css +9 -0
  39. package/neutral/popover.css +13 -0
  40. package/neutral/progress-bar.css +16 -0
  41. package/neutral/radio.css +9 -0
  42. package/neutral/segmented-control.css +19 -0
  43. package/neutral/side-nav.css +9 -0
  44. package/neutral/skeleton.css +8 -0
  45. package/neutral/slider.css +10 -0
  46. package/neutral/spinner.css +22 -0
  47. package/neutral/status-dot.css +12 -0
  48. package/neutral/switch.css +30 -0
  49. package/neutral/text-area.css +10 -0
  50. package/neutral/text.css +26 -0
  51. package/neutral/toast.css +13 -0
  52. package/neutral/toggle-button.css +10 -0
  53. package/neutral/token.css +29 -0
  54. package/neutral/tooltip.css +10 -0
  55. package/neutral.css +51 -0
  56. package/package.json +51 -3
@@ -0,0 +1,19 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-context-menu-background: light-dark(#ffffff, #1b1b1b);
7
+ --astryx-context-menu-foreground: light-dark(#171717, #fafafa);
8
+ --astryx-context-menu-shadow:
9
+ 0 2px 4px light-dark(oklch(0 0 0 / 5%), oklch(0 0 0 / 25%)),
10
+ 0 4px 8px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 40%)),
11
+ inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 8%));
12
+ --astryx-context-menu-item-foreground: light-dark(#171717, #fafafa);
13
+ --astryx-context-menu-item-focus-background: light-dark(#0536590c, #ffffff0c);
14
+ --astryx-context-menu-item-pressed-background: light-dark(#05365919, #ffffff19);
15
+ --astryx-context-menu-item-description-foreground: light-dark(#525252, #a3a3a3);
16
+ --astryx-context-menu-item-error-foreground: light-dark(#89001a, #ffc6c1);
17
+ --astryx-context-menu-section-foreground: light-dark(#525252, #a3a3a3);
18
+ }
19
+ }
@@ -0,0 +1,14 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-dialog-background: light-dark(#ffffff, #262626);
7
+ --astryx-dialog-foreground: light-dark(#171717, #fafafa);
8
+ --astryx-dialog-overlay: light-dark(#00000080, #000000cc);
9
+ --astryx-dialog-shadow:
10
+ 0 4px 6px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 50%)),
11
+ 0 12px 24px light-dark(oklch(0 0 0 / 15%), oklch(0 0 0 / 70%)),
12
+ inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 15%));
13
+ }
14
+ }
@@ -0,0 +1,10 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-divider-color-subtle: light-dark(#00000014, #ffffff1a);
7
+ --astryx-divider-color-strong: light-dark(#d4d4d4, #525252);
8
+ --astryx-divider-label-color: light-dark(#525252, #a3a3a3);
9
+ }
10
+ }
@@ -0,0 +1,18 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-dropdown-menu-background: light-dark(#ffffff, #1b1b1b);
7
+ --astryx-dropdown-menu-foreground: light-dark(#171717, #fafafa);
8
+ --astryx-dropdown-menu-shadow:
9
+ 0 2px 4px light-dark(oklch(0 0 0 / 5%), oklch(0 0 0 / 25%)),
10
+ 0 4px 8px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 40%)),
11
+ inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 8%));
12
+ --astryx-dropdown-menu-hover-background: light-dark(#0536590c, #ffffff0c);
13
+ --astryx-dropdown-menu-pressed-background: light-dark(#05365919, #ffffff19);
14
+ --astryx-dropdown-menu-trigger-open-overlay: light-dark(#05365919, #ffffff19);
15
+ --astryx-dropdown-menu-destructive-foreground: light-dark(#a50c25, #ffc6c1);
16
+ --astryx-dropdown-menu-section-heading-foreground: light-dark(#525252, #a3a3a3);
17
+ }
18
+ }
@@ -0,0 +1,10 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-empty-state-title-foreground: light-dark(#171717, #fafafa);
7
+ --astryx-empty-state-description-foreground: light-dark(#525252, #a3a3a3);
8
+ --astryx-empty-state-text-width: 360px;
9
+ }
10
+ }
@@ -0,0 +1 @@
1
+ /* Field component theme tokens can be added here. */
@@ -0,0 +1,8 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-grid-default-gap: var(--astryx-spacing-0);
7
+ }
8
+ }
@@ -0,0 +1,24 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-heading-foreground: light-dark(#171717, #fafafa);
7
+ --astryx-heading-level-1-size: 2rem;
8
+ --astryx-heading-level-2-size: 1.75rem;
9
+ --astryx-heading-level-3-size: 1.5rem;
10
+ --astryx-heading-level-4-size: 1.25rem;
11
+ --astryx-heading-level-5-size: 1.125rem;
12
+ --astryx-heading-level-6-size: 1rem;
13
+ --astryx-heading-display-1-size: 3rem;
14
+ --astryx-heading-display-2-size: 2.25rem;
15
+ --astryx-heading-display-3-size: 1.75rem;
16
+ --astryx-heading-display-weight: 300;
17
+ --astryx-heading-leading: 1.25;
18
+ --astryx-text-large-size: 1rem;
19
+ --astryx-text-large-leading: 1.5;
20
+ --astryx-text-label-size: 0.875rem;
21
+ --astryx-text-label-leading: 1.25;
22
+ --astryx-text-supporting-foreground: light-dark(#525252, #a3a3a3);
23
+ }
24
+ }
@@ -0,0 +1,14 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-hover-card-background: light-dark(#ffffff, #1b1b1b);
7
+ --astryx-hover-card-foreground: light-dark(#171717, #fafafa);
8
+ --astryx-hover-card-shadow:
9
+ 0 2px 4px light-dark(oklch(0 0 0 / 5%), oklch(0 0 0 / 25%)),
10
+ 0 4px 8px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 40%)),
11
+ inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 8%));
12
+ --astryx-hover-card-indication-color: light-dark(#d4d4d4, #525252);
13
+ }
14
+ }
@@ -0,0 +1,24 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-icon-primary-foreground: light-dark(#171717, #fafafa);
7
+ --astryx-icon-secondary-foreground: light-dark(#6a6a6a, #9e9e9e);
8
+ --astryx-icon-disabled-foreground: light-dark(#919191, #525252);
9
+ --astryx-icon-accent-foreground: light-dark(#0074e2, #6d9cfe);
10
+ --astryx-icon-success-foreground: light-dark(#00490b, #a4d6a3);
11
+ --astryx-icon-error-foreground: light-dark(#76000c, #ffc4be);
12
+ --astryx-icon-warning-foreground: light-dark(#4b3900, #f8d36a);
13
+ --astryx-icon-blue-foreground: light-dark(#003978, #88bcff);
14
+ --astryx-icon-cyan-foreground: light-dark(#004351, #71c7dd);
15
+ --astryx-icon-green-foreground: light-dark(#00490b, #a4d6a3);
16
+ --astryx-icon-gray-foreground: light-dark(#474747, #9e9e9e);
17
+ --astryx-icon-orange-foreground: light-dark(#622700, #ff9e55);
18
+ --astryx-icon-pink-foreground: light-dark(#70003f, #fd92bd);
19
+ --astryx-icon-purple-foreground: light-dark(#5c0e6c, #e496f6);
20
+ --astryx-icon-red-foreground: light-dark(#76000c, #ff9890);
21
+ --astryx-icon-teal-foreground: light-dark(#00463d, #81c9bb);
22
+ --astryx-icon-yellow-foreground: light-dark(#4b3900, #e2b623);
23
+ }
24
+ }
@@ -0,0 +1,22 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-input-background: light-dark(#fff, #262626);
7
+ --astryx-input-border: light-dark(#d4d4d4, #525252);
8
+ --astryx-input-focus: light-dark(#262626, #ebebeb);
9
+ --astryx-input-height-sm: 28px;
10
+ --astryx-input-height-md: 32px;
11
+ --astryx-input-height-lg: 36px;
12
+ --astryx-input-error: light-dark(#e33f4a, #ff705d);
13
+ --astryx-input-error-foreground: light-dark(#89001a, #ffc6c1);
14
+ --astryx-input-error-background: light-dark(#facecb, #ff9e973d);
15
+ --astryx-input-warning: light-dark(#a67a00, #fdcf4f);
16
+ --astryx-input-warning-foreground: light-dark(#584400, #fdcf4f);
17
+ --astryx-input-warning-background: light-dark(#f8da9d, #deb4333d);
18
+ --astryx-input-success: light-dark(#198100, #64af4c);
19
+ --astryx-input-success-foreground: light-dark(#0c5700, #9fe59b);
20
+ --astryx-input-success-background: light-dark(#c5e5c0, #84c9803d);
21
+ }
22
+ }
@@ -0,0 +1,10 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-kbd-background: light-dark(#e5e5e5, #ffffff1a);
7
+ --astryx-kbd-foreground: var(--astryx-color-text-secondary);
8
+ --astryx-kbd-border-color: var(--astryx-color-border-emphasized);
9
+ }
10
+ }
@@ -0,0 +1,10 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-link-primary-foreground: light-dark(#171717, #fafafa);
7
+ --astryx-link-secondary-foreground: light-dark(#525252, #a3a3a3);
8
+ --astryx-link-accent-foreground: light-dark(#0074e2, #6d9cfe);
9
+ }
10
+ }
@@ -0,0 +1,13 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-list-item-hover-background: light-dark(#0536590c, #ffffff0c);
7
+ --astryx-list-item-pressed-background: light-dark(#05365919, #ffffff19);
8
+ --astryx-list-item-selected-background: light-dark(#0082fb33, #0082fb3f);
9
+ --astryx-list-item-focus: light-dark(#0064e0, #2694fe);
10
+ --astryx-list-divider-color: light-dark(#05365919, #f2f4f619);
11
+ --astryx-list-marker-foreground: light-dark(#171717, #fafafa);
12
+ }
13
+ }
@@ -0,0 +1,8 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-mobile-nav-width: 320px;
7
+ }
8
+ }
@@ -0,0 +1,20 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-more-menu-background: light-dark(#ffffff, #1b1b1b);
7
+ --astryx-more-menu-foreground: light-dark(#171717, #fafafa);
8
+ --astryx-more-menu-description-foreground: light-dark(#525252, #a3a3a3);
9
+ --astryx-more-menu-heading-foreground: light-dark(#525252, #a3a3a3);
10
+ --astryx-more-menu-destructive-foreground: light-dark(#a50c25, #ffc6c1);
11
+ --astryx-more-menu-item-hover-background: light-dark(#0536590c, #ffffff0c);
12
+ --astryx-more-menu-item-pressed-background: light-dark(#05365919, #ffffff19);
13
+ --astryx-more-menu-scrim: light-dark(#00000080, #000000cc);
14
+ --astryx-more-menu-trigger-open-overlay: light-dark(#0000001a, #ffffff1a);
15
+ --astryx-more-menu-shadow:
16
+ 0 2px 4px light-dark(oklch(0 0 0 / 5%), oklch(0 0 0 / 25%)),
17
+ 0 4px 8px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 40%)),
18
+ inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 8%));
19
+ }
20
+ }
@@ -0,0 +1,8 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-nav-menu-z: 1000;
7
+ }
8
+ }
@@ -0,0 +1,9 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-overlay-scrim-background: light-dark(#00000080, #000000cc);
7
+ --astryx-overlay-scrim-light-background: color-mix(in srgb, #fff 60%, transparent);
8
+ }
9
+ }
@@ -0,0 +1,13 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-popover-background: light-dark(#ffffff, #1b1b1b);
7
+ --astryx-popover-foreground: light-dark(#171717, #fafafa);
8
+ --astryx-popover-shadow:
9
+ 0 2px 4px light-dark(oklch(0 0 0 / 5%), oklch(0 0 0 / 25%)),
10
+ 0 4px 8px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 40%)),
11
+ inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 8%));
12
+ }
13
+ }
@@ -0,0 +1,16 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-progress-bar-track-height: 8px;
7
+ --astryx-progress-bar-track-height-sm: 4px;
8
+ --astryx-progress-bar-track-height-lg: 12px;
9
+ --astryx-progress-bar-track-background: light-dark(#e5e5e5, rgb(255 255 255 / 10%));
10
+ --astryx-progress-bar-fill-background: light-dark(#171717, #fff);
11
+ --astryx-progress-bar-success-fill: light-dark(#198100, #64af4c);
12
+ --astryx-progress-bar-warning-fill: light-dark(#ffce2f, #ffce2f);
13
+ --astryx-progress-bar-error-fill: light-dark(#e33f4a, #ff705d);
14
+ --astryx-progress-bar-info-fill: light-dark(#0074e2, #6d9cfe);
15
+ }
16
+ }
@@ -0,0 +1,9 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astyx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-radio-size: 18px;
7
+ --astryx-radio-radius: 999px;
8
+ }
9
+ }
@@ -0,0 +1,19 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-segmented-control-background: light-dark(#f5f5f5, #171717);
7
+ --astryx-segmented-control-focus: light-dark(#262626, #ebebeb);
8
+ --astryx-segmented-control-item-foreground: light-dark(#525252, #a3a3a3);
9
+ --astryx-segmented-control-item-hover-background: light-dark(#0000000d, #ffffff0d);
10
+ --astryx-segmented-control-item-pressed-background: light-dark(#0000001a, #ffffff1a);
11
+ --astryx-segmented-control-item-selected-foreground: light-dark(#171717, #fafafa);
12
+ --astryx-segmented-control-item-selected-background: light-dark(#ffffff, #262626);
13
+ --astryx-segmented-control-item-selected-shadow:
14
+ 0 2px 4px light-dark(oklch(0 0 0 / 5%), oklch(0 0 0 / 25%)),
15
+ 0 4px 8px light-dark(oklch(0 0 0 / 10%), oklch(0 0 0 / 40%)),
16
+ inset 0 0 0 1px light-dark(transparent, oklch(1 0 0 / 8%));
17
+ --astryx-segmented-control-item-disabled-foreground: light-dark(#919191, #525252);
18
+ }
19
+ }
@@ -0,0 +1,9 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-side-nav-width: 260px;
7
+ --astryx-side-nav-collapsed-width: 48px;
8
+ }
9
+ }
@@ -0,0 +1,8 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-color-skeleton: light-dark(#ebebeb, #525252);
7
+ }
8
+ }
@@ -0,0 +1,10 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+ @layer astryx.tokens {
3
+ :root,
4
+ [data-astryx-theme='neutral'] {
5
+ --astryx-slider-track: light-dark(#e5e5e5, #404040);
6
+ --astryx-slider-accent: light-dark(#262626, #ebebeb);
7
+ --astryx-slider-focus: light-dark(#262626, #ebebeb);
8
+ --astryx-slider-height: 160px;
9
+ }
10
+ }
@@ -0,0 +1,22 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-spinner-diameter-sm: 10px;
7
+ --astryx-spinner-diameter-md: 14px;
8
+ --astryx-spinner-diameter-lg: 18px;
9
+ --astryx-spinner-diameter-xl: 28px;
10
+ --astryx-spinner-stroke-width-sm: 2px;
11
+ --astryx-spinner-stroke-width-md: 3px;
12
+ --astryx-spinner-stroke-width-lg: 3px;
13
+ --astryx-spinner-stroke-width-xl: 4px;
14
+ --astryx-spinner-arc-fraction: 0.375;
15
+ --astryx-spinner-group-gap: 8px;
16
+ --astryx-spinner-label-color: light-dark(#171717, #fafafa);
17
+ --astryx-spinner-color-accent: light-dark(#262626, #ebebeb);
18
+ --astryx-spinner-color-subtle: light-dark(#525252, #a3a3a3);
19
+ --astryx-spinner-color-track: light-dark(#ccd3db, #5a5e66);
20
+ --astryx-spinner-color-on-dark: #fff;
21
+ }
22
+ }
@@ -0,0 +1,12 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-status-dot-neutral-background: light-dark(#a3a3a3, #737373);
7
+ --astryx-status-dot-info-background: light-dark(#0074e2, #6d9cfe);
8
+ --astryx-status-dot-success-background: light-dark(#198100, #64af4c);
9
+ --astryx-status-dot-warning-background: #ffce2f;
10
+ --astryx-status-dot-error-background: light-dark(#e33f4a, #ff705d);
11
+ }
12
+ }
@@ -0,0 +1,30 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-switch-track-width: 40px;
7
+ --astryx-switch-track-height: 24px;
8
+ --astryx-switch-track-width-sm: 32px;
9
+ --astryx-switch-track-height-sm: 20px;
10
+ --astryx-switch-track-width-lg: 52px;
11
+ --astryx-switch-track-height-lg: 28px;
12
+ --astryx-switch-track-padding: 4px;
13
+ --astryx-switch-track-padding-sm: 2px;
14
+ --astryx-switch-track-padding-lg: 4px;
15
+ --astryx-switch-thumb-size: 16px;
16
+ --astryx-switch-thumb-size-on: 20px;
17
+ --astryx-switch-thumb-size-sm: 14px;
18
+ --astryx-switch-thumb-size-on-sm: 16px;
19
+ --astryx-switch-thumb-size-lg: 20px;
20
+ --astryx-switch-thumb-size-on-lg: 24px;
21
+ --astryx-switch-thumb-travel: 14px;
22
+ --astryx-switch-thumb-travel-sm: 12px;
23
+ --astryx-switch-thumb-travel-lg: 22px;
24
+ --astryx-switch-track-radius: 999px;
25
+ --astryx-switch-thumb-radius: 999px;
26
+ --astryx-switch-track-off: light-dark(#e2e2e2, #303030);
27
+ --astryx-switch-track-on: light-dark(#1b1b1b, #f1f1f1);
28
+ --astryx-switch-thumb: light-dark(#ffffff, #262626);
29
+ }
30
+ }
@@ -0,0 +1,10 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-text-area-min-height-sm: 64px;
7
+ --astryx-text-area-min-height-md: 80px;
8
+ --astryx-text-area-min-height-lg: 112px;
9
+ }
10
+ }
@@ -0,0 +1,26 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-text-foreground: light-dark(#171717, #fafafa);
7
+ --astryx-text-body-size: 0.875rem;
8
+ --astryx-text-body-leading: 1.4286;
9
+ --astryx-text-large-size: 1rem;
10
+ --astryx-text-large-leading: 1.5;
11
+ --astryx-text-label-size: 0.875rem;
12
+ --astryx-text-label-leading: 1.25;
13
+ --astryx-text-supporting-foreground: light-dark(#525252, #a3a3a3);
14
+ --astryx-text-supporting-size: 0.75rem;
15
+ --astryx-text-supporting-leading: 1.6667;
16
+ --astryx-text-display-1-size: 3rem;
17
+ --astryx-text-display-2-size: 2.25rem;
18
+ --astryx-text-display-3-size: 1.75rem;
19
+ --astryx-text-display-weight: 300;
20
+ --astryx-text-sm-size: 0.75rem;
21
+ --astryx-text-md-size: 0.875rem;
22
+ --astryx-text-lg-size: 1rem;
23
+ --astryx-text-xl-size: 1.25rem;
24
+ --astryx-color-text-accent: light-dark(#0074e2, #6d9cfe);
25
+ }
26
+ }
@@ -0,0 +1,13 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-toast-info-background: light-dark(#171717, #fafafa);
7
+ --astryx-toast-info-foreground: light-dark(#fafafa, #171717);
8
+ --astryx-toast-success-background: #0a7b3e;
9
+ --astryx-toast-warning-background: #9a6700;
10
+ --astryx-toast-error-background: #c52626;
11
+ --astryx-toast-type-foreground: #fff;
12
+ }
13
+ }
@@ -0,0 +1,10 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-toggle-button-pressed-background: light-dark(#05365919, #ffffff19);
7
+ --astryx-toggle-button-pressed-font-weight: 600;
8
+ --astryx-toggle-button-group-gap: 4px;
9
+ }
10
+ }
@@ -0,0 +1,29 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-token-default-background: var(--astryx-badge-neutral-background);
7
+ --astryx-token-default-foreground: var(--astryx-badge-neutral-foreground);
8
+ --astryx-token-gray-background: var(--astryx-badge-neutral-background);
9
+ --astryx-token-gray-foreground: var(--astryx-badge-neutral-foreground);
10
+ --astryx-token-blue-background: var(--astryx-badge-blue-background);
11
+ --astryx-token-blue-foreground: var(--astryx-badge-blue-foreground);
12
+ --astryx-token-cyan-background: var(--astryx-badge-cyan-background);
13
+ --astryx-token-cyan-foreground: var(--astryx-badge-cyan-foreground);
14
+ --astryx-token-green-background: var(--astryx-badge-green-background);
15
+ --astryx-token-green-foreground: var(--astryx-badge-green-foreground);
16
+ --astryx-token-orange-background: var(--astryx-badge-orange-background);
17
+ --astryx-token-orange-foreground: var(--astryx-badge-orange-foreground);
18
+ --astryx-token-pink-background: var(--astryx-badge-pink-background);
19
+ --astryx-token-pink-foreground: var(--astryx-badge-pink-foreground);
20
+ --astryx-token-purple-background: var(--astryx-badge-purple-background);
21
+ --astryx-token-purple-foreground: var(--astryx-badge-purple-foreground);
22
+ --astryx-token-red-background: var(--astryx-badge-red-background);
23
+ --astryx-token-red-foreground: var(--astryx-badge-red-foreground);
24
+ --astryx-token-teal-background: var(--astryx-badge-teal-background);
25
+ --astryx-token-teal-foreground: var(--astryx-badge-teal-foreground);
26
+ --astryx-token-yellow-background: var(--astryx-badge-yellow-background);
27
+ --astryx-token-yellow-foreground: var(--astryx-badge-yellow-foreground);
28
+ }
29
+ }
@@ -0,0 +1,10 @@
1
+ @layer astryx.reset, astryx.tokens, astryx.base, astryx.components, astryx.overrides;
2
+
3
+ @layer astryx.tokens {
4
+ :root,
5
+ [data-astryx-theme='neutral'] {
6
+ --astryx-tooltip-background: light-dark(#171717, #fafafa);
7
+ --astryx-tooltip-foreground: light-dark(#fff, #262626);
8
+ --astryx-tooltip-indication-color: light-dark(#d4d4d4, #525252);
9
+ }
10
+ }
package/neutral.css ADDED
@@ -0,0 +1,51 @@
1
+ /* 这个文件由 `pnpm sync` 生成,不要手改。 */
2
+ @import './fonts.css';
3
+ @import './neutral/alert-dialog.css';
4
+ @import './neutral/avatar.css';
5
+ @import './neutral/avatar-group.css';
6
+ @import './neutral/badge.css';
7
+ @import './neutral/banner.css';
8
+ @import './neutral/base.css';
9
+ @import './neutral/bottom-sheet.css';
10
+ @import './neutral/button.css';
11
+ @import './neutral/card.css';
12
+ @import './neutral/center.css';
13
+ @import './neutral/chat.css';
14
+ @import './neutral/checkbox.css';
15
+ @import './neutral/citation.css';
16
+ @import './neutral/code.css';
17
+ @import './neutral/collapsible.css';
18
+ @import './neutral/context-menu.css';
19
+ @import './neutral/dialog.css';
20
+ @import './neutral/divider.css';
21
+ @import './neutral/dropdown-menu.css';
22
+ @import './neutral/empty-state.css';
23
+ @import './neutral/field.css';
24
+ @import './neutral/grid.css';
25
+ @import './neutral/heading.css';
26
+ @import './neutral/hover-card.css';
27
+ @import './neutral/icon.css';
28
+ @import './neutral/input.css';
29
+ @import './neutral/kbd.css';
30
+ @import './neutral/link.css';
31
+ @import './neutral/list.css';
32
+ @import './neutral/mobile-nav.css';
33
+ @import './neutral/more-menu.css';
34
+ @import './neutral/nav-menu.css';
35
+ @import './neutral/overlay.css';
36
+ @import './neutral/popover.css';
37
+ @import './neutral/progress-bar.css';
38
+ @import './neutral/radio.css';
39
+ @import './neutral/segmented-control.css';
40
+ @import './neutral/side-nav.css';
41
+ @import './neutral/skeleton.css';
42
+ @import './neutral/slider.css';
43
+ @import './neutral/spinner.css';
44
+ @import './neutral/status-dot.css';
45
+ @import './neutral/switch.css';
46
+ @import './neutral/text.css';
47
+ @import './neutral/text-area.css';
48
+ @import './neutral/toast.css';
49
+ @import './neutral/toggle-button.css';
50
+ @import './neutral/token.css';
51
+ @import './neutral/tooltip.css';
package/package.json CHANGED
@@ -1,6 +1,54 @@
1
1
  {
2
2
  "name": "@astryx-vue/themes",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "type": "module",
4
+ "version": "0.1.0",
5
+ "description": "Themes for the unofficial astryx-vue community project.",
6
+ "author": "ShenQingchuan",
7
+ "license": "MIT",
8
+ "homepage": "https://astryx-vue.pages.dev",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/astryx-vue/astryx-vue.git",
12
+ "directory": "packages/themes"
13
+ },
14
+ "bugs": "https://github.com/astryx-vue/astryx-vue/issues",
15
+ "keywords": [
16
+ "vue",
17
+ "vue3",
18
+ "design-system",
19
+ "astryx",
20
+ "components",
21
+ "ui"
22
+ ],
23
+ "sideEffects": [
24
+ "**/*.css"
25
+ ],
26
+ "exports": {
27
+ "./*.css": {
28
+ "types": "./css.d.ts",
29
+ "default": "./*.css"
30
+ },
31
+ "./*/*.css": {
32
+ "types": "./css.d.ts",
33
+ "default": "./*/*.css"
34
+ },
35
+ "./package.json": "./package.json"
36
+ },
37
+ "files": [
38
+ "README.md",
39
+ "THIRD_PARTY_NOTICES.md",
40
+ "css.d.ts",
41
+ "fonts.css",
42
+ "neutral",
43
+ "neutral.css"
44
+ ],
45
+ "dependencies": {
46
+ "@fontsource/jetbrains-mono": "5.3.0"
47
+ },
48
+ "publishConfig": {
49
+ "access": "public"
50
+ },
51
+ "scripts": {
52
+ "build": "true"
53
+ }
6
54
  }