@dvcol/neo-svelte 0.1.3 → 0.1.4

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 (150) hide show
  1. package/CHANGELOG.md +75 -0
  2. package/README.md +25 -26
  3. package/dist/buttons/NeoButton.svelte +140 -128
  4. package/dist/buttons/NeoButtonGroup.svelte +99 -108
  5. package/dist/buttons/neo-button-group.model.d.ts +18 -19
  6. package/dist/buttons/neo-button.model.d.ts +6 -10
  7. package/dist/cards/NeoCard.svelte +175 -72
  8. package/dist/cards/NeoCard.svelte.d.ts +1 -1
  9. package/dist/cards/neo-card.model.d.ts +29 -1
  10. package/dist/containers/NeoTransitionContainer.svelte +13 -2
  11. package/dist/containers/neo-transition-container.model.d.ts +9 -1
  12. package/dist/divider/NeoDivider.svelte +11 -11
  13. package/dist/icons/IconAccount.svelte +10 -2
  14. package/dist/icons/IconAdd.svelte +10 -2
  15. package/dist/icons/IconAlert.svelte +2 -2
  16. package/dist/icons/IconCalendar.svelte +23 -0
  17. package/dist/icons/IconCalendar.svelte.d.ts +26 -0
  18. package/dist/icons/IconCheckbox.svelte +87 -0
  19. package/dist/icons/IconCheckbox.svelte.d.ts +55 -0
  20. package/dist/icons/IconCircleLoading.svelte +2 -2
  21. package/dist/icons/IconClear.svelte +10 -2
  22. package/dist/icons/IconClose.svelte +2 -2
  23. package/dist/icons/IconConfirm.svelte +2 -2
  24. package/dist/icons/IconDownload.svelte +17 -0
  25. package/dist/icons/IconDownload.svelte.d.ts +26 -0
  26. package/dist/icons/IconEmpty.svelte +2 -2
  27. package/dist/icons/IconFileUpload.svelte +2 -2
  28. package/dist/icons/IconGithub.svelte +2 -2
  29. package/dist/icons/IconImage.svelte +2 -2
  30. package/dist/icons/IconMinus.svelte +2 -2
  31. package/dist/icons/IconMoon.svelte +2 -2
  32. package/dist/icons/IconPaint.svelte +19 -0
  33. package/dist/icons/{IconSunrise.svelte.d.ts → IconPaint.svelte.d.ts} +3 -3
  34. package/dist/icons/IconPencil.svelte +13 -0
  35. package/dist/icons/IconPencil.svelte.d.ts +26 -0
  36. package/dist/icons/IconRadio.svelte +14 -0
  37. package/dist/icons/IconRadio.svelte.d.ts +22 -0
  38. package/dist/icons/IconSave.svelte +1 -1
  39. package/dist/icons/IconSave.svelte.d.ts +3 -3
  40. package/dist/icons/IconSaveOff.svelte +1 -1
  41. package/dist/icons/IconSaveOff.svelte.d.ts +3 -3
  42. package/dist/icons/IconSearch.svelte +2 -2
  43. package/dist/icons/IconSun.svelte +3 -3
  44. package/dist/icons/{IconSunrise.svelte → IconSunFull.svelte} +5 -4
  45. package/dist/icons/IconSunFull.svelte.d.ts +26 -0
  46. package/dist/icons/IconVideo.svelte +2 -2
  47. package/dist/icons/IconWatch.svelte +2 -2
  48. package/dist/icons/IconWatchOff.svelte +2 -2
  49. package/dist/inputs/NeoCheckbox.svelte +316 -0
  50. package/dist/inputs/NeoCheckbox.svelte.d.ts +19 -0
  51. package/dist/inputs/NeoColorPicker.svelte +140 -0
  52. package/dist/inputs/NeoColorPicker.svelte.d.ts +19 -0
  53. package/dist/inputs/NeoDateTime.svelte +96 -0
  54. package/dist/inputs/NeoDateTime.svelte.d.ts +19 -0
  55. package/dist/inputs/NeoFilePicker.svelte +528 -0
  56. package/dist/inputs/NeoFilePicker.svelte.d.ts +19 -0
  57. package/dist/inputs/NeoFilePickerCard.svelte +314 -0
  58. package/dist/inputs/NeoFilePickerCard.svelte.d.ts +19 -0
  59. package/dist/inputs/NeoNumberStep.svelte +174 -0
  60. package/dist/inputs/NeoNumberStep.svelte.d.ts +19 -0
  61. package/dist/inputs/NeoPassword.svelte +86 -17
  62. package/dist/inputs/NeoPassword.svelte.d.ts +19 -16
  63. package/dist/inputs/NeoPin.svelte +589 -0
  64. package/dist/inputs/NeoPin.svelte.d.ts +19 -0
  65. package/dist/inputs/NeoRadio.svelte +254 -0
  66. package/dist/inputs/NeoRadio.svelte.d.ts +19 -0
  67. package/dist/inputs/NeoRange.svelte +518 -0
  68. package/dist/inputs/NeoRange.svelte.d.ts +18 -0
  69. package/dist/inputs/NeoSwitch.svelte +373 -0
  70. package/dist/inputs/NeoSwitch.svelte.d.ts +19 -0
  71. package/dist/inputs/NeoTextarea.svelte +334 -300
  72. package/dist/inputs/NeoTextarea.svelte.d.ts +7 -4
  73. package/dist/inputs/common/NeoAffix.svelte +166 -0
  74. package/dist/inputs/common/NeoAffix.svelte.d.ts +19 -0
  75. package/dist/inputs/common/NeoBaseInput.svelte +338 -0
  76. package/dist/inputs/common/NeoBaseInput.svelte.d.ts +30 -0
  77. package/dist/inputs/common/NeoInput.svelte +684 -0
  78. package/dist/inputs/{NeoInput.svelte.d.ts → common/NeoInput.svelte.d.ts} +2 -10
  79. package/dist/inputs/common/NeoInputValidation.svelte +45 -0
  80. package/dist/inputs/common/NeoInputValidation.svelte.d.ts +22 -0
  81. package/dist/inputs/common/NeoLabel.svelte +93 -0
  82. package/dist/inputs/common/NeoLabel.svelte.d.ts +19 -0
  83. package/dist/inputs/{NeoValidation.svelte → common/NeoValidation.svelte} +9 -16
  84. package/dist/inputs/common/NeoValidation.svelte.d.ts +22 -0
  85. package/dist/inputs/common/neo-affix.model.d.ts +32 -0
  86. package/dist/inputs/common/neo-input-validation.model.d.ts +20 -0
  87. package/dist/inputs/common/neo-input-validation.model.js +1 -0
  88. package/dist/inputs/{neo-input.model.d.ts → common/neo-input.model.d.ts} +136 -57
  89. package/dist/inputs/common/neo-label.model.d.ts +36 -0
  90. package/dist/inputs/common/neo-label.model.js +1 -0
  91. package/dist/inputs/common/neo-validation.model.d.ts +70 -0
  92. package/dist/inputs/common/neo-validation.model.js +1 -0
  93. package/dist/inputs/index.d.ts +2 -2
  94. package/dist/inputs/index.js +1 -1
  95. package/dist/inputs/neo-checkbox.model.d.ts +9 -0
  96. package/dist/inputs/neo-checkbox.model.js +1 -0
  97. package/dist/inputs/neo-color-picker.model.d.ts +17 -0
  98. package/dist/inputs/neo-color-picker.model.js +1 -0
  99. package/dist/inputs/neo-date-time.model.d.ts +8 -0
  100. package/dist/inputs/neo-date-time.model.js +1 -0
  101. package/dist/inputs/neo-file-picker.model.d.ts +138 -0
  102. package/dist/inputs/neo-file-picker.model.js +1 -0
  103. package/dist/inputs/neo-number-step.model.d.ts +24 -0
  104. package/dist/inputs/neo-number-step.model.js +1 -0
  105. package/dist/inputs/neo-password.model.d.ts +13 -0
  106. package/dist/inputs/neo-password.model.js +1 -0
  107. package/dist/inputs/neo-pin.model.d.ts +47 -0
  108. package/dist/inputs/neo-pin.model.js +1 -0
  109. package/dist/inputs/neo-radio.model.d.ts +3 -0
  110. package/dist/inputs/neo-radio.model.js +1 -0
  111. package/dist/inputs/neo-switch.model.d.ts +9 -0
  112. package/dist/inputs/neo-switch.model.js +1 -0
  113. package/dist/nav/NeoTab.svelte +29 -25
  114. package/dist/nav/NeoTabPanel.svelte +1 -1
  115. package/dist/nav/NeoTabs.svelte +51 -44
  116. package/dist/nav/NeoTabsCard.svelte +8 -10
  117. package/dist/nav/neo-tabs-context.svelte.d.ts +2 -11
  118. package/dist/nav/neo-tabs-context.svelte.js +1 -41
  119. package/dist/nav/neo-tabs.model.d.ts +6 -0
  120. package/dist/providers/NeoThemeProvider.svelte +417 -305
  121. package/dist/providers/NeoThemeSelector.svelte +9 -9
  122. package/dist/providers/neo-theme-provider-context.svelte.js +1 -1
  123. package/dist/providers/neo-theme-selector.model.d.ts +1 -1
  124. package/dist/skeletons/NeoSkeletonMedia.svelte +4 -4
  125. package/dist/skeletons/NeoSkeletonText.svelte +12 -12
  126. package/dist/styles/common/colors.scss +85 -97
  127. package/dist/styles/common/filters.scss +17 -0
  128. package/dist/styles/common/shadows.scss +531 -293
  129. package/dist/styles/common/spacing.scss +7 -3
  130. package/dist/styles/common/typography.scss +1 -1
  131. package/dist/styles/common/utils.scss +1 -1
  132. package/dist/styles/common/z-index.scss +1 -1
  133. package/dist/styles/mixin.scss +79 -26
  134. package/dist/styles/reset.scss +8 -1
  135. package/dist/styles/theme.scss +39 -16
  136. package/dist/utils/html-element.utils.d.ts +3 -0
  137. package/dist/utils/regex.utils.d.ts +3 -0
  138. package/dist/utils/regex.utils.js +3 -0
  139. package/dist/utils/shadow.utils.d.ts +30 -3
  140. package/dist/utils/shadow.utils.js +41 -14
  141. package/dist/utils/transition.utils.d.ts +4 -0
  142. package/dist/utils/transition.utils.js +10 -1
  143. package/dist/utils/utils.svelte.d.ts +6 -0
  144. package/dist/utils/utils.svelte.js +13 -0
  145. package/package.json +13 -12
  146. package/dist/inputs/NeoInput.svelte +0 -750
  147. package/dist/inputs/NeoValidation.svelte.d.ts +0 -22
  148. package/dist/inputs/neo-validation.model.d.ts +0 -40
  149. /package/dist/inputs/{neo-validation.model.js → common/neo-affix.model.js} +0 -0
  150. /package/dist/inputs/{neo-input.model.js → common/neo-input.model.js} +0 -0
