vuetiwatch 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 (158) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +232 -0
  3. package/dist/index.d.ts +11 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +6 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/plugin.d.ts +41 -0
  8. package/dist/plugin.d.ts.map +1 -0
  9. package/dist/plugin.js +58 -0
  10. package/dist/plugin.js.map +1 -0
  11. package/dist/registry.d.ts +17 -0
  12. package/dist/registry.d.ts.map +1 -0
  13. package/dist/registry.js +37 -0
  14. package/dist/registry.js.map +1 -0
  15. package/dist/styles/aurora.css +74 -0
  16. package/dist/styles/aurora.min.css +1 -0
  17. package/dist/styles/brutalist.css +48 -0
  18. package/dist/styles/brutalist.min.css +1 -0
  19. package/dist/styles/calm.css +21 -0
  20. package/dist/styles/calm.min.css +1 -0
  21. package/dist/styles/clay.css +44 -0
  22. package/dist/styles/clay.min.css +1 -0
  23. package/dist/styles/core.css +140 -0
  24. package/dist/styles/core.min.css +1 -0
  25. package/dist/styles/darkGlass.css +43 -0
  26. package/dist/styles/darkGlass.min.css +1 -0
  27. package/dist/styles/liquidGlass.css +100 -0
  28. package/dist/styles/liquidGlass.min.css +1 -0
  29. package/dist/styles/lux.css +21 -0
  30. package/dist/styles/lux.min.css +1 -0
  31. package/dist/styles/morph.css +37 -0
  32. package/dist/styles/morph.min.css +1 -0
  33. package/dist/styles/neon.css +41 -0
  34. package/dist/styles/neon.min.css +1 -0
  35. package/dist/styles/paper.css +17 -0
  36. package/dist/styles/paper.min.css +1 -0
  37. package/dist/styles/sketchy.css +25 -0
  38. package/dist/styles/sketchy.min.css +1 -0
  39. package/dist/styles/slate.css +16 -0
  40. package/dist/styles/slate.min.css +1 -0
  41. package/dist/styles/soft.css +46 -0
  42. package/dist/styles/soft.min.css +1 -0
  43. package/dist/styles.css +686 -0
  44. package/dist/styles.min.css +1 -0
  45. package/dist/themes/aurora.d.ts +10 -0
  46. package/dist/themes/aurora.d.ts.map +1 -0
  47. package/dist/themes/aurora.js +86 -0
  48. package/dist/themes/aurora.js.map +1 -0
  49. package/dist/themes/brutalist.d.ts +10 -0
  50. package/dist/themes/brutalist.d.ts.map +1 -0
  51. package/dist/themes/brutalist.js +103 -0
  52. package/dist/themes/brutalist.js.map +1 -0
  53. package/dist/themes/calm.d.ts +11 -0
  54. package/dist/themes/calm.d.ts.map +1 -0
  55. package/dist/themes/calm.js +88 -0
  56. package/dist/themes/calm.js.map +1 -0
  57. package/dist/themes/classic.d.ts +6 -0
  58. package/dist/themes/classic.d.ts.map +1 -0
  59. package/dist/themes/classic.js +23 -0
  60. package/dist/themes/classic.js.map +1 -0
  61. package/dist/themes/clay.d.ts +8 -0
  62. package/dist/themes/clay.d.ts.map +1 -0
  63. package/dist/themes/clay.js +80 -0
  64. package/dist/themes/clay.js.map +1 -0
  65. package/dist/themes/darkGlass.d.ts +7 -0
  66. package/dist/themes/darkGlass.d.ts.map +1 -0
  67. package/dist/themes/darkGlass.js +77 -0
  68. package/dist/themes/darkGlass.js.map +1 -0
  69. package/dist/themes/index.d.ts +15 -0
  70. package/dist/themes/index.d.ts.map +1 -0
  71. package/dist/themes/index.js +15 -0
  72. package/dist/themes/index.js.map +1 -0
  73. package/dist/themes/liquidGlass.d.ts +19 -0
  74. package/dist/themes/liquidGlass.d.ts.map +1 -0
  75. package/dist/themes/liquidGlass.js +111 -0
  76. package/dist/themes/liquidGlass.js.map +1 -0
  77. package/dist/themes/lux.d.ts +8 -0
  78. package/dist/themes/lux.d.ts.map +1 -0
  79. package/dist/themes/lux.js +91 -0
  80. package/dist/themes/lux.js.map +1 -0
  81. package/dist/themes/morph.d.ts +10 -0
  82. package/dist/themes/morph.d.ts.map +1 -0
  83. package/dist/themes/morph.js +82 -0
  84. package/dist/themes/morph.js.map +1 -0
  85. package/dist/themes/neon.d.ts +7 -0
  86. package/dist/themes/neon.d.ts.map +1 -0
  87. package/dist/themes/neon.js +96 -0
  88. package/dist/themes/neon.js.map +1 -0
  89. package/dist/themes/paper.d.ts +7 -0
  90. package/dist/themes/paper.d.ts.map +1 -0
  91. package/dist/themes/paper.js +88 -0
  92. package/dist/themes/paper.js.map +1 -0
  93. package/dist/themes/sketchy.d.ts +11 -0
  94. package/dist/themes/sketchy.d.ts.map +1 -0
  95. package/dist/themes/sketchy.js +88 -0
  96. package/dist/themes/sketchy.js.map +1 -0
  97. package/dist/themes/slate.d.ts +7 -0
  98. package/dist/themes/slate.d.ts.map +1 -0
  99. package/dist/themes/slate.js +89 -0
  100. package/dist/themes/slate.js.map +1 -0
  101. package/dist/themes/soft.d.ts +7 -0
  102. package/dist/themes/soft.d.ts.map +1 -0
  103. package/dist/themes/soft.js +84 -0
  104. package/dist/themes/soft.js.map +1 -0
  105. package/dist/types.d.ts +40 -0
  106. package/dist/types.d.ts.map +1 -0
  107. package/dist/types.js +2 -0
  108. package/dist/types.js.map +1 -0
  109. package/dist/util/defaults.d.ts +62 -0
  110. package/dist/util/defaults.d.ts.map +1 -0
  111. package/dist/util/defaults.js +100 -0
  112. package/dist/util/defaults.js.map +1 -0
  113. package/dist/util/defineTheme.d.ts +21 -0
  114. package/dist/util/defineTheme.d.ts.map +1 -0
  115. package/dist/util/defineTheme.js +25 -0
  116. package/dist/util/defineTheme.js.map +1 -0
  117. package/dist/util/merge.d.ts +8 -0
  118. package/dist/util/merge.d.ts.map +1 -0
  119. package/dist/util/merge.js +17 -0
  120. package/dist/util/merge.js.map +1 -0
  121. package/package.json +75 -0
  122. package/src/index.ts +35 -0
  123. package/src/plugin.ts +116 -0
  124. package/src/registry.ts +64 -0
  125. package/src/styles/core.css +311 -0
  126. package/src/styles/index.css +30 -0
  127. package/src/styles/themes/aurora.css +86 -0
  128. package/src/styles/themes/brutalist.css +59 -0
  129. package/src/styles/themes/calm.css +31 -0
  130. package/src/styles/themes/clay.css +60 -0
  131. package/src/styles/themes/darkGlass.css +69 -0
  132. package/src/styles/themes/liquidGlass.css +172 -0
  133. package/src/styles/themes/lux.css +31 -0
  134. package/src/styles/themes/morph.css +53 -0
  135. package/src/styles/themes/neon.css +56 -0
  136. package/src/styles/themes/paper.css +32 -0
  137. package/src/styles/themes/sketchy.css +34 -0
  138. package/src/styles/themes/slate.css +26 -0
  139. package/src/styles/themes/soft.css +63 -0
  140. package/src/themes/aurora.ts +86 -0
  141. package/src/themes/brutalist.ts +103 -0
  142. package/src/themes/calm.ts +88 -0
  143. package/src/themes/classic.ts +23 -0
  144. package/src/themes/clay.ts +80 -0
  145. package/src/themes/darkGlass.ts +77 -0
  146. package/src/themes/index.ts +14 -0
  147. package/src/themes/liquidGlass.ts +111 -0
  148. package/src/themes/lux.ts +91 -0
  149. package/src/themes/morph.ts +82 -0
  150. package/src/themes/neon.ts +96 -0
  151. package/src/themes/paper.ts +88 -0
  152. package/src/themes/sketchy.ts +88 -0
  153. package/src/themes/slate.ts +89 -0
  154. package/src/themes/soft.ts +84 -0
  155. package/src/types.ts +44 -0
  156. package/src/util/defaults.ts +164 -0
  157. package/src/util/defineTheme.ts +49 -0
  158. package/src/util/merge.ts +23 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"darkGlass.js","sourceRoot":"","sources":["../../src/themes/darkGlass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;IACnC,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE;QACJ,KAAK,EAAE,YAAY;QACnB,WAAW,EAAE,uDAAuD;QACpE,IAAI,EAAE,IAAI;QACV,SAAS,EAAE,QAAQ;QACnB,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;QACpD,KAAK,EAAE,CAAC,OAAO,CAAC;KACjB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,IAAI;QACV,MAAM,EAAE;YACN,UAAU,EAAE,SAAS;YACrB,OAAO,EAAE,SAAS;YAClB,gBAAgB,EAAE,SAAS;YAC3B,eAAe,EAAE,SAAS;YAC1B,iBAAiB,EAAE,SAAS;YAC5B,oBAAoB,EAAE,SAAS;YAC/B,OAAO,EAAE,SAAS;YAClB,kBAAkB,EAAE,SAAS;YAC7B,SAAS,EAAE,SAAS;YACpB,oBAAoB,EAAE,SAAS;YAC/B,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,SAAS;YAClB,YAAY,EAAE,SAAS;YACvB,eAAe,EAAE,SAAS;SAC3B;QACD,SAAS,EAAE;YACT,cAAc,EAAE,SAAS;YACzB,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,SAAS;YACzB,uBAAuB,EAAE,IAAI;YAC7B,yBAAyB,EAAE,IAAI;YAC/B,eAAe,EAAE,IAAI;YACrB,WAAW,EAAE,gCAAgC;YAC7C,WAAW,EAAE,MAAM;YACnB,cAAc,EAAE,MAAM;YACtB,gBAAgB,EAAE,OAAO;YACzB,kBAAkB,EAAE,MAAM;YAC1B,iBAAiB,EAAE,QAAQ;YAC3B,eAAe,EAAE,KAAK;SACvB;KACF;IACD,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;YACzB,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAAE;YAC5C,MAAM,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;YAC5B,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;SAC5B;QACD,MAAM,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACpB;YACE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;YACxB,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE;SACzC;QACD,KAAK,CAAC;YACJ,QAAQ,EAAE,kBAAkB;YAC5B,QAAQ,EAAE,gBAAgB;YAC1B,UAAU,EAAE,kBAAkB;YAC9B,WAAW,EAAE,oBAAoB;YACjC,UAAU,EAAE,UAAU;YACtB,WAAW,EAAE,kBAAkB;SAChC,CAAC;KACH;CACF,CAAC,CAAA"}
