create-canaima-app 1.0.12 → 1.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-canaima-app",
3
- "version": "1.0.12",
3
+ "version": "1.0.15",
4
4
  "description": "CLI para scaffolding de proyectos de escritorio con Tauri, Vue 3 y Rust.",
5
5
  "main": "index.js",
6
6
  "type": "module",
@@ -12,6 +12,11 @@ dist
12
12
  dist-ssr
13
13
  *.local
14
14
 
15
+ # Tauri
16
+ src-tauri/target
17
+ src-tauri/gen
18
+ src-tauri/Cargo.lock
19
+
15
20
  # Editor directories and files
16
21
  .vscode/*
17
22
  !.vscode/extensions.json
@@ -22,3 +27,5 @@ dist-ssr
22
27
  *.njsproj
23
28
  *.sln
24
29
  *.sw?
30
+
31
+ package-lock.json
@@ -2,6 +2,7 @@
2
2
  import { onMounted } from 'vue'
3
3
  import { RouterView } from 'vue-router'
4
4
  import { useAppStore } from './stores/useAppStore'
5
+ import Titlebar from './components/Titlebar.vue'
5
6
 
6
7
  const appStore = useAppStore()
7
8
 
@@ -11,6 +12,31 @@ onMounted(() => {
11
12
  </script>
12
13
 
13
14
  <template>
14
- <!-- <RouterView> monta automáticamente el componente `HomeView.vue` que configuraste -->
15
- <RouterView />
15
+ <div class="flex flex-col h-screen overflow-hidden bg-white dark:bg-[#191919] rounded-xl shadow-2xl border border-black/10">
16
+ <Titlebar class="rounded-t-xl" />
17
+ <main class="flex-1 overflow-y-auto overflow-x-hidden rounded-b-xl">
18
+ <RouterView />
19
+ </main>
20
+ </div>
16
21
  </template>
22
+
23
+ <style>
24
+ /* Reset global de scroll para el body */
25
+ body,
26
+ html {
27
+ overflow: hidden !important;
28
+ margin: 0;
29
+ padding: 0;
30
+ background-color: transparent !important;
31
+ }
32
+
33
+ /* Ocultar barra de scroll global (pero mantener funcionamiento) */
34
+ ::-webkit-scrollbar {
35
+ display: none !important;
36
+ }
37
+
38
+ * {
39
+ scrollbar-width: none !important;
40
+ -ms-overflow-style: none !important;
41
+ }
42
+ </style>
@@ -0,0 +1,218 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+
4
+ <svg
5
+ width="197.72641mm"
6
+ height="33.641674mm"
7
+ viewBox="0 0 197.72641 33.641674"
8
+ version="1.1"
9
+ id="svg3333"
10
+ inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
11
+ sodipodi:docname="logo-canaima-tepuy.svg"
12
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
13
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ xmlns:svg="http://www.w3.org/2000/svg">
16
+ <sodipodi:namedview
17
+ id="namedview3335"
18
+ pagecolor="#ffffff"
19
+ bordercolor="#000000"
20
+ borderopacity="0.25"
21
+ inkscape:showpageshadow="2"
22
+ inkscape:pageopacity="0.0"
23
+ inkscape:pagecheckerboard="0"
24
+ inkscape:deskcolor="#d1d1d1"
25
+ inkscape:document-units="mm"
26
+ showgrid="false"
27
+ inkscape:zoom="0.51528125"
28
+ inkscape:cx="261.99284"
29
+ inkscape:cy="204.74256"
30
+ inkscape:window-width="1920"
31
+ inkscape:window-height="964"
32
+ inkscape:window-x="1600"
33
+ inkscape:window-y="26"
34
+ inkscape:window-maximized="1"
35
+ inkscape:current-layer="g16140-2-8-92" />
36
+ <defs
37
+ id="defs3330">
38
+ <filter
39
+ style="color-interpolation-filters:sRGB"
40
+ inkscape:label="Drop Shadow"
41
+ id="filter57-5"
42
+ x="-0.036867082"
43
+ y="-0.1116646"
44
+ width="1.0878153"
45
+ height="1.2233292">
46
+ <feFlood
47
+ result="flood"
48
+ in="SourceGraphic"
49
+ flood-opacity="0.403922"
50
+ flood-color="rgb(0,0,0)"
51
+ id="feFlood55-4" />
52
+ <feGaussianBlur
53
+ result="blur"
54
+ in="SourceGraphic"
55
+ stdDeviation="2.400000"
56
+ id="feGaussianBlur55-7" />
57
+ <feOffset
58
+ result="offset"
59
+ in="blur"
60
+ dx="2.200000"
61
+ dy="0.000000"
62
+ id="feOffset55-4" />
63
+ <feComposite
64
+ result="comp1"
65
+ operator="in"
66
+ in="flood"
67
+ in2="offset"
68
+ id="feComposite56-4" />
69
+ <feComposite
70
+ result="comp2"
71
+ operator="over"
72
+ in="SourceGraphic"
73
+ in2="comp1"
74
+ id="feComposite57-3" />
75
+ </filter>
76
+ <filter
77
+ style="color-interpolation-filters:sRGB"
78
+ inkscape:label="Drop Shadow"
79
+ id="filter59-0"
80
+ x="-11.445225"
81
+ y="-0.12886705"
82
+ width="27.873072"
83
+ height="1.2577341">
84
+ <feFlood
85
+ result="flood"
86
+ in="SourceGraphic"
87
+ flood-opacity="0.403922"
88
+ flood-color="rgb(0,0,0)"
89
+ id="feFlood57-78" />
90
+ <feGaussianBlur
91
+ result="blur"
92
+ in="SourceGraphic"
93
+ stdDeviation="2.400000"
94
+ id="feGaussianBlur57-6" />
95
+ <feOffset
96
+ result="offset"
97
+ in="blur"
98
+ dx="2.200000"
99
+ dy="0.000000"
100
+ id="feOffset57-8" />
101
+ <feComposite
102
+ result="comp1"
103
+ operator="in"
104
+ in="flood"
105
+ in2="offset"
106
+ id="feComposite58-8" />
107
+ <feComposite
108
+ result="comp2"
109
+ operator="over"
110
+ in="SourceGraphic"
111
+ in2="comp1"
112
+ id="feComposite59-4" />
113
+ </filter>
114
+ <filter
115
+ style="color-interpolation-filters:sRGB"
116
+ inkscape:label="Drop Shadow"
117
+ id="filter61-3"
118
+ x="-0.042409468"
119
+ y="-0.28225538"
120
+ width="1.101017"
121
+ height="1.5645108">
122
+ <feFlood
123
+ result="flood"
124
+ in="SourceGraphic"
125
+ flood-opacity="0.403922"
126
+ flood-color="rgb(0,0,0)"
127
+ id="feFlood59-1" />
128
+ <feGaussianBlur
129
+ result="blur"
130
+ in="SourceGraphic"
131
+ stdDeviation="2.400000"
132
+ id="feGaussianBlur59-4" />
133
+ <feOffset
134
+ result="offset"
135
+ in="blur"
136
+ dx="2.200000"
137
+ dy="0.000000"
138
+ id="feOffset59-9" />
139
+ <feComposite
140
+ result="comp1"
141
+ operator="in"
142
+ in="flood"
143
+ in2="offset"
144
+ id="feComposite60-2" />
145
+ <feComposite
146
+ result="comp2"
147
+ operator="over"
148
+ in="SourceGraphic"
149
+ in2="comp1"
150
+ id="feComposite61-0" />
151
+ </filter>
152
+ </defs>
153
+ <g
154
+ inkscape:label="Capa 1"
155
+ inkscape:groupmode="layer"
156
+ id="layer1"
157
+ transform="translate(49.513997,-85.018004)">
158
+ <g
159
+ id="g5"
160
+ transform="translate(-625.54956,1696.2688)"
161
+ style="fill:#1a1a1a">
162
+ <g
163
+ id="g16140-2-8-92"
164
+ transform="matrix(1.1561043,0,0,1.1561043,573.47057,-1706.0376)"
165
+ style="fill:#1a1a1a">
166
+ <g
167
+ id="g1624-2-2-7"
168
+ transform="matrix(3.1041617,0,0,3.1041617,-184.60387,-226.11799)"
169
+ style="fill:#1a1a1a">
170
+ <path
171
+ style="fill:#1a1a1a;stroke-width:0.885366"
172
+ d="m 62.675542,106.81397 c 0.866468,0.0773 2.599013,0.23136 4.346852,0.32665 1.747849,0.0953 2.548547,-0.14306 4.165436,-0.0277 1.186673,-0.055 2.318318,-0.38697 3.004302,-0.69855 0.799363,-0.17988 1.382681,-0.4303 1.973951,-0.97896 0.591301,-0.54868 1.088187,-1.2378 1.299999,-1.94259 0.211832,-0.70477 0.214536,-1.49371 0.247569,-1.98633 0.03309,-0.4926 0.09661,-0.6889 0.276996,-0.83281 0.180485,-0.14391 0.609451,-0.24586 1.38012,0.0675 0.751717,0.16027 1.502574,-0.35473 2.661573,-0.1754 0.927944,-0.20812 1.786721,0.0948 2.61999,0.0918 0.83327,-0.003 1.690272,-0.045 2.435652,-0.0901 0.745392,-0.0449 1.37909,-0.0926 1.880602,-0.0959 0.501522,-0.004 0.870774,0.0377 1.248968,0.12966 0.378164,0.092 0.765228,0.23458 1.086914,0.48695 0.321695,0.25238 0.578227,0.61427 0.762545,0.91654 0.184307,0.30225 0.296648,0.54516 0.384885,1.21814 0.08829,0.67298 0.152569,1.77625 0.378945,2.59597 0.226376,0.81974 0.676285,1.13511 1.198137,1.54419 0.909074,0.15592 1.066118,0.88325 1.616377,1.08371 0.688332,-0.0411 0.848861,0.23354 4.240669,0.17513 3.344846,-0.36414 9.827856,-0.23677 13.012436,-0.3522 3.18458,-0.11546 3.11739,-0.16825 0.15308,-0.2652 -2.96428,-0.0969 -8.82557,-0.2378 -12.00213,-0.31571 -3.176536,-0.0779 -3.668242,-0.0929 -4.112782,-0.12757 -0.44456,-0.0345 -0.841995,-0.0889 -1.312775,-0.36447 -0.47079,-0.27552 -1.014853,-0.77248 -1.311686,-1.17045 -0.296853,-0.39797 -0.345869,-0.69533 -0.387968,-1.29443 -0.04204,-0.59908 -0.07668,-1.49175 -0.151244,-2.13844 -0.07462,-0.6467 -0.189178,-1.0445 -0.447694,-1.44451 -0.258527,-0.40002 -0.618857,-0.60027 -1.041125,-0.98823 -0.896675,-0.316839 -1.377311,-0.523009 -1.740797,-0.709731 -1.311553,-0.0518 -0.565309,-0.150708 -2.662645,-0.148345 -1.053129,0.0021 -2.485973,0.230251 -4.024837,0.0051 -1.156332,-0.169333 -2.522286,0.139896 -3.917625,0.02775 -2.004536,0.03412 -2.161123,0.100931 -2.406165,0.510927 -0.194729,0.189289 -0.377052,0.280319 -0.524759,0.657409 -0.147718,0.37709 -0.222153,0.82484 -0.259349,1.23436 -0.0372,0.40953 -0.0372,0.78068 -0.06414,1.12099 -0.02683,0.34031 -0.08038,0.64981 -0.237301,0.96063 -0.156886,0.31083 -0.41718,0.62333 -0.78526,0.94846 -0.368091,0.32513 -0.844174,0.66306 -1.278159,0.88591 -0.434004,0.22284 -0.825982,0.33062 -1.304265,0.44578 -0.478251,0.1152 -1.042573,0.23761 -1.768631,0.32737 -0.726069,0.0897 -1.613832,0.14674 -2.64918,0.16471 -1.035369,0.018 -2.218228,-0.003 -3.213861,-0.0317 -0.995643,-0.0288 -1.803988,-0.0652 -2.823179,-0.0761 -1.01919,-0.0105 -2.245896,0.004 -2.417685,0.0507 -0.171789,0.0469 0.716201,0.12573 1.158645,0.16503 0.442442,0.0392 0.444035,0.0369 1.310493,0.11403 z"
173
+ id="path1630-7-9-6"
174
+ sodipodi:nodetypes="cccccccccccccccccccccccccccccccccsccccccccccccccccc"
175
+ inkscape:export-xdpi="96"
176
+ inkscape:export-ydpi="96" />
177
+ <path
178
+ style="fill:#1a1a1a;stroke-width:0.435509"
179
+ d="m 87.593615,100.28647 c 0,0 4.071192,-1.189754 4.937895,2.20828 0.866704,3.39803 0.196169,2.83946 0.196169,2.83946 0,0 0.02179,-0.61387 -1.144224,-1.98795 -0.988058,-1.16442 -1.429319,-1.21059 -1.988337,-1.24085 -0.559028,-0.0302 -0.418721,-0.71621 -1.621355,-0.86756 -0.625929,-0.0787 -0.814813,-0.44143 -1.529534,-0.52574 -1.067919,-0.12596 -1.787047,-0.30095 -1.777006,-0.3463 0.02096,-0.0946 2.926392,-0.0789 2.926392,-0.0789 z"
180
+ id="path28566-2-3-7"
181
+ sodipodi:nodetypes="cscscssccc" />
182
+ <path
183
+ style="fill:#1a1a1a;stroke-width:0.435509"
184
+ d="m 91.522337,103.46843 c 0,0 0.480688,0.68292 0.542552,0.83751 0.283287,0.3816 0.500279,1.03573 0.468087,1.23639 -0.03217,0.20066 -0.749502,0.21834 -0.710774,-0.22908 -0.311057,-0.68314 -0.163093,-0.88092 -0.504328,-1.17899 -0.341151,-0.29807 -0.578505,-0.66496 -0.730014,-0.89814 -0.731804,-0.63285 0.430355,-0.27433 0.430355,-0.27433 z"
185
+ id="path28568-2-9-3"
186
+ sodipodi:nodetypes="cccccccc" />
187
+ <path
188
+ style="fill:#1a1a1a;stroke-width:0.435509"
189
+ d="m 77.741783,103.20314 c 0.173892,-1.58771 0.09071,-2.42675 0.668353,-2.54783 0.577646,-0.12107 0.552294,0.24711 0.316452,0.48148 -0.235839,0.23434 -0.984805,2.06635 -0.984805,2.06635 z"
190
+ id="path30367-6-0-6" />
191
+ <path
192
+ d="m 77.29605,104.17999 c 0.07296,-0.18579 0.186437,-0.39427 0.252157,-0.46327 0.09362,-0.0983 0.100117,-0.12607 0.03003,-0.12827 -0.138712,-0.004 0.06135,-0.29266 0.221002,-0.31846 0.119758,-0.0194 0.124431,0.005 0.04734,0.23877 -0.04705,0.14314 -0.10015,0.23993 -0.117768,0.2152 -0.01769,-0.0248 -0.04859,-0.006 -0.06862,0.0417 -0.02002,0.0477 -0.01804,0.11245 0.0044,0.14382 0.04471,0.0625 -0.113242,0.3972 -0.22509,0.47691 -0.03854,0.0275 -0.08661,0.0268 -0.106824,-0.002 -0.02022,-0.0283 -0.06657,-0.01 -0.103014,0.0407 -0.03645,0.0507 -0.0066,-0.06 0.06636,-0.24572 z"
193
+ style="fill:#1a1a1a;stroke-width:0.0453703"
194
+ id="path33309-1-8-5"
195
+ sodipodi:nodetypes="ccccccccccscc" />
196
+ <path
197
+ d="m 77.070637,105.15597 c -0.309137,0.005 -0.316195,-0.004 -0.234229,-0.26914 0.128915,-0.41739 0.253416,-0.48151 0.483657,-0.24907 0.270863,0.27346 0.155799,0.51251 -0.249447,0.51823 z"
198
+ style="fill:#1a1a1a;stroke-width:0.0901676"
199
+ id="path33490-0-8-63" />
200
+ <g
201
+ id="g1588-6-5-9"
202
+ transform="translate(0.19006851,0.03507912)"
203
+ style="fill:#1a1a1a">
204
+ <path
205
+ style="fill:#1a1a1a;stroke-width:0.304633px"
206
+ d="m 78.290437,102.09428 c 0,0 0.22269,-0.77553 0.553496,-0.96194 0.33081,-0.1864 0.185081,-0.24037 0.209752,-0.33042 0.02467,-0.09 1.24052,0.17652 1.483831,0.0291 0.243311,-0.14741 0.606033,-0.29155 1.034686,-0.22137 0.428652,0.0701 0.514808,0.0237 0.58488,-0.0387 0.07007,-0.0624 0.609482,0.19589 0.180285,0.22793 -0.4292,0.032 -0.543514,-0.13141 -1.599226,0.12887 -1.055708,0.26027 -1.084277,0.0342 -1.327392,0.0645 -0.243115,0.0303 -1.120312,1.1021 -1.120312,1.1021 z"
207
+ id="path872-1-0-4" />
208
+ <path
209
+ style="fill:#1a1a1a;stroke-width:0.264583px"
210
+ d="m 78.290444,102.09435 c 0,0 0.876081,-0.91629 1.851107,-0.74809 0.975024,0.1682 1.675451,-0.2107 1.713082,-0.33693 0.01915,-0.0642 0.539151,-0.18317 0.70066,-0.24736 0.15592,-0.062 -0.355795,0.0265 -0.223922,-0.0859 -0.368768,-0.0323 -1.429668,0.0486 -1.537819,0.12157 -0.108149,0.0729 -0.815023,0.30269 -0.889024,0.2308 -0.074,-0.0719 -0.689115,-0.13362 -0.716746,-0.0778 -0.02763,0.0558 -0.897345,1.14371 -0.897345,1.14371"
211
+ id="path874-5-9-8"
212
+ sodipodi:nodetypes="csssccccc" />
213
+ </g>
214
+ </g>
215
+ </g>
216
+ </g>
217
+ </g>
218
+ </svg>
@@ -20,7 +20,7 @@ async function greet() {
20
20
  <template>
21
21
  <div class="min-h-screen bg-[#ececec] dark:bg-[#191919] text-gray-800 dark:text-gray-100 transition-colors duration-300">
22
22
  <!-- ====== NAVBAR ====== -->
23
- <div class="fixed top-0 left-0 right-0 z-50">
23
+ <div class="sticky top-0 left-0 right-0 z-50">
24
24
  <nav class="bg-[#0b6793] dark:bg-[#121212] shadow-lg">
25
25
  <div class="max-w-7xl mx-auto px-4 flex items-center justify-between h-16">
26
26
  <!-- Brand -->
@@ -81,7 +81,7 @@ async function greet() {
81
81
  </div>
82
82
 
83
83
  <!-- ====== HERO ====== -->
84
- <div class="pt-16">
84
+ <div class="">
85
85
  <div class="py-16 px-4">
86
86
  <div class="max-w-7xl mx-auto text-center">
87
87
  <div class="flex justify-center mb-6">
@@ -0,0 +1,271 @@
1
+ <script setup lang="ts">
2
+ import { ref, onMounted } from 'vue'
3
+ import { X, Minus, Square } from 'lucide-vue-next'
4
+ import CanaimaLogo from '../assets/canaima.svg'
5
+ import { getCurrentWindow } from '@tauri-apps/api/window'
6
+ import { useAppStore } from '../stores/useAppStore'
7
+
8
+ const appWindow = getCurrentWindow()
9
+ const appStore = useAppStore()
10
+ const projectName = ref('Canaima App')
11
+
12
+ const minimizeWindow = () => {
13
+ appWindow.minimize()
14
+ }
15
+
16
+ const toggleMaximizeWindow = () => {
17
+ appWindow.toggleMaximize()
18
+ }
19
+
20
+ const closeWindow = () => {
21
+ appWindow.close()
22
+ }
23
+
24
+ onMounted(async () => {
25
+ projectName.value = await appWindow.title()
26
+ })
27
+ </script>
28
+
29
+ <template>
30
+ <div
31
+ class="system-titlebar"
32
+ :class="{ 'is-dark': appStore.isDarkMode }"
33
+ >
34
+ <!-- Capa de Arrastre Total -->
35
+ <div
36
+ data-tauri-drag-region
37
+ class="drag-region"
38
+ ></div>
39
+
40
+ <div class="titlebar-content">
41
+ <!-- Izquierda: Logo -->
42
+ <div class="left-section">
43
+ <img
44
+ :src="CanaimaLogo"
45
+ class="logo"
46
+ alt="Canaima Logo"
47
+ />
48
+ </div>
49
+
50
+ <!-- Centro: Título -->
51
+ <div class="center-section">
52
+ <h1 class="app-title">{{ projectName }}</h1>
53
+ </div>
54
+
55
+ <!-- Derecha: Controles de Ventana (Hover individual + Centrado total) -->
56
+ <div class="window-controls">
57
+ <button
58
+ @click="minimizeWindow"
59
+ class="control-btn btn-minimize"
60
+ title="Minimizar"
61
+ >
62
+ <div class="icon-wrapper">
63
+ <Minus
64
+ width="10"
65
+ height="10"
66
+ stroke-width="4"
67
+ class="control-icon"
68
+ />
69
+ </div>
70
+ </button>
71
+ <button
72
+ @click="toggleMaximizeWindow"
73
+ class="control-btn btn-maximize"
74
+ title="Maximizar"
75
+ >
76
+ <div class="icon-wrapper">
77
+ <Square
78
+ width="8"
79
+ height="8"
80
+ stroke-width="4"
81
+ class="control-icon"
82
+ />
83
+ </div>
84
+ </button>
85
+ <button
86
+ @click="closeWindow"
87
+ class="control-btn btn-close"
88
+ title="Cerrar"
89
+ >
90
+ <div class="icon-wrapper">
91
+ <X
92
+ width="10"
93
+ height="10"
94
+ stroke-width="4"
95
+ class="control-icon"
96
+ />
97
+ </div>
98
+ </button>
99
+ </div>
100
+ </div>
101
+ </div>
102
+ </template>
103
+
104
+ <style scoped>
105
+ .system-titlebar {
106
+ height: 38px;
107
+ background: var(--fondo-claro, #ececec);
108
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
109
+ display: flex;
110
+ align-items: center;
111
+ position: sticky;
112
+ top: 0;
113
+ left: 0;
114
+ right: 0;
115
+ z-index: 9999;
116
+ user-select: none !important;
117
+ -webkit-user-select: none !important;
118
+ cursor: default;
119
+ font-family:
120
+ system-ui,
121
+ -apple-system,
122
+ sans-serif;
123
+ color: var(--texto-oscuro, #333333);
124
+ transition: all 0.3s ease;
125
+ }
126
+
127
+ .system-titlebar.is-dark {
128
+ background: #121212;
129
+ border-bottom: 1px solid #000;
130
+ color: var(--texto-claro, #ffffff);
131
+ }
132
+
133
+ .drag-region {
134
+ position: absolute;
135
+ inset: 0;
136
+ z-index: 1;
137
+ }
138
+
139
+ .titlebar-content {
140
+ display: flex;
141
+ justify-content: space-between;
142
+ align-items: center;
143
+ width: 100%;
144
+ height: 100%;
145
+ z-index: 2;
146
+ pointer-events: none;
147
+ }
148
+
149
+ .left-section,
150
+ .window-controls {
151
+ flex: 1;
152
+ display: flex;
153
+ align-items: center;
154
+ pointer-events: auto;
155
+ }
156
+
157
+ .left-section {
158
+ padding-left: 12px;
159
+ }
160
+
161
+ .logo {
162
+ height: 18px;
163
+ transition: filter 0.3s ease;
164
+ pointer-events: none;
165
+ }
166
+
167
+ .is-dark .logo {
168
+ filter: invert(1) brightness(2);
169
+ }
170
+
171
+ .center-section {
172
+ display: flex;
173
+ justify-content: center;
174
+ flex: 2;
175
+ pointer-events: none;
176
+ }
177
+
178
+ .app-title {
179
+ font-size: 13px;
180
+ font-weight: 600;
181
+ margin: 0;
182
+ opacity: 0.9;
183
+ color: inherit;
184
+ }
185
+
186
+ .window-controls {
187
+ justify-content: flex-end;
188
+ gap: 6px;
189
+ padding-right: 20px;
190
+ }
191
+
192
+ .control-btn {
193
+ display: flex;
194
+ align-items: center;
195
+ justify-content: center;
196
+ width: 18px;
197
+ height: 18px;
198
+ border-radius: 50%;
199
+ border: none;
200
+ cursor: pointer;
201
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
202
+ position: relative;
203
+ box-shadow:
204
+ inset 0 1px rgba(0, 0, 0, 0.1),
205
+ 0 1px rgba(255, 255, 255, 0.1);
206
+ overflow: hidden;
207
+ padding: 0;
208
+ }
209
+
210
+ .icon-wrapper {
211
+ display: flex;
212
+ align-items: center;
213
+ justify-content: center;
214
+ width: 100%;
215
+ height: 100%;
216
+ pointer-events: none;
217
+ }
218
+
219
+ /* Iconos más pequeños y sutiles */
220
+ .control-icon {
221
+ color: #fff;
222
+ opacity: 0;
223
+ transform: scale(0.5);
224
+ transition: all 0.2s ease;
225
+ }
226
+
227
+ .control-btn:hover .control-icon {
228
+ opacity: 1;
229
+ transform: scale(0.5);
230
+ }
231
+
232
+ .control-btn:active {
233
+ transform: scale(0.9);
234
+ }
235
+
236
+ .btn-minimize {
237
+ background-color: #26c6da;
238
+ }
239
+
240
+ .btn-maximize {
241
+ background-color: #0284c7;
242
+ }
243
+
244
+ .btn-close {
245
+ background-color: #ef4444;
246
+ }
247
+
248
+ .is-dark .btn-minimize {
249
+ background-color: #1a8a99;
250
+ }
251
+
252
+ .is-dark .btn-maximize {
253
+ background-color: #016294;
254
+ }
255
+
256
+ .is-dark .btn-close {
257
+ background-color: #b91c1c;
258
+ }
259
+
260
+ .btn-minimize:hover {
261
+ background-color: #4dd0e1;
262
+ }
263
+
264
+ .btn-maximize:hover {
265
+ background-color: #039be5;
266
+ }
267
+
268
+ .btn-close:hover {
269
+ background-color: #f87171;
270
+ }
271
+ </style>
@@ -14,9 +14,18 @@
14
14
  /* =============== DARK MODE via clase 'dark' en <html> =============== */
15
15
  @variant dark (&:where(.dark, .dark *));
16
16
 
17
- /* =============== TRANSICIONES GLOBALES =============== */
18
17
  body {
19
18
  transition:
20
19
  background-color 0.3s ease,
21
20
  color 0.3s ease;
22
21
  }
22
+
23
+ /* =============== OCULTAR SCROLLBAR GLOBALMENTE =============== */
24
+ ::-webkit-scrollbar {
25
+ display: none !important;
26
+ }
27
+
28
+ body {
29
+ -ms-overflow-style: none; /* Internet Explorer 10+ */
30
+ scrollbar-width: none; /* Firefox */
31
+ }
@@ -3,5 +3,5 @@
3
3
  "identifier": "default",
4
4
  "description": "Capability for the main window",
5
5
  "windows": ["main"],
6
- "permissions": ["core:default", "opener:default"]
6
+ "permissions": ["core:default", "core:window:allow-minimize", "core:window:allow-maximize", "core:window:allow-close", "core:window:allow-toggle-maximize", "opener:default", "core:window:allow-start-dragging"]
7
7
  }
@@ -14,7 +14,11 @@
14
14
  {
15
15
  "title": "tauri-material-tailwind",
16
16
  "width": 800,
17
- "height": 600
17
+ "height": 600,
18
+ "minWidth": 400,
19
+ "minHeight": 300,
20
+ "decorations": false,
21
+ "transparent": true
18
22
  }
19
23
  ],
20
24
  "security": {
@@ -12,6 +12,11 @@ dist
12
12
  dist-ssr
13
13
  *.local
14
14
 
15
+ # Tauri
16
+ src-tauri/target
17
+ src-tauri/gen
18
+ src-tauri/Cargo.lock
19
+
15
20
  # Editor directories and files
16
21
  .vscode/*
17
22
  !.vscode/extensions.json
@@ -22,3 +27,5 @@ dist-ssr
22
27
  *.njsproj
23
28
  *.sln
24
29
  *.sw?
30
+
31
+ package-lock.json