@@ -8,7 +8,7 @@
8
8
  import IconSave from '../icons/IconSave.svelte';
9
9
  import IconSaveOff from '../icons/IconSaveOff.svelte';
10
10
  import IconSun from '../icons/IconSun.svelte';
11
- import IconSunrise from '../icons/IconSunrise.svelte';
11
+ import IconSunFull from '../icons/IconSunFull.svelte';
12
12
  import { useNeoThemeContext } from './neo-theme-provider-context.svelte.js';
13
13
  import { NeoSource, NeoTheme } from './neo-theme-provider.model.js';
14
14
 
@@ -56,8 +56,8 @@
56
56
  {#if showSource}
57
57
  <NeoButton aria-label="Cycle light source origin" title="Cycle light source origin" checked onclick={onCycleSource} {...sourceProps}>
58
58
  {#snippet icon()}
59
- <span class="source-icon" style:--neo-source-rotate={`${angle}deg`}>
60
- <IconSunrise />
59
+ <span class="neo-source-icon" style:--neo-source-rotate="{angle}deg">
60
+ <IconSunFull />
61
61
  </span>
62
62
  {/snippet}
63
63
  <span>Source</span>
@@ -65,8 +65,8 @@
65
65
  {/if}
66
66
  {#if showTheme}
67
67
  <NeoButton
68
- aria-label={`Toggle ${dark ? 'light' : 'dark'} theme`}
69
- title={`Toggle ${dark ? 'light' : 'dark'} theme`}
68
+ aria-label="Toggle {dark ? 'light' : 'dark'} theme"
69
+ title="Toggle {dark ? 'light' : 'dark'} theme"
70
70
  toggle
71
71
  checked={dark}
72
72
  onclick={onTheme}
@@ -84,8 +84,8 @@
84
84
  {/if}
85
85
  {#if showReset}
86
86
  <NeoButton
87
- aria-label={`Toggle ${reset ? 'off' : 'on'} style reset`}
88
- title={`Toggle ${reset ? 'off' : 'on'} style reset`}
87
+ aria-label="Toggle {reset ? 'off' : 'on'} style reset"
88
+ title="Toggle {reset ? 'off' : 'on'} style reset"
89
89
  toggle
90
90
  checked={reset}
91
91
  onclick={onReset}
@@ -110,13 +110,13 @@
110
110
  {@render children?.(context.state)}
111
111
  </NeoButtonGroup>
112
112
 
113
- <style>.source-icon {
113
+ <style>.neo-source-icon {
114
114
  overflow: hidden;
115
115
  border-radius: var(--neo-theme-selector-border-radius, var(--neo-border-radius-lg));
116
116
  rotate: var(--neo-source-rotate, 0);
117
117
  transition: rotate 0.5s ease;
118
118
  }
119
- .source-icon :global(svg) {
119
+ .neo-source-icon :global(svg) {
120
120
  width: 1.25rem;
121
121
  height: 1.25rem;
122
122
  translate: -30% -30%;
@@ -63,7 +63,7 @@ export class NeoThemeProviderContext {
63
63
  this.root.setAttribute(NeoThemeStorageKey.Theme, this.theme);
64
64
  this.root.setAttribute(NeoThemeStorageKey.Source, this.source);
65
65
  if (this.reset)
66
- this.root.setAttribute(NeoThemeStorageKey.Rest, '');
66
+ this.root.setAttribute(NeoThemeStorageKey.Reset, '');
67
67
  else
68
68
  this.root.removeAttribute(NeoThemeStorageKey.Reset);
69
69
  if (!localStorage)
@@ -1,6 +1,6 @@
1
1
  import type { Snippet } from 'svelte';
2
- import type { NeoButtonProps } from '../buttons/index.js';
3
2
  import type { NeoButtonGroupProps } from '../buttons/neo-button-group.model.js';
3
+ import type { NeoButtonProps } from '../buttons/neo-button.model.js';
4
4
  import type { INeoThemeProviderContext } from './neo-theme-provider.model.js';
5
5
  export type NeoThemeSelectorProps = {
6
6
  children?: Snippet<[INeoThemeProviderContext]>;
@@ -58,8 +58,8 @@
58
58
  <NeoSkeletonContainer {loading} in={inAction} out={outAction} {width} {height} {containerProps} {content}>
59
59
  <div
60
60
  class:neo-skeleton-media={true}
61
- class:rounded
62
- class:circle
61
+ class:neo-rounded={rounded}
62
+ class:neo-circle={circle}
63
63
  style:aspect-ratio={ratio}
64
64
  style:width
65
65
  style:height
@@ -123,10 +123,10 @@
123
123
  border-color: var(--neo-skeleton-color-start);
124
124
  }
125
125
  }
126
- .neo-skeleton-media.rounded {
126
+ .neo-skeleton-media.neo-rounded {
127
127
  border-radius: var(--neo-skeleton-border-radius, var(--neo-border-radius-lg));
128
128
  }
129
- .neo-skeleton-media.circle {
129
+ .neo-skeleton-media.neo-circle {
130
130
  border-radius: 50%;
131
131
  aspect-ratio: 1/1;
132
132
  }
@@ -43,14 +43,14 @@
43
43
  <NeoSkeletonContainer {loading} in={inAction} out={outAction} {width} {height} {containerProps} {content}>
44
44
  <div class:neo-skeleton-text={true} style:width style:height in:inFn={inProps} out:outFn={outProps} {...rest}>
45
45
  {#if title}
46
- <div class:neo-skeleton-text-line={true} class:title class:alt {...titleProps}>&nbsp;</div>
46
+ <div class:neo-skeleton-text-line={true} class:neo-title={title} class:neo-alt={alt} {...titleProps}>&nbsp;</div>
47
47
  {/if}
48
48
 
49
49
  {#if paragraphs && lines}
50
50
  {#each Array(Number(paragraphs)) as _}
51
- <div class:neo-skeleton-text-paragraph={true} class:alt class:justify {...paragraphProps}>
51
+ <div class:neo-skeleton-text-paragraph={true} class:neo-alt={alt} class:neo-justify={justify} {...paragraphProps}>
52
52
  {#each Array(Number(lines)) as __}
53
- <div class="neo-skeleton-text-line" class:alt>&nbsp;</div>
53
+ <div class="neo-skeleton-text-line" class:neo-alt={alt}>&nbsp;</div>
54
54
  {/each}
55
55
  </div>
56
56
  {/each}
@@ -132,26 +132,26 @@
132
132
  .neo-skeleton-text-line:only-child {
133
133
  width: 100%;
134
134
  }
135
- .neo-skeleton-text-line.alt {
135
+ .neo-skeleton-text-line.neo-alt {
136
136
  width: 20%;
137
137
  }
138
- .neo-skeleton-text-line.alt:nth-child(even) {
138
+ .neo-skeleton-text-line.neo-alt:nth-child(even) {
139
139
  width: 24%;
140
140
  }
141
- .neo-skeleton-text-line.alt:nth-child(3n) {
141
+ .neo-skeleton-text-line.neo-alt:nth-child(3n) {
142
142
  width: 16%;
143
143
  animation-delay: 0.75s;
144
144
  }
145
- .neo-skeleton-text-line.alt:nth-child(4n) {
145
+ .neo-skeleton-text-line.neo-alt:nth-child(4n) {
146
146
  width: 28%;
147
147
  }
148
- .neo-skeleton-text-line.alt:nth-child(6n) {
148
+ .neo-skeleton-text-line.neo-alt:nth-child(6n) {
149
149
  width: 12%;
150
150
  }
151
- .neo-skeleton-text-line.alt:nth-child(7n) {
151
+ .neo-skeleton-text-line.neo-alt:nth-child(7n) {
152
152
  width: 18%;
153
153
  }
154
- .neo-skeleton-text-line.title {
154
+ .neo-skeleton-text-line.neo-title {
155
155
  width: 70%;
156
156
  height: var(--neo-line-height, 1.5rem);
157
157
  }
@@ -162,9 +162,9 @@
162
162
  flex-direction: column;
163
163
  gap: var(--neo-skeleton-paragraph-gap, var(--neo-gap-xs));
164
164
  }
165
- .neo-skeleton-text-paragraph.alt {
165
+ .neo-skeleton-text-paragraph.neo-alt {
166
166
  flex-flow: row wrap;
167
167
  }
168
- .neo-skeleton-text-paragraph.justify .neo-skeleton-text-line {
168
+ .neo-skeleton-text-paragraph.neo-justify .neo-skeleton-text-line {
169
169
  flex: 1 1 auto;
170
170
  }</style>
@@ -1,39 +1,33 @@
1
- [neo-theme-root] {
1
+ @mixin colors {
2
2
  /* ui color variables */
3
3
  --neo-white: oklch(100% 0 0deg);
4
4
  --neo-white-soft-light: oklch(from var(--neo-white-soft) calc(l + 0.05) c h);
5
- --neo-white-soft-light-50: oklch(from var(--neo-white-soft-light) l c h / 50%);
5
+ --neo-white-soft-light-30: oklch(from var(--neo-white-soft-light) l c h / 30%);
6
+ --neo-white-soft-light-60: oklch(from var(--neo-white-soft-light) l c h / 60%);
6
7
  --neo-white-soft: oklch(92.9% 0.009 279.682deg);
7
- --neo-white-soft-10: oklch(from var(--neo-white-soft) l c h / 10%);
8
- --neo-white-soft-15: oklch(from var(--neo-white-soft) l c h / 15%);
9
8
  --neo-white-soft-20: oklch(from var(--neo-white-soft) l c h / 20%);
9
+ --neo-white-soft-22: oklch(from var(--neo-white-soft) l c h / 22%);
10
+ --neo-white-soft-25: oklch(from var(--neo-white-soft) l c h / 25%);
10
11
  --neo-white-soft-dark: oklch(from var(--neo-white-soft) calc(l - 0.075) c h);
11
12
  --neo-white-soft-dark-80: oklch(from var(--neo-white-soft-dark) l c h / 80%);
12
13
  --neo-black: oklch(0% 0 0deg);
13
14
  --neo-black-5: oklch(from var(--neo-black) l c h / 5%);
14
- --neo-black-lighter-50: oklch(from var(--neo-black-lighter) l c h / 50%);
15
+ --neo-black-8: oklch(from var(--neo-black) l c h / 8%);
16
+ --neo-black-10: oklch(from var(--neo-black) l c h / 10%);
17
+ --neo-black-20: oklch(from var(--neo-black) l c h / 20%);
15
18
  --neo-black-lighter: oklch(from var(--neo-black-soft) calc(l + 0.1) c h);
19
+ --neo-black-lighter-20: oklch(from var(--neo-black-lighter) l c h / 20%);
20
+ --neo-black-lighter-40: oklch(from var(--neo-black-lighter) l c h / 40%);
16
21
  --neo-black-light: oklch(from var(--neo-black-soft) calc(l + 0.05) c h);
17
22
  --neo-black-soft: oklch(33% 0 264.416deg);
18
- --neo-black-soft-10: oklch(from var(--neo-black-soft) l c h / 10%);
19
23
  --neo-black-soft-dark: oklch(from var(--neo-black-soft) calc(l - 0.05) c h);
20
- --neo-black-soft-dark-50: oklch(from var(--neo-black-soft-dark) l c h / 50%);
21
24
  --neo-grey: oklch(from var(--neo-black-soft) calc(l + 0.612) c h);
22
25
  --neo-grey-soft: oklch(from var(--neo-grey) calc(l - 0.15) c h);
23
- --neo-grey-soft-5: oklch(from var(--neo-grey-soft) l c h / 5%);
24
- --neo-grey-soft-10: oklch(from var(--neo-grey-soft) l c h / 10%);
25
- --neo-grey-soft-12: oklch(from var(--neo-grey-soft) l c h / 12%);
26
26
  --neo-grey-soft-20: oklch(from var(--neo-grey-soft) l c h / 20%);
27
27
  --neo-grey-soft-30: oklch(from var(--neo-grey-soft) l c h / 30%);
28
28
  --neo-grey-soft-60: oklch(from var(--neo-grey-soft) l c h / 60%);
29
29
  --neo-grey-strong: oklch(from var(--neo-grey) calc(l - 0.4) c h);
30
- --neo-grey-strong-5: oklch(from var(--neo-grey-strong) l c h / 5%);
31
- --neo-grey-strong-8: oklch(from var(--neo-grey-strong) l c h / 8%);
32
- --neo-grey-strong-10: oklch(from var(--neo-grey-strong) l c h / 10%);
33
- --neo-grey-strong-12: oklch(from var(--neo-grey-strong) l c h / 12%);
34
- --neo-grey-strong-20: oklch(from var(--neo-grey-strong) l c h / 20%);
35
30
  --neo-grey-strong-60: oklch(from var(--neo-grey-strong) l c h / 60%);
36
- --neo-grey-strong-80: oklch(from var(--neo-grey-strong) l c h / 80%);
37
31
  --neo-grey-dark: oklch(from var(--neo-grey-strong) calc(l - 0.1) c h);
38
32
  --neo-grey-dark-80: oklch(from var(--neo-grey-dark) l c h / 80%);
39
33
  --neo-blue: oklch(50% 0.302 264.206deg);
@@ -49,7 +43,7 @@
49
43
  --neo-red-light-75: oklch(from var(--neo-red-light) l c h / 75%);
50
44
  --neo-red: oklch(50% 0.302 26.206deg);
51
45
  --neo-red-5: oklch(from var(--neo-red) l c h / 5%);
52
- --neo-red-10: oklch(from var(--neo-red) l c h / 10%);
46
+ --neo-red-7: oklch(from var(--neo-red) l c h / 7%);
53
47
  --neo-red-50: oklch(from var(--neo-red) l c h / 50%);
54
48
  --neo-red-75: oklch(from var(--neo-red) l c h / 75%);
55
49
  --neo-green-light: oklch(from var(--neo-green) calc(l + 0.25) c h);
@@ -63,7 +57,7 @@
63
57
  --neo-color-primary-80: var(--neo-blue-80);
64
58
  --neo-color-error: var(--neo-red);
65
59
  --neo-color-error-5: var(--neo-red-5);
66
- --neo-color-error-10: var(--neo-red-10);
60
+ --neo-color-error-7: var(--neo-red-7);
67
61
  --neo-color-error-50: var(--neo-red-50);
68
62
  --neo-color-error-75: var(--neo-red-75);
69
63
  --neo-color-success: var(--neo-green);
@@ -71,16 +65,17 @@
71
65
 
72
66
  /** semantic colors */
73
67
  --neo-text-color: var(--neo-grey-strong);
68
+ --neo-text-color-secondary: color-mix(in srgb, var(--neo-text-color), white 20%);
69
+ --neo-text-color-highlight: color-mix(in srgb, currentcolor, black 50%);
74
70
  --neo-text-color-active: color-mix(in srgb, currentcolor, white 10%);
75
- --neo-text-color-focused: var(--neo-color-primary-50);
71
+ --neo-text-color-focused: color-mix(in srgb, var(--neo-text-color), var(--neo-color-primary) 50%);
76
72
  --neo-text-color-focused-active: color-mix(in srgb, var(--neo-text-color-focused), white 10%);
77
- --neo-text-color-hover: var(--neo-color-primary-80);
73
+ --neo-text-color-hover: color-mix(in srgb, var(--neo-text-color), var(--neo-color-primary) 70%);
78
74
  --neo-text-color-hover-active: color-mix(in srgb, var(--neo-text-color-hover), white 20%);
79
75
  --neo-text-color-disabled: var(--neo-grey-strong-60);
80
76
  --neo-text-highlight-color: var(--neo-grey-soft-30);
81
77
  --neo-border-color: var(--neo-grey-soft);
82
- --neo-border-color-focused: var(--neo-color-primary-50);
83
- --neo-border-color-primary: var(--neo-color-primary-80);
78
+ --neo-border-color-focused: color-mix(in srgb, var(--neo-border-color), var(--neo-color-primary) 50%);
84
79
  --neo-border-color-disabled: var(--neo-grey-soft-60);
85
80
  --neo-background-color: var(--neo-white-soft);
86
81
  --neo-background-color-lighter: color-mix(in srgb, var(--neo-background-color), white 5%);
@@ -92,17 +87,18 @@
92
87
  --neo-close-color: var(--neo-color-error);
93
88
  --neo-close-color-hover: var(--neo-color-error-75);
94
89
  --neo-close-color-focused: var(--neo-color-error-50);
95
- --neo-close-bg-color-hover: var(--neo-color-error-10);
90
+ --neo-close-bg-color-hover: var(--neo-color-error-7);
96
91
  --neo-close-bg-color-focused: var(--neo-color-error-5);
97
92
  --neo-scrollbar-color: var(--neo-grey-soft-60);
98
93
 
99
94
  /** glass colors */
100
95
  --neo-glass-background-color: var(--neo-white-soft-20);
101
- --neo-glass-background-color-focus: var(--neo-white-soft-15);
102
- --neo-glass-background-color-hover: var(--neo-white-soft-10);
103
- --neo-glass-shadow-color: var(--neo-black-soft-10);
104
- --neo-glass-border-color: var(--neo-white-soft-light-50);
105
- --neo-glass-border-color-hover: var(--neo-glass-background-color);
96
+ --neo-glass-background-color-focus: var(--neo-white-soft-22);
97
+ --neo-glass-background-color-hover: var(--neo-white-soft-25);
98
+ --neo-glass-shadow-color-light: var(--neo-white-soft-light-60);
99
+ --neo-glass-shadow-color-dark: var(--neo-black-10);
100
+ --neo-glass-border-color: var(--neo-white-soft-light-60);
101
+ --neo-glass-border-color-hover: var(--neo-white-soft-light-30);
106
102
  --neo-glass-skeleton-color: var(--neo-grey-soft-60);
107
103
 
108
104
  /** dark primary colors */
@@ -119,16 +115,17 @@
119
115
 
120
116
  /** dark mode semantic colors */
121
117
  --neo-dark-text-color: var(--neo-white-soft-dark);
118
+ --neo-dark-text-color-secondary: color-mix(in srgb, var(--neo-text-color), black 20%);
119
+ --neo-dark-text-color-highlight: color-mix(in srgb, currentcolor, white 80%);
122
120
  --neo-dark-text-color-active: color-mix(in srgb, currentcolor, black 10%);
123
- --neo-dark-text-color-focused: var(--neo-dark-color-primary-50);
121
+ --neo-dark-text-color-focused: color-mix(in srgb, var(--neo-dark-text-color), var(--neo-dark-color-primary) 40%);
124
122
  --neo-dark-text-color-focused-active: color-mix(in srgb, var(--neo-dark-text-color-focused), black 10%);
125
- --neo-dark-text-color-hover: var(--neo-dark-color-primary-80);
123
+ --neo-dark-text-color-hover: color-mix(in srgb, var(--neo-dark-text-color), var(--neo-dark-color-primary) 80%);
126
124
  --neo-dark-text-color-hover-active: color-mix(in srgb, var(--neo-dark-text-color-hover), black 20%);
127
125
  --neo-dark-text-color-disabled: var(--neo-white-soft-dark-80);
128
126
  --neo-dark-text-highlight-color: var(--neo-grey-soft-20);
129
127
  --neo-dark-border-color: var(--neo-grey-dark);
130
- --neo-dark-border-color-focused: var(--neo-dark-color-primary-50);
131
- --neo-dark-border-color-primary: var(--neo-dark-color-primary-80);
128
+ --neo-dark-border-color-focused: color-mix(in srgb, var(--neo-dark-border-color), var(--neo-dark-color-primary) 40%);
132
129
  --neo-dark-border-color-disabled: var(--neo-grey-dark-80);
133
130
  --neo-dark-background-color: var(--neo-black-soft);
134
131
  --neo-dark-background-color-lighter: color-mix(in srgb, var(--neo-background-color), black 5%);
@@ -145,73 +142,64 @@
145
142
  --neo-dark-scrollbar-color: var(--neo-grey-dark-80);
146
143
 
147
144
  /** dark mode glass colors */
148
- --neo-dark-glass-background-color: var(--neo-grey-strong-8);
149
- --neo-dark-glass-background-color-focus: var(--neo-grey-strong-10);
150
- --neo-dark-glass-background-color-hover: var(--neo-grey-strong-12);
151
- --neo-dark-glass-shadow-color: var(--neo-black-soft-dark-50);
152
- --neo-dark-glass-border-color: var(--neo-black-lighter-50);
153
- --neo-dark-glass-border-color-hover: var(--neo-dark-glass-background-color);
145
+ --neo-dark-glass-background-color: var(--neo-black-5);
146
+ --neo-dark-glass-background-color-focus: var(--neo-black-8);
147
+ --neo-dark-glass-background-color-hover: var(--neo-black-10);
148
+ --neo-dark-glass-shadow-color-light: var(--neo-black-lighter-40);
149
+ --neo-dark-glass-shadow-color-dark: var(--neo-black-20);
150
+ --neo-dark-glass-border-color: var(--neo-black-lighter-40);
151
+ --neo-dark-glass-border-color-hover: var(--neo-black-5);
154
152
  --neo-dark-glass-skeleton-color: var(--neo-grey-dark-80);
153
+ }
155
154
 
156
- @mixin dark-theme {
157
- /** primary colors */
158
- --neo-color-primary: var(--neo-dark-color-primary);
159
- --neo-color-primary-50: var(--neo-dark-color-primary-50);
160
- --neo-color-primary-80: var(--neo-dark-color-primary-80);
161
- --neo-color-error: var(--neo-dark-color-error);
162
- --neo-color-error-5: var(--neo-dark-color-error-5);
163
- --neo-color-error-10: var(--neo-dark-color-error-10);
164
- --neo-color-error-50: var(--neo-dark-color-error-50);
165
- --neo-color-error-75: var(--neo-dark-color-error-75);
166
- --neo-color-success: var(--neo-dark-color-success);
167
- --neo-color-success-50: var(--neo-dark-color-success-50);
168
-
169
- /** semantic colors */
170
- --neo-text-color: var(--neo-dark-text-color);
171
- --neo-text-color-active: var(--neo-dark-text-color-active);
172
- --neo-text-color-focused: var(--neo-dark-text-color-focused);
173
- --neo-text-color-focused-active: var(--neo-dark-text-color-focused-active);
174
- --neo-text-color-hover: var(--neo-dark-text-color-hover);
175
- --neo-text-color-hover-active: var(--neo-dark-text-color-hover-active);
176
- --neo-text-color-disabled: var(--neo-dark-text-color-disabled);
177
- --neo-text-highlight-color: var(--neo-dark-text-highlight-color);
178
- --neo-border-color: var(--neo-dark-border-color);
179
- --neo-border-color-focused: var(--neo-dark-border-color-focused);
180
- --neo-border-color-primary: var(--neo-dark-border-color-primary);
181
- --neo-border-color-disabled: var(--neo-dark-border-color-disabled);
182
- --neo-background-color: var(--neo-dark-background-color);
183
- --neo-background-color-lighter: var(--neo-dark-background-color-lighter);
184
- --neo-background-color-darker: var(--neo-dark-background-color-darker);
185
- --neo-shadow-color-light: var(--neo-dark-shadow-color-light);
186
- --neo-shadow-color-dark: var(--neo-dark-shadow-color-dark);
187
- --neo-skeleton-color: var(--neo-dark-skeleton-color);
188
- --neo-skeleton-color-step: var(--neo-dark-skeleton-color-step);
189
- --neo-close-color: var(--neo-dark-close-color);
190
- --neo-close-color-hover: var(--neo-dark-close-color-hover);
191
- --neo-close-color-focused: var(--neo-dark-close-color-focused);
192
- --neo-close-bg-color-hover: var(--neo-dark-close-bg-color-hover);
193
- --neo-close-bg-color-focused: var(--neo-dark-close-bg-color-focused);
194
- --neo-scrollbar-color: var(--neo-dark-scrollbar-color);
195
-
196
- /** glass colors */
197
- --neo-glass-background-color: var(--neo-dark-glass-background-color);
198
- --neo-glass-background-color-focus: var(--neo-dark-glass-background-color-focus);
199
- --neo-glass-background-color-hover: var(--neo-dark-glass-background-color-hover);
200
- --neo-glass-shadow-color: var(--neo-dark-glass-shadow-color);
201
- --neo-glass-border-color: var(--neo-dark-glass-border-color);
202
- --neo-glass-border-color-hover: var(--neo-dark-glass-border-color-hover);
203
- --neo-glass-skeleton-color: var(--neo-dark-glass-skeleton-color);
204
- }
155
+ @mixin dark-theme {
156
+ /** primary colors */
157
+ --neo-color-primary: var(--neo-dark-color-primary);
158
+ --neo-color-primary-50: var(--neo-dark-color-primary-50);
159
+ --neo-color-primary-80: var(--neo-dark-color-primary-80);
160
+ --neo-color-error: var(--neo-dark-color-error);
161
+ --neo-color-error-5: var(--neo-dark-color-error-5);
162
+ --neo-color-error-7: var(--neo-dark-color-error-10);
163
+ --neo-color-error-50: var(--neo-dark-color-error-50);
164
+ --neo-color-error-75: var(--neo-dark-color-error-75);
165
+ --neo-color-success: var(--neo-dark-color-success);
166
+ --neo-color-success-50: var(--neo-dark-color-success-50);
205
167
 
206
- /* override semantic color if dark mode is enabled */
207
- &[neo-theme='dark'] {
208
- @include dark-theme;
209
- }
168
+ /** semantic colors */
169
+ --neo-text-color: var(--neo-dark-text-color);
170
+ --neo-text-color-secondary: var(--neo-dark-text-color-secondary);
171
+ --neo-text-color-highlight: var(--neo-dark-text-color-highlight);
172
+ --neo-text-color-active: var(--neo-dark-text-color-active);
173
+ --neo-text-color-focused: var(--neo-dark-text-color-focused);
174
+ --neo-text-color-focused-active: var(--neo-dark-text-color-focused-active);
175
+ --neo-text-color-hover: var(--neo-dark-text-color-hover);
176
+ --neo-text-color-hover-active: var(--neo-dark-text-color-hover-active);
177
+ --neo-text-color-disabled: var(--neo-dark-text-color-disabled);
178
+ --neo-text-highlight-color: var(--neo-dark-text-highlight-color);
179
+ --neo-border-color: var(--neo-dark-border-color);
180
+ --neo-border-color-focused: var(--neo-dark-border-color-focused);
181
+ --neo-border-color-disabled: var(--neo-dark-border-color-disabled);
182
+ --neo-background-color: var(--neo-dark-background-color);
183
+ --neo-background-color-lighter: var(--neo-dark-background-color-lighter);
184
+ --neo-background-color-darker: var(--neo-dark-background-color-darker);
185
+ --neo-shadow-color-light: var(--neo-dark-shadow-color-light);
186
+ --neo-shadow-color-dark: var(--neo-dark-shadow-color-dark);
187
+ --neo-skeleton-color: var(--neo-dark-skeleton-color);
188
+ --neo-skeleton-color-step: var(--neo-dark-skeleton-color-step);
189
+ --neo-close-color: var(--neo-dark-close-color);
190
+ --neo-close-color-hover: var(--neo-dark-close-color-hover);
191
+ --neo-close-color-focused: var(--neo-dark-close-color-focused);
192
+ --neo-close-bg-color-hover: var(--neo-dark-close-bg-color-hover);
193
+ --neo-close-bg-color-focused: var(--neo-dark-close-bg-color-focused);
194
+ --neo-scrollbar-color: var(--neo-dark-scrollbar-color);
210
195
 
211
- /* apply dark mode if not overridden */
212
- @media (prefers-color-scheme: dark) {
213
- &:not([neo-theme='light']) {
214
- @include dark-theme;
215
- }
216
- }
196
+ /** glass colors */
197
+ --neo-glass-background-color: var(--neo-dark-glass-background-color);
198
+ --neo-glass-background-color-focus: var(--neo-dark-glass-background-color-focus);
199
+ --neo-glass-background-color-hover: var(--neo-dark-glass-background-color-hover);
200
+ --neo-glass-shadow-color-light: var(--neo-dark-glass-shadow-color-light);
201
+ --neo-glass-shadow-color-dark: var(--neo-dark-glass-shadow-color-dark);
202
+ --neo-glass-border-color: var(--neo-dark-glass-border-color);
203
+ --neo-glass-border-color-hover: var(--neo-dark-glass-border-color-hover);
204
+ --neo-glass-skeleton-color: var(--neo-dark-glass-skeleton-color);
217
205
  }
@@ -0,0 +1,17 @@
1
+ @mixin filters() {
2
+ /* Blurs */
3
+ --neo-blur-0: blur(0);
4
+ --neo-blur-1: blur(4px);
5
+ --neo-blur-2: blur(6px);
6
+ --neo-blur-3: blur(8px);
7
+ --neo-blur-4: blur(12px);
8
+ --neo-blur-5: blur(16px);
9
+
10
+ /* Saturation */
11
+ --neo-saturate: saturate(1);
12
+ --neo-saturate-1: saturate(1.1);
13
+ --neo-saturate-2: saturate(1.2);
14
+ --neo-saturate-3: saturate(1.3);
15
+ --neo-saturate-4: saturate(1.5);
16
+ --neo-saturate-5: saturate(2);
17
+ }