@@ -0,0 +1,15 @@
1
+ export { aurora } from './aurora.js';
2
+ export { brutalist } from './brutalist.js';
3
+ export { calm } from './calm.js';
4
+ export { classic } from './classic.js';
5
+ export { clay } from './clay.js';
6
+ export { darkGlass } from './darkGlass.js';
7
+ export { liquidGlass } from './liquidGlass.js';
8
+ export { lux } from './lux.js';
9
+ export { morph } from './morph.js';
10
+ export { neon } from './neon.js';
11
+ export { paper } from './paper.js';
12
+ export { sketchy } from './sketchy.js';
13
+ export { slate } from './slate.js';
14
+ export { soft } from './soft.js';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/themes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA"}
@@ -0,0 +1,15 @@
1
+ export { aurora } from './aurora.js';
2
+ export { brutalist } from './brutalist.js';
3
+ export { calm } from './calm.js';
4
+ export { classic } from './classic.js';
5
+ export { clay } from './clay.js';
6
+ export { darkGlass } from './darkGlass.js';
7
+ export { liquidGlass } from './liquidGlass.js';
8
+ export { lux } from './lux.js';
9
+ export { morph } from './morph.js';
10
+ export { neon } from './neon.js';
11
+ export { paper } from './paper.js';
12
+ export { sketchy } from './sketchy.js';
13
+ export { slate } from './slate.js';
14
+ export { soft } from './soft.js';
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/themes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Glass that refracts rather than merely blurs, after Apple's iOS 26
3
+ * language.
4
+ *
5
+ * Four things carry it, and dropping any one is what makes an imitation
6
+ * read as generic frosting:
7
+ *
8
+ * - Capsules. Every control is fully rounded; it is the shape cue people
9
+ * recognise before they register anything else.
10
+ * - SF. `-apple-system` comes first in the stack, so the theme renders in
11
+ * the real typeface on Apple hardware and falls back to Inter elsewhere.
12
+ * - Light-mode system colours. `#007AFF` and friends — the `#0A84FF` set
13
+ * belongs to dark mode and reads far too electric on a light ground.
14
+ * - A calm ground. The stylesheet washes `v-app` in two adjacent hues,
15
+ * because translucency over nothing is just grey, and translucency over
16
+ * a rainbow is a mess.
17
+ */
18
+ export declare const liquidGlass: import("../types.js").VuetiwatchTheme<"liquidGlass">;
19
+ //# sourceMappingURL=liquidGlass.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liquidGlass.d.ts","sourceRoot":"","sources":["../../src/themes/liquidGlass.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,WAAW,sDA0FtB,CAAA"}
@@ -0,0 +1,111 @@
1
+ import { bars, controls, fields, icons, tables } from '../util/defaults.js';
2
+ import { defineTheme } from '../util/defineTheme.js';
3
+ /**
4
+ * Glass that refracts rather than merely blurs, after Apple's iOS 26
5
+ * language.
6
+ *
7
+ * Four things carry it, and dropping any one is what makes an imitation
8
+ * read as generic frosting:
9
+ *
10
+ * - Capsules. Every control is fully rounded; it is the shape cue people
11
+ * recognise before they register anything else.
12
+ * - SF. `-apple-system` comes first in the stack, so the theme renders in
13
+ * the real typeface on Apple hardware and falls back to Inter elsewhere.
14
+ * - Light-mode system colours. `#007AFF` and friends — the `#0A84FF` set
15
+ * belongs to dark mode and reads far too electric on a light ground.
16
+ * - A calm ground. The stylesheet washes `v-app` in two adjacent hues,
17
+ * because translucency over nothing is just grey, and translucency over
18
+ * a rainbow is a mess.
19
+ */
20
+ export const liquidGlass = defineTheme({
21
+ name: 'liquidGlass',
22
+ meta: {
23
+ title: 'Liquid Glass',
24
+ description: 'Capsule controls and refracting panes over a calm wash, after iOS 26.',
25
+ dark: false,
26
+ iconStyle: 'outline',
27
+ swatch: ['#F2F2F7', '#FFFFFF', '#007AFF', '#5856D6'],
28
+ fonts: ['Inter'],
29
+ },
30
+ theme: {
31
+ dark: false,
32
+ colors: {
33
+ // systemGroupedBackground over systemBackground, as iOS pairs them.
34
+ background: '#F2F2F7',
35
+ surface: '#FFFFFF',
36
+ 'surface-bright': '#FFFFFF',
37
+ 'surface-light': '#F7F7FA',
38
+ 'surface-variant': '#3A3A3C',
39
+ 'on-surface-variant': '#F2F2F7',
40
+ primary: '#007AFF',
41
+ 'primary-darken-1': '#0062CC',
42
+ secondary: '#5856D6',
43
+ 'secondary-darken-1': '#4341B5',
44
+ error: '#FF3B30',
45
+ info: '#007AFF',
46
+ success: '#34C759',
47
+ warning: '#FF9500',
48
+ 'on-surface': '#1C1C1E',
49
+ 'on-background': '#1C1C1E',
50
+ 'on-success': '#06140A',
51
+ 'on-warning': '#1A1004',
52
+ },
53
+ variables: {
54
+ 'border-color': '#3A3A3C',
55
+ // iOS separators are hairlines, not borders.
56
+ 'border-opacity': 0.1,
57
+ 'shadow-color': '#1B3A6B',
58
+ 'high-emphasis-opacity': 0.92,
59
+ 'medium-emphasis-opacity': 0.6,
60
+ 'hover-opacity': 0.04,
61
+ 'font-body': "-apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Inter', system-ui, sans-serif",
62
+ 'font-heading': "-apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Inter', system-ui, sans-serif",
63
+ 'vw-radius': '12px',
64
+ // Capsule controls, but through the variable rather than the
65
+ // `rounded` prop — that would leak into button groups and split a
66
+ // segmented control back into separate pills.
67
+ 'vw-radius-btn': '999px',
68
+ 'vw-radius-lg': '22px',
69
+ 'vw-radius-chip': '999px',
70
+ 'vw-border-width': '1px',
71
+ 'vw-btn-transform': 'none',
72
+ 'vw-btn-tracking': '0',
73
+ 'vw-btn-weight': '590',
74
+ // Apple leaves links in the accent colour, unlined.
75
+ 'vw-link-decoration': 'none',
76
+ 'vw-heading-weight': '700',
77
+ 'vw-heading-tracking': '-0.022em',
78
+ },
79
+ },
80
+ defaults: [
81
+ {
82
+ VBtn: { variant: 'flat' },
83
+ VCard: { variant: 'elevated', elevation: 0 },
84
+ VAlert: { variant: 'tonal' },
85
+ VChip: { variant: 'tonal' },
86
+ VSwitch: { inset: true },
87
+ VSlider: { thumbSize: 22, trackSize: 6 },
88
+ },
89
+ fields({ variant: 'solo-filled', flat: true }),
90
+ controls({ density: 'comfortable' }),
91
+ tables('comfortable'),
92
+ bars({ flat: true }),
93
+ icons({
94
+ // Chevrons everywhere, as SF does, and the clear affordance is the
95
+ // filled circle iOS puts inside a field.
96
+ dropdown: 'mdi-chevron-down',
97
+ collapse: 'mdi-chevron-up',
98
+ next: 'mdi-chevron-right',
99
+ prev: 'mdi-chevron-left',
100
+ checkboxOn: 'mdi-check-circle',
101
+ checkboxOff: 'mdi-circle-outline',
102
+ ratingFull: 'mdi-star',
103
+ ratingEmpty: 'mdi-star-outline',
104
+ clear: 'mdi-close-circle',
105
+ close: 'mdi-close-circle',
106
+ sortAsc: 'mdi-chevron-up',
107
+ sortDesc: 'mdi-chevron-down',
108
+ }),
109
+ ],
110
+ });
111
+ //# sourceMappingURL=liquidGlass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liquidGlass.js","sourceRoot":"","sources":["../../src/themes/liquidGlass.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Restraint as decoration: hairline rules, wide letter-spacing, small caps
3
+ * on anything interactive, and a single muted gold. The only theme here
4
+ * whose character is carried almost entirely by typography and spacing
5
+ * rather than colour or shape.
6
+ */
7
+ export declare const lux: import("../types.js").VuetiwatchTheme<"lux">;
8
+ //# sourceMappingURL=lux.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lux.d.ts","sourceRoot":"","sources":["../../src/themes/lux.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,eAAO,MAAM,GAAG,8CAiFd,CAAA"}
@@ -0,0 +1,91 @@
1
+ import { bars, controls, fields, icons, tables } from '../util/defaults.js';
2
+ import { defineTheme } from '../util/defineTheme.js';
3
+ /**
4
+ * Restraint as decoration: hairline rules, wide letter-spacing, small caps
5
+ * on anything interactive, and a single muted gold. The only theme here
6
+ * whose character is carried almost entirely by typography and spacing
7
+ * rather than colour or shape.
8
+ */
9
+ export const lux = defineTheme({
10
+ name: 'lux',
11
+ meta: {
12
+ title: 'Lux',
13
+ description: 'Editorial luxury — hairline rules, wide tracking, small caps and muted gold.',
14
+ dark: false,
15
+ iconStyle: 'outline',
16
+ swatch: ['#FFFFFF', '#FAFAFA', '#1A1A1A', '#B39A5B'],
17
+ fonts: ['Jost'],
18
+ },
19
+ theme: {
20
+ dark: false,
21
+ colors: {
22
+ background: '#FFFFFF',
23
+ surface: '#FFFFFF',
24
+ 'surface-bright': '#FFFFFF',
25
+ 'surface-light': '#F7F7F5',
26
+ 'surface-variant': '#1A1A1A',
27
+ 'on-surface-variant': '#FFFFFF',
28
+ primary: '#1A1A1A',
29
+ 'primary-darken-1': '#000000',
30
+ secondary: '#B39A5B',
31
+ 'secondary-darken-1': '#8F7A45',
32
+ error: '#96322A',
33
+ info: '#3D5A73',
34
+ success: '#4A6B4F',
35
+ warning: '#A8791E',
36
+ 'on-surface': '#1A1A1A',
37
+ 'on-background': '#1A1A1A',
38
+ },
39
+ variables: {
40
+ 'border-color': '#1A1A1A',
41
+ 'border-opacity': 0.14,
42
+ 'high-emphasis-opacity': 0.88,
43
+ 'medium-emphasis-opacity': 0.55,
44
+ 'hover-opacity': 0.03,
45
+ 'font-body': "'Jost', 'Futura', system-ui, sans-serif",
46
+ 'vw-radius': '0px',
47
+ 'vw-radius-lg': '0px',
48
+ 'vw-radius-thumb': '0px',
49
+ 'vw-radius-chip': '0px',
50
+ 'vw-border-width': '1px',
51
+ 'vw-btn-transform': 'uppercase',
52
+ 'vw-btn-tracking': '0.2em',
53
+ 'vw-btn-weight': '400',
54
+ 'vw-heading-weight': '300',
55
+ 'vw-heading-tracking': '0.06em',
56
+ 'vw-heading-transform': 'uppercase',
57
+ 'vw-list-bar': '2px',
58
+ 'vw-list-bar-color': 'rgb(var(--v-theme-secondary))',
59
+ 'vw-tab-slider-height': '1px',
60
+ },
61
+ },
62
+ defaults: [
63
+ {
64
+ VBtn: { variant: 'outlined', size: 'large' },
65
+ VCard: { variant: 'outlined' },
66
+ VAlert: { variant: 'outlined' },
67
+ VChip: { variant: 'outlined' },
68
+ VNavigationDrawer: { border: 'e' },
69
+ VSwitch: { inset: 'square' },
70
+ VSlider: { thumbSize: 12, trackSize: 1 },
71
+ },
72
+ fields({ variant: 'underlined' }),
73
+ controls({ density: 'comfortable' }),
74
+ tables('comfortable'),
75
+ bars({ flat: true, border: 'b' }),
76
+ icons({
77
+ dropdown: 'mdi-chevron-down',
78
+ collapse: 'mdi-chevron-up',
79
+ checkboxOn: 'mdi-checkbox-marked-outline',
80
+ checkboxOff: 'mdi-checkbox-blank-outline',
81
+ ratingFull: 'mdi-star',
82
+ ratingEmpty: 'mdi-star-outline',
83
+ sortAsc: 'mdi-arrow-up',
84
+ sortDesc: 'mdi-arrow-down',
85
+ close: 'mdi-close',
86
+ // An em dash rather than a slash — the one flourish the theme allows.
87
+ breadcrumbDivider: '—',
88
+ }),
89
+ ],
90
+ });
91
+ //# sourceMappingURL=lux.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lux.js","sourceRoot":"","sources":["../../src/themes/lux.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Neumorphism: surfaces are the same colour as the page, and the only thing
3
+ * separating them is a pair of shadows — dark bottom-right, light top-left,
4
+ * as if the whole interface were pressed out of one sheet.
5
+ *
6
+ * `surface` deliberately equals `background`. Anything that reintroduces
7
+ * contrast between them breaks the illusion.
8
+ */
9
+ export declare const morph: import("../types.js").VuetiwatchTheme<"morph">;
10
+ //# sourceMappingURL=morph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"morph.d.ts","sourceRoot":"","sources":["../../src/themes/morph.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,eAAO,MAAM,KAAK,gDAsEhB,CAAA"}
@@ -0,0 +1,82 @@
1
+ import { bars, fields, icons } from '../util/defaults.js';
2
+ import { defineTheme } from '../util/defineTheme.js';
3
+ /**
4
+ * Neumorphism: surfaces are the same colour as the page, and the only thing
5
+ * separating them is a pair of shadows — dark bottom-right, light top-left,
6
+ * as if the whole interface were pressed out of one sheet.
7
+ *
8
+ * `surface` deliberately equals `background`. Anything that reintroduces
9
+ * contrast between them breaks the illusion.
10
+ */
11
+ export const morph = defineTheme({
12
+ name: 'morph',
13
+ meta: {
14
+ title: 'Morph',
15
+ description: 'Neumorphic — one continuous surface, shaped only by light and shadow.',
16
+ dark: false,
17
+ iconStyle: 'filled',
18
+ swatch: ['#E4EBF5', '#E4EBF5', '#5A7DE0', '#8894AA'],
19
+ fonts: ['Nunito'],
20
+ },
21
+ theme: {
22
+ dark: false,
23
+ colors: {
24
+ background: '#E4EBF5',
25
+ surface: '#E4EBF5',
26
+ 'surface-bright': '#EEF3FA',
27
+ 'surface-light': '#DAE2EE',
28
+ 'surface-variant': '#4A5568',
29
+ 'on-surface-variant': '#E4EBF5',
30
+ primary: '#5A7DE0',
31
+ 'primary-darken-1': '#4763BC',
32
+ secondary: '#8894AA',
33
+ 'secondary-darken-1': '#6D798F',
34
+ error: '#E06C75',
35
+ info: '#5A9FE0',
36
+ success: '#5AC08C',
37
+ warning: '#E0A85A',
38
+ 'on-surface': '#4A5568',
39
+ 'on-background': '#4A5568',
40
+ },
41
+ variables: {
42
+ 'border-color': '#9AA7BC',
43
+ 'border-opacity': 0.001,
44
+ 'shadow-color': '#A3B1C6',
45
+ 'high-emphasis-opacity': 0.85,
46
+ 'medium-emphasis-opacity': 0.6,
47
+ 'hover-opacity': 0.03,
48
+ 'font-body': "'Nunito', system-ui, sans-serif",
49
+ 'vw-radius': '12px',
50
+ 'vw-radius-lg': '20px',
51
+ 'vw-radius-chip': '999px',
52
+ // Borders would flatten the relief the shadows are building.
53
+ 'vw-border-width': '0px',
54
+ 'vw-btn-transform': 'none',
55
+ 'vw-btn-tracking': '0.01em',
56
+ 'vw-btn-weight': '700',
57
+ 'vw-tab-slider-height': '4px',
58
+ },
59
+ },
60
+ defaults: [
61
+ {
62
+ VBtn: { variant: 'flat' },
63
+ VCard: { variant: 'flat' },
64
+ VAlert: { variant: 'flat' },
65
+ VChip: { variant: 'flat' },
66
+ VSwitch: { inset: true },
67
+ VSlider: { thumbSize: 20, trackSize: 6 },
68
+ },
69
+ fields({ variant: 'solo', flat: true }),
70
+ bars({ flat: true }),
71
+ icons({
72
+ // Everything round, to match surfaces that have no edges at all.
73
+ dropdown: 'mdi-chevron-down',
74
+ collapse: 'mdi-chevron-up',
75
+ checkboxOn: 'mdi-check-circle',
76
+ checkboxOff: 'mdi-circle-outline',
77
+ ratingFull: 'mdi-circle',
78
+ ratingEmpty: 'mdi-circle-outline',
79
+ }),
80
+ ],
81
+ });
82
+ //# sourceMappingURL=morph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"morph.js","sourceRoot":"","sources":["../../src/themes/morph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,WAAW,CAAC;IAC/B,IAAI,EAAE,OAAO;IACb,IAAI,EAAE;QACJ,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,uEAAuE;QACpF,IAAI,EAAE,KAAK;QACX,SAAS,EAAE,QAAQ;QACnB,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;QACpD,KAAK,EAAE,CAAC,QAAQ,CAAC;KAClB;IACD,KAAK,EAAE;QACL,IAAI,EAAE,KAAK;QACX,MAAM,EAAE;YACN,UAAU,EAAE,SAAS;YACrB,OAAO,EAAE,SAAS;YAClB,gBAAgB,EAAE,SAAS;YAC3B,eAAe,EAAE,SAAS;YAC1B,iBAAiB,EAAE,SAAS;YAC5B,oBAAoB,EAAE,SAAS;YAC/B,OAAO,EAAE,SAAS;YAClB,kBAAkB,EAAE,SAAS;YAC7B,SAAS,EAAE,SAAS;YACpB,oBAAoB,EAAE,SAAS;YAC/B,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,SAAS;YAClB,YAAY,EAAE,SAAS;YACvB,eAAe,EAAE,SAAS;SAC3B;QACD,SAAS,EAAE;YACT,cAAc,EAAE,SAAS;YACzB,gBAAgB,EAAE,KAAK;YACvB,cAAc,EAAE,SAAS;YACzB,uBAAuB,EAAE,IAAI;YAC7B,yBAAyB,EAAE,GAAG;YAC9B,eAAe,EAAE,IAAI;YACrB,WAAW,EAAE,iCAAiC;YAC9C,WAAW,EAAE,MAAM;YACnB,cAAc,EAAE,MAAM;YACtB,gBAAgB,EAAE,OAAO;YACzB,6DAA6D;YAC7D,iBAAiB,EAAE,KAAK;YACxB,kBAAkB,EAAE,MAAM;YAC1B,iBAAiB,EAAE,QAAQ;YAC3B,eAAe,EAAE,KAAK;YACtB,sBAAsB,EAAE,KAAK;SAC9B;KACF;IACD,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;YACzB,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;YAC1B,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;YAC3B,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;YAC1B,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;YACxB,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE;SACzC;QACD,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACpB,KAAK,CAAC;YACJ,iEAAiE;YACjE,QAAQ,EAAE,kBAAkB;YAC5B,QAAQ,EAAE,gBAAgB;YAC1B,UAAU,EAAE,kBAAkB;YAC9B,WAAW,EAAE,oBAAoB;YACjC,UAAU,EAAE,YAAY;YACxB,WAAW,EAAE,oBAAoB;SAClC,CAAC;KACH;CACF,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Near-black ground, saturated cyan and magenta, zero radius, and glow
3
+ * instead of elevation. The loudest theme in the set and the deliberate
4
+ * opposite of `soft`.
5
+ */
6
+ export declare const neon: import("../types.js").VuetiwatchTheme<"neon">;
7
+ //# sourceMappingURL=neon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"neon.d.ts","sourceRoot":"","sources":["../../src/themes/neon.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,eAAO,MAAM,IAAI,+CAuFf,CAAA"}
@@ -0,0 +1,96 @@
1
+ import { bars, fields, icons, surfaces, tables } from '../util/defaults.js';
2
+ import { defineTheme } from '../util/defineTheme.js';
3
+ /**
4
+ * Near-black ground, saturated cyan and magenta, zero radius, and glow
5
+ * instead of elevation. The loudest theme in the set and the deliberate
6
+ * opposite of `soft`.
7
+ */
8
+ export const neon = defineTheme({
9
+ name: 'neon',
10
+ meta: {
11
+ title: 'Neon',
12
+ description: 'Terminal black with cyan and magenta glow. Sharp corners, monospace headings.',
13
+ dark: true,
14
+ iconStyle: 'outline',
15
+ swatch: ['#05060A', '#0B0E16', '#00F0FF', '#FF2FD0'],
16
+ fonts: ['JetBrains Mono', 'Inter'],
17
+ },
18
+ theme: {
19
+ dark: true,
20
+ colors: {
21
+ background: '#05060A',
22
+ surface: '#0B0E16',
23
+ 'surface-bright': '#161B29',
24
+ 'surface-light': '#11151F',
25
+ 'surface-variant': '#C9D3E6',
26
+ 'on-surface-variant': '#05060A',
27
+ primary: '#00F0FF',
28
+ 'primary-darken-1': '#00BFCC',
29
+ secondary: '#FF2FD0',
30
+ 'secondary-darken-1': '#CC1FA6',
31
+ error: '#FF3B5C',
32
+ info: '#00F0FF',
33
+ success: '#29FF9B',
34
+ warning: '#FFD23F',
35
+ 'on-surface': '#D7E3F4',
36
+ 'on-background': '#D7E3F4',
37
+ 'on-primary': '#05060A',
38
+ 'on-secondary': '#05060A',
39
+ 'on-success': '#05060A',
40
+ 'on-warning': '#05060A',
41
+ },
42
+ variables: {
43
+ 'border-color': '#00F0FF',
44
+ 'border-opacity': 0.28,
45
+ 'shadow-color': '#00F0FF',
46
+ 'high-emphasis-opacity': 0.94,
47
+ 'medium-emphasis-opacity': 0.66,
48
+ 'hover-opacity': 0.12,
49
+ 'font-body': "'Inter', system-ui, sans-serif",
50
+ 'font-heading': "'JetBrains Mono', 'IBM Plex Mono', ui-monospace, monospace",
51
+ 'vw-radius': '0px',
52
+ 'vw-radius-lg': '0px',
53
+ 'vw-radius-thumb': '0px',
54
+ 'vw-radius-chip': '0px',
55
+ 'vw-border-width': '1px',
56
+ 'vw-btn-transform': 'uppercase',
57
+ 'vw-btn-tracking': '0.12em',
58
+ 'vw-btn-weight': '600',
59
+ 'vw-heading-tracking': '0.04em',
60
+ 'vw-heading-transform': 'uppercase',
61
+ 'vw-list-bar': '2px',
62
+ 'vw-list-bar-color': 'rgb(var(--v-theme-primary))',
63
+ 'vw-tab-slider-height': '3px',
64
+ },
65
+ },
66
+ defaults: [
67
+ {
68
+ VBtn: { variant: 'outlined' },
69
+ VSheet: { border: true },
70
+ VNavigationDrawer: { border: 'e' },
71
+ },
72
+ surfaces({ variant: 'outlined' }),
73
+ fields({ variant: 'outlined', density: 'compact' }),
74
+ tables('compact'),
75
+ bars({ flat: true, border: 'b' }),
76
+ {
77
+ // Nothing filled and nothing round: a square switch, a square slider
78
+ // thumb, and a checkbox that stays hollow when checked.
79
+ VSwitch: { inset: 'square' },
80
+ VSlider: { thumbSize: 14, trackSize: 2 },
81
+ },
82
+ icons({
83
+ // Nothing is filled in this theme, glyphs included.
84
+ dropdown: 'mdi-menu-down',
85
+ collapse: 'mdi-menu-up',
86
+ checkboxOn: 'mdi-checkbox-marked-outline',
87
+ checkboxOff: 'mdi-checkbox-blank-outline',
88
+ ratingFull: 'mdi-star',
89
+ ratingEmpty: 'mdi-star-outline',
90
+ sortAsc: 'mdi-chevron-up',
91
+ sortDesc: 'mdi-chevron-down',
92
+ close: 'mdi-close',
93
+ }),
94
+ ],
95
+ });
96
+ //# sourceMappingURL=neon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"neon.js","sourceRoot":"","sources":["../../src/themes/neon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Editorial and flat: warm paper background, ink-black primary, hairline
3
+ * borders instead of shadows, serif headings. The furthest a light theme
4
+ * gets from Material without changing a single component.
5
+ */
6
+ export declare const paper: import("../types.js").VuetiwatchTheme<"paper">;
7
+ //# sourceMappingURL=paper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paper.d.ts","sourceRoot":"","sources":["../../src/themes/paper.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,eAAO,MAAM,KAAK,gDA+EhB,CAAA"}
@@ -0,0 +1,88 @@
1
+ import { bars, fields, icons, surfaces } from '../util/defaults.js';
2
+ import { defineTheme } from '../util/defineTheme.js';
3
+ /**
4
+ * Editorial and flat: warm paper background, ink-black primary, hairline
5
+ * borders instead of shadows, serif headings. The furthest a light theme
6
+ * gets from Material without changing a single component.
7
+ */
8
+ export const paper = defineTheme({
9
+ name: 'paper',
10
+ meta: {
11
+ title: 'Paper',
12
+ description: 'Flat editorial look — warm paper, ink accents, borders instead of elevation.',
13
+ dark: false,
14
+ iconStyle: 'outline',
15
+ swatch: ['#FAF8F2', '#FFFFFF', '#1A1A1A', '#8A6A3B'],
16
+ fonts: ['Source Serif 4'],
17
+ },
18
+ theme: {
19
+ dark: false,
20
+ colors: {
21
+ background: '#FAF8F2',
22
+ surface: '#FFFFFF',
23
+ 'surface-bright': '#FFFFFF',
24
+ 'surface-light': '#F1EEE4',
25
+ 'surface-variant': '#2B2724',
26
+ 'on-surface-variant': '#FAF8F2',
27
+ primary: '#1A1A1A',
28
+ 'primary-darken-1': '#000000',
29
+ secondary: '#8A6A3B',
30
+ 'secondary-darken-1': '#6B5029',
31
+ error: '#A32E2E',
32
+ info: '#2E5A8A',
33
+ success: '#3E7A4E',
34
+ warning: '#B07A1E',
35
+ 'on-surface': '#14110E',
36
+ 'on-background': '#14110E',
37
+ },
38
+ variables: {
39
+ 'border-color': '#14110E',
40
+ 'border-opacity': 0.2,
41
+ 'high-emphasis-opacity': 0.92,
42
+ 'medium-emphasis-opacity': 0.66,
43
+ 'hover-opacity': 0.05,
44
+ 'font-body': "system-ui, -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif",
45
+ 'font-heading': "'Source Serif 4', 'Iowan Old Style', Georgia, 'Times New Roman', serif",
46
+ 'vw-radius': '2px',
47
+ 'vw-radius-lg': '2px',
48
+ 'vw-radius-thumb': '2px',
49
+ 'vw-radius-chip': '2px',
50
+ 'vw-border-width': '1px',
51
+ 'vw-btn-transform': 'none',
52
+ 'vw-btn-tracking': '0',
53
+ 'vw-btn-weight': '600',
54
+ 'vw-heading-tracking': '-0.01em',
55
+ 'vw-tab-slider-height': '3px',
56
+ },
57
+ },
58
+ defaults: [
59
+ {
60
+ VBtn: { variant: 'outlined' },
61
+ VSheet: { border: true },
62
+ VNavigationDrawer: { border: 'e' },
63
+ },
64
+ surfaces({ variant: 'outlined' }),
65
+ fields({ variant: 'outlined' }),
66
+ bars({ flat: true, border: 'b' }),
67
+ {
68
+ // Square hardware rather than Material pills — the switch and the
69
+ // slider should read as parts of a printed form.
70
+ VSwitch: { inset: 'square' },
71
+ VSlider: { thumbSize: 14, trackSize: 2 },
72
+ },
73
+ icons({
74
+ // Outlines throughout: this theme draws with hairlines, and a solid
75
+ // glyph would be the heaviest mark on the page.
76
+ dropdown: 'mdi-chevron-down',
77
+ collapse: 'mdi-chevron-up',
78
+ checkboxOn: 'mdi-checkbox-marked-outline',
79
+ checkboxOff: 'mdi-checkbox-blank-outline',
80
+ ratingFull: 'mdi-star',
81
+ ratingEmpty: 'mdi-star-outline',
82
+ sortAsc: 'mdi-arrow-up',
83
+ sortDesc: 'mdi-arrow-down',
84
+ close: 'mdi-close',
85
+ }),
86
+ ],
87
+ });
88
+ //# sourceMappingURL=paper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paper.js","sourceRoot":"","sources":["../../src/themes/paper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,WAAW,CAAC;IAC/B,IAAI,EAAE,OAAO;IACb,IAAI,EAAE;QACJ,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,8EAA8E;QAC3F,IAAI,EAAE,KAAK;QACX,SAAS,EAAE,SAAS;QACpB,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;QACpD,KAAK,EAAE,CAAC,gBAAgB,CAAC;KAC1B;IACD,KAAK,EAAE;QACL,IAAI,EAAE,KAAK;QACX,MAAM,EAAE;YACN,UAAU,EAAE,SAAS;YACrB,OAAO,EAAE,SAAS;YAClB,gBAAgB,EAAE,SAAS;YAC3B,eAAe,EAAE,SAAS;YAC1B,iBAAiB,EAAE,SAAS;YAC5B,oBAAoB,EAAE,SAAS;YAC/B,OAAO,EAAE,SAAS;YAClB,kBAAkB,EAAE,SAAS;YAC7B,SAAS,EAAE,SAAS;YACpB,oBAAoB,EAAE,SAAS;YAC/B,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,SAAS;YAClB,YAAY,EAAE,SAAS;YACvB,eAAe,EAAE,SAAS;SAC3B;QACD,SAAS,EAAE;YACT,cAAc,EAAE,SAAS;YACzB,gBAAgB,EAAE,GAAG;YACrB,uBAAuB,EAAE,IAAI;YAC7B,yBAAyB,EAAE,IAAI;YAC/B,eAAe,EAAE,IAAI;YACrB,WAAW,EAAE,oEAAoE;YACjF,cAAc,EAAE,wEAAwE;YACxF,WAAW,EAAE,KAAK;YAClB,cAAc,EAAE,KAAK;YACrB,iBAAiB,EAAE,KAAK;YACxB,gBAAgB,EAAE,KAAK;YACvB,iBAAiB,EAAE,KAAK;YACxB,kBAAkB,EAAE,MAAM;YAC1B,iBAAiB,EAAE,GAAG;YACtB,eAAe,EAAE,KAAK;YACtB,qBAAqB,EAAE,SAAS;YAChC,sBAAsB,EAAE,KAAK;SAC9B;KACF;IACD,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;YAC7B,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACxB,iBAAiB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;SACnC;QACD,QAAQ,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;QACjC,MAAM,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;QAC/B,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QACjC;YACE,kEAAkE;YAClE,iDAAiD;YACjD,OAAO,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;YAC5B,OAAO,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE;SACzC;QACD,KAAK,CAAC;YACJ,oEAAoE;YACpE,gDAAgD;YAChD,QAAQ,EAAE,kBAAkB;YAC5B,QAAQ,EAAE,gBAAgB;YAC1B,UAAU,EAAE,6BAA6B;YACzC,WAAW,EAAE,4BAA4B;YACzC,UAAU,EAAE,UAAU;YACtB,WAAW,EAAE,kBAAkB;YAC/B,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,gBAAgB;YAC1B,KAAK,EAAE,WAAW;SACnB,CAAC;KACH;CACF,CAAC,CAAA"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * A hand-drawn look for mockups and wireframes, after Bootswatch's Sketchy.
3
+ *
4
+ * The whole effect rests on one trick: an asymmetric `border-radius` with
5
+ * wildly different horizontal and vertical radii reads as a wobbly pen
6
+ * stroke. Vuetify passes `variables` through verbatim, so the full
7
+ * multi-value syntax rides in on the same `--v-vw-radius` every other theme
8
+ * uses — no new plumbing.
9
+ */
10
+ export declare const sketchy: import("../types.js").VuetiwatchTheme<"sketchy">;
11
+ //# sourceMappingURL=sketchy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sketchy.d.ts","sourceRoot":"","sources":["../../src/themes/sketchy.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,eAAO,MAAM,OAAO,kDA2ElB,CAAA"}