lutra 0.1.51 → 0.1.53

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.
@@ -228,6 +228,18 @@
228
228
  @property --field-icon-size { syntax: "<length>"; inherits: true; initial-value: 24px; }
229
229
  @property --field-icon-order { syntax: "<number>"; inherits: true; initial-value: 1; }
230
230
 
231
+ /**
232
+ * Checkbox and Radio
233
+ */
234
+
235
+ @property --checkbox-size { syntax: "<length>"; inherits: true; initial-value: 1.125em; }
236
+ @property --checkbox-border-radius { syntax: "<length>"; inherits: true; initial-value: 0.25em; }
237
+ @property --checkbox-background { syntax: "<color>"; inherits: true; initial-value: #ffffff; }
238
+ @property --checkbox-background-checked { syntax: "<color>"; inherits: true; initial-value: #2563eb; }
239
+ @property --checkbox-border-color { syntax: "*"; inherits: true; initial-value: #d1d5db; }
240
+ @property --checkbox-border-color-checked { syntax: "*"; inherits: true; initial-value: #2563eb; }
241
+ @property --checkbox-indicator-color { syntax: "<color>"; inherits: true; initial-value: #ffffff; }
242
+
231
243
  /**
232
244
  * Button Component
233
245
  */
@@ -171,6 +171,58 @@ input, textarea, select {
171
171
  padding-block: var(--field-padding-block);
172
172
  }
173
173
 
174
+ input[type="checkbox"],
175
+ input[type="radio"] {
176
+ width: var(--checkbox-size);
177
+ height: var(--checkbox-size);
178
+ padding: 0;
179
+ margin: 0;
180
+ border: var(--field-border-size) var(--field-border-style) var(--checkbox-border-color);
181
+ border-radius: var(--checkbox-border-radius);
182
+ background: var(--checkbox-background);
183
+ cursor: pointer;
184
+ position: relative;
185
+ flex-shrink: 0;
186
+ }
187
+
188
+ input[type="radio"] {
189
+ border-radius: 50%;
190
+ }
191
+
192
+ input[type="checkbox"]:checked,
193
+ input[type="radio"]:checked {
194
+ background: var(--checkbox-background-checked);
195
+ border-color: var(--checkbox-border-color-checked);
196
+ }
197
+
198
+ input[type="checkbox"]:checked::after {
199
+ content: "";
200
+ position: absolute;
201
+ inset: 0;
202
+ background: var(--checkbox-indicator-color);
203
+ mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L19 7'/%3E%3C/svg%3E") center / 80% no-repeat;
204
+ }
205
+
206
+ input[type="radio"]:checked::after {
207
+ content: "";
208
+ position: absolute;
209
+ inset: 25%;
210
+ background: var(--checkbox-indicator-color);
211
+ border-radius: 50%;
212
+ }
213
+
214
+ input[type="checkbox"]:focus-visible,
215
+ input[type="radio"]:focus-visible {
216
+ outline: var(--focus-ring-size) solid var(--focus-ring-color);
217
+ outline-offset: var(--focus-ring-offset);
218
+ }
219
+
220
+ input[type="checkbox"]:disabled,
221
+ input[type="radio"]:disabled {
222
+ opacity: 0.5;
223
+ cursor: not-allowed;
224
+ }
225
+
174
226
  input, textarea, select, .button, ::file-selector-button, .Field {
175
227
  transition:
176
228
  border-color var(--transition-duration-fast) var(--transition-timing-function),
@@ -170,6 +170,16 @@
170
170
  rgba(255, 255, 255, 0.35)
171
171
  );
172
172
 
173
+ /**
174
+ * Checkbox and Radio
175
+ */
176
+
177
+ --checkbox-background: var(--field-background);
178
+ --checkbox-background-checked: var(--lutra-primary-color);
179
+ --checkbox-border-color: var(--border-color);
180
+ --checkbox-border-color-checked: var(--lutra-primary-color);
181
+ --checkbox-indicator-color: light-dark(#ffffff, #ffffff);
182
+
173
183
  --field-label-color: var(--text-color-p);
174
184
 
175
185
  --form-background-actions: color-mix(in srgb, var(--theme-surface-interactive) 35%, transparent);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lutra",
3
- "version": "0.1.51",
3
+ "version": "0.1.53",
4
4
  "scripts": {
5
5
  "dev": "vite dev",
6
6
  "bump-and-publish:patch": "pnpm version:patch && pnpm build && npm publish",