css-zero 2.0.3 → 2.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 (35) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/css-zero/animations.css +0 -2
  3. data/app/assets/stylesheets/css-zero/borders.css +0 -4
  4. data/app/assets/stylesheets/css-zero/effects.css +0 -4
  5. data/app/assets/stylesheets/css-zero/filters.css +0 -6
  6. data/app/assets/stylesheets/css-zero/reset.css +0 -20
  7. data/app/assets/stylesheets/css-zero/transforms.css +0 -6
  8. data/app/assets/stylesheets/css-zero/transitions.css +2 -8
  9. data/app/assets/stylesheets/css-zero/typography.css +0 -10
  10. data/lib/css_zero/version.rb +1 -1
  11. data/lib/generators/css_zero/add/resources.yml +11 -7
  12. data/lib/generators/css_zero/add/templates/app/assets/images/circle-alert.svg +1 -0
  13. data/lib/generators/css_zero/add/templates/app/assets/images/circle-check.svg +1 -0
  14. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/alert.css +2 -6
  15. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/card.css +10 -3
  16. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/{range.css → dual_range.css} +3 -9
  17. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/flash.css +17 -12
  18. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/icons.css +2 -0
  19. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/input.css +28 -30
  20. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/trix.css +11 -19
  21. data/lib/generators/css_zero/add/templates/app/javascript/controllers/carousel_controller.js +2 -10
  22. data/lib/generators/css_zero/add/templates/app/javascript/controllers/command_controller.js +1 -1
  23. data/lib/generators/css_zero/add/templates/app/javascript/controllers/dropzone_controller.js +1 -1
  24. data/lib/generators/css_zero/add/templates/app/javascript/controllers/dual_range_controller.js +1 -1
  25. data/lib/generators/css_zero/add/templates/app/javascript/controllers/{element_removal_controller.js → flash_controller.js} +5 -1
  26. data/lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js +1 -1
  27. data/lib/generators/css_zero/add/templates/app/javascript/controllers/menu_controller.js +2 -2
  28. data/lib/generators/css_zero/add/templates/app/javascript/controllers/popover_controller.js +1 -1
  29. data/lib/generators/css_zero/install/templates/app/assets/stylesheets/base.css +1 -0
  30. data/lib/generators/css_zero/install/templates/app/views/layouts/application.html.erb +3 -1
  31. data/lib/generators/css_zero/scaffold/templates/_form.html.erb.tt +0 -3
  32. metadata +10 -8
  33. /data/lib/generators/css_zero/add/templates/app/assets/stylesheets/{input-clearable.css → input_clearable.css} +0 -0
  34. /data/lib/generators/css_zero/add/templates/app/assets/stylesheets/{input-copyable.css → input_copyable.css} +0 -0
  35. /data/lib/generators/css_zero/add/templates/app/assets/stylesheets/{input-revealable.css → input_revealable.css} +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fa9ca9000edaf107ed438323c5fdefddeea838a1b36efa39e9a2a029812c68cb
4
- data.tar.gz: 752434ab79f9206188ceb2a8e84f1937f97e4208a6dedf9fd5b2d76850055f98
3
+ metadata.gz: ba076b01778c263d9cf62556c9f7494f53243b746f5e738c29b1c20785182b15
4
+ data.tar.gz: 184b90dbddd76008ccddc39cfa0a7e41a284b754eb1cd49504e299778c5aa7ab
5
5
  SHA512:
6
- metadata.gz: 5d7e99672500e6b4c191d0dac69b333826932965b649d6ea14b4e9c5f7aed832a6ceccaef16d24d07ac86c2fd95627b5eff3ee3bc12b24ec07b849004a43513f
7
- data.tar.gz: 9fd690f5c8b8a8be0623cf004f042c2f337302e023811735de343c37c36fe835af5a4473106928975baf42ac770d9253192d186a79a3b179d0b9ad4f088183fd
6
+ metadata.gz: 5913f936fc9ecf8ec9573208cedffbd4f4a8226c9e2cfb3b28d6e61de907543c7ebb33c50c5f74555e8ba7dbfdd027e761b442814cd6f392e967f4bfe7bb8bf6
7
+ data.tar.gz: f98fe8b6e467db9410abf616563962cb728c48f3362568a37120c4ee5664511e8e30265be840e91885c593bfb633da16b070e9e546c5eaa6160b1336e1c72367
@@ -1,6 +1,4 @@
1
1
  /****************************************************************
2
- * Animation
3
- * Variables for animating elements with CSS animations.
4
2
  * animation: var(--animate-fade-in) forwards;
5
3
  *****************************************************************/
