quickit-ui 0.1.20 → 0.1.21
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/README.md +67 -36
- package/dist/quickit-ui.css +1 -1
- package/dist/quickit-ui.js +534 -372
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -17,13 +17,13 @@ import "quickit-ui/styles.css";
|
|
|
17
17
|
Si tu app también usa utilidades propias de Tailwind con `dark:`, declara esto en tu CSS global:
|
|
18
18
|
|
|
19
19
|
```css
|
|
20
|
-
@import "tailwindcss";
|
|
21
20
|
@import "quickit-ui/styles.css";
|
|
21
|
+
@import "tailwindcss";
|
|
22
22
|
|
|
23
23
|
@custom-variant dark (&:where(.dark, .dark *));
|
|
24
24
|
```
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
Con Tailwind 4, ese orden evita conflictos entre la hoja de estilos de Quickit y las utilidades de tu app. Además hace que tu app y Quickit reaccionen a la misma clase `dark`.
|
|
27
27
|
|
|
28
28
|
## Uso rápido
|
|
29
29
|
|
|
@@ -60,7 +60,32 @@ export default function App() {
|
|
|
60
60
|
}
|
|
61
61
|
```
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
`useQuickitTheme()` solo lee el tema efectivo actual (`light` o `dark`).
|
|
64
|
+
|
|
65
|
+
Si prefieres que Quickit gestione el toggle, la persistencia y el modo `system`, usa `QuickitThemeProvider` con `useQuickitThemeController`. No hace falta envolver además con `QuickitProvider`, porque `QuickitThemeProvider` ya lo incluye internamente.
|
|
66
|
+
|
|
67
|
+
Arranque recomendado:
|
|
68
|
+
|
|
69
|
+
```jsx
|
|
70
|
+
import { StrictMode } from "react";
|
|
71
|
+
import { createRoot } from "react-dom/client";
|
|
72
|
+
import "./index.css";
|
|
73
|
+
import App from "./App.jsx";
|
|
74
|
+
import { QuickitThemeProvider } from "quickit-ui";
|
|
75
|
+
|
|
76
|
+
createRoot(document.getElementById("root")).render(
|
|
77
|
+
<StrictMode>
|
|
78
|
+
<QuickitThemeProvider
|
|
79
|
+
defaultTheme="system"
|
|
80
|
+
storageKey="ava-quickit-theme"
|
|
81
|
+
>
|
|
82
|
+
<App />
|
|
83
|
+
</QuickitThemeProvider>
|
|
84
|
+
</StrictMode>,
|
|
85
|
+
);
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Controlador persistente:
|
|
64
89
|
|
|
65
90
|
```jsx
|
|
66
91
|
import "quickit-ui/styles.css";
|
|
@@ -104,12 +129,51 @@ export default function App() {
|
|
|
104
129
|
}
|
|
105
130
|
```
|
|
106
131
|
|
|
132
|
+
Patrón real con `Switch`:
|
|
133
|
+
|
|
134
|
+
```jsx
|
|
135
|
+
import {
|
|
136
|
+
QuickitThemeProvider,
|
|
137
|
+
Switch,
|
|
138
|
+
Tooltip,
|
|
139
|
+
useQuickitThemeController,
|
|
140
|
+
} from "quickit-ui";
|
|
141
|
+
|
|
142
|
+
function ToggleTheme() {
|
|
143
|
+
const { resolvedTheme, toggleTheme } = useQuickitThemeController();
|
|
144
|
+
|
|
145
|
+
return (
|
|
146
|
+
<Tooltip content={`Alternar tema (actual: ${resolvedTheme})`}>
|
|
147
|
+
<Switch
|
|
148
|
+
color="brand"
|
|
149
|
+
size="md"
|
|
150
|
+
checked={resolvedTheme === "dark"}
|
|
151
|
+
onCheckedChange={() => toggleTheme()}
|
|
152
|
+
/>
|
|
153
|
+
</Tooltip>
|
|
154
|
+
);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
export function App() {
|
|
158
|
+
return (
|
|
159
|
+
<QuickitThemeProvider
|
|
160
|
+
defaultTheme="system"
|
|
161
|
+
storageKey="ava-quickit-theme"
|
|
162
|
+
>
|
|
163
|
+
<ToggleTheme />
|
|
164
|
+
</QuickitThemeProvider>
|
|
165
|
+
);
|
|
166
|
+
}
|
|
167
|
+
```
|
|
168
|
+
|
|
107
169
|
Notas:
|
|
108
170
|
|
|
109
171
|
- el storage key por defecto es `quickit-ui-theme`
|
|
110
172
|
- `defaultTheme` ahora soporta `system | light | dark`
|
|
111
173
|
- `QuickitThemeProvider` aplica la clase `dark` sobre `document.documentElement`
|
|
174
|
+
- `QuickitThemeProvider` ya envuelve a `QuickitProvider`
|
|
112
175
|
- puedes sobrescribir el storage key con `storageKey`
|
|
176
|
+
- `useQuickitTheme()` solo lee el tema resuelto actual
|
|
113
177
|
- `useQuickitThemeController()` expone `theme`, `resolvedTheme`, `systemTheme`, `setTheme` y `toggleTheme`
|
|
114
178
|
- `theme` es la preferencia persistida; `resolvedTheme` es el modo que Quickit está aplicando realmente
|
|
115
179
|
- si usas clases propias como `dark:bg-zinc-950`, añade `@custom-variant dark (&:where(.dark, .dark *));` a tu CSS global
|
|
@@ -135,39 +199,6 @@ function Shell() {
|
|
|
135
199
|
}
|
|
136
200
|
```
|
|
137
201
|
|
|
138
|
-
Patrón con `Switch`:
|
|
139
|
-
|
|
140
|
-
```jsx
|
|
141
|
-
import {
|
|
142
|
-
QuickitThemeProvider,
|
|
143
|
-
Switch,
|
|
144
|
-
Tooltip,
|
|
145
|
-
useQuickitThemeController,
|
|
146
|
-
} from "quickit-ui";
|
|
147
|
-
|
|
148
|
-
function ToggleTheme() {
|
|
149
|
-
const { resolvedTheme, theme, toggleTheme } = useQuickitThemeController();
|
|
150
|
-
|
|
151
|
-
return (
|
|
152
|
-
<Tooltip content="Alternar tema">
|
|
153
|
-
<Switch
|
|
154
|
-
color="brand"
|
|
155
|
-
checked={resolvedTheme === "dark"}
|
|
156
|
-
onCheckedChange={toggleTheme}
|
|
157
|
-
/>
|
|
158
|
-
</Tooltip>
|
|
159
|
-
);
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
export function App() {
|
|
163
|
-
return (
|
|
164
|
-
<QuickitThemeProvider storageKey="ava-quickit-theme">
|
|
165
|
-
<ToggleTheme />
|
|
166
|
-
</QuickitThemeProvider>
|
|
167
|
-
);
|
|
168
|
-
}
|
|
169
|
-
```
|
|
170
|
-
|
|
171
202
|
También puedes controlar el focus ring y el efecto de presión globalmente desde el provider:
|
|
172
203
|
|
|
173
204
|
```jsx
|