6
4
 
@@ -1,7 +1,5 @@
1
1
  :root {
2
2
  /****************************************************************
3
- * Border Width
4
- * Variables for controlling the width of an element's borders.
5
3
  * border-width: var(--border);
6
4
  *****************************************************************/
7
5
  --border: 1px;
@@ -10,8 +8,6 @@
10
8
  --border-8: 8px;
11
9
 
12
10
  /****************************************************************
13
- * Border Radius
14
- * Variables for controlling the border radius of an element.
15
11
  * border-radius: var(--rounded-sm);
16
12
  *****************************************************************/
17
13
  --rounded-xs: 0.125rem; /* 2px */
@@ -1,7 +1,5 @@
1
1
  :root {
2
2
  /****************************************************************
3
- * Box Shadow
4
- * Variables for controlling the box shadow of an element.
5
3
  * box-shadow: var(--shadow-sm);
6
4
  ****************************************************************/
7
5
  --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05);
@@ -13,8 +11,6 @@
13
11
  --shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);
14
12
 
15
13
  /****************************************************************
16
- * Opacity
17
- * Variables for controlling the opacity of an element.
18
14
  * opacity: var(--opacity-25);
19
15
  ****************************************************************/
20
16
  --opacity-5: 0.05;
@@ -1,7 +1,5 @@
1
1
  :root {
2
2
  /****************************************************************
3
- * Blur
4
- * Variables for applying blur filters to an element.
5
3
  * filter|backdrop-filter: var(--blur-sm);
6
4
  *****************************************************************/
7
5
  --blur-none: blur(0);
@@ -14,8 +12,6 @@
14
12
  --blur-3xl: blur(64px);
15
13
 
16
14
  /****************************************************************
17
- * Brightness
18
- * Variables for applying brightness filters to an element.
19
15
  * filter|backdrop-filter: var(--brightness-50);
20
16
  *****************************************************************/
21
17
  --brightness-0: brightness(0);
@@ -31,8 +27,6 @@
31
27
  --brightness-200: brightness(2);
32
28
 
33
29
  /****************************************************************
34
- * Contrast
35
- * Variables for applying contrast filters to an element.
36
30
  * filter|backdrop-filter: var(--contrast-50);
37
31
  *****************************************************************/
38
32
  --contrast-0: contrast(0);
@@ -426,23 +426,3 @@ turbo-frame {
426
426
  html:has(dialog:modal[open]) {
427
427
  overflow: hidden;
428
428
  }
429
-
430
- /*
431
- Remove all animations and transitions for people that prefer not to see them
432
- */
433
-
434
- @media (prefers-reduced-motion: reduce) {
435
- *,
436
- *::before,
437
- *::after,
438
- *::backdrop {
439
- animation-duration: 0.01ms !important;
440
- animation-iteration-count: 1 !important;
441
- transition-duration: 0.01ms !important;
442
- scroll-behavior: auto !important;
443
- }
444
-
445
- html {
446
- scroll-behavior: initial;
447
- }
448
- }
@@ -1,7 +1,5 @@
1
1
  :root {
2
2
  /****************************************************************
3
- * Scale
4
- * Variables for scaling elements with transform.
5
3
  * transform: var(--scale-100);
6
4
  *****************************************************************/
7
5
  --scale-50: scale(0.50);
@@ -15,8 +13,6 @@
15
13
  --scale-150: scale(1.50);
16
14
 
17
15
  /****************************************************************
18
- * Rotate
19
- * Variables for rotating elements with transform.
20
16
  * transform: var(--rotate-45);
21
17
  *****************************************************************/
22
18
  --rotate-0: rotate(0deg);
@@ -30,8 +26,6 @@
30
26
  --rotate-180: rotate(180deg);
31
27
 
32
28
  /****************************************************************
33
- * Skew
34
- * Varibles for skewing elements with transform.
35
29
  * transform: var(--skew-x-3);
36
30
  *****************************************************************/
37
31
  --skew-x-0: skewX(0deg);
@@ -1,16 +1,12 @@
1
1
  :root {
2
2
  /****************************************************************
3
- * Transition Property
4
- * Variables for controlling which CSS properties transition.
5
3
  * transition-property: var(--transition);
6
4
  *****************************************************************/
7
- --transition: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, translate, scale, rotate, filter, backdrop-filter;
8
- --transition-colors: color, background-color, border-color, text-decoration-color, fill, stroke;
5
+ --transition: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, translate, scale, rotate, filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
6
+ --transition-colors: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke;
9
7
  --transition-transform: transform, translate, scale, rotate;
10
8
 
11
9
  /****************************************************************
12
- * Transition Timing
13
- * Variables for controlling the timing of CSS transitions.
14
10
  * transition-duration|transition-delay: var(--time-75);
15
11
  *****************************************************************/
16
12
  --time-75: 75ms;
@@ -23,8 +19,6 @@
23
19
  --time-1000: 1000ms;
24
20
 
25
21
  /****************************************************************
26
- * Transition Timing Function
27
- * Variables for controlling the easing of CSS transitions.
28
22
  * transition-timing-function: var(--ease-3);
29
23
  *****************************************************************/
30
24
  --ease-1: cubic-bezier(.25, 0, .5, 1);
@@ -1,7 +1,5 @@
1
1
  :root {
2
2
  /****************************************************************
3
- * Font Size
4
- * Variables for controlling the font size of an element.
5
3
  * font-size: var(--text-xs);
6
4
  *****************************************************************/
7
5
  --text-xs: 0.75rem; /* 12px */
@@ -31,8 +29,6 @@
31
29
  --text-fluid-7xl: clamp(4.5rem, 2.91rem + 7.95vw, 8rem); /* 72px..128px */
32
30
 
33
31
  /****************************************************************
34
- * Font Weight
35
- * Variables for controlling the font weight of an element.
36
32
  * font-weight: var(--font-hairline);
37
33
  *****************************************************************/
38
34
  --font-thin: 100;
@@ -46,8 +42,6 @@
46
42
  --font-black: 900;
47
43
 
48
44
  /****************************************************************
49
- * Line Height
50
- * Variables for controlling the leading (line height) of an element.
51
45
  * line-height: var(--leading-tight);
52
46
  *****************************************************************/
53
47
  --leading-none: 1;
@@ -66,8 +60,6 @@
66
60
  --leading-10: 2.5rem; /* 40px */
67
61
 
68
62
  /****************************************************************
69
- * Font Family (https://modernfontstacks.com)
70
- * Variables for controlling the font family of an element.
71
63
  * font-family: var(--font-sans);
72
64
  *****************************************************************/
73
65
  --font-system-ui: system-ui, sans-serif;
@@ -87,8 +79,6 @@
87
79
  --font-handwritten: Segoe Print, Bradley Hand, Chilanka, TSCu_Comic, casual, cursive;
88
80
 
89
81
  /****************************************************************
90
- * Letter Spacing
91
- * Variables for controlling the tracking (letter spacing) of an element.
92
82
  * letter-spacing: var(--tracking-tighter);
93
83
  *****************************************************************/
94
84
  --tracking-tighter: -0.05em;
@@ -1,3 +1,3 @@
1
1
  module CssZero
2
- VERSION = "2.0.3"
2
+ VERSION = "2.1.0"
3
3
  end
@@ -3,6 +3,8 @@ accordion:
3
3
  - app/assets/images/chevron-down.svg
4
4
  alert:
5
5
  - app/assets/stylesheets/alert.css
6
+ - app/assets/images/circle-alert.svg
7
+ - app/assets/images/circle-check.svg
6
8
  autoanimate:
7
9
  - app/assets/stylesheets/autoanimate.css
8
10
  autosave:
@@ -60,9 +62,12 @@ dropdown:
60
62
  dropzone:
61
63
  - app/assets/stylesheets/dropzone.css
62
64
  - app/javascript/controllers/dropzone_controller.js
65
+ dual_range:
66
+ - app/assets/stylesheets/dual_range.css
67
+ - app/javascript/controllers/dual_range_controller.js
63
68
  flash:
64
69
  - app/assets/stylesheets/flash.css
65
- - app/javascript/controllers/element_removal_controller.js
70
+ - app/javascript/controllers/flash_controller.js
66
71
  form:
67
72
  - app/javascript/controllers/form_controller.js
68
73
  fullscreen:
@@ -90,18 +95,20 @@ icons:
90
95
  - app/assets/images/minus.svg
91
96
  - app/assets/images/sun.svg
92
97
  - app/assets/images/moon.svg
98
+ - app/assets/images/circle-alert.svg
99
+ - app/assets/images/circle-check.svg
93
100
  input:
94
101
  - app/assets/stylesheets/input.css
95
102
  - app/assets/images/chevron-down-zinc-500.svg
96
103
  input_clearable:
97
104
  - app/javascript/controllers/input_clearable_controller.js
98
- - app/assets/stylesheets/input-clearable.css
105
+ - app/assets/stylesheets/input_clearable.css
99
106
  input_copyable:
100
107
  - app/javascript/controllers/input_copyable_controller.js
101
- - app/assets/stylesheets/input-copyable.css
108
+ - app/assets/stylesheets/input_copyable.css
102
109
  input_revealable:
103
110
  - app/javascript/controllers/input_revealable_controller.js
104
- - app/assets/stylesheets/input-revealable.css
111
+ - app/assets/stylesheets/input_revealable.css
105
112
  inputmask:
106
113
  - app/javascript/controllers/inputmask_controller.js
107
114
  layouts:
@@ -121,9 +128,6 @@ progress:
121
128
  - app/assets/stylesheets/progress.css
122
129
  prose:
123
130
  - app/assets/stylesheets/prose.css
124
- range:
125
- - app/assets/stylesheets/range.css
126
- - app/javascript/controllers/dual_range_controller.js
127
131
  resizable:
128
132
  - app/assets/stylesheets/resizable.css
129
133
  - app/assets/stylesheets/resizable_controller.js
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-alert-icon lucide-circle-alert"><circle cx="12" cy="12" r="10"/><line x1="12" x2="12" y1="8" y2="12"/><line x1="12" x2="12.01" y1="16" y2="16"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-check-icon lucide-circle-check"><circle cx="12" cy="12" r="10"/><path d="m9 12 2 2 4-4"/></svg>
@@ -9,13 +9,9 @@
9
9
  }
10
10
 
11
11
  .alert--positive {
12
- --alert-background: var(--color-positive);
13
- --alert-border-color: transparent;
14
- --alert-color: white;
12
+ --alert-color: light-dark(var(--green-600), var(--green-400));
15
13
  }
16
14
 
17
15
  .alert--negative {
18
- --alert-background: var(--color-negative);
19
- --alert-border-color: transparent;
20
- --alert-color: white;
16
+ --alert-color: light-dark(var(--red-600), var(--red-400));
21
17
  }
@@ -19,7 +19,14 @@
19
19
  }
20
20
  }
21
21
 
22
- .card--selectable:has(:checked) {
23
- background-color: rgb(from var(--color-border-light) r g b / .5);
24
- border-color: var(--color-border-dark);
22
+ .card-check {
23
+ background-color: var(--color-surface);
24
+ border-radius: var(--rounded-xl);
25
+ border-width: var(--border);
26
+ padding: var(--size-3);
27
+
28
+ &:has(:checked) {
29
+ background-color: rgb(from var(--color-border-light) r g b / .5);
30
+ border-color: var(--color-border-dark);
31
+ }
25
32
  }
@@ -1,4 +1,4 @@
1
- @import url("https://esm.sh/@stanko/dual-range-input@1.0.0/dist/index.css");
1
+ @import url("https://esm.sh/@stanko/dual-range-input@1.0.1/dist/index.css");
2
2
 
3
3
  .dual-range-input {
4
4
  --dri-height: 1rem;
@@ -16,12 +16,6 @@
16
16
  --dri-track-border-radius: 1rem;
17
17
  --dri-track-color: var(--color-border);
18
18
  --dri-track-filled-color: var(--color-primary);
19
- }
20
-
21
- .range {
22
- accent-color: var(--color-primary);
23
- }
24
-
25
- .range:focus-visible {
26
- outline: var(--input-outline-size, 2px) solid var(--color-selected-dark);
19
+ --dri-track-filled-gradient-mid-color: var(--dri-track-filled-color);
20
+ --dri-track-filled-gradient-end-color: var(--dri-track-filled-color);
27
21
  }
@@ -1,33 +1,38 @@
1
1
  .flash {
2
- align-items: center;
3
2
  animation: appear-then-fade 4s 300ms both;
4
3
  background-color: var(--flash-background, var(--color-text));
5
4
  border-radius: var(--rounded-full);
6
5
  color: var(--flash-color, var(--color-text-reversed));
6
+ margin-block-start: var(--flash-position, var(--size-5));
7
+ margin-inline: auto;
8
+
9
+ &:is(:hover, :focus-within) {
10
+ animation-play-state: paused;
11
+ }
12
+
13
+ [data-turbo-preview] & {
14
+ display: none;
15
+ }
16
+ }
17
+
18
+ .flash__content {
19
+ align-items: center;
7
20
  column-gap: var(--size-2);
8
- display: inline-flex;
21
+ display: flex;
9
22
  font-size: var(--text-fluid-base);
10
23
  justify-content: center;
11
24
  line-height: var(--leading-none);
12
- margin-block-start: var(--flash-position, var(--size-5));
13
- margin-inline: auto;
14
25
  min-block-size: var(--size-11);
15
26
  padding: var(--size-1) var(--size-4);
16
27
  text-align: center;
17
-
18
- [data-turbo-preview] & {
19
- display: none;
20
- }
21
28
  }
22
29
 
23
30
  .flash--positive {
24
- --flash-background: var(--color-positive);
25
- --flash-color: white;
31
+ --flash-color: light-dark(var(--green-400), var(--green-600));
26
32
  }
27
33
 
28
34
  .flash--negative {
29
- --flash-background: var(--color-negative);
30
- --flash-color: white;
35
+ --flash-color: light-dark(var(--red-400), var(--red-600));
31
36
  }
32
37
 
33
38
  .flash--extended {
@@ -39,3 +39,5 @@ img.icon {
39
39
  .icon--minus { --svg: url("minus.svg"); }
40
40
  .icon--sun { --svg: url("sun.svg"); }
41
41
  .icon--moon { --svg: url("moon.svg"); }
42
+ .icon--circle-alert { --svg: url("circle-alert.svg"); }
43
+ .icon--circle-check { --svg: url("circle-check.svg"); }
@@ -1,16 +1,24 @@
1
- .input {
2
- appearance: none;
3
- background-color: var(--input-background, var(--color-surface));
4
- block-size: var(--input-block-size, auto);
5
- border: 1px solid var(--input-border-color, var(--color-border));
6
- border-radius: var(--input-radius, var(--rounded-md));
7
- box-shadow: var(--input-box-shadow, var(--shadow-xs));
8
- font-size: var(--input-font-size, var(--text-sm));
9
- inline-size: var(--input-inline-size, var(--size-full));
10
- padding: var(--input-padding, .375rem .75rem);
1
+ :where(.input) {
2
+ &:not([type="checkbox"], [type="radio"], [type="range"]) {
3
+ appearance: none;
4
+ background-color: var(--input-background, var(--color-surface));
5
+ block-size: var(--input-block-size, auto);
6
+ border: 1px solid var(--input-border-color, var(--color-border));
7
+ border-radius: var(--input-radius, var(--rounded-md));
8
+ box-shadow: var(--input-box-shadow, var(--shadow-xs));
9
+ font-size: var(--input-font-size, var(--text-sm));
10
+ inline-size: var(--input-inline-size, var(--size-full));
11
+ padding: var(--input-padding, .375rem .75rem);
12
+ }
11
13
 
12
- option {
13
- padding: revert;
14
+ &:is([type="checkbox"], [type="radio"]) {
15
+ accent-color: var(--input-accent-color, var(--color-primary));
16
+ block-size: var(--input-check-size, var(--size-4));
17
+ inline-size: var(--input-check-size, var(--size-4));
18
+ }
19
+
20
+ &:is([type="range"]) {
21
+ accent-color: var(--input-accent-color, var(--color-primary));
14
22
  }
15
23
 
16
24
  &:is(textarea[rows="auto"]) {
@@ -26,6 +34,10 @@
26
34
  background-size: var(--size-4) auto;
27
35
  }
28
36
 
37
+ > option {
38
+ padding: revert;
39
+ }
40
+
29
41
  &::file-selector-button {
30
42
  font-weight: var(--font-medium);
31
43
  }
@@ -35,7 +47,7 @@
35
47
  }
36
48
 
37
49
  &:user-invalid + .invalid-feedback {
38
- display: flex;
50
+ display: block;
39
51
  }
40
52
 
41
53
  &:focus-visible {
@@ -43,21 +55,7 @@
43
55
  }
44
56
 
45
57
  &:disabled {
46
- cursor: not-allowed;
47
- opacity: var(--opacity-50);
48
- }
49
-
50
- .field_with_errors & {
51
- border-color: var(--color-negative);
52
- }
53
- }
54
-
55
- :is(.checkbox, .radio) {
56
- accent-color: var(--color-primary);
57
- transform: scale(1.2);
58
-
59
- &:focus-visible {
60
- outline: var(--input-outline-size, 2px) solid var(--color-selected-dark);
58
+ cursor: not-allowed; opacity: var(--opacity-50);
61
59
  }
62
60
 
63
61
  .field_with_errors & {
@@ -66,8 +64,8 @@
66
64
  }
67
65
 
68
66
  .input--actor {
69
- input {
70
- border: 0; inline-size: 100%; outline: 0;
67
+ > input {
68
+ inline-size: 100%; outline: 0;
71
69
  }
72
70
 
73
71
  &:focus-within {
@@ -29,10 +29,10 @@ trix-toolbar {
29
29
  position: sticky;
30
30
 
31
31
  .trix-button-row {
32
- background-color: var(--color-bg);
32
+ background-color: white;
33
33
  border-block-width: 1px;
34
34
  column-gap: 1px;
35
- padding-block: var(--size-1_5);
35
+ padding: var(--size-1_5) var(--size-1);
36
36
  }
37
37
 
38
38
  .trix-button-group {
@@ -42,13 +42,13 @@ trix-toolbar {
42
42
  }
43
43
 
44
44
  .trix-button {
45
- background-color: var(--color-bg);
45
+ background-color: transparent;
46
46
  border: 0 !important;
47
47
  border-radius: var(--rounded-md);
48
- color: var(--color-text);
48
+ color: var(--color-text-reversed);
49
49
 
50
50
  &.trix-active {
51
- background-color: var(--color-border-light);
51
+ background-color: gainsboro;
52
52
  }
53
53
 
54
54
  &.trix-button--icon::before {
@@ -58,22 +58,10 @@ trix-toolbar {
58
58
  &.trix-button--icon:disabled::before {
59
59
  opacity: 0.125;
60
60
  }
61
-
62
- [data-color-scheme="light"] & {
63
- &.trix-button--icon::before { filter: invert(0); }
64
- }
65
-
66
- [data-color-scheme="dark"] & {
67
- &.trix-button--icon::before { filter: invert(1); }
68
- }
69
-
70
- @media (prefers-color-scheme: dark) {
71
- &.trix-button--icon::before { filter: invert(1); }
72
- }
73
61
  }
74
62
 
75
63
  .trix-dialog {
76
- background-color: var(--color-border-light);
64
+ background-color: var(--color-bg);
77
65
  border: 1px solid var(--color-border);
78
66
  border-radius: var(--rounded-md);
79
67
  margin: var(--size-1);
@@ -82,7 +70,7 @@ trix-toolbar {
82
70
 
83
71
  .trix-input--dialog {
84
72
  border-color: var(--color-border);
85
- background-color: var(--color-bg);
73
+ background-color: var(--color-surface);
86
74
  margin: 0;
87
75
  }
88
76
 
@@ -92,6 +80,10 @@ trix-toolbar {
92
80
  color: var(--color-text-reversed);
93
81
  }
94
82
 
83
+ [data-trix-dialog] [data-trix-validate]:invalid {
84
+ background-color: rgb(from var(--color-negative) r g b / .2);
85
+ }
86
+
95
87
  @media (max-width: 48rem) {
96
88
  .trix-button-group--history-tools { display: none; }
97
89
  }
@@ -4,18 +4,10 @@ export default class extends Controller {
4
4
  static targets = [ "content" ]
5
5
 
6
6
  next() {
7
- this.contentTarget.scrollTo({ left: this.#scrollLeft + this.#itemWidth })
7
+ this.contentTarget.scrollBy(100, 0)
8
8
  }
9
9
 
10
10
  prev() {
11
- this.contentTarget.scrollTo({ left: this.#scrollLeft - this.#itemWidth })
12
- }
13
-
14
- get #scrollLeft() {
15
- return this.contentTarget.scrollLeft
16
- }
17
-
18
- get #itemWidth() {
19
- return this.contentTarget.firstElementChild?.offsetWidth || 0
11
+ this.contentTarget.scrollBy(-100, 0)
20
12
  }
21
13
  }
@@ -11,7 +11,7 @@ export default class extends Controller {
11
11
  }
12
12
 
13
13
  connect() {
14
- this.combobox = new Combobox(this.inputTarget, this.listTarget, { firstOptionSelectionMode: "selected" })
14
+ this.combobox = new Combobox(this.inputTarget, this.listTarget)
15
15
  this.combobox.start()
16
16
  }
17
17
 
@@ -1,5 +1,5 @@
1
1
  import { Controller } from "@hotwired/stimulus"
2
- import { DirectUpload } from "https://esm.sh/@rails/activestorage@8.0.200?standalone"
2
+ import { DirectUpload } from "https://esm.sh/@rails/activestorage@8.0.300?standalone"
3
3
  import Dropzone from "https://esm.sh/dropzone@6.0.0-beta.2?standalone"
4
4
 
5
5
  export default class extends Controller {
@@ -1,5 +1,5 @@
1
1
  import { Controller } from "@hotwired/stimulus"
2
- import DualRangeInput from "https://esm.sh/@stanko/dual-range-input@1.0.0?standalone"
2
+ import DualRangeInput from "https://esm.sh/@stanko/dual-range-input@1.0.1?standalone"
3
3
 
4
4
  export default class extends Controller {
5
5
  static targets = [ "min", "max" ]
@@ -1,7 +1,11 @@
1
1
  import { Controller } from "@hotwired/stimulus"
2
2
 
3
3
  export default class extends Controller {
4
+ connect() {
5
+ this.element.showPopover()
6
+ }
7
+
4
8
  remove() {
5
- this.element.remove()
9
+ this.element.hidePopover()
6
10
  }
7
11
  }
@@ -1,5 +1,5 @@
1
1
  import { Controller } from "@hotwired/stimulus"
2
- import { MaskInput } from "https://esm.sh/maska@3.1.1?standalone"
2
+ import { MaskInput } from "https://esm.sh/maska@3.2.0?standalone"
3
3
 
4
4
  export default class extends Controller {
5
5
  connect() {
@@ -83,7 +83,7 @@ export default class extends Controller {
83
83
 
84
84
  #update() {
85
85
  this.#updateTabstops()
86
- this.#focusCurrentItem()
86
+ this.#focusItemAtIndex()
87
87
  }
88
88
 
89
89
  #updateTabstops() {
@@ -92,7 +92,7 @@ export default class extends Controller {
92
92
  })
93
93
  }
94
94
 
95
- #focusCurrentItem() {
95
+ #focusItemAtIndex() {
96
96
  this.itemTargets[this.indexValue].focus()
97
97
  }
98
98
 
@@ -1,5 +1,5 @@
1
1
  import { Controller } from "@hotwired/stimulus"
2
- import { computePosition, flip, shift, offset, autoUpdate } from "https://esm.sh/@floating-ui/dom@1.7.2?standalone"
2
+ import { computePosition, flip, shift, offset, autoUpdate } from "https://esm.sh/@floating-ui/dom@1.7.4?standalone"
3
3
 
4
4
  export default class extends Controller {
5
5
  static targets = [ "trigger", "content" ]
@@ -42,4 +42,5 @@ body {
42
42
 
43
43
  ::selection {
44
44
  background-color: var(--color-selected);
45
+ color: var(--color-text);
45
46
  }
@@ -38,7 +38,9 @@
38
38
 
39
39
  <main id="main">
40
40
  <%% if notice.present? %>
41
- <%%= tag.div notice, popover: "manual", class: "flash", style: "--flash-position: 5rem", data: { controller: "element-removal", action: "animationend->element-removal#remove", role: "alert" } %>
41
+ <div popover="manual" class="flash" style="--flash-position: 5rem" data-controller="flash" data-action="animationend->flash#hide" role="alert">
42
+ <div class="flash__content"><%%= notice %></div>
43
+ </div>
42
44
  <%% end %>
43
45
  <div class="container">
44
46
  <%%= yield %>
@@ -24,9 +24,6 @@
24
24
  <% elsif attribute.attachments? -%>
25
25
  <%%= form.label :<%= attribute.column_name %>, class: "text-sm font-medium leading-none" %>
26
26
  <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, multiple: true, class: "input" %>
27
- <% elsif attribute.field_type == :checkbox -%>
28
- <%%= form.label :<%= attribute.column_name %>, class: "text-sm font-medium leading-none" %>
29
- <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, class: "checkbox" %>
30
27
  <% else -%>
31
28
  <%%= form.label :<%= attribute.column_name %>, class: "text-sm font-medium leading-none" %>
32
29
  <%%= form.<%= attribute.field_type %> :<%= attribute.column_name %>, class: "input" %>
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: css-zero
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.3
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lázaro Nixon
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-08-08 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies: []
12
12
  email: lazaronixon@hotmail.com
13
13
  executables: []
@@ -41,6 +41,8 @@ files:
41
41
  - lib/generators/css_zero/add/templates/app/assets/images/chevron-left.svg
42
42
  - lib/generators/css_zero/add/templates/app/assets/images/chevron-right.svg
43
43
  - lib/generators/css_zero/add/templates/app/assets/images/chevrons-up-down.svg
44
+ - lib/generators/css_zero/add/templates/app/assets/images/circle-alert.svg
45
+ - lib/generators/css_zero/add/templates/app/assets/images/circle-check.svg
44
46
  - lib/generators/css_zero/add/templates/app/assets/images/copy.svg
45
47
  - lib/generators/css_zero/add/templates/app/assets/images/download.svg
46
48
  - lib/generators/css_zero/add/templates/app/assets/images/ellipsis.svg
@@ -71,20 +73,20 @@ files:
71
73
  - lib/generators/css_zero/add/templates/app/assets/stylesheets/datepicker.css
72
74
  - lib/generators/css_zero/add/templates/app/assets/stylesheets/dialog.css
73
75
  - lib/generators/css_zero/add/templates/app/assets/stylesheets/dropzone.css
76
+ - lib/generators/css_zero/add/templates/app/assets/stylesheets/dual_range.css
74
77
  - lib/generators/css_zero/add/templates/app/assets/stylesheets/flash.css
75
78
  - lib/generators/css_zero/add/templates/app/assets/stylesheets/group.css
76
79
  - lib/generators/css_zero/add/templates/app/assets/stylesheets/icons.css
77
- - lib/generators/css_zero/add/templates/app/assets/stylesheets/input-clearable.css
78
- - lib/generators/css_zero/add/templates/app/assets/stylesheets/input-copyable.css
79
- - lib/generators/css_zero/add/templates/app/assets/stylesheets/input-revealable.css
80
80
  - lib/generators/css_zero/add/templates/app/assets/stylesheets/input.css
81
+ - lib/generators/css_zero/add/templates/app/assets/stylesheets/input_clearable.css
82
+ - lib/generators/css_zero/add/templates/app/assets/stylesheets/input_copyable.css
83
+ - lib/generators/css_zero/add/templates/app/assets/stylesheets/input_revealable.css
81
84
  - lib/generators/css_zero/add/templates/app/assets/stylesheets/layouts.css
82
85
  - lib/generators/css_zero/add/templates/app/assets/stylesheets/lightbox.css
83
86
  - lib/generators/css_zero/add/templates/app/assets/stylesheets/menu.css
84
87
  - lib/generators/css_zero/add/templates/app/assets/stylesheets/popover.css
85
88
  - lib/generators/css_zero/add/templates/app/assets/stylesheets/progress.css
86
89
  - lib/generators/css_zero/add/templates/app/assets/stylesheets/prose.css
87
- - lib/generators/css_zero/add/templates/app/assets/stylesheets/range.css
88
90
  - lib/generators/css_zero/add/templates/app/assets/stylesheets/resizable.css
89
91
  - lib/generators/css_zero/add/templates/app/assets/stylesheets/sheet.css
90
92
  - lib/generators/css_zero/add/templates/app/assets/stylesheets/sidebar_menu.css
@@ -109,7 +111,7 @@ files:
109
111
  - lib/generators/css_zero/add/templates/app/javascript/controllers/dialog_controller.js
110
112
  - lib/generators/css_zero/add/templates/app/javascript/controllers/dropzone_controller.js
111
113
  - lib/generators/css_zero/add/templates/app/javascript/controllers/dual_range_controller.js
112
- - lib/generators/css_zero/add/templates/app/javascript/controllers/element_removal_controller.js
114
+ - lib/generators/css_zero/add/templates/app/javascript/controllers/flash_controller.js
113
115
  - lib/generators/css_zero/add/templates/app/javascript/controllers/form_controller.js
114
116
  - lib/generators/css_zero/add/templates/app/javascript/controllers/fullscreen_controller.js
115
117
  - lib/generators/css_zero/add/templates/app/javascript/controllers/hotkey_controller.js
@@ -171,7 +173,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
171
173
  - !ruby/object:Gem::Version
172
174
  version: '0'
173
175
  requirements: []
174
- rubygems_version: 3.6.2
176
+ rubygems_version: 3.7.2
175
177
  specification_version: 4
176
178
  summary: An opinionated CSS starter kit for your application.
177
179
  test_files: []